APP下载

基于SCA 模型的数字化校园管理服务控制系统设计与实现

2014-12-06张天星

关键词:应用服务调用组件

张天星

(福建船政交通职业学院,福州350007)

0 引言

数字化校园管理是以计算机网络和信息数字化技术为基础,通过大量的有针对性的应用软件建立起来的一个用于满足各类校园业务管理的大型计算机网络系统。但其服务应用支撑软件开发和项目实施过程常碰到以下问题:

首先,业务和程序捆绑得较为紧密,大多数开发人员仍然适应那种将每一个应用程序作为一个独立问题解决的方式。

其次,大量异构系统并存,不同计算机硬件工作方式不同,操作系统不同、编程语言也不同;系统内或系统间的接口不统一,系统一旦变大或变多则接口变得异常复杂,维护和升级的成本很高。

再次,在早期设计概念中,只包括构件(也称模块)以及一些基本的模块互联机制,随着软件开发实践,构件间的互联机制逐渐独立出来[1]。传统的点对点应用连接方式将最终造成数字化校园管理架构蛛网化,伴随而来的是复杂僵化的应用架构、高额的维护成本和缓慢的服务响应速度。

通过深入分析以上问题,作者按照软件体系架构的思想来梳理软件开发工作方式,引入合适的集成方式和构件设计规约,利用服务组件架构(SCA,Service Component Architecture)标准来开发数字化校园管理服务控制系统,使其成为面向校园管理各类应用服务架构 (SOA,Service Oriented Architecture)的信息传输龙骨,能够帮助简化IT架构(减少应用整合接口的数量和复杂程度),降低运作成本。

1 服务控制系统设计

1.1 设计目标

面向服务,本质就是以服务协同为中心,组织好各种服务间的工作[2]。

从数字化校园管理应用软件系统项目特点来看,教务管理、学籍管理、教学资源管理、招生热线管理、数字化图书馆等外部服务形式主要体现为Web服务,HTTP Servlet服务,CORBA服务、Tuxedo服务、数据库表接口和存储过程接口等。服务控制系统需要将这些服务通过适配器集成到服务运行构件中,并提供统一的服务接口供外部调用,通过不断丰富其应用适配功能,不断开发新的面向典型应用的组建标准,使得用户通过简单的配置就可以将已有的各种应用遗留系统和新开发的应用系统集成到服务控制系统上来。

该服务控制系统支持服务交互功能,提供消息传递功能,并以事件基础架构来支持这些功能。还提供合适的服务级别和可管理性,支持在异构环境中的组合应用。依据SOA原则,需要使用与实现无关的接口,被调用的服务位置对于调用者应该是透明的,需要支持可互操作性的通信协议,同时可以进行相对粗粒度的、支持重用封装的服务定义,可以作为分布式的异构基础架构进行实现。在框架模型中,构件根据承担责任角度分为功能构件和连接构件,业务过程的扩展体现在连接构件中,同时连接构件负责功能构件之间的交互[3],服务控制系统就起到了连接构件的作用。在系统中被集成的对象明确被定义为服务,而不是传统EAI中各种各样的中间件系统,明确强调消息处理在集成过程中的核心作用,而且事件驱动成为重要特征[4]。

1.2 系统架构

对应于SCA的概念,服务控制系统主要发挥服务注册中心以及服务通道的作用,按主要功能分为4部分,如图1。

图1 服务控制系统架构

1.2.1 服务配置管理

服务配置管理主要实现将开发好的应用服务注册在系统可引用的配置文件中。服务配置使用XML来描述服务的引用位置,这保证了软件系统在运行过程支持在线演化,即意味着软件在运行期间随着配置参数改变则各个服务能被方便地增加、删除[5]。

服务配置XML文件的最基本结构如图2所示,包括服务的声明、输入/输出端定义和服务这程序的位置。

图2 服务配置文件结构

1.2.2 服务安全管理

数字化校园管理的应用软件,很多对应用的访问是要进行安全控制的。针对这一普遍需求,在系统设计了服务安全管理功能。

服务安全管理主要是实现安全配置,分布在各处的服务经常被远程调用,服务组件本身必须实现安全设计来完成服务调用者验证等工作。本系统采用的安全策略是应用Spring Security对服务访问进行控制。

数字化校园管理许多应用服务需要针对服务本身的动态特征提出访问控制要求,即需要对用户的各类角色设置权限。因此,安全配置设计采用Spring框架下的Spring Security相关组件作为安全管理组件,服务数据交换的 Mule系统也使用Spring Security。通过安全管理,可以在HTTP的输入端(inbound)对用户进行认证,配置组件的访问权限。

Spring Security是通过Servlet Fileter的方式嵌入整个Web应用,可以进行用户认证和权限控制的管理,从而提供一种统一的跨应用系统的安全管理。当用户访问资源的时候,就会被相关的过滤器所拦截,进行用户认证和权限判断。

在具体设计中通过配置安全元素、配置组件访问权限以及通过拦截器阻挡非法访问来实现服务的安全访问。同时,结合最常用的WebService方法,配置了CXF。

1.2.3 服务监控

服务监控用于确定监控类型和被监控的服务执行过程数据内容,通过图形界面完成服务运行过程的监控浏览,主要实现实时事件监控和历史事件查询。

本系统开发了一个管理控制器实现对服务构件运行过程的监控,通过管理控制台实现对服务注册、服务调用身份登记、服务过程的监控等,实现服务注册、服务调用身份的增删改查,以及上述安全设计。定制轮巡周期实现主动发现注册的服务构件是否可达。监控服务构件运行过程信息,即将存于运行日志库的监控信息通过界面展示,对于异常信息进行提示。

在服务运行过程实现便捷的可视化监控,既是了解服务是否稳定运行的需要也是前期调试服务的必须。本监控设计包括2部分,即如何将必要的监控事件入库保存和如何显示这些监控信息。前者又主要包括2类监控事件;一是服务系统的运行情况,如服务是否被成功调用;二是服务组件本身执行过程的日志。对于监控信息的显示设计,考虑到实时信息数量可能会很多,因此设计了“事件读取状态”(点击记录读取信息内容后该记录被标记为读取)方便监控者从大量信息中关注新出现记录。

1.2.4 服务数据交换

服务数据交换主要负责服务数据的底层交换,此处引用开源共享技术来实现,完成对不同协议数据格式的转义、过滤等处理。

1.3 系统应用过程

在服务控制系统应用过程,主要分为服务准备、服务发布、服务调用3个阶段:

1)服务准备。根据业务应用需求和运行环境完成应用服务的制作,包括服务逻辑设计、服务编写与编译、可调用的接口设定。

2)服务发布。将业务应用服务在配置文件中写明可调用的位置,有特定要求的(如安全调用)需要在配置中说明,然后在服务控制系统中予以发布。

3)服务调用。将业务应用服务的可调用接口情况提供给调用者,完成调用界面的设计,包括正常以及异常信息的显示;调用过程中,在服务控制系统的服务监控模块可查询服务执行日志,了解服务运行情况。

1.4 系统实现环境

根据数字化校园管理信息门户工作方式的需要,构建面向用户的服务模式时,需要将应用服务基于Poetlet技术,实现统一信息门户,有效实现校园各类应用服务异构系统的整合。

为适应异构环境,本系统选用Java作为开发语言,将XML作为数据格式语言用于服务配置的定义、数据传递等。

研发运行环境选择PC服务器作为硬件系统,数据库系统选择Oracle10g,服务数据交换选用开源系统MULE,目前版本为2.1.1。

本系统采用的MULE作为一个基于Java的轻量级消息框架,可以快速地将服务应用连接起来,并且确保在这些应用间交换不同协议的数据。MULE是遵循面向服务架构(SOA)的系统,它提供了对现有系统的简洁集成方式,即可以集成JMS、Web Service、JDBC、HTTP 甚至其他的技术。MULE的可扩展性框架允许开发者逐步将更多的应用连接到它的系统,而且Mule透明地管理组件间的所有交互,不管这些组件在底层使用了怎样的传输协议,都可以利用在多个应用间读取、转换和发送数据的消息框架来解决这一问题。

2 服务设定

根据SCA的模型框架,本文将服务定义为由服务组件、服务输入端和服务输出端3部分组成,如图3。

图3 服务定义

形成的服务配置信息示例:

2.1 服务组件

基于Java的实现所提供的服务,可以有一个按下列方法之一定义的接口:1)Java接口;2)Java类。

产生自Web Services Description Language(WSDL)portType的Java接口,Java实现类必须实现服务接口定义的所有操作,如果服务接口是用一个Java接口定义的,那么基于Java的构件要么实现此Java接口,要么实现接口的所有操作。

由Java类定义接口的服务(与Java接口相对)不是远程的。产生自WSDL portType的Java接口是远程的,于此实现的组件类型的XML描述如下:

2.2 服务输入/输出端

端点的传输类型有 WebService(CXF)、File、HTTP、HTTPS、TCP、FTP等多种形式。不同方式传输时,作为输入/输出端的属性设置不同。其中常用的 WebService(CXF)是一个高性能的 Web-Service,同时还支持多种绑定,CXF比较适合创建各种不同传输协议的服务。

下面以一个“Hello响应”作为简单示例对以上的服务配置和应用进行说明。

1)服务端。代码包括3个部分:

服务接口,一个Java的Interface(HelloSvc.java);

服务实现,HelloService接口的实现类(HelloSvcImpl.java);

SCA的服务组件配置文件,HelloSvc.composite,主体如下:

2)客户端。对于客户端的调用代码,客户端需要知道服务端组件提供了什么服务,实现了什么Java接口,而不需要接口后面的实现细节。

3 服务控制系统验证

服务控制系统只是一个基础,需要通过应用场景进行验证。为了验证以上服务控制系统的可用性,设计一个简单的“用户信息管理(Custmos-Manage)”应用服务作为测试用例。采用的“用户信息管理”系统,是在数字化校园管理应用软件中具有典型信息服务操作的小型管理系统,其应用模块都采用目前在业务开发中较常见的网页方式。该系统需要达成如下验证目标:

1)服务配置信息须成功被读取,被调用服务须被成功执行;

2)服务运行过程监控信息须成功被保存、读取;

3)服务安全配置须成功被执行。

“用户信息管理”(CustmosManage)主要采用B/S模式开发,并调用后端的服务。在B/S的服务端采用JSP的方式提供界面访问以及调用后台的应用服务,Web应用服务器采用Apache Tomcat。应用服务配置在服务控制系统内,以 Web Service的方式提供,采用Java开发,数据库使用Oracle10g。用例系统架构如图4。

用于服务调用的安全设计,在 Web服务器层面,采用Spring Security的安全管理模式,进行Web应用的登录认证。登录认证成功,才能进行后继的操作和服务调用。对于WebService应用,则采用WS-Security的安全认证。

经测试验证,通过Web页面完成用户登录和各项服务调用,测试服务全部通过,在服务监控界面可查到的日志信息如图5。

图4 用例架构

图5 客户信息服务组件执行日志显示

通过事件查看器查看到的监控信息如图6。

图6 客户信息服务调用监控日志显示

4 结语

数字化校园管理应用服务,由于功能需求与组织结构的不同,硬件环境与软件设计都存在很大的个性化与差异性,本系统以应用为核心,以数据为基础,以信息服务为表现,按照“服务型”主线,将各类应用服务基于SCA架构,通过适配器把这些服务集成到服务运行构件中,并提供统一的服务接口供外部调用。

在实际运行中,数字化校园管理产生的其他应用服务都可以参考“用户信息管理”系统用例架构模式,利用本系统来实现信息门户统一配置服务的服务控制管理,有效解决系统集成、信息整合和个性化信息服务等问题。经过实验证明,本文研究的服务控制系统是有效可行的。

[1]梅宏,申峻嵘.软件体系结构研究进展[J].软件学报,2006,17(6):1257-1275.

[2]马晓星,余萍,陶先平,等.一种面向服务的动态协同架构及其支撑系统 [J].计算机 学报,2005,28(4):467-477.

[3]麻志毅,陈泓婕.一种面向服务的体系结构参考模型[J].计算机学报,2006,29(7):1011-1019.

[4]张广胜,蒋昌俊,汤宪飞,等.面向服务的企业应用集成系统描述与验证[J].软件学报,2007,18(12):3015-3030.

[5]王晓鹏,王千祥,梅宏.一种面向构件化软件的在线演化方法[J].计算机学报,2005,28(11):1890-1897.

猜你喜欢

应用服务调用组件
无人机智能巡检在光伏电站组件诊断中的应用
全球卫星互联网应用服务及我国的发展策略
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
核电项目物项调用管理的应用研究
国家不动产统一登记信息平台构建与应用服务
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究
全国征集卫星应用服务解决方案
风起新一代光伏组件膜层:SSG纳米自清洁膜层