Linux 版 (精华区)

发信人: netiscpu (冷~~最后一个冬天), 信区: Linux
标  题: AKA Chatter介绍(4) --- 容器与插件
发信站: 紫 丁 香 (Sun Nov 29 01:25:16 1998), 转信


发信人: Pacific (无情~~~Nolove), 信区: FreeDevelop
标  题: AKA Chatter介绍(4) --- 容器与插件
发信站: BBS 水木清华站 (Fri Nov 20 17:25:59 1998)


        这里我对类似“主板和部件”的程序结构进行详细说明。

先说说几个概念吧:
        1、此文中的“插件(Plugin)”,定义如下:能完成一定功能的非独立
        的程序,可以由用户选择自由的添加、删除或升级而不导致整个应用程
        序出错。插件分为服务器和客户端两种。这两种是对应关系的,对符合
        协议的消息进行具体解释和执行。这两个插件缺了任何一个都无法正常
        实现功能。这个插件的概念有些类似于MS的ActiveX插件。现在的设想是
        用DLL文件来实现插件。但是它恐怕不能在运行时改动,还得另想办法。

        2、容器(Container):装载插件的应用程序,分为服务器和客户端两部分。
        为插件提供程序框架,传递插件间的消息及网络通讯,提供一些常见的功
        能以简化插件编程,以及提供下载、安装、删除和升级插件的功能。

        3、客户端软件:是由若干个客户端插件与一个客户端容器有机组合成的
        一个程序,其功能由插件决定,也提供让用户下载新插件的功能。从而
        客户端的功能可由用户选择而千变万化(当然,前提是服务器支持,也就
        是说服务器软件上也安装的对应的服务器插件)。

        4、服务器软件:是由若干个客户端插件与一个客户端容器有机组合成的
        一个程序,服务器方的插件能对客户端对应的插件发来的符合协议的消息
        进行解释并执行对应的操作。

这四项说明的是程序的结构。

        5、服务器空间(ServerSpace):所有连接到一个服务器上的用户都处于同
        一个服务器空间。打个比方,服务器空间就像一个城市。

        6、插件空间(PluginSpace):所有连接到一个服务器上使用同一种服务的
        的用户都处于同一个插件空间,例如:某一个服务器上的使用Chatter的用
        户都属于Chatter这个插件的插件空间。打个比方,插件空间就像一个居民
        区,一个城市可以拥有若干个居民区。

        7、房间(Room):在同一个插件空间的用户又可以分组进行操作,分在同一
        组的用户就处于同一个房间中。若干个房间组成了居民区。

        8、用户(User):它的定义用不着解释了吧。 :)

        9、用户组(UserGroup):它也是组的概念,同一个用户组的用户具有相同
        的用户权限。它跟房间不同,它的用户没有逻辑上的联系。例如在BBS上,
        普通用户是一个用户组,斑竹、站长也属于各自的用户组。

这几项说明的程序中逻辑上的概念,程序的编制基本上是按照这种分层的方式。


看完这些名词解释,大家应该就程序的结构有个大概了解了吧,下面说些要点。

        1、程序开发的主要思想
        就是由我们来完成一套相对固定的容器和几个常见的插件(例如Chatter),
        而插件由其他人共同开发,只要是遵照协议编写出来的插件,就能在这个容
        器上运行。插件的发布可以方在网上。

        2、消息协议
        服务器和客户端容器之间可规定一套消息的发送和协调规范。但不负责消息
        内容的解释。只把收到的消息交给插件,并把插件的消息发送出去就行了。
        当然,容器要对消息进行区分,因为用户可能同时运行多个插件,与多个
        服务器进行交互。每一对服务器插件和客户端插件之间保持一套消息的解释
        方法,由开发者定义。插件可对无法解释的消息报错或丢弃,后者的用户友
        好性比较好,类似于不同的浏览器处理DHTML。我们现在的想法是用一种类
        似HTML语言的格式传递消息。(后面的文章将详细解释协议)
 
        3、如何开发
        在提供程序的同时提供一套完整的开发包(SDK?),也就是一些结构化的代
        码、一份详细文档以及一些连接库和供调试用的界面。将这个开发包公布出去,
        只要开发者愿意就可以通过它来给程序增加一些或多或少的功能,并将程序编
        译成插件形式提交给主服务器,而其他所有的用户可以通过客户端选择性的下
        载这些插件使用,即相当于系统升级。

        5、如何使用
        服务器容器上可以安装有多个插件(当然,服务器容器也可以只有一个插件,
        成为单一功能的服务器。),用户进入到服务器空间中来,可以选择一种插件
        (也就是一种网络服务),在进入插件空间时要检查本机是否安装了对应的客
        户端插件,没有的话可以从服务器那里自动下载。用户可以加入其他房间,也
        可以自己建立新房间,这里的房间不单指聊天室,象4个人打麻将也算在一个
        房间中。此时的建立新房间相当于New Game,此类房间应有人数限制,并在人
        满后可由房间创建者锁定房间并开始游戏。
        
        在客户端,用户也能同时打开多个子窗口连接到不同的服务器上,使用不同的
        网络服务,进入不同的房间(只要你能忙的过来:P)。这些操作可以说是互不
        干涉的。


这样设计程序的结构,就是注重程序的可伸缩性,并由此能让用户用一个应用程序来完
成聊天、讨论、网络游戏以及其他操作。并希望能用它完成更多有价值的创意而减少编
码时间。


--
        老鸟有交待,中鸟要等待,菜鸟要忍耐。
        老鸟级功夫:吹牛、聊天、玩MUD 、发呆。
        中鸟级功夫:睡觉、灌水、玩游戏、NT&VC。
        菜鸟级功夫:学习、泡妞、玩篮球、And so on

        My E-Mail: Nolove@263.net

m7m※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.5.24]
--

                              Enjoy Linux!
                          -----It's FREE!-----

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.522毫秒