三层C/S结构应用实例——连锁超市管理系统1.系统背景介绍1.1任务概述该连锁超市是具有一定规模的大型私有企业,其通用的管理系统是针对超市的运营特点以及对信息的存储方式而特别设计的,该系统的基本信息如下:①信息量大,须存储类别众多的货物信息,人事管理信息等。
其分布在十几个城市的各个分店的所有信息都需要进行统一管理。
②单位众多,分布广,系统涵盖的单位达100多个,分布在各个中小型城市。
1.2用户特点用户类型多,数量大,各类信息管理涉及行政管理(一级)、人事管理(二级)、基础管理(三级)等三级层次,各层次的业务职责不同,各层次的管理者对系统的查询功能和权限也不同。
1.3硬件条件网络发展的环境各不相同,由于各地区的条件以及操作能力有限,某些中小型地区只有单机,需要陆续加入广域网。
1.4 设计目标项目要求系统应具备较强的适应能力和演化能力,无论单机还是网络环境均能运行,并能保证数据的一致性,且能随着网络环境的改善和管理水平的提高,平稳的从单机向广域网过渡,从集中式数据库向分布式数据库方式,从独立的应用程序方式向适应Intranet环境演变。
1.5 需求规定1.5.1 数据管理能力要求系统的输入由程序设计而提示用户输入功能选择命令,当需要对系统中的数据库进行更新时,必须以完整的格式化的文件化的形式进行输入。
以此保证数据库中的数据的一致性和完整性。
同时系统支持不同地区的用户通过服务器同时对数据库中的数据进行访问。
该系统为一个典型的分布式软件体系结构。
1.5.2 故障处理要求系统在出现故障时,原始未出现错误的数据,任可以提供给用户访问,当用户要求访问的数据为故障数据时,提示用户系统正处于维护状态。
为避免故障的产生对数据的影响,将数据备份在磁盘或者或者硬盘中,通过日志文件,将数据的操作更新至备份数据中。
同时,要求系统具有极强的可维护性,和容错与纠错能力。
在系统发生故障时,能对故障进行及时的处理。
恢复之后的系统,较之于以前,更坚强与牢固。
2.系统分析与设计三层C/S体系结构运用事务分离的原则将系统应用分为表示层、功能层、数据层三个层次,每一层次都有自己的特点,如表示层是图形化的、事务驱动的,功能层是过程化的,数据层则是结构化和非过程化的,难以用传统的结构化分析与设计技术统一表达这三个层次。
面向对象的分析与设计技术则可以将这三个层次统一利用对象的概念进行表达。
当前有很多面向对象的分析和设计方法,我们采用Coad和Yourdon的OOA(object-oriented analyzing,面向对象的分析)与OOD(object-oriented design,面向对象的设计)技术进行三层结构的分析与设计。
在该系统的三层结构中,中间的功能层是关键。
运用该系统的应用程序的最基本的就是执行数千条定义业务如何运转的业务逻辑。
一个业务处理过程就是一组业务处理规则的集合。
中间层反应的是应用域模型,是该系统的核心内容。
Coad和Yourdon的OOA用于理解和掌握该系统应用域的业务运行框架,也就是应用域建模。
OOA模型描述应用域中的对象,以及对象间各种各样的结构关系和通信关系。
OOA模型有两个用途。
首先,每个软件系统都建立在特定的现实世界中,OOA模型就是来形式化该现实世界的“视图”。
它建立起各种对象,分别表示软件系统主要的组织结构以及现实世界强加给软件系统的各种规则和约束条件。
其次,给定一组对象,OOA模型规定了它们如何协同才能完成软件系统所指定的工作。
这种协同在模型中以表明对象之间通信方式的一组消息连接来表示的。
OOA模型划分为五个层次或视图,分别如下:①对象-类层。
表示待开发系统的基本构造块。
对象都是现实世界中应用域概念的抽象。
这一层是整个OOA模型的基础,在连锁超市管理信息系统中存在100多个类。
②属性层。
对象所存储(或容纳)的数据称为对象的属性。
类的实例之前互相约束,它们必须遵从应用域的某些限制条件或业务规则,这些约束称为实例连接。
对象的属性和实例连接共同组成了OOA 模型的属性层。
属性层中的业务规则是该系统中最易变化的部分。
③服务层。
对象的服务加上对象实例之前的消息通信共同组成了OOA模型的服务层。
服务层中的服务包含了业务执行过程中的一部分业务处理逻辑,也是该系统中容易改变的部分。
④结构层。
结构层负责捕捉特定应用域的结构关系。
分类结构表示类属成员的构成,反映通用性和特殊性。
组装结构表示聚合,反映整体和组成部分。
⑤主题层。
主题层用于将对象归类到各个主题中,以简化OOA模型。
为了简化该系统,将整个系统按业务职能划分为8个主题,分别为:员工基本信息管理,工资管理,货物库存管理,货物调度管理,货物销售管理,信息查询系统,系统维护管理和系统安全控制。
在OOD方法中,OOD体系结构以OOA模型为设计模型的雏形。
OOD 将OOA的模型作为OOD的逻辑设计模型,同时以三层C/S结构以基础类型实现。
将上述五个层次分别映射在表示层,数据层,应用层上。
3.系统实现与配置每个C/S环境,从最小的LAN环境到超级网络环境,都使用某种形式的中间件。
实际上,无论客户机何时给服务器发送请求,也无论它何时应用存取数据库文件,都有某种形式的中间件传递C/S链路,用以消除通信协议、数据库查询语言、应用逻辑与操作系统之间潜在的不兼容问题。
中间件是C/S环境中最重要的部件。
所谓中间件是一个用API定义的软件层,是具有强大通信能力和良好可扩展性的分布式软件管理框架。
它的功能是在客户机和服务器或者服务器和服务器之间传送高级通信,将客户机群和服务器群有机地"粘合"起来。
其工作流程是:在客户机里的应用程序需要驻留网络上某个服务器的数据或服务时,搜索此数据的C/S应用程序需访问中间件系统,该系统将查找数据源或服务,并在发送应用程序请求后重新打包响应,将其传送回应用程序。
三层C/S体系结构提供了良好的结构扩展能力。
三层结构在本质上是一种开发分布式应用程序的框架,在系统使显示可采用支持分布式应用的构件技术实现。
当前,已有三种分布式构件标准:Microsoft的DCOM、OMG的CORBA和Sun的JavaBeans。
这三种构件的标准各有特点。
考虑到在该项目应用环境的客户端和应用服务器均采用Windows 98/2000和windows NT/2000,我们采用在这些平台上具有较高效率的支持DCOM 的ActiveX方式实现客户端和应用服务器的程序,同时使用新兴的TP 监控器技术。
TP监控器在中间件技术中扮演着越来越重要的角色,特别是在三层C/S系统中。
据Standish Group的调查,TP监控器是近两年信息业界最热门的技术之一。
1996年有57%的关键应用是构筑在TP监控器上的。
TP监控器擅长提供事务性语义,允许就环境速度和可靠性进行编程。
作为一种中间件,TP监控器提供一种用于编写分布式应用程序的API,它通常包含一组强大的管理工具。
TP监控器是一个高性能、高并行性、多用户的快速响应软件运行环境,它能有效地管理大量的并发任务,进而提高系统资源的利用率。
如果采用TP监控器,系统总投资可节约30%以上,开发周期可缩短40%~50%。
大多数投入应用的三层应用系统都配备有一套事务处理监控系统,BEA TUXEDO是目前应用最广泛的事务处理监控系统。
BEA TUXEDO是用于分布计算的中间件基础结构,它使开放式应用系统具有高可缩放性、高灵活性和高可维护性。
它不仅具有分布式交易处理和应用间报文通信的功能,而且具有一系列极其完善的服务,可帮助企业建立和运行应用系统,使开发人员能够建立跨越多个平台、数据库和操作系统的应用程序。
这样,可以灵活选配操作平台以充分适应应用环境。
它具有以下特点:1、支持多种软硬件平台。
完全符合Open Group的X/Open标准,支持TCP/IP协议,支持包括Unix、Windows NT、AS/400和大型机专用系统在内的70多个硬件平台和操作系统。
2、结构开放、灵活。
模块结构以高级程序接口ATMI(Application-to-Transaction Manager Interface)为中心,有丰富的ATMI函数可供调用。
3、开放的联机事务处理。
可提供诸如事务性语义、透明的二段式提交、事务记录及分布事务处理管理结构等功能。
4、与DCE的结合。
通过一套工具和程序库,实现了与Open Group 组织的分布计算环境DCE的有机结合。
5、功能丰富,包括:应用管理;事件代理;通过鉴别服务、授权服务和数据加密服务,为客户提供安全保证;对COBOL语言的支持;应用动态调节、负载平衡等保证高可靠性的功能等。
目前,用三层C/S结构开发的应用还不太多,但其数量的确在逐日增加。
具有下述特点的应用应考虑采用三层C/S。
1、应用的服务或种类超过50个;2、应用是用不同语言编写的;3、两个以上的异构数据源,如2个不同的DBMS或1个DBMS和1个文件系统;4、应用的生命周期超过3年;5、高工作负荷,例如每天超过5万个事务处理或在同一系统访问同一数据库的并发用户数超过300个;6、有至关重要的应用内部通信,包括像电子数据交换(EDI)这类企业的内部通信。
为将应用程序划分到不同的构件里面,我们引入“服务模型”的概念。
服务模型提供了一种逻辑性(而非物理性)的方式。
“服务模型”是对所创建的构件进行分组的一种逻辑方式,这种模型与语言无关。
服务模型是基于这样的一个概念:每个构件都是一系列服务的集合,这些服务由构件提供给其他对象。
创建应用方案的时候,共有三种类型的服务可供选择:用户服务、业务服务以及数据服务。
每种服务类型都对应于三层C/S体系结构中的某一层。
为实现构件间的相互通信,必须遵守两条基本的规则:①一个构件能向当前层及构件层上下的任何一个层和其他构件发出服务请示。
②不能跳层发出服务请求。
用户服务层内的构件不能直接与数据服务层内的构件通信,反之亦然。
在连锁超市管理信息系统的实现中,将主题层的八个主题分别用单独的构件实现,这样,系统可以根据各单位的实际情况进行组合,实现系统的灵活配置。
而且这些构件还可以作为一个部件用于构造更大的系统。