欢迎访问中国古代历史网!

我国农业部预算管理信息系统设计与实现

时间:2021-03-10 20:47作者:中国古代历史网

第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 等等。从这里可见,企业级的三层架构开发在市场运作上已经非常成熟。将这种成熟的软件架构技术运用到农业部预算管理系统中从根本来讲基础就是非常优秀的。