关于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. codemirror 行高 字体 行间距 设置

    用的是 react-codemirror2 样式文件: ... .code-mirror{ font-size : 13px; line-height : 150%; } ... 引入样式文件: .. ...

  2. vue-learning:31 - component - 组件间通信的6种方法

    vue组件间通信的6种方法 父子组件通信 prop / $emit 嵌套组件 $attrs / $liteners 后代组件通信 provide / inject 组件实例引用 $root / $pa ...

  3. CF1209

    CF1209 A B 水题不管 C 因为要求最终整个序列是要单调的 所以我们就考虑枚举断点$x$ 之后把$<x$的数放到第一个集合 把$> x$的数放到第二个集合 至于$=x$的数 他能放 ...

  4. json文件生成

    // import Translate from 'translate-components' /* * 匹配所有汉字RegExp: [\u4e00-\u9fa5] [\u4E00-\u9FA5]|[ ...

  5. 一目了然 | 数据库实例性能调优利器:Performance Insights

    Performance Insights是什么 阿里云RDS Performance Insights是RDS CloudDBA产品一项专注于用户数据库实例性能调优.负载监控和关联分析的利器,以简单直 ...

  6. slim的中间件

    slim中间件的作用简单来说就是过滤数据,request过来的数据要经过中间件才能到达内部,然后内部数据要到达外部的时候,也要经过中间件,正常通过才能到达外部

  7. 22.文本框验证和外部url的调用

    面板可以右键固定到浏览器并且横向纵向都剧中 如果要在图片上进行点击或者其他操作 可以覆盖一个图片热区或者矩形(透明的)充当一个按钮的操作 这个提示的图片是默认隐藏的 通过右上角那个隐藏的勾 文本框右边 ...

  8. springboot 简单邮件发送

    写作原因: 项目接近尾声,需求一变再变,其实技术点从未改变,只是业务逻辑的变更,发送邮件提醒的功能,两个月变更七次.我想把技术点记录下来,这里无关乎业务,只有发送邮件的功能. 邮件发送准备说明: 由于 ...

  9. 基于ambassador实现K8S灰度发布

    为什么需要灰度发布 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式.在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对 ...

  10. $POJ2411\ Mondriaan's\ Dream$ 状压+轮廓线$dp$

    传送门 Sol 首先状压大概是很容易想到的 一般的做法大概就是枚举每种状态然后判断转移 但是这里其实可以轮廓线dp 也就是从上到下,从左到右地放方块 假设我们现在已经放到了$(i,j)$这个位置 那么 ...