SOA到底是什么?
SOA(Service-Oriented Architecture)的定义是面向服务的架构,就是说将软件按照功能设计成一个个服务,这些服务用标准的方式定义接口、并通过标准的协议进行调用。SOA所定义的接口和调用方式是独立于编程语言和运行平台的,广义上讲SOA可以基于不同的底层技术实现,比如CORBA和Web Services。但CORBA由于过于复杂和臃肿已很少使用,所以目前所说的SOA绝大多数是基于Web Services技术实现。在Web Services的实现方式下,SOA服务的接口用XML进行定义。
在SOA架构下,软件开发从业务流程分析开始,使用组件化业务建模的方法识别和分析各种业务模型,将各种实践融入其中,在这个基础上建立用例,用例直接产生BPEL,这些BPEL则可以被融入一个服务整合框架中,其描述了各种服务的信息,从而把ESB上的各个模块统一起来,形成一个巨大的服务仓。
将中间层再进行抽离,在中间层作一个跨技术架构的元数据和业务逻辑,使之成为跨技术架构的、可长期继承、并不断积累的企业业务库和最宝贵的信息资产,也就是面向服务的组件库,而且这个服务组件库也可以被其它企业复用,且不依赖于任何一种技术架构。夸张一点说,如果所有软件企业都使用SOA架构,那么世界软件业将会发生彻底的改变。显然,这样一个框架不是一种产品,也不仅仅是一种技术,而是一种解决问题的方法论。
SOA可能应用于两个场景:第一种是业务互通互联;第二种是封闭交易系统,即将元数据和业务逻辑抽离,形成可复用。举个例子,在第一种场景中,当不同企业之间的业务需要相互调用,这时就可能采用SOA技术;在第二种场景中,在企业内部需要将系统进行迁移时,利用SOA技术定义的原有数据和业务流程,可以很快完成。
Soap是什么?
SOAP 是Simple Object Access Protocol(简单对象访问协议)的缩写。
SOAP是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议.
对于Soap的理解:
第一步理解:SOAP=HTTP+XML
第二步理解:SOAP把XML的使用代码化为请求和响应参数编码模式,并用HTTP作传输。
SOAP是把成熟的基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起。
第三步理解:具体地讲,一个SOAP实现可以简单地看作遵循SOAP编码规则的HTTP请求和响应。
注意:SOAP 是一个协议,与编程语言无关。实际上,许多语言已经开始支持 SOAP,如:Java,C,C++以及JavaScript。
Soap是什么?
SOAP 是Simple Object Access Protocol(简单对象访问协议)的缩写。
SOAP是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议.
对于Soap的理解:
第一步理解:SOAP=HTTP+XML
第二步理解:SOAP把XML的使用代码化为请求和响应参数编码模式,并用HTTP作传输。
SOAP是把成熟的基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起。
第三步理解:具体地讲,一个SOAP实现可以简单地看作遵循SOAP编码规则的HTTP请求和响应。
注意:SOAP 是一个协议,与编程语言无关。实际上,许多语言已经开始支持 SOAP,如:Java,C,C++以及JavaScript。
Soap的起源?Soap解决的问题?
SOAP最初由微软发起研究,用以解决MTS/COM资源消耗大,不够轻巧等问题,后逐渐被IBM等巨头接纳并加入研究,现已提交W3C,成为Web Service应用传输标准。SOAP技术主要用于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。
SOAP意思是简单对象访问协议(Simple Object Access Protocol)。的确如它的名字一样,SOAP是很简单的。它是一个基于XML的协议,允许程序组件和应用程序彼此使用一种标准的Internet协议--HTTP来通讯。SOAP是一种独立的平台,它不依赖程序语言,它是简单的,弹性的,很容易扩展的。目前,应用程序能够彼此使用一种基于DCOM和CORBA技术的远程过程调用(RPC)来进行相互通讯,但HTTP不被设计为这个目的。RPC在Internet上应用是非常困难的,它们会出现许多兼容性和安全性的问题,因为防火墙和代理服务器通常都会阻断(block)这些类型的流量。应用程序之间最好的通讯方式是通过HTTP协议,因为HTTP是支持所有Internet浏览器和服务器的。基于这个目的,SOAP协议被创建出来。
Soap的主要构成是怎么样的?
Soap的设计目标是:简单性 和 兼容性 。
分布式应用程序和浏览器
研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户应用程序。这当然不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。
传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM。在我看来,结果就是一个发布容易,但开发难度大而且用户界面极其受限的应用程序。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。不信?问问你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面。
关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。
许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都是使用COM或.NET语言写的,并且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM)的形式存放,并由COBOL语言编写的大型机程序访问。而且,目前还有很多商用程序继续在使用C++、Java、Visual Basic和其他各种各样的语言编写。现在,除了最简单的程序之外,所有的应用程序都需要与运行在其他异构平台上的应用程序集成并进行数据交换。这样的任务通常都是由特殊的方法,如文件传输和分析,消息队列,还有仅适用于某些情况的的API,如IBM的"高级程序到程序交流(APPC)"等来完成的。在以前,没有一个应用程序通信标准,是独立于平台、组建模型和编程语言的。
只有通过Web Service,客户端和服务器才能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么。
Web services是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。
Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
Web service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。在传统的分布式系统中,基于界面(interface)的平台提供了一些方法来描述界面、方法和参数(译注:如COM和COBAR中的IDL语言)。同样的,Web service平台也必须提供一种标准来描述Web service,让客户可以得到足够的信息来调用这个Web service。最后,我们还必须有一种方法来对这个Web service进行远程调用。这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种RPC协议还必须与平台和编程语言无关。
组成Web service平台的这三个技术。
XML和XSD
可扩展的标记语言(XML)是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。
XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的。W3C制定的XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web service平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合Web service标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。
WSDL
你会怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web service。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。
SAOP
分享到:
相关推荐
"微服务架构SOA分为2种 SOAP即Webservice和REST"这部分内容可能会讨论微服务架构如何采用SOA思想,并对比SOAP Web服务和REST服务在微服务场景下的适用性。微服务架构主张将单个大型应用拆分为多个小型、独立的服务,...
最近写了一个SOA服务,开始觉得别人拿到我的服务地址,然后直接添加引用就可以使用了,结果"大牛"告知不行。 让我写一个SOAP调用服务的样例,我有点愣了,因为没做过这方面的,于是搞到了一个Demo,然后学习了下。
理解并掌握WebService、SOA和ESB对于构建可扩展、灵活的企业级系统至关重要。开发者需要了解XML、HTTP/HTTPS、SCHEMA/DTD等相关基础,才能有效地设计和实现这些服务。通过使用这些技术和工具,企业能够构建出适应...
在实验中,"SOA与WebService技术实验资料包+书pdf"可能包含了关于如何设计、实现和测试SOA服务以及WebService的详细步骤。这些资料可能涵盖了以下主题: 1. **服务设计原则**:解释如何定义服务边界,确保服务的...
【SOA(面向服务的架构)】:SOA是一种组件模型,它将应用程序的不同功能单元称为服务,并通过定义良好的接口和契约联系起来。接口设计独立于实现,允许服务间的松耦合,使得服务可以在不同平台、操作系统和编程语言...
SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化信息。它允许不同系统间进行远程过程调用,即使它们运行在不同的操作系统或使用不同的编程语言。SOAP消息通常通过...
包含了广工soa和webservice的四次实验源代码以及四次实验的报告,如创建Web Service,编写Web Service的客户端程序,对SOAP消息包的操作,基于Jersey框架创建RESTful服务端和客户端
课程中的“20050812pm--SOA & Webservice 系列课程(1):The Essentials of Service Orientation.pdf”可能包含以下内容: 1. **服务导向的基础**:介绍服务导向的概念,解释服务的特性,如自治、可发现性、互操作性...
### 测试SOA_WebService工具(SOAPUI,JMeter等)介绍和使用 #### SOA Testing 工具介绍 在当今高度互联的世界中,服务导向架构(SOA)已成为企业和组织构建灵活、可扩展和互操作性强的应用程序的重要手段。随着SOA的...
1. **SOAP(Simple Object Access Protocol,简单对象访问协议)**:一种基于XML的消息交换协议,用于在应用程序之间交换信息。 2. **REST(Representational State Transfer,表述性状态转移)**:一种轻量级的设计...
**SOA(Service-Oriented Architecture,面向服务架构)**是一种设计和构建软件系统的方法,它强调通过独立的、可重用的服务来实现业务功能。这些服务之间通过标准的接口进行通信,允许不同系统间的互操作性。SOA的...
在提供的PDF文件《20050826am--SOA & Webservice系列课程 (2):SOA的模式》中,可能涵盖了以下内容: 1. **服务定位模式**:描述如何通过服务注册和发现机制找到服务。 2. **服务代理模式**:解释如何通过代理对象来...
Web服务是实现SOA的一种技术手段,它使用开放标准(如HTTP、XML、SOAP、WSDL和UDDI等)来实现不同应用程序之间跨平台的互操作性。 在IT行业中,应用的构建、现有应用的替换以及维护和增强请求的应对都是面临的主要...
【标题】"CXF-SOAP搭建WebService服务端demo"主要涵盖了使用Apache CXF框架、Spring框架、Maven构建工具以及SOAP协议来创建一个Web服务端的实例。这个过程涉及了多个关键知识点,下面将详细阐述。 【SOAP】:简单...
**REST (Representational State Transfer) WebService 和 SOAP (Simple Object Access Protocol) WebService 是两种不同的 Web Service 技术,它们在 SOA(Service-Oriented Architecture,面向服务架构)领域中...
主要的Web Service技术包括SOAP(Simple Object Access Protocol)用于消息传输,WSDL(Web Services Description Language)用于服务描述,以及UDDI(Universal Description, Discovery, and Integration)用于服务...
文件`rest(一种软件架构风格)_百度百科.url`和`SOA接口的两种常用实现比较:SOAP(WebService) vs REST(GET,POST).url`分别指向了关于REST和SOAP/REST比较的参考资料,它们可以进一步深入理解这两种接口实现的区别...
3. **标准化**:SOA强调使用开放标准和技术,如XML、SOAP、WSDL等,以确保不同服务之间的互操作性。 4. **服务抽象**:服务的实现细节对外部隐藏,只暴露必要的接口供其他服务调用。 ### Java Web服务 Java Web...
【标题】"SOA Using Java in Webservice" 指的是使用Java技术在Web服务中实现面向服务架构(Service-Oriented Architecture, SOA)的一种方法。SOA是一种设计原则,它强调通过独立、可重用的服务来构建分布式系统,...
在当代信息技术领域,服务导向架构(SOA)和网络服务(WebService)是两个核心概念。SOA是一种设计方法,它将业务应用设计为服务的集合,这些服务可以独立地进行更新和重用,而WebService是一种实现SOA的技术。...