信息系统的七层结构

浪潮集团通用软件公司 赵池龙 李文慧

返回


____与网络协议中的七层结构相似,信息系统也有自己的七层结构,只是没有被人们发现或重视而已。一次偶然的机会,我们发现了它的七层结构,如下表所示。

表1 信息系统的七层结构

____一、构成

____一般而言,用户在第1、2层上工作,程序员在第3层上工作,信息系统分析员在第4层上工作,DBA与系统管理员在第5、6层上工作,硬件安装与维护人员在第7层上工作。上述七层的相互关系是:下一层是上一层的基础,上一层是下一层的实现目标。由上向下是系统分析的过程,而由下向上是系统实现的过程。

____物理层由网络硬件及通信设施组成,它是网络操作系统的物质基础,为实现操作系统的各种功能而进行不同的硬件配置。

____OS层一般由Unix、Windows NT等操作系统组成,它支持、管理各种软件工具,为实现软件工具的各种功能而产生各种进程。

____工具层由各种DBMS、CASE、编程工具组成,它支持、管理信息系统的数据模型,并使数据模型能更好地为应用程序服务。

____数据层由信息系统的数据模型组成,它是信息系统的核心层。所谓数据模型,就是信息系统的E—R图加上与之紧密相关的各种数据字典。针对某个具体的DBMS,数据模型就具体化为基本表、中间表、临时表、视图、关系、索引、主键、外键、参照完整性约束、值域、触发器、过程和各种数据字典。这种具体的数据模型通常被称为物理数据模型,它支持相应信息系统的特殊功能,即支持特殊的功能模型。

____功能层是信息系统功能的集合,每一项功能对应一个图标或一个窗口,由鼠标激活后实现具体的功能。一个信息系统的基本功能项目是有限的,但基本功能项目的排列组合是无限的,有限的基本功能项目能支持无限的组合功能项目,即构成了信息系统的复杂业务模型。

____业务层是信息系统的业务模型,表现为各种各样的物流、资金流、信息流。这"三流 "的本质,在网络中集中表现为数据流,因为计算机只认识数据。

____用户层,用户通过鼠标与键盘操作信息系统,其操作方式是面向对象,而不是面向过程 ;是面向窗口界面,不是面向字符界面。因此用户是主动操作,不是被动操作,从而体现了用户是信息系统的主人,不是信息系统的奴隶。在用户主动操作的过程中,由有限的基本功能支持的无限的组合功能,由数据流的"一流"反映出来的"三流",将随着用户的指挥棒的指挥而得到淋漓尽致的发挥,充分展示信息系统的功能。

____由于Web浏览技术与MIS技术已合二为一,因此在浏览时可进行操作,在操作时可进行浏览。此时,用户层上的用户才会真正感觉到 "上帝"的滋味。

____二、工作机制

____信息系统七层结构从宏观上揭开了信息系统的内部"秘密",从微观上给设计者、实现者和用户指明了新的航向。

____工具层、OS层、物理层三层的有机组合与合理配置,属于系统硬件与系统软件的集成问题,是多数系统集成商所能胜任的工作,也是系统集成中最容易做的事情。它是整个信息系统集成的物质基础。

____数据层的最高目标是实现数据集成,它是信息系统集成的核心,是系统集成的重点和难点,是多数系统集成商想干而不敢干或不能干的事情。实现数据集成的方法是采用面向数据而不是采用面向功能的设计方法。

____只要企业单位的业务方向和业务内容不变,其元数据(Metadata)就是稳定的,而对元数据的处理是可变的。用不变的元数据对付可变的处理方法,就是面向数据设计的基本原理。面向数据设计的实现方式是使用CASE工具,如PowerDesigner 或 Designer/2000。它的关键技术是用E-R图来组织所有的元数据,产生信息系统的概念数据模型(CDM)。然后, 由CASE工具自动将概念数据模型转化为物理数据模型(PDM)。

____物理数据模型生成后,就可以用工具层中面向对象的开发工具,设计并实现功能模型中的各种功能,如录入、删除、修改、统计、查询、报表等各种操作。每项功能对应相应的图标或窗口,用户根据业务层的业务模型,随心所欲地进行操作,轻松愉快地实现企业网上的各种需求。

____信息系统的七层结构也揭示了信息系统建设的基本方法:系统分析是从第1层开始,由上向下直至第7层结束;而系统设计与实现是从第7层开始,由下向上直至第1层结束。由上向下的分析和由下向上的实现,就是七层结构的内部逻辑。作为开发信息系统的软件公司 ,主要工作是在第3、4两层。第4层是面向数据设计,第3层是面向对象实现。只要这两层工作规范有序,信息系统的零维护理想就能逐步实现。

____三、需要探讨的几个问题

____1.在数据层中设计数据模型的方法,到底用面向数据的方法还是面向对象的方法?

____在CASE工具出现前,人们用手工或其他Office工具来建立数据模型。在CASE工具出现后,人们开始用它来建立数据模型。工具虽然不一致,但目标却是一致的,都是为了在DBM S上建立稳定可靠的数据结构和相应的数据字典,与面向对象设计方法无关。建立数据模型的方法在面向对象方法提出前就已经存在了。

____在面向对象方法出现之前,建立数据模型的方法是在面向数据设计和面向功能设计中选择。因为面向功能设计不能构成稳定可靠的数据模型,当功能变更时模型跟着变更,给开发与维护带来了不便,因此这种方法很快就被淘汰。

____在面向对象方法出现之后,建立数据模型方法是在面向数据设计和面向对象设计中选择。这场争论正在进行,多数人主张面向对象设计,因为面向对象设计太时尚了,炒得太利害了,新名词铺天盖地而来。尤其在CASE工具中,一切目标(Object)都翻译成对象。实体、属性、关系、主键、外键、索引、触发器、过程、表、视图等都称为对象,并认为CAS E工具就是一种面向对象的设计工具。

____根据这种观点,建立数据模型的方法应该是一种面向对象的方法。那么这种观点是否正确?笔者认为这种观点至少不全面。全面正确的观点是数据模型设计的出发点是面向数据设计,即面向元数据设计,最终归宿(落脚点)是面向对象设计。或者说,由面向数据方法开始,导致面向对象方法终结,因为数据模型设计的输入主要是元数据,输出主要是表与视图,以及包含在表和视图中的有关操作。

____由此可见,在信息系统中,没有数据层的面向元数据的分析和设计,就没有功能层的面向对象的实现。面向数据是"基础",面向对象是"上层建筑"。在数据层中面向数据,在功能层、业务层和用户层中面向对象,这就是信息系统七层结构的设计与实现方法。

____在数据层建立数据模型是信息系统设计的中心工作。这项工作以面向数据开始,到面向对象结束。这种观点必须坚持下去,绝对不能动摇,直到关系数据库管理系统完全退出历史舞台、面向对象数据库管理系统完全占领数据库市场为止。

____2.面向对象设计、面向对象编程、面向对象实现、分布式对象、多层结构、COM/DC OM、CORBA等标准、Component(部件)等新生事物,到底在信息系统七层结构中的哪几层发挥作用?

____主要是在第三层即功能层发挥作用。在C/S结构中,功能层的工作完全由客户机来实现,这样的客户机被称为胖客户机。当出现了Web浏览器和Web服务器后,Web与数据库服务器形成三层或多层结构,客户机上的功能层工作向Web服务器或应用服务器上迁移,使得客户机上的工作大大减少,并由胖变瘦,成为瘦客户机。客户机瘦了,服务器都胖了吗?不一定,因为服务器由通用走向了专用,出现了专干某一类事情的服务器,如通信服务器、OA服务器、应用服务器、数据库服务器。服务器的专用化,使得单个服务器的任务不一定繁重 ,不一定都发胖。

____只要明确了这个问题,信息系统的设计者与实现者在面向对象与中间件的炒作中,才不会头脑发热,迷失方向。

____3.信息系统的七层结构与网络协议的七层机构有何关系?

____信息系统的七层结构是一个大型信息系统在分析、设计、实现中的七层结构。网络协议的七层结构,是一个或多个信息系统在运行过程中的相互通信的方式和规则。两者是两个不同性质的问题。

____4.信息系统的七层结构与应用系统的三层或多层体系结构有何关系?

____可以粗略地认为:应用系统体系结构中的客户层对应信息系统七层结构中的第1层与第2层,应用系统体系结构中的数据库服务器对应信息系统七层结构中的第4层与第5层。应用系统体系结构中的中间层对应信息系统层结构中的第3层。这种对应是大致的。

____我们的结论是:数据库设计的理论与方法没有过时,第三范式仍然有用,需要学习与采纳中间件等新技术。为了建设一个优良的信息系统,需要实现一个好的数据模型、功能模型和业务模型。选择好的数据模型、功能模型和业务模型,选择好的开发工具,构造好的系统集成环境,使七层结构中的每一层都互相匹配,互相依靠,互相支持,这就是信息系统的七层结构宣言。