SOA基础教程介绍

系统架构师-面向服务架构(SOA)全解 按教材的分发,ESB是企业服务总线模式,而UDDI就是服务注册表模式,至于通信及通信格式这些问题,可以采用SOPA+WSDL的方案,这些都不是必须的,都可以根据实际情况调整。顾名思义,它首先是一门语言,这个语言就是用来描述web服务和通信,其实就是很常见的get/post等等方法,http或者https,端口号是多少。交换信息的简单的协议,是一个基于XML的协议。看图说故事,右边的微服务架构,第一眼就看到少了ESB,SOA把系统分为服务,微服务把系统分为微服务,所以微服务=SOA?3. 微服务更倾向于。 阅读详情
  对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(business logic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用。NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。

  SOA有以下特性

  SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。

  SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。

  在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI, Universal Description, Definition, and Integration)是服务登记的标准。

  每项SOA服务都有一个与之相关的服务品质(QoS, quality of service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(译注:可靠消息是指,确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。

  为什么选择SOA?

  不同种类的操作系统,应用软件,系统软件和应用基础结构(application infrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(business processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(application infrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organic business)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。

  如图1的例子所示,一个使用SOA的企业,可以使用一组现有的应用来创建一个供应链复合应用(supply chain composite application),这些现有的应用通过标准接口来提供功能。

  Figure 1. Supply chain application. Click on thumbnail to view full-sized image.

  服务架构

  为了实现SOA,企业需要一个服务架构,图2显示了一个例子:

  Figure 2. A sample service architecture. Click on thumbnail to view full-sized image.

  在图2中, 服务消费者(service consumer)可以通过发送消息来调用服务。这些消息由一个服务总线(service bus)转换后发送给适当的服务实现。这种服务架构可以提供一个业务规则引擎(business rules engine),该引擎容许业务规则被合并在一个服务里或多个服务里。这种架构也提供了一个服务管理基础(service management infrastructure),用来管理服务,类似审核,列表(billing),日志等功能。此外,该架构给企业提供了灵活的业务流程,更好地处理控制请求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影响其他服务的情况下更改某项服务。

  SOA基础结构

  要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。图3所示的是一个典型的SOA基础结构。接下来的章节将逐一讨论该结构的每个部分。

  Figure 3. A typical SOA infrastructure. Click on thumbnail to view full-sized image.

  SOAP, WSDL, UDDI

  WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。

  WS-I Basic Profile

  WS-I Basic Profile,由Web服务互用性组织(Web Services Interoperability Organization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用Basic Profile测试程序来测试服务在不同平台和技术上的互用性。

  J2EE 和 .Net

  尽管J2EE和。NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如 JAXB(Java API for XML Binding),用于将XML文档定位到Java类;JAXR(Java API for XML Registry)用来规范对UDDI注册表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如。NET)的服务互用。

  服务品质

  在企业中,关键任务系统(mission-critical system,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性,可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,quality of services)。与QoS相关的众多规范已经由一些标准化组织(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分将会讨论一些QoS服务和相关标准。

  安全

  Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换, 消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(as Security Assertion Markup Language)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。

可靠

  在典型的SOA 环境中,服务消费者和服务提供者之间会有几种不同的文档在进行交换。具有诸如“仅且仅仅传送一次”( once-and-only-once delivery),“最多传送一次”( at-most-once delivery),“重复消息过滤”(duplicate message elimination),“保证消息传送”(guaranteed message delivery)等特性消息的发送和确认,在关键任务系统(mission-critical systems)中变得十分重要。WS-Reliability 和 WS-ReliableMessaging是两个用来解决此类问题的标准。这些标准现在都由OASIS负责。

  策略

  服务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要求被定义为策略断言(policy assertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。

  控制

  当企业着手于服务架构时,服务可以用来整合数据仓库(silos of data),应用程序,以及组件。整合应用意味着例如异步通信,并行处理,数据转换,以及校正等进程请求必须被标准化。在SOA中,进程是使用一组离散的服务创建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用来控制这些服务的语言。WSBPEL目前也由OASIS负责。

  管理

  随着企业服务的增长,所使用的服务和业务进程的数量也随之增加,一个用来让系统管理员管理所有运行在多相环境下的服务的管理系统就显得尤为重要。WSDM(Web Services for Distributed Management)规定了任何根据WSDM实现的服务都可以由一个WSDM适应(WSDM-compliant)的管理方案来管理。

  其它的qos特性,比如合作方之間的溝通和通訊,多個服務之間的事務處理,都在WS-Coordination 和 WS-Transaction 標準中描述, 這些都是OASIS 的工作。

  SOA 不是Web服务

  在理解SOA和Web服务的关系上,经常发生混淆。根据2003年4月的Gartner报道,Yefim V. Natis就这个问题是这样解释的:“Web服务是技术规范,而SOA是设计原则。特别是Web服务中的WSDL,是一个SOA配套的接口定义标准:这是Web服务和SOA的根本联系。”从本质上来说,SOA是一种架构模式,而Web服务是利用一组标准实现的服务。Web服务是实现SOA的方式之一。用Web服务来实现SOA的好处是你可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的Web服务规范,你会取得更好的通用性。

  SOA的优势

  SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。

  About the author

  Raghu R. Kodali is consulting product manager and SOA evangelist for Oracle Application Server. Kodali leads next-generation SOA initiatives and J2EE feature sets for Oracle Application Server, with particular expertise in EJB, J2EE deployment, Web services, and BPEL. Prior to product management, Kodali held presales and technical marketing positions in Oracle Asia-Pacific, based in Singapore. Prior to Oracle, he worked as software developer with National Computer Systems, Singapore. He holds a master's degree in computer science and is a frequent speaker at technology conferences. Kodali maintains an active blog at Loosely Coupled Corner

 
SOA(面向服务架构)是什么? 现在对SOA理解些了吗?SOA是一种面向服务的架构,基于分布式架构,它将不同业务功能按服务进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。httpshttpshttpshttps。... 阅读详情

相关推荐

汽车soa架构介绍

通过 SOA 架构,可以将车身电子系统的控制和管理抽象为不同的服务,如车门控制服务、车窗控制服务、灯光控制服务、座椅调节服务等。与物联网的融合、智能化和自动化水平的提升、跨品牌和跨平台的合作、软件定义汽车的进一步发展、安全和隐私保护的强化以及云计算和边缘计算的协同应用等趋势,将推动汽车行业向更加智能、高效、安全和个性化的方向发展。通过采用 SOA 架构,汽车制造商和供应商可以实现系统的灵活配置和快速迭代,提高系统的可扩展性和可维护性,同时也便于不同系统之间的集成和协同工作。

汽车软件开发 3244

SOA架构概述--基本概念

SOA架构是一种组件模型,它采用广为接受的标准,将业务功能封装成标准化的服务,通过确定的且与最后实现没有关联的接口进行定义。SOA架构主要有三种实体:service provider(服务提供者)、service requestor(服务使用者)和service register(服务注册中心)。SOA(Service-Oriented Architecture)是一种基于服务的体系结构,它将应用程序的不同功能单元通过标准化的方式组织在一起。这样,各服务组件之间就可以相互访问,从而扩展了服务的组合形式。

weixin_46481662的博客 4476

SOA架构和微服务架构的区别

1.SOA架构和微服务架构的区别 首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。 1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。 2.微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,..

usstmiracle的博客 1万+

SOA架构概述

SOA(Service-Oriented Architecture,面向服务的架构)是一种在计算机环境中设计、开发、部署和管理离散模型的方法。SOA不是一种新鲜事物,它是在企业内部IT系统重复构建以及效率低下的背景下提出的。在SOA模型中,所有的功能都被定义成了独立的服务,所有的服务通过服务总线(ESB)或流程管理器来连接。

u011441473的专栏 1万+

EVM算法的Python实现

EVM(Eulerian Video Magnification,欧拉视频放大或欧拉影像放大)是一种将视频中的微小变化进行放大的算法,正如论文标题所说《Eulerian Video Magnification for Revealing Subtle Changes in the World》,该算法可以将视频中的微小变化转变为肉眼可以

flyingzhao 1万+

ros_control硬件接口实战:从零构建机器人控制框架

本文详细介绍了ros_control硬件接口在机器人控制框架中的核心作用与实践方法。通过解析硬件接口类型、实现标准接口、构建主控制循环及自定义功能扩展,帮助开发者从零构建高效的机器人控制系统,提升硬件与ROS的协同效率。

lstm7chronicler的博客 500

基础教程介绍——什么是SOA

  基础教程介绍——什么是SOA? 作者:- 对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(business logic)或某些单

go2newlife的专栏 905

Qt Tab Widget 实战:如何打造一个可动态增删的标签页管理器(附完整代码)

本文深入探讨了使用Qt框架中的Tab Widget控件构建动态标签页管理器的实战方法。通过分析动态增删的核心挑战,提供了完整的C++代码示例,涵盖信号槽机制、页面生命周期管理、上下文菜单实现以及状态持久化等关键功能,帮助开发者打造高效、用户友好的桌面应用界面。

bb456的博客 1043

基础教程介绍——什么是SOA?

SOA 资源中心为什么采用SOA?面向服务架构(SOA)是让IT更加关注于业务流程而非底层IT基础结构,从而获得竞争优势的更高级别的应用程序开发架构。SOA对需要使用信息技术解决关键业务问题的企业(包括希望减少冗余架构、创建跨客户和员工系统的公共业务接口的企业;需要基于角色和工作流对用户提供个性化信息的业务的企业;希望通过Internet实现跨区销售、升级销售和经由移动设备的访问来提升

funson的专栏 788

手把手教你解决Realsense D455在ROS下IMU数据不输出的问题(附固件降级指南)

本文详细解析了Realsense D455在ROS环境下IMU数据不输出的问题,提供了固件降级和ROS配置的完整解决方案。通过版本兼容性分析和实战操作指南,帮助开发者快速恢复IMU数据流,优化机器人开发体验。

weixin_42531494的博客 372

全局子程序 参数调用

为什么要子程序: 为了实现程序结构化,我们尽量使用不同功能的功能块来实现一些特定的功能, 子程序接口: 使用过程的注意事项,尤其是数组使用时的注意事项 从一个主程序中可以将参数传递到局部或全局子程序和函数中。 怎样传递参数有 2 种方式: 作为 IN 参数 变量值在主程序中保持不变。 这种传递方式也称为“ 值传递 (Call by Value)”。 作为 OUT 参数 子程序读取并更改该值,然后将新值写回到主程序中。 这种传递方式也称为“Call by Reference”。 举例说明 1 DEF MY

Eric_Yang1024的博客 1095

基础教程介绍――什么是SOA?

导读:   对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(business logic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用。NET或J

547

获取iOS设备唯一标识UUID(Swift版)

属性返回的UUID是与应用程序相关联的,也就是说,如果用户卸载并重新安装应用程序,该UUID可能会发生变化。如果您需要一个与设备相关的持久唯一标识符,您可以考虑使用Keychain或其他方法来存储和检索设备标识符。在iOS开发中,我们经常需要获取设备的唯一标识符来进行一些特定的操作,比如设备识别、数据追踪等。在本文中,我将向您展示如何使用Swift编程语言获取iOS设备的唯一标识UUID。通过上述代码,您可以在您的iOS应用程序中轻松获取设备的唯一标识符。属性来获取设备的唯一标识UUID。

BitNetO的博客 1918

1.4 你绝对不能错过的天气查询工具:MCP 标准化接入实战

本文介绍了如何构建一个符合MCP标准的天气查询服务。通过FastMCP框架集成OpenWeatherMap API,实现实时天气、天气预报和历史天气查询功能。文章详细展示了从环境准备、插件设计到控制器实现的完整流程,包括如何定义工具函数、配置路由和中间件。同时讲解了如何将MCP服务封装为LangChain工具并与DeepSeek等大模型集成,还涵盖了缓存、限流等高级特性。该示例演示了如何将任意API标准化为MCP服务,为Agent应用提供统一接口。

yonggeit的博客 3047

基于STM32的多功能旅行箱_329

随着智能硬件技术的不断发展,智能化产品逐渐渗透到日常生活的各个领域。旅行箱作为出行必需的工具,其传统功能已无法满足现代用户的需求,尤其是在安全性、便捷性和智能交互方面。为了解决这一问题,本设计基于STM32单片机开发了一款多功能智能旅行箱,集成了移动防盗报警、语音寻箱、GPS定位、称重检测、手势控制和蓝牙通信等多项功能。通过STM32F103RCT6主控芯片与HC-05蓝牙模块进行通信,结合海凌科V20语音识别模块、ATGM336H-5N GPS模块和HX711称重模块,提供了全方位的智能化体验。

483

有关SOA 的学习材料

有关SOA 的学习材料 SOA from IBM for Business Partners http://www-304.ibm.com/jct09002c/isv/soa/index.html SOA design & development http://www-306.ibm.com/sof...

绝影メ之殇 201

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[SOA介绍]什么是SOA

 [SOA介绍]什么是SOA? Varargs  An introduction to SOA  作者:Raghu R. Kodali  译者:tetsu摘要:在最近的软件发展中,面向服务架构(SOA, service-oriented architecture)成为了时下的热门话题。这篇文章将向大家介绍SOA, 讨论企业为什么需要SOA,什么是SOA, 从核心,平

keen的专栏 4619

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SOA介绍

一、SOA是什么 SOA的全称是Service-Oriented Architecture,面向服务架构。是一种架构,不是一种具体的开发技术。 要真正理解什么是SOA需要从软件开发的技术发展史谈起。 真正的软件开发从开始到现在经历了四个阶段,也可以说成是四代: 1、汇编语言开发 2、面向过程的软件 3、面向对象的组件开发 4、面向服务的架构开发,也是今天要谈论的SOA架构 SOA与前面三代的软...

qq_24095055的博客 800

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【软件定义汽车】SOA框架介绍

软件定义汽车之SOA

u012739527的博客 4623

SOA 的一些介绍

我看很多人没准备参加《SOA与企业级软件系统架构》这一场BOF的讨论。其实这一场讨论不论对开发者,还是项目主管,IT从业人员 都是非常有价值的,下面整理一些SOA的基本信息。欢迎大家参加“SOA与企业级软件系统架构”这一场讨论。下面摘抄自董洵8月2日发表在计算机世界上的文章:拨开SOA的面纱内容简介SOA是英文Service-Oriented Architecture,即服务导

他山之石,可以攻玉 1192

什么是SOA

关于百度百科的解释 我相信很多人跟我一样看的一脸懵逼。 通俗易懂的解释 SOA不是具体的什么技术,而是一种开发项目的思想,这种思想开发的项目有很多好处,更符合现在的互联网系统快速发展的时代。下面举个栗子 设计:比如现我有一个数据库,一个JavaWeb(或者PHP等)的网站客户端,一个安卓app客户端,一个IOS客户端。现在我要给用户提供一个注册账号的功能。 不用SOA的设计思想的实现:JavaWeb里面写一个注册账号的功能,安卓app里面写一个注册账号的功能,IOS同样如此。那么这样的实现有没有

qq_40652202的博客 4778

[SOA介绍]什么是SOA?

 [SOA介绍]什么是SOA? Varargs  An introduction to SOA  作者:Raghu R. Kodali  译者:tetsu摘要:在最近的软件发展中,面向服务架构(SOA, service-oriented architecture)成为了时下的热门话题。这篇文章将向大家介绍SOA, 讨论企业为什么需要SOA,什么是SOA, 从核心,平

XiongLei Programming Blog 553
上一篇: Java图表开发-JFreeChart
下一篇: Tomcat5 DataSource的配置和测试
jefflan
博客等级 码龄21年 2粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值