一般来说,在信息化发展的进程中,任何一门新技术或新应用的产生,都是为了顺应社会发展的需求。从计算机的产生,到软件行业的兴起,都是如此。在前几十年的时间里,软件的需求飞速增长,软件数量激增,各行各业都纷纷开发出了自己的软件系统,用于相关的业务管理或实际生产。但现今,不管是IT技术本身,还是企业的业务环境与业务需求,都发生了很大的变化,用户更注重的是信息之间的共享和无障碍交流。信息共享,才能更大限度地发挥其功效,进而促进企业的发展。而以前的系统大部分是一个个的“信息孤岛”,管理着企业特定的职能部门的工作,相互之间缺乏有效的信息通信。特别是企业信息化建设经过上个世纪末的高速发展,今天的企业需要一个集成、开放、面向顾客且具有柔性的IT 支持系统,因此企业普遍开始考虑应用系统的整合问题。同时现在大部分企业应用系统开始Web化和过程化发展,这就更需要企业具有一个开放的集成的应用环境和应用系统。如果企业如此众多的IT支持系统不进行适当的整合,那么必然阻碍企业的集成应用,进而影响企业信息化建设的进程。
集成的关键技术
企业应用集成(EnterpriseApplication Integration,EAI)是企业信息化技术发展的一个主要的趋势,是企业实现业务自动化的基础,其目的主要在于整合企业内部以及企业之间各种不同的应用系统,它是企业信息化发展到较高阶段的标志。企业应用集成技术已成为近年来应用程序和信息系统开发的驱动力。关于集成,其实我们早已接触,或者说我们早就在使用集成这一手段。当我们在做最早的C/S系统,必须连接到数据库的时候,当我们还在操作系统里配置数据源的时候,其实我们就已经在使用集成了。但现在仅仅运用这些手段远远达不到我们的实际需求,要真正达到企业应用集成的目标,就必须借助目前最先进的IT技术和方法来实现。同时,需要一种新的软件开发方法来达到上述目的。面向服务架构(Service OrientedAchitecture,SOA)带来了一种新的集成思想——面向服务的集成(Service Oriented Integration,SOI),根据SOA可以构造出灵活的、以服务为中心的架构,以适应企业业务快速变化的需求。SOI可以减少不同类型的IT 系统的依赖性,降低费用和IT 操作的复杂性,提高已部署系统的灵活性。这种新的方式超出了传统集成的范围,能够将有用的系统和技术进行合理化的合并,同时排除了抑制业务创新的障碍[1]。
企业服务总线(EnterpriseService Bus,ESB)也许是SOA产生以来最值得称道的技术,它就相当于在交通道路中的总枢纽,或者指挥中心,各路来往的信息经过它的指挥和分派,有序地到达各自想去的地方。而目前具有这样的功能的技术和产品也很多,这里不一一列举。以往,在没有企业服务总线的情况下,企业应用集成可以说是应用之间的复杂连接。EAI开发者使用点对点的集成(Point to Point Integration)方式,是因为这种架构比较容易实现,当需要集成的应用很少的时候,可以快速地实现[2],如图1所示。 (图片) 基于中间件的集成(Middleware,based Integration)通过建立一个由中间件组成的企业应用底层架构,来联系整个企业的异构应用。因此企业的集成中间件也就是企业的服务总线。基于中间件的集成中,每个接口都定义了一个由另一个应用程序提供的商业过程。图2表现的就是一个使用了中间件的集成架构[2]。(图片) IBM WebSphere MQ就是用于企业集成应用的产品。它是IBM的商业通信中间件,由1个消息传输系统和1个应用程序接口组成,其资源是消息和队列。它提供一个具有工业标准、安全、可靠的消息传输系统,实现控制和管理集成的商业应用,使得组成这个商业应用的多个子系统之间通过传递消息完成整个工作流程。通过消息传递,将不同子系统有效地联系起来。每个子系统都可以对外提供自身的功能,其中消息是应用系统之间请求、应答和中间结果的载体。不断流动的消息将松耦合关系的应用系统串起来,使它们之间的关系变成了功能叠加。
WebSphere MQ可以屏蔽不同通信协议之间的差别,最大限度地简化网络编程的复杂性。同时,它支持多种平台,支持消息交易式的提交和回滚。
消息是WebSphere MQ中最小的概念。通俗地说,消息就是一段数据,是应用程序之间传递的信息载体。
队列可以看作是用于存储消息的容器,而且队列的存储是有序的。
WebService或许是目前最为流行的集成使用技术,简单来说,就是放在Web上供人们使用的一些服务,比如应用程序、文档、或者业务处理的流程等。但前提是这些服务的提供者和使用者都必须遵循一定的标准对这些服务进行封装和提取才行。这也不难理解,试想一下,如同两人对话,各自使用各自的方言,有如鸡同鸭讲,这个时候如果有个翻译,那问题就迎刃而解了。所谓服务的标准就相当于翻译,而XML(ExtensibleMarkup Language,可扩展标记语言)就担当了此角色,它规定了服务双方所遵循的标准格式,遵循此标准的封装服务,可以在系统之间畅通地交流,因此XML 是Web服务技术的基础,也是互操作的关键,每一种Web服务都是以XML为基础的,比如SOAP协议、WSDL等。
集成方案
1 企业信息系统现状
为了实现“数字化成飞”信息化建设的初步目标,近十多年来,成飞开发了大量的软件系统,这些系统在自己的业务领域内已经发挥了或正在发挥着重要的作用,可是在企业信息化、企业生产精益化、企业高质量管理等要求不断提升的今天,各自为政的信息系统已经越来越显示出他们的局限性。为了实现“十二五”规划中“数字化成飞”新目标,必须以信息化促进企业管理,优化管理流程,而不能仅仅局限于原来的业务系统模块,必须建立一个集成的平台来实现业务流程的驱动和数据的集成,真正实现数据信息化,最终实现流程改进(BPR),为公司的生产、经营决策做贡献,真正实现高效生产与经营,提升企业的核心竞争力。
公司目前各系统均有自己的数据库服务器,所使用的操作系统与数据库各异。操作系统有Windows,也有Unix系列。数据库更是五花八门,有Oracle、Lutos Domino、SQL Server、db2、Access2000、Foxpro等等,Oracle在使用中也有很多个版本,Oracle 7、Oracle 8i、Oracle 9i、Oracle 10g、Oracle 11g等均有使用。这是由于历史原因造成的,再加上很多系统最初都是基于各自的业务范畴和为满足一定职能部门需求而建立,因此造成数据结构不统一、数据定义不规范、功能交叉重复等情况。
以前由于技术条件限制,采用数据库直接连接,或者中间表层次上的集成方式,因为在同一局域网下,实现起来并不困难,这种方式的集成要求集成双方通过中间数据库、中间数据表进行数据交换,并且约定好通过哪些数据库、数据表,传递哪些特定的数据和信息。
这种方式的优点是访问效率高,特别是在处理大数据量的交互方面优势更加明显。但是这种方式带来的问题是,数据库、数据表的变化将导致所有的交换方无法集成;数据库的安全性无法保证,软件系统的可靠性等方面来说也存在很大隐患;对于异构的系统实现集成也很困难。所以此方式从信息化的科学发展来看绝非长久之计。
为适应将来的业务需要,再加上考虑各个业务系统随着时间推移的演化,必须考虑一种全新的集成方式。通过采用ESB软件产品、WebSphere MQ/MB,可有效降低服务生产者和服务消费者之间的耦合度、降低集成的难度和风险,使各个系统的演化不会影响其他系统。
鉴于此,采用创新的数字化集成技术,基于SOA架构建立支持异构的航空产品数字化制造集成系统(APMDIS),将我公司目前的一些主要系统的相关数据与功能及相关流程利用中间件技术集成起来,真正实现集成应用,并逐步建立起集成的规范与标准,促进企业信息化建设再上一个新的台阶。
目前公司的主要系统有ERP(企业资源计划)、PDM(产品数据管理)系统、门户、SQS(问题管理系统)等。其中ERP系统主要是以零件计划为主导的生产数据,是用PowerBuilder开发的传统的C/S结构,但此系统在企业内部生产车间使用多年,新的ERP 系统开发尚未完成,此系统短时间内废除不太可能;PDM 系统主要是产品的工艺数据(AO\FO),B/S结构,在PTC公司的WindChill平台中开发完成,主要使用JAVA语言;SQS主要用于生产现场的问题信息管理,亦为B/S结构,开发平台为MyEclipse,开发语言同样为JAVA;而作为公司唯一的门户网站,所使用的是DB2数据库。
2 集成需求
由于企业的业务模式与业务需求的多样性,因此企业的集成需求也多种多样,而根据公司的实际业务需求和已有系统本身的特点,需要集成的内容与方式也根据实际情况来制定,不可能只采用单一的集成解决方案和集成技术。企业应用集成解决方案是以多种层次和模式出现的,以达到最好的集成效果。不同的解决方案采取不同技术途径,不同技术途径也就决定了企业集成处于不同的层次。在我们的集成中,根据企业信息系统实际情况与企业集成需求,我们采用有界面的集成、数据层集成、应用层的集成、业务流程的集成[2]。
在APMDIS中,我们进行的是企业级的内部集成,就是要解决企业内部各业务部门的业务流程和数据流通,包括业务流程是否自动流转、怎样流转,以及业务过程的重要性。对于应用集成,这点非常重要,其最终目的是使企业可以快速、方便地将不同应用集成到一起。从本质上讲,企业应用集成就是维持数据正确而自动的流转。这需要对包括企业多年前的老系统,以及新建系统都进行无缝集成。
首先要求所有系统在公司门户网站进行单点登录的界面集成,实现用户感知的一致性。对于ERP系统,要求在APMDIS中实现数据的集成,提取零件、装配的生产计划相关信息;对于PDM系统除了要求在APMDIS中展示AO、FO的工艺文件编制情况统计信息外,同时要求可以通过APMDIS直接查看PDM中AO、FO工艺文件内容,实现应用的集成;而对于SQS系统,则需要实现业务操作流程的集成,当对SQS系统中的重大逾期未解决问题予以处理时,相关问题在APMDIS系统中生成行政指令下达,在问题处理完成之后,再对SQS系统中的相关问题予以归零。
3 技术方案
3.1 总体方案
在企业级的集成应用中,中间件的应用是很必要的,在APMDIS系统的开发中,经过需求分析与实际现状相结合。我们采用 IBM公司的中间集成产品IBM WebSphere MessageBroker,因为在对SOA研究及中间件产品的技术上,IBM公司可谓行业领先者,技术条件成熟。我们所使用的IBM WebSphere Message Broker服务组件构成如下:
Message Broker;
Message Broker Toolkit;
Name Server;
Config Manager;
WebSphere MQ;
产品部署在专用服务器:IBM-P590上。(图片) 在企业服务总线下的集成平台架构如图3与图4所示。(图片) 3.2 技术架构
APMDIS是以J2EE平台为支撑,采用基于Web的三层体系结构(客户端-应用服务器-数据库服务器),是综合运用XML 数据描述、Ajax数据交互技术、EJB组件技术、WebService等领先技术而构建起来的系统。
(1)基于SOA架构的集成平台。
IBM Message Queue/Broker/Toolkit。
(2)基于J2EE的APMDIS系统。
·业务服务层:JBoss Seam;
·数据访问层:Hibernate;
·前台展现层:ExtJS/JSF/C#WinForm;
·数据存储层:Oracle 11g;
·应用服务器:兼容J2EE标准
开发工具选用Eclipse3.5。
技术架构如图5所示。(图片) 具体实现
在APMDIS(任务管理系统)中,根据需求,我们首先要实现集成的系统是:ERP(企业资源计划),SQS(问题管理系统),PDM(产品数据管理)以及门户。
各个系统与APMDIS系统的业务关系如图6所示。(图片) 1 APMDIS与ERP的集成
1.1 实现描述
由于APMDIS是以公司经营管理计划为源头的集成系统,而经营计划的逐层下达执行,需要相关信息的集成反馈。当与生产相关的任务下达到生产部门,生产部门的执行情况需要通过集成ERP的零件生产信息来进行反馈。当系统通过中间件取到ERP的生产计划相关数据后,在APMDIS系统中使用为两个方面:(1)显示零件配套、装配、段位完工的计划与完成进度;(2)生产计划的完成进度反馈为相关任务完成进度。
由于ERP是传统的C/S结构,为典型的异构系统集成,而我们需要传递的数据信息格式也较单一,因此通过IBM WebSphere MQ的消息队列来实现是最好的选择,队列名以及输入输出参数字段均应与APMDIS页面中设置的一致,然后用MB Toolkit编写不太复杂的消息流与ESQL程序实现。程序执行流程为:当APMDIS客户端发起查询ERP数据的请求时,APMDIS服务器端会根据查询参数生成XML 格式请求发送到MQ中的IN队列中,MB中的执行组再根据编译的消息流进行处理,产生查询ERP数据的请求,最后返回结果。APMDIS再解析MQ返回的XML,处理后再前台现实。此流程如图7所示。(图片) 这里我们首先根据需求创建本地消息队列,在创建本地队列前确保已在IBM WebSphere MQ服务器上创建队列管理器。我们创建的队列管理器为APMDISMQ,本地消息队列为APMDIS2_ERP00*.IN,APMDIS2_ERP00*.OUT(*号位数字),一般一个应用对应一个本地队列。我们要实现段位完工统计的机身交付、总装军检交付、试飞军检交付,因此需要建立3个本地队列。
1.2 实现内容
在MB Toolkit中所涉及的消息流是APMDIS2_ERP00*.msgflow(*号位数字),同样一般一个应用对应一个消息流。机身交付消息流见图8。(图片) 在此消息流中:
MQIput对应APMDIS2_ERP001.IN队列;
MQOutputerr对应APMDISMQ;MQOutput对应APMDIS2_ERP001.OUT。
功能描述:机身交付(根据型号批次架次统计)。
输入队列名:APMDIS2_ERP001.IN。
输入参数:机型、批次、架次。
输出队列名:APMDIS2_ERP001.OUT。
输出参数:计划量、完成量、计划开始时间、计划结束时间、实际开始时间、实际结束时间。
输入示例:
<?xml version="1.0" encoding="utf-8"?>
<message>
<productcode>机型</productcode>
<batchno> 批次</batchno>
<planeno> 架次</planeno>
</message>
输出示例:
<?xml version="1.0" encoding="utf-8"?>
<content>
<task>
<PLANQUANTITY> 计划数量</ PLANQUANTITY>
<FINISHQUANTITY> 完成数量</FINISHQUANTITY>
<PLANSTART> 计划开始时间</PLANSTART>
<PLANEND> 计划结束时间</PLANEND >
<ACTUALSTART> 实际开始时间</ACTUALSTART>
<ACTUALEND> 实际结束时间</ACTUALEND >
<task>
</content>
2 APMDIS与PDM的集成实现
2.1 实现描述
由于PDM系统与APMDIS一样是B/S结构,同样使用JAVA技术,所以我们主要采用WebService的方式来实现集成,APMDIS通过PDM系统所开放的WebService接口,获得AO/FO文件编制的“统计信息”或“明细信息”。数据封装格式为XML。程序的实现如图9所示。(图片) 2.2接口调用
PDM提供的WebService调用定义如下:
Method:
Stringget A O F O Process Info
(String number, String productNumber,String eff)
参数说明:
number:要获取的零件编号或者AO工艺组件编号,该参数必须指定。
productNumber:机型编号,必须指定。
eff:文档有效性架次,必须指定且为单架次值。
特殊说明:
·只要符合输入条件的文档(AO/FO)均返回。
·若未找到数据,则返回:“未找到”。
返回:String:生命周期状态:编制中、修改中、签审中、已发布、已作废。
3 APMDIS与SQS的集成
3.1 实现描述
在此集成中,两个系统涉及到业务处理的流程传递与信息流转,其本质是流程的集成,同时系统之间需要实现单点登录,在企业单点登录技术尚未完善的情况下,选择URL连接。而流程与信息的集成同样采用WebSphere MQ/MB来实现,这样可有效降低服务生产者和服务消费者之间的耦合度,降低集成的难度和风险,当SQS客户端发起请求时,发送XML格式请求到MQ中的IN队列中,MB中的执行组再根据编译的消息流进行处理,然后向APMDIS相关数据表生成数据。同时SQS用户登录到APMDIS系统任务生成界面,编辑任务。此流程如图10所示。(图片) 3.2 实现的服务接口
集成后的接口都是MQ中的IN队列或OUT队列。
A P M D I S 2_S Q S 0 0 1. I N ,APMDIS2_SQS001.OUT:用于SQS到APMDIS的消息存取;
APMDIS2_SQS002IN,APMDIS2_SQS002.OUT:用于APMDIS到SQS的消息存取;
接口参数:
(1) 问题ID号;
(2) 问题名称;
(3) 机型;
(4) 批次;
(5) 架次;
(6) 需求时间;
(7) 填报单位;
(8) 问题内容;
(9) 图号;
(10)重大问题标示;
(11)发出指令人。
4总结
在APMDIS对以上各系统的集成中,初步实现了集成需求,达到现阶段集成目标,但具体实施过程中也遇到了一些难题,有企业业务管理现状的因素,也有各系统本身的差异造成的因素,还有集成技术本身的因素。由于APMDIS是第一个基于ESB的企业集成应用系统,所以很多难题需要自己去摸索解决,在对ERP的集成中,由于WebSphere MQ的编码问题,在ESQL中使用UTF-8不能使WebSphere MQ解析中文,开发组成员经过多次努力尝试,多方查证资料,终于找到了解决中文WebSphereMQ中ESQL程序中文解析的问题。诸如此类情况还有很多。
结束语
目前,成飞公司的集成应用环境与技术已具雏形,但要达到以面向服务为导向的业务流程驱动的信息化目标还有一段距离,需要更多的努力,在企业应用集成中我们须注意以下几点[2]:
(1)EAI的实施必须综合考虑到各种因素,包括技术手段、企业应用系统和业务过程等多个方面。
(2)EAI是一个过程,并不是一次性的对企业信息基础设施的改造,也不是一种可以直接购买的产品。
(3)从技术的角度是实现企业应用系统之间的无缝集成和统一运作,从过程的角度是实现业务过程的一体化。
(4)要建立标准和规范的业务目标。
·实现多任务管理和执行流程的跨系统协作;
·实现分析任务管理系统中关键业务环节的标准化,以便其他系统的快速接入;
· 提高IT支撑下的业务流程适应需求变化的敏捷性。
参 考 文 献
[1]Sandy Carter.SOA&Web 2.0——新商业语言.袁月杨,麻丽莉译.清华大学出版社,2007.
[2]徐世友.面向服务的企业应用集成研究与实现[D].合肥:合肥工业大学,2007.
4/23/2012
|