关于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. 备战省赛组队训练赛第六场(UPC)

    传送门 外来博客题解1:戳这里 外来博客题解2:戳这里 CRWG全方位题解:戳这里

  2. VMware下配置Linux IP,解决Linux ping不通

    因为安装好VMware8.0后,把VMware服务都设成手动的了,导致有些功能不好使,费了半天劲, 如果安装Linux时选择DHCP自动分配IP,需要启动服务: VMware DHCP service ...

  3. 解决应用服务器变为集群后的Session问题

    2.2.4.2 解决应用服务器变为集群后的Session问题 先来看一下什么是Session. 用户使用网站的服务,基本上需要浏览器与Web 服务器的多次交互.HTTP 协议本身是无状态的,需要基于H ...

  4. linux PCI 寻址

    每个 PCI 外设有一个总线号, 一个设备号, 一个功能号标识. PCI 规范允许单个系统占 用多达 256 个总线, 但是因为 256 个总线对许多大系统是不够的, Linux 现在支持 PCI 域 ...

  5. CSS---cursor 鼠标指针光标样式(形状)

    url 需使用的自定义光标的 URL. 注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标. default 默认光标(通常是一个箭头) auto 默认.浏览器设置的光标 ...

  6. 2018-8-10-win10-uwp-按下等待按钮

    title author date CreateTime categories win10 uwp 按下等待按钮 lindexi 2018-08-10 19:16:50 +0800 2018-2-13 ...

  7. SPOJ Another Longest Increasing Subsequence Problem 三维最长链

    SPOJ Another Longest Increasing Subsequence Problem 传送门:https://www.spoj.com/problems/LIS2/en/ 题意: 给 ...

  8. Qt和c/c++connect函数冲突解决方法

    在使用c/c++的connect函数时在前面写::connect()这样就可以解决了

  9. codefoce 782c

    好久没有更新了,特地来水一水 简单的涂色问题,大佬说基本都是贪心 #include<cstdio> #include<iostream> #include<vector& ...

  10. 20191114-2 Beta阶段事后诸葛亮会议

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10005 组长组“多彩夕阳”项目beta阶段诸葛亮会议 设想和目标 1.我 ...