废除“竖井”转向“SOA” 为什么要采用SOA
2009-09-02 13:30
260 查看
目前主流的软件项目的架构类似“竖井”,在这个“竖井”中有数据库,中间层、客户端表现层等。每个应用系统的数据库分属在不同的竖井中,当我们的信息化发展到一定程度,已开发和上线运行的系统需要整合或实现数据共享时,我们不得不在竖井中“穿洞”透过不同的“竖井”来访问数据库。一个数据库中的对象发生了变化,对其他系统的影响就变得“不可知”和“不可控”了。
当我们想调用系统的服务时也要突破竖井。如果将企业的IT资源,如:客户端程序、中间层业务处理、支撑平台、数据处理、原始数据和规范数据源,按照分层再通过消息机制将各个应用系统的这个资源都整合在一起,根据每一层不同的功能和作用统一组织在一起。
我们现在使用新的设计思想,SOA是面向服务的体系架构,更确切地说是一种架构的风格;SOA是一种风格和理念,强调的是资源共享和复用、企业架构动态和柔性的组合;SOA通过模块化和开放标准接口设计,使企业实现IT与业务紧密结合,提高企业业务流程的灵活性。
在 SOA 系统中不同的功能模块可以被分为7层:第一层就是系统已经存在的程序资源,例如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 系统提供一些辅助的功能,例如服务质量管理,安全管理这一类的辅助功能。
当我们想调用系统的服务时也要突破竖井。如果将企业的IT资源,如:客户端程序、中间层业务处理、支撑平台、数据处理、原始数据和规范数据源,按照分层再通过消息机制将各个应用系统的这个资源都整合在一起,根据每一层不同的功能和作用统一组织在一起。
我们现在使用新的设计思想,SOA是面向服务的体系架构,更确切地说是一种架构的风格;SOA是一种风格和理念,强调的是资源共享和复用、企业架构动态和柔性的组合;SOA通过模块化和开放标准接口设计,使企业实现IT与业务紧密结合,提高企业业务流程的灵活性。
在 SOA 系统中不同的功能模块可以被分为7层:第一层就是系统已经存在的程序资源,例如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?
- 面向 ESB 的体系结构:一种错误的采用 SOA 的方式
- 我为什么从.NET转向Java
- 为什么我要从 Angular 转向 React
- TCP为什么采用随机初始序列号
- 关于采样率-为什么要采用高达192kHz的采样率?
- TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
- Tim Sweeney解释为什么Unreal Engine 4全面转向C++
- 解释一下为什么数据文件最好采用单字符作为字段分隔符
- Java影响力远超想像——为什么要采用Java平台
- 为什么Hadoop采用64M的分块?
- 为什么使用getRequestDispatcher转向新的地址后网页乱码?
- 并发垃圾收集器(CMS)为什么没有采用标记-整理算法来实现?
- 问:当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?
- Bowery为什么放弃Node.js,转向Go?
- 为什么要采用技术外包
- 说说这篇「我为什么从python转向go
- 为什么希腊字母会常常在数学中采用呢?
- 二进制的计算(计算机为什么采用补码存储数据)
- 为什么MaxCompute采用列式存储?列式存储和行式存储的主要区别在哪