早期的分布计算中,两个分布式程序之间的通信在原始物理网络协议的基础上直接实现。
编程人员必须处理物理网络的细节。通信中间件的出现,封装了低级通信机制的技术,对开发人员隐藏了通信技术库的细节。
按照时间出现的先后顺序分别出现了以下三种通信中间件。
1、 RPC(远程过程调用)
RPC将对远程函数的调用就如同对本地函数的调用一样。大多数RPC实现都基于同步式请求-应答协议。
通信步骤:
客户应用程序->客户占位程序->rpc库->(网络协议)->rpc库->服务端占位程序->服务端应用程序
2、 分布式对象
分布式对象建立在rpc之上。由orb(对象请求代理)支持。Orb管理与可能的远程对象通信和数据交换。Orb基于互操作对象应用的概念,允许通过对象工厂和其他辅助对象,方便地远程创建,定位,调用和删除对象。
通信步骤:
客户应用程序->客户代理->orb->网络协->orb->服务器架构->服务器应用程序
-----------------------------------------------------------------------------------------------
创建、定位、删除、调用
Orb实现技术有corba,dcom,rmi。
缺点:A、同步通信,客户发出调用后,必须等待服务对象完成处理并且返回结果才能继续执行
B、客户和服务对象的生命周期紧密耦合,客户进程和服务对象进程都必须正常运行,如果服务对象崩溃或者网络故障导致客户端请求不可达,客户会接收到异常。
C、点对点通信,客户一次调用只能发送给某个单独的目标对象。
3、 MOM(面向消息的中间件)
Mom解决了以上中间件的缺点,常见的mom都是基于消息队列实现的。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候讲消息发送给接收者。消息队列是客户应用程序和服务器应用程序的中介。已有的Mom系统包括IBM的Mqseries,Microsoft的MSMQ和BEA的MessageQ
发布者---- ----- 订阅者
消息队列
发布者---- ----- 订阅者
发布订阅模型使得消息发布给多个订阅者。
虽然中间件技术解决了系统之间的通信问题。但是由于概念,标准不统一,产品过多。却产生了副作用。Xml技术的出现很好的解决了这个问题。Xml是独立于中间件的格式,可以在不同应用程序之间交换数据和文档。Xml不与特定技术或者中间件标准绑定,作为一种特殊格式来处理各个不兼容中间件平台的数据。基于xml的webservice在以soap为消息传输格式的情况下诞生了。Soap就是webservice的标准通信协议,是标准化的xml格式传输消息。这样便于大家使用同一个格式,同一个标准来对话。Web service实现了服务接口的传输和调用的标准化,服务接口和服务实现的分离,以及web服务组件的可重用性。
SOA和webservice的区别
SOA是一个组件模型,他将应用程序的不同功能单元(服务)通过这些服务之间定义良好的接口和契约联系起来。SOA整合发布平台将完全无关的平台所提供的各种服务整合起来发布给外界,客户端不知道真正的服务发布者是谁。Webservice只是实现soa的一种途径。Webservice服务接口需要绑定具体实现的服务组件来实现服务,并且对具体的服务实现完成了封装,他本身知道服务是如何实现的,客户端调用webservice组件时,需要知道webservice的具体位置和传输协议。但是soa架构平台只和服务接口进行绑定,实现了服务接口的透明化,服务位置的透明化,服务传输协议的透明化。Soa本身也不知道服务具体是如何实现的。SOA实现了更高程度的抽象。
分享到:
相关推荐
理解并掌握WebService、SOA和ESB对于构建可扩展、灵活的企业级系统至关重要。开发者需要了解XML、HTTP/HTTPS、SCHEMA/DTD等相关基础,才能有效地设计和实现这些服务。通过使用这些技术和工具,企业能够构建出适应...
了解SOA和Web Service的区别与联系,以及它们在实际应用中的角色,有助于开发者构建高效、可扩展的分布式系统。通过深入研究提供的PDF文档和PPT,可以更全面地掌握这两者的核心概念、工作原理以及在实际项目中的实施...
在实验中,"SOA与WebService技术实验资料包+书pdf"可能包含了关于如何设计、实现和测试SOA服务以及WebService的详细步骤。这些资料可能涵盖了以下主题: 1. **服务设计原则**:解释如何定义服务边界,确保服务的...
SOA(面向服务的架构)是一种软件设计方法,它将应用程序的不同功能单元(即服务)分开,通过网络使这些服务可以独立地被调用和组合,以满足业务需求。Web服务是实现SOA的一种技术手段,它使用开放标准(如HTTP、XML...
课程中的“20050812pm--SOA & Webservice 系列课程(1):The Essentials of Service Orientation.pdf”可能包含以下内容: 1. **服务导向的基础**:介绍服务导向的概念,解释服务的特性,如自治、可发现性、互操作性...
SOA定义了如何组织和设计服务,而Web服务则提供了具体的实现机制。在实际应用中,Web服务经常作为SOA架构中的服务实现方式出现。 综上所述,SOA与Web服务是现代软件开发中非常重要的概念和技术。通过对这些知识点的...
包含了广工soa和webservice的四次实验源代码以及四次实验的报告,如创建Web Service,编写Web Service的客户端程序,对SOAP消息包的操作,基于Jersey框架创建RESTful服务端和客户端
在提供的PDF文件《20050826am--SOA & Webservice系列课程 (2):SOA的模式》中,可能涵盖了以下内容: 1. **服务定位模式**:描述如何通过服务注册和发现机制找到服务。 2. **服务代理模式**:解释如何通过代理对象来...
**SOA(Service-Oriented Architecture,面向服务架构)与Web Service是IT行业中两种至关重要的技术概念,它们在企业级应用集成和构建可扩展、灵活的系统中扮演着核心角色。本系列课程聚焦于这两者,特别是第三部分...
在当代信息技术领域,服务导向架构(SOA)和网络服务(WebService)是两个核心概念。SOA是一种设计方法,它将业务应用设计为服务的集合,这些服务可以独立地进行更新和重用,而WebService是一种实现SOA的技术。...
【SOA(面向服务的架构)】:SOA是一种组件模型,它将应用程序的不同功能单元称为服务,并通过定义良好的接口和契约联系起来。接口设计独立于实现,允许服务间的松耦合,使得服务可以在不同平台、操作系统和编程语言...
### 测试SOA_WebService工具(SOAPUI_JMeter等)介绍和使用 #### SOAPUI:全面解析与实践 **1.1 介绍** SOAPUI是一款功能强大的工具,主要用于检查、调用、实现WebService以及进行功能、负载和合规性测试。它支持...
【描述】"SOA Using Java in Webservice" 描述了如何利用Java技术和Web服务来实施SOA。Java作为一种广泛使用的编程语言,提供了丰富的库和框架,如JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for ...
下面将详细阐述与标题、描述以及部分内文相关的SOA及Java Web服务的重要概念和技术。 ### 面向服务的架构(SOA) SOA是一种软件设计方法论,它通过定义一组相互连接的服务来构建应用程序。这些服务可以通过网络进行...
在SOA中,服务是长久存在的,并且需要具备高可用性和高稳定性。系统由一组共同完成特定任务的服务构成,允许随着需求变化而进行更新和调整。 SOA设计时面临多项挑战,如如何定义粗粒度的接口,确保数据一致性,管理...
【SOA文档与MYECLIPSE开发WebService详解】 服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计模式,它强调构建独立、可重用的服务,这些服务可以通过网络进行交互,以实现业务流程的集成。SOA的...
"微服务架构SOA分为2种 SOAP即Webservice和REST"这部分内容可能会讨论微服务架构如何采用SOA思想,并对比SOAP Web服务和REST服务在微服务场景下的适用性。微服务架构主张将单个大型应用拆分为多个小型、独立的服务,...