彭华,张明扬, 虞闯
(沈阳理工大学 信息科学与工程学院,辽宁 沈阳 110168)
摘 要:建设数字化校园时在引进新的应用和系统的同时,如何保证学校旧有的应用和系统投资不至于被全部抛弃或替换是节省学校运作成本并有效利用学校资源的重要手段。本文简要介绍了SOA及其相关技术,提出了SOA结构模型在数字化校园整合中的应用 关键词:数字化校园;SOA;整合
Research And Application of SOA in Digital Campus
PENG Hua, ZHANG Ming-yang, YU Chuang
(Shenyang Ligong University, Shenyang 110168, China)
Abstract: Digital Campus building at the introduction of new applications and systems, how
to ensure that the old school application and investment system will not be abandoned or replaced in order to save operational costs and the effective use school resources have an important means. This paper describes the SOA and its related technologies , the SOA structure model in the Digital Campus Application Integration
Key words: digitizing campus; SOA; integration
1数字化校园中应用整合的研究背景
经过多年的信息化建设,某学校已经拥有相当数量的应用系统,在该学校中发挥了较好的作用。但是,由于该学校并没有一个关于信息系统开发的总体性长远规划,基本上是由每个部门自行选择开发技术和开发方案来建设应用系统的,从而导致这些应用系统成为一个个“信息孤岛”。随着业务发展,该学校已提出了以下新的业务需求:
(1)某些新增业务需要学校内部若干不同的应用系统来协作完成,因而需要将这些“信息孤岛”连接起来,提供跨部门的业务。
(2)有些业务应该给老师、员工以及学生更大的灵活性与方便性支持,使他们可以随时随地、利用多种不同接入方式来办理这些业务,而不必总是要到指定场所才能办理。
原有的系统对新提出的要求显得力不从心。很多学校在建设数字化校园时在引进新的应用和系统的同时,如何保证学校旧有的应用和系统投资能够集成到新的平台下并发挥原有的作用将成为很现实的问题。对原有的系统进行整合,要将原有的系统全部抛弃并换上全新的系统并不现实,因为这样会带来巨额的费用以及大量的浪费。原有的各子系统能够满足某一方的需求但却不能满足整体系统的需求,这样我们只需将子系统整合到统一的平台中,并将其发挥原有的功能,就能够实现资源利用与利益的最大化。
2 SOA技术在数字化校园信息整合方面的应用
SOA(service-oriented Architecture,也叫面向服务的体系结构或面向服务架构)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些 服务之间定义良好的接口和契约联系起来。接口是 采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
2.1传统方法进行信息整合
传统的信息集成(EAI) 是指对系统中完成不同业务功能的应用系统进行集成, 在它们之间建立起可供数据交流和应用沟通的纽带, 进而使他们之间的信息交互成为可能。通过这种方式使用户可以访问学校的整体信息, 而不必考虑这些具体信息到底是属于哪一个应用系统的, 即各个不同应用系统对用户来说是透明的。传统的企业应用集成的层次主要有数据级集成、应用接口级集成、业务逻辑级集成等; 数据级集成属于面向信息的集成方式, 该方式可能会导致损坏数据, 打开数据库的安全缺口等; 应用接口级集成属于面向接口的集成方式, 采用该方式对API接口进行修改时, 将增加大量的工作量, 也可能会增加现有应用系统的不稳定性。而业务逻辑级集成属于面向过程的集成方式。该集成方式不仅暴露了应用程序的业务逻辑, 而且由于业务逻辑的交叉, 导致了各个集成系统之间的紧耦合性, 降低了应用系统的灵活性, 增加了整个系统维护的难度。上述3种方式都属于紧耦合的应用系统集成方式。
这种紧耦合的集成方式将影响系统的灵活性和扩展性, 阻碍业务的流程调整和优化, 不利于企业业务发展。为解决上述问题, 需要一种面向功能层的企业系统集成方式。该方式不仅能保证原有系统的数据安全性和逻辑安全性, 而且还能实现各系统之间的松耦合, 方便系统流程的重组和优化。SOA的出现,为这一问题提供了一个比较完美的解决方案。
2.2 SOA结构模型
SOA的本质的市场需求就是实现服务和技术的完全分离,从而在最大程度上实现服务的集成和重组。这样能使学校以最快的、最灵活的、最节约成本的方式来满足当前瞬息万变的各种需求,从而使学校在建设数字化校园中获得利益最大化。
2.2.1 SOA和WebService的根本区别
SOA 和WebService有着如下的共同点:都是提供服务,服务借口都是基于开发的,服务借口和服务的具体实现都是分离的。其实,WebService是SOA的核心组件,WebService服务接口需要绑定具体实现服务的服务组件来实现服务,它对具体的服务实现了封装,实现了服务的透明化,客户端不需要知道服务是如何实现的,但是WebService组件本身是知
道服务是如何实现的,另外客户端调用WebService组件时,需要知道WebService的具体位置和传输协议,这都会造成一定的不灵活性,它只是实现了一定程度上的抽象.
SOA架构平台只和服务接口进行绑定,对服务接口实现了封装,实现了服务接口的透明化,服务位置的透明化,服务传输协议的透明化。SOA本身也不知道服务是如何实现的。当客户端通过SOA调用服务的时候,不需要知道真正的服务提供者是谁,具体的位置在哪和传输协议是什么。SOA实现了最高程度的抽象化,为实现具有最高灵活性的服务建立了架构基础。
2.2.2 SOA架构的要点
SOA架构所提供的服务之间是松散耦合的。即SOA架构里的服务都是可以自实现的,一个服务不依赖于别的服务,只要给它相应的消息和参数,它就能给出相应的结果。SOA架构可以通过插件的方式不断更新和完善某一服务而不会影响现有服务的使用。SOA架构应该更接近于实际业务本身的粗粒度的角度来对服务进行划分,发布服务接口方法,而不仅仅从模块和技术的角度来构建SOA服务。SOA架构中的所有服务的具体实现、位置和传输协议对调用者来说都是透明的。应为SOA架构已经对这些服务进行了封装,在通过SOA架构
平台将所有的服务统一对外发布。
2.2.3SOA中的工作角
在SOA服务模型图(图2)中面向服务的体系结构中主要有三种角:
(1) 服务消费者是需要使用服务的应用程序或其它的服务。通过对注册中心的服务进行查询后, 根据接口说明信息并使用某种传输协议与服务绑定并执行服务功能。
(2) 服务提供者是创建服务的实体。可以从服务消费者处接受请求并可以远程执行所请求服务。通过向注册中心发布服务接口信息以供服务消费者发现和访问服务。
(3) 服务注册中心处于中心位置提供了展示服务的功能。服务消费者通过查询存储有服务信息库的注册中心以到感兴趣服务的接口信息。
3 系统的设计与使用的技术
3.1 对系统设计的要求
如前所述,SOA是实现跨平台、跨技术的各种软件服务的整合。作为一个理想的SOA平台,应该具有无限的服务扩展性,任何新的服务都能够以插件的形式加入此SOA平台,并马上能够对外发布;此外它应该还有无限的服务兼容性,任何应用的传输协议,无论是J2EE RMI、.NET、 CORBA、DCOM、还是Web Service等,都能提供支持并进行相应的协议转换,不管是同步服务还是异步事件都能都很好的进行处理。
3.2 系统结构设计
目前市场上的开发平台主要分为Java和.Net,而以java为基础的J2EE技术已经很成熟,并有许多成功的案例,以J2EE为基础的SOA架构技术必将成为英特网服务技术的热点。本系统机构采用基于J2EE平台的SOA机构.SOA需要一个对各种服务进行集成管理的核心架构,这就是企业服务总线(ESB Enterprise Service Bus),ESB以服务导向的集成为目的,对各种Web Service进行集中管理,为异构IT系统环境提供信息处理的代理.它可以提供信息路由和信息格式转换以实现应用系统的无缝集成.其本质的原理是它以中介的身份处在客户端和服务提供者之间,这样客户端的任何请求,不是直接送到服务提供者,而是先送到服务总线,由服务总线将请求消息转给服务提供者,得到返回消息后,服务总线再转给服务请求
者。通过服务总线的SOA架构技术,服务提供者的地址和传输协议对客户端来说是透明的,服务总线将真正的服务提供者的地址和传输协议都隐藏起来了.
采用SOA进行现有信息系统集成的步骤:
(1) 提取各个应用系统中需要对外暴露的功能模块。这些功能模块通常都是一些能够清晰完整地表现其业务价值的软件实体, 该软件实体包含了它所能提供的所有服务。确定哪些接口或是方法可以被外界所访问或被系统所调用,确定访问权限。
(2) 将这些功能模块表现为服务组件的形式。定义服务的描述信息、服务的接口以及调用服务所需要的定位信息等。将软件实体的概念模型转换成实际的服务模型。将上一步中确定的Java或.Net写的方法或功能转化为WSDL形式的WebService,转换的目的是方便不同平台和语言之间的方法能够互相调用。同时还要为每个WSDL形式的WebService在服务总线上创建相应的Proxy Service,发布给客户端,供客户端调用,实现客户端的透明调用。
(3) 将已实现的服务发布到服务注册器,供其他服务调用者进行查和绑定。具体步骤为在服务总线上创建Business Service ,服务总线将会通过它来指向外部服务提供者。这个步骤可以视企业集成的具体情况选择使用。
(4) 绑定和调用服务, 为每个Proxy Service注册到UDDI方便查,并配置到Route Node中,以便Proxy Service将客户端的请求转给相应的Business Service.这样才能将各个应用系统集成起来, 实现企业应用在功能层面的集成(见图1),将各种服务集成到企业服务总线后,就可以调用了,通过在UDDI上查可以到自己所需或感兴趣的服务,到后可以从服务总线上导出代理服务的WSDL文件,然后将WSDL文件复制到客户端,生成客户端的代码,这样就可以来调用服务器端所提供的服务了。
3.3 系统的安全与管理
安全 :Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换, 消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(as Security Assertion Markup Language)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。