基于通用对象请求代理体系结构(Common Object Broker Request Architecture,CORBA)的应用程序有许多组件必须连接到 SOA 中。虽然 CORBA 中的接口描述语言(Interface Description Language,IDL)在概念上类似于WSDL,但它不是严格的,因而首先需要将其映射到WSDL。另外,需要使用更高级的 SOA协议(比如用于流程和策略管理的协议),而不是CORBA中的类似的概念。请记住,这是CORBA组件(表示为服务)需要与SOA服务交互的情况;在 CORBA模型中,所有的独立子集仍然可以像以前一样工作。
由对象管理组织(Object Management Group,OMG)提出并在许多IBM Rational产品中得以实现的模型驱动体系结构在一个更抽象的层次上与SOA的概念具有很强的相关性。MDA基于这样的概念,任何软件流程都可以定义为模型甚至是元模型(即模型的模型),然后可以将这些模型和元模型转换成应用程序的实际组件。因此,MDA创建了一个模型,这个模型先编译成软件应用程序,而软件应用程序接着又编译成可执行程序,这样就可以在平台上运行了。MDA并不区分服务和对象这两个概念,但是它确实允许模型由其他子集模型本身组成,这类似于BPEL(SOA的一个核心组件)中的流程聚合的概念。
SOA和Web服务是独立于编程语言的,但Java是主要的开发语言之一。可以使用定义良好的Java接口以及各种协议丰富的Java实现为正在构建这个模型的开发人员提供了优势。Java在此担当了开发每个服务的功能、管理数据对象和与其他在逻辑上封装在服务内的对象进行交互的角色。
SOA与Web的另一个重要的关系是自主计算和网格计算的概念。自主计算的概念应用于管理分布式服务体系结构的范围,具体来说,就是帮助维护策略和服务级协议以及SOA系统的总体稳定性。
另外,网格计算可以以两个级别与SOA系统一起使用。网格是分布式计算的一种形式,它利用分布式特性和服务之间的交互来为SOA应用程序提供计算支持。在这种情况下,网格起到了框架的作用,其中实现了一些或所有单独的服务。因此,SOA应用程序可以是网格服务的消费者。
在另一方面,网格本身也可以构建在SOA之上。在这种情况下,每个操作系统服务都是构成整个SOA应用程序的成员,而SOA应用程序就是网格本身。因此,单独的网格组件既可以使用Web服务进行通信,又可以以SOA的方式进行交互。总而言之,网格系统可以是SOA本身,也可以提供服务来在其上构建应用程序级SOA模型。
如何构建SOA系统?
利用SOA的好处不仅仅在于它是一个软件开发流程,而且还是一个业务开发流程。采用SOA有四个层次,您的实现可以跨越从创建特定的软件服务到将您的业务模型全面转换到按需系统的过程。
第一个层次是最简单的,因为它只需创建单独的服务。
在第二个层次中,您不仅可以创建服务,而且可以开始将业务功能集成到SOA中。这涉及多个层次的集成,其中包括应用程序集成、信息集成、流程集成和整个系统的集成。
第三个层次涉及将您的企业IT基础设施转换到 SOA模型,而采用SOA的第四个层次集中于转换您的业务模型,以使之成为随需应变的模型。
从IT专业人员的角度来看(与业务层相比),要创建SOA应用程序,您通常将经历四个阶段:构建、部署、使用和管理。在构建阶段中,您可以定义业务模型或流程、软件模型和SOA模型。之后,您就可以创建一组服务,这组服务可以与已发布的通用接口一起重用。
在部署阶段,您提取创建的服务,并把它们放在一个可执行、可管理的环境之中。在使用阶段,您根据前面所讲的SOA和软件模型来装配应用程序,并且测试其软件质量以及非功能性需求,比如性能、可伸缩性等等。应用程序现在已经准备完毕并且可交付用户。最后的管理阶段是一个长期的过程,在这个阶段中,您可以监控并管理安全性和使用,以及在许多与您可能已经为 SOA制订好的服务级协定或策略相对应的方面比较其性能。
这些是SOA的生命周期的概念阶段。为了使对应于这些阶段的实际工作角色具体化,有许多角色需要加入到SOA应用程序的创建之中。这些角色可能从事相同的工作,也可能跨多个团队成员甚至多个团队。在 Rational Unified Process(RUP)中所划分的角色非常好地表达了角色概念。
如何提高我的SOA技能?
技能的获取取决于您是一个什么类型的专业人员:信息分析员、软件架构师、软件开发人员、软件质量分析员、系统管理员等等。如前所述,SOA的概念跨越所有这些工作角色。因此,理解每个工作角色所起的作用是非常有帮助的。
接下来,您应该熟悉每个角色中所包括的技术概念。信息分析员和软件架构师应该熟悉模型驱动的体系结构(Model-Driven Architectures,MDA)和UML 2.0。软件开发人员和程序员应该了解Web服务的程序化接口、MQ和其他协议、程序化地保护交互的方式以及工作流处理的概念。质量分析员和系统管理员应该理解 SOA流程模型与实际SOA功能性体系结构实现,以及分别开发单独的服务如何影响这样的分布式应用程序的整体性能。系统管理员还应该知道应用程序安全性和信任模型如何工作,以及应用程序使用策略如何影响操作系统平台和网络系统。
文章来源于领测软件测试网 https://www.ltesting.net/