什么是面向服务的体系结构?看完你就懂了

通过优锐课的java架构知识讲解中,了解面向服务的体系结构的特征以及什么构成基于Java的SOA基础结构。分享给大家学习参考。

面向服务的体系结构(SOA)是基于用于同步和异步应用程序的请求/答复设计范例的分布式计算的演变。应用程序的业务逻辑或各个功能被模块化,并作为针对消费者/客户端应用程序的服务呈现。这些服务的关键是它们的松散耦合性质。即服务接口独立于实现。应用程序开发人员或系统集成商可以通过组合一项或多项服务来构建应用程序,而无需了解服务的基础实现。例如,可以在.Net或J2EE中实现服务,而使用该服务的应用程序可以在其他平台或语言上。

SOA的好处是其与平台无关的方法以及Web服务之间更好的互操作性。本文是SOA的概述,包括构建Web服务时使用的一些工具和协议。

 

SOA和Web服务

面向服务的体系结构是可以使用Web服务实现的体系结构模式。 有关在Java中构建基于SOAP的RESTful Web服务的教程简介,请参见“ Java SE中的Web服务”(JavaWorld,2017年)。

面向服务的体系结构具有以下关键特征:

  • ·SOA服务在与平台无关的XML文档中具有自描述接口; 用于描述服务的标准是WSDL或Web服务描述语言。
  • ·SOA服务与通过XML Schema或XSD正式定义的消息进行通信。 消费者与提供者或服务之间的通信通常发生在异构环境中,很少或根本不了解提供者。 服务之间的消息可以视为企业中处理的关键业务文档。
  • ·SOA服务由充当目录列表的注册表在企业中维护。 应用程序可以在注册表中查找服务并调用服务。 通用描述,定义和集成(UDDI)是用于服务注册表的标准。

为什么选择SOA?

IT企业基础结构在操作系统,应用程序,系统软件和应用程序基础结构之间是异构的。 一些现有的应用程序用于运行当前的业务流程,因此不能从头开始构建新的基础架构。 企业应迅速敏捷地响应业务变化; 利用对应用程序和应用程序基础结构的现有投资来满足新的业务需求; 支持与客户,合作伙伴和供应商互动的新渠道; 并具有支持有机业务的架构。 SOA具有松散耦合的性质,允许企业以粒度方式插入新服务或升级现有服务,以满足新的业务需求,提供使服务跨不同渠道可使用的选项,并将现有企业和遗留应用程序公开为服务 ,从而保护现有的IT基础架构投资。

云计算的SOA

了解有关Java企业中面向服务的体系结构的更多信息:

  • 逻辑SOA:体系结构概述
  • 面向现实世界的SOA
  • ·确保SOA:你需要了解的内容
  • ·精益SOA的企业模式

如图1的示例所示,使用SOA的企业可以使用一组通过标准接口公开功能的现有应用程序来创建供应链复合应用程序

图1.供应链应用程序。 单击缩略图以查看完整尺寸的图像。

服务架构

为了实现SOA,企业需要一种服务架构,其示例如图2所示。

图2.一个示例服务架构。 单击缩略图以查看完整尺寸的图像。

在图2中,几个服务使用者可以通过发送消息来调用服务。 这些消息通常由服务总线转换并路由到适当的服务实现。 该服务体系结构可以提供业务规则引擎,该业务规则引擎允许将业务规则合并到服务中或跨服务。 服务体系结构还提供了服务管理基础结构,用于管理服务和活动,例如审核,计费和日志记录。 此外,该架构还为企业提供了具有敏捷业务流程的灵活性,可以更好地满足Sarbanes Oxley(SOX)等法规要求,并且可以在不影响其他服务的情况下更改单个服务。

SOA基础架构

为了运行和管理SOA应用程序,企业需要SOA平台中一部分的SOA基础结构。 SOA基础结构必须支持所有相关标准和所需的运行时容器。 典型的SOA基础架构如图3所示。以下各节讨论了基础架构的各个部分。

图3.典型的SOA基础架构。 单击缩略图以查看完整尺寸的图像。

SOAP, WSDL, UDDI

在撰写本文时,WSDL,UDDI和SOAP是SOA基础结构的基础。 WSDL用于描述服务; UDDI,用于注册和查找服务; 和SOAP,作为在服务使用者和服务提供者之间发送消息的传输层。 SOAP是Web服务的默认机制,而替代技术则可以完成其他类型的服务绑定。 使用者可以在UDDI注册表中搜索服务,获取具有描述的服务的WSDL,然后使用SOAP调用该服务。

WS-I基本配置文件

Web服务互操作性组织提供的WS-I基本概要正在变成服务测试和互操作性所需的另一个核心部分。 服务提供商可以使用Basic Profile测试套件来测试服务在不同平台和技术之间的互操作性

Java EE  .Net

尽管Java EE和.Net平台是SOA应用程序的主要开发平台,但是SOA绝不限于这些平台。 诸如Java EE之类的平台不仅为开发人员提供了自然参与SOA的框架,而且凭借其固有的特性,还为SOA世界带来了可扩展性,可靠性,可用性和性能的成熟成熟的基础架构。 规范,例如用于将XML文档映射到Java类的Java绑定的Java API(JAXB),用于以标准方式与UDDI注册中心进行交互的XML Registry的Java API(JAXR)和基于XML的远程的Java API 过程调用(XML-RPC),用于调用Java EE 1.4中的远程服务,有助于开发和部署可跨标准J2EE容器移植的Web服务,同时与其他平台(如.Net)的服务进行互操作。

服务质量

企业中现有的关键任务系统可以满足高级要求,例如安全性,可靠性和事务处理。 随着企业开始采用服务体系结构作为开发和部署应用程序的工具,诸如WSDL,SOAP和UDDI之类的基本Web服务规范将无法满足这些高级要求。 如前所述,这些要求也称为服务质量。 与QoS有关的许多规范正在诸如Internet联盟(W3C)和结构化信息标准促进组织(OASIS)之类的标准机构中制定。 以下各节讨论了一些QoS工件和相关标准。

安全

Web服务安全性规范解决了邮件安全性问题。 该规范专注于凭证交换,消息完整性和消息机密性。 此规范的吸引力在于它利用了现有的安全标准,例如``安全断言标记语言(SAML)‘‘,并允许使用这些标准来保护Web服务消息。 Web服务安全性是OASIS正在进行的一项工作。

可靠性

在典型的SOA环境中,服务使用者和服务提供者之间交换几个文档。 在使用服务体系结构的关键任务系统中,具有一次发送,一次发送,最多一次发送,消息重复消除,保证的消息传递和确认等特征的消息传递变得很重要。 WS-Reliability和WS-ReliableMessaging是解决可靠消息传递问题的两个标准。 这两个标准现已成为OASIS的一部分。

 

政策

服务提供商有时会要求服务使用者与某些策略进行通信。 例如,服务提供商可能需要Kerberos安全令牌才能访问服务。 这些要求被定义为策略声明。 一个策略可能包含多个断言。 WS-Policy标准化了服务使用者和服务提供者之间如何交流策略。

编排

随着企业开始使用服务体系结构,服务可用于集成数据,应用程序和组件的孤岛。 集成应用程序意味着必须对过程要求(例如异步通信,并行处理,数据转换和补偿)进行标准化。 BPEL4WS或WSBPEL(Web服务业务流程执行语言)是解决服务编排的OASIS规范,其中业务流程是使用一组离散服务创建的。 WSBPEL现在是OASIS的一部分。

管理

随着企业中随着服务而暴露的服务和业务流程数量的增长,让系统管理员管理在异构环境中运行的服务的管理基础架构变得非常重要。 Web服务分布式管理(WSDM)将指定根据WSDM实施的任何服务都可以由符合WSDM的管理解决方案进行管理。

WS-Coordination和WS-Transaction规范分别解决了其他QoS属性,例如合作伙伴之间的协调以及涉及多个服务的事务,这也是OASIS所做的努力。

结论:SOA的好处

尽管SOA概念不是新概念,但SOA与现有的分布式技术的不同之处在于,大多数供应商都接受它,并拥有启用SOA的应用程序或平台套件。 SOA具有无处不在的一组标准,可以为企业中现有资产或投资带来更好的可重用性,并允许你创建可以在新的和现有应用程序之上构建的应用程序。 SOA支持对应用程序进行更改,同时使客户端或服务使用者与服务实现中发生的演进式变化保持隔离。 SOA支持升级单个服务或服务使用者; 不必完全重写应用程序或保留不再满足新业务需求的现有系统。 最后,SOA通过利用现有的应用程序基础结构来组合新服务,为企业提供了更好的灵活性,从而可以灵活地构建应用程序和业务流程。

> 喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等
 > 如果你对java技术很感兴趣也可以交流学习,共同学习进步。 
> 不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代

文章写道这里,欢迎完善交流。最后奉上近期整理出来的一套完整的java架构思维导图,分享给大家对照知识点参考学习。有更多JVM、Mysql、Tomcat、Spring Boot、Spring Cloud、Zookeeper、Kafka、RabbitMQ、RockerMQ、Redis、ELK、Git等Java干货

原文地址:https://www.cnblogs.com/youruike1/p/12321726.html

时间: 2024-10-02 02:47:37

什么是面向服务的体系结构?看完你就懂了的相关文章

SOA(面向服务的体系结构)

SOA(面向服务的体系结构) 面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言.这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互. 中文名 面向服务的体系结构 外文名 Service-Oriented Architecture 外语缩写 SOA 本    质 组件模型 目录 1定义介绍 2体系结构 ? 松耦合的系统? 体系结

聊聊SOA 面向服务的体系结构

什么是SOA SOA(Service-Oriented Architecture),即面向服务的架构.SOA是一种粗粒度.松耦合服务架构,服务之间通过简单.精确定义接口进行通讯,不涉及底层编程接口和通讯模型. SOA可以看作是B/S模型.XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸. 阿里巴巴的Dubbo是SOA的典型实现. 基本特征 SOA的实施具有几个鲜明的基本特征:粗粒度的服务接口分级松散耦合可重用的服务服务接口设计管理标准化的服务接口支持各种消息模式精确定义

js实现分页的几个源码,看完基本就懂了

第一种: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>addUser.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta htt

手机究竟要不要升级系统?总是自动升级该怎么办?看完你就懂了

手机到底该不该升级?这是很多朋友都会遇到的问题,而且不分安卓与苹果.有些朋友升级后说,手机更流畅功能更多了.而也有朋友表示,手机升级后耗电增加了,而且还变卡了许多.为什么会出现两种截然不同的情况呢?下面我们就一起来看看原因. 1. 系统升级的好处 其实系统升级也是分大小的,通常小升级就是几十兆大小,并且只是修复一些已知的bug和小问题.而大升级指的是大跨度升级,比如说EMUI9到EMUI10之类的,此类升级带来的更新也会比较大,并且会增加一些新功能. 2. 系统升级的风险 其实系统升级是存在风险

SOA——面向服务的体系架构

上一篇博文中提到了"紧耦合"的现象,如何解决?SOA,采用面向服务的体系架构. 一.What? SOA=Service-oriented Architecture面向服务的体系结构 SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 我个人更加倾向于这样的一种解释:SOA是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构. 所以,SOA是什么?SOA不是一种语言,也不是一

架构-SOA:SOA(面向服务的架构)

ylbtech-架构-SOA:SOA(面向服务的架构) 面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言.这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互. 1.返回顶部 1. 中文名:面向服务的结构 外文名:Service-Oriented Architecture 外语缩写:SOA 本    质:组件模型

Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系

Atitit 面向对象编程(OOP).面向组件编程(COP).面向方面编程(AOP)和面向服务编程(SOP)的区别和联系 1. 面向组件编程(COP) 所以,组件比起对象来的进步就在于通用的规范的引入.通用规范往往能够为组件添加新的能力(就像上面所讨论的), COP比OOP更进一步.通常OOP将数据对象组织到实体中.这种方法具有很多优点.但是,OOP有一个大的限制:对象之间的相互依赖关系.去掉这个限制的一个好的想法就是组件.组件和一般对象之间的关键区别是组件是可以替代的. 3.什么是面向方面编程

面向对象编程、面向组件编程、面向方面编程、面向服务编程

1.什么是面向对象编程(Object-Oriented Programming)? 面向对象编程 (Object-Oriented Programming)简称OOP技术,是开发计算机应用程序的一种新方法.新思想.过去的面向过程编程常常会导致所有的代码都包含在几个模块中,使程 序难以阅读和维护.在做一些修改时常常牵一动百,使以后的开发和维护难以为继.而使用OOP技术,常常要使用许多代码模块,每个模块都只提供特定的功能, 它们是彼此独立的,这样就增大了代码重用的几率,更加有利于软件的开发.维护和升

面向服务架构SOA

SOA架构即面向服务架构. 面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言.这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互. 这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合.松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,