一、 应用程序结构的发展
1、简述发展过程
⑴概述
①第二次革命。进入九十年代以来,尤其是近两三年,应用软件平台发生了革命性的变革,有人称之为第二次革命。
②需求极具广泛性。这种变革与应用市场需求及其解决方案的多样性和复杂性是相辅相成的,今天的开发人员所面临的商用需求极具广泛性:A.将传统的客户机/服务器应用程序发展成多层应用程序,以胜任与企业级相适应的各种任务。B.利用Internet/Intranet技术,构建Web应用程序,解决新的需求。
③新一代计算机管理系统平台的阵营。对软件方案解决需求的增长,要求开发人员在应用程序开发中使用多种软件产品。基于技术的多层B/S(Browser/Server)结构、基于组件(又称部件或构件)软件开发的新型软件开发技术、及新型套装开发工具软件构成了新一代计算机管理系统平台体系结构。这种体系结构代表了全球应用软件技术发展的必然趋势。从国外ERP巨商SAP公司的R/3到国内用友公司的UFERP以及金蝶公司的K/3等都加入了新一代计算机管理系统平台的阵营中。
⑵简述单层应用软件
①没有层次概念。通常一个应用程序包括了所有的用户界面、业务规则以及数据处理。
②庞大。单层应用软件由于包含了所有的应用逻辑,从后台最基本的数据处理,到前台对用户的响应以及处理结果的显示,所以应用软件往往比较庞大。
③不利的因素:在设计阶段,要求设计人员必须面面俱到,从复杂的逻辑结构中整理出程序设计文档;在开发阶段,软件开发人员之间的协作也比较困难;在测试和维护阶段,对软件的局部变动可能会影响到整体;软件发布之后,为适应新的需求,在开发新版本软件时,往往全面调整甚至废弃原来大量的代码,所以单层软件的版本升级往往比较慢。
④优点:程序的运行效率往往比较高,对用户的响应也比较快。
⑤例子:Microsoft Word就属于单层应用软件,用户界面是程序的一部分;业务规则,比如比如分页、样式处理等也是应用的一部分;文件访问过程,包括文档数据的维护,也是应用程序的一部分。
⑶客户/服务器结构
①结构。应用程序分成客户程序和服务器端程序两部分,称为客户服务器结构。
②客户端和服务器端的作用。A.用户界面和业务规则在应用程序的客户端,数据维护在服务器端实现。传统意义上的客户服务器模型就是指这种应用结构。B.业务逻辑放在数据库系统中。用存储过程来维护数据的应用系统即属于此类应用。
⑷三层(多层)结构
①三层(多层)式应用软件本质上也是客户/服务器结构的应用软件。在客户服务器结构中,如果把业务规则放在客户端,则往往是客户端非常笨重;如果把业务逻辑放在服务器的,往往难以实现数据库系统中实现复杂的业务规则。
②业务规则单独提取出来,构成了中间层,形成真正的分布式应用系统。在多层应用结构(包括三层应用中),客户层(也称为表现层)提供用户界面,它根据用户的操作作出相应的反应,它永远不会直接访问后台数据库;业务逻辑层是负责处理所有用户的请求,并把处理结果反馈给客户层;服务器层仍然提供数据库支持,称这一层为数据层。多层应用结构要求层与层之间必须有明确的接口定义,从而保证多层之间可以协作完成应用任务。业务层作为表现层和数据层的中间服务层。必须保证所有的业务逻辑被正确处理。
③优点:首先,三层可以运行在不同的机器上,如果应用的业务逻辑比较复杂,可以使用高配置的计算机来运行业务层;如果应用的数据量很大,我们可以采取分布式的数据库来作为应用的数据存储结构。其次,只要层与层之间的接口保持不变,那么某一层的变化不会影响到其它层。
2、COM的由来
(1)定义。com,即组件对象模型,是一种以组件为发布单元的对象模型,这种模型是各软件组件可以用一种统一的方式进行交互。它既提供了组件对象之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间交互的规范不依赖于任何特定的语言,所以它也可以使不同语言协作开发的一种标准。
(2)历史。Microsoft最初并没有刻意发展这一种组件化系统,但是随着桌面窗口系统中应用程序之间的交互不断深入,OLE技术不断发展,在发展过程中产生了COM。其使用的广泛性远远过了OLE所具有的能力,哪么什么是OLE呢?从字面上来看就是对象的链接与嵌入,他的第一个版本,仅能表达复合文档的概念,基础是动态数据交换(DDE),但是随着OLE的进一步发展,Microsoft逐渐地把基础定义在COM上。它主要应用在Windows环境中,ActiveX控件是最常见的COM组件。
二、 三层(多层)式应用软件结构
1、建立在COM基础上的三层应用结构
(1)结构示意图
包括:表现层、业务层和数据层
(2)表现层
①直接面对客户,与数据是分离的。
②工作过程。把用户的操作转化成一些对业务层接口函数的调用,当业务层返回结果后,把结果展现给用户。因此,客户机上的应用程序往往比较简单,对机器的资源要求以比较低,只要客户机能够访问中间业务层即可。
③两种情况:A.VBA应用程序作为客户应用。如用Excel、outlook等提供VBScript环境的应用程序。B.Internet浏览器为客户应用。浏览器除了可以解释Web页面标志并显示结果之外,它还可以解释执行VBScript和JavaScript。
(3)业务层
①整个应用系统的核心,它体现了整个系统的功能。一般来说,在整个软件需求中,要求我们解决的问题,或者要求我们整个应用系统中所提供的功能,都会在业务层有所反映。
②中间层由业务组件构成。这些业务组件从实际的业务规则中提取出来。在现实活动中,我们可以采用面向对象建模的办法,分析整个业务活动中涉及的对象,考察它的动态模型和功能模型,从而建立包含业务逻辑的组件对象。
②业务组件可以由MTS来管理。MTS提供了对象管理器、安全管理器、事务管理器等,可以简化编程,并提供并行环境。
(4)数据层
①数据层通常由数据库系统来实现,一般与业务逻辑层不在同一台机器上。但往往离得比较近,以便于数据快速传输。但也有可能离得比较远,可能相隔重洋。数据库系统的选择影响到系统的规模、与其他系统的兼容性的因素。
②ODBC是访问数据库系统的公用接口标准,最新的有OLE DB等。ADO与OLE DB构成了一致的数据访问接口。
2、 MTS管理程序
①对象管理器,可以管理我们的业务组件,主要包括,在运行时创建我们的对象组件,一直到用户删除对象。它可以使我们的应用程序运行更加稳定、可靠和安全。
②安全管理器,它安全模型可以直接为应用系统所用。角色名称可以是对于应用有意义的名字。
③事务管理器,可以大大简化对数据的操作,尤其是应用分布式数据库建立起的应用系统。
三、 三层(多层)式应用软件的设计简介
1、用COM设计Web应用
(1)所谓的Web应用就是Internet浏览器作为我们的应用系统的用户界面,接收用户操作信息,调用中间层的业务逻辑组件,由我们的业务逻辑组件,根据业务规则去访问数据库,达到操作业务数据的目的。
(2)Web应用的基本结构。软件配置主要包括:Internet浏览器、Microsoft IIS、静态HTML页面、动态ASP页面、客户方ActiveX控件、服务器方ActiveX控件以及数据库管理系统。
(3)一个应用实例简介。该应用程序运行在浏览器上,看上去跟普通的应用应用程序一样。但是,它是基于三层式应用的程序,我们看到的只是它的用户界面部分,也就是表示层,我们通过按扭来调用服务器端的业务逻辑对象。来操作业务数据,达到操作业务的目的。这只是一个简单的示例程序。不但实现的功能简单,而且在程序中没有包含错误处理,但错误处理在真正的应用程序中是一个很重要的组成部分,代码量往往占到整个有系统的百分之八十左右。
2、实现过程简述
(1)问题陈述:成绩查询系统是一个查询学生成绩的应用程序,它还要提供简单的学生档案管理和课程信息管理。
(2)系统需求:①学生信息的录入,包括:学生的学号、姓名。②学生信息的删除,能根据提供的学号删除指定的学生信息。③科技信息的录入,包括:课程代码、课程名称。④课程信息的删除,能根据提供的课程代码删除指定的课程信息。⑤成绩的录入,成绩录入包括:课程代码、学号和学生成绩。⑥能根据学号查询学生成绩单。
(3)系统分析:考察整个查询成绩的过程,得出,查询学生成绩主要涉及到学生信息、课程信息和成绩单等对象。画出对象模型图,功能模型图和动态模型图。分出表示层类、业务层类以及数据层的存储实体。
(4)系统设计。①将数据层的存储实体影射成表结构(关系数据库),定义主码和外来码,并用BCNF范式校核,进行模式分解、优化。②将业务层的类影射成VB中的类和组件③将表现层的类影射成Web中的类和组件
(5)系统实现。①生成数据库及表②利用CASE工具生成组件的框架后编码实现组件(ActiveX控件)③构造界面,编写调用业务组件的代码等④测试和实施
(6)工具主要有:Rational Rose、VB、FrontPage、Visual InterDev等。
3、常见的CASE工具与开发工具
a、 CASE工具:如:Rational Rose 与 Microsoft Visual Modeler等
b、 前端开发工具:VC++、VB、FrontPage、Visual InterDev、Excel、PB、Delphi、C++Builder等。
c、 COM组件开发工具:VC++、VB、Delphi、C++Builder等。