SOA概念解惑

来源:互联网 发布:泰勒展开 矩阵形式 编辑:程序博客网 时间:2024/06/05 01:13

什么是SOA?

SOA代表了面向服务的架构。SOA是一种使用松耦合的黑盒子服务构建业务应用的体系架构,这些服务可以通过编排连接在一起以实现特定的功能。

 

什么是SOA的服务?

在现实世界中,服务是一种我们花费购买到的一种预期的服务。

例1 (来自真实世界):你去餐馆订餐,您的订单首先进入到柜台,然后在厨房进行食物准备,最后服务员提供的食物。因此,为了实现一个餐厅订购服务,您需要三个逻辑部门/服务协同工作(计帐,厨房和服务员)。在软件世界同样的方法称为业务服务。

所有的服务是自包含的,合乎逻辑。他们就像黑盒子。总之,我们并不需要了解业务服务的内部工作细节。对于外部世界,它只是一个能够使用消息交互的黑盒子。例如在“支付网关”业务服务获得消息“检查信贷”后会给出输出:这个客户的信贷有或没有。对于“订单系统”,“支付网关”的服务是一个黑盒子。

 

服务的主要特点是什么?

A)SOA组件是松耦合的。当我们说松耦合,这意味着每一个服务是自包含单独存在的逻辑。举例来说,我们采取了“支付网关”的服务,并将它附加到不同的系统。

B)SOA服务是黑匣子。在SOA中,服务隐藏有内在的复杂性。他们只使用交互消息,服务接受和发送消息。通过虚拟化一个服务为黑盒子,服务变得更松散的耦合。

C) SOA服务应该是自定义: SOA服务应该能够自己定义。

D) SOA服务维持在一个列表中: SOA服务保持在一个中央存储库。应用程序可以在中央存储库中搜索服务,并调用相应服务。

E) SOA服务可以编排和链接实现一个特定功能:SOA服务可以使用了即插即用的方式。例如,“业务流程”中有两个服务“安全服务”和“订单处理服务”。从它的业务流程可以实现两种类型:一,您可以先检查用户,然后处理订单,或反之亦然。是的,你猜对了,使用SOA可以松散耦合的方式管理服务之间的工作流。

 什么是合同,地址和绑定?

这是三个SOA的标准术语。每个服务都必须公开一个或多个端点,以便让该服务提供给客户端调用。

  • 合同是两方或多方之间的协议。它定义了一种客户端如何与服务通信的协议。从技术上讲,它有描述参数和返回值的方法。
  • 地址表明在哪儿能找到这种服务。地址是一个URL,它指向服务的位置。
  • 绑定是决定这个端点如何可以访问。它决定了如何完成通信。例如,你暴露你的服务,可以使用SOAP over HTTP或通过TCP的BINARY进行访问。因此,对于这些通信介质将被创建两个绑定。

 

什么Web服务的SOA?

SOA是一种思想,它是一个架构理念,Web服务是完成它的技术方法。Web服务是实现SOA首选的标准。在SOA中,我们需要的服务是松耦合的。Web服务进行通信使用的SOAP协议是基于XML的,这是非常松散的耦合。它回答了什么是服务的一部分。 SOA服务应该能够来形容自己。WSDL描述了我们如何可以访问该服务。 SOA服务都位于一个目录: UDDI的描述,从那里我们可以得到Web服务。这其实是SOA注册表的实现。

 

 什么是SOA的主要好处?

SOA有助于建立IT和业务线之间的无缝对接,通过产生更多的IT灵活性,以支持更大的业务灵活性。您的业务流程变化越来越快以及全球剧烈竞争需要SOA能够提供高的灵活性。 SOA能够帮助您更好地重用现有的IT投资和服务。SOA通过定义服务之间良好接口更易于集成。 SOA还提供了业务伙伴,客户和供应商的服务集成到一个企业的业务流程体系结构模型中。这降低了成本,提高了客户满意度。

 

 在一个SOA中如何实现松耦合?

实现松耦合一种策略是使用服务接口(WSDL中为SOAPWeb服务)来限制服务之间的依赖性,对消费者隐藏服务实现。松耦合可以通过实施服务的功能封装以及限制服务接口的实现变化影响来解决。然而,在某些时候,你需要改变接口,也不会影响服务的消费者,除了管理多个安全约束,多种传输,以及其他方面的考虑。

 

你还记得可以用来实现松散耦合的任何模式?

调解Mediation 模式,使用企业服务总线(ESB)也有助于实现这一目标。调解模式带来松耦合的最高水平。它将建立所有层面上消费者和供应商之间的独立性,包括消息格式,消息类型(包括SOAP,REST,XML,二进制)和传输协议(包括HTTP,HTTPS,JMS)。从体系结构上讲,这意味着分离关注消费者和提供者之间的传输,消息类型和消息格式的水平。

 

SOA的服务应该被设计为无状态或有状态?

服务应该是无状态的。它有一个无状态的执行上下文,但它不会有中间状态来等待一个事件或一个回调。状态有关的数据的保留一定不能超出的服务的请求/响应。这是因为状态管理消耗了大量的资源,这可能会影响服务的可重用可伸缩性和可用性。

0 0
原创粉丝点击