在线工博会

基于CORBA/Java的分布式对象技术在虚拟制造中的应用
胡晓鹏 周以齐
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版
摘要:分析了分布式对象技术CORBA与Java结合的特点,阐明了基于CORBA/Java的分布式对象技术在虚拟制造应用中的若干技术要点。根据CORBA/Java3层体系结构具有跨平台、跨语言及可移植性良好的特点,提出了一种基于CORBA/Java的虚拟制造系统的框架,给出了系统实现的开发环境及技术步骤。
关键词:分布式对象技术;虚拟制造;CORBA;Java
0 引言
信息化时代要求产品的设计和制造朝着并行化、集成化(信息、人员和技术等资源的集成)、柔性化、敏捷化(结构上的快速重组和性能上的快速响应)方向发展。而传统的组织结构相对固定,资源相对集中的产品设计与制造模式不能满足这些要求,随着计算机软硬件技术的发展,具有快速响应机制的 虚拟制造"模式应运而生,它满足了企业降低产品研发成本,缩短产品制造周期,满足用户个性化要求,增强产品竞争力的要求[1]。
虚拟制造是以分布式对象技术、虚拟仿真等技术为支撑,对制造过程中涉及的物体、信息流等进行全面仿真的一种先进制造技术。在虚拟产品设计与制造中,如何通过异构系统的集成使处于不同地域的研究设计人员实现协同工作,充分实现资源共享,一直是研究的热点和重点[2]。近年来分布式对象技术的蓬勃发展,为解决这一技术难题提供了良好的支持。
1 分布式对象技术
分布式对象技术主要应用于在分布式异构环境下建立应用系统框架和对象构件。在应用系统框架的支撑下,开发者可以将软件功能包装为更易管理和使用的对象,这些对象可以跨越不同的软硬件平台进行互操作[3]。
在虚拟制造的分布式环境中,包括有大型主机,UNIX工作站,PC机等,各种机器的操作系统和网络协议千差万别,异构性是其明显特点,在这样的异构环境下实现信息及软件资源的共享是十分困难的。而分布式对象技术的特征正满足了虚拟制造中处于网络不同节点的,工作在不同系统平台下的设计人员希望技术资源共享的需求。
目前主流的关于分布式对象技术的标准有Microsoft的COM+标准,SUN公司的JavaRMI标准及OMG的CORBA标准。主要讨论利用CORBA标准作为分布式虚拟制造系统计算框架。
CORBA(common object require broker architecture)的基本模型[4]如图1所示,其主要特性如下:

(图片)

图1 CORBA模型

a.对象请求中介ORB(object request broker)。CORBA的核心是ORB,ORB就是对象总线,其作用就象是一个中间人,使各个对象能互递请求。它是在对象之间建立客户机/服务器关系的中间件,与ORB一同运作的对象,既可以是客户,也可以是服务器,这取决于具体情况。如果对象在接受和处理请求,那么它扮演的角色就是服务器;如果它在发出请求,那么它就是客户。代理请求和送回结果是ORB的全职工作。
ORB内核通过屏蔽诸如服务器位置、实现方式和通信协议等具体细节,为客户方与服务器方之间的通信提供了透明的传输机制。客户不需要知道对象的位置、程序设计语言、操作系统或不属于对象接口的任何其他系统特征。
b.接口定义语言IDL(interactive data language)。IDL不是一种编程语言,它是一种中性的接口描述语言,描述了接口中每个函数的函数名、参数类型及个数、返回值类型及个数等函数原型。具体的函数实现由开发人员根据各自的特点,选择合适的编程语言来完成。因此利用IDL来定义接口,就可以达到对象接口与具体的编程语言无关的目标,为程序设计提供了最大的灵活性。
c.网络间通信协议IIOP(internetinterORBProtocol)。IIOP协议是CORBA重要的部分,它是基于Internet的ORB间协议,以TCP/IP协议为实现蓝本,主要解决异构环境中分布式对象互操作的问题。
2 基于CORBA/Java的虚拟制造系统设计
2.1 CORBA/Java3层体系结构的技术特点
这种3层体系结构以分布式对象技术CORBA为基础构架,在传统的客户机/服务器的基础上增加了中间层,应用逻辑从客户端剥离出来,向应用服务器集中,如图2所示。这样做一方面减轻了客户端的负担,使客户端成为真正的 瘦"客户;另一方面当系统需要进行升级时,只需改动服务器中相应的应用逻辑模块即可,而不需象传统的二层客户机/服务器对每个客户端进行软件升级,提高了系统整体的灵活性、可伸缩性、可扩展性。

(图片)

图2 CORBA/Java3层体系结构

中间层的应用逻辑用Java来实现。Java与CORBA的衔接很好,CORBA提供了一个分布式对象基础结构,使应用程序将其范围扩展至跨网络、语言、组件边界和操作系统;Java负责编写可以运行在网络上任何一台机器上的可移植应用程序,其良好的可移植性为分布式应用程序开发提供了极大的灵活性。CORBA处理网络透明性,Java处理操作透明性,它们互为补充,为以网络为中心的分布式计算提供了一个通用平台[5]。
2.2 虚拟制造系统框架
CORBA与Java的结合为虚拟制造系统中分布式的资源及技术提供了一个集成平台,使应用程序跨越了网络、语言及操作系统的限制,可以实现不同网络和计算机环境下开发的虚拟制造应用程序的互操作性。因此,文中虚拟制造系统的实现选用基于CORBA/Java的3层体系结构,系统框架如图3所示。
第1层是客户层,客户层的功能是直接与用户联系,实现交互操作。在虚拟制造中,客户端应用既可以是基于Web的,也可以是不基于Web的。

(图片)

图3 基于CORBA/Java体系结构的虚拟制造系统框架

在基于Web的应用中,客户端浏览器通过Http协议从Web服务器上下载动态网页或小的应用程序,然后在客户端的浏览器中运行其内嵌的JavaApplet,用户与系统的交互操作由这些APPlet中的客户对象来承担。当用户对象需要调用中间层对象服务时,由客户端的ORB通过CORBA的内部通信机制IIOP协议与应用服务器的ORB通信,访问中间层应用服务器上的CORBA应用对象及服务[6]。CORBA应用对象将对客户的请求进行认证和解释,根据客户请求的内容,或是直接访问数据库,或是与网络上的其它CORBA对象交互,共同完成客户请求。这样对于客户对象来讲,只要像调用本地方法一样调用对象服务就可以了,至于代理对象如何进行实际操作对客户对象是透明的。
当业务逻辑比较简单且比较固定时,从降低网络通信量、加快用户响应的角度考虑,可以将一部分用Java应用程序实现的业务逻辑放在客户端。根据用户输入调用中间层CORBA应用对象的过程与基于Web的应用中是相同的,只是放弃了按需动态装入客户端。
在虚拟制造过程中,位于不同地点的研究设计人员既可以通过网络,从Web服务器上下载人机交互程序,也可以通过安装在本地的应用程序,发出请求调用应用服务器中的虚拟加工、虚拟装配、虚拟测试等应用逻辑,真正实现分布式协同设计与制造。
第2层是中间层。中间层一般包括Web服务器和应用服务器。Web服务器提供通信和协议服务,根据用户发送的请求,动态地发布应用服务器生成的内容。应用服务器负责管理Web服务器和数据库服务器之间的通信[7],并提供虚拟制造中所需的虚拟加工、虚拟装配、虚拟测试等应用程序服务,它能够直接调用外部程序或脚本代码来访问后台产品数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询并将查询结果格式化成HTML页面再通过Web服务器返回给用户浏览器。
在虚拟制造中,应用服务器是整个软件系统的核心,它提供了产品设计与制造中的协同建模、加工、装配、测试逻辑,支持设计人员搜索、浏览和重用企业已有的大量产品模型及相关信息以及根据设计任务创建新的分布式仿真模型对象。在建模完成后,设计人员还需要在仿真平台下进行模型加工、装配及测试。这样在产品制造之前,通过模拟产品的设计及未来制造的全过程,预测产品的性能及可制造性,发现设计中的问题并进行相应调整,达到了产品开发周期和成本最优化。
第3层是数据库层,在虚拟制造过程中,将产生大量数据格式繁多的空间数据和属性数据资源。系统采用能够存储和处理空间几何数据及各种数据的对象关系型数据库,来实现数据的统一管理,并通过应用服务器中数据查询存取程序中的ODBC/JD BC等数据库接口实现应用逻辑与产品数据库等后台数据库之间的交互。这些资源包括本地资源和远程资源,本地资源通过企业局域网内部得到,远程资源通过Internet获取。
2.3 开发环境
a.CORBA规范可选用Borland公司的VisiBro kerf or Java4.5.1。
b.动态网页可选用JSP技术制作。
c.应用逻辑的实现可选用Borland公司的Jbuilder9.0EnterPrise开发工具。也可选用VisualC++来实现。
d.数据库可选用Oracle公司的对象关系型数据库Oracle9i。
e.应用层与数据库间的数据交互可选用Oracle9i的JDBC接口。
2.4 系统实现方法与开发过程
开发基于CORBA/Java的分布式虚拟制造系统时,系统的实现过程遵循以下步骤[8]:
a.首先必须标识应用程序所需要的对象(每一个功能部件都可以作为一个对象,例如虚拟产品加工工艺过程),然后定义它们在IDL中的接口。
b.将IDL编译成Java的存根和框架。通过将IDL定义翻译成Java,可以生成代码的基础,此时就允许编写客户机和服务器程序。在虚拟制造系统中,客户机程序为设计人员提供访问CORBA应用对象的人机接口,服务器程序来实现由IDL接口支持的CORBA对象。
c.编写客户程序代码。它既可以是包含有JavaAPPlet的动态JSP网页,放在Web服务器上供虚拟制造系统中各网络节点的设计人员下载,也可以是放在客户端的包含有JavaIDL存根的Java程序。
d.编写服务对象代码(例如虚拟产品加工工艺过程的实现代码)并完成服务器main程序。应用对象的实现代码既可以用Jbuilder9.0EnterPrise来开发,也可以用VisualC++来完成,本系统选用Jbuilder9.0EnterPrise来实现服务器对象代码,以使应用代码具有良好的可移植性。
e.编译、链接客户端程序与服务器程序代码。
f.启动服务器程序以实现应用逻辑,运行客户端程序使设计人员访问应用对象并得到响应结果。
3 结束语
网络技术的发展给企业带来了新的挑战,企业在建立以网络为中心的虚拟制造系统的过程中将遇到困难。利用分布式对象技术CORBA与Java结合的优势,企业将建立起分布式制造组织的动态联盟,实现制造系统中人机智能的柔性交互,满足新产品开发的快速设计、快速制造、快速响应和快速重组的要求,不断增强企业竞争力。
参考文献:
[1] 陈晓川,张暴暴,刘晓冰,冯辛安.虚拟制造技术研究概况综述[J].机械制造,1998,(12):8-10.
[2] 沈军营,黄 进,严隽琪,蒋祖华.基于CORBA的异地协同工作流模式[J].计算机应用,1999,19(9):20-22.
[3] 周杰韩,黄正波,杨叔子.分布式对象技术与柔性制造系统分布式布局应用[J].计算机应用,2000,20(6):14-16.
[4] OrfaliRobert,HarkeyDan,EdwardsJeri.智能CORBA[M].陈章译.北京:电子工业出版社,1999.
[5] 王小愚,刘志镜.基于Java语言的两种实现[J].电子科技,2002,(1):40-42.
[6] OtteR,PatrickP.CORBA教程公共对象请求代理机构[M].李师贤,等译.北京:清华大学出版社,1999.
[7] 陈晓波,熊光楞,郭 斌.基于分布式仿真模型对象的分布式协同建模实现技术研究[J].系统仿真学报,2002,14(10):1311-1312.
[8] 丁俊勇,张永康.CORBA技术在分布式集成中的应用[J].机床与液压,2002,(3):165-166.
作者简介:
胡晓鹏 (1975-),女,河南三门峡人,山东大学机械工程学院虚拟工程研究中心硕士研究生,研究方向为虚拟现实与虚拟制造技术;
周以齐 (1957-),男,山东大学机械工程学院教授,博士研究生导师,研究方向为复杂系统动力学,虚拟现实技术。 12/19/2004


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站