关于SOA架构设计的案例分析

  面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。

  SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、 XML( 标准通用标记语言的子集)/Web Service技术之后的自然延伸。

  SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。

使用SOA架构的主要优势:

一,SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。

二,SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。

三, SOA具有低耦合性特点,业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。

四, SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。

五, SOA的实施可能并不具有成本显著性。这要分三种情况加以讨论:

(1) 当企业 从零开始构建业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。

(2) 当企业业务发展或发生企业重组等变化而原有系统不能满足需要,而需要重构业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。

(3) 当企业业务发生缓慢变化并可预见到将来需要重构业务系统时,由于可以按模块分阶段逐步实施SOA以适应变化的需要,这样企业不需一下投入一大笔经费进行系统改造,而是根据企业业务发展情况和资金情况逐步投入,缓解了信息投入的压力。

对于Web服务,目前金蝶中间件通过最新企业级开发规范JavaEE5.0的Apusic应用服务器增强了Web服务功能并且使其支持简单化。这些是:基于XML的Web服务的JavaAPI(JAX-WS)2.0版、XML绑定的Java架构(JAXB)2.0版、Java平台的Web服务元数据2.0版,以及包含用于JavaAPI附件的SOAP1.3版。其中,JAX-WS2.0能够建立与Web规模相符的、更加松散耦合的Web服务,是一项重要的以SOA为中心的新方案。同时,对JAXB2.0版本的规范,进行了很重要的改善,使得数据绑定的质量更高,可以更好符合SOA的思想,这也构成了ApusicSOA解决方案的基石。

如图所示,金蝶ApusicSOA解决方案是一个应用框架,它允许用户将自己的业务组件以粗颗粒度的服务形式暴露出来,这种服务是标准的、自描述的,不受技术架构和平台的限制;同时,还允许用户对这些服务进行自由组装,从而形成更具个性化的、便于集成的应用系统。简而言之,ApusicSOA解决方案有效解决了业务系统的架构问题,因此,基于ApusicSOA构建业务系统的用户,不再关心系统的架构问题,而只需聚焦于业务组件本身的业务逻辑。ApusicSOA解决方案基于Apusic应用服务器和ApusicMQ消息中间件,包括门户(Portal)、企业服务总线(ESB)、集成组件、开发工具等组成部分。

  Apusic应用程序开发框架 (Apusic OperaMasks)、ESB、ApusicStudio开发工具是ApusicSOA解决方案的开发组件。这些组件共同组成了一个全面集成的服务环境,可用于开发、组合服务并将其编排至业务流程中,用户可从数种不同类型的用户界面中(包括桌面客户端、浏览器、移动设备和Telnet设备)部署、注册和使用这些业务流程。而ApusicOperaMasks是一种模型驱动的SOA框架,它能够自动化地管理业务和数据服务,并提供了一个标准的、基于JSR227的数据绑定和服务绑定层,该层可以和流程、页面流以及服务调用一起使用。ApusicOperaMasks还实施了SOA设计实践,并使得用户界面和服务本身一样松散耦合。

  而ESB支持对关系数据和 XML 数据的访问,该组件为简化对象到关系和对象到XML映射提供了可视化的映射工具,可以从面向服务的应用程序的Web界面中调用这些服务。Apusic应用服务器对WSIF绑定的支持,允许将Java、EJB、Java消息服务(JMS)和通过Java Connector Architecture (JCA)适配器连接的企业应用程序发布为可本地调用的服务。其对EJB3.0的支持,简化了后端业务逻辑和持久性映射方面的特性,可以生成EJB3.0组件,属性编辑器支持业务方法的增量开发和映射批注,并支持将JSF 用于构建Web 应用程序,从而实现用户界面。

  这样,基于JSF的Web 应用程序、基于业务规则的 BPEL 流程管理器BPM、ApusicOperaMasks和ESB共同提供了一个全面的集成服务环境和框架,从而使开发人员能够构建模型驱动的应用程序和业务流程;然后,可将它们作为应用程序、服务或者业务流程部署和注册到ApusicSOA 解决方案组件中。

关于SOA架构设计的案例分析的更多相关文章

  1. SOA架构设计的案例分析

    面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台. ...

  2. MyBatis架构设计及源代码分析系列(一):MyBatis架构

    如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBa ...

  3. dubbo源码解析五 --- 集群容错架构设计与原理分析

    欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 博客园 Dubbo 入门之二 --- 项目结构解析 博客园 Dubbo 源码分析系列之 ...

  4. 老徐FrankXuLei 受邀为花旗银行讲授《微软WCF服务分布式开发与SOA架构设计课程》

    老徐FrankXuLei 受邀为花旗银行上海研发中心讲授<微软WCF服务分布式开发与SOA架构设计课程> 受邀为花旗银行上海研发中心讲授<微软WCF服务分布式开发与SOA架构设计课程 ...

  5. 《深入理解mybatis原理1》 MyBatis的架构设计以及实例分析

    <深入理解mybatis原理> MyBatis的架构设计以及实例分析 MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单.优雅.本文主要讲述MyBatis的架构 ...

  6. SOA架构设计和相关案例分析

    一.SOA概念 1.定义: SOA,是一个组件模型,面向服务的体系架构,它将应用程序的不同服务通过这些服务之间定义良好的接口和契约联系起来,不涉及底层编程接口和通讯模型.服务层是SOA的基础,可以直接 ...

  7. 企业SOA架构设计理论

    SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...

  8. SOA架构设计经验分享—架构、职责、数据一致性

    阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...

  9. SOA架构设计(转发)

    阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...

随机推荐

  1. The Preliminary Contest for ICPC Asia Nanjing 2019ICPC南京网络赛

    B.super_log (欧拉降幂) •题意 定一个一个运算log*,迭代表达式为 给定一个a,b计算直到迭代结果>=b时,最小的x,输出对m取余后的值 •思路 $log*_{a}(1)=1+l ...

  2. 驳“C语言已经死了”

    http://blog.csdn.net/xushiweizh/article/details/1476422

  3. Java数据库操作学习

    JDBC是java和数据库的连接,是一种规范,提供java程序与数据库的连接接口,使用户不用在意具体的数据库.JDBC类型:类型1-JDBC-ODBC桥类型2-本地API驱动类型3-网络协议驱动类型4 ...

  4. 十二、格式化I/O

    1.fprintf 表头文件 #include<stdio.h> 定义函数 int fprintf(FILE * stream, const char * format,.......); ...

  5. MyBatis整合Spring MVC(易百教程)

    MyBatis是ibatis的升级版,作为hibernate的老对手,它是一个可以自定义SQL.存储过程和高级映射的持久层框架.与Hibernate 的主要区别就是 Mybatis 是半自动化的,而 ...

  6. python OrderedDict

    15年16年接触python时候,还不知道这个函数,只知道dict的无序,造成了一些麻烦 今天view 代码,发现了 OrderedDict() 在python2.7中比较吃内存 pop(获取指定ke ...

  7. lambda应用

    def test(a, b, func): result = func(a, b) print(result) test(10, 15, lambda x, y: x + y) #coding=utf ...

  8. 日志管理-log4j与slf4j的使用

    一.概述 1.log4j: Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Sy ...

  9. vue学习笔记(六)表单输入绑定

    前言 在上一章vue学习笔记(四)事件处理器这一篇博客的内容中,我们已经了解vue是如何绑定事件的,而本篇博客主要讲解的是vue中表单输入的绑定,通常我们自己提交信息的时候都是通过表单将信息到服务器的 ...

  10. Alpha阶段中间产物提交入口

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9865 git地址:https://e.coding.net/Eustia ...