|
知识路径: > 计算机软件与网络基础知识 > 系统配置与性能评价 > 多层结构、分布式系统 > 分布式系统 > 分布式系统设计 >
|
相关知识点:3个
|
|
|
|
当前,一般的Web应用程序大都采用三层B/S架构:用户通过在浏览器中输入一个URL向Web服务器发出一个请求,Web服务器接收到一个请求后,通过一些动态Web技术(如ASP、JSP等)处理请求,并和服务器端数据库系统或文件系统进行交互,得到响应结果,并将响应结果返回到用户的浏览器端,从而完成一次请求/响应的操作,在这个过程中,数据的传输是通过HTTP协议完成的。这种应用系统的框架结构如下图所示。
|
|
|
|
|
|
在分布式网络环境下,信息系统管理的对象种类繁多,有文本、表格、图形、多媒体文件等,版本、格式关系非常复杂,对这些数据对象的处理过程也同样复杂无比,花费的时间也长,一般都是长事务处理,系统对可靠性和安全性的要求也高。另外,在企业流程管理、产品管理上都需要用户和浏览器端有较为复杂的交互。传统的B/S架构虽然能满足一定的要求,但其不足也比较突出,具体表现如下:
|
|
|
(1)普通的Web应用程序一般都运行在Web服务器上,Web服务器的负载十分繁重。
|
|
|
(2)由于HTTP协议不是面向连接的协议,而是无状态、无连接、以文档描述为基础和基于页面的协议,一次连接只能实现单项数据浏览,不能进行双向数据传输。
|
|
|
(3)目前的HTTP存在着客户端在一次TCP连接中不能实现多次访问,只能进行一次访问。
|
|
|
(4)基于HTML和ASP等脚本语言的页面文档浏览技术不能保存已经浏览过的页面,以及以页面为基本元素的访问机制,这必然造成占有大量网络通信带宽和服务器处理时间。
|
|
|
(5)基于HTML和ASP等脚本语言的Web页面一般只能让用户和浏览器端进行较为简单的交互,不能完成用户和浏览器的复杂交互。
|
|
|
由于存在上述一些缺点,所以采用传统B/S架构的系统难以进行大规模事务处理以及大量的实时用户交互。
|
|
|
|
分布式对象技术是指采用面向对象技术开发的两个或多个软件共享信息。这些软件既可以在同一台计算机上运行,也可以通过网络在几台不同的计算机上运行,它主要解决如何在分布系统中集成各组件的问题。使用分布式对象技术主要有以下优点:
|
|
|
(1)通过分布式环境动态配置,带来软件框架结构的可扩充性。
|
|
|
(2)通过分布式方式共同完成一项复杂任务,因此可在许多不同的计算机上平衡计算负载。
|
|
|
(3)能够使软件开发中的各个部分更加高效、可靠,并且透明地进行合作。
|
|
|
(4)通过请求与服务的分离提高软件的模块性和可移植性。
|
|
|
(5)能够使得多种软件紧密合作,有利于与其他系统进行集成。
|
|
|
基于上述分布式对象技术的优点,可以将分布式对象技术和传统B/S架构结合起来,构建分布网络环境下的系统。这样,就可以利用分布式对象技术的分布开发特性和Web的集中管理特征,充分发挥分布对象技术和B/S架构的优势。
|
|
|
在10.1.2节中,我们介绍了目前国际上分布式对象技术的三大流派:CORBA、COM/DCOM和EJB,不同的分布式对象技术对应不同的情况,适用性也不同。但采用3种分布对象技术构建的系统架构是相同的,只是系统内部实现技术的细节不同,下图给出了其结构图。
|
|
|
|
|
在用户层利用Web页面的HTML语言和JavaScript等脚本语言,使用浏览器与用户交互,将用户的操作转化为业务指令,处理过程是:首先,客户浏览器向Web服务器发出一个请求,这个请求的请求对象是一个HTML页面或者是ASP、JSP脚本等脚本页面,Web服务器接收到这个请求后,执行页面文件对应的解释程序来解释执行相关的脚本程序,从而得到返回结果,并将结果以某种可显示的方式展示给客户。当需要访问数据库时,由脚本程序通过一些底层协议,如ODBC、JDBC,访问数据库。
|
|
|
在浏览器的HTML页面或脚本页面中内嵌一些Java Applet或ActiveX控件对象插件,这些插件对象能够帮助完成一些复杂事务,并使得用户和浏览器之间能够实现一些复杂交互。当浏览器端这些Applet或ActiveX控件对象需要和服务器端进行交互时,通过另外一些特定的协议,如IIOP、COM、RMI等,来访问事务服务器,事务服务器中利用分布对象技术开发的对象远程调用这些对象的方法,由事务服务器完成请求的动作。
|
|
|
数据层需要统一的数据管理的支持,逻辑层可以通过ODBC、ADO、JDBC直接访问数据库。在集成系统中可以规定数据层用户的访问权限,也可以利用工作流程管理对用户操作进行一些控制。
|
|
|
在这个架构中,处理逻辑层的事务服务器是比较关键的部分,事务服务器负责管理所有业务逻辑,并提供运行环境,不仅可以简化编程,还可以获得广泛的灵活性,是实现可操作、可重用、可移植的分布应用系统的关键。它能够同时提供大量用户会话和数据库连接,而且需要提供内置事务管理能力和事务管理机制,同时支持异步和同步事务处理、分布对象管理、分布对象调用和应用通信,包括安全控制等。
|
|
|