基于CORBA的书目信息采访系统分析与研究

时间:2022-07-01 07:47:27

基于CORBA的书目信息采访系统分析与研究

摘要:多校区运营模式下,图书信息管理系统必须解决数据共享和互操作问题,建立能够适应多点管理的分布式图书信息管理系统,提供统一的管理和服务。本文探讨了利用CORBA技术的与平台无关、满足数据共享及互操作的特性,来解决这一问题的技术思路与方法。

Abstract: In several campus operation and management mode, the library information management system must solve data sharing and interoperability in the heterogeneous environment, providing unified management and services. This paper discusses to solve this problem based on the CORBA technology.

关键词:CORBA;VisiBroker;异构;共享;互操作

Key words: CORBA;VisiBroker;heterogeneous;share;interoperability

中图分类号:TP31文献标识码:A文章编号:1006-4311(2011)22-0153-02

0引言

随着IT技术在图书馆自动化方面的深入应用和信息服务的不断扩展,图书信息系统也面临各种新的挑战。比如:异构环境下的图书采访系统,如何解决数据共享和互操作问题。本文主要讨论CORBA(Common Object Request Broker Architecture)技术,以Java语言作为编程语言,以VisiBroker为中间件,开发了一个分布式图书信息采访系统原型。

1技术阐述

1.1 分布式对象标准及CORBA工作原理在分布式组件标准中,DCOM(Distributed Component Object Model)基于微软平台,而CORBA是真正跨平台的。Java RMI(Remote Method Invocation)也具有与平台无关的特性,但它只能用JAVA语言实现。而CORBA与此不同,它通过IDL(Interface Definition Language)的接口定义语言,能做到与编程语言无关。

CORBA定义了IDL语言映射、单个ORB(Object Request Broker)体系结构和多个ORB间互操作机制,ORB有潜力包容Client/Server中间件的各种格式,将现有应用软件都归到对象软件上来。CORBA引入机制,客户不必关心底层的通信;实现了客户程序与服务器程序的完全分离,客户端与服务端可以采用不同的语言和使用不同供应商的ORB;将分布计算与对象的概念相结合,提高了软件重用率;CORBA采用多层体系结构,其本身是位于中间层的中间件,完成客户与服务对象间的互操作。分层设计使得CORBA应用程序设计更具灵活性,可采用不同的实现方法。

1.1.1 IDL定义接口,阐述功能,而不定义实现,它不是真正的编程语言。要用它编写应用程序,需要将它映射到对应的编程语言上去,如映射到JAVA上去。映射后生成的代码叫Client Stub Code和 Server Skeleton Code。通过IDL,就能实现与编程语言无关特性。

1.1.2 ORB是客户应用程序能够调用异地远端对象方法的一种机制,实现与平台无关特性。(图2)

1.2 VisiBroker的基本原理及主要组成VisiBroker for Java提供了CORBA 2.3版本规范下的ORB运行环境与开发环境,用于建立、调配和管理开放、可互操作的分布式Java应用程序。基于Web的应用程序可轻易访问由VisiBroker for Java建立的对象,通信采用互联网ORB间协议标准(Internet Inter-ORB Protocol,IIOP),该标准规定了分布式对象之间通过互联网或局域网进行的通信。这种内置的IIOP通信的实现保证了高性能和互操作性。VisiBroker主要由3部分组成:

1.2.1 Smart AgentSmart Agent是管理分布式应用对象实例的工具。它是帮助客户对服务器进行定位的目录服务。CORBA服务器程序首先注册到某个正在运行的Smart Agent中,CORBA客户端应用程序只需定位Smart Agent,然后由Smart Agent来处理如何查询一个相应的服务对象。

1.2.2 OAD(Object Active Daemon)OAD提供了一种动态的方式来启动服务进程。Smart Agent仅能把客户捆绑到已经运行起来的对象实例上。然而,对于一个使用OAD注册的CORBA对象,可以在没有启动服务进程的情况下,OAD与Smart Agent协同启动与客户端相对的远程服务对象进程。

1.2.3 IR(Interface Repository)IR用来动态绑定接口信息。接口可以动态注册到IR中,客户端通过动态访问IR获取接口信息来动态访问服务对象中的接口方法、属性等定义的详细信息。

2基于CORBA/Java的系统结构模型设计

2.1 系统基本结构

2.1.1 实现对书目信息的三种主要业务功能管理:编目注册:根据书名、ISBN、作者、价格等创建书目信息记录对象注册到后台数据库;查询功能:根据书名、ISBN等字段从采访书目信息数据库中查询图书的基本资料及在馆与否等状态信息;剔旧功能:图书丢失或转出等原因从采访书目信息数据库中删除该书的注册书目信息。

2.1.2 采访书目信息管理系统的设计采用了典型的三层架构:数据库服务器层、应用服务器层和客户层。客户层通过CORBA客户端对象发出的服务请求到达服务器层后,服务器层的服务对象从数据库中读出数据并对数据进行相应的分析处理并将处理完的数据传回给客户层。(图4)

3基于CORBA/Java的分布式书目采访信息系统的实现

CORBA分布式应用程序从逻辑上由两个可执行部分组成:客户机与服务器部分。客户机应用程序提出服务请求,而服务器应用程序分析服务请求并调用数据库服务器中的数据加以处理,完成该服务请求,并将请求结果返回给客户机应用程序。服务请求和应答通过CORBA系统的ORB组件进行交互。

3.1 定义,编译对象接口在CORBA 中,分布式对象间调用的接口由IDL(Interface Definition Language)定义,IDL具有语言中立性,在具体实现时,要将IDL语言映射成某种具体程序设计语言。本文中,我们使用idl2java将其映射为java语言。使用IDL定义服务对象功能的代码如下:

3.2 代码编译首先将IDL文件编译生成Java代码,用VisiBroker IDL编译器idl2java编译IDL文件生成BookM文件夹。其中含有各个功能具体实现接口的说明;客户端桩文件,负责对客户的请求编码,发送到对象的实现端;服务器端对象实现的骨架代码,负责对用户的请求解码,定位所请求的对象的方法,并把执行结果返回客户。创建CORBA服务器端对象,通过JDBC与数据库联接;创建CORBA客户端对象用来发送服务请求。

3.3 运行在VisiBroker环境下运行基于CORBA的系统时,应在CORBA服务器端首先运行VisiBroker中的OSAGENT来启动Smart Agent,然后运行服务器端软件。再运行客户端发出服务请求,获取服务应答结果。

4结论

将CORBA应用于分布式书目信息采访管理系统中,剖析CORBA的体系结构,了解其核心技术:OMG IDL接口技术,对象定位技术和对象互操作技术,可以看出CORBA技术非常适合于分布式异构系统的开发,可以实现CORBA组件在异构平台上无缝集成、互操作、可以实现多种语言和开发工具的共同开发,使得软件重用性,可维护性更高。

参考文献:

[1]闫娟,张立仿,柴旭清.CORBA发展及其应用研究.软件导刊,2009,6(8):41-43.

[2]尹爱兰基于CORBA技术的高校资料室服务新体系的构建,图书馆学刊,2009,(6):29-30,36

[3]高榕岭CORBA技术的优越性与应用,硅谷,2009,(5):135.

[4]王昱,胡均.基于CORBA的分布式对象技术的探讨,湖南冶金职业技术学院学报,2009,9(1):19-22.

上一篇:浅谈思想政治教育对青少年成长的价值 下一篇:版式设计课程中色彩的专项训练价值探索