外文翻译

摘要——在对C/S和B/S模式的特征的完全分析的基础上,在化学的同分异构体的启发下提出了C/S和B/S混合架构。C/S和B/S混合架构在软件可靠性与可维护性测试平台的应用证明了这种模式可以满足更多平台的功能需求。

关键字——客户端/服务器;浏览器/服务器;C/S和B/S混合架构;软件可靠性与可维护性测试平台

I. 介绍

关于软件架构开发模式,有很多种软件架构被提出,如客户端/服务器模式,浏览器/服务器模式,过滤器模式,抽象数据和面向对象组织模式,等等。从不同的角度设计,这些架构的应用场景是不同的。实际上,不存在各种不同的软件架构风格。可以将两种或更多种架构样式组合并应用于一个系统。我们称这种复杂的风格为异构架构[1]。通过从他人的长处学习以弥补其弱点,这种异构的架构样式可以帮助全面描述系统需求并提高软件开发的性能。

II. C/S架构

A. C/S架构的框架

两层客户端/服务器软件架构风格最初是为资源共享而开发的,并在上世纪末逐渐成熟。在两层C/S架构下,系统分为数据库服务器和客户端。如图1所示。数据库服务器负责管理数据,客户端负责与用户的交互。

在实际应用中,通常将ORACLE之类的数据库用作数据库服务器,始终采用诸如Microsoft Visual Basic6.0之类的可视编程语言制作客户端。客户端上安装的软件可以帮助用户通过ODBC或ADO与数据库服务器通信。两层C/S架构具有强大的数据管理和事务处理能力。此外,它简单易懂。但是,随着系统的扩展和软件复杂度的增加,两层C/S样式的弊端愈发明显。

  • 两层C / S体系结构样式无法扩展到互联网。
  • 集成能力有限。
  • 客户端负载很重。数据处理和事务处理中使用的数据需要从数据库服务器传输到客户端,这会使性能越来越差。
  • 不能保证数据的安全性。由于客户端上安装的软件可以直接访问数据库服务器,因此其他客户端程序也有机会访问数据库服务器,这极大地威胁了数据库的安全性。
  • 客户端软件的升级和维护非常困难且成本很高。添加或升级客户端时,相关文件应全部安装在客户端上。此外,无论何时修改系统,都应通知每个客户端及时更新。

综上所述,二级C/S架构存在许多缺陷需要改进,以满足日益增长的系统需求。在这种情况下,提出了三层C/S架构,可以克服二层C/S架构的上述缺点。三层C/S架构在数据库服务器和客户端之间添加了一个应用服务器,并将系统分为表示层,功能层和数据层。参见图2中的结构和图3中的流程。
Figure 2.  Three-tier C/S architecture style
Figure 3.  Flow of three-tier C/S architecture style

  • 表达式层被视为用户与客户端应用程序之间进行通信的用户界面。该层的主要任务是检查用户输入或输出的数据。不管事务处理逻辑如何,检查的数据都受限于格式和值。当UI更改时,只需要修改用于显示控制和数据检查的程序,而功能层和数据层则不受更改的影响[2]。
  • 功能层称为事务处理逻辑层,负责对详细的事务处理逻辑进行编程。通常,在此层中管理访问应用程序和数据库以及记录系统处理逻辑的功能验证。可视编程语言通常在这一层中使用。
  • 数据层,即数据库管理系统(DBMS),负责数据的读写。DBMS必须能够执行大量数据的更新和搜索。因此,在此层中主要采用SQL进行功能层和数据层之间的数据传输。

通常,表示层在客户端都是配置好的,而功能层和数据层则分别放置在应用程序服务器和数据库服务器上。应用程序服务器和数据库服务器之间存在数据传输。因此,将三层放置在不同的系统上,大大提高了系统的灵活性。与传统的两层C / S架构风格相比,三层C / S架构风格具有以下优点:

  • 合理地划分为三层可以获得这种结构上的逻辑独立性,这对于提高系统的可维护性和可扩展性很有好处。
  • 通过选择合适的软件和硬件,可以大大提高负载处理能力。此外,系统中的每个部分都可以轻松更新。添加新事务后,只需要增加相应的服务器即可。例如,数据层和功能层都放置在UNIX工作站上,该工作站最开始被选为服务器。随着发展,用户逐渐增多。我们可以为数据层添加一个新服务器,并以UNIX工作站作为功能层的应用程序服务器。如果系统规模再次扩大,用户将相应增加。然后,我们可以为功能层添加更多服务器,来共享数据库[3]。最重要的是,这种架构可以有效简化系统修改。
  • 在三层C / S体系结构样式中,可以高效地独立利用每一层并选择适当的语言,从而对开发和维护做出了极大的优化。
  • 功能层将表达层和数据库层分开,避免了对数据库层的非法访问,大大增强了数据库的安全性。通过合理的管理,系统变得更加可控。

B. C / S架构的特征

另一方面,C/S架构如表1所示:

观点 C/S架构的特征
硬件 以局域网为中心,很难扩展到互联网。
安全 面对固定用户,具有良好的安全控制能力。
程序结构 注意流程,并对限制进行很多多层检查,因此可以在系统运行速度上少花心思。
软件重用 有必要进行整体考虑。
系统要求 用户被固定在同一区域,因此系统在安全性上必须相同。
用户界面 要求程序员是高级的。
信息流 使用中央自动处理,交替率相对较低。
客户规模 客户端太大,难以升级,并且安装和维护成本非常高,因此需要对客户端计算机要求是先进的。
动态交替 动态交替是好的。
配置费用 参与操作,计算机配置要求较高。
系统维护 每个客户端都需要安装和配置相应的软件。更改软件后,客户端和服务器都需要升级。

此外,应该注意的是,即使每个层都配置了良好的硬件,整个系统的性能也不会很好,因为层之间的低通信效率会阻塞整个系统。

因此,必须认真考虑通信方法,频率和数据流。此外,各层之间的接口应设计得尽可能简单。此外,各层之间的数据传输要简单。例如,与搜索请求相对应的数据应一次全部传输到功能层。

III. B/S架构

A. B/S架构的框架

随着Internet的发展,B/S架构是对C/S架构的改进。在B/S架构下,UI完全通过WWW浏览器实现。一些事务处理逻辑是在前端执行的,而大多数事务处理逻辑是在服务器上实现的。我们将这种架构称为三层B/S架构。B/S架构风格利用WWW浏览器技术,结合多种脚本语言(如VBScript,JavaScript等)和ActiveX,实现了强大的功能并大大降低了开发成本[3]。B/S架构受到许多研究人员的喜爱,尤其是在将浏览器技术插入操作系统之后。在这种方式下,系统安装,修改和维护都在服务器上进行。升级可以自动进行。与C/S架构相比,B/S架构是一个很大的进步,它可以帮助不同的人从不同的地方以不同的方式(例如LAN,WAN,Internet和Intranet)访问和操纵公共数据库。在B / S体系结构风格中,通常采用星形结构或虚拟专用网(简称VPN)来构建内部通信网络。使用星形结构是安全,快速和准确的,而使用VPN可以降低成本并扩展到大范围。选择哪种结构取决于系统规模和地理分布。用户可以通过防火墙连接到Internet,整个网络都采用TCP / IP协议。在图4中查看B/S架构。

B. B/S架构的特征

表2中列出了B/S架构的特征

表II. B/S架构的特征

观点 B/S架构的特征
硬件 在万维网上构建,不受特殊环境的限制。
安全 面对不固定的用户,安全性难以控制。
程序结构 为了系统优化,必须非常注意安全性和访问速度。
软件重用 组件具有独立的功能。
系统要求 用户固定在分散区域。因此,操作系统相关性是很小的。
用户界面 构建在浏览器上,具有与用户进行交流的许多生动的行为方式,因此不需要程序员是高级的。
信息流 就像贸易中心一样,信息流的方向是可控制的。
客户规模 只要安装浏览器,就可以实现显示功能。应用程序模块集成在WWW应用程序服务器上,该客户端简化为轻量级客户端。
动态交替 缺乏动态页面布局支持。数据动态交替很弱。
配置费用 不参与操作,计算机配置大大降低,并且系统开发成本降到最低。
系统维护 通常,只要服务器维护完成,客户端就可以自动更新,从而简化了维护并大大降低了成本。

IV. C/S和B/S混合样式

A. C / S和B / S混合样式的框架

从以上分析可以得出结论,C/S和B/S架构各有优缺点。尽管B/S架构在许多方面都超过了C/S架构,但B/S架构要在软件开发中扮演重要角色,还有很长的路要走。C/S架构已得到很好的开发和深入的研究,并在其上构建了许多软件系统。因此,C/S和B/S架构将长期共存。在这种情况下,研究人员试图将这两种架构整合为一种风格。借鉴他人的长处来弥补自己的弱点,发明了一种新的架构,称为C/S和B/S混合架构。参见图5。
Figure 5. C/S and B/S mixed style

B/S风格用于实现Web处理的功能,如信息发布和查询界面,以满足访问者的要求。数据库管理和维护界面等后台应用程序采用C / S风格。组件位于WEB服务器上。客户端向Web服务器发送HTTP请求。然后,WEB服务器将数据请求传递到数据库服务器,数据库服务器将把请求的数据返回给WEB服务器。之后,数据将通过WEB服务器传输到客户端。某些难以实现的功能或需要活动HTML页面布局的功能可以通过将Active X嵌入其中来实现。Active X除了实现一些困难的功能外,还可以极大地丰富HTML页面的布局并添加许多生动的交互方式,从而产生出色的效果。

B. C/S和B/S混合架构的特征

C/S和B/S混合架构的优点如下[4,5]。

  • 充分考虑了用户的利益,可以确保浏览器不仅可以方便地操作系统,而且系统易于更新且维护灵活。
  • B/S风格使客户更轻量。
  • 客户端软件统一采用标准的WWW浏览器,大大降低了客户端成本。
  • 数据库采用B/S架构进行系统维护,数据更新等,避免了因全面采用C/S架构而造成的繁重工作量。
  • 部分工作分配到数据库服务器,这减轻了Web服务器上的工作量并增强了Web功能。
  • 基于C/S风格,客户端可以实现复杂的应用程序,并保持界面友好和可操作性,从而弥补了B/S风格下弱动态交替的缺点。
  • 只要利用信息发送接口,以前由C/S架构的系统可以轻松升级到由C/S和B/S混合架构构建的系统。这样,充分利用了一次系统的投资,降低了开发成本,有效地缩短了开发周期。
  • EJB组件在理论上是独立运行的部分。因此,不同的开发人员能够同时操作许多组件。
  • 组件代码保存在一个组件中。这种集中化和模块化的方式使组件易于维护。

V. C/S和B/S混合架构的应用

可靠性和可维护性的软件测试平台(简称为RMTP)是一种通用的测试平台,可以同时测试嵌入式软件和非嵌入式软件。主要功能包括测试文档管理,专家判断,非嵌入式软件测试,嵌入式软件测试,测试跟踪与控制,测试评估。此外,还有一些必要的功能模块,如系统登录,系统初始化,系统维护,错误处理等,以确保系统安全运行。见图6。

Figure 6. Classification of RMTP functions

鉴于要做大量的数据处理,RMTP需要数据库的支持。C/S和B/S架构都可以考虑。C/S架构构建在LAN上,具有良好的安全性和动态变更能力,然而几乎不能满足LAN外部用户的使用需求,比如专家评判,放置和更新软件测试文档。借助在WAN上构建的B/S架构,只要安装了WWW浏览器,就可以轻松访问该平台,然而几乎不能确保安全性,并且数据替换受到限制,无法满足部分测试要求。基于以上分析,我们在RMTP中采用了C/S和B/S混合架构。参见图7。

这种混合架构可以帮助满足内部和外部用户的不同需求。内部使用C/S架构。然后,用户可以直接通过LAN访问数据库服务器。在这种结构下,数据动态变更得到加强,系统安全性得到提高。外部使用B/S架构。然后,用户就可以通过Internet访问Web服务器,从而方便地访问数据库。一方面,非本地用户可以通过这种方式方便地登录平台,提交或更新相关文档并熟悉软件测试的现状。另一方面,专家可以通过Internet对测试文档进行交叉判断,从而宏观地控制软件测试。通过将这两种样式整合在一起,可以充分发挥优点,同时弥补缺点。外部用户不直接访问数据库服务器,因此可以确保数据库的安全性。同时,内部用户具有很强的动态变更能力,可以快速查询或修改数据。

C/S和B/S混合架构也存在缺陷。由于动态更改能力受到B/S架构的限制,因此不支持远程软件测试。实际测试是在LAN内部进行的。因此,应做进一步的研究以实施远程软件测试。

致谢

在对C/S架构和B/S架构的特点进行分析的基础上,这篇文章将C/S和B/S混合风格应用于软件可靠性和可维护性测试平台上,更好地满足了系统要求。应进一步研究增强数据动态变更和实施远程软件测试的技术。感谢我们教员室中的讲师们无私的学术帮助。

引用

[1] WANG Yi-bin, LIU Kui, and WANG Yang, “Research and Practice of Software Architecture”, Computer Technology and Development, vol. 17, China, September 2007, pp. 142-146.
[2] SHEN Jian-qiao, and NIE Hua-bei, “Introduction to Software Architecture”, Computer Development and Application, vol. 21, February 2008, China, pp. 49-52.
[3] LIU Zhi-guo. “Analysis on the Styles of a Few Software System Structure”, Higher Vocational Education-Journal of Tianjing Professional College, vol. 12, China, October 2003, pp. 49-51.
[4] AN JIAN Cai-rang, and WU Jun-sheng, “Information Application System Development based on B/S and C/S Mixed Structure”, Microprocessors, February 2007, China, pp. 17-120.
[5] LIU Xue-wu, and PENG Ling-yi, “Discuss the development of system C/S and B/S mode”, Technological Development of Enterprise, vol. 27, China, February 2008, pp. 58-60.
[6] CHENG Yong-li, “Design of a financial expense system based on B/S and C/S”, Journal of Ningbo Polytechnic, vol. 12, China, April 2008, pp. 29-32.