2023年8月1日发(作者:)
⾯向服务的体系结构_什么是⾯向服务的体系结构?⾯向服务的体系结构⾯向服务的体系结构(SOA)在本世纪初随着分布式计算的发展⽽出现。 在SOA之前,
服务被理解为应⽤程序开发过程的最终结果。 在SOA中,应⽤程序本⾝由服务组成。 服务可以单独交付,也可以作为组件组合到更⼤的复合服务中。服务使⽤诸如REST或 (简单对象访问协议)之类的协议在线进⾏交互。 服务是松散耦合的 ,这意味着服务接⼝独⽴于基础实现。 开发⼈员或系统集成商可以将⼀个或多个服务组合到⼀个应⽤程序中,⽽不必知道每个服务的实现⽅式。本⽂概述了Java SOA和使⽤基于SOAP的Web服务实现的⾯向服务的体系结构的关键特性。 我还将简要⽐较SOA和微服务,并讨论RESTful和Java中基于SOAP的Web服务之间的区别。SOA和Web服务SOA和Web服务经常合并在⼀起,但是它们不是⼀回事。 SOA是允许开发⼈员将多个应⽤程序服务组合到⼀个较⼤的复合服务中的体系结构。 可以使⽤基于SOAP的Web服务或REST API或有时来实现SOA。 必须了解,在SOA中,
服务是可以响应请求的任何远程可⽤资源。Web服务是使⽤特定协议实现的。为什么采⽤⾯向服务的架构?SOA解决了三个常见的企业挑战:快速响应业务变化。利⽤现有基础设施投资。⽀持与客户,合作伙伴和供应商互动的新渠道。企业基础结构在操作系统,应⽤程序,系统软件和应⽤程序基础结构之间是异构的。 结果,许多企业系统由交付⼀系列相互依赖的服务的复杂且不⼀致的应⽤程序组成。 运⾏当前业务流程的现有应⽤程序⾄关重要,因此从头开始或对其进⾏修改是⼀个微妙的主张。 但是企业必须能够修改和扩展技术基础架构,以满⾜业务需求。SOA和微服务是从SOA演变⽽来的⼀种架构样式。 两者都是分布式体系结构,并且都提供了分离的范例。 ⾯向服务的架构在基础架构上⽐较繁重,⽽微服务则提供了更加灵活,轻量级的开发风格。 两者都有优点和缺点,并且都被⼴泛使⽤。 ⼀般⽽⾔,SOA由拥有资源以⽀持更多形式化的既定企业实施或维护。 微服务通常吸引需要敏捷性的新组织或成长型组织。与单块架构相⽐,SOA的松散耦合特性使它可以相对⽆缝地插⼊新服务或升级现有服务以满⾜新业务需求。 它还提供了使服务可跨不同渠道使⽤以及将遗留应⽤程序公开为服务的选项,从⽽保护了基础架构投资。由于它们是松散耦合的,因此可以在不影响其他组件的情况下更改SOA组件。 组件也可以以标准化的⽅式添加到体系结构中,并且可以缩放以解决负载问题。例如,考虑企业如何使⽤⼀组现有应⽤程序来创建新的复合供应链应⽤程序。 尽管现有应⽤程序是异构的,并且分布在各种系统中,但是它们的功能是使⽤标准接⼝公开和访问的。马修·泰森(Matthew Tyson)图1.⾯向服务的体系结构中的供应链应⽤程序SOA的关键特性SOA可以很简单,就像⼀个组件消耗另⼀个组件所提供的服务⼀样,也可以复杂到像通过MuleSoft的类的企业服务总线进⾏交互的⼀系列组件⼀样复杂。 ⽆论规模如何,成功实施SOA的关键是使⽤尽可能少的复杂性来实现您的⽬标。 您的第⼀个也是最后⼀个问题应该始终是:
此设计是否满⾜我们的业务需求?⽆论规模或复杂程度如何,⾯向服务的体系结构的模式⼤致相同:服务提供商公开端点并描述每个端点处的可⽤操作。服务使⽤者发出请求并使⽤响应。服务提供商⽣成消息以处理请求。实施⾯向服务的架构要实现SOA,您将从基本服务体系结构开始,然后提供基础结构,含义协议和其他实现通信和互操作性的⼯具。 图2显⽰了典型的服务体系结构图。马修·泰森(Matthew Tyson)图2.⽰例服务架构在此图中,三个使⽤者通过向企业服务总线发送消息来调⽤服务,企业总线将消息转换并路由到适当的服务实现。
业务规则引擎将业务规则合并到服务中或跨服务。
服务管理层管理诸如审计,计费和⽇志记录之类的活动。此体系结构中的组件是松散耦合的,因此可以将它们切换或更新,⽽对整个应⽤程序的影响相对最⼩。 这使企业能够灵活地根据需要添加或更新业务流程。 在⼤多数情况下,对单个服务的更改不会在很⼤程度上影响其他服务。SOAP与RESTful Web服务可以采⽤SOA样式并通过REST来实现它,例如使⽤或 ,但是该讨论不在本⽂讨论范围之内。 有关SOAP与RESTful Web服务的有⽤⽐较,请参见“ ”。 RESTful Web服务与服务的之间也存在⼀些重叠。基于SOAP的Web服务使⽤SOAP实现的Web服务仍⽐RESTful Web服务或微服务实现更为严格,但⽐SOA早期的灵活性要强得多。 在这⾥,我们将仅介绍基于SOAP的Web服务所需的⾼级协议。SOAP,WSDL和XSDSOAP,WSDL和XSD是基于SOAP的Web服务实现的基本基础结构。 WSDL⽤于描述服务,⽽SOAP是⽤于在服务使⽤者和提供者之间发送消息的传输层。 服务与使⽤XML Schema( )正式定义的消息进⾏通信。 您可以将WSDL视为服务的接⼝(类似于 )。 该实现是在Java类中完成的,并且跨⽹络的通信是通过SOAP进⾏的。 从功能上讲,使⽤者将寻找服务,获取该服务的WSDL,然后使⽤SOAP调⽤该服务。Web服务安全规范解决了消息安全性。 该规范专注于凭证交换,消息完整性和消息机密性。Web服务发现⼀旦成为Web服务发现的基⽯, (通⽤描述,定义和集成)便逐渐淡出历史。 如今,通过端点URL以与其他任何服务相同的⽅式公开基于SOAP的Web服务已经很普遍。 例如,您可以及其@WebService和@WebMethod批注。构建和部署Web服务Java开发⼈员可以使⽤多种选择来构建和部署基于SOAP的Web服务,包括和 。 但是,Java标准是 ,即XML Web Services的JavaAPI。 JAX-WS背后的核⼼思想是创建Java类并对其进⾏注释以创建所需的⼯件。 在幕后,JAX-WS使⽤了⼏个Java软件包,包括 ,这是⼀个⽤于将Java类绑定到XML的通⽤库。JAX-WS向开发⼈员隐藏了底层的复杂性和协议,从⽽简化了定义和部署基于Java的SOAP服务的过程。 诸如Eclipse之类的现代Java IDE开发JAX-WS Web服务。 JAX-WS规范也已选择 。结论与RESTful Web服务或微服务相⽐,使⽤基于SOAP的Web服务实现的⾯向服务的体系结构需要更严格和正式的服务定义。 但是,⼀些较⼤的组织仍然喜欢SOAP强制采⽤的更为正式的样式。 许多⼤型的遗留系统也都基于SOAP构建,并且某些B2B和内部系统选择基于SOAP的Web服务来为其更正式地定义的API合同。 ⽆论您是开发还是维护⼤型企业系统,了解SOA模式并能够评估实现它的选择都将为您的编程事业提供良好的服务。这个故事“什么是⾯向服务的体系结构?” 最初由发布 。⾯向服务的体系结构
2023年8月1日发(作者:)
⾯向服务的体系结构_什么是⾯向服务的体系结构?⾯向服务的体系结构⾯向服务的体系结构(SOA)在本世纪初随着分布式计算的发展⽽出现。 在SOA之前,
服务被理解为应⽤程序开发过程的最终结果。 在SOA中,应⽤程序本⾝由服务组成。 服务可以单独交付,也可以作为组件组合到更⼤的复合服务中。服务使⽤诸如REST或 (简单对象访问协议)之类的协议在线进⾏交互。 服务是松散耦合的 ,这意味着服务接⼝独⽴于基础实现。 开发⼈员或系统集成商可以将⼀个或多个服务组合到⼀个应⽤程序中,⽽不必知道每个服务的实现⽅式。本⽂概述了Java SOA和使⽤基于SOAP的Web服务实现的⾯向服务的体系结构的关键特性。 我还将简要⽐较SOA和微服务,并讨论RESTful和Java中基于SOAP的Web服务之间的区别。SOA和Web服务SOA和Web服务经常合并在⼀起,但是它们不是⼀回事。 SOA是允许开发⼈员将多个应⽤程序服务组合到⼀个较⼤的复合服务中的体系结构。 可以使⽤基于SOAP的Web服务或REST API或有时来实现SOA。 必须了解,在SOA中,
服务是可以响应请求的任何远程可⽤资源。Web服务是使⽤特定协议实现的。为什么采⽤⾯向服务的架构?SOA解决了三个常见的企业挑战:快速响应业务变化。利⽤现有基础设施投资。⽀持与客户,合作伙伴和供应商互动的新渠道。企业基础结构在操作系统,应⽤程序,系统软件和应⽤程序基础结构之间是异构的。 结果,许多企业系统由交付⼀系列相互依赖的服务的复杂且不⼀致的应⽤程序组成。 运⾏当前业务流程的现有应⽤程序⾄关重要,因此从头开始或对其进⾏修改是⼀个微妙的主张。 但是企业必须能够修改和扩展技术基础架构,以满⾜业务需求。SOA和微服务是从SOA演变⽽来的⼀种架构样式。 两者都是分布式体系结构,并且都提供了分离的范例。 ⾯向服务的架构在基础架构上⽐较繁重,⽽微服务则提供了更加灵活,轻量级的开发风格。 两者都有优点和缺点,并且都被⼴泛使⽤。 ⼀般⽽⾔,SOA由拥有资源以⽀持更多形式化的既定企业实施或维护。 微服务通常吸引需要敏捷性的新组织或成长型组织。与单块架构相⽐,SOA的松散耦合特性使它可以相对⽆缝地插⼊新服务或升级现有服务以满⾜新业务需求。 它还提供了使服务可跨不同渠道使⽤以及将遗留应⽤程序公开为服务的选项,从⽽保护了基础架构投资。由于它们是松散耦合的,因此可以在不影响其他组件的情况下更改SOA组件。 组件也可以以标准化的⽅式添加到体系结构中,并且可以缩放以解决负载问题。例如,考虑企业如何使⽤⼀组现有应⽤程序来创建新的复合供应链应⽤程序。 尽管现有应⽤程序是异构的,并且分布在各种系统中,但是它们的功能是使⽤标准接⼝公开和访问的。马修·泰森(Matthew Tyson)图1.⾯向服务的体系结构中的供应链应⽤程序SOA的关键特性SOA可以很简单,就像⼀个组件消耗另⼀个组件所提供的服务⼀样,也可以复杂到像通过MuleSoft的类的企业服务总线进⾏交互的⼀系列组件⼀样复杂。 ⽆论规模如何,成功实施SOA的关键是使⽤尽可能少的复杂性来实现您的⽬标。 您的第⼀个也是最后⼀个问题应该始终是:
此设计是否满⾜我们的业务需求?⽆论规模或复杂程度如何,⾯向服务的体系结构的模式⼤致相同:服务提供商公开端点并描述每个端点处的可⽤操作。服务使⽤者发出请求并使⽤响应。服务提供商⽣成消息以处理请求。实施⾯向服务的架构要实现SOA,您将从基本服务体系结构开始,然后提供基础结构,含义协议和其他实现通信和互操作性的⼯具。 图2显⽰了典型的服务体系结构图。马修·泰森(Matthew Tyson)图2.⽰例服务架构在此图中,三个使⽤者通过向企业服务总线发送消息来调⽤服务,企业总线将消息转换并路由到适当的服务实现。
业务规则引擎将业务规则合并到服务中或跨服务。
服务管理层管理诸如审计,计费和⽇志记录之类的活动。此体系结构中的组件是松散耦合的,因此可以将它们切换或更新,⽽对整个应⽤程序的影响相对最⼩。 这使企业能够灵活地根据需要添加或更新业务流程。 在⼤多数情况下,对单个服务的更改不会在很⼤程度上影响其他服务。SOAP与RESTful Web服务可以采⽤SOA样式并通过REST来实现它,例如使⽤或 ,但是该讨论不在本⽂讨论范围之内。 有关SOAP与RESTful Web服务的有⽤⽐较,请参见“ ”。 RESTful Web服务与服务的之间也存在⼀些重叠。基于SOAP的Web服务使⽤SOAP实现的Web服务仍⽐RESTful Web服务或微服务实现更为严格,但⽐SOA早期的灵活性要强得多。 在这⾥,我们将仅介绍基于SOAP的Web服务所需的⾼级协议。SOAP,WSDL和XSDSOAP,WSDL和XSD是基于SOAP的Web服务实现的基本基础结构。 WSDL⽤于描述服务,⽽SOAP是⽤于在服务使⽤者和提供者之间发送消息的传输层。 服务与使⽤XML Schema( )正式定义的消息进⾏通信。 您可以将WSDL视为服务的接⼝(类似于 )。 该实现是在Java类中完成的,并且跨⽹络的通信是通过SOAP进⾏的。 从功能上讲,使⽤者将寻找服务,获取该服务的WSDL,然后使⽤SOAP调⽤该服务。Web服务安全规范解决了消息安全性。 该规范专注于凭证交换,消息完整性和消息机密性。Web服务发现⼀旦成为Web服务发现的基⽯, (通⽤描述,定义和集成)便逐渐淡出历史。 如今,通过端点URL以与其他任何服务相同的⽅式公开基于SOAP的Web服务已经很普遍。 例如,您可以及其@WebService和@WebMethod批注。构建和部署Web服务Java开发⼈员可以使⽤多种选择来构建和部署基于SOAP的Web服务,包括和 。 但是,Java标准是 ,即XML Web Services的JavaAPI。 JAX-WS背后的核⼼思想是创建Java类并对其进⾏注释以创建所需的⼯件。 在幕后,JAX-WS使⽤了⼏个Java软件包,包括 ,这是⼀个⽤于将Java类绑定到XML的通⽤库。JAX-WS向开发⼈员隐藏了底层的复杂性和协议,从⽽简化了定义和部署基于Java的SOAP服务的过程。 诸如Eclipse之类的现代Java IDE开发JAX-WS Web服务。 JAX-WS规范也已选择 。结论与RESTful Web服务或微服务相⽐,使⽤基于SOAP的Web服务实现的⾯向服务的体系结构需要更严格和正式的服务定义。 但是,⼀些较⼤的组织仍然喜欢SOAP强制采⽤的更为正式的样式。 许多⼤型的遗留系统也都基于SOAP构建,并且某些B2B和内部系统选择基于SOAP的Web服务来为其更正式地定义的API合同。 ⽆论您是开发还是维护⼤型企业系统,了解SOA模式并能够评估实现它的选择都将为您的编程事业提供良好的服务。这个故事“什么是⾯向服务的体系结构?” 最初由发布 。⾯向服务的体系结构
发布评论