SOA结构设计

2024-06-14

SOA结构设计(共10篇)

SOA结构设计 篇1

摘要:文章介绍了利用.NET、Web Service技术实现一个基于面向服务体系结构(Service-Oriented Architecture,SOA)的服务程序设计,其中介绍了设计开发的基本思想、开发过程中遇到的问题及解决方法。文章首先介绍了本系统的研究意义及产生背景,然后阐述了此服务程序的技术特色及详细设计部分,其中详细设计部分包括实现信息的查询、数据反馈以及后台数据库设计等。

关键词:SOA,.NET,Web Service,ADO.NET

1 程序设计的背景与目标[1]

目前,数据库技术的发展已经很成熟,Web技术对大量数据的组织管理具有较佳的信息发布途径,这两种技术的天然互补性决定相互融合是其发展的必然趋势。传统的数据库应用系统采用的客户机/服务器模式,有高度的交互性、高效的用户界面等优点,但存在数据交互和交互规则移至客户端产生的维护成本高、不易扩展等缺点。采用传统的系统架构技术和传统的EAI和B2B技术存在系统封闭、耦合度高、扩展性差、无法和上下游企业的系统建立统一的接口等问题。

而采用SOA技术则可以有效解决上述问题。面向服务的体系结构(SOA)是一个组建模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口联系起来。由于SOA基于HTTP/SOAP/WSDL等开放式技术,对于特定厂商产品依赖性小,系统开放,互操作性强,可以建立统一的Web服务,用于和不同的上下游企业信息系统实现供应链协同。

本设计的目标是通过Web Service技术,根据需求通过网络对松耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性并且通过Web Service技术可以实现数据库共享。基本思路为:模拟建立Soa System和Get Service两个网站,在网站Soa System中,是通过建立自己的数据库,并把相关信息的数据保存在该数据库中。而网站Get Service并不像网站Soa System那样建立数据库来保存数据,该网站只是通过网站Soa System所提供的Web Service数据库共享接口,就可以对数据库实现查询操作了。这样,网站Get Service就省去了构建数据库和收集资料的工作,从而体现了SOA这种框架不仅有着降低客户端压力的优势,而且有利于不同的上下游企业信息系统实现供应链协同。

2 系统开发环境

本设计是采用ASP.Net(C#)、ADO.Net、Web Service技术开发的。

C#是由C和C++衍生出来的面向对象的编程语言。用C#编写的程序能最大限度地和任何支持.NET的语言互相交换信息,C#编写的应用程序具有强大的跨平台性,这种跨平台性也包括了C#程序的客户端可以运行在不同类型的客户端上[2]。

Microsoft.NET是Microsoft XML Web Service平台。XML Web Service允许应用程序通过Internet进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。.NET除具有良好的兼容性,还具有更快的运行效率、简易的程序设计模型、良好的延展性和可使用性。ADO.NET是一个全新的数据访问技术[3],主要驻留在.NET Frameworks System.Data.*和System.Xma命名空间中,提供更有效率的数据存取。

Web Service是一种可以接收从Internet或者Intranet上的其他系统中传递过来的请求,轻量级的独立的通讯技术。其工作原理是:通过松耦合这个特性将所有服务联系起来实现系统之间的整合与协同。

3 系统设计

3.1 系统功能概述

本系统主要是模拟SOA架构的一个Web系统,SOA是一种比较新的Web技术,其目的是为了整合和协同上下游企业之间的业务。比如:如果两个原先做不同产品的企业想合作做某些产品,A企业想在自己的网站上为用户提供B企业的产品信息,同时B企业也想在自己的网站上为用户提供A企业的产品信息,这时如果采用SOA架构,在A企业和B企业自己的网站后台各建立一个Web Service数据库共享接口,这样A企业和B企业都可以通过Web Service接口相互查到对方企业的产品信息,省去了构建数据库和收集资料的工作,这样不仅大大提高了工作效益也提高了经济效益。

为了模拟SOA这种技术,在这个系统中建立了Soa System和Ger Service两个互相独立的网站。其中,Soa System网站主要为用户提供新闻信息、交通信息、图书信息等信息的查询操作。用户可以根据不同的查询条件对所需要的信息进行查询,系统提供了精确查询和模糊查询。同时系统还提供了管理员操作功能,管理员从管理界面登录后可对各功能模块进行信息的添加、修改、删除等操作,一般用户无法对此进行操作,因为管理员页面都对用户权限进行了核对,如果没有管理权限则会跳到报错页面并提示您没有管理权限。

Ger Service网站也为用户提供了一些服务,主要的服务包括:城市公交车信息查询、火车时刻查询、邮政编码及区号查询和全国车牌信息查询等,这些服务在网站Soa System中也同样向用户提供。但在网站GetService中并没有建立自己的数据库去收集提供服务所需的数据信息;只是通过网站Soa System提供的Web Service接口,来对网站Soa System的数据库进行查询操作,可以直接把查询的结果反馈给用户查询或者在查询结果的基础上进行二次查询操作。而这一切,对用户而言,是透明的。Ger Service网站上的用户会以为自己是直接查询该站的数据库而得到反馈结果的。系统的流程图如图1所示[4]:

3.2 Soa System网站各功能模块

(1)新闻信息模块。该模块主要是对新闻信息进行管理和查询,用户可以根据标题、内容来查询所需要的新闻信息。

(2)图书信息模块。该模块主要为用户提供图书信息的查询,用户可以根据书名、作者、出版社来查询自己所需要的信息;也可以根据分类来检索信息。

(3)交通信息模块。该模块中的信息主要包括:城市公交车信息、城市汽车信息、火车时刻表、飞机航班信息。用户可对以上信息按车次或班次、站点、城市及站站进行查询,所得结果会在Data Grid控件中显示给用户。

(4)学校信息模块。该模块主要提供了学校信息检索和管理,用户可以根据学校名称、学校代码检索自己所需要的信息,也可以通过学校分类来检索信息。

(5)天气预报信息模块。该模块主要提供了天气和气候两种信息的查询,该查询是模糊查询,用户可以输入关键字对所需信息进行检索或不输入任何信息检索所有。

(6)邮编区号车牌信息模块。该模块主要为用户提供全国各地邮编区号、简称来检索自己所需要的信息。例如,可以通过邮编来检索区号或者通过区号来检索邮编。

(7)旅游信息模块。该模块主要包括三个部分,即酒店信息、景点信息、旅行社信息。用户可根据名称、城市对以上信息进行检索。

3.3 Get Service网站各功能模块

(1)城市公交车信息查询模块。该模块主要为用户提供城市公交车信息的查询服务,用户在输入查询条件后进行查找,后台便通过Web Service接口读取Soa System网站的数据库中的数据,把符合条件的数据放到数据集中,并显示在Data Grid控件中供用户查看。

(2)火车时刻信息查询模块。该模块主要为用户提供火车时刻信息的查询服务,用户在输入查询条件后,后台便通过Web Service接口读取Soa System网站的数据库中的数据,把符合条件的数据读取出来,并填充到Data Grid控件中供用户查看。

(3)全国车牌信息查询模块。该模块主要为用户提供全国车牌信息的查询服务,用户在输入查询条件后,后台便通过Web Service接口读取Soa System网站的数据库中的数据,把符合条件的数据读取出来,并填充到Data Grid控件中供用户查看。

(4)邮政编号及区号信息查询模块。该模块主要为用户提供邮政编号及区号信息查询服务,用户可以根据城市来查找,也可以通过邮编来查找区号或通过区号查找邮编。用户在输入查询条件后,后台便通过Web Service接口读取Soa System网站的数据库中的数据,把符合条件的数据读取出来,并填充到Data Grid控件中供用户查看。

4 详细设计

4.1 Soa System网站功能设计

Soa System网站主要向用户提供新闻信息、图书信息、交通信息、天气预报等信息的查询功能;面向网站的管理员,可以在后台提供对信息进行添加、修改、删除等编辑操作。现以“交通信息模块”为例,说明查询功能和数据编辑功能的实现。

其中,公交车信息查询关键代码[5]如下:

4.2 Get Service网站功能设计

Get Service网站主要向用户提供城市公交车信息、火车时刻、全国车牌信息、邮政编号及区号等信息的查询功能;Ger Service网站没有自己的数据库,只是利用Web Service接口,读取Soa System网站数据库中的数据,再把数据呈现给用户。现以“全国车牌信息查询模块”为例,说明查询功能和反馈数据功能的实现[6]。

“全国车牌信息查询模块”主要为用户提供全国车牌信息的查询服务,用户在输入查询条件后,后台通过Web Service接口读取Soa System网站数据库中的数据,把符合条件的数据读取出来填充到Data Grid控件中供用户查看。其中,按地区查询“全国车牌信息”的关键代码如下:

5 系统测试

5.1 测试Soa System网站

Soa System网站测试项目包括:

(1)交通信息模块:测试添加城市公交车信息功能,包括路线号、站点名称、城市、头班车和末班车时间和票价等内容的输入,进行合理性和合法性检查,测试修改和删除公交车信息功能。

(2)旅游信息模块:测试添加酒店住房信息功能,包括酒店名称、地址、省份、城市、订房电话的输入,进行合理性和合法性检查,测试修改和删除酒店住房信息功能。

(3)全国车牌信息模块:测试添加车牌信息功能,包括省份、城市、车牌简称等信息的输入,进行合理性和合法性检查,测试修改和删除车牌信息功能。

5.2 测试Get Service网站

Get Service网站测试项目包括:

(1)城市公交车信息查询。测试信息查询功能,在条件输入框中输入查询条件后按“查找”,界面中显示符合条件的数据。

(2)邮政编号及区号信息查询。测试信息查询功能,在条件输入框中输入查询条件后按“查找”,界面中显示符合条件的数据。

5.3 系统测试结果

通过对两个网站的五个功能模块的测试,得知各模块功能都能正常使用,对用户的操作能够做出相应的判断,对非法操作或者输入错误都会有相应错误提示,满足用户的使用要求,本系统基本上达到本次设计的目标要求。

6 结束语

这次设计是开发一个基于SOA服务程序设计的系统,最后实现了在网站Get Service中在没有建立自己的数据库的前提下,通过Web Service共享接口来查询网站Soa System的数据库,从而为用户提供交通信息、天气预报、邮编区号及车牌信息等信息的查询功能,基本实现本次设计的目标。

参考文献

[1]潭浩强.C语言程序设计(第二版)[M].北京:清华大学出版社,1999.

[2]Jack Lunn.DRPG Sarang编著.张哲锋,庞太刚译.Java开发人员.NET高级编程——C#编程篇[M].北京:清华大学出版社,2005.

[3]张青,郭亚萍编著.C#编程思想与实践[M].冶金工业出版社,2002.

[4]章立民编著.用实例学ASP.NET(使用C#与ADO.NET)[M].北京:电子工业出版社,2005.

[5]谭桂华,魏亮编著.Visual C#高级编程范例[M].北京:清华大学出版社,2004.

[6]李师贤,李文军,周晓聪.面向对象程序设计基础[M].北京:高等教育出版社,1998.

SOA结构设计 篇2

关键词:SOA;WebService;Winform;ET;ET Agent

中图分类号:TP31文献标识码:A文章编号:1007-9599 (2011) 05-0000-02

The Design and Implementation of Airline Company’s Booking Operation Based on Service-Oriented Architecture

Xu Yongju

(Shangrao Radio and TV University,Shangrao334000,China)

Abstract:This article first analyzed civil aviation reservation systems’s status,the development,and systems issues,this article decided to adopt the SOA architecture to build the system architecture.Using WebService technology,this thesis designed a common set of system framework to solve the obstacles which encountered in the information development.The system uses SOA architecture design,we use two types B/S and C/S to build system architecture.The system use two ways Winform and Webform implementation to realize the data interaction with host of Travelsky.So it build a extensible,easy to maintain,plug-ins architecture platform.

Keywords:SOA;WebService;Winform;ET;ET Agent

一、前言

目前,在国内90%以上的航空公司是基于航空信息提供商的主机系统实现订座离岗业务。随着业务发展以及企业信息化的不断深入,逐步凸现这种模式的不足。

为此,采用SOA技术设计一个合适的业务框架,并开发相应子应用,实现代码共享和服务共享,来满足各航空公司的需求,达到民航系统的整合和集成,对于我国民航业的发展来说是具有深远影响的。

二、订座前端系统的需求

为整合各航空公司同中存异的需求,设计此系统用来满足业务的智能处理,实现一个以该框架平台为基础,构建不同业务需求的应用系统。本系统包括以下三个主要功能如下:用户管理、插件管理、代理人订票业务。具体系统设计模型由服务提供者(Service Provider)、注册中心(UDDI)、服务消费者(Service Consumer)三部分组成,如图1所示:

图1 结构模型

三、航空公司订座前端系统的总体设计

(一)系统架构概述

本设计采用的SOA架构是1996年Gartner公司提出的。是一种基于对象的构件计算模型,将不同的功能单元通过预先定义好的接口和契约联系起来,其构件计算模型决定了软件系统架构。

如图2所示,Web服务的接口和绑定以XML的形式定义、描述和发现,并且支持借助Internet协议。Web服务采用WSDL作为其服务接口描述语言、通过UDDI协议规范进行Web服务的网上注册和服务查找定位,并使用SOAP传输协议在网络间进行XML格式的信息交互。

图2 SOA层次模型

(二)系统拓扑

图3系统拓扑图

系统的交互对象为航空信息提供商主机。各航空公司或代理人与航空信息提供商主机交互会是通过ET服务器实现的。对于开发人员,它所暴露的是一个API接口。程序通过API接口与ET交互,实现与航空信息提供商主机的交互。用户通过系统参数的配置,实现个性化功能。系统提供插件自动加载接口,针对实际应用开发不同的应用插件;对于开放人员提供组件接口,以实现具体应用;同时应用服务器向客户提供智能升级功能。如图3所示。

(三)系统架构设计

本系统采用Webform和Winform两种方式实现面向服务的系统架构,以提高系统框架的适应性和通用化。系统自下而上分为组件层、服务层、业务逻辑层和表现层,如图4。组件层中分别将数据库访问类通过数据库操作类接口进行暴露,使得数据库访问类对上层用户透明。底层的数据库操作类继承了此接口,实现多种数据的访问操作。服务层是利用Web Service技术,将底层的功能实现封装成不同的服务组件,作为Web服务进行发布,供上层调用。同时对于与航空信息提供商主机系统交互的功能模块代理服务,也进行封装成服务组件,供服务层发布给业务逻辑层调用。而只适合于本地调用的ET应用接口则封装成本地接口给本地调用。业务逻辑层通过调用服务层所发布的服务,进行业务逻辑处理后,提供给上层即表现层调用。而系统的表现层,可以是Web应用程序,也可以是Winform程序。

图4系统架构图

(四)异常处理设计

异常捕获和抛出原则:在任何可能出现异常的地方进行捕获基本应用程序异常,并抛出合适的异常代码。

异常传播机制:始终由最上层的调用者处理异常。

异常代码处理原则:先用已定义的异常。异常起因分为数据和程序。异常级别分为:警告、错误和信息提示。对于错误要有详细的日志,其他异常只提示。

(五)系统安全

我们考虑开发一个独立的系统安全层来承担安全认证。安全服务层向其他应用层提供安全认证服务,实现在不同业务子系统中进行无障碍转换。同时是承担身份注册与鉴别的唯一场所,从而使得用户只需要一次登陆即可。利用身份认证和授权访问来保证在业务处理中信息交换的安全性、完整性、授权访问。

四、总结

本设计基于民航系统的Eterm接口,采用SOA架构设计,利用Winform和Web方式实现数据交互,构建了一个易扩展、易维护的插件架构平台。系统通过代码共享和服务共享,来满足各个航空公司的需求,使得各个不同航空公司的业务,只需在此框架下进行业务逻辑构建,就可以实现系统应用。这对于民航系统的整合和集成有重要的意义。

参考文献:

[1]刘永良.民航订座系统的模拟实现[D].上海工程技术大学航空运输学院硕士论文

[2]Martin Keen,Greg Ackerman,Islam Azaz,Manfred Haas.Patterns SOA Foundation and Business Process Management Scenaria.IBM Corp,2006,6:7

[3]New to SOA and Web services.http://www.ibm.com/developerworks/webservices/newto/

[4]OASIS.SOA Reference Model Position Paper[R],2004:7

SOA结构设计 篇3

1 构建医院智能系统需求

医院智能化系统是将各种的自动化控制、计算机网络和通信等先进技术应用到医疗工作中, 能够更好地节省医院中的人力资源, 降低能源消耗, 提高工作效率, 从而使医院的服务更加高效、便民和人性化。医院智能化是现代医院建设中一个不可或缺的组成部分和发展方向, 已成为各现代化医院中的十分重要的基础性设施。

基础平台需求:随着医疗改革的推进, 医院信息管理系统越来越复杂, 已经投入使用的医疗信息化系统包括医院信息系统、临床信息系统、医学影像处理系统、检验信息系统、电子病历系统、医院办公自动化系统、医院财务系统、医疗保险接口系统和其他专用系统等。但各系统相互独立、系统架构不合理、可交互性差、不能很好地进行信息共享和业务协作, 形成了医院的各个科室的信息系统各自为政, 信息不能方便及时交换, 普遍存在着信息孤岛的现象, 大大浪费了医疗资源。在数字化医院目标下, 当前这些信息系统已经不能满足日益需要的系统发展, 迫切需要进行系统整合与集成, 建立一个统一的智能平台[1,2]。传统的医院信息管理系统集成, 采用应用程序紧耦合的方式进行, 致使数据结构暴露、客户端过于庞大、业务逻辑容易混淆等弊端。如何建立医院信息系统集成的基础结构, 解决医院信息管理系统之间的数据共享和业务功能集成已经成为医院系统集成的核心问题。

业务功能需求:伴随着现代医学的快速发展, 为患者营造舒适的就医环境、提供人性化的医疗服务已成为现代化医院运营重要手段。由于医院建筑本身功能分区多, 格局复杂, 看病流程繁琐, 要想为患者提供一个清晰的就诊流程, 避免患者就医环节秩序混乱, 随意进出诊室干扰医师正常工作, 减轻医护人员的工作负担;为患者提供舒适、方便、智能化的就医环境。此外, 医院建立智能化系统在工作中还可以进行医院内部或者医院之间会议、研讨和培训等活动, 为医护人员提供一个舒适、高效、便捷的工作学习环境, 所以把传统医院转型成为智能化医院迫在眉睫[3]。

传统的医疗信息系统的建设, 是基于用户功能需求视角, 在分析医院管理和医疗服务流程的基础上, 把相应的业务流程耦合在平台编码中, 以此通过医院信息化平台来实现医院管理和医疗服务工作, 这种平台的架构难以快速响应需求变化。另外, 不同平台、不同技术体系的医院信息系统, 造成了不同平台的条块分割, 形成了信息孤岛。这些问题的解决需要重构医院信息化平台架构, 以达到结构灵活, 可扩展和便于数据交换的目标, 而面向服务的体系结构 (service-oriented architecture, SOA) 将是实现这一目标比较好的选择。

2 SOA

SOA由Gartner于1996 年提出[4], 其初衷是为了改变当时的C/S模型, 使得系统构架更加容易改变和重新部署, 希望通过SOA达到让IT系统变得更有弹性, 以更快地响应业务的需求, 实现实时企业 (Real-Time Enterprise) 的目标[5]。然而, 由于受当时的技术条件所限, SOA并没有受到广泛关注。直到2003 年前后, 随着商业和技术的推动, SOA逐渐成为软件工程技术发展的重要趋势[6], 受到了诸如IBM、Intel、Microsoft、HP和Sun等主要IT公司的关注, 并应用于一些政府机构的大型系统的构建中, 如美国国防部的C2系统[7]:包括NCES、JBMC2、JBI、FCS和GIG-ES等。时至今日, SOA这种体系结构已经不再仅限于软件应用, 基于服务的硬件和网络项目都已经有实际应用。面向服务架构可以看成是应用程序架构开发的下一个革命性步骤, 一个用模块化和松耦合应用程序取代单一、紧耦合应用程序的革命[8,9]。

SOA不是一种计算机软件编程语言, 也不是一种泛化的技术具体实现, SOA是一种新的软件系统架构模型, 属系统架构方法学范畴。其主要表现形式是组件模型, 它为应用程序定义接口和约束, 并将应用程序中的各功能单元联系起来。由于接口是独立于硬件平台、操作系统和编程语言的, 这使得构建系统中的服务能够按照统一的方式交互。与通常的分布式系统有所不同, SOA独立于平台, 其通信过程与特定的平台或技术没有必然联系, 无论是对旧系统的改造, 还是对新的架构设计, SOA都是首选的方案[10]。

SOA体系架构最显著的特征是功能单元的松耦合和粗粒度, 功能单元之间通过标准统一的、平台无关的接口进行交互, 这样的接口屏蔽了底层的通信协议和实现细节。具体具备了以下的特征[2]: (1) 松耦合:SOA强调服务间的松耦合。 (2) 粗粒度:粗粒度服务依靠消息交互而不是远程过程调用, 通常消息量比较大, 粗粒度的操作可以提供更高的业务价值, 修改也较为容易, 并且参数的出错率较低, 通过任务排序可以整合为一个业务流程, 以提供一个粗粒度的服务。 (3) 标准化的接口:应用功能通过标准化接口提供。 (4) 模块化:把在业务上稳定、重复出现的活动和组件封装, 实现服务的功能实体的模块化。 (5) 各种消息模式:包括支持无状态的消息、有状态的消息等消息。可以消除对消息接收端进行数据处理方式的依赖, 实现跨平台的消息传递[11]。

3 设计原则

按照SOA架构的设计思想, 根据软件工程设计规范, 参照“医院信息系统基本功能规范”, 依靠先进的信息技术和严格的管理制度, 使项目建设水平跨越到一个新的高度。系统业务覆盖医院全部范围, 并在统一的网络环境和软硬件平台下, 实现医院信息共享与服务, 并能够最大限度地提升工作效率。同时, 要求医院智能系统与医保系统等相关业务进行无缝集成, 以适应现代医院的发展要求。具体主要遵循以下设计原则。

实用性和先进性原则:系统设计按照集成、优化、扩展建设原则, 优化软件体系结构, 提供一个实用的系统设计和整合方案。在保证系统实用性的基础上, 必须考虑软件开发技术等方面的先进性, 扩展医院的业务功能, 以满足和适应将来业务的发展。

易用性原则:遵照用户界面设计规范, 提供人性化的系统操作, 易于掌握和操作, 重要功能或操作提供导航和帮助功能, 在系统设计上, 充分考虑管理决策人员、医务人员与患者的操作习惯, 通过人性化界面提供医疗信息公共服务平台。

结构稳定性原则:体系结构是设计工作的要素, 而详细设计阶段的各项工作, 都是以体系结构为基础。若体系结构经常发生变动, 就会使项目发生混乱, 造成巨大的损失。因此, 明确体系结构, 并保证其稳定不变化, 才能进行后续工作。

易管理性原则:构建系统的以管理性表现为系统结构简洁、配置灵活, 并且应当具有友好的交互界面。

安全性原则:建立系统备份和恢复等运行机制, 确保系统的安全性、可靠性。

可扩展性原则:可扩展性是指软件扩展新功能的容易程度, 为将来研发新的应用系统预留接口, 以满足不同阶段、不同应用的需求。可扩展越好, 表示系统适应变化的能力越强。

可维护性原则:充分考虑系统的维护工作需求, 设计系统管理和维护层, 专门面向系统维护人员。实行软件过程控制, 文档完整, 程序清晰可读, 便于系统维护。

4 总体框架

智能化系统的建设目标是具备智能网络预约叫号系统、智能医疗化验系统、智能护理系统、智能医疗楼宇系统、智能“网络和电视医生”等智能化系统;并能向医院中的患者、医护、科研人员和学生等提供一个安全、高效、舒适、方便的就医、诊疗、科研和学习的环境, 建立一套以患者为中心, 集自动化、网络化和信息化为一体的智能化系统空间。

针对于医院信息化建设现状, 通过深入分析目前医院信息系统的构建情况, 对医院业务进行了归类分析, 以规范化的数据表示和传输为基础, 构建安全、可靠、异步和同步模式相结合的多层多级的SOA架构的框架体系, 对医院内部各类信息系统、社会保险系统和区域医疗卫生信息系统进行实时的耦合集成, 支持和促进公共卫生及医疗改革, 为广大群众提供高效、低廉、迅捷、可靠、公平的卫生和医疗服务。其具体框架见图1。

如图1 所示, 基于SOA的医院信息系统架构分为6 层, 分别是基础设施层、数据层、基础服务层、核心业务应用层、数据交换层和展示层6 个层级, 还包括贯穿6 个层次的安全保障体系和标准规范体系两大体系。 (1) 基础设施层包括网络、通信、硬件、软件 (操作系统、数据库等) 、自动化控制以及信息采集设备等; (2) 数据层包括数据仓库、元数据库、患者信息库、药品数据库、医务人员库、公共数据库; (3) 基础服务层由公共服务组件和业务服务组件组成; (4) 核心业务应用层是根据数据结构设计各种业务服务组件来完成智能平台数据的采集、存储、查询与统计以及共享等专业应用系统; (5) 数据交换层是逻辑存在的, 它能实现不同数据格式, 不同字段的数据表之间的数据转换, 也包括系统接入调用数据进行的加密与解密, 以及各医疗机构的客户端系统与整个系统平台的对接和信息数据的异构处理、上传; (6) 展示层是外部可直接访问的统一门户网站。安全保障体系是从物理安全到应用安全保障整个智能平台的正常运营;标准规范体系是医院智能系统必须遵循和管理的数据标准, 是平台运行和应用的数据基础。

5 结论

随着医疗改革的不断深入和数字医院建设的推进, 医院智能系统建设迫在眉睫, 着眼于目前医院信息管理的瓶颈, 针对信息资源整合存在的诸如信息孤岛等问题, 提出了基于SOA的架构体系, 阐明了系统的设计原则, 设计了智能系统的框架体系。该框架体系可以有效的指导医院智能系统的研发, 实现医院信息的一体化管理、信息共享与服务, 以满足医疗卫生信息系统建设的需要。

参考文献

[1]白晶.SOA在医院信息系统中的应用需求探讨[J].中小企业管理与科技, 2010, (5) :297.

[2]王伟.SOA软件架构及其在医疗信息系统中的应用研究[D].南京:南京邮电大学, 2013.

[3]耿雪.某医院智能化系统分析[J].中国住宅设施, 2015, (2) :22-25.

[4]杨昌锋, 王冠, 司建辉, 等.基于SOA构建新一代的企业应用集成[J].计算机应用与软件, 2005, 22 (10) :122-123.

[5]杨芙清.软件工程技术发展思索[J].软件学报, 2005, 16 (1) :1-7.

[6]陈春涛.数字化医院信息系统建设与实证研究[D].武汉:华中科技大学, 2008.

[7]林闯, 孔祥震, 周寰.增强计算系统可信赖性:融合虚拟化和SOA[J].软件学报, 2009, 20 (7) :1986-2004.

[8]张晓玲.加强数字化医院基础建设有关问题探讨[J].医疗卫生装备, 2012, 33 (3) :98-100.

开源SOA的好处 篇4

简单、开放和低成本是开源SOA最大的好处。无论是部署SOA的过程,还是最终取得的结果,开源SOA都能凭借其灵活性,实现高性价比。

构建SOA要把许多不同的程序、应用和技术结合起来,要想结合得天衣无缝绝不是一件易事。兼容性、规模化和灵活性的问题总是让人头疼,而传统软件的授权使用费制度也会限制选择范围并增加成本。如果采用开源技术,则有助于缓解这些问题、加速研发和商业应用的速度。

当人们打消了对稳定性、安全性和配套支持的顾虑后,开源就成了企业级IT重要的一部分。随着越来越多的构架师和开发者理解了开源的技术核心,开源解决方案也越来越常见。

现在,开源使SOA也比专有工具价格更低,能给用户带来更大的价值。

部署SOA的6个阶段包括理解业务流程; 评估IT; 设计SOA; 实施SOA服务; 整合SOA和管理的基础设施; 完善流程。在每个阶段中,开源SOA的好处能够逐一体现出来。

前三个步骤的重点是业务流程,以及对IT与SOA的设计,开源SOA相对于传统SOA的更廉价、更灵活的定价系统,有助于加快SOA设计进程,而不必担心每个CPU都要付授权费。

在实施SOA的阶段,企业必须决定如何开发和部署应用和数据服务。开源的服务器和数据服务平台非常灵活,在与商业软件同等的开发条件下,开发人员要部署能够增强开发能力和加快开发速度的平台,变得更加容易。而社区则能进一步强化这个平台的特征和品质。

部署SOA的第五步是整个部署过程的“粘合剂”。这个阶段往往会做出一系列重大决定,是部署SOA最关键的步骤。这一点上,开源用灵活的、可大规模应用的特性,又一次证明了自己是高性价比的选择。因为即使项目的规模或某个标准突然改变,开源SOA也不必从头开始。

最后一个阶段,业务流程规则自动化让SOA成为现实。采用一个包括多个整合模型的开源SOA平台——如企业应用整合技术等,在业务流程自动化方面增加了灵活性,节约了成本,能保证部件的再利用。

说了这么多,这些好处如何在实际中体现呢?一家电信公司意识到现有的收费和服务订单管理平台无法满足日趋复杂的电信服务需求,决定选择开源SOA来整合新的收费系统。很快,该公司的服务能力得到了大幅提高,成本反而下降了。现在该公司80%以上的业务都由机器自动处理,几乎不用人工管理。SOA还将以前需要几周的服务时间减少到了几分钟,用户和员工都很满意。

SOA结构设计 篇5

本文以地理信息系统 (GIS) 技术为支撑, 采用网格化管理思想, 为我国道路养护巡查建立一套科学、高效、智能的信息化系统, 帮助管理人员实时掌控全局路况信息, 实现案件快速上报、快速派发和快速解决, 提高作业人员的工作效率、工作质量和巡查工作的自动化水平, 为道路管理、养护、规划提供直观而有效的管理手段, 为道路稽查人员提供科学的决策支持。

1 平台总体架构

当前我国多数省 (市) 已建立了公路养护管理系统, 全国绝大部分高速公路都建立了路段监控中心, 负责道路运行管理工作。各省高速公路联网监控系统主要由省高速公路联网监控中心、路段监控分中心、路段基层监控单元三层结构组成, 实时监管并掌握路网规划、建设、发展、运营、管理等数据。公路路政管理的地域性和业务的多样性、分布性决定了道路养护巡查系统是一个分布式、开放式、业务敏捷的应用系统。从技术角度看, 构建分布式应用系统有CORBA、DCOM/COM+、JavaRMI和EJB等组件模型, 但这些组件技术存在一些缺点, 它们要求服务器端和客户端有明确的同类型、同构架的对等协议, 虽然Java应用程序可以使用RMI与CORBA连接, 但与DCOM却无法通信, 从而制约了信息系统的集成。面向服务的体系结构 (Service-Oriented Architecture, SOA) 是指为了解决在分布式环境下业务集成的需要, 通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA将应用程序的不同功能单元通过服务之间定义良好的接口和契约联系起来, 接口是采用中立的方式进行定义的, 独立于实现服务的硬件平台、操作系统和编程语言, SOA为分布式、多平台的道路养护巡查业务系统的构建提供了新的思路和方法。

本文根据我国道路养护和路政巡查共性业务需求, 以GIS技术为支撑, 提出“云+端”的道路养护巡查模式, 采用面向服务思想设计并实现了集道路养护数据采集、传输、存储、发布、集成、统计分析、应急管理为一体的道路养护和路政巡查信息系统, 系统由应用层、服务层、支撑层、平台层组成, 其总体架构如图1所示。

其中, 移动GIS硬件设备采用中海达Q系列高精度手持GIS采集器 (Q-Star、Q-PAD) , GIS软件基于中海达GIS平台进行二次开发, 该平台具有跨平台、高性能、可配置、易扩展、支持多语言二次开发等特点, 其SDK包括HiMap (移动端) 、HiWebGIS (Web端) 。支撑层是整个系统的中枢单元, 由数据管理系统、通信传输系统、服务管理系统及运行维护系统组成。服务层由一系列遵循一定规范的应用接口组成, 是暴露给应用层进行集成、扩展的应用程序接口。应用层是以移动GIS为工具的数据采集、养护巡查系统、WebGIS监控、展示等系统构成, 实现移动作业、采集上报、指挥调度、视频监控、路况监控 (交通量、平均车速、车流密度、能见度、气象等) 。突发事件发生时, 可根据各种信息进行集成分析和综合判断, 可为管理人员提供预警、评估、方案模拟、指挥调度、资源调配、应急指令下达和事后处置等提供决策辅助。

2 平台主要功能模块

2.1 数据整理接入

基础地图数据、道路业务数据的预处理是本系统建设中至关重要的一环。由于这些数据通常是多源异构的, 在存储方式、数据格式、空间参考等方面存在不确定性, 需要提供通用性强的数据处理模块, 实现对业务数据的整理和接入。数据预处理工作主要在数据管理系统中完成, 主要包括与养护管理相关的业务数据 (道路设计、施工、验收、维护) 、视频数据、路况数据、气象数据、救援资源等数据。数据预处理主要包括格式转换、坐标变换、拓扑检查、符号设置、缓存制作、压缩转存等。在数据处理中, 应综合考虑桌面系统和嵌入式应用系统在数据精度、显示分辨率、寻址计算、I/O速率等方面的差异进行全局的优化设计, 如:缓存制作和压缩转存是为适应移动端软硬件环境, 对空间数据 (底图、业务数据) 进行优化处理的模块, 在地图缓存制作过程中, 同时输出多种dpi地图瓦片数据, 以适应各种显示终端设备, 并提供松散、紧凑两种存储格式, 确保数据能在桌面端、Web端和移动端均能逼真、流畅地展示。

2.2 服务配置管理

服务配置管理为应用层各类应用系统提供底层支撑, 包括GIS功能数据配置、GIS数据服务配置、空间分析服务 (SA服务) 配置和权限服务配置四大部分。一些重要的涉密数据存储在服务端, 通过服务的形式参与业务应用, 既有效地解决数据安全问题, 也减轻了移动端存储空间和计算压力等问题。

G IS功能数据配置是对G I S数据的组织、显示、查询、事件、字段等信息的设置, 通过GIS服务契约为各类服务消费者 (包括各类嵌入式GIS、WebGIS) 提供统一的服务, 主要解决系统快速开发、IT资产积累等问题。数据服务配置是对外提供服务的空间数据、业务数据的范围、展现样式、元数据说明等信息的配置;SA服务包括叠加分析、动态分段、路网分析、地址匹配等服务。权限配置采用RABC模型, 即通过用户、角色、权限三者之间建立的一对多、多对多的关系来实现权限控制, 包括功能权限和数据权限的配置。其中对数据访问权限的配置实现了字段级、记录级的精细化配置, 权限配置信息在用户登录时将存储在内存中, 当用户访问受控数据时数据库操作层根据内存中的权限信息进行拦截和过滤, 从而有效地保障了数据的安全性, 也大大降低了开发难度和工作量。

2.3 养护巡查管理

道路养护巡查模块主要由巡查排班、巡查任务执行、巡查监督管理、信息填报发布、现场指挥调度等模块组成, 如图3所示。

巡查排班采用网格化管理思想, 对辖区进行片区划分并责任到人。系统根据巡查排班计划, 实现巡查任务包的自动生成, 巡查任务包由一系列子任务构成, 每一项子任务关联着一个对象或设备 (图4) 。

不同类型对象或设备, 其子任务须填写的内容项通常是不同的, 可通过中海达手持GIS采集器内置软件Hi-Q进行动态配置。

巡查人员外出作业时, 在手持GIS采集器客户端中登录系统, 并获取其巡查任务, 客户端根据巡查人员当前位置, 自动计算最优巡查线路及巡查次序, 并以图、文、音、像等多种形式展示给用户。在任务执行过程中, 手持GIS采集器将实时位置、当前状态等信息发送给监控中心, 并接收来自监控中心的指挥调度指令 (图5) 。

巡查任务完成后, 采用中海达通信传输服务软件将数据实时上传至数据服务器, 为节省流量用户可选中将数据保存在手持端, 在内业整理资料时通过互联网上传。监控中心WebGIS综合监控模块基于HiWebGIS引擎开发, 具有良好的可扩展性, 可将路况的交通量、平均车速、车流密度、理效率。

气象等路况信息和重点地区、重点路段的视频监控进行集成展示, 实现路况全方位综合监控, 及时发现路网运行异常情况。信息审核发布模块主要是对现场采集信息的核查、分析与处理, 包括巡查信息审核、巡查信息统计、巡查违规立案、病害信息发布等部分。

3 结语

本文根据我国道路养护和路政巡查的共性业务需求, 以GIS技术为支撑, 利用成熟的计算机网络技术、数据库技术和无线通信技术, 以面向服务 (SOA) 思想设计并实现了集道路养护数据采集、传输、存储、发布、集成、统计分析、应急管理为一体的道路养护和路政巡查信息系统, 开创了“云+端”的新型、高效、安全的道路养护巡查现代化作业模式。实践表明, 该系统具有如下优点。

(1) 跨平台、一体化的GIS SDK, 以及丰富的配套软件产品, 使得软、硬件兼容性、稳定性和性能都达到最佳, 强固手持终端和稳健的通信传输为恶劣环境下户外日常作业和应急抢险提供了坚强保障。

(2) 服务式GIS能有效集成各种空间、非空间数据, 通过运行时聚合各种独立的、具有语义的元服务, 能满足需求的无限扩展性, 通过可视化界面进行服务配置, 可有效提高开发效率;“云+端”的路政巡查模式能有效解决移动作业和大数据分析两种现实的业务需求问题。将业务有关的海量数据以云存储的形式存储, 客户端通过调用服务实现“按需检索”, 既解决了某些业务数据安全性问题, 又较好地解决了移动端设备存储、计算能力有限的瓶颈问题。

(3) GIS技术和计算机技术的紧密结合, 使得分析和管理大量复杂的道路路政管理数据变成现实。网格化管理使巡查工作变被动为主动, 地毯式巡查使隐患得以快速、及时反馈, 实现道路养护的安全预警, 从而延缓大修周期, 降低道路管理养护成本, 提高了路政巡检工作效率。移动GIS内置的高精度定位模块实现了对执法人员作业路线的监控, 通过设置电子栅栏实现对巡查线路的约束, 一旦超出设定路线或者越出设定区域, 系统将会自动报警, 从而提高了作业地点的精准率。

(4) 统一的标准化巡查流程和监控机制, 最大程度上统一了各机构办事流程和信息共享, 大大提高了道路问题的处

摘要:根据我国道路养护巡查共性业务需求, 以GIS技术为支撑, 采用面向服务 (SOA) 思想建立一套集数据采集、传输、存储、分析决策于一体的、基于“云+端”模式的道路养护和路政巡查信息化管理系统。系统能为道路养护巡查提供直观、有效的管理手段, 能提供及时、准确的路况设施信息, 实现案件快速上报、快速派发和快速解决, 为道路养护巡查日常管理和应急抢险提供科学决策支持, 有效地解决了道路养护巡查过程中信息集成难、隐患定位难、养护计划难、巡查考核难、调度指挥难等问题。

关键词:道路养护,路政巡查,移动GIS,SOA

参考文献

[1]赵维裕.高速公路日常养护管理系统 (F MMS) 的建设与应用[J].交通时间, 2010, 9.

[2]赵仲华.高速公路建设和养护一体化管理信息系统研究[D].天津大学, 2006.

[3]丘建栋.基于SuperMap GIS的公路养护信息系统设计[J].广东公路交通, 2007 (4) :44-48.

基于SOA架构的供应链平台设计 篇6

供应链是指由原材料的供应商、制造商、分销商、零售商以及终端消费者等成员,通过与上下游成员的连接而组成的链状或网状结构。随着供应链的不断发展,供应链协同成为一种趋势,受到理论界和企业界的高度重视,提出了应对供应链协同的种种策略。它的实现以协同机制为前提、以协同技术为支撑、以信息共享为基础,从系统的全局观出发,促进供应链企业内、外协调发展,在提高供应链整体竞争力的同时,实现供应链节点企业效益的最大化。

随着供应链竞争的不断加剧,供应链企业的管理水平也不断提高,呈现出以下一些新趋势:物流与信息流结合日趋紧密;质量管控主体由单一企业转变为供应链;供应链企业数量逐步精简。

在信息化建设的过程中发现,由于编程语言、数据标准和通信协议的异构问题已经严重阻碍了企业内部和企业之间实现业务协同的进行[1]。为适应当今时代对企业供应链信息化的新要求,需要建立新型的供应链平台。新型供应链平台需要最大限度地消除业务和软件技术之间存在的巨大鸿沟,快速响应业务上的需要。在市场需求的不断刺激下,面向服务的体系架构(Service Oriented Architecture,SOA)设计方法应运而生。SOA改变了以技术为中心的信息系统建设模式,让IT技术重新回到业务支撑的角色,提供了一种把原有组件按一定的标准封装为具有文档形式接口描述的服务,使得服务的提供者和服务消费者之间是一种松耦合的关系[2]。这带来了业务流程重组的巨大优势,因为SOA提供了对企业业务的快速反应和敏捷性要求的支持[3]。

2 面向服务体系结构

2.1 SOA概念

SOA(Service Oriented Architecture,面向服务架构)是一种为实现业务与技术的完全分离从而实现与具体技术无关的架构思想。它将信息系统模块化为服务,并通过服务的重新编排组合实现新的或者更好的业务流程[4]。它包含了松散耦合、粗粒度、位置和传输协议透明等基本要素,从而达成敏捷的、不受限制的业务集成目标,具有复用性、抽象性、正式性和明确性等特点。这样的架构能从根本上解决企业部门间信息互通共享的问题,避免了信息孤岛的出现,从而在沟通合作不断增强的扁平的世界创造出更多的价值。

2.2 SOA服务架构

SOA为解决企业业务系统集成中的各类异构问题提供了一种解决方案,其核心概念是业务重用与企业级的互操作[1]。SOA架构本质上是服务/客户端模式,客户端消费服务可以通过WSDL来实现,即服务通过WSDL发布并对外提供服务,客户端通过基于HTTP之上的SOAP协议来调用服务[3]。

2.3 企业服务总线

在SOA架构下,服务提供者和服务消费者通过一个公共的通讯框架进行通讯,这个公共的通讯框架就是企业服务总线(Enterprise Service Bus,ESB)[3,5]。通过ESB,每个服务组件可以和许多个其他类型的服务进行通讯交换。ESB是SOA架构的基础设施,提供服务提供者和服务消费者的服务命名和查找规则,具有安全、事务控制、消息机制、服务管理和监控等功能,支持异构环境的服务、消息以及基于事件的交互。ESB为基于Web服务、J2EE、.NET和其它标准的应用提供一个基于XML标准的信息通路,使得来自不同硬件平台、不同操作系统和不同语言开发的应用能够以一种松散耦合的方式连接在一起,构成具有复杂逻辑、功能更为强大的合成应用[1]。

3 基于SOA的供应链平台体系设计

随着市场化的不断深入,供应链管理要求灵活高效的供应链协同平台。通过研究,该文设计了基于SOA供应链管理协作平台。

3.1 平台体系架构

供应链管理协作平台的架构设计需要支撑供应链信息高效交互,并包含有信息集成环境、功能软件、信息采集与传输软硬件等基本内容。该文通过梳理供应链管理流程,明确面向供应链制造过程协同的信息流和信息源建设需求,结合上述各项关键技术,并结合SOA的思想方式,设计了供应链平台。该平台体系架构图如图1所示。

本文对其平台架构分析如下:

1)表示层。本层提供供应链平台的入口,是用户与平台交互前台。它包含供应链平台门户入口,平台商业智能数据挖掘分析及报表呈现,以及为供应链的关键业务活动提供全程实时监控。

2)服务层。本层将供应链平台所设计的功能以及已有系统的各个功能模块封装为服务。包括清单管理、采购管理、库存管理、质量管理、物料管理等所有服务均可按照实际的业务过程来进行配置和优化。

3)总线层。本层是供应链平台的核心部分之一,主要包括企业总线、业务过程和规则引擎三个部分。通过总线层,应用服务组合优化配置,实现各种业务流程整合集成。

4)组件层。本层用以实现相关的业务逻辑,包括数据访问组件、业务逻辑组件等。数据访问组件是将分布在不同服务器上的异构数据源,通过一个完整的数据定义,将各种数据对象描述成统一数据资源视图;业务逻辑组件采用图形化的方式将运算逻辑、服务组装成更大粒度的组件[2]。

5)基础设施层。本层是整个供应链平台的基础性部件,提供平台的运行环境以及开发环境,支撑平台的平稳可靠运行以及二次开发。

6)数据交换层。本层为整个供应链平台提供统一标准格式的数据,为平台的运行和维护提供数据交换服务,保证数据流的高效运行。

7)安全管理层。本层为供应链平台提供统一的安全认证服务,包含有用户管理、单点登录和访问控制,为平台的平稳运行提供重要保障。

3.2 平台功能分析

此平台按照功能划分可分为:基础软件应用平台和集成的通用功能服务。这些通用的功能服务包括模型服务、文件服务、报表服务、监控服务、消息服务、知识服务等。具体的服务功能如图2所示。

模型服务:提供业务对象模型化,业务节点模型化等面向对象设计功能,支持业务对象间关系调整、业务对象管理功能。

文件服务:对平台内文件的创建、删除、更新、查看操作和文件传送、文件加密、文件加锁等功能进行统一安全管理。

报表服务:提供灵活的查询分析及高级分析,以及对商业智能的分析结果按照定制模板生成各种专业报表。

监控服务:根据需要,通过本服务,只需简单配置,即可实现灵活实时地对供应链各业务活动进行监控。

消息服务:提供创建、发送、接收和展示消息的服务,并通过定义一组公共应用接口和相应语法,保证了各消息服务方便快捷地通信。

知识服务:将平台里的各种数据转化为知识,以支持企业的商业智能分析,帮助企业业务决策。

4 总结

随着新形势下市场竞争的不断激化和信息化的加速发展,企业内部众多的信息管理系统需要统一的平台进行整合,以形成企业内部供应链平台的一体化,从而打破企业内部的消息壁垒,实现企业信息资源方便高效快捷的互通互享,提升企业的经济效益。

本文将SOA架构运用到企业供应链平台中,把企业核心业务模块封装成一个个标准的服务,根据实际的业务需要进行组合编排调用。该文详细地设计了对基于SOA的企业供应链平台架构,并实现了该平台的主要功能服务模块。基于该SOA架构的供应链平台已按本文设计在上海某企业得到相当成功的应用,为企业带来了供应链成本的降低、供应链服务水平的提高,进一步发挥了企业信息化的巨大优势,取得了良好的经济效益。

摘要:SOA是一种将信息管理系统模块化为服务的架构风格,可简单地通过服务重新编排组合来灵活应对业务流程上的不断变化,从而为企业信息化的深入开展提供了强有力的保障。该文利用SOA思想,设计了基于SOA的企业供应链平台架构,实现了该平台的主要功能服务;在实际的应用中,降低了供应链成本,提升了供应链服务水平,取得了良好的经济效益。

关键词:SOA,供应链平台,企业信息化

参考文献

[1]隋新,朱云龙,南琳,等.基于SOA的供应链管理平台设计与实现[J].计算机工程与设计,2012,33(1):147-152.

[2]曲建华,徐广印,应继来,等.基于SOA的物流公共信息平台设计研究[J].河南农业大学学报,2012,46(1):103-107.

[3]胡德华.SOA之道:思想、技术、过程与实践[M].上海:上海交通大学出版社,2011:4-15.

[4]Brown P C.Implementing SOA:Total Architecture in Practice[M].Beijing:China Machine Press,2009:1-4.

基于SOA的开放式考试系统设计 篇7

关键词:SOA,考试系统,Web Service

随着网络技术和远程教育技术的发展,基于网络的考试系统在题库管理、考试管理和考试实施中可跨越时间和地域限制,且高效、便利、准确,在试卷批阅中能够实现自动化和手工相结合,特别适合于大规模考试,因此越来越受到用户和研究者的重视[1]。

目前高校和中小学信息化计算机自动考试系统除格式比较固定的选择题和填空题外,在自动化测试方面主要针对两种内容。

(1)以计算机操作考核为主要内容的考试系统,如针对《大学计算机基础》全国计算机等级考试一级部分考试等。比较典型的实现技术是基于Microsoft 的客户端自动化获取被测试内容的相关属性值与参考答案进行比较,或监测用户的鼠标、键盘操作进而获取用户操作的序列实现与参考答案的模糊匹配;

(2) 以程序设计考核为主要内容的考试系统,如高校开设的各类程序设计、全国计算机等级考试中程序设计类考试等。典型题型是在指定区域内修改程序中的逻辑错误或填入空缺代码,或根据程序功能描述完成功能函数的代码。常用实现技术是修改或填入字符匹配检测,或功能函数对指定数据进行处理并输出到指定文件,最后通过对输出文件的内容进行匹配监测以确定完成的功能函数代码的准确性,也有研究者使用人工智能中的模糊评判技术对程序代码的功能进行评测[1]。

这两种考试系统在架构上都把客户端和评测内容捆绑在一起,如果评测内容及评测方式发生改变,则客户端程序需要重新编写,而且题型比较固定,不利于考试内容的拓展和二次开发。为此,本文提出了一种基于SOA的开放式自动考试系统架构,评测内容和评测方式以Web Services的方式实现,客户端只是用户和Web Services的接口。该系统的开放性体现在若要添加新的评测内容,只需添加配套的评测方式或组合现有的评测方式形成新的Web Services,并进行发布供其他客户端程序访问。

1 SOA相关技术

SOA即面向服务的体系结构[2](Service-Oriented Architecture),是一种新的IT系统架构思想,将应用程序的不同功能单元服务(Service)通过服务之间定义的接口和契约(Contract)联系起来。接口采用中立的方式定义,独立于具体实现服务的硬件平台、操作系统和编程语言,使得构建在这样的系统中的服务可以使用统一和标准的方式进行通信。这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。

SOA目前最主要的实现方法是Web Services技术,实现Web Services的主流开发平台有J2EE平台和Microsoft.net平台。其框架如图1所示。

(1)可扩展的标记语言XML是Web Service平台中表示数据的基本格式,用于描述Web Services之间交换的数据和文档,从而实现与平台的无关性;

(2)Web Service描述语言WSDL(Web Service Description Language)基于XML语言,用于Web Service的提供者将Web服务的传输方式、方法、接口参数、服务路径等生成相应的文档发布给使用者;

(3)UDDI(Universal Description,Discovery and Integration)向服务注册代理描述、发布和注册Web服务,服务请求者通过UDDI进行查询所需的服务;

(4)简单对象访问协议SOAP(Simple Object Access Protocol)是Web Service的标准通信协议,采用标准化XML格式传输消息,SOAP基于Http协议,服务使用者基于SOAP协议请求服务提供者提供的Web服务。

2 系统设计

基于SOA的开放式自动考试系统的总体设计如图2所示,所有核心功能都以Web Services的形式实现,部署在Web Services服务器上,客户端和管理端通过服务请求实现对核心功能的访问。

(1)DBconnector:

数据库连接通用模块,为所有的Web Services访问数据库提供统一的接口。

(2)安全访问控制:

基于角色的访问控制RBAC机制[3],通过为角色授权确保对Web服务列表中Web Services的安全访问,并实现对数据库的安全访问。角色是访问权限的集合,用户通过赋予不同的角色获得角色所拥有的访问权限。一个用户可拥有多个角色,一个角色可授权给多个用户;一个角色可包含多个权限,一个权限可被多个角色包含。用户通过角色享有权限。如果角色之间存在继承关系,则上级角色可继承下级角色的部分或全部权限;

(3)评测内容和评测方式Web Services:

评测内容根据不同的考核目标、内容及考核形式等特点进行分类,对应相应的Web Services实现对评测内容的访问管理,如对试题进行管理、抽题管理等。

评测内容描述为

其中,C为测试内容描述集合;WS为Web Services集合,即WSC中的每一个评测内容是测试内容描述和对评测内容进行处理的Web Services的二元组。

测试内容和知识点之间的关系描述为:

其中,ciC,Km为知识点K的子集,KmKAjci所对应的答案描述,Aj的描述基于XML,它描述了ci的类型及对应的答案。fCN基于上下文描述ms实现测试内容ci和知识点集合KmAj的映射,ms基于XML进行描述,即通过fCN,可以确切地知道ci考核的知识点及答案。

知识点集合K描述为

Κ={ki|kiid,l,t,spec>} (3)

即每个知识点包括ki惟一的编号id、难度级别l、知识点类型t和描述信息spec。id通过编码函数M实现与章节的对应,从而使知识点形成一个树状结构。l∈{1,2,3,4,5},分别对应不同的难度级别,1为最简单,5为最难,在创建知识点时指定,基于kil通过加权平均的方式可以得出ci的难度,而具体的权值通过ci对应的Aj描述的类型确定。知识类型t用于说明该知识点在知识点树状结构中是否为叶子结点。spec用于描述该知识点。

评测方式Web Services为一个集合,描述为

WSTi基于fCN(ci)实现对测试内容ci的评测。

SOA的优势之一是其服务可以组合,从而形成新的服务。为此,基于Web Services接口的WSDL描述,可以将相关的Web Services根据考核知识点和方式的需求进行组合,从而形成新的评测内容和评测方式Web Services,这也是该设计的开放性所在。

(4) Web Services列表管理:

承担SOA架构中的UDDI功能,在本系统的设计中是一个简化的UDDI。添加新的Web Services时,其WSDL描述及对应的评测内容类型通过Web Services列表统一注册,当客户端或管理端请求Web Services时,Web Services列表可以根据评测内容类型查询合适的Web Services,或根据WSDL描述查询Web Services对应的评测内容类型。因此,当添加新的评测内容类型并为之指定或增加新的评测方式时,客户端程序不需要重新编写。当然,所有的Web Services请求都必须通过安全访问控制检测,进而确定能否进行响应。

(5)用户管理:

管理对Web Services进行访问的用户及基于客户端进行考试的用户,包括用户的添加、删除、导入和基于角色的授权。该部分的功能以Web Services的形式实现。当用户进入系统时得到一个会话并获得其权限描述。

(6)试题管理:

实现对试题和知识点的添加、删除、更新等操作。可以成批导入指定格式的试题,也可以逐个添加。试题集合T描述为

即试题集中的每一个试题tj都基于上下文描述mtj与知识点集合Cj对应。Cj至少包含一个知识点。

(7) 考试管理:

主要完成对考试过程的管理。功能包括:1) 注册考试,高级管理人员注册要进行的考试,需要指定时间、考试类型和内容、参加人员等信息;2) 试题组卷,按照注册考试的信息,按照指定的难度和试卷生成策略基于试题集合T自动生成考试试卷,试卷中的每个题目对应着相应的分数值;3)考试过程管理,确认考试时间和参加人员,在确定“开始考试”后,客户端根据登录用户的信息下载对应的试题进行考试,在考试结束并完成阅卷后备份试卷内容;4)成绩管理,考试结束后,授权角色对应的用户可以查阅试卷和成绩,完成成绩分析统计,并将学生成绩按Excel格式导出,学生的试卷按PDF格式导出,以便存档管理。

3 结束语

基于上述设计,使用Visual Basic 2005成功开发了一套Visual Basic 2005自动考试系统,数据库使用SQL Server 2005,Web Services部署在IIS 6.0上。该考试系统平稳运行一年多时间,验证了该系统设计的合理性和有效性。

参考文献

[1]李中华.基于Web环境的通用在线考试系统的设计与实现[D].成都:电子科技大学,2007.

[2]毛新生.SOA原理、方法、实践[M].北京:电子工业出版社,2007.

SOA结构设计 篇8

关键词:面向服务的结构,Web服务

1 引言

面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种通用的方式进行交互[1]。

Web Services是实现SOA的一种方法,它实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。

2 主要技术

2.1 SOA

为了建立面向服务的体系结构模型,所需要的并不只是服务描述。需要定义整个应用程序如何在服务之间执行其工作流。尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA应该能够将业务的商业流程与它们的技术流程联系起来,并且映射这两者之间的关系。这样,最终形成的系统流程可以看作是完全按照工作的流程来进行的,一个系统的运行过程就好像真的在各个环节中运行一样。而且,这样形成的系统,有以下几个优点:(1)改变了传统的编程的方法,只要按照相应的工作流程把相应的服务组织串联起来即可,可以不编写一行代码的情况下构建整个应用程序。按照这种方式,甚至还可能得到直接代码,因为服务可以通过多种不同的语言和平台进行编写。可以将构件放在一起来组成定义应用程序的执行方式的操作工作流,而且还可以用其他的工具来监控每个服务或服务组的工作流的有效性。(2)这样做出来的系统也便于以后的更新和维护,如果以后的工作流程有所改变时,可以跟据工作流程的改变来相应地改变系统中的流程就可以了,没有必要对整个系统进行重写,工作流在SOA的设计中扮演十分重要的角色。(3)对于代码的重用可以作到极致,在把服务写好之后,就可以在任何地方,通过Internet来调用这个服务。

2.2 Web Service

Web服务是描述一些操作(利用标准化的XML消息传递机制可以通过网络访问这些操作)的接口[2]。Web服务是用标准的、规范的XML概念描述的,称为Web服务的服务描述。该接口隐藏了实现服务的细节,允许独立于实现服务基于的硬件或软件平台和编写服务所用的编程语言使用服务。允许并支持基于Web服务的应用程序成为松散耦合、面向组件和跨技术实现。Web服务履行一项特定的任务或一组任务。Web服务可以单独或同其他Web服务一起用于实现复杂的聚集或商业交易。

XML的通用性使得Web服务不同于前一代组件技术。它允许语法结构(句法)与语法意义(语义)的分离,每个服务处理和理解它的方式独立于它所存在的环境。因此可以将对象定义为服务,它可以与其他采用XML定义的语法的服务进行通信,从而每个服务又可以根据其本地实现和环境来转换和分析消息。因此网络应用程序实际上可以由各种构造和设计的实体组成,只要这些实体符合它们面向服务的体系结构就可以。

Web服务具有如下优势:

(1)让任何平台上的用任何语言编写的服务进行交互。

(2)将应用程序功能概念化成任务,从而形成面向任务的开发和工作流。这使得更抽象的软件能够为工作在业务层面具有较少软件分析技术的用户所用。

(3)允许松耦合,这意味着每当其中某个或多个服务在设计或实现中发生变更时,服务应用程序之间的交互不会因此而中断。

(4)使现有的应用程序能适应变化中的业务条件和客户需要。

(5)向现有或遗留的软件应用程序提供服务接口,而无需改变原来的应用程序,从而使这些应用程序完全可以运行在这种服务环境下。

3 实现SOA的优点

使用Web服务技术来实现面向服务的体系结构,是在一个更强大、更灵活的编程模型中创建一种新的构建应用程序的方式,从而降低开发成本、持有成本以及实现风险。SOA既是体系结构模型,又是编程模型,是一种考虑构建软件的方式。

SOA服务和Web服务之间的区别在于设计。SOA概念并没有确切地定义服务具体如何交互,而仅仅定义了服务如何相互理解以及如何交互。其中的区别也就是定义如何执行流程的战略与如何执行流程的战术之间的区别。而另一方面,Web服务在需要交互的服务之间如何传递消息有具体的指导原则;从战术上实现SOA模型是通过HTTP传递的SOAP消息中最常见的SOA模型。因而,从本质上讲,Web是实现SOA的具体方式之一。

Web Service是一种类似传输协议的规范,而WSDL是在SOA中定义服务接口的语言,可以用它来描述CORBA接口(即通CORBA来实现SOA,这样要通过两次语言转化)而Web Service本身就要求以XML语言为基础的一种语言定义接口,这样不用再通过任何语言转化就可以把SOA和Web Service充分地结合起来。可以说SOA是在整体上定义了系统的框架,而Web Service则是在实现上定义了这个框架中各个部分相互通信的方法。

同其他的协议相比,DCOM是专有的,因此就否定了基于标准的互操作性这个目标;RMI是基于Java的,因此不易用其他语言来处理,CORBA与Web服务更接近。它是基于标准的、与供应商无关并且和语言无关。但因为它利用因特网的能力和灵活性的方式比较复杂而又特别,这就造成了它的局限性。

通过Web Service来实现SOA,它不仅可以使系统充分发挥SOA体系的优点,使系统的流程与工作流程相关,可以灵活重组和改变系统流程和功能,快速地开发、集成和维护升级;而且,还可以利用Web Service技术向SOA提供与平台和语言无关的服务,因为SOA和Web Service都是基于XML的,而且没有定义任何实现语言,可以采用任何语言来实现基于Web Service的SOA体系结构的系统,而且这些系统也可以在不同的平台上实现无缝的通信。

4 结语

SOA是关于分布式程序的体系的结构,有助于分布式程序维护和升级,并且可通过Web Service的形式来提供程序间的接口,这样系统会充分发挥两种技术优势,使系统更易于升级,维护,同时又具有了跨平台性,而且可以最大限度地重用代码。通过SOA体系结构,可以使业务IT系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。

参考文献

[1]Geoffrey Fox,Wenjun Wu,Ahmet Uyar,Hasan Bulut A Web Services Framework for Collaboration and Audio/Videoconfer encing.

[2]B.Benatallah,M.Dumnas.Towards Patterns of Web Service C omposition.

[3]http://www-900.ibm.com/developerworks/cn/webservices/newto/websvc.shtml.

SOA的“创新梦工厂” 篇9

“全球整合企业对于组织商务活动是一种更好的和更盈利的方法。”IBM CEO塞缪尔•帕米萨诺最近发出了这样的倡导,“但向这种模式转变对于企业领导人来说是一个巨大的挑战。其中挑战之一就是技能,即获得高价值的技能。”而技能的提高,业务整合则是呼声最高的选择。

在国内,公立医院永远是一个人满为患的地方,看病并非易事。如果以后你可以不用亲自去大医院挂号,在社区卫生医疗机构点就可以享受大医院的服务,这就需要这一区域与卫生关联的各机构纵向、横向的数据整合。北京西城区卫生局正在做这样的事情,他们试图在基于IBM的智能SOA(面向服务架构)框架来实现其业务等多方位的整合。

“当时选择SOA,是考虑到SOA可以把不同的服务、不同层次的发展,根据我们的能力合理的部署在一起。”北京市西城区卫生局信息中心的主任朱树宏对于SOA的选择有自己的考虑,“而不足在于,每一个给政府提供服务的企业都会感觉,从项目签下来到项目完成需求改了十次八次,风险也依赖于政府对项目成熟度的控制。也就是说,如果作为政府方不能有效的控制住需求,不能和乙方很好的合作,SOA项目最后的结果就是失败。”

进入今年年底,中国电信上海研究院第二届创意大赛也进入了筹划阶段,这个2006年由上海研究院兴起的创意大赛,希望通过激发员工的创意,使研究院建立起一种注重创新的浓厚的文化氛围,以配合中国电信从传统基础网络运营商向现代综合信息服务提供商转变。与首届创意大赛不同的是,在筹备第二届创意大赛时,中国电信上海研究院同时开始着手建设一套中国电信的创新汇聚平台—“创新梦工厂”。

“创新梦工厂”其实是一个工具,一个能帮助企业更高效、快速地进行创新活动的工具。它由IBM高性能随需应变服务解决方案(HiPODS)团队研制开发,为客户提供Web 2.0型的协作和IT管理功能,使其能够创建并运行从孵化到产品的服务。值得一提的是,“创新梦工厂”中的服务网格环境,也是基于SOA架构提供开发、运行和维护服务。

上面的两个故事,是IBM提了3年之久的SOA在中国的落地样版。前不久,在“IBM 2007 SOA创新高峰论坛”上,IBM软件集团大中华区市场总监刘秋美表示,“不论有没有开始SOA,不管SOA进行到什么程度,IBM都能告诉你具体每一步该怎么做,不管你的企业规模有多大,你都可以成为一个全球整合的企业。”IBM希望以此表示,SOA已经不再遥远。

“我们把一个SOA的演进和成功的推进过程大致分成四个阶段,从刚开始的切入点,到第二阶段的端到端的扩展,再到第三阶段的业务转型,直至最后技术和业务之间完全透明的互相整合。”这就像变形金刚一样,如果是在基础阶段,你会发现有10%的东西事实上是可以重复使用的,5%会变成你的公司资产;第二阶段,你会发现有40%的东西可以拿出来重复使用,20%变成你的资产。依此类推。当到达最后一个阶段时,如果有业务需要重新整合时,你可以很快做出变化。

SOA结构设计 篇10

随着信息技术的迅猛发展, “数字化校园”时代已然来临。针对校园信息化进程中出现的诸如教学资源杂乱和无序、可集成性差、信息孤岛严重、数据无法共享和交换、各类应用系统缺乏统一入口、人性化不够等问题, 国内外学者对此进行了探索, 并提出了一些解决方案。如张晞等对高等院校CRP系统的基本特点、机制和功能进行了一定的探索;蒋东兴等提出了大学资源计划 (URP) 的“1+N+1”模型, 即1个基础平台、N个应用以及1个门户;季一木等结合SOA理念, 对该模型进行扩展后, 提出了CRP的“1+1+N+1+1+N”模型, 即1个统一访问接口、N个应用子系统、1个基础支持平台、1个异构数据适配器以及N个不同数据库;张杰宏等提出了“1+1+N+1+1+N”的URP模型, 即1个平台、N个应用系统、N种不同权限的用户以及1个公共门户;彭炜实现了URP模式下的统一身份认证系统等。

上述研究为校园信息化建设奠定了基础, 拓宽了思路。然而, 针对高等院校信息化建设的相关研究却比较少见。高等院校的“数字化校园”建设有其独特性, 本文以广东科技技术职业学院为研究对象, 以校园内部一体化管理、校内外一体化应用等理念构建一个集管理、交流、互动为一体化的CRP平台, 通过该平台覆盖全院所有应用系统, 为学院全体师生提供跨部门、跨系统的信息共享和交换服务, 基于校内、校外网络环境实现全院决策科学化、办公现代化和信息资源网络化等目标。

1 CRP平台设计

1.1 信息集成基本框架

本文基于SOA (Service Oriented Architecture) 集成模式, 参考已有研究, 提出如图1的三层信息集成框架。

该框架中, 统一访问平台层主要实现功能完备性定义、工作流的定义以及用户的访问机制 (角色定义) 等;服务集成层主要实现服务的描述、服务的集成以及各种服务的实现等;模型集成层主要实现各种业务模型的描述、数据逻辑传输、业务模型的抽取和业务模型的集成等。层与层之间通信通过消息映射来实现。

1.2 CRP模型

以上述集成框架为指导, 结合现有的URP、CRP模型以及ERP理念, 本文提出的高校CRP“1+N+1+1+1+N”模型如图2所示, 主要模块概述如下:

(1) 1个用户统一访问平台。

为包括教职工、学生、家长以及其他用户提供统一访问入口。为此, 针对CRP中的各类应用系统需要对校内、校外网络开放访问权限, 以及实现不同资源访问权限的单点登录功能。

(2) N个业务系统。

即高校构建的各种应用系统, 如学工管理系统、教务管理系统、财务管理系统、科研积分管理系统、人事管理系统等, 这些业务系统为高校日常的教学管理、科研管理提供服务, 是“数字化校园”的重要内容。

(3) 1个业务集成支撑平台。

解决N个业务系统的集成、以及它们之间的相互调用和统一的用户访问, 最终实现业务系统应用的即插即用。

(4) 1个异构数据交换平台。

解决异构数据源的交换和共享问题。

(5) 1个信息分类编码平台。

解决现有系统由于基础数据分类编码不一致而导致的数据无法共享和交换问题。

(6) N个不同应用的数据库。

指为N个不同的业务系统服务的N个数据库, 这些数据库可能是Microsoft SQL Server, 也有可能是DB2、Oracle、Informix、Access等, 不同的数据库无疑会阻碍N个业务系统的互操作。

1.3 CRP系统的体系结构

结合CRP“1+N+1+1+1+N”模型, 设计的CRP系统体系结构自上而下分为应用层、业务系统层、统一集成支撑平台层以及支撑系统4个层次, 如图3所示。

2 CRP平台的实现

针对CRP模型中关键部分如统一访问平台、异构数据交换平台和信息分类编码平台的实现, 主要采用J2EE开发平台, 并结合多种框架技术如Struts、Spring和Hibernate等进行分层实现。

2.1用户统一访问平台的实现

由于现有应用系统采用的安全认证方式不尽相同, 因此, 选用ICE中间件开发平台来实现对不同认证模式的开发, 其实现过程如图4所示。

基于ICE中间件实现不同认证方式的统一认证具有开发效率高的优点, 且在集成过程中只需要简单修改原有认证部分, 就能够实现对.NET、ASP、JSP、PHP等多种语言的接口。

2.2异构数据交换平台的实现

在异构数据交换平台中, 采用XML标准格式来实现数据的共享和交换, 如图5所示。

将Microsoft SQL Server中的表转换成XML文档为例, 实现基于XML的异构数据交换的步骤及部分关键代码如下: (1) 加载数据库连接驱动, 本文采用JDBC来获取需交换的数据表; (2) 通过连接对象conn创建一个Statement对象来实现SQL语句的执行, 并把结果返回到ResultSet中; (3) 创建Document对象, 并定义好根元素; (4) 通过循环语句创建子节点用于存放表中对应的记录, 部分关键代码如下:

(5) 用XMLOutputer输出文档, 在服务器端还可以对其通过XSLT进行格式化显示。

2.3信息分类编码平台的实现

由于校园内各个业务系统建立于不同时期的不同部门, 它们缺乏统一的规划, 使得各应用系统中的基础数据难以实现数据的共享和交换。因此, 本文通过信息分类编码平台来解决数据编码的不一致问题, 其基本思路是:对所有高校信息资源参照国家《教育管理信息化标准》中的相关规定进行标准化编码和存储, 同时考虑现有高校的一些特点和定义, 具体的编码生成过程如图6所示。

能够很好地解决现有信息编码结构存在的种种问题, 诸如: (1) 编码结构过于简单, 以及直接采用流水号形式, 无法实现码位的扩展; (2) 缺乏统一信息组织的编码结构, 无法实现跨部门、跨系统的信息交换和共享; (3) 编码信息容量限制, 造成编码语义多义性现象; (4) 因编码结构缺乏灵活性而无法适应动态变化业务的需求等。

在实际应用中, 由于现有应用系统已被各个部门所接受并熟练使用, 不可能推倒重来, 因此, 在本平台中通过标准化的资源 (虚表) 作为中间桥梁映射到相关应用系统中, 从而最终实现信息的共享和交换。具体如图7所示。

3结语

CRP通过对校园内外已有信息资源和应用系统的集成与整合, 为加快校园信息化进程提供了一条有效途径。本文基于SOA集成模式, 结合ERP管理理念提出的CRP平台解决方案, 能够解决“数字校园”建设中的数据难以共享与集成、以及应用系统的统一访问等问题。该平台的实际应用, 必将在整合高校内外部信息资源、促进不同部门之间的业务协同等方面发挥巨大作用。

摘要:针对高校信息化建设中的数据共享和交换、资源的集成与整合以及应用系统的统一访问等问题, 基于SOA集成模式和ERP集成理念, 提出了一个高校资源规划 (CRP) 模型, 并设计了其体系结构。研究了采用ICE中间件实现CRP模型中用户统一访问平台的方法, 以及基于XML的异构数据交换和信息分类编码平台的实现方法。

关键词:数字校园,SOA,CRP,ICE中间件,XML标准格式

参考文献

[1]张晞, 徐相林, 魏胜能, 等.高等职业院校CRP系统的应用研究[J].中国教育信息化, 2011 (13) .

[2]蒋东兴, 史宗恺, 陈怀楚, 等.大学资源计划的方案研究[J].清华大学学报, 2004 (4) .

[3]季一木, 陆莉莉, 王汝传, 等.基于SOA的校园资源规划CRP模型研究[J].计算机应用研究, 2009 (5) .

[4]张杰宏, 宋大龙.大学资源计划 (URP) 研究[J].沈阳航空工业学院学报, 2005 (4) .

[5]彭炜.基于大学资源计划的数字化校园规划与研究[D].成都:电子科技大学, 2006.

[6]袁占亭.基于Web services的企业应用集成解决方案研究[J].计算机集成制造系统, 2004 (4) .

[7]LIMIN WANG, MING LI.Research on University Resource Man-agement Based on Digital Campus[C].2009International Confer-ence on Computer Technology and Development, 551-554.

[8]代田田.基于SOA架构的信息集成研究[D].上海:上海交通大学, 2007.

[9]徐林.基于SOA的远程教育资源整合系统研究[J].微电子学与计算机, 2007 (6) .

上一篇:阅读能力提高的妙法下一篇:广域一体化保护