3.建设烟草行业省级数据交换中心的构想金涧孙壮志(1、北京烟草专卖局,北京,100027)摘要:本文主要介绍了烟草行业的数据信息现状,传统数据接口的方法以及系统集成之间的分类。提出了建立数据交换中心的必要性、数据交换中心的架构和实现方法。关键词:数据交换中心,系统集成,信息“孤岛”TheimaginationofbuildingstatetobaccotradedataexchangecenterJinJianSunZhuangzhi(1、BeijingTobaccoMonopolyBureau,Beijing,100027)(2、BeijingTobaccoMonopolyBureauEconomicInformationCenter,Beijing,100027)Abstract:Thispapermainlyintroducedthepresentconditionoftobaccoindustrydata,thetraditionaldatainterfacemethodandtheclassificationforsystemintegrated.Weputforwardthenecessitytoestablishdataexchangecenter,infrastructureofthedataexchangecenterandtherealizingmethods.Keywords:dataexchangecenter,systemintegrated,information“isolatedisland”一、烟草行业数据信息现状随着计算机及信息技术的不断发展,中国烟草行业,从国家局各业务部门到各省局(公司)、各卷烟加工企业,乃至各地区和县级烟草公司,都在信息化建设方面进行了大力的投入和开发,取得了非常显著的效果,并初步构建了中国烟草信息系统的雏形。目前,中国烟草行业的管理信息系统已经具备了相当的基础,这包括信息系统的硬件基础、软件基础及信息系统所需的人员准备。近年来,各省局、卷烟企业、卷烟分销企业、卷烟储运部门及卷烟专卖管理等业务单元相继构建了各自的信息系统,而且有些系统已经非常先进。但是,这些信息系统基本上是各自独立的信息“孤岛”,无法做到信息资源的共享,进而影响了许多正常业务的效率;国家局及各省局的专业部门针对自身的管理业务的需要,近年来也纷纷构建了各自的专业性管理系统,所建立起来的这些专业性管理信息系统也基本上是相互独立的,在各业务部门之间同样无法做到“资源共享”,犹如一根根自上而下的信息“烟囱”。由于各单位前期在实施信息系统过程中分别采用了各自的系统标准,因而导致了现有各信息系统之间很难做到“无缝连接”,因而在各系统间存在大量的“手工连接”,进而造成大量的信息失真和信息延时,这也在很大程度上影响了国家局对整个烟草行业的监控力度和管理的有效性。烟草信息化的发展要求解决信息孤岛问题,实现这些大量的不同位置、不同格式的数据的共享和相互访问,进而集成相关的业务数据,为企业、公众和内部政务系统提供统一和一致的服务。因此系统之间如何集成,各个应用系统如何集成就变成了一个大问题。二、传统的接口方法目前传统的做法就是系统之间互相写接口,比如某个分销系统,需要用到A公司专卖系统和B公司的网上交易系统,那我们就不得不写两个接口来分别与A公司专卖系统和B公司的网上交易系统集成。这种做法的弊端是显而易见的:首先,我们需要了解A公司专卖系统和B公司网上交易系统的数据对象格式,要针对它们的格式写集成接口,这样一来如果换了一个项目,使用的是C公司的专卖和D公司的网上交易,那这个接口就需要重新编写。传统形式的数据交换方式如图1所示:专卖电子商务销售财务图1传统形式的数据交换方式其次这种系统之间互相写接口会使得整个应用系统变得复杂,n个系统之间集成需要n×(n-1)个接口,而且系统之间耦合性太高,如果有一方数据对象或集成格式发生变化,那么与其关联的n-1个系统接口都要跟着修改。这样造成两个不便:(1)开发过程不便,新的系统要兼顾老的系统就必须开发大量的接口,而且可能对原来系统的稳定性产生影响。(2)使用的接口无法实现真正的数据共享,只能是单点对单点。不利于企业进行数据仓库分析。因此需要一种集成方案来实现该过程的全自动化,从而实现业务的整合。三、系统间集成的分类系统之间的集成是多个层面的,从底向上基本可以这样来划分:1、系统级的集成:昀底层的硬件级和操作系统级的集成,即不同硬件平台、不同的操作系统平台之间能互相操作。在这一层面上随着一些硬件标准及通讯协议的制定和使用,基本上没有什么问题,我们不用做太多的考虑。2、数据级的集成:多个系统之间通过操作相同的数据来达到集成的目的,这是我们目前使用昀多的方式,包括分系统之间,系统内模块之间基本都是采用这种方式。例如分销和专卖都是直接操作的客户数据表,分销的销售模块和配送模块也是直接操作订单表等等,这样带来的后果就是系统之间、模块之间耦合紧密:分销系统的编码设计人员必须要理解专卖设计人员设计的客户数据表结构;配送模块设计人员也必须要清楚销售模块设计人员定义的订单表结构。3、应用级的集成:简单来讲就是API调用,系统之间、模块之间通过API调用的方式达到集成的目的,通过提供API接口把系统、模块封装成一个黑盒,来降低系统间的耦合度。需要同步的集成一般还是可以采取这种方式的,比如分销系统调用专卖系统的API来查询某客户的信息等(需要立即返回信息)。4、业务级的集成:从业务层面来考虑应用的集成,比如公司新进了一个员工,首先由人力资源部登记此人的基本信息、工资级别、岗位,然后财务系统中相应的需要注册此人的帐户、应发的工资,ERP系统中需要安排此人的岗位等等。拿我们烟草中的例子,网上交易系统中的运输单到货确认之后需要生成分销系统中的采购入库单,并做入库处理。业务级的集成就是需要从业务层面上来考虑应用系统间的集成,一般来说,业务级的集成是可以异步处理或者同步处理的,具体实现的时候也可以使用API。业务级集成和应用级集成的区别,以我个人的观点是:业务级的集成是一种自动化的过程,而应用级的集成则只是解决信息重复输入的问题,还是需要手工参与的,举几个例子:某分销系统需要A公司的专卖系统,为了达到系统客户的统一,采用应用级集成的方法,我们需要调用A公司提供的API来查询得到客户信息并将此客户信息更新到我们的分销系统中即会有一个客户导入的操作;而采用业务级集成的方法,A公司的专卖系统中增加、修改了一个客户,其变动情况会自动在我们的分销系统中体现;分销系统与B公司的网上交易集成,如果采用应用级集成,需要调用B公司的API查询得到已经到货确认的运输单,然后选择其中一个运输单,生成分销中的采购入库单;而采用业务集成的方法,则是在B公司的网上交易对运输单做到货确认之后自动就会在我们的分销系统中生成采购入库单。四、省级数据交换中心的建立1、数据交换中心与传统意义上的数据中心的区别数据交换中心是信息资源数据库的存储中心和管理服务中心。数据交换中心与传统意义上的数据中心有什么区别呢?传统意义上的数据中心实质上是一个数据存储中心(DataSavingCenter),或者是数据仓库(DataWarehouse)。应用系统所能够提供的数据服务先以某种形式转移到数据存储中心,其他应用系统再从数据存储中心获得数据。数据存储中心存在着实时性差、应用系统与存储中心之间及应用系统之间的耦合程度比较严重、系统安全性较低等不足。数据交换中心采用WebService技术进行组件和应用系统的包装,将系统的数据展示和需求都看作一种服务,通过服务的请求和调用实现系统间的数据交换和共享。应用系统所能提供的数据并不需要先复制到数据交换中心的中心数据库,而只是以WebService的形式发布出来,只有当用户发出服务请求的时候,数据才从应用系统经过数据交换中心直接传递到用户。这样,用户所得到的永远是昀新的信息。当应用系统中的数据格式变更或增加了新的数据,只需要以新的WebService发布出来,用户通过数据交换中心使用服务并获得相应数据。数据交换中心和客户端,都不需要做任何改动,这就实现了系统之间的低耦合性。数据交换中心利用网络安全平台所提供的安全机制来保证系统和数据的安全。当应用系统申请进行数据查询和更新操作时,必须通过安全可信的WebService在权限管理的控制下来进行数据交换和数据传输,提高了系统和数据的安全性。2、系统平台架构系统采用数据中心和数据交换代理节点的结构来简化系统应用主体内部功能体之间、主体与主体之间所存在的复杂的相互关系,在代理节点上提供相应的服务来方便老应用系统的接入并提供一致的访问行为和接口。数据交换中心总体结构示意图如图2所示。整个体系结构为一个星型结构,数据中心处于中心位置,它是实现数据共享和交换的中心,通过标准化的WebService接口为每个数据交换节点提供服务。每个数据交换节点只需要与数据中心通过WebService进行交互,并通过XML进行数据转换,而不需要相互直接连接访问就可以获取到所需要的数据。数据中心的整体行为就像一个虚拟的中心数据库,同时又像一个交换机。整个数据共享和交换的底层实现和存储机制对各应用节点是透明的。该结构耦合性低,并且很容易扩展为层次的雪花型结构,构建出多级的数据中心结构,以支持更大范围的广域方案。数据交换节点Oracle数据交换agent业务系统1数据交换节点SQL数据交换agentSERVER数据交换节点Sybase数据交换agent业务系统2数据中心中心数据仓库connectorXMLWebServiceXMLWebServiceWebServiceXMLconnector图2数据交换中心系统架构图(1)数据中心烟草数据中心完成数据的存储、格式转换和数据交换,它由一系列中间件、服务、WebService接口以及中心数据仓库组成。其核心组件包括数据交换引擎、安全管理、系统管理、Web服务管理以及WebService接口。数据交换中心主要负责:z公共基础信息系统的同步。z各应用系统之间的数据传递的接收与转发。z发送方应用系统数据格式与接收方应用系统数据格式(或数据内容)的转换。z通过映射或数据管道将数据集中到统一的数据中心,为未来的数据仓库作准备。公共基础信息系统包括以下内容:z系统基础信息(例:权限、角色等)z卷烟基础信息z供应商基础信息z组织机构信息z人员信息(2)数据交换引擎实现数据交换的核心功能,提供模式管理、数据变换和交换等服务。(3)Web服务管理提供对Web服务的注册管理和发布功能。通过Web服务管理,各数据交换节点代理向数据中心注册自己的数据交换Web服务,数据中心根据注册的信息进行Web服务的路由,主动调用数据交换节点的数据访问服务来向数据交换节点传送数据或从数据交换节点获取数据。(4)WebService接口向外部应用程序和数据交换节点展示数据交换的相关Web服务,Web服务的实现可以是基于HTTP、邮件SMTP以及JMS等各种协议的,可以是异步的也可以是同步的。WebService接口通过安全管理服务来实现可信的Web服务调用。(5)中心数据仓库中心数据仓库提供数据转储和数据仓库功能。采集和交换过程中的数据可以转储到中心数据仓库,并在转储过程中提供数据的正确性和一致性校验功能,保证了数据权威性;中心数据仓库还为传统应用程序提供了一个全局的关系数据共享视图,利用本地数据库连接工具可进行复杂关系数据的批量检索、统计查询和数据管理。基于中心数据仓库还可提供数据挖掘、分析、比较等功能,提供决策辅助信息。(6)应用连接(connector)应用连接的结构图如图3所示:图3应用连接的结构图各应用系统需要编写一个与服务器的连接,这个连接(Connector)分为两部分,一部分可以称作Connector代理,用来与应用程序交互;另一部分称作Connector控制器,用于接收代理发送来的消息,返回处理信息给代理,以及将代理发来的消息发到服务器中。Connector代理部分可以提供AP