SOA面试题

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的不同关注,提供两者之间一个共同的基础。因此,在大多数情况下,如果你想提高重用和中期/长期的投资回报率,可以采取这种方法。


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

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

 

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

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

 

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

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

 

12.什么是服务的组合?

  组合是一个该服务被组合以产生复合应用或合成服务的流程。一个组合应用程序是由产生企业门户或企业流程的服务聚集。组合服务也是产生另一种可重复使用的服务的集合。这就像相结合的电子组件来创建一个电脑主板,然后使用该主板组装一台电脑一样。想想主板作为一个可重用的组合服务,它是计算机的一个组成部分,计算机是作为一个复合应用程序。

 

13. 如何使用SOA集成遗留系统?

  如果遗留老的旧的程序是IT环境的核心。通过正确的技能和工具,将遗留应用程序分立组装,然后基于标准的接口包装成SOA的服务。

 

14. ESB企业总线是什么?

  企业服务总线是SOA的核心要素。 ESB产品提供内部服务之间“任何点到任何点”的连接,并超越您的业务边界连接到您的贸易伙伴。但是,SOA并没有止步于仅仅实现了ESB。您可能需要使用ESB来实现SOA,如消息服务,互动服务和业务流程管理服务中的连接等服务。此外,您将还需要考虑发展服务和IT服务管理服务。 SOA参考架构可以帮助你制定出能够满足您的需求和优先事项的SOA环境。 ESB是这个参考架构的一部分,并提供SOA的骨干,但它不应该在SOA中被单独考虑。

 

15. 在SOA中我们是否需要从头开始构建系统?

  否。如果您需要集成现有系统为业务服务,你只需要创建松耦合的包装,包装您的现有系统,并以一种通用的方式暴露功能给外部世界。

 

16. 什么是服务和组件之间的区别?

  服务组件来实现业务功能的逻辑组件分组。组件是为实现服务这个目标的途径。组件可以使用Java,C#,C,但服务将以通用格式如像Web服务方式被暴露。


17. SOA概念其实不是什么新鲜事,但是为什么每个人在最近几年都开始谈论SOA?

是的,我同意了SOA基本概念其实并不新鲜,但一些技术在发展变化,在过去10年面向服务的体系结构取得了详细实用,比以前应用在更多的组织。其中:

  1. 普遍接受的行业标准,如XML以及它的许多变种,和Web服务标准一起促成了SOA新的热点。
  2. 数据治理框架,这对于成功的SOA实施是很重要的,多年来已经有完善的测试。
  3. 各种有利的技术和工具(例如,建模,开发,基础设施/中间件,管理和测试)已经成熟。
  4. 注意到企业和企业战略的不断壮大,注意力从技术转移到人,文化的变化,流程是关键业务成功的因素。

 

18. 什么是你采用SOA最重要的技能?技术或文化?

  当然是文化, SOA确实需要人们去思考业务和技术的不同。但不是首先考虑技术(例如,如果我们实现这个系统,我们可以用它做什么样的事情呢?),从业人员必须首先想到的业务功能或服务的条款(例如,我公司要做这些业务功能,所以我如何设置我的IT系统,以最有效地实现这些事情?)预计采用SOA将改变企业的IT部门,建立以服务为导向,而不是技术导向型)IT组织。

 

19. 什么是实现SOA的主要障碍?

  1。短缺的技能。 2. 过分考虑SOA项目的投资回报率。

 

20. 我可以买一个SOA或者必须自己建立呢?

  将你的组织迁走向更大的服务方向,你需要采取平衡的方式来建立与购买SOA。首先需要创建一个SOA的基础架构,你需要补充而不是替代您现有的IT基础设施的和现成的软件。这是“购买”。在“建立”方面,你也可以选择进入相应的专业并动手参与有效地使用这些软件产品,以获得他们的最大效益。这一基础设施和相关的工具可以帮助您创建您的SOA并运行您的业务服务。

 

21. 我是否需要开始SOA治理吗?

  成功SOA实现的一个关键方面是从一开始就努力参与经营。通过SOA你能够得到的价值是改进业务/ IT集成。 SOA治理提供决策权,流程和业务策略和IT一起工作。当服务被部署,就必须管理到位,以控制和监控服务管理方面的问题。开始您不需要很多SOA治理,但足以与正在实施的SOA水平协调就可以。

 

22 . 什么是SOA切入点?

  若要SOA快速入门,您需要选择重点,选择一个初始项目可以在相当短的时间内完成特定的业务。SOA入口点是已被证明能及时提供商业价值的项目区域。每个入口点提供了一个关键的SOA相关的解决方案:

人们 - 通过协作提高生产力,让员工和合作伙伴创造一个与他人互动的个性化的,综合的方式的能力。

流程 - 优化和动态部署流程以及监视改变流程的有效性。

资讯 - 提高业务洞察力和通过使用行和上下文交付降低信息服务风险。

重用 - 可重用的服务是SOA的基石。重用为用户减少周期时间,消除重复流程的灵活性。

连接性 - 虽然在过去,连接性已经成为需求, 但是SOA带来了更高水平的灵活性。

 

23. 什么是SOA常见的陷阱?

  其中最常见的错误是把SOA作为结束,而不是一种手段。专注于构建SOA解决方案,而不是解决特定业务问题,如创造IT资源之间的复杂,难以管理和不必要的互连。另一个常见的错误是一次试图解决多个问题,而不是解决小部分的问题。

 

24. SOA是真正符合你的要求?

  SOA并不是适合每一个人。虽然SOA带来显著效益和成本节约,SOA要求集中治理以及执行纪律是成功的。对于一些组织,制定和执行这些原则的成本可能比实现带来更高成本而不是收益。


  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
hashmap的底层原理 hashmap产生死锁的原因 hashmap的容量为什么一定要是2的幂呢 TreeMap的底层原理 HashMap,Hashtable和ConcurrentHashMap的区别 在ArrayList和LinkedList尾部添加元素,谁的效率更高 如果HashMap或者hashTable的key是一个自定义的类该怎么办 为什么重写equals还要重写hashCode? 介绍一下volatile jdk1.5新特性 jdk1.7新特性 jdk1.8新特性 java语言有哪些优点? 同一个.java文件中是否可以有多个main方法 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 如何在main方法执行前输出”hello world” java程序的初始化顺序 请说出作用域public,private,protected,以及不写时的区别 为什么java中有些接口没有任何方法 java中的clone方法有什么作用 面向对象有哪些特征 面向对象的开发方式有什么优点 组合和继承有什么区别 多态的实现机制是什么 重写和重载的区别 抽象类和接口有什么区别 break如果跳出多重循环 final,finally和finalize有什么区别 使用switch时有哪些注意事项 instanceof有什么作用 什么是不可变类 类型转换 Math类的round,ceil和floor方法 值传递和引用传递有什么不同? char型变量是否可以存储一个中文汉字 s=null和s=” ”是否相同 new String(“abc”)创建了几个对象 String变量做“+”运算时的编译优化 "=="和equals方法究竟有什么区别 String,StringBuffer,StringBuilder有什么区别 java中的数组是不是对象 数组初始化的方式有哪几种 length属性和length()方法有什么区别 finally块中的代码什么时候被执行 Java中的异常处理机制的简单原理和应用。 java socket java序列化 JVM加载class文件的原理 双亲委派模型 为什么要自定义类加载器 如何自定义类加载器 什么是GC 内存泄漏和内存溢出 Java的内存模型(JVM的内存划分) JVM内存模型1.7和1.8的区别 如何判断一个对象是否是垃圾对象 垃圾回收算法 Minor GC和Full GC 垃圾收集器 集合的继承体系 Collection 和 Collections的区别。 如何通过jdbc访问数据库 JDBC处理事务采用什么方法 Statement和PreparedStatement的区别 getString()方法和getObject()方法有什么区别 jdbc和hibernate有什么区别 http1.0和http1.1和http2.0的区别 http和https的区别 http缓存 cookie和session forward与redirect区别 页面请求的工作流程 HTTP中的GET和POST方法有什么区别 什么是Servlet servlet是线程安全的吗 Servlet的生命周期 JSP和Servlet的区别和联系 什么是MVC模型 TCP的连接和释放过程 什么是长连接和短连接 长连接是如何实现的 计算机网络体系结构 谈谈你对Struts的理解。 谈谈你对Hibernate的理解。 谈谈你对Lucene和solr的理解 谈谈你对ActiveMQ的理解 Spring的IOC,DI和AOP 谈谈你对webservice和dubbo的理解 谈谈你的SOA的理解。 谈谈你对freemarker的理解 谈谈你对springMVC的理解 谈谈你对mybatis的理解 hibernate和mybatis的区别 同步接口和异步接口的区别 为什么要加入锁机制 如何确定是否应该上锁?即如何判断是否有线程安全问题 什么是markword 乐观锁和悲观锁 偏向锁 轻量级锁 自旋锁 自适应自旋锁 重量级锁 synchronized 可重入锁 土方法实现可重入锁 使用AQS类实现可重入锁 CAS MySQL 中的行级锁、表级锁和页级锁 java中的死锁 公平锁和非公平锁 锁的总结 锁的优化 .......... 还有好多,不想写了,太多了,都是题主呕心沥血总结的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值