1、2022-5-31桂林电子科技大学1第五章第五章 应用集成技术概述应用集成技术概述p 应用集成的意义p 应用集成的主流技术 常用软件开发工具 面向对象技术 应用系统的三(多)层结构模型应用系统的三(多)层结构模型 中间件技术 组件技术2022-5-31桂林电子科技大学25.1 应用集成的意义p 历史1 1、企业在内部信息化时重点强调一些孤立的管理或业务问、企业在内部信息化时重点强调一些孤立的管理或业务问题题, ,缺乏整体体系结构的设计缺乏整体体系结构的设计, ,往往是各个职能部门可以往往是各个职能部门可以任意选择开发技术和开发方案任意选择开发技术和开发方案, ,这导致各个应用程序之间这导致各个
2、应用程序之间协同工作能力十分有限。协同工作能力十分有限。2 2、程序供应商由于对应用程序开发过程理解的制约、程序供应商由于对应用程序开发过程理解的制约, ,缺乏缺乏开放性的统一规范或者其它商业原因开放性的统一规范或者其它商业原因, ,一些应用程序在开一些应用程序在开发时很少或根本没有考虑与其它系统互联的问题发时很少或根本没有考虑与其它系统互联的问题, ,可扩展可扩展性比较差。更为可怕的是性比较差。更为可怕的是, ,一些应用程序的技术文档或者一些应用程序的技术文档或者源程序已经丢失或残缺不全。源程序已经丢失或残缺不全。第五章第五章 应用集成技术概述应用集成技术概述2022-5-31桂林电子科技大
3、学3p 现状1、由于企业信息化历史的原因导致了企业内一个个、由于企业信息化历史的原因导致了企业内一个个“信息信息孤岛孤岛”的出现的出现,这些信息孤岛中的应用程序很可能包括企这些信息孤岛中的应用程序很可能包括企业关键的业务处理。业关键的业务处理。据统计据统计,一个大型企业中拥有一个大型企业中拥有1000多多个信息孤岛个信息孤岛,超过超过5000个独立应用程序的情况并不少见个独立应用程序的情况并不少见;2、用新系统替换已有的系统来整合企业信息孤岛的作法并、用新系统替换已有的系统来整合企业信息孤岛的作法并不是一个很好的建议。不是一个很好的建议。一方面对旧系统已经投入了很多的一方面对旧系统已经投入了很
4、多的时间和金钱时间和金钱,而且还包含了大量的知识经验而且还包含了大量的知识经验,另一方面很少另一方面很少有公司能够对所有的业务流程提供完整的详细文档有公司能够对所有的业务流程提供完整的详细文档,开发开发新系统需要更多的时间和金钱新系统需要更多的时间和金钱,因此企业在保护以前的投因此企业在保护以前的投资和继承以前管理经验的前提下资和继承以前管理经验的前提下,很难作出这样的投资决很难作出这样的投资决策。策。5.1 应用集成的意义应用集成的意义2022-5-31桂林电子科技大学4p发展1、企业管理者把信息系统看成提高企业管理水平和效率、企业管理者把信息系统看成提高企业管理水平和效率,实实现企业利润最
5、大化的工具现企业利润最大化的工具,愿意对它进行投资愿意对它进行投资,同时为了保同时为了保持持续的竞争力持持续的竞争力,企业需要不断地对其信息系统的功能进行企业需要不断地对其信息系统的功能进行扩展和改进。扩展和改进。2、充分利用企业现有的应用程序、充分利用企业现有的应用程序,集成为一个统一的、开放集成为一个统一的、开放的、可扩展的以及稳定可靠的企业信息系统,符合企业管的、可扩展的以及稳定可靠的企业信息系统,符合企业管理、发展(企业兼并)和投资的要求。理、发展(企业兼并)和投资的要求。这就是EAI(企业应企业应用集成用集成 ),从系统集成商的商业角度来看,这就是EAI的市场需求和竞争优势。3、企业
6、的全球化,企业兼并,电子商务的应用和发展,为、企业的全球化,企业兼并,电子商务的应用和发展,为EAI提供了推动力。提供了推动力。5.1 应用集成的意义应用集成的意义2022-5-31桂林电子科技大学5p EAI的目标:的目标:1、使得企业具有一个标准的、统一的、开放的应用继承信息、使得企业具有一个标准的、统一的、开放的应用继承信息系统,建立企业的信息门户;系统,建立企业的信息门户;2、实现企业内保留的原有应用程序、数据源和新增的应用程、实现企业内保留的原有应用程序、数据源和新增的应用程序、数据源之间的信息共享、数据通信、功能交互,无限序、数据源之间的信息共享、数据通信、功能交互,无限制的分享数
7、据和业务过程;制的分享数据和业务过程;3、通过、通过EAI这个使能器对企业的业务过程进行重组、再造,这个使能器对企业的业务过程进行重组、再造,转变企业的经营管理理念,加快资金流转,全面提高企业转变企业的经营管理理念,加快资金流转,全面提高企业的运作效率、管理效率和管理水平,实现系统的管理目标,的运作效率、管理效率和管理水平,实现系统的管理目标,提高企业的综合竞争力;提高企业的综合竞争力;4、通过构建这样一个集成的、面向客户的、高度伸缩性的信、通过构建这样一个集成的、面向客户的、高度伸缩性的信息系统为企业信息化的进一步实施打下坚实的基础。息系统为企业信息化的进一步实施打下坚实的基础。5.1 应用
8、集成的意义应用集成的意义2022-5-31桂林电子科技大学65.2 应用集成的主流技术p 常用软件开发工具p 面向对象技术p 应用系统的三(多)层结构模型应用系统的三(多)层结构模型p 中间件技术p 组件技术第六章第六章 应用集成技术概述应用集成技术概述2022-5-31桂林电子科技大学75.2.1 常用软件开发工具常用软件开发工具1、以、以Micosoft为首的应用集成技术:为首的应用集成技术: ASP+IIS应用技术应用技术2、以、以Sun为首的应用集成技术:为首的应用集成技术: JavaBeans应用技术应用技术 J2EE:iPlanet与与Sun ONE3、XML技术技术5.2 应用集
9、成的主流技术2022-5-31桂林电子科技大学81. Microsoft产品产品Microsoft作为全球第一的软件开发厂商,它的软件开发工具也相当出色,作为全球第一的软件开发厂商,它的软件开发工具也相当出色,主要有主要有Visual C+, Visual J+, Visual Basic, Visual InterDevMicrosoft Visual Studio .NET用于创建下一代应用程序的理想而又现实用于创建下一代应用程序的理想而又现实的开发工具。作为快速创建和集成的开发工具。作为快速创建和集成 XML Web 服务和应用程序的单一综服务和应用程序的单一综合工具,合工具,Visua
10、l Studio .NET 在改善操作的同时极大地提高了开发人员的在改善操作的同时极大地提高了开发人员的效率。效率。 Visual Studio .NET 是唯一一个从一开始就是为是唯一一个从一开始就是为 XML Web 服务创建的开服务创建的开发环境。通过允许应用程序通过发环境。通过允许应用程序通过 Internet 沟通和共享数据,沟通和共享数据,XML Web 服务使业务能够从服务使业务能够从 Internet 转换为用于集成和传送它们的核心商业价值转换为用于集成和传送它们的核心商业价值的真正平台。的真正平台。Visual Studio .NET 和和 XML Web 服务提供简单、灵活
11、、基服务提供简单、灵活、基于标准的模型,允许开发人员从新的和现有的代码汇编应用程序,而与于标准的模型,允许开发人员从新的和现有的代码汇编应用程序,而与平台、编程语言或对象模型无关。平台、编程语言或对象模型无关。5.2 应用集成的主流技术2022-5-31桂林电子科技大学92. Borland 产品产品Borland世界最优秀和历史悠久的软件开发工具厂商,主要世界最优秀和历史悠久的软件开发工具厂商,主要产品有:产品有: C+ Builder, JBuilder, Delphi, Kylix (Delphi for Linux) 5.2 应用集成的主流技术2022-5-31桂林电子科技大学10p
12、Borland C+Bilder 5.0 Borland C+Bilder 5.0是是Interprise(Borland)公司推出的基公司推出的基于于C+ 语言的快速应用程序开发语言的快速应用程序开发(Rapid Application Development,RAD)工具工具,它是最先进的开发应用程序的组件它是最先进的开发应用程序的组件思想和面向对象的高效语言思想和面向对象的高效语言C+融合的产物。融合的产物。C+Builder 充分利用了已经发展成熟的充分利用了已经发展成熟的Delphi 的可视化组件库的可视化组件库(Visual Component Library,VCL),吸收了吸收
13、了Borland C+ 5.0 这个优这个优秀编译器的诸多优点。秀编译器的诸多优点。C+Builder 结合了先进的基于组件结合了先进的基于组件的程序设计技术的程序设计技术,成熟的可视化组成熟的可视化组. . 5.2 应用集成的主流技术2022-5-31桂林电子科技大学11p Delphi 7 Studio Borland软件有限公司软件有限公司2002年年 8月月29日发布日发布Delphi 7 Studio 。它以对新近出现的。它以对新近出现的Web服务的全面支持,集成化模型服务的全面支持,集成化模型驱动开发与对驱动开发与对Microsoft.NET框架的预览能力为主要特征。使框架的预览能
14、力为主要特征。使用用Delphi 7 Studio ,上百万的,上百万的Delphi开发者可以在不放弃他们开发者可以在不放弃他们原有的工作与原有的工作与Windows平台的技术情况下开发他们的基平台的技术情况下开发他们的基于于 .NET的技术,为的技术,为.NET 准备应用程序。准备应用程序。 Borland用用Delphi 7 Studio 首次开辟了通往首次开辟了通往.NET的独立道的独立道路,它应用于路,它应用于Windows平台上的跨平台的快速应用程序开发环平台上的跨平台的快速应用程序开发环境。境。Delphi 7 Studio 的特征还包括企业应用程序设计与分发,的特征还包括企业应用
15、程序设计与分发,它允许开发者利用企业应用程序开发方法,通过新的它允许开发者利用企业应用程序开发方法,通过新的UML设设计器与模型驱动结构技术来更快地将概念转换为产品。计器与模型驱动结构技术来更快地将概念转换为产品。5.2 应用集成的主流技术2022-5-31桂林电子科技大学12Delphi 7 Studio 的新特征与优点:的新特征与优点:1、企业应用程序、企业应用程序MDA开发:开发:通过允许开发者在应用程序设计与分发的全通过允许开发者在应用程序设计与分发的全过程中复用一个应用来加速开发过程,同时显著地减少代码量与开发时间。过程中复用一个应用来加速开发过程,同时显著地减少代码量与开发时间。2
16、、RAD可视化可视化Web开发:开发:既允许开发者使用既允许开发者使用Delphi 7 Studio 环境来可视化环境来可视化地建立地建立Web应用程序,也允许其使用应用程序模式框架来显式地处理会话应用程序,也允许其使用应用程序模式框架来显式地处理会话管理以减少通用服务器端的开发任务。管理以减少通用服务器端的开发任务。3、为、为Linux内建跨平台支持:内建跨平台支持:Delphi 7 Studio将与将与Delphi语言版本的语言版本的Borland Kylix 3共同发布。共同发布。Kylix 3是第一个为是第一个为Linux操作系统快速建立数据操作系统快速建立数据库,库,GUI,Web,
17、Web服务应用程序的高性能的可视化的集成开发环境服务应用程序的高性能的可视化的集成开发环境4、Enterprise Class Reporting 能力:能力:允许开发者建立跨平台的,有助于确允许开发者建立跨平台的,有助于确定应用程序运行效率的报表。定应用程序运行效率的报表。5、Windows XP应用程序:应用程序:Delphi 7 Studio包括了对包括了对Windows XP主题的支主题的支持,允许开发者建立使用持,允许开发者建立使用Windows XP用户界面主题的应用程序。用户界面主题的应用程序。6、多层应用程序分发:、多层应用程序分发:允许开发者无缝地将单层与客户机允许开发者无缝
18、地将单层与客户机/服务器应用程服务器应用程序扩展为多层应用程序而无需额外的运行费用要求序扩展为多层应用程序而无需额外的运行费用要求 5.2 应用集成的主流技术2022-5-31桂林电子科技大学13p KYLIX Windows和和Linux之间的桥梁之间的桥梁KYLIXKYLIX是是INPRISE/BORLANDINPRISE/BORLAND公司公司1515年以来最重要的项目。年以来最重要的项目。 软件制造商软件制造商BORLANDBORLAND在三月中旬正式推出了在三月中旬正式推出了KYLIXKYLIX,其也是,其也是LINUXLINUX平台上第一个集图型用户界面(平台上第一个集图型用户界面
19、(GUIGUI),),INTERNET/WEBINTERNET/WEB及数据库应用开发于一体的快速开发工具(及数据库应用开发于一体的快速开发工具(RAPID RAPID APPLICATION DEVELOPMENT RADAPPLICATION DEVELOPMENT RAD)。)。KYLIXKYLIX提供了一个包含可视化,双向工具的集成开发环提供了一个包含可视化,双向工具的集成开发环境,内建一个全新的高速的编译器,能够编译境,内建一个全新的高速的编译器,能够编译LINUXLINUX原生原生C C,C+C+和和DELPHIDELPHI开发语言,并且可以实现开发语言,并且可以实现LINUXLI
20、NUX版本的版本的BORLAND BORLAND VCLVCL结构,帮助结构,帮助DELPHIDELPHI及及C+BUILDERC+BUILDER用户由用户由WINDOWSWINDOWS平台向平台向LINUXLINUX平台移植。平台移植。KYLIXKYLIX将支持将支持RED HAT LINUX RED HAT LINUX 、COREL COREL LINUX LINUX 以及其它以及其它LINUXLINUX版本。版本。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学143. Sun产品产品 Sun作为作为Sun 工作站和工作站和Solaris 的制造者,的制造者,Java 的发
21、明者,的发明者,拥有拥有Forte 系列开发工具系列开发工具 ,ActiveState从事脚本语言的商品化,从事脚本语言的商品化,包括包括Perl,Python,Tcl 。5.2 应用集成的主流技术2022-5-31桂林电子科技大学15p ASPN 在开放源码编程方面颇有建树的在开放源码编程方面颇有建树的ActiveState公司公司2001年年04月推出了全新的月推出了全新的ActiveState程序员网络(程序员网络(ActiveState Programmer Network ,ASPN)。将为程序开发人员提供。将为程序开发人员提供各种开发工具和开发经验,确保程序开发既快又好。各种开发工
22、具和开发经验,确保程序开发既快又好。 ASPN 包括:包括: 面向面向Perl和和Python的的Komodo 集成开发环境,集成开发环境, 面向面向PHP, Tcl 以及以及XSLT的集成开发环境的集成开发环境 面向面向Perl, Python, XSLT的的Visual Studio.NET 综合套件;综合套件; OReilly 在线技术指导资料在线技术指导资料 Python演示代码演示代码 ; ActivePerl,ActivePython, ActiveTcl二进制发行版本二进制发行版本5.2 应用集成的主流技术2022-5-31桂林电子科技大学16p Jbuilder产品:产品: 实
23、际上包含了在实际上包含了在Java集成开发环境中所需要的一切东西。集成开发环境中所需要的一切东西。由于由于Jbuilder和几种单独的源代码处理产品是集成在一起的,和几种单独的源代码处理产品是集成在一起的,所以它就能够支持多种所以它就能够支持多种Java开发工具包版本。对于开发工具包版本。对于JavaDoc的支持是无可挑剔的:的支持是无可挑剔的:Jbuilder软件能够自动为你生成软件能够自动为你生成JavaDoc文件。文件。Jbuilder软件中的软件中的CodeComplete程序代码以程序代码以及帮助提示是最一流的产品,并且,它能够和你所见过的任及帮助提示是最一流的产品,并且,它能够和你
24、所见过的任何一款微软产品相媲美。何一款微软产品相媲美。class浏览器能够在你编程时自动进浏览器能够在你编程时自动进行更新工作,向你展示出你的应用软件结构,甚至包含那些行更新工作,向你展示出你的应用软件结构,甚至包含那些匿名的以及内部的匿名的以及内部的class。所有的这些都是在你构建一个软件。所有的这些都是在你构建一个软件的时候自动完成的。的时候自动完成的。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学174. GNU 产品产品 GNU linux 上的上的C语言编译器的开发者语言编译器的开发者 。GNU 是是 GNUs Not UNIX 的递归缩写。它是自由软件基金会的一个
25、项目,的递归缩写。它是自由软件基金会的一个项目,该项目的目标是开发一个自由的该项目的目标是开发一个自由的 UNIX 版本,这一版本,这一 UNIX 版版本称为本称为 HURD。尽管。尽管 HURD 尚未完成,但尚未完成,但 GNU 项目已经项目已经开发了许多高质量的编程工具,包括开发了许多高质量的编程工具,包括 emacs 编辑器、著名的编辑器、著名的 GNU C 和和 C+ 编译器(编译器(gcc 和和 g+),这些编译器可以在),这些编译器可以在任何计算机系统上运行。所有的任何计算机系统上运行。所有的 GNU 软件和派生工作均适软件和派生工作均适用用 GNU 通用公共许可证,即通用公共许可
26、证,即 GPL。GPL 允许软件作者拥有允许软件作者拥有软件版权,但授予其他任何人以合法复制、发行和修改软件软件版权,但授予其他任何人以合法复制、发行和修改软件的权利。的权利。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学185.2.2 5.2.2 面向对象技术面向对象技术1. 什么是面向对象技术什么是面向对象技术面向对象技术:面向对象技术:解决信息领域内所遇到问题的方法。例如:解决信息领域内所遇到问题的方法。例如: 面向对象的分析(面向对象的分析(Object-Oriented Analysis) 面向对象的设计(面向对象的设计(Object-Oriented Design)
27、 面向对象的编程(面向对象的编程(Object-Oriented Programming) 在面对较复杂的系统,可以将它作为一个对象来进行分析。在面对较复杂的系统,可以将它作为一个对象来进行分析。这个系统(解决某个问题的全套解决方案)作为一个对象,这个系统(解决某个问题的全套解决方案)作为一个对象,可以由多个部分组成。同样,这个对象也可以由多个对象组可以由多个部分组成。同样,这个对象也可以由多个对象组成。对于同类的事物,可以由一个对象来表示。可以灵活而成。对于同类的事物,可以由一个对象来表示。可以灵活而高效,大大减轻设计人员的工作量,简化实际的模型。高效,大大减轻设计人员的工作量,简化实际的模
28、型。5.2 应用集成的主流技术2022-5-31桂林电子科技大学192.2.面向对象的分析实例面向对象的分析实例 在关系型数据库的设计当中,可以把一个元组当作对象,在关系型数据库的设计当中,可以把一个元组当作对象,给它定义一组操作方法。这些方法将适用于所有元组,从而给它定义一组操作方法。这些方法将适用于所有元组,从而我们不必在更大的范围内去细致的考虑不同的元组(如判断我们不必在更大的范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向本身的方一个元素是否合法):因为它们有一组公共的面向本身的方法,它们法,它们“自己自己”可以可以“解决解决”自己的问题。自己的问题。
29、更上一层的对象可以是一个表、视图等。表对象在元组更上一层的对象可以是一个表、视图等。表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。从这对象的基础上又有它们自己的方法,如增加、删除等。从这个层面上讲,它也只需要做个层面上讲,它也只需要做“自己自己”的事情,因为有元组对的事情,因为有元组对象的支持,它无须去考虑像元素是否合法这类事情。象的支持,它无须去考虑像元素是否合法这类事情。5.2 应用集成的主流技术2022-5-31桂林电子科技大学203. 面向对象的方法面向对象的方法上面所讨论的可以说是面向对象的分析方法。在具体的设计上面所讨论的可以说是面向对象的分析方法。在具体的设计过程当
30、中,还应该采用适当的方式。因为面向对象的思想固过程当中,还应该采用适当的方式。因为面向对象的思想固然很先进,如果做得不好的话,同样不能达到预期的效果。然很先进,如果做得不好的话,同样不能达到预期的效果。这主要表现在处理对象与对象的关系上没有做好,这主要表现在处理对象与对象的关系上没有做好,对象与对对象与对象的层次象的层次不分明。不分明。 如上面所举得关系型数据库得例子,如果在元组层面上如上面所举得关系型数据库得例子,如果在元组层面上的对象过多地考虑一个表对象的因素,或一个表层面上对象的对象过多地考虑一个表对象的因素,或一个表层面上对象过多地考虑一个元组对象的因素,甚至去考虑元素层面上的过多地考
31、虑一个元组对象的因素,甚至去考虑元素层面上的因素,这些都不是好的面向对象的设计方法。因素,这些都不是好的面向对象的设计方法。5.2 应用集成的主流技术2022-5-31桂林电子科技大学21首先,运用面向对象的思想进行系统分析。首先,运用面向对象的思想进行系统分析。 仔细划分系统的各个部分,明确它们之间的层次关系,仔细划分系统的各个部分,明确它们之间的层次关系,然后将各个部分作为一个对象进行功能上的分析。然后将各个部分作为一个对象进行功能上的分析。 例如例如: : 要设计一个用户界面,它可能由几个主要的窗体组成:主窗要设计一个用户界面,它可能由几个主要的窗体组成:主窗体体MainFrameMai
32、nFrame、功能性子窗体、功能性子窗体FunctionFrameFunctionFrame以及对话对话框以及对话对话框DialogDialog。其中,其中,MainFrameMainFrame中可能还包括菜单、工具条、文本框、状态条等中可能还包括菜单、工具条、文本框、状态条等WindowsWindows组件。对于要完成一些重要功能的组件,我们可以单独将它作组件。对于要完成一些重要功能的组件,我们可以单独将它作为一个对象看待,在具体的实现中,用单独一个类来表示。而一些并不为一个对象看待,在具体的实现中,用单独一个类来表示。而一些并不是很重要的、只是在过程中需要用到的组件,就可以将它们集成到其他
33、是很重要的、只是在过程中需要用到的组件,就可以将它们集成到其他对象中去。要明确每个对象自己的任务对象中去。要明确每个对象自己的任务不要让它有缺陷,也不能越不要让它有缺陷,也不能越殂代庖。各个对象之间的关系通过过程、内容、功能等耦合来实现。殂代庖。各个对象之间的关系通过过程、内容、功能等耦合来实现。5.2 应用集成的主流技术2022-5-31桂林电子科技大学22其次,运用面向对象的思想进行系统设计。其次,运用面向对象的思想进行系统设计。 其实在真正做好了系统分析的工作之后,进行设计就比其实在真正做好了系统分析的工作之后,进行设计就比较轻松了。这段时间只要进一步确定各个对象的功能以及各较轻松了。这
34、段时间只要进一步确定各个对象的功能以及各个对象之间的关系。个对象之间的关系。 为了能够更好地帮助明白各个对象之间的关系,可以利为了能够更好地帮助明白各个对象之间的关系,可以利用一些工具将这些组件的关系表示出来,统一建模语言用一些工具将这些组件的关系表示出来,统一建模语言(Uniformed Module LanguageUniformed Module Language,UMLUML)就是这样的一种好)就是这样的一种好东西。它不仅可以现在帮助开发人员了解整个系统,也为以东西。它不仅可以现在帮助开发人员了解整个系统,也为以后的维护工作提供一个档案文件,给以后工作提供巨大方便。后的维护工作提供一个
35、档案文件,给以后工作提供巨大方便。5.2 应用集成的主流技术2022-5-31桂林电子科技大学235.2 应用集成的主流技术面向对象分析与设计示意图面向对象分析与设计示意图2022-5-31桂林电子科技大学24再次,编码的应用再次,编码的应用 在搞软件开发时,编码不是最重要的。分析、设计才在搞软件开发时,编码不是最重要的。分析、设计才是最重要的。也许当我们接受了一些更先进的思想之后,是最重要的。也许当我们接受了一些更先进的思想之后,会更加理解这一点了。希望我们中国的软件开发人员能应会更加理解这一点了。希望我们中国的软件开发人员能应用面向对象的思想开发出具有国际竞争力的优秀软件。用面向对象的思想
36、开发出具有国际竞争力的优秀软件。5.2 应用集成的主流技术2022-5-31桂林电子科技大学255.2.3 应用系统的三(多)层结构模型应用系统的三(多)层结构模型1.1.应用系统三(多)层结构模型背景应用系统三(多)层结构模型背景 在数据业务日趋复杂、数据传输量快速增长、并发数在数据业务日趋复杂、数据传输量快速增长、并发数据猛增的情况下,以前的据猛增的情况下,以前的C/SC/S两层结构存在处理速度慢、跨两层结构存在处理速度慢、跨平台能力弱、系统性能平台能力弱、系统性能/ /价格比低、不能扩展到价格比低、不能扩展到WEBWEB上等缺上等缺点,已经不再能满足当今和未来的需要。因而出现了三点,已经
37、不再能满足当今和未来的需要。因而出现了三(多)层结构模型。(多)层结构模型。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学262.2.应用系统三(多)层结构模型应用系统三(多)层结构模型 多层体系结构框架例子:多层体系结构框架例子:多层体系结构多层体系结构是在三层结构的基础是在三层结构的基础上提出来的,三层结构技术将原来两层结构中客户端的大量上提出来的,三层结构技术将原来两层结构中客户端的大量事务处理逻辑或数据库服务器上的存储过程放到中间层来实事务处理逻辑或数据库服务器上的存储过程放到中间层来实现,从而减轻了客户端和数据库服务器端的负荷,并统一和现,从而减轻了客户端和数据库服务
38、器端的负荷,并统一和规范了业务开发、管理和维护。规范了业务开发、管理和维护。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学272.2.应用系统三(多)层结构模型(续)应用系统三(多)层结构模型(续) 系统将中间层适当地分成三层(数据操作层、对象层和系统将中间层适当地分成三层(数据操作层、对象层和业务逻辑层)以便更好地组织整个系统的开发并最大限度业务逻辑层)以便更好地组织整个系统的开发并最大限度地实现组件的可重用性和可扩展性,形成了一种多层的结地实现组件的可重用性和可扩展性,形成了一种多层的结构体系。体系中每一层所需的服务和数据都只来源于自己构体系。体系中每一层所需的服务和数据都
39、只来源于自己的下一层,并且只为自己的上一层提供服务和数据,而且的下一层,并且只为自己的上一层提供服务和数据,而且每一层的都采用组件模块的方式进行扩展,这样使得系统每一层的都采用组件模块的方式进行扩展,这样使得系统的可维护性大大增强。的可维护性大大增强。5.2 应用集成的主流技术2022-5-31桂林电子科技大学283.3.结构模型结构模型各层的主要功能与任务各层的主要功能与任务 客户端应用层:客户端应用层:客户端的任务就是接受用户的输入并向中客户端的任务就是接受用户的输入并向中间层发送事务处理请求,得到中间层的返回的结果后将任务间层发送事务处理请求,得到中间层的返回的结果后将任务执行结果或执行
40、情况向用户反映。该层属于接入层。执行结果或执行情况向用户反映。该层属于接入层。 业务逻辑层:业务逻辑层:业务逻辑层提供了较高层次的事务处理与相业务逻辑层提供了较高层次的事务处理与相关应用,实现了较为复杂的功能以供客户端调用。业务逻辑关应用,实现了较为复杂的功能以供客户端调用。业务逻辑层的所有服务都来源于对对象层的调用,所有由业务逻辑层层的所有服务都来源于对对象层的调用,所有由业务逻辑层触发的处理请求,都将被分割为各种原子逻辑处理,传递到触发的处理请求,都将被分割为各种原子逻辑处理,传递到对象层进行处理。对象层进行处理。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学293.3.结
41、构模型结构模型各层的主要功能与任务(续)各层的主要功能与任务(续) 对象层:对象层:对象层是对系统涉及的业务逻辑进行归类和剖析,对象层是对系统涉及的业务逻辑进行归类和剖析,使用面向对象分析方法进行合理抽象后得到的各种实体的集使用面向对象分析方法进行合理抽象后得到的各种实体的集合,这些对象包含的原子业务逻辑作为不可分的单元为业务合,这些对象包含的原子业务逻辑作为不可分的单元为业务逻辑层提供了基础。逻辑层提供了基础。 数据操作层:数据操作层:数据操作层是在对大客户管理系统中所涉及数据操作层是在对大客户管理系统中所涉及的数据表进行深入透彻的分析,进行归类的各种数据库操作的数据表进行深入透彻的分析,进
42、行归类的各种数据库操作的集合,该层包括了对数据库连接的管理功能。的集合,该层包括了对数据库连接的管理功能。 数据库服务器:数据库服务器:数据库服务器端只提供数据的存储及访问,数据库服务器端只提供数据的存储及访问,和一些大运算量的数据计算。这样使得系统与数据库管理系和一些大运算量的数据计算。这样使得系统与数据库管理系统产品的相关性大大减低,系统显得更为灵活和易于移植。统产品的相关性大大减低,系统显得更为灵活和易于移植。5.2 应用集成的主流技术2022-5-31桂林电子科技大学304. 多层结构体系特点:多层结构体系特点:从根本上为系统提供了一个扎实可靠的技术框架,将业务逻从根本上为系统提供了一
43、个扎实可靠的技术框架,将业务逻辑在中间层实现。辑在中间层实现。 有以下优点:有以下优点: (1) 业务逻辑集中实现,易于升级和更改;业务逻辑集中实现,易于升级和更改;(2) 大量的客户端对数据库的请求集中起来,进行排队后再大量的客户端对数据库的请求集中起来,进行排队后再向数据库服务器进行数据请求,可以大大减少对数据库服务向数据库服务器进行数据请求,可以大大减少对数据库服务器的压力;器的压力;(3) 一个好的中间件软件还可以实现对数据请求的负载均衡,一个好的中间件软件还可以实现对数据请求的负载均衡,避免出现某些服务器很忙而另一些则很空闲的情况。避免出现某些服务器很忙而另一些则很空闲的情况。5.2
44、 应用集成的主流技术2022-5-31桂林电子科技大学315.2.4 中间件技术中间件技术1.1.中间件的概念中间件的概念 中间件是基础软件的一大类,属于可复用软件的范畴。为了直中间件是基础软件的一大类,属于可复用软件的范畴。为了直观地把握中间件的基本概念,可以将网络和系统软件之上、应用观地把握中间件的基本概念,可以将网络和系统软件之上、应用系统之下的系统之下的“广袤疆域广袤疆域”都视做中间件领域。都视做中间件领域。中间件被概括地理中间件被概括地理解为起承上启下作用的应用支撑平台。解为起承上启下作用的应用支撑平台。 应用的多态性、系统软件的复杂性,都需要依赖各种类型的中应用的多态性、系统软件的
45、复杂性,都需要依赖各种类型的中间件在其中运筹、调和。中间件的核心作用是通过管理资源和网间件在其中运筹、调和。中间件的核心作用是通过管理资源和网络通信,为各类分布式应用软件共享资源提供支撑。络通信,为各类分布式应用软件共享资源提供支撑。 广义地看,中间件的总体作用是为处于自己上层的应用软件广义地看,中间件的总体作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。的应用软件。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学325.2 应用集成的主流技术中间件的位置中间件的位置2022
46、-5-31桂林电子科技大学332.2.中间件的主要功能中间件的主要功能 负责客户机和服务器间的联接和通信;负责客户机和服务器间的联接和通信; 提供客户机与应用层的高效率通讯机制;提供客户机与应用层的高效率通讯机制; 提供应用层不同服务之间的互操作机制;提供应用层不同服务之间的互操作机制; 提供应用层与数据库之间的联接和控制机制;提供应用层与数据库之间的联接和控制机制; 提供一个三层结构应用开发和运行的平台;提供一个三层结构应用开发和运行的平台; 提供一个应用开发框架,支持模块化的应用开发;提供一个应用开发框架,支持模块化的应用开发; 屏蔽硬件、操作系统、网络和数据库;屏蔽硬件、操作系统、网络和
47、数据库; 提供交易管理机制,保证交易的一致性;提供交易管理机制,保证交易的一致性; 提供应用的负载均衡和高可用性;提供应用的负载均衡和高可用性; 提供应用的安全机制与管理功能。提供应用的安全机制与管理功能。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学343.3.中间件的分类中间件的分类从应用类别来看,中间件可以分为三大类:从应用类别来看,中间件可以分为三大类: 数据类(数据类(Data Integration):): 用于数据的存取、转换用于数据的存取、转换和增值,此类中间件用于构建以数据为中心的应用;和增值,此类中间件用于构建以数据为中心的应用; 处理类(处理类(Proce
48、ss Integration):): 把分布在网络结点把分布在网络结点上的各个应用或处理连接在一起,形成一个统一的分布式应上的各个应用或处理连接在一起,形成一个统一的分布式应用;用; 分布式构件类(分布式构件类(Distributed Components):):支持构支持构件式应用,是未来应用的发展方向。件式应用,是未来应用的发展方向。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学355.2 应用集成的主流技术中间件的应用实例中间件的应用实例2022-5-31桂林电子科技大学363.3.中间件的模式中间件的模式 消息传输模式消息传输模式:将数据从不同的源发地采集到将数据从不同
49、的源发地采集到一起或转发,包括数据标记、加密、队列和审核一起或转发,包括数据标记、加密、队列和审核等;等; 事务协调模式事务协调模式:支持应用事件及交易管理;支持应用事件及交易管理; 应用构件模式应用构件模式:支持构件式应用,是网络化应支持构件式应用,是网络化应用的发展趋势。用的发展趋势。 5.2 应用集成的主流技术2022-5-31桂林电子科技大学374.4.中间件的发展趋势:中间件的发展趋势: 中间件作为构筑企业信息系统和电子商务系统中间件作为构筑企业信息系统和电子商务系统的基石和核心技术,向着标准化和构件化方向发展。的基石和核心技术,向着标准化和构件化方向发展。具体来看,有以下三种发展趋
50、势:具体来看,有以下三种发展趋势: p 规范化规范化 p 构件化和松耦合构件化和松耦合 p 平台化平台化 5.2 应用集成的主流技术2022-5-31桂林电子科技大学385.2.5 5.2.5 组件技术组件技术1.1.组件技术概念组件技术概念 组件或者构件技术组件或者构件技术是应用级别的集成技术,其基本思想是应用级别的集成技术,其基本思想是将应用软件分解成为一个个独立的单元,将软件开发的过是将应用软件分解成为一个个独立的单元,将软件开发的过程转变成为类似于程转变成为类似于“搭积木搭积木”的搭建过程,通过组装不同的的搭建过程,通过组装不同的软件组件单元来实现软件的集成。软件组件单元来实现软件的集