|
大规模企业级安全生产信息化软件系统的SOA构建
(王东明1,安 乐2) (1山东煤矿安全监察局,2山东电力工程咨询院) |
|||
|
|||
|
大规模企业级安全生产信息化系统的SOA构建,即面向服务的构建,是随需变化的。首先我们得了解企业安全生产信息化的概念和目的,以及如何才能达到此种目的。企业信息安全生产化是将信息技术应用于企业生产、经营和管理,旨在提高企业的生产能力和管理效率,提高安全生产水平,提高职工的满意度,最终增强企业竞争力。企业以计算机、网络设备等提供的交互能力、通信能力、计算能力以及存储能力为基础,通过构建和使用一系列应用系统来达到上述目的。 企业在安全管理信息化过程中构建和使用的应用系统可大致分为两类。一类是涉及到大量业务处理和数据处理的企业级应用系统,例如ERP系统、CRM系统、SCM系统、财务管理系统、邮件服务系统、万维网(Web)服务系统等。这类系统往往是根据企业的实际需求进行开发和部署,具有较长的开发周期和较高的开发成本。另一类是提供简单功能的供单个员工使用的桌面应用系统,例如用来进行文字处理、报表制作的办公应用系统,用来进行产品设计的CAD系统,以及互联网浏览器应用,Acrobat Reader(即PDF 格式文件的阅读与写作软件)应用等。这类系统往往是一些通用应用系统,企业可以根据需要购买和使用。 企业安全生产信息化系统和企业信息化建设具有以下特点:商业环境快速变化,要求企业信息化系统随需改变;企业安全生产信息化建设具有长期性、发展性;企业是一个有机整体,企业信息化系统只有从整体上才能发挥最大潜力;企业安全生产信息化系统具有高度的事务性,对响应时间约束比较敏感;对企业安全生产信息化系统的使用具有突发性和时段性。整个市场风云变幻,企业的生存之道便是随市场的变化而变化。在这样变化之中,如何规划随需变化的大规模企业级安全生产信息化系统,是一个非常具有挑战性的难题。 一、企业安全生产信息化的发展简介 到目前为止,企业安全生产住信息化随企业信息化大致经历了四个发展阶段:基于主机/终端模式的企业信息化、基于两层客户/服务器模式的企业信息化、基于三层和多层客户/服务器模式的企业信息化以及在集成趋势下的企业信息化。 早期的企业信息化系统是基于主机构建的,所有应用都在主机上运行,用来处理工资表、记录存货情况以及决策工程预算等。企业员工通过连接在主机上的终端进行工作。终端没有任何处理能力,只负责输入和输出。在这种模式下,用户界面管理、应用逻辑执行以及数据管理都由单独的一个应用系统完成,其中的数据是以文件的形式进行存储和管理。 随着网络技术、个人计算机以及数据库技术等的出现和发展,两层客户/服务器模式逐渐在企业信息化建设中得到应用。这种模式将数据及其管理互相独立,在服务器上运行数据库管理系统;在客户机上执行各种应用逻辑并提供用户界面;数据库服务器与客户机通过网络进行连接,最终构成一个两层的企业级应用系统。 针对两层客户/服务器模式的局限,三层客户/服务器模式的企业级应用系统应运而生。在三层客户/服务器模式下,数据库及事务处理仍然在数据库服务器上运行,由中间层应用服务器进行集中的业务逻辑和应用逻辑处理,而客户机仅需处理界面显示逻辑,数据库服务器、应用服务器以及客户机均通过网络进行连接。 二、企业安全生产信息化中的主要问题分析 企业在进行信息化建设的过程中,往往针对不同应用目的分别构建出一个个自成体系的企业级应用系统。不同的系统往往是基于不同的平台,根据不同的方案所建立起来的。各系统各自为政,在企业内部形成了一个个信息孤岛。 为了发挥企业信息化系统的最大潜力,越来越迫切需要集成现有的多个应用系统,提供更强的信息处理能力。在这种需求下,企业应用集成(EAI)逐渐走上舞台。企业应用集成旨在将基于各种不同平台、用不同方案建立的异构应用集成为一体,实现企业内部无缝地共享信息和交换信息,解决部门之间、企业之间的协同和自动化问题。原始的应用集成是采用点到点的方式,即在应用系统中提供多个接口,各应用系统之间通过各自不同的接口进行点到点的简单连接,实现信息和数据的共享。这种方式下的接口代码编写复杂,维护成本昂贵。同时,每加入一个新的系统都需要更改所有相关接口,并且接口数量与所集成的应用系统个数成指数关系。20世纪80年代末和90年代初出现了基于消息中间件的EAI技术。这一代EAI 技术利用可靠的消息中间件、丰富的连接与转换技术以及全面的元数据管理与应用能力,解决应用系统之间的信息共享与信息交换问题。这种方式提供单一的应用程序接口API,可以跨越异构平台,从而降低了企业应用集成的复杂度;并且,这种方式具有良好的可扩展能力,新系统的加入不影响其他系统的运行。但是,这种EAI 技术所解决的问题更多地集中在数据层面,而不是业务层面,很难实现企业业务流程的自动处理、管理和监控。20世纪90年代中后期出现了基于业务流程管理/集成(BPM/BPI)的EAI技术。这一代EAI技术以企业业务流程为主线,通过实现对企业业务流程的全面分析和管理,可以满足企业与客户、合作伙伴之间的业务需求,实现端到端的业务流程,理顺企业内外的数据流、信息流和业务流。这种方式下的集成要求为不同的企业进行定制,因而EAI项目的开发周期长、成本高、风险大。由于同一行业内的不同企业在流程上往往存在许多共性,因此,也可以根据不同行业集成技术的特点,推出基于行业的预建构集成包,预先解决行业共性的问题,再由企业基于自身业务的需求进行灵活的配置和扩展。 即时如此,企业安全生产信息化系统仍然难以适应企业信息化的特点。企业级应用系统难以为不断变化的需求提供灵活支持。 三、面向服务体系结构(SOA) 面向服务体系结构(SOA)是一类以服务为基本元素的分布式系统体系结构。SOA 中有三类角色:服务提供者、服务使用者以及服务注册中心。服务提供者在服务注册中心注册服务,服务使用者从服务注册中心查找符合要求的服务,然后根据相应信息绑定调用服务。多个服务还可以通过定义良好的接口组合在一起,完成更为复杂的功能。 对于企业安全生产信息化建设来说,服务和面向服务体系结构具有以下潜能: 提高企业级应用系统的灵活性。如果能根据业务流程将企业级应用系统拆分为多个松耦合的服务,换句话说,如果能根据业务流程以服务为单位构建企业级应用系统,则企业级应用系统将具有很好的灵活性。当企业业务流程发生变化时,只需要调整现有服务的组合方式,并根据需要加入新的服务,就可以快速实现新应用系统的构建,从而使企业能迅速地、低成本地对改变做出响应。企业还可以从优化总体拥有成本的角度出发,对部分服务采取外包的形式,使用由专业服务提供商提供的服务。 提高系统的使用方便程度,实现完全的瘦客户端。企业在信息化过程构建和使用的应用系统可大致分为企业级应用系统和桌面应用系统。对于企业级应用系统,当使用三层或多层客户/服务器模式来实现时,服务器端将负责业务逻辑处理、数据处理以及相关的管理,而客户机仅需要处理用户界面。因此,客户机可以用瘦客户端来实现。对于桌面应用系统,目前一般是在PC机上安装和运行相应系统;企业员工占有PC机,拥有PC机上的应用系统和数据,并且对PC机、应用系统以及数据进行管理。引入服务的思想后,上述两类应用可以统一以“服务”的形式来实现,员工使用由企业信息化系统提供的服务。根据服务“使用但不拥有”的特征,员工不需要拥有用以实现服务的相关资源,不需要考虑服务的实现方式,不需要进行相关管理;员工仅需要通过接入设备使用这些服务。这些服务可以由部署在服务器上的系统来实现,员工以瘦客户端作为接入设备,请求和使用相关服务。由于瘦客户端仅作为一个接入设备,因而员工与瘦客户端之间也不存在绑定关系,员工可以通过任何一个瘦客户端请求和使用由系统提供的服务。在这种情况下,企业员工将不必占有PC 机。但是,对于某些场景来说,企业员工也许会要求拥有独立的计算环境,在其中进行一些特别的配置。例如,进行软件测试时需要一个满足一定配置参数的独立的计算环境。在这种情景下,企业信息化系统也可以以服务的形式向员工提供满足要求的计算环境,员工可以使用这个计算环境,但并不拥有用以实现该计算环境的相关资源,也不必关心这个计算环境是如何实现的。 实现移动办公。在实现完全瘦客户端的基础上,可以进一步实现基于PDA等移动装置的移动办公。以PDA等移动装置作为接入设备,员工可以请求或使用由企业应用系统提供的相关服务,在移动环境下完成相关工作。 总的来说,面向服务体系结构将企业应用系统分解为若干松耦合的服务,各服务之间可以根据需求以多种方式进行组合,从而使得系统具有较大的灵活性。同时,基于服务的“使用但不拥有”的特征,可以极大地简化企业员工对系统的使用,员工可以方便地通过身边的瘦客户端或移动装置请求或使用由企业信息化系统提供的服务。 四、大规模企业级安全生产信息化系统的成本考虑 面向服务体系结构相对比较好地解决了企业信息化过程中的一些问题,但是在具体实施中需要基于成本进一步考虑,采用何种工具或者系统。前面我们已经提到过了企业在信息化过程中构建和使用的应用系统可大致分为两类,对于第二类提供简单功能的供单个员工使用的桌面应用系统,相对比较容易解决,企业可以根据需要购买和使用,成本比较低廉。而对于涉及到大量业务处理和数据处理的企业级应用系统的开发、运行和维护的成本相对较高。在第三部分我们也已经提到企业可以从优化总体拥有成本的角度出发,对部分服务采取外包的形式,使用由专业服务提供商提供的服务。现在国际知名的大公司都采用了这种模式,例如通用电气和摩托罗拉公司都将这一部分交由TCS(塔塔信息技术)来做。不过我们在具体构建整个企业级信息化系统的时候我们仍然需要在开发成本、构建成本和维护成本之中进行综合考虑,给出最优模式,这就是系统体系架构。 五、大规模企业安全生产信息化软件系统体系架构 在安全生产过程中,基于企业级的系统体系构架考虑,我们给出一个采用开源模式的J2EE基本构架的例子。 在开发J2EE应用时,我们一般把它纵向分为以下几个层,最下层为OS,JVM,network,层,它们负责系统的底层操作和网络数据的传输,一般我们开发人员不用关心运行在什么具体操作系统上,什么样的网络环境下。它的上层为J2EE服务层,一般由J2EE服务器(如WebSphere,WebLogic等)提供各种基础服务,如事务的管理(JTS),命名目录服务(JNDI),负载均衡(Load Balancing),容错(failover),安全(security)等,其次是通用业务层,它一般完成与具体业务无关的基本操作,包括如基础的框架(Framework),commons组件,如通用的数据库处理组件,系统错误处理组件,字符处理和数值处理组件,日志(log)处理,数据转化和编码维护等核心层。最上层才是我们的具体业务逻辑模块,它完成具体的业务逻辑。 结合J2EE实际环境,最底层一般不需开发人员关心的操作系统和网络环境,并且不同J2EE服务厂商都提供了相应J2EE所必须的基础服务层,我们开发人员一般只需关心上面两层的实现,应用服务层经常使用类似于struts,webwork,waf等的web application framework,log服务一般选择log4j,commons log等,其他具体的数据处理,数据的转化等操作我们需要进行开发,不过这些一般与具体项目无关,可以在公司内部不同的项目之间共享。其实Jakarta Commons提供的功能一般可以使用在该层。最上层才是我们的具体业务模块。 实现过程是在Web层它应用了著名的MVC(Model-View-Control)模式,V由JSP来实现,为了业务逻辑和表示的分离,一般结合JSPTagLib. 它把请求提交到相应的处理MainServelet,然后准发到RequestProcessor,他根据读取xml的配置信息,生成相应的处理类来处理业务逻辑。 此J2EE基本构架在实现上基本满足了面向服务体系结构的要求,并且我们能够在开发,运行和维护过程之中降低成本,给企业带来实际的经济效益。
参考文献 1.(美)Thomas Erl 《SOA概念技术与设计》机械工业出版社 2007-01出版 2.毛新生 主编 《SOA原理·方法·实践》电子工业出版社 2007-07出版 3.韦沛文 陈婉玲 编著 《企业信息化教程》 清华大学出版社 2006-08出版 4.费圣英 主编 《电力企业信息化SOA实践》 南京大学出版社 2007-11出版
第一作者简介: 王东明,男,汉,1968年出生,1990年毕业于山东科技大学计算机软件本科专业,计算机专业高级工程师,一直从事计算机软件开发、计算机网络应用、大型综合网络信息系统开发研制工作,取得多项省部级科研成果,发表论文十余篇。联系电话:0531-85685033,通讯地址:济南市天桥区堤口路141号,邮编:250031 |