SOA构架与三层结构

8 月 20th, 2009 | Posted by | Filed under 架构设计

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.penglixun.com/tech/architecture/soa_three_tier_arch.html

有些东西必须动手做起来才能明白真正的含义,要不然只是空中楼阁。就像我高数反复看书,书上的题一看都能看懂,考试一做就Over,还是要做习题册才能理解,好吧,我穿越了。 

对于SOA,总是停在一个很浮的角度上,做了一些大东西,开始明白SOA真正的含义,对表现层、业务层、持久层的划分也有了更明白的认识,为什么要这么做。

三层结构

持久层将类与数据库绑定在一起,提供一个代理,简单的说就是将数据库中的数据翻译存储到类中,这样到了业务层,类只要关心怎么处理业务流程即可,根本不需要关心类中的数据怎么从数据库获得,数据库也不用考虑怎么配合类,持久层会做好这个事。

业务层只负责处理业务流程,既不关心数据怎么来的,也不关心数据怎么显示,数据由持久层绑定好了,显示由表现层呈现。用例驱动整个业务流程。

表现层只负责把数据呈现出来,不需要关心数据的处理是怎么完成的,只需要把数据从表现层中获取出来,以合理的方式呈现出来即可,同时把交互的消息传达给业务层,业务层接受消息再处理业务。

通过这样的三层分割,系统中最重要的三个部分:数据、处理、显示,就完全的被分割开来,剥离了耦合,实现了内聚,软件工程中的高内聚、低耦合目标就达到了。数据库构架师负责持久层,程序员负责业务层,用户体验师负责表现层,层层分工。

三层结构2

然后SOA,实际上就是把“服务”当做“用户”来对待,一个用户想要进入一个系统,先要注册,然后系统知道了这个用户,给他分配一些资源,给他一些权限等等。

对于服务也是一样,在一个SOA系统中,想要加入一个服务,就把这个服务注册,系统为其分配权限和资源,服务利用这些权限和资源自给运行,处理自己的业务。当系统不需要这个服务的时候,就将其注销,从系统中去掉。这样服务业成为动态的了,跟业务不耦合,SOA核心系统只需要提供服务注册、服务接口、权限及资源分配即可。

但是说起来简单,想要把服务当成一个用户一样来处理,还是需要非常高的水平才能做到的,像我这种小菜鸟就不行。要通过企业服务总线ESB将所有服务连接起来,服务从ESB上获取数据,通过SOAP进行数据交互。

miniSOA

顺便说一句,XML很好很强大!

  1. 玩心无限
    5 月 5th, 201000:36

    SOA是一种系统设计的哲学。
    与技术无关,可以独立于Web Service技术。
    ESB只是SOA结构中的一层。

    [回复]