作者:刘亚峰
0 引言
产品数据管理系统(Product Data Management,PDM)通过与各种计算机辅助系统的集成,在逻辑上连通了各设计单元的信息化孤岛,实现了对产品设计数据的统一管理。但是在企业运 作中产品数据管理会关联到多种业务。因此,要从业务流程出发思考PDM 与多种管理信息系统的集成,这将有助于优化企业整体业务流程。
Windchill PDMLink(以下简称Windchill)系统是目前市场上主要的PDM 产品之一,在航空、船舶、汽车等行业均有广泛应用。Windchill 系统基于J2EE 标准的三层体系架构实现。客户机层属于用户接口部分,服务器层实现了业务逻辑,数据层包含Oracle数据库、文件服务器和LDAP 服务器,实现了系统服务信息管理和用户、角色信息管理的数据存储。
Windchill 系统中的Info*Engine 组件采用了先进的系统集成思想并能提供较强的技术支持能力。本文将研究Windchill 系统与第三方软件基于Info*Engine 实现的集成应用。
1 Info*Engine 概述
Info*Engine 是Windchill 系统中一个可独立部署的集成引擎。Info*Engine 提供了标准的适配器(Info*Engine Adapter),能够直接将Windchill 应用程序第三方信息系统连接,还可以“插入”到面向服务的体系架构(SOA)或其他企业集成体系结构设计中。
Info*Engine 的主要特点体现在提出了“Hub-and-spoke”架构的系统集成思路,能够建立一种复杂的多应用集成模式。从而把信息系统间一对一直接集成的网状关 系优化为以Info*Engine 为中心媒介的星型结构,大大降低了多系统集成的耦合性,提高了多系统集成的可扩展性和可维护性。
Info*Engine Adapter 提供了Info*Engine server 与信息系统的连接,能够将Info*Engine server 的请求转换为信息系统请求,因此Adapter 是实现信息系统集成的关键组件。Info*Engine 提供的Adapter 包括Windchill Adapter、SAP Adapter、DOORS Adapter、Database Adapter 等,可分别实现Info*Engine 与Windchill、SAP、DOORS、数据库等系统的集成访问。
随着企业信息化体系的日趋完善,多系统的集成的重要性日益显现。Info*Engine Adapter 为企业的多信息系统集成提供了一种可行、有效的实现途径。
2 Info*Engine 的数据管理
Info*Engine 的数据管理机制基于5 个基本的概念:JSP、Task、Webject、Group 和Virtual Database(VDB)。JSP 页和Task定义了Info*Engine 如何获取和显示信息。Webject 则能够被JSP 页和Task 组织起来,具体实现数据的收集、处理和显示。Group 是JSP 页和Task 生成的信息块。VDB 是Group 的存储区域。
Info*Engine 的JSP 页面包含Info*Engine 的自定义标记,主要封装了一些可重用的功能,用于简化JSP 页和Task 文件的实现。
Task 的基本语法与功能JSP 相同,但不包含如HTML 标记等显示组件,因此不提供数据显示功能。
Webject 将特定Info*Engine 功能封装成一条命令,JSP 页和Task 可以通过调用这些Webject 达到动态的组织、处理信息的目的。
能够返回的数据Webject 被调用时会创建一个Object Group。Object Group 存储于VDB,并确保具有唯一的命名。
3 Windchill 系统与档案管理系统的集成
3.1 需求说明
档案管理系统要求能够实现对企业所有归档资料的管理和检索功能,因此档案管理系统需要从PDM 系统中获取文档的信息用来建立归档记录。
本集成应用的典型业务场景如下:
档案管理员将遵循产品的生命周期过程,在规定的关键技术状态节点进行PDM 系统中技术文件的归档工作。用户在档案管理系统中,通过系统集成应用,从PDM 系统中检索该产品的文档,获取的文档信息包括:文件名称、编号、版本、状态、文件代号、创建者、创建时间、文档摘要、所属产品。检索到的文档信息返回到档 案管理系统,用户再对反馈信息进行必要的筛选,完成文档信息的归档工作。
3.2 设计思路
系统集成的总体思路是PDM 系统向档案管理系统提供一个Webservice,档案管理系统通过对该Webservice 的调用实现PDM系统文档的检索功能。
在技术上主要利用Info*Engine 对SOAP(简单对象访问协议)的支持,创建一个Task 实现Webservice 用于集成应用。文档信息检索的具体逻辑会在Java 类的检索方法中实现,Task 通过对文档检索方法的调用获得符合条件的文档信息,然后利用Windchill Adapter 实现文档信息的收集并以xml 格式反馈到客户端。档案管理系统的开发环境为Visual Studio 2008,在该环境下完成对Webservice 的调用并对反馈的xml 文件进行解析。
3.3 功能实现
3.3.1 文档信息检索的Java 方法
根据输入参数搜索到符合要求的文档的集合,抽取出文档信息,以字符串方式返回。
在Java 方法中,Windchill 系统首先创建一个基于文档类的QuerySpec 对象表示一个初始的查询结果集合。然后针对每个检索条件创建一个SearchCondition 对象,QuerySpec 对象的appendWhere 方法以一个SearchCondition 对象为参数实现一次按条件检索。面对多个SearchCondition 对象,QuerySpec 对象的appendAnd 方法可以实现多条件的逻辑连接,完成查询。
查询的结果可以转换为一个文档集合。通过对该集合的循环处理,获得每个文档的信息,并将这些信息按照特定的分隔符组合为一个字符串对象,并返回个本方法的调用者。
3.3.2 实现Webservice 的Task 文件
在Task 文件开始首先要设定输入参数,这定义了调用Webservice 时需要输入的查询条件。
然后建立一系列的Java 脚本,该脚本直接调用已经定义的Java 方法执行文档信息查询工作。由于文档名称中可能存在中文,须进行BASE64 编码转换,以保证使用HTTP 协议Webservice 能够确保使用正确的字符编码。
Task 文件的最后部分使用了Adapter 中定义的部分Webject。创建了一个Group 定义了数据的输出,实际的数据从Java 脚本中的Java 方法返回值变量获取,根据预先定义的分隔符分析返回的字符串对象并形成xml 文件,该xml 文件最后返回到Webservice的请求者。
3.3.3 创建Info*Engine 委派
Info*Engine 提供图形化向导指导完成最终的Webservice 设置,最终完成一个基于SOAP 的WebService 的创建。
3.3.4 Webservice 的调用
在Visual Studio 2008 中, 可以实现对基于SOAP 的WebService 调用的图形化配置,但Windchill 系统拥有自身的安全机制,WebService 的调用并不能绕过用户认证的要求。因此,在Visual Studio 2008 中,对WebService 的调用可进行封装,解决以下问题:
1)封装预设的Windchill 系统用户和口令,用以实现其他应用程序对Windchill 提供的WebService 的自动调用;
2)对调用WebService 返回的xml 文件进行分析处理,转换为Visual Studio 2008 环境下的DataTable 对象供其他应用程序调用,简化了Visual Studio 2008 环境下的后续开发工作;
3)在封装过程中增加用户和客户端IP 的控制机制,防止Windchill 的WebServiced 被滥用。
4 结论