去年,我所在的公司承担了一项为X巻烟厂建立企业应用集成的项目。主要目标是将该厂原使用的办公系统、人力资源系统、生产管理系统等系统进行集成,使之成为一个无缝连接的整体。我有幸参与了该项目,并担任主要的规划设计工作。针対该项目,我们综合运用了 J2EE平台构架、Web service、IBM WebSphere等技术,来实现基于Web Service的企业应用集成,其效果相当显著。而且如果今后有新的系统加入,也能够很容易地添加。用户在使用该系统后,生产、经营效率有了大幅度的提高,得到了用户的一致好评。
去年,我公司承担了 x巻烟厂的企业应用集成项目。该巻厂是一家大型国有企业,经过多年的发展和积累,形成一套行之有效的管理机制,并实施了一系列的管理、生产自动化系统,如LOTUS的Domino办公自动化系统、人力资源管理系统、CRM客户关系管理系统、用友财务软件等商品化软件,也有该厂与一家软件公司合作开发的生产管理软件(具有源代码)。这些软件实施于不同时间,也为各部门的生产、管理效率的提高起到了巨大的推动作用。但是各个分散独立的系统也给企业的发展造成了瓶颈,生产第一线的数据不能随时反馈给决策层领导,供应链、销售链不能与生产管理系统衔接,只能用手工方式将数据输入生产管理系统,不仅速度慢,而且经常容易出错。 随着企业的发展,这些系统也成为了一个个信息孤岛,给企业的进一歩发展造成了瓶颈。为彻底消除这些限制企业发展的因素,该厂决定实施企业应用集成,将各个独立的系统集成起来,成为一个无缝连接的整体,使各种信息在整个企业范围内流动起来,促进企业的进一歩发展 我公司成立了项目组,我有幸参与了该项目,并担任主要的规划设计工作。根据以往项目的经验,我们首先进行了技术方案的选择。目前企业应用集成目前通行的做法有三种:数据层集成、业务层集成和表示层集成。数据层集成需要修改大量的应用程序,而使用的系统中一些是商业软件,我们无法得到源代码。而表示层集成只是集成了各个应用程序的显示界面,就好像只是做一层外装修,无实质性的改变,而且有可能成为整个集成系统的瓶颈。业务层集成则克服数据层、表示层集成的这些缺点,而程序代码的修改量不大,且只是针対没有API (应用程序接口)的应用程序。因此,我们根据企业目前系统使用的状况及我们以往开发类似项目的成功经验,经项目组讨论决定采用业务层集成方式来完成该项目。我们采用了 J2EE的平台构架,并为企业将来在企业间和电子商务的进一歩集成,采用了基于Web服务的集成方案。Web服务具有各个应用程序之间松散耦合、位貫透明、协议独立的特点,某个应用程序的増减变动不会影响到其它应用程序的运行,并且它所使用的SOAP、XML等协议和技术也不被某一家公司所控制。 选定了实现平台,我们开始対各个系统进行封装、组合。各个系统的接口的异构性带来了访问上的麻烦。为了屏蔽接口上的差异性,我们采用了将这些接口映射为统一的虚拟组件。虚拟组件一辺通过J2EE底层接口显示现有应用程序的功能,另一辺通过现有应用程序接口API和它们进行连接。这样用户就可以用统一的方式访问虚拟组件而获得应用程序的功能。我们通过采用J2EE的JCA方式实现虚拟组件対各个应用程序的访问,为每一个应用程序定制一个资源适配器,并插入J2EE的应用程序服务器中。资源适配器拿有一个指定的原系统库(用Java写的或带有自身接口单元的库),这个库同它描述的原系统具有连通性。通过J2EE平台的JCA这样一种方式,我们向用户提交了一个统一的调用接口。 解决了接口问题,接下来就要将各应用程序提供的服务通过WSDL描述服务,并且注册到企业内部的UDDI中心.我们米用了 Apache axis 1.0来开发Web服务,IBM的WebSphere作为消息服务器。根据该厂的要求,将各应用程序提供的服务分为5个种类来提供Web服务,分别是销售、人事、生产、供应、办公五个部分,再将各应用程序提供的Web服务具体细分,如生产部分提供了物料需求计划服务、库存服务、产品目录更新服务等。并WSDL实用程序生成代理代码,发布Web服务程序;在统一的服务发布服务器上,通过UDDI服务实现发现web服务功能,便于查询系统各模块提供的Web Service服务。服务请求者按照标准接口构造XML格式的SOAP Request并通过HTTP方式向UDDI注册中心发出请求。当有一个新的物料需求计划生成时,我们通过使用JMS中间件来发布物料需求计划,使得订阅该主题的供应商得到消息 企业信息门户EIP我们采用了 IBM WebSphere Portal Server来实现。対用户帐号采用统一管理,统一授权,用户登录系统时采用统一认证服务调用接口以实现用户身份的认证过程,并通过单点登录SSO,从根本上改变了现有各应用程序帐号之间进行漫游,不需要进行重新登录,给用户提供了极大的便利,并减少了不法用户利用认证攻击应用程序的可能,极大地提高了系统的安全性和可用性。 在系统实施过程中,我们也遇到了一些困难。生产部门使用的生产管理系统是由该厂与一家软件合作开发的,没有预留API,我们便対该系统进行了改造,由于该软件公司已找不到,而且该系统文档难以找到,因此我们対接 口改造会対原应用程序造成的兼容性、稳定性的问题估计不足,改造完成后只进行了接口改造的回归测试,使得该应用程序一直不稳定。于是我们重新対该系统进行了深入透彻的了解,决定采用CORBA规范的接口定义语言IDL描述接口,而J2EE与CORBA又有极大的相关性,便于今后的封装、组合。接口改造完成后,我们进行了反复的回归测试和稳定性测试,才使系统又恢复原来的运行水平。 还有就是与各应用程序供应商的协调,大家都站在各自的立场上,设想対方的系统接口应该如何改,以适应自己的接口。经过我们和该厂的努力,最终大家都同意以最有利于集成系统的角度进行改造。 在本项目中,我们综合运用了 J2EE平台构架、Web service、IBM WebSphere等技术,来实现基于Web Service的企业应用集成,其效果相当显著。而且如果今后有新的系统加入,也能够很容易地添加。用户在使用该系统后,生产、销售、供应、办公成为一体化的无缝连接的一个整体,生产、经营效率有了大幅度的提高,得到了用户的一致好评。 我从实践中领会到,企业应用集成是一项技术复杂,工程繁杂的工程,但也是企业目前最急需解决的问题。同时我也认识到,企业应用集成还有很多领域和知识点需要继续研究和实践,新技术的应用也带来了新的要求和挑战,我将在企业应用集成领域不断探索,不断实践。