信息基础设施中的“中件”角色,本文主要内容关键词为:基础设施论文,角色论文,信息论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
摘要
信息基础设施正在蓬勃发展,以提供当今信息时代需要的信息。随着网络由专有扩展到国家,进而到国际网,其复杂性也随之增长。网络传输和协议将逐步演化以管理位传送的复杂性。管理分类信息、跟踪信息、在信息请求方与提供方之间建立连接以及桥接世界范围内的异构系统, 这些是中件的任务。 NIIT(National Information Infrastru-cture Testbed)的中件工作组将其划分为理解中件的理论结构,共享用来建立中件的技术和将这些技术付诸于NIIT项目的实际应用三个阶段。本文阐述了NIIT的中件工作组和在信息基础设施中中件所起的作用。
一、信息基础设施
现在已进入信息时代,在工农业原材料仍是国家和国际重要财富之时,信息产业已经成为其重要组成部分,并且可能很快在产值上超过它们。
与工农业原材料不同,信息不是天然资源,信息并非是被埋藏在地下,静静地躺在那里等待我们去开垦、开采、处理和提炼。信息是人造的,通常说来,信息不是持久意义上的有形物。
随着网络范围从私有网发展到国家网,进而发展到国际网,其复杂性也随之增长。网络技术将不断推动传输技术和协议的发展,以迎接网络不断扩展的挑战。ATM 已作好提供从单个建筑物到整个大陆骨干网的高速传输通道的准备,IPv6的发展使今天的寻址技术能够满足明天的需要。
但是,唯一标识所有接入全球网络的设备,以及确保其中任何设备之间可以快速、可靠地传递数据,这些并不足够,还需要更多的东西,这就是中件。
中件处理管理分类信息,跟踪信息的移动和变化,满足在信息提供方与请求方之间建立连接和桥接世界范围异构系统复杂性的需要。
网络和中件共同构成了术语“信息基础设施”的基础,它们是信息时代的推动者。
二、中件
在信息高速公路这一隐喻说法中,网络是道路、桥梁和隧道;网络是交通灯、速度限制牌、前方弯路警告和通告,以及你所前往城市的符号。象实际的高速公路系统一样,网络总是不给出警告就在某些地方进行调整和重建。
中件是旅行代理,它建议你哪个城市对于你的工作或度假是最好的;它是高级路线的安排者,告诉你经过X市比Y市更好;中件是指示下一个城市具有好的宾馆和24小时餐厅的指示牌;中件是几乎所有地方所有车辆都靠右行驶的约定,但它也知道什么时候变为靠左行驶。
NIIT负责中件的主任Bob Scher 将中件定义为:“有关分布式应用基础的警句,存在于系统节点上位于应用、操作系统及网络服务之间的一组分布式软件服务。”我的定义是:“共用于许多应用的软件,它使得任何应用完成其任务更加容易。”Scher 的定义注重分布式计算服务及其在操作系统和网络之上、应用之下的位置,而我的定义更加一般化,而且并不否认Scher的定义。
中件是一种试验,没有技术能在中件中停留太长时间。如果此技术是通用的且对许多应用确有益处,它很快就被移入操作系统。反之,如果此技术没有用处或只对特定应用有用,那么它就会消失或被嵌入到少数应用中。早期试验是窗口系统,现在窗口系统已是操作系统的一部分。目前的试验是与网络相关的技术,也就是信息基础设施的技术。
今天信息应用的任务是在适当的时间内为其用户找出适当的信息。任务的特定应用部分是被发现的信息的处理。这一任务相当繁琐,而困难的部分是找出和访问信息。中件的任务理所应当是使得找出和访问信息变得比较容易,特别是在世界范围联网、异构和信息丰富的环境中找出和访问适当的信息。
三、NIIT中件工作组
当国家信息基础设施试验系统(NIIT)委员会组建时,它就知道它要成为一个面向行动的共同体,优先处理具有实实在在效益的实际项目。而且NIIT也认识到,无数“仅仅使用”联网的分离项目将有效地促进信息基础设施的发展,所以建立起两个永久工作组;联网和中件。
因为永久性工作组并不直接负责任何NIIT项目,中件工作组集中在三个领域:中件体系结构、中件技术和NIIT项目咨询,这是独特的组合。
NIIT聚集了各中立供应商推荐的工业专家。当每个人不断地表达其公司的商业兴趣时,我们都知道未来取决于提高信息基础设施的整体状态。因而,为中件建立体系结构及共享对中件技术的全面理解对于所有公司都是有益的。
四、体系结构
体系结构是系统的高层模型。体系结构决定系统中各组成部分之间的总体关系,为讨论该系统建立共同语言,为产生实现决策设立基本准则。体系结构确定许多有关系统的决策的同时,也留下许多未作决定的选择。系统设计把握体系结构,进而是一些准则,并作出许多决策,系统的实现是最终产品,这时所有决策都已作出。
在NIIT,我们采用始于其成员惠普公司的一些工作,并将其改进成为NIIT的体系结构框架,以帮助理解系统和中件,如下图所示。
立方体的正面是系统的七个模块划分:
1.基础平台:提供基础处理,如硬件和操作系统。
2.分布式服务:连接多个分离系统成为一个分布式系统。
3.信息管理:构造、存储和查询信息。
4.实用服务:提供本地计算服务,如数学、分类。
5.应用协作:使应用间通讯和控制变得容易。
6.应用:提供对最终用户任务易于使用的逻辑支持。
7.用户接口服务:提供系统与用户(人)之间的接口。
立方体的深层将一个组成部分的特征或各个方面进行分类:
1.功能:某个组成部分做什么,它的接口、功能是什么,一个组成部分的功能与七个模块之一相对应。
2.可信度:安全性、可用性和组成部分的性能特征。
3.控制:可管理性、可服务性和组成部分的发展特性。
利用此体系结构框架,我们可以分解任何NIIT项目,使之成为各组成部分,分类每个组成部分成七个模块之一,并细化各组成部分。对于每个模块和组成部分,我们开发了许多可能特征的冗长列表。并非每个系统都具有所有七个模块,没有哪个组成部分覆盖所有三个方面的所有特征。但是,通过比较真实世界系统和我们的列表,我们不仅可以理解系统在做什么,而且可以理解系统不愿意做什么,这一过程常常暴露一个或更多的不被期望的系统缺陷。这类问题的早期警告有助于设计未来的中件和应用,而避免令人厌烦的昂贵的试验和错误调试。
下面的体系结构图专门描述信息基础设施中中件的技术。
它表明到中件的应用接口可以是下面三种风格的一种或几种:
远程过程调用(RPCs);对象系统(Object Systems);消息/队列。
RPCs和消息/队列代表非常不同的风格。RPCs风格是内在的同步请求/响应,而消息/队列是异步的,具有传递数据参数的能力,其上下文是自由的。
对象系统代表完全不同的观点。RPCs和消息/队列是自然意义上的过程,并且通过传统的3GL语言调用来使用, 对象系统并不建立函数调用模型,而是软件“对象”,它是自包含的过程码和状态信息(数据)的集合。对象系统已被证明对分析、设计和建立信息系统非常有价值。早期的对象系统完全维系于特定语言(如C++,Smalltalk),但现在基于CORBA(Common Object Request Broker Architecture)和基于OLE(Object Linking and Embedding)的系统是多语言和完全网络化的。将对象系统引入到信息基础设施中件中的是它们的分布式能力。
这三种风格并不相互独立,甚至对象系统依赖于RPC 和消息/队列以实现通讯的要求。进一步讲,所有这些风格都建立在分布式计算服务之上,包括命名、安全性和时间。这些服务通常对应用程序员和用户是不可见的。事实上,好的分布式计算服务的标志是你能从中获益(如找出对象,保密请求等)而并不用知道她在哪儿。
五、技术
NIIT有四个主要的产品/技术组。
DCE
开放软件基金会(OSF)的分布式计算环境(DCE)是一组一体化技术而不是单个技术。DCE的通讯基础是RPC,另外DCE 集成了分布式命名、保密和时间服务。
许多大系统供应商提供可用的DCE。NIIT的EarthDS项目采用DCE, 以便与另一个供应商的产品和服务一起工作,这一事实是DCE 的强大实力之一。DCE 通过它所具有的完整的数据整理系统来管理异构系统的差异。
DCE的弱点是仅仅提供RPC风格的通讯,范围较小,而其它命名和安全性系统,如Novell的Netware,则没有被集成。
消息
消息擅长于快速地在服务请求方与相应服务提供方之间建立连接,然后在其间移动。通常,这意味着消息系统具有与之集成的非常快的更新及动态命名系统。消息系统通常完成网络协议桥接,也就是说,它将在两个并不共享公共网络协议的系统之间移动消息。这是通过找到能直接与这两个系统对话的第三个系统来实现的,并利用它作为这两个协议之间的桥梁。在大型网络中,包含许多系统的复杂拓扑需要具有协议桥接的功能。
消息系统的一个实例是PeerLogic的管道。
消息排队
象其伙伴消息系统一样,消息排队系统从服务请求方向相应的服务提供方传送消息,可能包括协议桥接。不同之处在于,消息排队系统并不将服务提供方标识为正在运行的进程,而是队列。因而当请求入队时,服务提供方并不要求必须正在运行。事实上,消息排队系统通常在两个系统之间的每个网络节点上使用多个不可见的队列,这就意味着排队系统可以保证请求的传送, 即使一个或多个连接甚至整个系统暂时是Down 或中断的。
将服务提供方标识为队列来代替正在运行的进程,也提供了请求方与提供方之间的隔离层。这意味着,服务提供方在逻辑上位置独立(队列可能在网络上的任何地方),时间独立(请求可能在被接收之后的任何时间被处理),身份独立(实际的“服务提供方”可能是并行地处理来自队列的请求的进程集合)。这使得诸如负载平衡、发布/预约等特色成为可能。
消息排队系统的实例是DEC公司的DECmessageQ和IBM的 MQ系列。
对象系统
两种最重要的对象模型是CORBA及OLE。CORBA及OLE的起源背景不同,但有许多共同特征并且通向同一目标。
熟悉面向对象环境的大部分人了解特定语言的对象模型,当今最普遍的例子是C++、Smalltalk及Objective C。 特定语言的对象模型常常将接口规范与方法实现混淆在一起,这已经导致了关于界面对实现继承性以及类型对类的错误理解。CORBA 及COM(Component Object Model,基于OLE的基本对象模型) 起初是作为公平对待各种语言的对象模型而设计的,因此它们能够清楚、明确地将界面与实现分开。
将界面与实现分开使得对象模型免于考虑任何特定语言的特殊之处,而这些特殊之处常常是把实现搞得复杂化的因素。因此CORBA和COM仅仅规定任何依据其界面函数或者是类型,来描述一个对象,在建立实际对象的基本结构时,给了很大程度的自由,其中包括能够透明地访问及操纵本地及远程对象。
正如面向对象技术通过提供的本地对象的封装和抽象以降低编程者所看到的复杂性一样,远程对象及伴随它而产生的通信需要所增加的复杂性也能够被降低。我所说的“编程者所看得到的”是因为这种复杂性依然存在,而对象系统的目的是将这种看得到的复杂性转移到对象系统的提供者身上。对于将分布式对象系统从局域网络扩展到国家和国际信息基础结构,这是特别重要的。对象系统的承诺就是将编程者所看得到的复杂性降低到最低水平,以使得普通编程人员能够继续开发出成功的应用。
这种对象系统的复杂性转换目的与中件的工作目标,“做繁琐的、艰苦的那部分工作”相一致。
遵从CORBA对象系统的例子有:DEC的ObjectBroker、HP 的ORBPLUS及IBM的SOM/DSOM。
六、服务
对于上述四种产品/技术组所做的有趣的观察表明,除了消息中的动态命名系统,所需的基础分布式服务看起来恰好是在DCE 中已经成熟的、稳定的服务。这表明命名、安全性和时间服务的稳定版本应该是可用的,并能够单独使用。幸运的是,这似乎已在发生。
命名
很幸运,即使有那样多的命名系统,应付多个命名系统仍然是三个基本分布式服务中最容易的。大多数中件将命名系统“隐藏”在一般界面之后的使用中,或者需要通过其它调用透明地使用命名系统以“隐藏”它。命名的典型应用就是定位所需的伙伴、资源、服务,或者无论什么东西。接下来,在正常的通讯中,命名系统就不再使用了。因此,搜索多个命名系统,每一个界面或协议都潜在地存在着一点点不同。这不是运行时的大包袱,而且在用户看来可以被隐藏起来。
上面没有考虑的人是网络系统管理员。多个命名系统的复杂性对于他或她来说是显而易见,且令人烦恼的。网络管理工具可以有所帮助,但很少有工具能够成功地管理多个命名系统。
最有希望的动向之一就是“结成联盟的命名”或者是XFN。 其希望所在就是可以通过建立一个公共的XFN接口来减少大部分的复杂性。 这样就可以使得命名系统得到加强,而在接口中的差异将不成问题。
安全性
不幸的是,应付多个安全性系统是非常困难的。不象命名服务是仅仅被用在寻找一个伙伴,安全性在每一次通信交换时都是需要的。同样不幸的是,联盟化的安全性系统需要一定程度的相互信任,而这种相互信任是难以或者说是不可能获得的。
另一方面,不是任何事情都需要安全性。Internet 和World WideWeb 没有过多的安全性而已经大大发展起来。 进一步, 类似InternetEngineer Task Force(IETFs)的通用安全性API(GSS API)标准将通过统一接口而有助于安全性服务的提供。
七、中件测试系统
当NIIT的中件工作组把大部分时间花在体系结构和理解技术上时,我们的实际目标就是把它们的理论工作转化为实用产品,上文所讨论的大部分构造性质的工作和技术来自NIIT 讨论的第一个项目Earth DataSystem或称为EarthDS的会议当中。
EarthDS
The Earth Data System 是一个交互式、合作化的系统,其目的是为了讨论地球表面的图像数据。NASA资助的Landsat Pathfinder项目已经收集了卫星采集的三十年的高精度的图像数据,这些图像在多个地点存储和分类,包括NIIT成员New hampshire大学。
问题是科学家和教师如何能够轻而易举地访问这些数据,而不管它们存储在何地,也不论他们在分析这些数据时如何与其他人相互合作。设计良好的GUI接口能够解决大部分问题, 它使得人们能够容易地访问图像、观察图像、放大图像、将一幅图像与另一幅进行匹配、观看图像的时间序列等等。系统地说,这些任务是借助于公用服务及信息管理的帮助,由应用和用户接口服务模块而完成的。而且在出现网络之前,一切都已经存在了。今天的问题是我们想要得到全国范围内的信息,并保证容易使用及本地应用的很强的交互性。
网络的贡献就在于网络连接,包括ATM和帧中继, 以连接美国各地的所有测试地点。
中件的贡献是由DCE的领先者Ellery System开发的系统。通过使用DCE,我们能够保证多个系统厂商机器之间的互操作。 对于图像数据的适当定义已作出,并被分发到应用设计者和数据源中。命名目录与数据资源服务器聚集在一起。由于信息的公共特性我们不选择使用安全性。
1993年11月,该系统得到论证,所使用的工作站分别由DEC、HP 以及IBM提供,所有设备作为一个无缝系统一起工作。
G7
1994年,七国集团(G7)(英国、加拿大、法国、德国、意大利、日本、美国)在比利时的布鲁塞尔召开了“信息安全性会议”。与此同时,欧洲联盟主持了一个“信息安全性博览会”,并以此为主题进行了技术讨论。NIIT被邀请介绍了EarthDS。
通过将国家信息基础结构扩展到国际间,成员公司间建立起必须的网络连接,并将中件管理延伸到欧洲。没有人宣称这种扩展是无用的,也无需重新设计,在博览会地板上进行的这场讨论无疑是完美无缺的。
八、NIIT项目
NIIT的六个行将开始的项目中都有一个中件的组成部分。这些项目都有影响实际信息基础结构的机会。我们将会有成功和失败,但通过我们的系统性分析方法论的应用,我们坚信下一轮的项目及我们各自公司的产品将会更好。
我们已经拟定了三个题目,两个是关于医学康复(Healthcare),另一个是灵活制造业(Agile Manufacturing ),以说明中件所起的作用。
正如EarthDS项目所说明的那样, 中件能够确保多种异构系统互操作,能够对信息源进行分类与跟踪,能够为应用提供所需的协作服务,还能够按照要求调整指令而无需重新设计或重写指令。
九、Internet与World Wide Web
大多数NIIT的中件集中于“传统的”中件,在中件所支持的分布式计算中,已经为许多企业应用于它们的商业事物中。 有关Internet 及World Wide Web也已经讲得很多了,它有什么不同?它是一定要用网络的,它使用中件吗?
Internet的IP连接是由域名服务(DNS)服务器支持的。 存在着名字服务器,但它们的作用通常限于将那些用字母或数字所标识的DNS 名字副本映射成32位可选择路由的IP地址, 或者进行相反方向的映射。 IP地址是分层设计的,这是为了路由选择(网络,子网)。 当设计DNS分层式结构时,分配给分布式名字,并不能保证同一子域的两个名字处于同一个IP子网。
信息基础设施中件的名字服务通常提供更多面向服务的功能。它们被问到的问题是“谁知道如何做XXX”,而不是“节点XXX在Internet上的什么地方?”
非常有趣的是,Web浏览器本身是一个大的中件。 在“为最终用户的手边工作提供逻辑支持”的意义上,它不是一个应用——通常Web 浏览器只是盲目显示发送的HTML。它当然提供用户接口服务,但它也提供分布式服务和应用协作。只不过所做的是把所有这些“中件”服务塞进一个单独的“应用”之中,以使得能够容易地分布到桌面系统并易于安装。由于将所有东西塞进一个单独的应用软件包中,通常所谓的安装什么及“让所有类似工作集中在一起”之类的事情就不见了。
当然,更传统的中件的混合与匹配的复杂性也就不见。Web 浏览器在具有今天的中件所拥有的所有功能、可靠性及控制之前,还有很长一段路要走。不过Web浏览器正在飞速前进以弥补这段距离, 而且在这个过程中,它们正在重新发现自己。
很快,“Web浏览器”将把许多服务集成到桌面环境中。 这样做会不会使它又变成较传统的中件呢?这是可能的,但Web 的接口将不会与今天的中件完全一样。Web 已经带给我们在要求时——装载新的编码的概念——使用Java或Visual Basic这类语言。为了优化信息结构,我们必须将来自Web 的这些好的思想与我们从传统中件所学到的东西集成在一起。
十、未来
NIIT已经指出了中件在提供信息结构方面所起的作用。NIIT的中件工作组已建立起基础结构,以便于对系统的组成部分进行分类,以寻找所有所需属性的范围并预先讨论遗漏的需求。NIIT的成员公司共享技术,并讨论在当前和未来的NIIT项目中,每一方能给予什么帮助。
NIIT所制定的六个项目当然要维护这个共同联盟,并且其每个成员都在为不远的将来而忙碌着。中件将是这些项目的一部分,而且中件工作组将追随每个项目的进展。这些知识将有助于改善我们的基础结构,并更好地理解我们的技术。
斗转星移, 当信息基础结构的商业化项目发展时, 诸如WorldWide Web之类的其它领域也在增长。中件将促进Web,而Web也同样促进中件。像NIIT这样的工业领先的共同体,其目标就是通过技术共享来帮助和推进信息基础结构向前发展。