|
|
|
|
移动端

3.2.2 面向服务的结构(SOA)

《数据库系统:设计、实现与原理(基础篇)(原书第6版)》第3章数据库的结构与Web,本章我们首先考察一些目前已投入使用的不同系统的结构,然后讨论有关Web服务和面向服务的结构(SOA)的进展。本节为大家介绍面向服务的结构(SOA)。

作者:宁洪/贾丽丽/张元昭 译来源:机械工业出版社|2017-09-28 14:27

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


3.2.2 面向服务的结构(SOA)

SOA | 一种以业务为中心构造应用的软件结构,它用已发布的一组服务来实现业务过程,服务的粒度与消费者有关。这些服务无论是被使用、被发布和被发现,还是从某个具体实现中被抽取出来,都采用基于单一标准形式的界面。

在今天这样一个IT给了企业从未有过的机会,而技术本身又在不断发展的时代,灵活性被认为是企业的关键需求。可重用性被看作软件开发的主要目标,因而面向对象范型被广泛接受:面向对象的程序设计过程可视为确定一组互操作的对象,而不是像传统编程那样确定一组需计算的任务。在OOP中,每个对象都能接收消息、处理数据、传送消息给其他对象。在传统的IT结构中,各个业务处理活动、应用和数据都各自为政,像一口口矗立的发射井,用户不得不在这些网络、应用和数据库中导航以完成整个业务处理活动链。而且,每个独立的发射井都要消耗大量的经费,并需耗时维护。图3-10a展示了按这种结构组织的三个过程,即服务调度、订单处理和账户管理,每个过程都涉及若干数据库。很明显,在这些活动中有一些公共的服务,每个过程都会用到它们。试想,如果企业的需求发生变化,或者出现新的商机,由于这些过程之间缺乏独立性,就很难修改某个过程以适应发生的变动。

SOA正是为解决这个问题而提出的,它设计了一组松散耦合的自治服务,通过组合它们来提供灵活、复杂的业务过程和应用。图3-10b说明了如何采用SOA重构同一个业务过程。

因此,服务的本质区别在于,服务的提供独立于使用这个服务的应用。服务提供者可开发特定的服务,并提供给分布在不同组织机构内的用户使用。而构建应用就是通过标准程序设计语言或专用的服务编排语言(如BPEL,Business Process Execution Language)将这些来自不同提供者的服务链接到一起。

为SOA设计的Web服务不同于其他Web服务之处在于,它们通常须遵守若干约定。下面是一组公共的SOA守则,它提供了设计SOA专用Web服务的方法。

松耦合:服务之间的交互应设计为松耦合的。

重用:凡存在潜在重用性的逻辑都应设计为单独的服务。

契约:服务附着一个通信契约,该契约定义信息交换和由一份或多份服务描述文档指定的任何附加的服务描述信息。

抽象:除了在服务契约中描述的内容,服务对外隐藏其内部逻辑。

可组合性:服务可与其他服务组合以构成不同粒度的业务逻辑,从而提供可重用性和不同的抽象层次。

自治:一个服务不需依赖其他服务就能控制其封装的逻辑。

无状态:服务不应要求维护状态信息,否则影响其松耦合特性。

可发现性:服务应设计成对外可描述的,使得通过合适的发现机制即可发现和访问服务。

注意,SOA并不局限于Web服务,亦可用于其他技术范畴。SOA进一步的讨论已超出本书的范围,感兴趣的读者可参考列在书后的有关本章的读物。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Tomcat与Java Web开发技术详解

本书详细介绍了在最新Tomcat 5版本上开发Java Web应用的各种技术。主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊