APP下载

基于SOA的铁水联运信息共享平台架构的研究

2012-06-19上海铁路局信息技术所

上海铁道增刊 2012年2期
关键词:铁水货物港口

韩 谦 上海铁路局信息技术所

1 引言

目前,铁道部、交通部在铁水联运方面已经开展了很好的合作,并取得了明显的效果。在煤炭、进口铁矿石、粮食等重点物质的运输中铁水联运发挥了重要的作用。由于铁路、港口码头属于不同的运输体系,在信息共享、信息交互方面严重滞后。在不同运输行业间缺乏由信息技术支撑的有效协同,对铁水联运已经造成了一定的阻碍。同时与铁道部和交通部签署的《关于共同推进铁水联运发展合作协议》中"加快铁水联运信息化建设,推进信息共享。建立实时共享的公共信息平台,积极推动铁水联运口岸监管便利化"的相关要求也不相适应。针对上述的问题有效的解决方法是在既有的铁路、港口码头内部信息系统的基础上,通过在技术层面上搭建基础性铁水信息共享平台,以面向服务架构(Service Oriented Architecture,SOA)思想为理论指导,对各运输体内部的业务功能及运输生产数据按照统一的传输模式和数据标准进行封装,使此平台基础架构独立于原有信息系统的逻辑层。将所有与铁水联运有关的环节--铁路、港口、码头、船公司等信息系统连接起来,使得运输的相关方,通过这个平台就可以完成请车、交易、订舱、仓储、运输等手续,可以实现对车、集装箱、货物在铁路、港口码头、海上等的追踪,实现更好的为货主服务,进而提供“门到门”的现代物流服务。另外通过此平台铁路相关部门可以及时准确的获得港口、码头、船公司等运输企业有关车、货物等方面的信息,对控制货物在港口、码头的停留时间;降低铁路运输空驶率;提高调度效率等方面提供了必要的技术手段。以期达到不断满足铁路联运运输生产要求的最终目的。

2 面向服务架构(SOA)核心理论与技术

2.1 SOA概述

面向服务架构(SOA)是一种应用程序体系架构,在这种体系架构中,所有的功能都定义成独立的服务,这些服务带有定义明确的可调用接口,采用已定义好的顺序调用这些服务来形成业务流程。

2.2 SOA服务模型

面向服务的体系架构中共有3种角色,他们分别是服务提供者、服务消费者和服务注册中心。其中服务提供者负责服务功能的具体实现,并通过注册服务操作将其所提供的服务发布到服务注册中心,当接受到服务消费者的服务请求时,执行所请求的服务。服务消费者则是服务执行的发起者,首先需要到服务注册中心查找符合条件的服务,然后根据服务信息进行服务绑定/调用,以获得需要的功能。而服务注册中心则用来提供服务提供者注册服务、提供对服务的分类和查找功能,以便服务消费者发现服务,其架构模型(如图1所示)。

图1 SOA架构模型

SOA中的每个实体都扮演着服务提供者、服务请求者和服务注册中心这三种角色中的某一种或多种,在这些角色之间使用以下三种操作:发布(Publish)。为了使服务可访问,服务提供者需要发布服务描述以使服务请求者可以发现和调用。查找(Find)。服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。绑定(Bind)。在检索完服务描述之后,服务请求者根据服务描述中的信息来调用服务。

3 基于SOA的铁水联运信息共享平台架构设计

铁水联运信息共享平台将是铁路货运系统对外服务的一个窗口,是铁路信息和港口信息交换的平台,是铁路与广大货主沟通的桥梁。同时铁路和港口企业展开联合物流,有利于各企业的信息流通,提高整个铁路物流服务质量。其主要内容包括:客户服务、订单服务、货物服务、仓储服务、追踪服务等。本文将以铁路现有的信息系统和港口码头的信息系统为基础,利用SOA技术,在不改变现有信息系统的前提下,在安全允许的范围内充分利用铁路和港口的信息数据并开发必要的功能来进行架构设计。

3.1 基于SOA的铁水联运信息共享平台总体架构

基于SOA的铁水联运信息共享平台总体架构见图2。

图2 基于SOA的铁水联运信息共享平台总体架

该架构分为表示层(UI)、服务发布层(Web Sevices)、业务逻辑层(BLL)、数据访问层(DAL)四层,各层的功能如下:

表示层:实现用户交互界面,例如Web浏览器、Windows界面等。该层是面向用户的一层,通过提供用户交互界面,接受用户交互,判断界面数据的有效性,该层被设计成有状态模式。

服务发布层:将业务逻辑层中的各种细粒度服务通过聚合封装成易用的粗粒度服务,通过Web Sevices发布各种粗粒度服务,以接受上层表示层调用,主要包括客户管理服务、订单管理服务、货物管理服务、仓储管理服务、追踪管理服务、经由计算、运费计算等,此外还有一些延伸服务。该层是面向服务的一层,通过该层实现SOA架构的服务发布功能。

业务逻辑层:将各种业务逻辑封装成相互独立的细粒度服务,以接受上层粗粒度服务的调用。例如,追踪服务包括船舶追踪、货车车辆追踪、货物状态追踪、货票查询。此外,该层管理着对事务和异常的处理,以及连接的操作。该层被设计成无状态面向服务的模式,通过该层实现SOA架构的服务功能。

数据访问层:该层使用数据逻辑访问组件从铁路信息系统和港口信息系统的相关库中定时提取所需的数据,在中间数据库中建立对应的数据库,将数据存储其中,便于从中检索数据并将实体数据保存回中间数据库中。由于铁路信息系统和互联网以及港口信息系统间都是物理隔离的。在此采用铁道部的安全传输方案可以很安全、有效的实现系统数据的传输。

3.2 基于SOA的铁水联运信息共享平台的特色

(1)通过设立服务层强化了表示层和业务层的联系,简化了对业务对象的操作,提高了系统的相应效率。从图2中可以看出,在表示层和业务层之间有一个服务层。在典型的面向对象模型的三层架构中由于表示层直接调用业务对象,这就加强了二者的耦合并且需要在层与层直接进行大量的调用。加入服务层之后,表示层不再直接操作业务对象,而是通过服务去访问他们,业务对象驻留在类库里,由服务将它们加载到内存中,此时,因为服务层和业务层都处在同一流程中,对业务对象的操作就变得很容易了。

(2)SOA中的服务可以独立编写,也可以重置原有孤立的应用程序中的功能模块,而后者正好体现了SOA整合现有系统的强大的功能。可以通过将现有铁路信息系统和港口码头信息系统中的部分模块发布为服务以供其他模块共享应用,及业务逻辑层的细粒度服务。比如货票信息系统中提供的货票查询服务可以通过细粒度服务发布为整个业务系统提供货票查询服务,而无需在每个应用模块中重复开发该功能。

4 系统实现

参照铁水联运信息共享平台架构,以追踪服务粗粒度为例来说明系统实现的思路.追踪服务包括三个细粒度服务:铁路列车追踪查询、货票查询、船舶追踪查询、货物状态查询,其中,前两个服务可以分别重用铁路信息系统中的货车追踪服务和货票信息服务,第三个服务重用港口信息系统中船舶调度系统中船舶追踪查询服务,第四个服务则需要从头开发。

用户通过交互页面输入货物追踪查询条件(订单号、货票号、收发货人等中的一个或几个),将查询请求提交给门户系统,门户系统调用铁路货物追踪服务和港口船舶追踪服务,在页面上返回货物当前位置、状态等信息,如货物可能出在国铁中的位置或处在海上的需几天到达码头或处在码头的堆场的什么位置,同时可以显示该货物的相关历史轨迹。

根据用户输入的查询条件,先进行货物状态查询(收货、发货、运货、到货、取货),若是运货状态,则需要进行货物追踪。如果此货物在铁路站,此时利用货票管理信息系统找到运载该货物的车号,进而以车号为条件利用铁路AITS系统的车辆追踪功能查询;如果此货物在港口方,此时利用港口货物管理信息系统,通过运单找到集装箱号或散装船号进而通过船舶调度系统查询货物的位置。将货票查询功能转化为服务的过程可以描述为:

采用的开发工具是WSAD,可以根据Bean创建Web服务,并使用Bean中的消息自动生成WSDL文件,描述所创建的Web服务,使用SOAP分析HTTP的数据等。

在TMIS系统中的有个FreightTicketInfo类保存有货票信息,启动WSDL中的Web服务向导将QueryFreightTicket-Info封装成Web服务,启动Web服务资源管理器将此Web服务发布到UDDI注册中心将要生成的Web服务直接发布出去。

在生成Web服务后,WSAD会自动生成一系列的WSDL文档,WSDL文档以被作为描述Web服务的通用方法。在编码和生成Web服务之后,就可以将它发布出去。

最后一步就是客户端使用所发布的Web服务。首先,读取关于货票查询Web服务的WSDL并为客户端生成代理,然后客户端就可以通过RPC使用代理来查询货票信息。

编码、生成、发布和调用已经完整地构成了一个Web服务开发的全过程。

5 结束语

将SOA架构应用到铁水联运信息共享平台建设中,可以快速、方便的重构铁路信息系统和港口信息系统的应用,从而极大地提高了系统的开发效率,减少其开发和维护成本;通过其层次结构和大量可复用的Web服务组件,使得铁水联运信息共享平台有较大的适应性。接下来,将重点在安全认证、粗细粒度服务的划分、数据库操作优化等方面作进一步的研究,以使SOA在铁水联运信息平台中的应用更加完善,为提高铁路货运的服务质量,加强做大铁水联运物流市场,增强铁路货运的综合竞争力方面做出应有的贡献。

猜你喜欢

铁水货物港口
聚焦港口国际化
中国港口,屹立东方
山钢5100m3高炉提高铁水装准率的实践
港口上的笑脸
低铁比条件下低硅、低温铁水加煤块冶炼生产实践
逛超市
惠东港口
基于Bootstrap的高炉铁水硅含量二维预报
卢成:发展集装箱铁水联运大有可为