KCOM 组件技术

KCOM Space软件是一种快速应用开发及运行平台。它以结构化的HKB存储格式为基础;以自定义的KCOM组件模型为核心;以组件运算包容数值运算和符号运算,引入KCOM Basic语言,使可视化的概念延伸到代码可视化,实现了完全可视化;以内嵌的高效的数据检索与模式匹配算法为KCOM现有的运行机制及未来的发展奠定基础;建立KCOM 应用体系结构模型为Internet应用开发提供有效的应用方式。

KCOM Space是一纯粹的组件平台,在KCOM Space范围所及的任何一个方面都是组件:KCOM应用程序由组件构成;KCOM Basic的每一个语言成份都是组件(语言组件);KCOM应用程序自身也是组件(应用程序组件化)。KCOM Space赋予每个组件以属性、方法、事件,对每个组件都可以用列表框列出全部的属性、方法、事件及相应的描述信息,每个组件都有系统赋予的一般属性以及丰富的排版方式。
KCOM Space提供丰富的内嵌组件以及通过组件接口引入的外来组件。这些组件的相互组合、相互作用构成KCOM应用程序。

语言组件是KCOM Space提出的一种全新的概念,它指的是每一个语言成份(语句、运算符、函数等)都视为组件,可以随意地改变其外表形态以及定制新的语言组件。
KCOM应用程序的组件化以及组件运算等特性使KCOM Space成为完全的组件化开发平台。纯粹的组件平台和完全的组件化开发方法为软件的良好复用奠定了坚实的基础。
简单和谐”是KCOM Space的基本原则:以组件方式反映现实世界;以组件观点看待应用软件开发;以组件运算包容数值运算和符号运算。简单统一的组件观点指导着KCOM Space系统本身的构造以及KCOM应用系统的建立。
1.基于结构的存储方式——HKB存储方式
很难想象,仅仅经过短短十年的发展,World Wide Web就已经走入了千家万户,便利了信息的共享和交流、改变了商业运作模式、影响着每个人的生活方式。十年前,当HTML初次面世时,它还只是一些欧洲物理学家们为了便于交换学术资料而定义的一种文档标记语言。当第一个HTML图文浏览器Mosaic由一个二十出头的年轻人开发出来并向外界开放时,全世界为之耳目一新,从此开始了Web技术的迅速普及发展,成为一股不可逆转的潮流,开辟了全新的视野,创造了新的市场和新的机遇,鼓舞着敢于创新的人们树立出一个又一个的成功典范。十年来,Web存储格式语言,从HTML发展到DHTML,再到最新的XML,发展的每一步,都是为了适应Web应用发展的需求。

无论是HTML,DHTML,还是XML,它们都是基于文本格式的语言,都是通过
标签 来区分语言的成份和内容,在处理过程中首先都必须读入文本文件,然后扫描每一个文本字符,找出其中的 标签 ,最后通过这些 标签 来区分页面内容。最初设计HTML语言时假定的使用对象除了计算机软件以外,主要还是要便于人工编写与阅读。当HTML发展之后,为了适应应用的发展,除了引入DHTML,还引入了各种脚本语言,人工编写和阅读HTML文件变得越来越困难,因此出现了许多网页制作工具,从而使网页制作人员编辑排版时不必直接面向HTML源文件,但是为了编写复杂的应用,比如访问数据库,在HTML源文件中编写脚本语言又是不可避免的,因此Web应用开发效率远远比不上利用象Visual Basic、Delphi这样的第四代语言开发工具的应用开发效率。在开发复杂的Web应用时,人工直接编写和阅读存储格式语言是不必要的,同时也是不现实的。现实的情况应该是由软件工具来操纵存储格式语言,开发人员只需关心应用程序本身,而不必去了解应用程序的存储形式。最初采用 标签 的主要原因就是为了能使存储内容可阅读,现在既然存储内容用软件工具来管理,那么基于文本 标签 的存储方式就应该让位于更好的基于结构的存储方式。KCOM Space 的HKB存储方式正是这样一种基于结构的存储方式。

HKB存储方式管理KCOM组件的存储空间,它将连续的存储介质管理成可分配、可回收的存储空间,它不限定存储介质的类型,内存空间、磁盘文件等等都可以是HKB存储介质。组件在HKB中表现为一段地址空间,组件之间的圈套组合关系由8字节长的指针来指明。通过地址指针,就可以在HKB空间中建立复杂的结构以真实地反映组件以及组件之间的相互关系。


与HTML一样,HKB也是一种存储格式,相比之下,HKB格式有众多的优越性。


HTML是Web页面的基础,它为Internet上的信息出版立下了汗马功劳,但是它有许多缺陷使它不能适应动态和交互的需求,而HKB文件格式正是表达动态和交互的组件页面的最佳格式。


HTML的局限性明显地体现在:
l           它有一个复杂的标签集,但这个集合是固定的,不能用自己的特定应用标签来扩展它。
l           它是一种界面显示技术,它把数据和数据的表现形式混在了一起,这使得分开两者变得相当的困难。
l           它是平面型的文本结构,不能指定数据的层次结构来表现数据间诸如从属关系、链接关系、重要性等细节。
l           它不能把数据传送给客户端让客户端自行进行进一步的处理。事实上,HTML总是在服务器端产生,客户端只是一个显示机器,这样的方式使得服务器端要处理的数据量过大,网络速度降低,效率不高。
l           它对特定数据只能提供一种显示方式。如果想提供不同的显示方式,就不得不在服务器端重新产生这些数据和完整的HTML页,重新通过网络传送到客户端,然后才能在客户端显示出来。如果数据和显示形式是分离的话,那就可以把数据下载到客户端,之后根据需要随意产成数据的不同的显示方式。
l           它的可读性不强,无论是人读还是计算机读都是一样。HTML也不是很严谨,有些标签需要匹配开始符和结束符,但是也有一些只有开始符没有结束符。HTML解释器,当然包括人眼,不得不处理这些有点随机的格式。
  相比之下,HKB格式有许多明显的优点:
l           它不需要用标签来标明数据,每个组件的属性在组件的地址空间范围内的位置是固定的。带来的好处就是节省了标签所占用的空间。
l           它是结构型的,通过地址指针,在HKB存储空间内可以建立复杂的结构,比如链表结构、树形结构、网状结构等,以表示复杂的组件关系。
l           HKB文件是压缩存储的,它对组件数据进行压缩,同时又保持了主要的组件结构。在组件数据压缩之前又对关键数据进行加密处理。应用于Internet环境,压缩存储的HKB文件在很大程度上减少了数据传输量,为应用程序的快速运行打下基础。
l           HKB文件放在服务器端,浏览运行时根据需要将HKB内相应的数据代码下载的客户端显示运行,客户端不仅仅是显示机器,它还负责处理交互性操作的运算逻辑。
l           显示内容是在客户端运算之后决定的,可以是原有的内容,也可以是处理后的内容。
l           HKB文件对人眼来说是不可读的,因为它经过了压缩和加密处理,但是对HKB解析器来说却是具有良好的可读性的,因为HKB存储的是结构化的数据,可以不经解释而直接调入计算机内存。
2.KCOM组件技术的核心——KCOM组件模型
从第一台计算机产生开始,硬件技术和软件技术几乎同时开始它们的发展历程。但是半个世纪以来硬件技术的发展速度要远远高于软件技术的发展,从电子管到晶体管,从集成电路到超大规模集成电路,运算速度从每秒几千次到每秒上万亿次。相比之下软件技术就远远跟不上硬件技术的发展,其中的根源应该是很长时间内没有找到有效软件构造方法。可喜的是七十年代开始出现的面向对象的认知方法和编程语言,经过二十多年的发展,于九十年代结出累累硕果,在二十世纪末出现了由面向对象发展而来的组件技术,它正是软件业期待多年的这样一种有效的软件构造方法。

组件模型定义组件的制作方法,运行方式,以及相互作用机制。软件组件定义为自包含的、可编程的、可重用的、与语言无关的代码片段,这样的软件组件可以很容易地插入到应用程序中。软件组件暴露方法和属性,触发事件,并且通过名称或ID号全局表示自己。已经成为流行的标准的组件模型包括COM/DCOM组件模型和CORBA组件模型。组件技术是计算机软件发展的最新结果,也是半个多世纪以来所寻求的有效的软件构造方法。
COM(the Component Object Model)是一种平台独立的、分布式、面向对象的系统,用于创建可互操作的二进制软件组件。COM 是微软的OLE(复合文档),ActiveX(可用于Internet的组件),以及许多其它技术的基础。COM最初是由微软公司提出并独立发展,现在,它已交给一个独立的组织管理。
DCOM(the Distributed Component Object Model)扩展COM,以支持不同计算机之间的对象间通信,这些计算机可以是位于局域网,广域网,甚至是互连网。DCOM规定了网络上组件之间的通信协定,因此DCOM可以说是组件之间的TCP/IP协议。
COM/DCOM组件目前广泛地用于Windows平台,由于Windows平台的极大的市场占有率,因此COM/DCOM事实上已经成为一种组件标准。
CORBA(the Common Object Request Broker Architecture)是OMG(the Object Management Group)制定的开放的、独立于开发商的体系结构和基础构造,通过CORBA,计算机应用程序可以通过网络协同运作。因为使用标准的IIOP(the Internet Inter-ORB Protocol)协议,两个基于CORBA的程序,不管是来自任何开发商、运行在何种机器、采用哪种操作系统和编程语言、通过不同的网络,都可以相互操作。
CORBA组件能运行于任何一种平台之上,特别是在Unix平台上,它已经成为编写分布式应用程序以及中间件的标准组件模型。CORBA从一开始就是为了成为一种跨平台的分布式组件标准,经过多年的发展,已经成为一种成熟、完备的组件模型。
无论是COM/DCOM,还是CORBA,它们都烙有很深的计算机软硬件系统的印记。我们构建组件模型的目的是提供描述、反映、模拟现实世界的方法和工具。虽然计算机是我们的实现工具,但是我们的组件模型应该尽量避免受到计算机软硬件系统的影响,想办法构建最接近现实世界的组件模型。此外,一个好的组件模型应该成为普通人的日常工具,而不应该只是计算机专家的专有工具。下面介绍一种全新的组件模型——KCOM组件模型。
KCOM Space是一种组件开发及运行平台,KCOM组件模型是KCOM Space的最重要的组成部分。

KCOM这个名称由K和COM组成。K是Knowledge的首字母,代表知识和智能;COM是Component的缩写,也是Commerce的缩写,代表组件以及商务。KCOM既代表KCOM组件模型,也表示它是一种用于实现和运行电子商务的知识化、智能化的工具平台。
KCOM组件模型建立在这样一个简单而真实的观念之上:组件可以层层包裹,同一层次的组件相互之间不直接作用,而是通过父(外层)组件间接作用,父组件相对子(内层)组件而言起了胶合作用,父组件可以包含众多子组件,子组件也可以属于不同的父组件。父组件和子组件之间通过消息通讯:父组件通过子组件的名称向子组件发送消息;子组件因为无法知道父组件的名称而只能向外广播消息,隐含的接受者就是父组件。一个组件接收到的消息来自两方面:父组件和子组件。组件的事件与方法本质上是一样的,从父组件发给子组件的消息叫做方法,从子组件发给父组件的消息叫做事件。
KCOM组件的子组件的物理位置可以分布在网络的不同地方,只要能通过某种方式传递消息,父组件和子组件就可以看成一个统一的整体。KCOM组件的这一特性表现为分布式组件计算。
KCOM组件所包含的子组件可以是动态的,每时每刻,都可以有新的子组件加入进来,也可以有子组件离开。一个最明显的例子可以很好地说明动态组件的概念:如果将商店看成一个父组件,而顾客视为子组件,那么顾客和商店之间就构成这样一种动态关系。
由于KCOM组件之间是包含的关系,子组件相对父组件是一种局部的关系,因此KCOM组件的命名规则就很简单了,只要在同一层组件之间名称不重复就可以了,而每一个KCOM组件所包含的子组件的数目是有限的,这样对KCOM组件来说,就不必要有象GUID这样的全局的标识。对于位于网络不同位置的KCOM组件,可以通过网络地址加上组件名称来标识。
KCOM组件模型的目标就是最真实地反映现实世界。现实世界就是由大大小小的组件构成:大到宇宙,小到原子,组件层层包裹;物质世界如此,人类社会的组成也是这样,从作为个体的人,到集体,到整个社会,都可以用组件加以描述。
COM/DCOM是目前业内流行的组件标准,将KCOM与COM/DCOM做比较,将有助于更好地理解KCOM的内涵。
COM/DCOM组件模型
l           COM/DCOM组件模型是一种平台独立、分布式、面向对象的系统,用于创建可相互作用的二进制软件组件。COM/DCOM是微软的OLE(复合文档)和ActiveX(可用于Internet的组件)以及许多其它技术的基础技术。
l           COM/DCOM之所以被认为是一种二进制标准,是因为它是一种在应用程序被编译成二进制机器码之后才起作用的标准。
l           COM/DCOM不是一种面向对象语言,它也不指定一个应用程序如何构造,它是一种标准,它指明一种组件模型和使组件之间能够相互操作的编程需求。COM/DCOM组件可以运行在单一进程、不同进程、甚至是远端机器。
l           COM/DCOM组件可以通过许多编程语言来创建。许多面向对象语言,诸如C++,都提供可简化COM/DCOM组件实现的编程机制。
l           COM/DCOM定义了一个COM/DCOM组件的核心实质。一般来说,一个软件组件由一组数据以及管理这些数据的函数构成。一个COM/DCOM组件是这样的一种软件组件,它专门通过一组或多组相关的函数存取组件数据。这些函数集合称为接口,而接口的函数称为方法。对COM/DCOM来说,它需要的唯一的调用接口方法的途径就是指向接口的指针。
l           编译好的COM/DCOM组件是不能修改的,要增加新的功能只能由开发商对组件源码进行修改、更新,然后重新编译生成新的COM/DCOM组件。
KCOM组件模型
l           KCOM是KCOM Space定义的一种组件模型,用于创建可相互组合作用的软件组件。KCOM组件模型是KCOM Space平台及其应用程序的基础。
l           KCOM不是一种二进制组件模型,KCOM组件不直接面向机器代码,KCOM有自己的虚拟机运行KCOM组件。KCOM是一种源码级的组件模型,它直接对结构化存储在HKB文件内的KCOM组件起作用。KCOM虚拟机屏蔽了计算机实现的细节。
l           KCOM直接指明一个KCOM组件应该包括的成份:组件外观(KCOM Aspect),用于组件与外界交互的界面;组件方法(KCOM Method),用于指导组件如何操作运行;组件属性(KCOM Property),用于存放组件的状态值;组件事件(KCOM Event),用于定义在特定的运行过程中将会触发的事件。KCOM有自己的语言,通过语言组件化,KCOM语言可以表现为多种形态,当前实现的是KCOM Basic语言。KCOM对编程语言加以改造和扩充,引入组件运算的功能。
l           在KCOM Space内,可以相同的使用方法编辑KCOM组件和普通组件,此外,还提供一些操作便于KCOM组件的使用,如装载、导入、导出KCOM组件,就地制作、检入、检出KCOM组件。
l           KCOM组件的运行方式不同于运行COM组件:COM组件运行前必须先将整个OCX、DLL文件下载到客户端操作系统注册;而KCOM组件的运行则不必将整个HKB文件下载到客户端浏览器,而只下载当前用到的数据、代码。实际过程是这样的:先下载KCOM组件首页;用户鼠标、键盘操作产生事件,将响应事件的相应的KCOM方法下载运行;链接到分页面,将相应的页面数据下载,重复这些过程。KCOM Stage Control将下载过的KCOM页面、方法存放在本地硬盘,当下次运行该KCOM组件时,KCOM Stage能准确地知道哪些页面和方法已经下载过,哪些页面和方法已经更新需要重新下载,对于下载过的还未更新的页面和方法就从本地硬盘调入。KCOM组件的这一特性是使组件空间应用软件能有效地运行于Web环境的重要因素之一,因为它使KCOM组件运行时需要通过Web传输的数据量减少到能充分适应Web环境的有限带宽。
l           对KCOM应用程序来说,它的意义不仅仅是在于它是由组件组合而成,还有一个很重要的意义在于它自身又可以作为组件应用在其它应用环境之中。
l           制作好的KCOM组件除了能运行以完成特定的功能外,用户还可以对它直接进行修改、更新,以提供定制的功能。
l           定义KCOM组件模型的目的在于以更加简便、直观、高效的方法将应用软件组件化。
3.从数值运算,符号运算,到组件运算——完全可视化的实现

简单回顾一下运算的历史:最早的运算属于数值运算,它针对阿拉伯数字进行加、减、乘、除等等数学计算;将数值运算抽象出来,数学家们发明了符号运算,这种运算的特征在于它并不指明实际的运算对象,而是以抽象的符号作为运算对象,通过对符号的演绎,数学家们构建了规模巨大的数学公式库,而物理学家们则利用符号运算作为工具来研究物质世界的作用机制。这两种运算的运算对象分别是数字和字符串,以组件的眼光来看,它们属于极特殊的两种组件。
运算是计算机语言的主要功能,早期的计算机语言如FORTRAN就主要是用于科学与工程计算,属于数值运算的范畴。对数学家以及工程人员来说,象公式推导这样的符号运算是极为有用,也是迫切需要的,于是相应的语言工具就出现了,这其中Mathematica语言工具是一种广泛流行的数学工具,它除了具有强大的数值运算功能外,最重要的核心就是它能进行公式推导。在Mathematica内部,有一种模式匹配方法作为其数学运算和公式推导的基础。
既然数值运算和符号运算的运算对象:数字和字符串属于特殊的两种组件类型,那么,除了数值运算与符号运算以外,还应该有组件的运算方式。目前只有KCOM Space这一软件开发平台实现了组件运算。作为一种纯粹的组件平台,KCOM Space的核心优势之一表现在它首先提出并实现了一种全新的运算方式 --- 组件运算。
在纯粹的组件空间里,对象不再只有数字和字符串,而包含有种类和形态丰富多样的组件。这就需要有一种对组件的运算方式,为此,KCOM Space提出并实现了组件运算:组件作为运算对象参与运算,比如定义组件变量、组件常量、组件数组,组件作为值赋给组件变量,组件作为参数用在方法调用中。
  组件运算是数值运算和符号运算的发展和扩充,它包含前两种运算方式。组件运算的最明显的特征就是它的直观明了,降低了学习运用的难度,因此组件运算语言也将成为大众化的语言。通过组件运算语言,每一个人都可以将它自己领域的知识表示出来,这样表达出来的组件系统就是知识化的系统,积少成多就可以构成知识组件库。
  组件运算的最直接的效果是带来了代码的可视化。面向对象编程语言如C++,在代码中使用组件都是通过一连串的代码来完成的:首先声明一个组件类的实例,然后每一个要设置的属性都需要有一个赋值代码行。相比之下,组件运算使得组件可以直接插入到代码之中,通过组件的属性对话框就可以以可视的方式设置所有待设的属性。这就是代码的可视化。第四代语言的最重要的特征就是界面可视化,也就是能以所见即所得的方式编排用户界面。组件运算引入的代码可视化,使可视化的程度又前进了一步,实现了完全可视化。如果说界面可视化为应用开发效率的提高带来一次飞跃,那么代码可视化再次为应用开发效率的提高带来又一次的飞跃。
组件运算是一个全新的运算领域,但却又是必然的运算发展趋势。结合检索和模式匹配以及控制机制,组件运算将构成未来知识系统的基础。
4.KCOM 组件的交流工具——KCOM Basic 语言
语言是人们描述现实世界,表达自己思想观念的工具。而计算机语言是人与计算机交流的工具。一方面人类使用各种计算机语言将所关心的现实世界映射到计算机世界;另一方面,人类又可以通过计算机语言创造现实世界中并不存在的虚拟世界。
在计算机语言的发展过程中,先后出现的语言至少有几千种,但是真正能普及应用的计算机语言却是屈指可数的。一种计算机语言要能流行普及,除了要有独有的特色以外,还要切合当时的应用需求。
KCOM Space 引入一种KCOM Basic语言,它的语法形式和语言要素类似于Basic语言,特别适合于 Internet上的快速应用开发;此外,KCOM Basic不仅是一种类Basic的数值运算语言,它已扩展为一种组件运算语言。
组件运算语言的最大特性是它以组件为其运算对象,比如变量可以代表组件,组件可以作为值赋给另一组件的属性以及作为方法的参数值进行参数传递等等。
KCOM Basic 的函数、运算符、语句与Basic语言基本相同,主要的区别在于KCOM Basic引入属性、方法、事件这三个组件关键字。KCOM Basic的方法统一了其它语言中的子程序、过程、函数和方法等概念。
KCOM Basic是一种解释语言,但它的解释机制却与大多数其它的解释语言不同。一般的解释语言工作时首先是读入程序文本,然后作词法分析、语法分析、语义分析,最后开始执行。由于在KCOM Space集成开发环境内编写代码时已经完成了词法分析、语法分析这两个阶段,并且分析的结果都结构化保存在HKB文件内,当KCOM Basic工作时,读入结构化的数据,直接从语义分析开始解释执行。KCOM Basic解释机制的这个特点使得它的效率比大多数解释语言高得多。
由于语言组件化,因此对KCOM Space来说,采用何种语言本身是不重要的,但考虑到开发人员的习惯性,采用Basic语法是最佳选择,因为几乎所有的开发人员都受过Basic语言训练,并且Basic语言本身又是一种易学易用的语言。
计算机语言不应该只是思维放大工具,事实上,计算机语言已经成为我们思维的一部分。计算机语言是朝着自然语言的方向发展,它的最终目标应该是成为人类与计算机之间的很自然的交流工具,人可以通过这样的语言将自己所具有的知识,或者自己的思想、情感、愿望等表达给计算机,这样的语言可以称为知识语言或者是智能语言。到了这样的境界,“计算机”的名称应该改成别的什么,因为它与人类智能的界限已经不那么明显了。这就是人工智能,我们人类所梦寐以求的最高境界。
5.高效的数据检索与模式匹配算法
KCOM Space内部包含有一种高效的数据检索与模式匹配算法,作为其运行效率的基础。这种算法的数据检索和模式匹配互为逆反过程,二者共同组合成统一的算法。
这种算法的最大优点在于算法的检索和匹配时间与数据量和模式量的大小无关,恒为定值。这一点在对大数据库和模式库的检索和匹配时有极大的优势。目前横在知识库系统发展道路上的障碍就是效率问题,因为知识库系统需要有对大量的知识规则进行匹配,而匹配时间按现有的其它方法来说却是与知识规则库的大小有关。鉴于这点,KCOM Space有希望在其数据检索与模式匹配算法的基础之上发展成为一个知识库系统。
这种算法已经体现在KCOM Space的许多地方:KCOM Basic语言变量名的存取用到了算法的数据检索过程;KCOM 组件方法的调用用到了算法的模式匹配过程。
6.KCOM应用体系结构模型

任何一个应用程序的设计开发的最重要的元素之一就是如何进行系统架构。系统架构定义一个应用程序的各个模块之间如何相互作用,以及每个模块负责执行什么样的功能。从纯功能的观点来看,大多数应用程序主要处理如下三种任务:获取用户输入,将输入存储为数据,按预定的操作程序处理这些数据。目前流行的主要有三种应用程序体系结构模型,各应用体系模型就是根据在用户与数据之间所具有的层次来划分的。每一层次一般都运行在不同的系统或是相同系统的不同进程空间内。这三种应用体系结构模型分别就是单层应用体系结构模型、两层应用体系结构模型、多层(可以是三层或三层以上)应用体系结构模型。
单层应用体系结构模型在单一的应用层内实现用户界面、商业规则、数据管理。
在两层应用体系结构模型中,商业规则和用户界面仍然结合在一起构成应用程序的客户端。但是数据的存取和管理独立出来由单独的通常是运行在不同的系统上的程序来来完成,这样的数据存取和管理程序通常就是象SQL Server 或 Oracle这样的数据库系统。熟知的Client/Server就是这样的两层结构,基于Client/Server结构的应用在局域网的应用中占绝大多数。
在多层应用体系结构模型中,商业规则被进一步从客户端独立出来,运行在一个介于用户界面和数据存储的单独的系统之上。现在,客户端程序提供应用系统的用户界面,用户输入数据,查看反馈回来的请求请求结果,对于Web应用,浏览器是客户端用户界面,对于非Web应用,客户端是独立的编译后的前端应用程序;商业中间层由封装了商业逻辑的组件构成,这些商业逻辑组件模拟日常的商业任务,通常是一种COM组件或者CORBA组件;数据层可以是一个象SQL Server这样的数据库管理系统,或者是象Exchange这样的非结构化数据交换系统,还可以是象事务处理或消息队列这样事务处理机制,应用程序可以选择一个或多个这样的数据服务。
Internet技术的发展为全球信息在大小企业以及个人之间的共享奠定了基础。Internet催动着技术创新,竞争和加速的变化脚步使得对快速开发具有高适应性应用程序的方法模型的需求日益迫切。各种应用体系结构模型都可以用于Internet应用开发,但是在这三种模型中,多层应用体系结构模型是开发Internet应用的最好的应用模型。
基于Web的应用多数属于多层应用体系结构。Web技术如HTML、DHTML、XML等表示的标记语言为用户层界面带来了更好的信息显示方式,丰富了用户界面层的应用;Web服务器如IIS、Apache等架设在用户层浏览器和数据层数据库服务器之间,一方面通过CGI、ASP等直接为Web应用提供中间商业层服务,另一方面驱动商业逻辑组件提供中间层服务:接受来自浏览器的服务请求,传递给数据库服务器,并将从数据库服务器返回而来的数据提供给用户层浏览器;随着Web应用的增加,数据层数据库服务器也变得日益重要。
应用于Internet的三层应用体系结构模型也有很大的缺限。这种模型将绝大部分工作交由服务器进行:数据存储在服务器,商业应用程序代码存储在服务器,数据的加工、处理在服务器端进行,程序的执行也在服务器端,客户端浏览器只简单地用于显示由服务器端传来的标记语言页面。这是一种瘦客户端-胖服务器端模式,它缺点之一是代价昂贵,能满足要求的服务器价格是不菲的;缺点之二是客户端计算功能的严重浪费,今天的PC机已具有相当大的运算能力以及相当低廉的价格,真正好的应用模式应该对PC运算能力加以充分利用;缺点之三是写服务器商业应用程序的要求是很苛刻的,应用程序的任何微小的失误在多用户访问情况下将很快导致服务器系统的崩溃;缺点之四是集中式的数据访问将会在Web服务器上产生数据传输瓶颈。
如果采用单层或两层体系结构模型,那么当用户想要运行一个应用程序时,必须将该应用程序整个下载到客户端用户机器,即便用户只需要该应用程序的部分功能或只须临时用一下该应用程序。不言而喻,这种模式不适合Web应用。Web应用的一个特点是Web上存在着无数的应用程序,如果用户每访问一个这样的应用程序都必须先完全下载完全安装然后才能运行,那么无论是时间效率还是用户的机器都是不现实的。此外,这种应用模式在安装、升级、维护方面都极为不便,这是因为每次安装、升级、维护都必须在每台用户机器上进行。
分析一下从单层体系结构到两层体系结构再到多层体系结构的发展过程,可以看出隐含其间的是一个完整的应用程序逐步被分割为不同的组成成份:先是数据存取和管理独立出来成为单独的数据层,然后是商业逻辑处理独立出来构成单独的商业中间层。每一次的分割都带来不同层度的好处。分割到最后,一个完整的应用就包括用户层显示页面、商业中间层的商业逻辑组件、数据层数据库系统。当前流行的商业逻辑组件主要是基于COM/DCOM组件模型或者基于CORBA组件模型。所有的这些页面或组件都成为不可再分割的单元。
考虑KCOM组件模型:它能将组件按外观、属性、方法、事件分割为细小的单元,每一个单元可以分别传输然后重新组合。有了KCOM组件模型,我们就可以定义这样的KCOM应用体系结构模型:它以可分割的KCOM组件模型将用户界面层和商业逻辑中间层的大部分逻辑功能紧密结合在一起,初始放置在服务器上,当通过浏览器访问时分块下载到客户端运行;Web服务器保留一部分商业逻辑中间层,主要是用于在用户层和数据层之间提供中间桥梁作用;数据层数据库系统仍继续保持它的数据存取和管理功能。由于这种体系结构模型将商业逻辑中间层的大部分逻辑功能放置到客户端运行,优点是多方面的:由于组件可分割,因此应用程序可以即访即用,而不必等到全部的页面信息和逻辑下载后才能运行;大大减轻了服务器端的负担,使得每台服务器可以同时支持更多的应用请求;客户端资源得到很好的利用;客户端的处理速度明显加快,因为不需要有通过网络的请求——反馈过程;缓解了服务器数据传输瓶颈问题。
将建立KCOM组件模型基础之上的KCOM应用体系结构模型应用到Internet应用开发,那将会是最为有效的应用方式。
几十年前,世界上第一台计算机的出现,标志着计算机时代的到来,同时也开始了计算机软件语言的发展历程。首先是机器语言和汇编语言;然后是第一个高级语言Fortran出现了,紧接着就是结构化编程语言的繁荣(BASIC、COBOL、PASCAL、C);七十年代末出现了面向对象技术和面向对象编程语言---Smalltalk,八十年代初,出现了面向对象编程语言---C++,终于使面向对象技术和观念在九十年代得以普及;软件复用的需求和呼声促使组件技术从面向对象技术肥沃的土壤中迅速发芽、成长,并开始结出累累硕果。
几年以前,世界上第一个图文浏览器 Mosaic 的出现,正式标志着Internet时代的到来;Netscape和IE的激烈竞争加速了Internet技术的进步,并最终使Internet走向千家万户。浏览器的出现和普及便利了信息的共享和交流、改变了商业运作模式、影响着每个人的生活方式。
KCOM Space 组件平台融合了组件技术和Internet 技术这两大新技术的优势,在浏览器之后再次将一种全新的、具有很强交互性的快速应用开发及运行平台带给Internet世界。
新技术造就新市场,市场不断变化的需求又反过来促进技术的发展。让我们来期待着更新、更多、更好的技术的出现,让我们来共同创造、发展新技术、新思想,投身到Internet软件组件技术的发展浪潮之中。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值