CORBA的全称是公共对象请求代理体系结构,是由OMG提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议,以支持异构分布式应用程序间的互操作性及独立于平台和编程语言的对象重用。CORBA主要有3个关键组成部分:
1)接口定义语言(interfacedefinitionlanguage,IDL),它描述对象接口,根据对象操作定义对象类型,并可映射到特定的编程语言或对象系统;
2)对象请求代理(objectrequestbroker,ORB),它规定了分布对象的接口和语言映射,实现对象间的互联、互通与互操作。
3)通用ORB间协议(generalinter-ORBproto-col,GIOP),它可以映射到任何满足一系列*少假设的面向连接的传输协议。通过CO-BAR的规范,CORBA允许应用程序和其他的应用程序通讯,而不论他们在什么地方或者由谁来设计。RFID是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,其*大的优点就是非接触识别、标签内容可读写、存储容量大。它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。RFID是一种简单的无线系统,只有2个基本器件,该系统用于控制、检测和跟踪物体。系统由一个询问器(阅读器)和很多应答器(标签)组成。
2.RFID仓储管理信息系统集成的分析设计
现有的仓储管理系统主要是由传统的条形码管理系统与人工记忆相结合,图2为原有条形码系统盘点的用例图。管理员可以进行清点库存和更新数据的操作。清点库存是扫描库存的条形码,更新数据是通过采集到的数据,调用条形码系统来更新数据。这种方式不仅费时费力,而且容易出错,使得货品仓储环节效率低下,给企业带来不可估量的损失,且识别距离有限,受环境变化影响剧烈。要改善仓储管理的效果,降低物流环节的成本,必须从根本的信息采集技术入手,从而改变仓储管理中的信息传递方式,以提高物流信息化水平。因此,在仓储管理领域条形码技术广泛应用的今天,引入RFID技术能从根本上改变企业基础信息采集方式落后、准确率不高、效率低下的现状,提高仓储管理的物流信息化水平,在市场竞争中占据主动。因为现阶段标签的价格远远高于条形码,为了在提高仓储管理信息系统效率的同时,适当地控制因标签而带来的额外成本,我们提出了基于CORBA的RFID仓储管理信息系统与条形码信息系统集成的方案。此方案在保留原有条形码信息系统功能的基础上,使RFID仓储管理信息系统能有效地复用条形码系统的部分功能,在现阶段不仅能有效地解决仓储管理信息系统中成本与效率间的矛盾,还有利于推广RFID技术在仓储信息系统应用中的普及。用户在清点库存的时候,自动扫描条形码和RFID标签。相应地,更新数据有2种方式,一种是通过获得的条形码数据更新数据库;另一种是通过获得的标签数据更新数据库。前者的工作原理与原有条形码系统一致,而后者通过COBRA技术,实现了改进系统与原有条形码系统之间的通讯,*终调用原有条形码系统来实现数据更新,达到节约成本、复用系统的目的。
3.RFID仓储管理信息系统集成的实现
基于RFID仓储管理信息系统和原有条形码系统功能的分析,本文以建立盘点后数据更新API(applicationprogramminginterface)接口为例介绍基于CORBA技术的信息系统的实现。
1)分析与设计,根据实际情况确定相关程序方法,然后建立IDL(interfacedescriptionlanguage)接口文件。IDL用来定义CORBA对象使用的、应用组件之间的接口。用IDL相关编译器可以将它映射为其他常用的语言,如C++,Java等。原有的条形码系统的数据盘点功能函数为check_updateDB(),该函数的输入参数有Rnumber(物品编号)、Rname(物品名称)、Rbatch(物品批RFID仓储管理信息系统中数据更新的API接口文件次)、Rquantity(物品数量)、Rprice(物品价格)、Rpost(货位信息)、Snumber(供应商编号)、Sname(供应商名称)等。
2)编译IDL接口文件,产生能够实现远程通信的stub(码根)和skeleton(服务器框架)及相关支持文件。stub和skeleton实际上都是程序代码,stub接受来自客户端程序的请求,将它编组后,交给ORB核心,服务器端操作结果返回后,stub又将结果解组返回给客户;skeleton从作用上讲,就像一个位于服务器端的码根。本例中条形码系统是以C++开发的,因此,使用BorlandVisiBroker编译器对IDL进行编译,生成了相关文件。RFID信息系统采用Java语言进行开发,因此,采用Java软件自带的idltojava编译器编译IDL文件,编译后生成相关文件。
3)编写服务器端代码,编译生成服务器端的可执行程序。根据服务器端所使用的编程语言和实现方式,从而确定服务器端代码的具体编写情况。在该实例中,以C++语言构建的服务器端代码使用继承的方式来实现。服务器端的实现类将继承UpdateDB_App_s.hh中定义的Check_UpdateDB_AppImpl类,Check_UpdateDB_AppImpl类中实现与条形码系统check_updateDB方法的连接。
4)编写客户端代码并编译成客户端可执行程序。客户端首先要获取对ORB的初始化引用;然后在当前网络环境中定位服务对象并对服务对象进行绑定,从而获取对服务对象的引用;实例化对象接口并建立与ORB的连接;*后调用相应方法实现功能操作。因为采用了COBRA之后,客户端和服务器端不需要采用一样的语言,故本例中采用常用的java语言来编写客户端。
5)启动对象请求代理,运行程序。
4.结束语
在目前RFID应用成本还较高、大量推广存在一定困难,已建立的条码应用系统不能简单地弃之不用的背景下,本文在对CORBA技术和基于COR-BA技术的信息系统集成进行分析和研究的基础上,阐述了RFID仓储管理信息系统集成的必要性,提出一种充分利用已有资源将二者有机结合起来的新方法,并给出了基于CORBA的RFID仓储管理信息系统集成的设计思路和实现。实践表明,用CORBA技术来实现RFID仓储管理信息系统集成,可以使RFID仓储管理信息系统能有效地复用条形码系统的部分功能,在现阶段有利于推广RFID技术在仓储信息系统应用中的普及。