我可以如何构建SOA系统?
利用SOA的好处不仅是一个软件开发流程,而且还是一个业务开发流程。采用SOA有四个层次,您的实现可以跨越从创建特定的软件服务到将您的业务模型全面转换到按需系统的过程。
第一个层次是最简单的,因为它只需创建单独的服务。在这一部分列出的“SOA新手入门”中对此进行了详细解释,并且提供了更多的资源。
在第二个层次中,您不仅可以创建服务,而且可以开始将业务功能集成到SOA中。这涉及多个层次的集成,其中包括应用程序集成、信息集成、流程集成和整个系统集成。Migrating to a Service-Oriented Architecture是一篇重要的文章,介绍了这个层次中的问题。
第三个层次涉及将您的企业IT基础设施转换到SOA模型,而采用SOA的第四个层次集中于转换您的业务模型,以使之成为按需就绪的模型。
从IT专业人员的角度来看(与业务层相比),要创建SOA应用程序,您通常将经历四个阶段:构建、部署、使用和管理。在构建阶段中,您可以定义业务模型或流程、软件模型和SOA模型。之后,您就可以创建一组服务,这组服务可以与已发布的通用接口一起重用。
在部署阶段,您提取创建的服务,并把它们放在一个可执行、可管理的环境之中。在使用阶段,您根据前面所讲的SOA和软件模型来装配应用程序,并且测试其软件质量以及非功能性需求,比如性能、可伸缩性等等。应用程序现在已经准备完毕并且可用于用户。最后的管理阶段是一个长期的过程,在这个阶段中,您可以监控并管理安全性和使用,以及在许多与您可能已经为SOA制订好的服务级协定或策略相对应的方面比较其性能。
这些是SOA的生命周期的概念阶段。为了使对应于这些阶段的实际工作角色具体化,有许多角色需要加入到SOA应用程序的创建之中。这些角色可能从事相同的工作,也可能跨多个团队成员甚至多个团队。在Rational Unified Process(RUP)中所划分的角色非常好地表达了角色概念。
RUP角色包括项目经理、分析员、架构师、建模人员、开发人员、测试人员以及部署和操作人员。SOA几乎完全照搬了这种角色划分方法,惟一不同之处在于,SOA建模人员角色的工作是提取概念性软件模型,并且根据IT基础设施的SOA模型和资源来对其进行测试。开发人员角色还可以包括二级角色像装配人员(在使用阶段),装配人员的角色是提取单独的服务,并且根据定义好的模型构建实际的SOA应用程序。不管是显式的还是隐式的,这些角色都存在于支持SOA的企业之中。
我可以如何提高我的SOA技能?
技能的获取取决于您是一个什么类型的专业人员:信息分析员、软件架构师、软件开发人员、软件质量分析员、系统管理员等等。如前所述,SOA的概念跨越所有这些工作角色。然而,尽力地理解每个工作角色所起的作用是非常有帮助的。
接下来,您应该熟悉这每个角色中所包括的技术概念。信息分析员和软件架构师应该熟悉模型驱动的体系结构(Model-Driven Architectures)和UML V2.0。软件开发人员和程序员应该了解Web服务的程序化接口、MQ和其它协议、程序化地保护交互的方式以及工作流处理的概念。质量分析员和系统管理员应该理解SOA流程模型与实际SOA功能性体系结构实现,以及分别开发单独的服务如何影响这样的分布式应用程序的整体性能。系统管理员还应该知道应用程序安全性和信任模型如何工作,以及应用程序使用策略如何影响操作系统平台和网络系统。

