在 SOA 系统中不同的功能模块可以被分为7层:
第1层就是系统已经存在的程序资源,例如ERP或者CRM系统等。
第2层就是组件层,在这一层中我们用不同的组件把底层系统的功能封装起来。
第3层就是 SOA 系统中最重要的服务层,在这层中我们要用底层功能组件来构建我们所需要的不同功能的服务。总的来说,SOA 中的服务可以被映射成具体系统中的任何功能模块,但是从功能性方面可以大致划分为以下三种类型:(1)商业服务(business service) 或者是商业过程(business process)。这一类的服务是一个企业可以暴露给外部用户或者合作伙伴使用的服务。比如说提交销售订单,产品信息查询,库存信息查询。(2)商业功能服务(business function service), 这类服务会完成一些具体的商业操作,也会被更上层的商业服务调用,不过大多数情况下这类服务不会暴露给外部用户直接调用,比如说检索用户帐户信息,存储用户信息等。(3)技术功能服务(technical function service),这类服务主要完成一些底层的技术功能,比如说日志服务以及安全服务等。
在服务层之上的第4层就是商业流程层,在这一层中我们利用已经封装好的各种服务来构建商业系统中的商业流程。
在商业流程层之上的就是第5层表示层了,我们利用表示层来向用户提供用户接口服务,这一层可以用基于portal的系统来构建。以上这5层都需要有一个集成的环境来支持它们的运行,
第6层中的企业服务总线(ESB)提供了这个功能。
第7层主要为整个 SOA 系统提供一些辅助的功能,例如服务质量管理,安全管理这一类的辅助功能。
分层是自下而上的,但是我们在具体的实践环节是怎么样的呢?记得在学习计算机网络这门课程的时候,称为自顶向下实现计算机网络。也就大概从那时起,自上而下,自下而上或两者兼有成了心中一种分析问题的方法。也就是在soa的实现中,我们可以从分析商业模式起,再分析服务,到组件。而根据现有的系统资源,又可以倒推过来需要哪些组件与服务。所以我觉得,根据这个分层模型,我们可以灵活应用,好好体会与应用soa这个思想。