25
基基 SOA 基基基基基基基基基 基基基基基 东东东东东 东东东东东 东东 东东东 东东东 Institute of Systems Engineering, Southeast University

基于 SOA 的物流软件服务平台体系架构研究

Embed Size (px)

DESCRIPTION

基于 SOA 的物流软件服务平台体系架构研究. 东南大学系统工程研究所 夏志强 李艳明 赵林度. Contents. 引言 基于 Web Service 和 BPEL 的 SOA 实现 基于 SOA 的 L-SaaS 体系架构 L-SaaS 功能需求分析 L-SaaS 的多租户架构 L-SaaS 系统的可配置性 结论. Part 1. 引言. 1 、 SOA ( Service-Oriented Architecture ,面向服务的架构) - PowerPoint PPT Presentation

Citation preview

Page 1: 基于 SOA 的物流软件服务平台体系架构研究

基于 SOA的物流软件服务平台体系架构研究

东南大学系统工程研究所夏志强 李艳明 赵林度

Institute of Systems Engineering, Southeast University

Page 2: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

Contents

引言 基于Web Service和BPEL的SOA实现 基于SOA的L-SaaS体系架构 L-SaaS功能需求分析 L-SaaS的多租户架构 L-SaaS系统的可配置性 结论

Page 3: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

Part 1. 引言

Page 4: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

1、SOA(Service-Oriented Architecture,面向服务的架构) 近年来,在企业级应用开发领域,随着企业信息化的大量普及,传统的应用程序

架构弊端日益显现,程序代码的重用性低下,对业务需求模型的变化反应迟钝,从而导致开发企业应用程序的成本居高不下。

SOA由 Gartner在 1996 年提出,已经成为 IT 业界的新热点。尽管各方研究者和专家对 SOA 架构的认识和理解不尽相同,各 IT 厂商提供的 SOA 解决方案也不一而足,SOA 相关标准仍在不断发展和完善之中,但大家却都有一个共同的认识,那就是SOA 代表着今后一段时期软件技术的发展方向。

SOA是面向软件工程的, SOA就是一组服务的有机集合;从软件和业务功能两方面的观点看,服务就是定义良好的软件组件,它不依赖于任何调用它的应用程序的上下文或状态,而且强调开放性、标准化、即插即用,实现组件之间以及组件与平台之间的松耦合。

Page 5: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

2、Software as a Service,SaaS

在计算机软件应用领域,由于软件需要不断的维护、升级、修补漏洞等售后服务,

大大地增加了客户的购置成本和开发商的维护成本。

越来越多的人已经意识到:软件的特性决定了它不是一种普通的商品,软件的本质

就是服务。因此,软件即是服务(Software as a Service,SaaS),已然成为业界发展的重要趋势,是随着互联网技术的发展和应用软件的成熟,而在 21 世纪开始兴起的一种完全创新的软件应用模式它与“ on-demand software” (按需软件 ) , the application service

provider(ASP ,应用服务提供商 ), hosted software( 托管软件 ) 所具有相似的含义。

Page 6: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

2、Software as a Service,SaaS

SaaS 是一种通过 Internet 提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。 用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件, 软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。 对于许多小型企业来说, SaaS 是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。

Page 7: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

目前,中国物流软件市场处于起步阶段,相关研究基础薄弱。而且中国中小型物流企业过多,不同的企业间尽管物流过程差别细微,但在传统的应用程序架构下,这点细小的差别也足以造成巨大的二次开发成本,从而导致中国中小型物流企业信息化水平普遍较低

的 现 实 。 研究表明:目前尚无可以全面满足中小型物流企业需要的 SOA

架构的软件。由于各大IT服务商对SOA理解各不相同,SOA具体的落实方法并不成型。

本文将提出适合于面向制造业的中小型物流企业 SOA 架构,建立基于 SOA 架构的物流软件服务平台( Logistics-SaaS, L-SaaS ),该平台能够与制造业的 ERP 系统进行数据交换。并且,将在对物流业务流程逻辑分析的基础上,研究基于 BPEL 的业务流程动态集成技术,并建立可配置、伸缩性良好的软件服务平台。

Page 8: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

Part 2.基于 Web Service和 BPEL的 SOA 实现

Page 9: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

L-SaaS 采用基于 Web Service和 BPEL 实现的 SOA 架构,该架构的关键

在于:系统分析人员要把企业业务流程发现为一系列相互独立但又彼此联系的组件,并把这些组件包装成 Web 服务加以发布。这是面向服务架构的基础和起点。应用面向对象的方法分析这个架构,其中涉及到的相关类的类图如图 1 所示 图 1 中最重要的两个部件就是 BPEL 引擎和企业服务总线( Enterprise

Service Bus, ESB )。 BPEL 引擎用于编排流程; ESB主要负责读取流程定义库,并运行相关的 Web 服务以实现流程,同时 ESB还起到数据中间件的作用,用于对不同格式的数据进行统一标准化。

基于Web Service和BPEL的SOA实现

Page 10: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

+接受参数()+运行()+返回参数()

Web服务

+描述服务()

-PortType-message- types-bi ndi ng

WSDL文档

-vari abl es- recei ve- i nvoke-assi gn- repl y

Process

流程定义库

1

1. . *

11

+编排流程()

BPEL引擎

+注册服务()+发现服务()

UDDI

1. . *

1

+数据格式转换()+读取流程定义()+运行服务()

ESB

+发布服务()+请求服务()

企业应用

请求注册

调用

结果结果

图1:SOA实现类图

Page 11: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

企业应用 WSDL文档 Web服务UDDI BPEL引擎 流程定义库

发布服务

描述服务

描述完成

请求注册

注册服务

发布成功

编排流程

写入流程定义库

通知BPEL引擎

ESB

应用请求

读取流程定义库

返回相关信息查找相关服务

返回信息

运行服务

运行

运行结果

返回请求结果

数据转换

图2:SOA实现顺序图

Page 12: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

首先,企业将其业务流程发现为Web Service,用WSDL加以描述定义,将其注册到 UDDI。 企业根据其业务流程的需要,运用 BPEL编排和连接Web Service以实现流程,并将 BPEL “ ”文档存储到 流程定义库 中。 当企业应用需要请求相关服务时,只需将其请求基于 SOAP 协议发送至ESB, ESB首先发挥数据中间件的作用,进行数据格式的标准化处理,然后驱动BPEL引擎,读取流程定义库,通过 UDDI发现、并调用相关 Web Service,最后将结果返回至企业应用。

Page 13: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

Part 3. 基于 SOA的 L-SaaS 体系架构

Page 14: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

SaaS 改变了传统的软件服务模式,具有软件供应商与客户的关系由售卖关系转变为服务关系。如果能够实现“ L-SaaS=SOA+SaaS”的目标,就可以在 SaaS 解决方案中应用 SOA 技术更为快捷地实现根据市场条件和用户需求变化进行调节的目的。 结合中国物流产业的特点,考虑到中小型物流企业数量众多和各自需求的差异, L-SaaS 平台建设可以让众多中小型物流企业无需昂贵的购置成本和维护成本,就可以高效、无忧、方便灵活地享受信息化带来的好处; 基于 SOA 的软件体系,可以准确地将物流业务流程抽象成组件和服务,这些灵活、可重用的组件服务,则可以低代价甚至零成本地满足不同企业之间的不同业务需求; 由于融入了与制造业 ERP 系统无缝集成的数据中间件机制,更加符合中国产业结构的现状。

Page 15: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

3.1 L-SaaS功能需求分析 (1)SaaS供应商 可能是系统的维护人员、管理人员或者授权的操作员等。一方面,为保障用户数据的安全和可靠性, SaaS供应商需要对用户数据维护操作;另一方面, SaaS供应商要确保系统健康稳定运行,如服务管理、功能组件管理、密钥分配回收、分布式计算管理等。(2) SaaS客户 SaaS 客户是指购买了 L-SaaS 服务的企业级用户(这里一般是中小型物流企业),通常应该是中小型物流企业的信息部门主管或者获得授权的员工。包括:付费管理、功能组件配置、用户数据配置、用户界面配置、业务流程配置。(3)SaaS用户 SaaS 用户是指购置了 SaaS 平台的中小型物流企业的注册用户,可能是他们的员工,也可能是他们的合作伙伴或服务对象。

Page 16: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

SaaS供应商

L-SaaS

用户数据维护

系统运行维护

SaaS客户

配置功能组件

配置用户数据

配置用户界面

配置业务流程

付费管理

SaaS用户

交易管理

{通过认证?}

权限校验

协同管理

征信管理

预警管理

可视化管理

信息共享交流

公共业务集成 外部系统(ERP)

数据交换

本 文设计开 发 的基于 SOA 的 L-SaaS 平 台 , 将 会 为 用 户 提 供交易管理、分布式物流业务协同管理、征信管理、预警分析决策、物流过程可视化管理、物流信息共享与交流以及物流公共服务业务集成等服务。 图3:L-SaaS

系统用例图

Page 17: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

3.2 L-SaaS的多租户架构 满足多租户的需求,是 SaaS 模式区别于传统模式的核心所在。可以实现

SaaS 多租户的数据库模型有三种:独立数据库,共享数据库、单独模式,共享数据库、共享模式 考虑到系 统 开 支 、数据安全 以 及数据访问复杂程 度 , L-SaaS

系统采用共享数据库、单独模式 L-SaaS 平台采用共享数据库、单独模式的数据库模型。问题在于:随着租户数量的不断增多,数据库必然变得越来越庞大,性能也随之下降,最后难以满足需求。 因此,需要考虑将数据库分散到不同的物理服务器上,即以垂直切分的方式实现数据库的水平扩展。为实现此目的,还需要配置一个专门的服务器,用于分配和确定每个租户的物理数据库的位置。

Page 18: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

所谓可配置,即支持租户自定义。一个完善的 SaaS 系统,至少应包括数据自定义、界面自定义、功能自定义和流程自定义等可配置性。

3.3 L-SaaS系统的可配置性

Page 19: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

(1)数据自定义: : L-SaaS 系统主要采用“行列互换”的数据库设计思想。克服关系数据表的行、列一旦被定义之后,就难以再更改和维护的问题。

“Tables” 用行数据记录传统关系模型中所有的表,还有对表的相关描述,每一条记录指向一张表;“Columns”则是描述传统关系模型中表的字段名、及其数据类型、默认值等相关信息,每一条记录指向一个列;无论是“ Tables”还是“ Columns” ,都不涉及到传统关系模型中的数据,“ Values”被设计用来完成此任务,其中每一条记录指向一个单元格。

Page 20: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

Page 21: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

(2)界面自定义:界面自定义需要确定的因素包括:页面的名称、页面中控件的标号以及控件的样式属性值。“Controls” 表:根据页面名称和页面中某控件的编号,对控件加以唯一确定,并对每一个 控件赋予唯一的标识符,如表一;“StyleTags” 表:存放 L-SaaS 系统允许租户自定义的 CSS属性名称,如表二; “StyleSheet” 表:每一条记录描述“ ControlId” 相对应控件的某个 CSS属性值 ,如表三;

Page 22: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

( 3)功能自定义:包括原子功能划分、定义原子功能间的依赖关系,功能包的设计与划分,功能包之间包含关系的定义。 原子功能划分:指功能不可再细分、不互相重叠、不循环依赖; 租户没必要定制父功能包再定制子功能包。尽管原子功能是功能包的一部分,鉴于其在逻辑上的相似性,可以用一个统一的数据结构加以存储和描述; 与界面自定义和数据自定义不同,下图中的数据表是存放于系统数据库上的。这是租户进行功能定义的来源和依据。

Page 23: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

4)流程自定义 在 L-SaaS的 SOA 架构中,业务流程被尽可能地发现为服务和组件,并用 BPEL 来管理和编排服务。只要按照业务要求适当的修改 BPEL 文档,即可实现流程的自定义。 但是, BPEL 文档是以 XML格式存储的。如果要租户修改 XML 文档以实现流程定义,显然不合理。一个可行的方案,是将 BPEL 文档的 XML树结构存储在数据库表中,租户可以通过修改数据库表,以实现对 BPEL 文档的编辑,从而重新编排服务、定义流程。

Page 24: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

Part 4:结论 本文面向中小型物流企业,以 SOA和 SaaS 为对象,研究了基于Web Service和 BPEL 实现的 SOA 架构,设计开发了 L-SaaS 平台。 为了更好地优化 L-SaaS 平台,在未来的研究中将考虑到租户可能的操作失误,建立一定的机制以减少租户因误操作带来的业务和数据损失。这要求程序在设计开发时要考虑其可逆性,尤其在数据的存取过程上;考虑到租户突然断线,或者必须脱机工作时,为其开发本地离线系统,以避免断线后用户数据丢失或无网络情况下系统无法使用的问题。

Page 25: 基于 SOA 的物流软件服务平台体系架构研究

Institute of Systems Engineering, Southeast University

Thanks for your attention!