面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

  面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML标准通用标记语言的子集)/Web Service技术之后的自然延伸。SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。SOA系统是一种企业通用性架构。

  案例分析:描述了如何使用“面向服务的体系结构中的服务创建场景”实现模式来解决与帐户开立项目案例研究相关的业务和 IT 挑战。

  1,使用外部服务

计划在业务流程中使用此外部服务。更新 ESB服务注册中心,将一个入口添加到此外部服务,然后这项服务就可以使用了。还需要更新服务注册中心,以便包含该服务的元数据。ESB 将有效地虚拟化该服务。当一个服务使用者向 ESB 发送请求时,该服务使用者将得到一个回应。必要时,ESB 可以在运行时决定是否使用备用提供商。当备用服务具有不同的消息 schema 时,ESB 可以将该请求转换为所需的 schema,代表使用者发出请求,并将该响应转换回用户所需的形式。整个流程对请求者应用程序(如业务流程)是透明的。

  2,创建新服务

使用 Rational Software Architect 中的工具从 WSDL 中生成 EJB™ 代码来创建新服务。还将生成映射代码以解析 SOAP 请求消息,因此,EJB 可以看到 Java 形式的消息并在 SOAP 中生成从 Java 返回的响应消息。开发人员无需 XML 知识就可创建服务。具体的工作(如查询记帐)是标准的 Java 编程。可以使用 Web 服务向导来生成简单的测试应用程序来实验该服务。

  3,将现有应用程序作为服务直接公开

许多现有应用程序平台和企业信息系统提供了将现有应用程序功能作为服务直接公开以供重用的能力。此方法一般很少需要或根本不需要编程,这就极大地减少了开发与测试的时间与成本。即使那些对现有应用程序或企业信息系统(如 CICS)不太懂或者根本不懂的开发人员也可以利用向导轻松地将现有的应用程序功能作为服务公开。

  4,将现有应用程序作为服务间接公开

适配器和连接器提供了间接访问各种平台上的应用程序的功能,如 z/OS® 上的企业信息系统(例如,CICS、IMS 和 SAP)。该适配器或连接器提供一个 Java API,从而将开发人员屏蔽开,他们无需了解后端应用程序。通过将该适配器或连接器的 Java 代码作为服务包装起来,可以将该应用程序功能作为服务公开和使用以及供重用。此实现模式称为间接公开模式。

  5,使 WebSphere Message Broker 流支持服务

WebSphere Message Broker 流已经存在,支持服务是作为服务重用的快速、直接的方法。

当需要转换消息和传输协议以及需要整合消息数据时,应考虑使新的 WebSphere Message Broker 流支持服务。WebSphere Message Broker 流提供了可供业务服务组合使用的诸如安全性和审核之类的基础结构服务。WebSphere Message Broker 使用的 JMS 和 WebSphere MQ 是进行可靠消息传递的综合性行业标准,同时还是一种广泛采用的、包括 IMS 连接性在内的业务到业务的集成技术。提供一个耦合了中介的服务实现。利用 WebSphere MQ 进行基本的消息传递和 Web 服务流动。

  6,使 IMS 事务支持服务

IMS TM 资源适配器使用 J2EE Connector Architecture (JCA)标准进行消息传递,使此选项成为最广泛采用的 IMS 连接选项,且具有当今最高的服务质量。提供一个耦合了中介的服务实现。如果客户使用 WebSphere Application Server 创建中间层组件,则最佳集成选项一般是使用 IMS TM 资源适配器的 J2C。

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

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

    关于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. UIScrollView滚动时隐藏底部导航栏问题

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView { NSLog(@"開始滚动"); int currentPostio ...

  2. Java:Socket通信

    Socket通常也称作"套接字".用于描写叙述IP地址和port,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ServerS ...

  3. Unix网络编程 高级IO套接字设置超时

    我们知道.对于一个套接字的读写(read/write)操作默认是堵塞的.假设当前套接字还不可读/写,那么这个操作会一直堵塞下去,这样对于一个须要高性能的server来说,是不能接受的.所以,我们能够在 ...

  4. 学习笔记二十三——字符函数库cctype【转】

    本文转载自: 字符函数库cctype 在头文件cctype(ctype.h)中定义了一些函数原型,可以简化输入确定字符是否为大写字母.数字.标点符号等工作. 例如: 如果ch是一个字母,则isalph ...

  5. Linux Framebuffer 驱动框架之一概念介绍及LCD硬件原理【转】

    本文转载自:http://blog.csdn.net/liuxd3000/article/details/17464779 一.基本概念 帧缓冲(Framebuffer)是Linux系统为显示设备提供 ...

  6. C++<iomanip>控制符

    C++<iomanip>控制符 c++ cout 输出格式 在c++程序里面经常见到下面的头文件 #include <iomanip> io代表输入输出,manip是manip ...

  7. html5 拖放事件

    1.设置元素可拖拽属性:draggable true表示可拖拽. false表示不可拖拽. auto默认值,img和带href属性的a标签则表示可拖拽,其他标签表示不可被拖拽. 其他值表示不可拖拽. ...

  8. Comet反向ajax技术实现客服聊天系统

    说明:Comet反向Ajax是在看了燕十八老师的视频以后,结合他讲解的例子,自己用ajax+java实现了一遍.在这里把代码贴出来,以供大家学习.同时,ajax轮询技术也可以用在消息推送的功能中,下次 ...

  9. Android Gradle 学习笔记(七):Android Gradle 插件

    我们知道Android Gradle其实就是一个Gradle的一个第三方插件,它是由Google的Android团队开发的,基于Gradle构建的,和Android Studio完美搭配.相比于旧的构 ...

  10. C#中通过js实现个人用户和非个人用户的登陆

    实现用户的登录功能,这里举一个个人和非个人用户的登录的例子 前台代码: <ul class="login_list clearfix"> <li> < ...