首页 > 范文大全 > 正文

基于SOA和云计算的图书借阅系统初探

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于SOA和云计算的图书借阅系统初探范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:SOA架构技术和云计算的基础架构支持的结合促使教育和科研领域的IT信息化实现动态及快速响应业务需求。图书馆管理系统属于教育教学管理中的一个分支,在学习探讨SOA技术和云计算的含义以及相关设计和应用方法后,以图书借阅系统为实例,研究系统工作流程,分析用户、书籍本体集,将信息查询、借阅、归还等业务流程作为服务设计,实现松耦合,最后给出Google GAE(Google App Engine)平台下的相关设计环境。

关键词:SOA;云计算;语义;本体;图书借阅系统

中图分类号:TP311.52文献标识码:A文章编号:1009-3044(2011)29-7149-03

SOA and Cloud-based System of Lending Book

DENG Xiu-hui, YUAN Zong-fu

(School of Computer Engineering, Nanjing Institute of Technology, Nanjing 211167, China)

Abstract: The combination of SOA architecture and cloud computing infrastructure's support promote the field of IT information education and research to dynamic and rapid response to business needs. Library management system is a branch of Education and teaching management. By studying the meaning of SOA and cloud computing, we know the related application methods. With the Instantiated the book lending system, we analysis system workflow, and get group of ontology like the users and books, make the information search, borrow, return and other business process design as a service to achieve loose coupling, and finally show the design environment related to Google GAE (Google App Engine) platform.

Key words: SOA; cloud computing; semantic web; ontology; book lending system

Google自2003年依次自行开发了GFS(Google File System)分布式文档系统、MapReduce分布式计算和Bigtable分布式数据库,开创了自己的云计算;2007年11月,IBM宣布“Blue Cloud”计划,推出面向企业的云计算解决方案,宣告新计算模式到来;2006年3月,亚马逊(Amazon)公司首先推出云计算服务――简单存储服务(Simple Storage Service) 实现基础架构云层(Iaas)存储云功能,2006年8月使用Hadoop搭建起云计算平台Amazon Web Service,并推出最重要的云计算服务弹性计算云(Elastic Compute Cloud,EC2),2007年7月亚马逊公司推出简单队列服务(Amazon Simple Queue Service,SQS),使托管主机可以存储计算机之间发送的消息,此外Amazon SimpleDB为复杂的结构化数据提供“一个对结构化数据实时查询的Web服务”;2008年微软Azure Services Platform云计算平台……云计算正悄悄影响着IT行业的变化,而与SOA技术的融合更促进了企事业、教育单位IT行业系统的发展,并带来一场巨大的变革。

教育和科研领域的信息化同样需要通过云计算和SOA技术的结合,进行集中管理。图书馆管理系统属于教育教学中的一个分支,随着图书馆新书不断增加,高校扩招带来的学生、教师等人员的信息变更及扩增,学校资源管理同样借助SOA的架构能力,以及云计算的交付能力予以不断完善和发展。图书借阅系统是图书管理系统上的一个子部分,其中包括了图书借阅、用户个人信息查询等功能,结合SOA和云技术,探讨相关应用在系统中的设计和应用方法。

1 SOA和云

1.1 SOA

面向服务的体系结构(Service-Oriented Architecture,SOA)是传统的面向对象的模型的替代模型,虽然基于soa的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。简单来说,SOA的理念是把各种业务功能都当作服务来提供,基于各种服务可以组装出不同的业务逻辑和上层应用[1]。基础架构能够以服务形式暴露给应用,应用可以按照自己的需求定制应用环境,不再和硬件绑定,基础架构服务可以包括:计算服务、网络服务、存储服务等。SOA系统原型的一个典型例子是通用对象请求体系结构(Common Object Request Broker Architecture,CORBA),它的出现较早,其定义的概念与SOA 相似[2]。

1.2 云

云的概念铺天盖地而来,而云的含义由“代表数据总新活着网络之外的一切事物”,转变为写入美国国家标准技术研究所(National Institute of Standards and Technology,简称NIST)的标准文件中[3]的云含义包括软件即服务(Software as a service,简称SaaS),即可以在线访问的软件应用;基础设施即服务(Infrastructure as a service,简称IaaS),即向用户出租服务器,按时间计费;平台即服务(Platform as a service,简称PaaS),即提供工具,让用户建造在宿主云中运行的软件。而这些含义随着云技术的不断完善,还将进一步发生演变。

2 基于服务总线和云技术的设计

SOA作为一种应用的构建方法,主要用来解决业务功能上的需求,保证业务可以快速地开发和组合,而云计算是一种基础架构的构建方法,主要使用虚拟化方式解决非功能上的需求,保证基础架构能够满足应用的各种需要。一个设计良好的SOA应用程序在资源、处理能力和处理时间上没有限制(如图1)[4]。

云计算是对分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)及分布式数据库的改进处理[5],云架构中的网格计算确保SOA应用程序的弹性云的优势,并在有限的时间内完成一个服务进程。SOA应用程序的真正的成功取决于广泛其部署在云上,并利用它的弹性。

2.1 松耦合

为了保证SOA快速开发和组合提供可能性,良好的SOA组件设计要求松耦合,即一个组件对另一个组件的依赖程度比较低,各自相对独立。这种松耦合可以实现位置、交互、安全和实例的独立性上[6]。位置独立性主要指不论服务位于何处,需要使用该服务的组件都可以从服务目录中找到它,并通过延迟绑定访问它;交互独立性体现在不论组件使用何种接口或协议,它们之间都可以互相通信;安全独立性的主要理念是协调组件内及组件间不同的安全模型,对于SOA是必不可少的;实例独立性是指架构既支持组件间的同步交互,也支持异步交互,并且不要求组件在接受数据或消息时处于某个特定状态。

2.2 语义整合技术――本体论

所谓语义整合技术,就是要在各种纷繁复杂的原始数据中找出其共同具有的匹配模式[7] 本体是解决语义层次上网络信息共享和交换的基础,这种骨架地位使本体的研究和开发成为整个语义网研究中的重点。目前还没有一种权威的形式化本体定义,不同研究者针对他们所要解决的问题背景,提出很多形式化本体定义。1993年Gruber给出第一个让人信服并被广泛应用的本体定义后,Borst在此基础上给出本体的另一个定义:“本体是共享概念模型的形式化规范说明”[8]。Studer等人进一步研究认为本体是“共享概念模型的明确的形式化规范说明”[9]。

语义多层功能描述了语义网体系结构,每个层次通过不同层次的表示语言逐步完善对网络信息语义的描述[10]。其中:第一层是统一字符编码Unicode(Universal Multiple-Octet Coded Character Set,统一字符编码)和统一资源标识URI(Unified Resource Identifier,统一资源标识),负责网络资源的编码和标识,是网络中信息表示和交换的实现基础;第二层是可扩展标记语言XML(eXtensible Markup Language,可扩展标记语言)、XML名称空间和XML Schema,表示信息数据的内容和结构;在这之上的资源描述框架RDF(Resources Description Framework,资源描述框架)和RDF Schema描述网络上的信息资源,为其赋予语义;最上层的网络本体语言OWL(Web Ontology Language,网络本体语言)进一步扩展表达信息语义的能力,描述网络信息中的概念和知识。

结合本体的概念应用在SOA上,确认本体和本体之间的上下文流程关系。其中,本体可以构成SOA各服务,本体间关系可视为流程,其也可视为服务。使用本体论,在SOA的各种服务之上建立了一个层模型,包含与服务域相对应的各种本体论类,对应关系在建立本体的设计阶段确定,是用策略思想,通过服务请求的语义相似性逻辑建立语义查找。使用本体可以实现组件间的松耦合,方便SOA设计。

3 SOA和云中图书借阅系统设计

图书借阅系统的功能包括了用户信息、图书查询、图书借/还管理等,结合SOA和云计算实现该系统的设计包括本体确定、流服务管理和云服务。

3.1 图书借阅系统本体确定

图书借阅系统SOA的本体设计主要包括四个部分,即确认项目流程、建立共享概念模型、构建上下文关系、实现松耦合。

3.1.1 图书借阅系统项目流程

图书借阅系统项目包括图书查询、借图书、归还图书三大部分,在实际项目中,还包含了图书管理即图书入库出库管理、书籍配套光盘管理、电子资源管理等,这里仅选择最主要部分来介绍流程。

用户首先查询所需要书籍是否存在,找到书籍对应条码和所在位置,查找到具体书籍后,管理员查询用户个人信息,如果个人信息没有问题,并且借书籍额度未满,允许借出图书,否则任何一个条件不满足,不允许借出图书;归还图书流程则书籍回库,查询用户归还书籍是否按时,如不按时,则进行计费累计并予以管理。

图书项目流程包含一系列基于条件的任务执行,使用语义整合实现智能化的路由选择。在定义本体论模型时,每一个变量都对应一个数据字典,可以不断地进行扩展,以保证能够满足未来新的项目需求。

3.1.2 图书借阅系统本体模型

通过分析图书借阅系统流程,可以得到本体集包括用户和书,该用户集中可以进一步分析对应本体,包括具体学生、老师、行政人员、后勤管理人员等。本体集和本体间存在对应映射关系,这里使用RDF简单表述其资源,比如要描述一个名叫Peter的一个人,其描述形式是:

ex:user ex:name"Peter"

其中ex:user是用来表示Peter这个人的URI引用,ex是假设的一个名称空间前缀,使用RDF图表述(如图2)。

本体论是用术语概念和关系来定义,本体论的概念实现为类,本体论中的关系被定义为术语的对象属性和数据类型属性。从可变点组件到本体论模型中元素的映射,能够帮助建立其本体论模型。具体的本体建模可以使用Protege软件实现。

3.1.3 业务流程管理

业务流程管理(Business process management,BPM)是在服务与系统之上加上一层控制逻辑,由它绑定多个服务,形成一个统一的、多步骤的业务流程,实现特定的业务功能。流程具有松耦合独立性,即不论流程运行在本地还是云平台,它们都应能够访问位于架构中任意位置的服务和数据。

在图书借阅管理系统中,包括查询、借书、还书等流程,这些流程自身是服务,服务还能使用流程,服务和流程都能提供行为。这些流程在企业中软件的整体重用率的提升微不足道,只能从SOA项目之前的32%上升到之后的39%,但是对于促进架构敏捷性起到非常关键的作用。

3.2 图书借阅系统云端技术语言环境

在云计算程序设计与软件开发中,可以使用Java、Python、Flash、JavaScript/AJAX、C#与程序设计语言,图书借阅系统则选用了使用Web 2.0技术,使用JSP(JavaServer Page)设计用户界面,利用JDO(Java Data Object)标准界面来使用Datastore资料云存储区,云存储区中包括图书借阅系统中的所有本体集,使用Java相关技术以服务形式设计业务流程管理,最终在Google提供的GAE云计算平台下实现图书借阅系统。

4 结论

云计算是分布式处理、并行处理和网格计算的发展的延续,客户终端的一切软硬件资源都将在云端服务,SOA由云计算也催生出很多新兴产业模式,比如云软件托管中心,云软件销售中心,云虚拟化教学科研应用等,云计算给了企业发展带来更大的拓展空间。这里,以SOA和云计算的思想和技术初步探讨了图书借阅系统,从一个侧面学习和研究了SOA和云计算,它将对教育和科研领域的信息化带来一定的启发和帮助。

参考文献:

[1] 朱近之,IBM云计算中心.智慧的云计算物联网的平台[M].北京:电子工业出版社,2011.

[2] Michelson B."Service-Oriented World" Cheat Sheet by Patricia Seybold Group[EB/OL].(2005-06-02)./detail.aspx?ID=562.

[3] Babcock C.云革命[M].丁丹,译.北京:东方出版社,2011.

[4] What really is SOA: A comparison with Cloud Computing, Web 2.0, SaaS, WOA, Web Services, PaaS and others[EB/OL].(2008-12-12)./doc/whitepaper/SoalibWhitePaper_SOAJargon.pdf.

[5] 王鹏.走进云计算[M].北京:人民邮电出版社,2009:35-50.

[6] Linthicum D S.云计算与SOA[M].马国耀,译.北京:人民邮电出版社,2011.

[7] 刘光强.运用语义整合技术四步骤改进SOA[EB/OL].(2009-11-16)..cn/cio07/ 20091116113801.shtml.

[8] Borst W N.Construction of Engineering Ontologies for Knowledge Sharing and Reuse[D].Enschede:University of Twente,1997.

[9] Studer R,Benjamins V R,Fensel D.Knowledge Engineering: Principles and Methods[J].Data and Knowledge Engineeing,1998,25(1/2):161-197.

[10] Antoniou G,van Harmelen F.A Semantic Web Primer[M].Cambridge:The MIT Press,2004.