第1章 三层架构技术
1.1 概述
客户端(Client)/服务器(Server)模式(以下简称 C/S 模式)开发出的应用程序目前依然在企业级应用中占据主流位置,由于这种模式具有软件开发周期短、软件部署简单、开发过程易于管理等优点,因此国内很多优秀的管理软件厂商的软件系统或软件平台均采用这种架构技术搭建,例如:用友、金蝶、SAP 等。在和农业部项目成员充分沟通后,了解清楚用户真实的想法和对实际未来项目的安全、性能、流程的要求后,农业部预算管理信息系统同样也是采用这种基础架构技术来搭建软件平台,因此这里有必要向大家简单介绍一下这种模式架构的相关知识。在常用的软件体系架构设计中,无论是 C/S 模式还是 B/S 模式(浏览器(Browser)/服务器(Server)模式的简称)在开发过程中,系统架构均搭建成分层式结构,这种结构是目前最重要的结构之一。微软公司向开发者推荐的分层式主体结构一般分为三层,从下至上或者从底层向表层的名称分别为:数据访问层(Data Access)、业务逻辑层(又或称为领域层,Data Logical)、表示层(UserInterface)。通常三层架构体系是在客户端与服务器端之间加入一个“中间层(英文名称为:Middle Layer)”,也叫组件层。这里所说的三层体系不是指物理上的三层,也不是简单地放置三台机器就是三层体系结构,更不仅仅是 C/S 应用才是三层体系结构,所以三层是指程序对接逻辑上的三层,即使软件系统的程序文件均放置到一台机器上,程序内部数据对接的时候也同样会表现为三层对接行为。三层体系应用程序将业务规则的处理、数据访问前的合法性校验以及部分用户权限、性能方面的处理等工作放到了中间层组件程序进行处理。通常情况下,客户端程序是不能直接与数据库或者数据访问层交互的,而是通过自主研发集成的系统接口用 COM / DCOM / Web Services 等通讯方式与中间层建立连接,再经由中间层与数据访问层进行交互,最后数据访问层从数据库获取数据后逐级向上返回,从而形成通顺的数据访问流和数据回流。下面从下向上具体介绍各架构层的具体作用:(1)数据访问层:主要作用是对原始数据(数据库或者文本文件等存放数据的文件流)进行访问的操作层,而不是指原始数据(一般说来原始数据是指数据库)。也就是说该层主要是对数据的操作,而不是指数据库自身。该层的主要作用为业务逻辑层或表示层提供数据操作管理服务,从前一层获取调用请求后分析,再根据请求类别进行如新增、删除。修改、查询等数据请求。(2)业务逻辑层:主要作用是针对具体的业务问题的操作,也可以理解成接收表示层传递的业务处理要求,分解要求后逐步向数据层发送操作请求同时对数据业务进行逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。这样用户的直接请求就会在业务逻辑层进行再次加工处理,从而降低服务器处理数据的负载,达到软件系统分布式请求的部署。(3)表示层或用户层:主要作用是以 Windows Form(Windows 视窗界面)或Web Form(浏览器网页页面)的方式向用户直接展示操作界面,更多的体现在用户的直接接触层面。无论前述的哪一种窗体用户界面的体验是否优秀,操作是否简单就是指该层的表现如何。如果业务逻辑层的处理能力足够强大和完善,无论表现层如何经过用户自主定义和数据更改,业务逻辑层都要能完善地提供服务。这样开发用户层的程序员就更加能够自主发挥。
1.2 三层结构的企业级应用
软件系统通过应用客户端程序提供与用户的交互平台,并向服务器提交数据请求(界面外观层);提交请求后,界面表现层对用户的数据按照业务逻辑层要求的接口参数封装规则封装用户数据请求和解析用户请求,然后调用业务接口对外提供的相应命令接口(界面规则层),业务逻辑层通过对数据进行解析分别将前端数据请求送入不同的逻辑处理并分别向用户返回处理结果(业务接口层);对于数据和命令的不同,处理方式也不同,我们将不同的处理方式都归类,并将接口层传入的数据及命令流入对应处理流程(业务规则层);这时,如果不同的处理流程分析数据和命令产生出对应的一个实体,这个实体根据其本身的属性和方法以及前一层传入的命令请求,将参数数据处理为数据访问层需要的接口参数方式,并向数据访问层提交访问数据库的请求,同时向业务接口层返回访问结果(实体层);数据访问层会将数据转化为数据库可识别的语句(T-SQL 或者 SQL PLUS),最后访问数据库,访问结果会使用规范的数据流返回给实体层(数据访问层);数据库层处理上层传入的 SQL,读写数据库内置对象,并根据其内置对象本身的关系对数据做进一步校验和处理(数据库层)。不论是基于 B/S 应用系统上的三层架构设计,还是基于 C/S 应用系统上的三层架构设计,根本程序原理上是一样的,所不同的只是两种方式常用的数据传输协议的不同,用户的操作体验方式不同,B/S 应用系统设计一般数据传递是通过HTTP 来完成的,C/S 应用系统设计则更多的是基于 TCP/IP 协议来传送数据的,当然,随着企业级应用系统对安全性方面要求的要求越来越高,更多的防火墙架设于物理线路之间,C/S 应用系统的设计也越来越多地趋向于 HTTP,典型的方式如:Client/API、CGI/Server Database;Client/Web Services/Server Database 等方式。上述方式的不同主要是中间层向客户端提供服务的方式不同,一般情况下这两种方式都需要架设专门用于受理客户端请求的 Web 服务器,很明显,它更进一步地体现了三层架构的安全性,也是两种架构技术的合并。中间层组件基于ISAPI/CGI 的方式可以说正在被 Web Services 的方式所取代,这也正是面向对象思想的进一步应用,当然也是各主流软件厂商拥护的方式。ISAPI/CGI 向客户端提供的服务实际上是远程调用函数,数据一般由程序员自定义结构存储,例如XML 文件流等,并基于 HTTP 与 Web Server 交互,而 Web Services 向客户端提供的服务是远程调用类,常常采用 SOAP XML 存储数据,并基于 SOAP 与 WebServer 的交互。两者的优劣势也很明显,前者较 XML 封装方式,数据量小,传输速度快,后者因为 XML 的臃肿速度上来说是它的劣势,不过它的安全性以及开发速度占有明显得优势。目前主流的国内 ERP 软件产品依然采用的都是 C/S 模式的三层结构,例如:用友 ERP 系列的 U8、U9,金蝶 ERP 系列的 K/3、EAS,SAP 的 R/3 等等。从这里可见,企业级的三层架构开发在市场运作上已经非常成熟。将这种成熟的软件架构技术运用到农业部预算管理系统中从根本来讲基础就是非常优秀的。
1.3 三层结构的技术实现手段
通常要开发一个三层结构的软件系统,实现的技术手段是必不可少,选择也比较多:中间件、通信协议以及交易模式。(1)中间件:中间件是构造应用服务器不可缺少的。目前在 Windows 平台下通用的三层结构中间件有下面几种: Midas、CORBA、COM/DCOM/COM 以及Asta。Midas 是 Borland 公司从 Delphi 3 开始达到应用级的产品,功能强大,也是Borland 公司的旗艇产品,可应用在 Windows 及 Linux 下; CORBA 是 OMG(对象管理组织)推出的产品,有强大的跨平台能力。COM/COM 是 Microsoft 的拳头产品,也是每次 Microsoft 都要宣传的理念之一,目前已整合到操作系统中。它的结构非常庞大,如果把 Midas 比喻成一只野马,那 COM 就像是一头狮子。狮子看起来比野马强壮很多,但要驯服它却很不容易。(2)通信协议(或连接方式): 通用的中间件连接模式有 TCP/IP(如 Socket)、DCOM、CORBA 等。程序员经常会把 DCOM 与 COM 混淆,实际是有区别的,COM 只是一种服务提供,而 DCOM 才能使 COM 真正发挥它的魅力,DCOM 在COM 的基础上增加了分布的概念。目前,微软又新推出了.NET,对 DCOM 进行了发展和完善。COM/COM 只能使用 DCOM 连接,CORBA 使用自己的连接协议。这里笔者还想提一下 DCOM,DCOM 连接虽然优点很多,但设置过于复杂,所以连Microsoft 也承认其缺陷。Microsoft 在.NET 平台中将首推 SOAP 连接协议,SOAP是建立在 HTTP 上层的协议,主要为了适应 XML 的发展,目前已得到许多大公司的支持(如 IBM、Oracle 等)。(3)交易模式:最著名的是 MTS,它的英文全称是 Microsoft TransactionServer,交易模式实现的功能非常多,比如,多段提交模式,其 Pooling 技术,也就是缓冲池技术,让数据提交更加安全、快速。很难想像,如果没有交易模式,三层结构要做什么:你要自己动手写大量的代码实现事务机制,如果解决得不好,还降低了程序的可靠性与速度。而 MTS 是建立在系统层的,可以帮助你解决许多本应在程序里解决的东西。还有一点要记住,目前市面上 Windows 开发平台上,只有 Delphi 与 VC 才能真正发挥 MTS 的功能。
第2章 预算管理系统需求分析 .........................................................................20-34
2.1 问题的提出 .........................................................................20-21
2.2 总体需求分析 .........................................................................21-22
2.3 功能需求分析 .........................................................................22-29
2.3.1 获取系统需求的方法 .........................................................................22-24
2.3.2 项目库管理......................................................................... 24-27
2.3.3 部门预算管理 .........................................................................27-29
2.4 系统应用环境及 .........................................................................29-32
第3章 预算管理系统设计与 .........................................................................34-64
3.1 系统设计 .........................................................................34-40
3.1.1 系统设计目标 .........................................................................34
3.1.2 系统总体设计 .........................................................................34-38
第4章 预算系统关键技术实.........................................................................64-78
4.1 系统实现总体情况......................................................................... 64
4.2 关键问题的技术解决 .........................................................................64-75
结论
本课题所要研究的是具有我国特色的部委预算管理信息系统,这是一项在行业中尚未发展成熟的专项电子信息化研究。本文以管理信息系统理论和数据库设计理论为基础,应用软件工程设计和开发思想,实现基于服务器客户端三层架构的农业部预算管理信息系统的设计与开发。在系统设计开发中以现代电子信息化管理思想为指导,以项目库数据管理为基础,创建部门预算的一上一下、二上二下流程的综合管理系统,以更有效的提高农业部各级单位的预算管理现代化,为将来应对更细致预算业务的全面信息化做好充分准备。本文在深入分析目前部委行政事业单位预算管理电子化的发展状况后,准确定位了管理信息系统的需求,和客户沟通后共同提出切合实际的系统构建框架。并根据管理系统的需求特点,确定采用方法对系统进行开发,在进行详细分析需求的基础上,确定了系统整体功能并进行了详细的模块划分。根据数据库设计理论对各个模块进行数据库基表的设计,在设计过程中不拘泥于单纯的理论,追求数据库设计的最佳使用效果。应用软件工程的设计开发方法进行若干模块的开发,在开发过程中使用面向对象技术实现系统与数据库的连接,采用大量的模块和类模块来实现代码的复用。农业部预算管理系统的实现,在一定程度上弥补了国内关于部委内部预算数据流转上报的信息化空白,由于各部委预算管理的共同性,可以将该系统应用于各个部委内部。