SOA



描述:
1、SOA-面向服务的架构,可以说是一种架构风格,一种IT系统咨询和建设的方法论,也可以说是一种新的商业模式,SOA核心从SOA定义可以看到包括两个方面内容,一个是抽象出服务,这些服务满足离散,松耦合,可复用,自治,无状态等基本特征,一个是服务可以灵活的组装和编排,满足流程整合和业务变化的需要。所以SOA是一个很宽泛的概念,只要满足上面两条,实施思路是符合上面两条都是SOA的思路。

2、ESB-企业服务总线,是SOA技术架构落地的一个基本部件,现在我们说的SOA集成平台基本都需要有ESB组件,ESB最基本功能即是实现点对点集成到总线式集成的转换,在这个过程中实现了消息协议的转换和适配,数据传输,数据转换和映射,路由等基本功能。ESB发展从原有的EAI以消息中间件为核心转化到现在的以服务为核心,但是仍然支持消息转换和接入。

3、Web-Service是一种技术方面的标准,真正的跨语言,跨平台,提供了标准的服务定义,服务注册,服务接入和访问的方式。在讲SOA时候我们会谈到需要实现操作方法和操作数据的解耦,web service可以比较好的做到这一点,包括我们用wsdl进行方法层面的定义,用xsd进行传输数据的定义。但是Web-Service和SOA架构风格没有直接关系,Web-Service只是一种实现方法,不用Web-Service也可以实现SOA架构风格,这一点必须明确。否则一谈到SOA就简单理解为web service就犯大错误了。

4、xfire,cxf,axis是webservice的具体实现框架,可以直接使用。直接部署到应用服务器上即可(tomcat、weblogic、webpherer、jetty等------>基础就是servlet容器)

Axis2框架和CXF框架,不管是服务提供方还是服务消费方,都建议选择CXF框架,axis框架不管是老版本,还是最新的版本,总是存在兼容性方面的各种问题,这个我们在实践中遇到过很多,现在已经只推荐使用CXF框架。

5、rest:直接实现了SOA,它基于HTTP协议,是一种明确构建在客户端/服务端体系结构上的一种风格。特征如下:
1)、网络上的资源都被抽象为资源,这些资源都具有唯一的统一资源标识符(URI:Uniform Resource Identiter),这些资      源都是自我们描述的。这些资源使用HTTP内容标头类型指定。如:XML、JSON、HTML、PNG等。
2)、服务的使用者通过HTTP协议的标准动作(Get、Put、Post、Delete)通过统一的接口对资源进行操作。
3)、对资源进行的操作不会改变它的URI。
4)、客户端、服务端之间的交互是没有状态的。由于这种无状态行,服务端不需要为每个客户端维护Context

rest与webservice的区别:

1、REST风格下的,只有一种协议,那就是HTTP。webservice就和多种协议了。如:TCP、HTTP、MSMQ等多种协议

2、使用方式上的不同。REST只要客户端能够模拟HTTP请求,通过标准的HTTP动作,都可以进行访问。它使用的    是HTTPChannel管道,而webservice使用的管道有HTTPChannel、TcpChannel、RPC等多种。

3、REST寄宿时,虽然可以选择多种寄宿方式,但必须有应用服务器的支持。



soa是服务对服务的,web service是服务对客户端的. 

都提供服务。 
服务接口都是基于开发的。 
服务接口和服务的具体实现都是分离的。 
Web Service服务接口需要绑定具体实现服务的服务组件来实现服务,它对具体的服务实现完成了封装,实现了服务的透明化,客户端不需要知道服务是如何实现的,但是Web Service组件本身是知道服务是如何实现的, 

另外客户端调用Web Service组件时,需要知道Web Service的具体位置和传输协议,这些都会造成一定的不灵活性,它只是实现了一定程度上的抽象。 
SOA架构只和服务接口进行绑定,对服务接口实现了封装,实现了服务接口的透明化,服务位置的透明化,服务传输协议的透明化。SOA本身也不知道服务具体是如何实现的。当客户端通过SOA调用服务时,不需要知道真正的服务提供者是谁,具体的服务位置在哪里和具体的传输协议是什么。SOA实现了最高程度上的抽象化,为实现具有最高灵活性的服务建立了架构基础。 
SOA架构的要点: 
SOA架构所提供的服务之间是松散耦合的。 
SOA架构应该按更接近于实际业务本身的粗粒度的角度来对服务进行划分,发布服务接口方法。这就要求设计和开发人员直接从业务的角度来构建SOA所提供的服务,而不仅仅从模块和技术的角度来构建SOA服务。 
SOA架构中的所有服务的具体实现、位置和传输协议对调用者来说都是透明的。

先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构,既然说是一种架构的话,所以一般认为 SOA 是包含了运行环境,编程模型,架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命周期。而在 SOA 的架构风格中,服务是最核心的抽象手段。SOA 中的服务是构建在一些列基于开放标准的基础之上的,

Web 服务定义了如何在异构系统之间实现通信的标准化方法,从而就使得 Web 服务可以跨越运行平台和实现语言,同时也使得 Web 服务成为了实现 SOA 中服务的主要技术。 

基于SOA的解决方案,努力使经营目标而建立企业的质量体系。SOA架构是五层水平:

    1. 用户界面层–这些GUI的最终用户或应用程序访问的应用程序/服务接口。
    2. 业务流程层–这些精心设计的代表在应用方面的业务用例服务。
    3. 服务层–服务合并在一起,为整个企业提供实时服务。
    4. 服务组件–用来建造服务的组件,如功能库和技术库,技术接口等。
    5. 操作系统–这层包含数据模型,企业数据仓库,技术平台等。

 

维基百科解释:SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作,例如典型的通过网络协议。因此SOA是独立于任何厂商、产品与技术的。

SOA作为一种架构依赖于服务的方向,它的基本设计原理是:服务提供了一个简单的接口,抽象了底层的复杂性,然后用户可以访问独立的服务,而不需要去了解服务底层平台实现。

正因为SOA架构实现不依赖于技术,因此能够被各种不同的技术实现。

例如:
SOAPRPC
REST
DCOM
CORBA
OPC-UA
Web services
DDS
Java RMI
WCF (Microsoft's implementation of web services now forms a part of WCF)
Apache Thrift
SORCER
因此REST、SOAP、RPC、RMI、DCOM等都是SOA的一种实现而已。

 


  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值