Software 版 (精华区)
发信人: checcy (老巴夺), 信区: Software
标 题: 客户/服务器 + N-Tier + Web + 组件 = ACA(上)
发信站: 哈工大紫丁香 (Fri Apr 24 20:35:02 1998), 转信
客户/服务器 + N-Tier + Web + 组件 = ACA(上)
霍军
N层体系结构的需求
N-Tier——多层体系结构,这个在1995年还很少有人谈到的名词,现在在业界已经被广泛
地接受了。多层体系结构,简单地说就是对传统的客 户/服务器的两层体系结构进行了扩展
,在客户端和服务器之间增加了应用服务器层,在应用服务器中实现主要的商业逻辑。
我们为什么需要多层应用体系结构?为什么多层应用体系在近两年被用户和厂商迅速接
受?原因主要有以下五点:
1.Internet和Web的发展。一个基于Web访问数据库的应用必须是一个三层或N层的体系
结构,因为需要扩展Web
Server来实现商业逻辑和访问数据库的功能。为什么现在更多的用
户要将已有的系统向Web扩展?如果我们从构造应用系统的三个重要环节进行比较,就会发现
基于Web的应用比传统的、单一的客户 /服务器应用有很多优点。请看下面的比较:
基于Web技术构造应用系统可以显著降低用户的维护和
提交费用,用户也会对统一的界面(browser)和相对简化的操作感到满意。所以Web应用的需
求迅速增长,而N层的体系结构也就深入人心了。
2.用户在大型联机应用系统中需要中间层帮助完成复杂的更新逻辑(Transaction
Se
rver事务服务器)。在大型的联机应用中,数据库面临的客户数量是非常庞大的,使用传
统的客户
/服务器模式可能根本无法胜任。例如,可能有上千个客户机在同时运行,需要访问
数据库。如果它们的请求都直接传递到数据库服务器上,就必须要有非常强大的硬件支持。
例如,国内正在进行的全国铁路客票系统,这是一个全国的、大型的、紧密一致的联机应用,
全国上千个受票点在联机地访问数据库。该系统的开发者就在利用Sybase
OpenServer编写
应用服务器和事务服务器,这样所有异地传递来的更新请求都会首先由事务服务器处理,而不
是直接传递给数据库服务器。
虽然有很多客户机连接到事务服务器上,但是从事务服务器到数据库的连接个数是有限
的。例如,可能有100个客户机连接到事务服务器上,但是数据库看到的连接只有20或30而已
。这样在用户数量很大的情况下,数据库仍能保持良好的工作负载,保持系统的响应速度。这
就是事务服务器实现的重要功能——连接缓冲(Connection
pooling)。现在厂商提出的N层
体系结构中(例如Sybase的ACA体系结构),都提供更加完整的、优化的连接和事务管理功能,
包括两阶段提交。因此N层的结构不仅仅是Web的要求,随着应用系统对性能要求的增长和用
户数的增加,采用N层结构是必然的。
3.多层体系结构可以提供更好的安全性管理。因为未来的应用系统可能非常综合,既
包括典型的客 户/服务器应用结构,又有基于Web的应用。系统的数据除了在组织内部
共享外,其中一部分又要面向公共的用户,应用系统的类型会包括关键任务的联机应用。因此
必须能够保证从客户端到数据库访问的安全性。客户端可以是传统的客户/服务器开发工具
,如PowerBuilder开发出来的应用系统,也可以是基于浏览器的Web应用。有了中间的应用服
务器和事务服务器就可以提供灵活的安全管理对象和安全协议的支持。例如:Sybase
Jagua r
CTS就可以支持从浏览器到Jaguar的SSL安全协议,Jaguar中的对象又可以通过ACL控制访问
权限。从Jaguar到数据库的安全性又可由数据库安全机制和Jaguar提供的安全机制来保障。
因此N层的结构是客户/服务器结构和Web相融合的要求,是系统扩展的必然结果。
4.大量的遗留数据和异构数据源需要集成和访问。这种情况需要中间层提供广泛的异构
数据访问和复制能力。
5.业界不断出现成熟的对象分布标准。Microsoft提出的ActiveX,OMG定义的CORBA以
及Sun的JavaBean,这些标准都可以很容易地将商业逻辑封装起来,分布在网络上进行访
问。例如:我们可以通过DCOM访问分布在网上的ActiveX,利用IIOP访问CORBA对象,利用RMI访
问JavaBean。而且许多厂商提出的技术可以让这些对象互相访问,不仅仅局限于一种对象。
现在Sun和Microsoft就在一起开发JavaBean ActiveX
bridge;CORBA则完全可以将各种对象
集成。Sybase推出的Jaguar
CTS可以让各种对象混合使用,用户可以用Java访问放在Jaguar
中的各种对象,如ActiveX、C/C++、CORBA、JavaBean、PowerBuilder
NVO等,用户甚至可以
使用JDK 1.0.2的Java Applet访问利用JKD
1.1编写的JavaBean。正因为这些分布式对象和
通讯协议的成熟,才使N层结构得以容易地实现。人们放在任何层次的对象都可以很容易地访
问其它层次上的对象,同时这些对象通讯协议也会根本地改变当前Web的技术。这一点我们在
后边还会详细介绍。
从上述五点我们可以看出N层的结构已经在应用需求和当前技术的推动下走向成熟,并被
广泛采用。如果我们对当前的N层结构进行归纳,就可以提出一个更加清晰的体系结构。
我们将N层应用系统的结构概括为访问层、调和层和资源层三层。访问层提供所有的前
端界面和展现简单的商业逻辑。它们可以通过HTTP、数据库访问协议和对象通讯协议访问调
和层的对象和服务,来实现对资源层的访问。调和层主要完成安全管理、事务管理以及各种
访问服务,这些服务可以通过封装的对象来完成(如CORBA、ActiveX等),同时也提供异构数据
源的集成和数据复制功能。资源层则主要提供各种资源,包括传统关系型数据的存储、特殊
数据类型的支持、数据仓库等等。另外,新型的数据库产品还可以提供更广泛的商业逻辑支
持。例如:Sybase Adaptive Server Enterprise 11.5(SQL Server
11.5)就可以提供用Jav
a编写存储过程的功能;而Sybase Adaptive Server Anywhere(SQL Anywhere
6.0)还可以建
立以Java类为数据类型的表,从而实现面向对象的数据库功能。(未完待续)
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: NoSpamPlease@Somewhe]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.428毫秒