250 likes | 570 Views
基于 SOA 的物流软件服务平台体系架构研究. 东南大学系统工程研究所 夏志强 李艳明 赵林度. Contents. 引言 基于 Web Service 和 BPEL 的 SOA 实现 基于 SOA 的 L-SaaS 体系架构 L-SaaS 功能需求分析 L-SaaS 的多租户架构 L-SaaS 系统的可配置性 结论. Part 1. 引言. 1 、 SOA ( Service-Oriented Architecture ,面向服务的架构)
E N D
基于SOA的物流软件服务平台体系架构研究 东南大学系统工程研究所 夏志强李艳明赵林度 Institute of Systems Engineering, Southeast University
Contents • 引言 • 基于Web Service和BPEL的SOA实现 • 基于SOA的L-SaaS体系架构 • L-SaaS功能需求分析 • L-SaaS的多租户架构 • L-SaaS系统的可配置性 • 结论 Institute of Systems Engineering, Southeast University
Part 1.引言 Institute of Systems Engineering, Southeast University
1、SOA(Service-Oriented Architecture,面向服务的架构) • 近年来,在企业级应用开发领域,随着企业信息化的大量普及,传统的应用程序架构弊端日益显现,程序代码的重用性低下,对业务需求模型的变化反应迟钝,从而导致开发企业应用程序的成本居高不下。 • SOA由Gartner在1996年提出,已经成为IT业界的新热点。尽管各方研究者和专家对SOA架构的认识和理解不尽相同,各IT厂商提供的SOA解决方案也不一而足,SOA相关标准仍在不断发展和完善之中,但大家却都有一个共同的认识,那就是SOA代表着今后一段时期软件技术的发展方向。 • SOA是面向软件工程的,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(托管软件)所具有相似的含义。 Institute of Systems Engineering, Southeast University
2、Software as a Service,SaaS SaaS是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。 用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件, 软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。 对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。 Institute of Systems Engineering, Southeast University
目前,中国物流软件市场处于起步阶段,相关研究基础薄弱。而且中国中小型物流企业过多,不同的企业间尽管物流过程差别细微,但在传统的应用程序架构下,这点细小的差别也足以造成巨大的二次开发成本,从而导致中国中小型物流企业信息化水平普遍较低的现实。研究表明:目前尚无可以全面满足中小型物流企业需要的SOA架构的软件。由于各大IT服务商对SOA理解各不相同,SOA具体的落实方法并不成型。 本文将提出适合于面向制造业的中小型物流企业SOA架构,建立基于SOA架构的物流软件服务平台(Logistics-SaaS,L-SaaS),该平台能够与制造业的ERP系统进行数据交换。并且,将在对物流业务流程逻辑分析的基础上,研究基于BPEL的业务流程动态集成技术,并建立可配置、伸缩性良好的软件服务平台。 Institute of Systems Engineering, Southeast University
Part 2.基于Web Service和BPEL的SOA实现 Institute of Systems Engineering, Southeast University
基于Web Service和BPEL的SOA实现 • L-SaaS采用基于Web Service和BPEL实现的SOA架构,该架构的关键在于:系统分析人员要把企业业务流程发现为一系列相互独立但又彼此联系的组件,并把这些组件包装成Web服务加以发布。这是面向服务架构的基础和起点。应用面向对象的方法分析这个架构,其中涉及到的相关类的类图如图1所示 • 图1中最重要的两个部件就是BPEL引擎和企业服务总线(Enterprise Service Bus,ESB)。BPEL引擎用于编排流程;ESB主要负责读取流程定义库,并运行相关的Web服务以实现流程,同时ESB还起到数据中间件的作用,用于对不同格式的数据进行统一标准化。 Institute of Systems Engineering, Southeast University
图1:SOA实现类图 Institute of Systems Engineering, Southeast University
图2:SOA实现顺序图 Institute of Systems Engineering, Southeast University
首先,企业将其业务流程发现为Web Service,用WSDL加以描述定义,将其注册到UDDI。 • 企业根据其业务流程的需要,运用BPEL编排和连接Web Service以实现流程,并将BPEL文档存储到“流程定义库”中。 • 当企业应用需要请求相关服务时,只需将其请求基于SOAP协议发送至ESB,ESB首先发挥数据中间件的作用,进行数据格式的标准化处理,然后驱动BPEL引擎,读取流程定义库,通过UDDI发现、并调用相关Web Service,最后将结果返回至企业应用。 Institute of Systems Engineering, Southeast University
Part 3. 基于SOA的L-SaaS体系架构 Institute of Systems Engineering, Southeast University
SaaS改变了传统的软件服务模式,具有软件供应商与客户的关系由售卖关系转变为服务关系。如果能够实现“L-SaaS=SOA+SaaS”的目标,就可以在SaaS解决方案中应用SOA技术更为快捷地实现根据市场条件和用户需求变化进行调节的目的。SaaS改变了传统的软件服务模式,具有软件供应商与客户的关系由售卖关系转变为服务关系。如果能够实现“L-SaaS=SOA+SaaS”的目标,就可以在SaaS解决方案中应用SOA技术更为快捷地实现根据市场条件和用户需求变化进行调节的目的。 • 结合中国物流产业的特点,考虑到中小型物流企业数量众多和各自需求的差异,L-SaaS平台建设可以让众多中小型物流企业无需昂贵的购置成本和维护成本,就可以高效、无忧、方便灵活地享受信息化带来的好处; • 基于SOA的软件体系,可以准确地将物流业务流程抽象成组件和服务,这些灵活、可重用的组件服务,则可以低代价甚至零成本地满足不同企业之间的不同业务需求; • 由于融入了与制造业ERP系统无缝集成的数据中间件机制,更加符合中国产业结构的现状。 Institute of Systems Engineering, Southeast University
3.1 L-SaaS功能需求分析 (1)SaaS供应商 可能是系统的维护人员、管理人员或者授权的操作员等。一方面,为保障用户数据的安全和可靠性,SaaS供应商需要对用户数据维护操作;另一方面,SaaS供应商要确保系统健康稳定运行,如服务管理、功能组件管理、密钥分配回收、分布式计算管理等。 (2) SaaS客户 SaaS客户是指购买了L-SaaS服务的企业级用户(这里一般是中小型物流企业),通常应该是中小型物流企业的信息部门主管或者获得授权的员工。包括:付费管理、功能组件配置、用户数据配置、用户界面配置、业务流程配置。 (3)SaaS用户 SaaS用户是指购置了SaaS平台的中小型物流企业的注册用户,可能是他们的员工,也可能是他们的合作伙伴或服务对象。 Institute of Systems Engineering, Southeast University
本文设计开发的基于SOA的L-SaaS平台,将会为用户提供交易管理、分布式物流业务协同管理、征信管理、预警分析决策、物流过程可视化管理、物流信息共享与交流以及物流公共服务业务集成等服务。本文设计开发的基于SOA的L-SaaS平台,将会为用户提供交易管理、分布式物流业务协同管理、征信管理、预警分析决策、物流过程可视化管理、物流信息共享与交流以及物流公共服务业务集成等服务。 图3:L-SaaS 系统用例图 Institute of Systems Engineering, Southeast University
3.2 L-SaaS的多租户架构 • 满足多租户的需求,是SaaS模式区别于传统模式的核心所在。可以实现SaaS多租户的数据库模型有三种:独立数据库,共享数据库、单独模式,共享数据库、共享模式 • 考虑到系统开支、数据安全以及数据访问复杂程度,L-SaaS系统采用共享数据库、单独模式 • L-SaaS平台采用共享数据库、单独模式的数据库模型。问题在于:随着租户数量的不断增多,数据库必然变得越来越庞大,性能也随之下降,最后难以满足需求。 • 因此,需要考虑将数据库分散到不同的物理服务器上,即以垂直切分的方式实现数据库的水平扩展。为实现此目的,还需要配置一个专门的服务器,用于分配和确定每个租户的物理数据库的位置。 Institute of Systems Engineering, Southeast University
3.3 L-SaaS系统的可配置性 所谓可配置,即支持租户自定义。一个完善的SaaS系统,至少应包括数据自定义、界面自定义、功能自定义和流程自定义等可配置性。 Institute of Systems Engineering, Southeast University
(1)数据自定义:: L-SaaS系统主要采用“行列互换”的数据库设计思想。克服关系数据表的行、列一旦被定义之后,就难以再更改和维护的问题。 • “Tables”用行数据记录传统关系模型中所有的表,还有对表的相关描述,每一条记录指向一张表; • “Columns”则是描述传统关系模型中表的字段名、及其数据类型、默认值等相关信息,每一条记录指向一个列; • 无论是“Tables”还是“Columns”,都不涉及到传统关系模型中的数据,“Values”被设计用来完成此任务,其中每一条记录指向一个单元格。 Institute of Systems Engineering, Southeast University
(2)界面自定义:界面自定义需要确定的因素包括:页面的名称、页面中控件的标号以及控件的样式属性值。(2)界面自定义:界面自定义需要确定的因素包括:页面的名称、页面中控件的标号以及控件的样式属性值。 • “Controls”表:根据页面名称和页面中某控件的编号,对控件加以唯一确定,并对每一个 • 控件赋予唯一的标识符,如表一; • “StyleTags”表:存放L-SaaS系统允许租户自定义的CSS属性名称,如表二; • “StyleSheet”表:每一条记录描述“ControlId”相对应控件的某个CSS属性值 ,如表三; Institute of Systems Engineering, Southeast University
(3)功能自定义:包括原子功能划分、定义原子功能间的依赖关系,功能包的设计与划分,功能包之间包含关系的定义。(3)功能自定义:包括原子功能划分、定义原子功能间的依赖关系,功能包的设计与划分,功能包之间包含关系的定义。 • 原子功能划分:指功能不可再细分、不互相重叠、不循环依赖; • 租户没必要定制父功能包再定制子功能包。尽管原子功能是功能包的一部分,鉴于其在逻辑上的相似性,可以用一个统一的数据结构加以存储和描述; • 与界面自定义和数据自定义不同,下图中的数据表是存放于系统数据库上的。这是租户进 • 行功能定义的来源和依据。 Institute of Systems Engineering, Southeast University
4)流程自定义 在L-SaaS的SOA架构中,业务流程被尽可能地发现为服务和组件,并用BPEL来管理和编排服务。只要按照业务要求适当的修改BPEL文档,即可实现流程的自定义。 但是,BPEL文档是以XML格式存储的。如果要租户修改XML文档以实现流程定义,显然不合理。一个可行的方案,是将BPEL文档的XML树结构存储在数据库表中,租户可以通过修改数据库表,以实现对BPEL文档的编辑,从而重新编排服务、定义流程。 Institute of Systems Engineering, Southeast University
Part 4:结论 本文面向中小型物流企业,以SOA和SaaS为对象,研究了基于Web Service和BPEL实现的SOA架构,设计开发了L-SaaS平台。 为了更好地优化L-SaaS平台,在未来的研究中将考虑到租户可能的操作失误,建立一定的机制以减少租户因误操作带来的业务和数据损失。这要求程序在设计开发时要考虑其可逆性,尤其在数据的存取过程上;考虑到租户突然断线,或者必须脱机工作时,为其开发本地离线系统,以避免断线后用户数据丢失或无网络情况下系统无法使用的问题。 Institute of Systems Engineering, Southeast University
Thanks for your attention! Institute of Systems Engineering, Southeast University