📄 基于corba的异地协同工作流模式.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>计算机应用990907</title>
</head>
<body bgcolor="#FFFFFF" link="#000000">
<table border="0" cellpadding="2" cellspacing="0" width="90%">
<tr>
<td align="center"><a href="../../../../"><img src="../../../image/logo.gif" width="174"
height="26" alt="logo.gif (2519 bytes)" border="0"></a></td>
<td align="center"><strong><font face="宋体" size="4"><a href="../../index.htm">计算机应用</a><br>
</font></strong><font face="System">COMPUTER APPLICATIONS<br>
</font><font face="宋体" size="2">1999年 第19卷 第9期 Vol.19 No.9 1999</font></td>
<td align="center"><a href="../../../index.htm"><img src="../../../image/qklogo.gif"
width="96" height="26" alt="qklogo.gif (1030 bytes)" border="0"></a></td>
</tr>
<tr>
<td width="100%" colspan="3" align="center"><hr>
</td>
</tr>
</table>
<table border="0" width="90%">
<tr>
<td><font size="3"><p ALIGN="CENTER"><font SIZE="5"><strong>基于CORBA的异地协同工作流模式</strong></font></p>
<p ALIGN="CENTER">沈军营 黄进 严隽琪 蒋祖华</p>
<p align="left"> <strong>摘 要 </strong>为了解决自动化孤岛之间的有效通讯问题。这里提出用Java在Internet上开发一种基于CORBA的工作流管理系统的方法。并在工作流管理系统中引入了Agent技术。<br>
<strong>关键词 </strong>工作流,CORBA, Agent, Java, Internet</p>
<p ALIGN="CENTER"></font><strong><font face="Times New Roman" size="4">CORBA BASED TELE</font><font
size="4"><sub>—</sub></font><font face="Times New Roman" size="4">COLLABORATION WORKFLOW
MODEL</font></strong></p>
<p ALIGN="CENTER"><font size="3">Shen Junying Huang Jin Yan Junqi Jiang Zuhua<br>
CIM Research Institute, Shanghai JiaoTong University, Shanghai 200030</p>
<p align="left"> <strong>Abstract </strong>In order to solving the communication
problem between the islands of automation, a workflow model based on the Internet/CORBA is
presented. The Agent in the workflow model is also discussed.<br>
<strong>Keywords </strong>Workflow,CORBA, Agent, Java, Internet</p>
<p ALIGN="left"></font><font size="4"><strong>1 前言</strong></font><font size="3"><small><br>
</small> 现代企业在其产品设计和制造过程的各个环节上,有效地利用了计算机辅助工具。可是由此却形成了一系列的自动化孤岛。在各个环节之间存在着数据交流和部门协同的问题。常规的分布计算技术难以胜任这类协同工作的应用。因为经典的客户/服务器计算技术不支持服务器对客户的直接控制,也不支持客户应用之间的信息交流。这样往往造成的一种结果是在发达国家中普遍存在的片面要求集成而进行的大量投资但缺乏柔性的生产及信息体系。<br>
工作流管理系统和CORBA技术是解决上面问题的有效方法。从而为企业能够快速响应市场变化,把握市场机遇、优化资源、优势互补而建立企业之间的动态联盟,即一种通过现代通讯手段动态联系起来而形成的企业集团(虚拟企业),提供了一种有效的技术手段。</p>
<p ALIGN="left"></font><font size="4"><strong>2 工作流管理系统</strong></font><font
size="3"><small><br>
</small> 工作流管理是近年来在计算机应用领域中发展最为迅速的几项新技术之一,其主要特征是实现人与计算机交互事件结合过程中的自动化。工作流主要涉及的内容是工作任务的整体处理过程、工作组成员间依据一组已定义的规则及已制定的共同目标所交换的文本文件、各种媒体信息或任务。工作流管理系统是一个用于分布式环境中工作任务进程间的协调及协作式处理的软件系统。面向群体协同工作并支持系统开放集成性的工作流管理系统是使企业的内部综合信息处理系统适应动态变化的市场需求的关键所在,人们主要采用工作流管理系统实现工作任务处理过程的重构设计及过程的优化。<br>
工作流管理联盟(WfMC)将工作流定义为业务流程的全自动和部分自动化;在此过程中,文档、信息或者任务按照一定的过程规则进行流转。一个流程包括一系列的活动(activities)和相关的数据。在流程中的每一步即是一个活动(activity)。它包括一个名称、类型号、开始和结束的控制信息。工作流的运行是由工作流管理系统来完成的。它和工作流执行者(人、应用程序)交互,推进工作流实例的执行,并监控工作流的运行状态。</p>
<p ALIGN="left"></font><font size="4"><strong>3 CORBA技术</strong></font><font
size="3"><small><br>
</small> 随着网络技术的迅速发展,在Internet、WWW、企业Intranet上都出现一个主要的特征,即异构性。这是由于网络上使用了不同厂家的硬件、操作系统、网络协议及各种软件产品而造成的。一方面,它使我们某个部分可以选择最佳的硬件和软件组件,但在异构的分布式计算环境中要实现各个层次上的互操作性是非常困难的,所谓的“互操作性”是指来源不同的构件之间能相互协调,相互通讯、相互提供服务,共同完成复杂的任务。为了实现这一目标,国际上的各个有关组织纷纷制定支持分布系统互操作的标准。<br>
当今国际上有三大分布式软件组件对象标准:一个是由OMG(Object
Management Group)组织推出的CORBA(Common Object Request Broker Architecture),即公共对象请求代理结构;一是Microsoft推出的
DCOM(Distributed Component Object Model),即分布式组件对象模型;还有一个是Sun公司推出的用Java语言开发的分布式对象模型RMI(Remote
Method Invocation)。<br>
CORBA规范是由OMG集团提出的对象技术规范,OMG集团是一个包括IBM、APPLE、SUN等著名计算机公司的技术厂商联合体,其宗旨是产生一套标准的语言、接口和协议,以支持异构应用间的互操作性及独立于平台和编程语言的对象重用。<br>
CORBA2.0规范的主要成分包括ORB核心、OMG IDL接口定义语言、语言映象、接口池、码桩与码架、动态调用与分派、对象适配器、ORB间协议等部分。对各部分功能的详细解释请见参考文献[4]</p>
<p ALIGN="left"></font><font size="4"><strong>4 基于CORBA的工作流管理系统</strong></font><font
size="3"><small><br>
</small> 在Internet上实现的基于CORBA的工作流管理系统的模型框架如图1所示:</font></td>
</tr>
</table>
<table border="0" width="90%">
<tr>
<td><p align="center"><img src="image09/0914.gif" width="222" height="89"
alt="0914.gif (1958 bytes)"></p>
<p ALIGN="CENTER"><font size="3">图1 Internet上基于CORBA的工作流管理系统的框架</p>
<p ALIGN="left"> 在现有的系统中,我们实现了在服务器之间的通讯是建立在CORBA之上。在服务器和浏览器之间仍然使用HTTP协议进行通讯。<br>
基于Web的工作流管理的优点是不需要专门的客户端软件。客户端软件是浏览器,其使用方法已被多数用户所熟知。同时,Web为构造工作流管理系统提供通讯基础。Java为开发Web应用提供了很大的方便。<br>
<strong>4.1 工作流管理服务器与WWW服务器间的通讯</strong><font size="2"><small><br>
</small></font> 这里需要指出的是在一个分布式系统中,特别是CORBA下的分布式系统中,客户与服务器之间的区分通常是不确定的。一个CORBA应用部件通过创建一个实现对象及使它应用在其他部件中,来提供一种特别的服务。其他的部件通过定位那个对象来访问这些服务,然后调入对象中适合的方法来达到所希望的效果。在这个特殊的方案中,创建这个对象的部件被成为那个对象的服务器。调入对象的方法的那个部件就是客户。进一步而言,假如服务对象的一个方法把另一个对象的参考作为一个参数。现在进一步假设客户为那个对象创建一个实现,并把它作为一个参数来传递。那个“客户”现在就扮演这个具体对象的服务器;那个“服务器”,当它调用这个对象的任何一种方法时,它就成为客户。尽管两个部件的整体作用没有变化,但是就CORBA而言,每一个部件既是一个客户,又是一个服务器。<br>
在这里使用一个所谓“纯”客户和“纯”服务器的例子简要说明一下CORBA在系统中的实现。在“纯”客户和“纯”服务器中,客户将不创建服务器所使用的对象。这样就不会出现客户扮演服务器的方案了。具体情况另有文章描述。<br>
首先,创建CoWork.idl文件包括三个接口定义interface CoWorkuser;
interface CoWorkserver和 interface CoWorkinfo。然后,使用IDL编译程序来生成客户残余程序和服务器构架,他们是客户和服务器实现创建的来源。我们使用的是SUN公司的IDL编译程序(可从http://www.javasoft.com/products/jdk/idl/index.html获得)。SUN公司的IDL编译器的名称是idltojava。编译器使用方式为:idltojava<sub>—</sub>fclient<sub>–</sub>fserver
CoWork.idl。<sub>—</sub>fclient<sub>—</sub>fserver标志告诉IDL编译器为每一个接口分别创建客户残余程序和服务器构架。在生成的文件中包括
CoWorkuser.java; CoWorkserver.java和 CoWorkinfo.java。这些文件包括那些为了创建一个功能服务器而必须实现的Java接口定义。还有<sub>—</sub>CoWorkuserImplBase.java;<sub>—</sub>CoWorkserverImplBase.java和<sub>—</sub>CoWorkinfoImplBase.java。这些文件包括那些为了创建实现以上的接口,我们将要扩充的Java类的定义。剩下的工作就是用Java扩充和实现我们已经定义过的服务器和客户的接口了。<br>
<strong>4.2 WWW服务器和浏览器之间通讯</strong><font size="2"><small><br>
</small></font> 一种建立在CORBA基础上的服务器和浏览器之间的通讯协议IIOP(Internet
Inter-Orb Protocol)可以用来支持网络间的数据对象通讯。IIOP会成为一种新的WWW通讯协议,且拥有它自己的URL格式:iiop://objectref.operation(parameter)。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -