论文部分内容阅读
摘要:本文通过分析目前企业信息系统建设中存在的一些问题,论述了建立企业应用系统构架的必要性。介绍了服务组件架构(SCA)的基本概念、特点及存在的优势,并结合具体案例详细描述了运用SCA构建企业信息系统构架的过程和策略。
关键词:SCA;组件;服务
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)15-30780-02
Research and Implementation of Enterprise Application System Architecture based on SCA
WU Pu-liang, HE Ke-you
(College of Computer Science & Technology, WuHan University of Technology, Wuhan 430063, China)
Abstract:After analyzing the problems exist in enterprise information system this paper point out the necessity of constructing enterprise application system architecture. Then, the basic conception, the specialty and the advantage of Service-Oriented Architecture (SCA) are explained. Finally, the Process and the strategy of designing enterprise information system architecture based on SCA are also given with an actual example
Key words:SCA; Component; service
1 建立信息系统构架的必要性
随着通讯网络和信息技术的快速发展,中国企业的信息化意识也明显提高,信息化进程也正在加快。但由于信息技术的飞速发展,更是由于历史性的原因,信息化现状中也存在一些关键问题:许多中小型企业的信息系统大多处于相对孤立的状态,一个企业内部多种系统、多个应用并存,“一个部门一个服务器”的现象比比皆是,企业内部形成了不同形式的“信息孤岛”,部门之间的无法实现信息共享,数据一致性无法保证。“信息孤岛”已经成为阻碍企业信息化建设的最大障碍。
要彻底解决上述问题,企业就必须建立一个灵活的、快速响应的应用系统架构,它可以包容现有的应用并满足未来新的应用需求,实现企业信息的高度集成,使得基于不同平台、不同语言实现的应用系统能够顺利地进行信息交流和数据共享。让应用系统变得更有弹性,能更快地响应业务需求,从而使企业获得更加明显的竞争优势。
2 SCA和SOA的关系
SOA(Service Component Architecture)即面向服务的体系结构,在SOA中,应用程序被按照业务功能组织成不同的单元(称为服务),服务的实现与平台和编程语言无关。可以将相关的服务进行组合而成为一个功能更为复杂的服务。服务之间通过定义良好的接口和契约进行互访,接口采用中立的方式进行定义,它独立于实现服务的平台和编程语言,通过接口可以让构建在各种这样系统中的服务以一种统一和通用的方式进行交互。
SCA(Service-Oriented Architecture)即服务组件体系结构,它是SOA的一种实现形式,并为基于SOA开发应用程序提供了一套完整的开发规范。SCA简化了使用SOA构建应用系统的开发过程,它将传统中间件编程从业务逻辑分离出来,从而使开发人员集中精力编写业务逻辑,而不必将大量的时间花费在更为底层的技术实现上。SCA还简化了业务组件的开发、组装和部署流程,提高了系统的可移植性、可重用性和灵活性,得系统的可测试性也有很大的提高。
3 SCA中的基本概念
3.1 服务组件(Component)
服务组件(简称组件)是SCA中的基本组成元素和构建单位,每个组件都实现了一定的业务逻辑,它是搭建应用系统的积木。
组件向外界提供服务,同时也可以引用(Reference)其他组件提供的服务,提供服务和引用服务都是通接口来实现的,SCA组件的主要接口规范是基于WSDL的,为了给Java编程人员提供方便,部分服务组件也提供了Java接口。
3.2 服务模块(Module)
SCA通过服务模块(简称模块)对组件进行组装,模块由一个或多个具有内在业务联系的组件构成。把哪些组件放在一个模块中主要取决于业务需求和部署上灵活性。模块是SCA中的运行单位,由于模块是一个独立部署的单元,因此给应用的部署带来很大的灵活性。比如,只要保持模块接口不变,只需通过部署新的模块来替换原有的某个模块就可达到系统的升级,而且不需要影响应用的其它部分。
3.3 入口点和外部服务
模块之间往往存在相互调用的关系。另外,模块中的组件除了引用模块内部组件的服务外,有时还需要引用模块外部的服务,并且这些外部服务有可能不是基于SCA的。
为满足这些条需求,SCA模块引入了入口点(Entry Point)和外部服务(External Service)两个概念,模块外部通过Entry Point调用模块内部组件的服务,而模块内部组件可以通过External Service引用模块外部提供的服务。入口点和外部服务都是通过绑定(binding)来实现与外界进行信息交互的。绑定方式有JMS绑定、Web Service绑定和SCA绑定等类型。
4 基于SCA的企业信息系统体系结构
图1展示的是某企业系统的体系结构,将系统粗粒度的业务功能封装为模块,每个业务功能又是由多个子功能组成,故将这些子功能封装为组件。模块是由多个组件组合而成的,如人事信息管理模块包含人事异动、招聘管理、考核管理等组件。
为实现企业与处于同一供应链的其他企业进行信息交互,系统还应具有向外部发布服务以及调用企业外部服务的功能。图1的采购管理模块和销售管理模块,可以将服务通过WSDL在Internet上发布。
5 基于SCA的信息系统框架实现技术
以下是基于SCA的企业应用系统的开发流程:
组件开发:组件的业务逻辑实现可以采用JAVA,或C#等语言进行编写。如所有组件都采用JAVA语言开发,则组件的服务可以使用Java接口进行发布。否则,组件的服务应当采用WSDL进行发布。组件的服务、引用、属性等信息都需要定义在一个后缀名为.componentType的XML文档中。
组件组装:将一组相关的组件组装成为一个模块,模块的入口点和外部服务应当定义EJB绑定、WS绑定等多种绑定方式,使模块可以与外部各种类型的模块进行信息交互。模块包含的组件、入口点、外部服务等信息都需要在一个后缀名为.module的XML文档中进行定义。
图1 基于SCA的企业应用系统体系结构图
部署和发布:SCA的模块需要被部署在支持SCA容器中(run-time environment)才能够正常运行,目前SCA运行时环境主要包括Apache Tuscany 、IBM WPS(Websphere Process Server)6.0等。
6 结束语
SCA提供了规范的模块化设计方法,同时它继承了SOA的多种优点和特性,在构建企业应用时体现了明显的优势。运用SCA搭建的应用系统构架可以从根本上解决企业信息系统中存在的诸如“信息孤岛”等问题,从而使企业内部和企业之间能够更好地实现数据共享和信息交互。
参考文献:
[1] Michael Beisiegel, Henning Blohm. Service Component Architecture Whitepaper[M]. 2005.11.
[2] 杨颖,杨磊. 基于Web Services的企业ERP系统集成模型[J]. 计算机应用研究,2005,22(3):210-213.
[3] 谭永明,苏斌. 面向服务架构体系的研究[J]. 计算机技术与展望,2007,17(3):132-135.
[4] Michael Beisiegel, Henning Blohm. SCA Service Component Architecture Assembly Model Specification[M]. 2005.11.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:SCA;组件;服务
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)15-30780-02
Research and Implementation of Enterprise Application System Architecture based on SCA
WU Pu-liang, HE Ke-you
(College of Computer Science & Technology, WuHan University of Technology, Wuhan 430063, China)
Abstract:After analyzing the problems exist in enterprise information system this paper point out the necessity of constructing enterprise application system architecture. Then, the basic conception, the specialty and the advantage of Service-Oriented Architecture (SCA) are explained. Finally, the Process and the strategy of designing enterprise information system architecture based on SCA are also given with an actual example
Key words:SCA; Component; service
1 建立信息系统构架的必要性
随着通讯网络和信息技术的快速发展,中国企业的信息化意识也明显提高,信息化进程也正在加快。但由于信息技术的飞速发展,更是由于历史性的原因,信息化现状中也存在一些关键问题:许多中小型企业的信息系统大多处于相对孤立的状态,一个企业内部多种系统、多个应用并存,“一个部门一个服务器”的现象比比皆是,企业内部形成了不同形式的“信息孤岛”,部门之间的无法实现信息共享,数据一致性无法保证。“信息孤岛”已经成为阻碍企业信息化建设的最大障碍。
要彻底解决上述问题,企业就必须建立一个灵活的、快速响应的应用系统架构,它可以包容现有的应用并满足未来新的应用需求,实现企业信息的高度集成,使得基于不同平台、不同语言实现的应用系统能够顺利地进行信息交流和数据共享。让应用系统变得更有弹性,能更快地响应业务需求,从而使企业获得更加明显的竞争优势。
2 SCA和SOA的关系
SOA(Service Component Architecture)即面向服务的体系结构,在SOA中,应用程序被按照业务功能组织成不同的单元(称为服务),服务的实现与平台和编程语言无关。可以将相关的服务进行组合而成为一个功能更为复杂的服务。服务之间通过定义良好的接口和契约进行互访,接口采用中立的方式进行定义,它独立于实现服务的平台和编程语言,通过接口可以让构建在各种这样系统中的服务以一种统一和通用的方式进行交互。
SCA(Service-Oriented Architecture)即服务组件体系结构,它是SOA的一种实现形式,并为基于SOA开发应用程序提供了一套完整的开发规范。SCA简化了使用SOA构建应用系统的开发过程,它将传统中间件编程从业务逻辑分离出来,从而使开发人员集中精力编写业务逻辑,而不必将大量的时间花费在更为底层的技术实现上。SCA还简化了业务组件的开发、组装和部署流程,提高了系统的可移植性、可重用性和灵活性,得系统的可测试性也有很大的提高。
3 SCA中的基本概念
3.1 服务组件(Component)
服务组件(简称组件)是SCA中的基本组成元素和构建单位,每个组件都实现了一定的业务逻辑,它是搭建应用系统的积木。
组件向外界提供服务,同时也可以引用(Reference)其他组件提供的服务,提供服务和引用服务都是通接口来实现的,SCA组件的主要接口规范是基于WSDL的,为了给Java编程人员提供方便,部分服务组件也提供了Java接口。
3.2 服务模块(Module)
SCA通过服务模块(简称模块)对组件进行组装,模块由一个或多个具有内在业务联系的组件构成。把哪些组件放在一个模块中主要取决于业务需求和部署上灵活性。模块是SCA中的运行单位,由于模块是一个独立部署的单元,因此给应用的部署带来很大的灵活性。比如,只要保持模块接口不变,只需通过部署新的模块来替换原有的某个模块就可达到系统的升级,而且不需要影响应用的其它部分。
3.3 入口点和外部服务
模块之间往往存在相互调用的关系。另外,模块中的组件除了引用模块内部组件的服务外,有时还需要引用模块外部的服务,并且这些外部服务有可能不是基于SCA的。
为满足这些条需求,SCA模块引入了入口点(Entry Point)和外部服务(External Service)两个概念,模块外部通过Entry Point调用模块内部组件的服务,而模块内部组件可以通过External Service引用模块外部提供的服务。入口点和外部服务都是通过绑定(binding)来实现与外界进行信息交互的。绑定方式有JMS绑定、Web Service绑定和SCA绑定等类型。
4 基于SCA的企业信息系统体系结构
图1展示的是某企业系统的体系结构,将系统粗粒度的业务功能封装为模块,每个业务功能又是由多个子功能组成,故将这些子功能封装为组件。模块是由多个组件组合而成的,如人事信息管理模块包含人事异动、招聘管理、考核管理等组件。
为实现企业与处于同一供应链的其他企业进行信息交互,系统还应具有向外部发布服务以及调用企业外部服务的功能。图1的采购管理模块和销售管理模块,可以将服务通过WSDL在Internet上发布。
5 基于SCA的信息系统框架实现技术
以下是基于SCA的企业应用系统的开发流程:
组件开发:组件的业务逻辑实现可以采用JAVA,或C#等语言进行编写。如所有组件都采用JAVA语言开发,则组件的服务可以使用Java接口进行发布。否则,组件的服务应当采用WSDL进行发布。组件的服务、引用、属性等信息都需要定义在一个后缀名为.componentType的XML文档中。
组件组装:将一组相关的组件组装成为一个模块,模块的入口点和外部服务应当定义EJB绑定、WS绑定等多种绑定方式,使模块可以与外部各种类型的模块进行信息交互。模块包含的组件、入口点、外部服务等信息都需要在一个后缀名为.module的XML文档中进行定义。
图1 基于SCA的企业应用系统体系结构图
部署和发布:SCA的模块需要被部署在支持SCA容器中(run-time environment)才能够正常运行,目前SCA运行时环境主要包括Apache Tuscany 、IBM WPS(Websphere Process Server)6.0等。
6 结束语
SCA提供了规范的模块化设计方法,同时它继承了SOA的多种优点和特性,在构建企业应用时体现了明显的优势。运用SCA搭建的应用系统构架可以从根本上解决企业信息系统中存在的诸如“信息孤岛”等问题,从而使企业内部和企业之间能够更好地实现数据共享和信息交互。
参考文献:
[1] Michael Beisiegel, Henning Blohm. Service Component Architecture Whitepaper[M]. 2005.11.
[2] 杨颖,杨磊. 基于Web Services的企业ERP系统集成模型[J]. 计算机应用研究,2005,22(3):210-213.
[3] 谭永明,苏斌. 面向服务架构体系的研究[J]. 计算机技术与展望,2007,17(3):132-135.
[4] Michael Beisiegel, Henning Blohm. SCA Service Component Architecture Assembly Model Specification[M]. 2005.11.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。