关于SOA架构设计的案例分析
关于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架构设计的案例分析的更多相关文章
- SOA架构设计的案例分析
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台. ...
- MyBatis架构设计及源代码分析系列(一):MyBatis架构
如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBa ...
- dubbo源码解析五 --- 集群容错架构设计与原理分析
欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 博客园 Dubbo 入门之二 --- 项目结构解析 博客园 Dubbo 源码分析系列之 ...
- 老徐FrankXuLei 受邀为花旗银行讲授《微软WCF服务分布式开发与SOA架构设计课程》
老徐FrankXuLei 受邀为花旗银行上海研发中心讲授<微软WCF服务分布式开发与SOA架构设计课程> 受邀为花旗银行上海研发中心讲授<微软WCF服务分布式开发与SOA架构设计课程 ...
- 《深入理解mybatis原理1》 MyBatis的架构设计以及实例分析
<深入理解mybatis原理> MyBatis的架构设计以及实例分析 MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单.优雅.本文主要讲述MyBatis的架构 ...
- SOA架构设计和相关案例分析
一.SOA概念 1.定义: SOA,是一个组件模型,面向服务的体系架构,它将应用程序的不同服务通过这些服务之间定义良好的接口和契约联系起来,不涉及底层编程接口和通讯模型.服务层是SOA的基础,可以直接 ...
- 企业SOA架构设计理论
SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...
- SOA架构设计经验分享—架构、职责、数据一致性
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
- SOA架构设计(转发)
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
随机推荐
- 快排java代码
定一个基准位,递归左右两边排序. public void fun(){ int arr[] = {2,3,4,5,6,7,822,3,4,5,8,6,5,4,2,1}; //System.out.pr ...
- Flutter TextField设置默认值默认值和光标位置
主要通过controller 实现,具体代码如下 TextField( //输入键盘类型 keyboardType: TextInputType.text, autofocus: true, deco ...
- 【Linux】查看系统资源及相关信息
查看系统信息: uname -a # 查看Linux内核版本信息 cat /proc/version # 查看内核版本 cat /etc/issue # 查看系统版本 lsb_release -a # ...
- Vue通讯
vue组件通讯 #props传递数据 父->子 //父组件传递数据 <template> <Children :data="msg"></Chi ...
- Visio高级应用部件
标注与公式的应用: 插入标注 怎么让标注与图形建立关联:拖动标注的时候坐下角会出现黄色的点 把标准拖动到形状边的时候让黄点进入形状就是建立了关联 然后标注就会随着形状的移动而移动 而且复制和删除也都是 ...
- 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(二)
开心一刻 一头母牛在吃草,突然一头公牛从远处狂奔而来说:“快跑啊!!楼主来了!” 母牛说:“楼主来了关我屁事啊?” 公牛急忙说:“楼主吹牛逼呀!” 母牛大惊,拔腿就跑,边跑边问:“你是公牛你怕什么啊? ...
- 记一次线上 OOM 和性能优化
大家好,我是鸭血粉丝(大家会亲切的喊我 「阿粉」),是一位喜欢吃鸭血粉丝的程序员,回想起之前线上出现 OOM 的场景,毕竟当时是第一次遇到这么 紧脏 的大事,要好好记录下来. 1 事情回顾 在某次周五 ...
- kotlin + springboot启用elasticsearch搜索
参考自: http://how2j.cn/k/search-engine/search-engine-springboot/1791.html?p=78908 工具版本: elasticsearch ...
- [NLP自然语言处理]谷歌BERT模型深度解析
我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于算法.编程.AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主 ...
- k8s集群---apiserver,controller-manager,scheduler部署
#证书自签名脚本 root@k8s-master: ~/k8s/k8s-cert :: $ cat k8s-cert.sh cat > ca-config.json <<EOF { ...