SOA 服务架构之简介及理解以及面试题

转自:https://www.cnblogs.com/tris/p/6844866.html

转自:https://www.jdon.com/soa/soa-interview.html

总结:

SOA是什么?
SOA(Service-Oriented Architecture),即面向服务的架构。
阿里巴巴的Dubbo是SOA的典型实现。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA代表了面向服务的架构。
SOA是一种使用松耦合的黑盒子服务构建业务应用的体系架构,这些服务可以通过编排连接在一起以实现特定的功能。

服务的SOA的主要特点:
A) SOA组件是松耦合的。当我们说松耦合,这意味着每一个服务是自包含单独存在的逻辑。举例来说,我们采取了“支付网关”的服务,并将它附加到不同的系统。
B) SOA服务是黑匣子。在SOA中,服务隐藏有内在的复杂性。他们只使用交互消息,服务接受和发送消息。通过虚拟化一个服务为黑盒子,服务变得更松散的耦合。
C) SOA服务应该是自定义: SOA服务应该能够自己定义。
D) SOA服务维持在一个列表中: SOA服务保持在一个中央存储库。应用程序可以在中央存储库中搜索服务,并调用相应服务。
E) SOA服务可以编排和链接实现一个特定功能: SOA服务可以使用了即插即用的方式。例如,“业务流程”中有两个服务“安全服务”和“订单处理服务” 。从它的业务流程可以实现两种类型:一,您可以先检查用户,然后处理订单,或反之亦然。是的,你猜对了,使用SOA可以松散耦合的方式管理服务之间的工作流。

原理图:

原文1:

也许你已经深入其中却不知,今天我们拨开云雾见月明,阐明SOA是何方神圣!

SOA

英文:
Service-Oriented Architecture,面向服务的架构。

  • 是一种面向通用集成服务的、松耦合的架构实现方式,是web时代服务发展的产物;
  • 使用"分层"理念,比传统的"观察者"模式更高级且更有优势,主要体现在易扩展性和可灾;
  • 适用于大型复杂业务系统的数据共享。

目前多数企业都在使用SOA架构模式,各个业务层只需将主要精力用于其自己的业务代码,对于核心的服务只需通过简单切明确的接口定义与服务提供方进行交互、通讯等。

下面是使用百度脑图简单画的一个例子,希望对你的理解有所帮助:

其中的服务平台可以用不同语言实现,比如php,python,java等,比较通用的是RESTFUL接口模式,对于user端,只需明确接口定义,既可以使用HTTP/HTTPS进行通讯,理论上是无限量的。

SOA对于客户端来说极大的简化了开发周期。对于一个特殊需求的出现不会措手不及,更不会大动干戈重构底层,开发者不需要知道具体底层原理即可快速开发实现功能。

通过以上,你应该了解SOA是怎么回事了吧,更深入的了解靠你自己了。

原文2:

SOA面试题

  SOA代表了面向服务的架构。如果你正在准备采取SOA,以下SOA的面试问题和答案可能对你非常有用。基本上,这些SOA的面试题涵盖了整个SOA。涉及SOA的服务特点和原理,服务,合同,地址和绑定的松耦合,SOA对于业务和IT的主要优点,服务与组件的差别,SOA的业务需求等等。

1. 什么是SOA的服务?

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

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

  例2 (软件世界) :你去亚马逊订购了一本书,有不同的服务,如支付网关,库存系统,货运系统等共同完成一本书的订购。

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

 

2.服务的主要特点是什么?

  以下是服务的SOA的主要特点:

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

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

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

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

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

3.什么是SOA?

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

 

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

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

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

 

5. 什么Web服务的SOA?

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

 

6. 什么是SOA的主要好处?

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

 

7. 什么是可重用的服务?

  服务是一个自主的,可重复使用的,可发现的,无状态的,有一定粒度的功能,并且是一个复合应用程序或一个组合服务的一部分。

可重复使用的服务通过业务活动标识,这个业务活动是使用服务规范(设计时合同)描述的。

一个服务约束是,包括安全性,QoS,SLA,使用策略,可以由多个运行时的合同 多个接口(WSDL中的Web服务)以及多个实现(代码)定义的。

可重复使用的服务应在被管制在其从设计到运行整个企业级生命周期。其重用应通过规范流程来推动,重用应该是可测量的。

 

8。谈谈关于服务的标识,自顶向下 top-down和自底向上bottom-up 的两个方法之间是如何鼓励重用和维护?

  自顶向下的方法是业务驱动的,可以在不同计划上分离业务和IT的不同关注,提供两者之间一个共同的基础。因此,在大多数情况下,如果你想提高重用和中期/长期的投资回报率,可以采取这种方法。


猜你喜欢

转载自blog.csdn.net/lch_2016/article/details/81062351