趋向采用 SOA
软件开发领域的主要发展趋势是从传统软件体系结构过渡到面向服务的体系结构 (SOA)。在传统软件体系结构中,将项目视为单个新应用程序的交付。在SOA中,将项目视为集成服务的交付——一些是新建的,一些是现有的。无论其规模和预算如何,几乎所有信息技术(Information Technology,IT)部门当前都在进行过渡到SOA的工作。您可能已经读过多篇关于SOA采用、成熟度模型和实现的文章了。本文将描述在组织采用SOA或过渡到更高的SOA成熟度水平的过程中,您的IT团队成员中所需的一组新角色及其各自的职责。
在形成SOA团队时,最大的范式转换是从组合应用程序交付过渡到服务交付。传统软件开发人员通常构建应用程序中的一个模块,或典型的三层体系结构中的单个层的一部分。开发人员的一个例子就是在模型-视图-控制器(Model-View-Controller,MVC)体系结构中负责控制器或模型层的人员。在SOA环境中,这些开发人员现在负责服务实现。他们并不需要知道何时、如何或为什么调用服务以及谁调用服务。他们所关心的就是,服务进行什么工作以及需要符合什么样的服务水平协议(Service Level Agreement,SLA)。
为了进行此范式转换,您需要形成完整的SOA团队,其中的每个角色的职责与传统软件开发团队中的相同角色略有不同。本文将说明SOA团队中以下角色的情况:
·架构师
·开发人员
·业务分析人员
·项目经理
在典型的IT组织中还包括多个其他角色,包括基础设施支持、数据库支持、安全性等等。不过,了解了这些主要角色如何改变后,您就能够对其他角色进行调整,以与其匹配。
理解架构师的角色
在较大的组织中,通常有两个体系结构小组。企业体系结构小组定义组织内的每个应用程序小组都必须遵循的控制策略、最佳实践和过程。应用程序体系结构小组负责其特定应用程序的体系结构,确保体系结构能够支持当前和将来的业务需求。
企业架构师
在SOA组织中,企业架构师的角色是推动和促进SOA的采用。他们需要帮助应用程序架构师和各个开发小组理解SOA的基础知识并将业务需求转换为有意义的服务,以便这些小组进行实现和公开。
仅由您自己的应用程序或业务流程使用的服务几乎没有价值。企业架构师需要确保所有应用程序架构师定期讨论其项目,以确定他们可以公开或使用的服务。在不能重用现有服务的情况下,企业架构师还需要确保充分利用构建新服务的每个机会。促进对现有服务的重用肯定比编写新服务具有更高的优先级。最后,他们必须确认服务是在可靠的技术之上构建的,且能够满足所确立的 SLA。
企业架构师负责定义测定和跟踪 SLA 的机制。他们定义有关控制、安全性、灾难恢复等等的策略和过程。他们通常是涉及到 Web 服务管理、编排和企业服务总线的解决方案的主要决策者。
应用程序架构师
应用程序架构师的角色是确保所编写的代码是面向服务的,且遵循可用于面向服务的开发的最佳实践和流程。他们需要在不会对解决方案进行过度设计的前提下将业务需求转换为有意义的服务。典型的服务创建和使用比代码的直接调用开销更大。因此,确定作为服务公开的粒度级别以及如何进行公开是此角色的主要工作职能。
应用程序架构师还要与组织中的企业架构师及其他应用程序架构师紧密合作,以确保充分利用每个服务重用机会,且恰当地对服务进行构建、发现、安全保护、使用和测定。
应用程序架构师最终负责服务交付和使用(非功能要求)的所有技术方面的工作,包括 SLA 遵循情况的可测定性、符合控制策略、执行和确保安全策略等等。
阅读不同SOA文献中关于架构师的信息时,您可能会遇到术语业务架构师,即应该理解业务情况并设计服务的人员。在我的SOA团队定义中,此角色的工作由应用程序架构师完成,而不是由企业架构师完成。应用程序架构师或业务架构师是业务小组和技术小组间负责技术设计方面的协调人,而业务分析人员则是负责业务方面的协调人。
开发人员的角色
在传统IT小组中,开发人员通常负责应用程序的一个片段。这些片段可以由功能(如注册中心或报告模块)或技术(如 JavaServer Pages? [JSP]、Enterprise JavaBeans [EJB]、数据库层等等)确定。
由于SOA团队通常采用较短的开发周期,所以按技术对开发人员进行划分并不实际。因此,将按功能划分的开发团队转变到新的SOA开发人员角色更为容易一些。
成功的SOA开发人员将能同时理解业务流程和功能。他们会恰当构建所需的服务来满足业务流程的需求。越来越重要的是,要执行用于错误处理、跟踪/审核、数据转换和安全性的良好设计原则,并确保将其加入到任何服务代码中。由于SOA的核心原则之一是重用,所以开发人员必须放弃传统开发人员希望构建一切的想法。如果某个方面的服务已经存在,请使用这个服务——而不要自己从头构建。
由于 Web 服务的技术发展并有大量有关该技术的参考材料可供使用,因此可以说开发人员已经“全副武装”,能充分胜任其在新SOA环境中的工作了。
业务分析人员的角色
业务分析人员可能是最难得到正确认识的一个角色。作为技术人员兼架构师,我倾向于将架构师视为最关键的SOA团队成员。不过,基于经验和最慎重的考虑,我必须指出,作为SOA团队中的一员,实际上业务分析人员的工作变化最大。无论开发环境如何,业务分析人员都执行两个主要职能:
与执行人员和策略级的用户沟通,以了解其对系统的要求。
与技术团队成员沟通,以将确定的要求转换为能进行编码和测试的技术规范。
在SOA环境中,业务分析人员还有两项新职能:
与整个开发团队合作,让他们开始以服务 的方式思考问题。(他们需要何种服务来进行其工作?已经存在哪些服务可供使用或在调整后进行使用?如此等等。)
与技术团队合作,以设计和构建必要的服务,可能会利用已经存在的现有服务。
无论喜欢与否,在很多企业中,由于组织使用的技术的局限性,业务分析人员通常会不断更改相关要求。这个问题可能并不能得到消除,但在SOA环境中,业务分析人员进行服务设计的空间肯定更大,而不用过多地担心技术。
项目经理的角色
SOA 环境中的项目经理的角色与传统IT环境中的项目经理之间的主要差异在于项目生命周期。无论SOA团队采用何种方法(IBM Rational? Unified Process (RUP)、瀑布式、敏捷方法),项目经理通常都需要为每个服务计划较短的交付周期。他们与业务用户和不同服务使用者一起定义服务水平协议 (SLA)。此外,他们必须与多个IT小组(如基础设施支持小组)共同确保这些 SLA 是可以实现的。
项目经理在服务运行时进行协调和跟踪方面的角色比跟踪日常服务交付更为重要。不过,由于周期较短,这个工作相对较为容易一些。
总结:SOA角色及其对您的团队的意义
本文讨论的关键词是培训。当您决定进行SOA项目时,需要仔细考虑团队人员的当前角色,并确保通过培训、指导和调整试验及错误周期来帮助他们准备好进行其在SOA中的工作。
分享到:
相关推荐
业务分析师在SOA团队中扮演关键角色,他们负责理解业务需求,协助定义服务边界和服务契约,确保服务与业务目标保持一致。项目经理则需要管理和协调跨功能团队,确保项目按时、按预算完成,同时平衡技术和业务的考虑...
**SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计模式,它提倡将功能作为独立的服务,这些服务可以通过网络进行交互,实现模块化、松耦合的系统。在本压缩包“SOA.rar”中,我们主要探讨的是...
解读SOA Interpret SOA SOA越来越被企业接受,很多公司都准备规划SOA。但具体怎么上,没有一套很好的方法论是不行的。资料是IBM在长期的摸索中总结的一套SOMA方法论,由于是内部培训资料,所以比较难得。 内容 ...
本次作业要求以团队形式,理解并应用SOA设计理念,针对实际学习或工作环境中的需求,设计并实施SOA解决方案。团队成员需分工明确,每个人负责特定角色和任务。最终成果应包含: - 问题描述:阐述业务和技术上的挑战...
**SOA光学与半导体光放大器** 在信息技术领域,特别是在光纤通信系统中,半导体光放大器(Semiconductor Optical Amplifier,简称SOA)扮演着至关重要的角色。SOA是一种利用半导体材料(如镓铝砷化物,GaAs/AlGaAs...
面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...
SOA资源,SOA教程,SOA开发SOA资源,SOA教程,SOA开发
SOA这个名词,几年前就经帯在网上看到戒者在一些讲座中听到,但自己真正比较“近距离”接触“SOA”,还是在去年的“中国IT精英年会”上,当时IBM大中华区的老总大谈IBM 的SOA,BEA公司(当时还没被Oracle 收购)也讲了很多...
标题"SOAOperation_soa开发_SOA_teamcenter_TeamcenterSOA_"暗示我们将深入探讨Teamcenter中的SOA操作,这通常涉及到在Teamcenter环境中开发和利用SOA服务来增强其功能。SOA开发意味着创建、管理和维护这些服务,以...
3. **组织结构优化**:建立专门的 SOA 治理团队或委员会,负责监督和服务治理工作的执行。 4. **流程规范**:定义服务从设计到退役的整个生命周期中的管理流程。 5. **工具支持**:选择合适的工具和技术支持服务的...
### SOA面向服务架构知识点详解 #### 一、面向服务架构(SOA)概述 面向服务架构(Service-Oriented Architecture, SOA)是一种组件模型,它将应用程序的不同功能单元(即服务)通过这些服务之间定义良好的接口和契约...
SOA的灵活性和可扩展性使其成为构建现代云原生应用的理想选择。 #### 结论 BEA的《SOA最佳实践之深入浅出SOA域模型》白皮书是理解和实施SOA不可或缺的资源。它不仅提供了SOA的基础理论和概念,还分享了实用的建模...
**服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方式,其核心理念是通过松散耦合的服务来实现业务功能。本课件详细介绍了SOA的原理及其实践,共分为10个章节,旨在提供一个...
### SOA与SOMA:服务导向架构及建模方法详解 #### 一、引言 随着软件工程的发展,从结构化编程到面向对象编程,再到组件化开发,技术不断演进。在这一过程中,服务导向架构(SOA)成为了一个重要的里程碑。SOA不仅...
2. **语义一致性**:确保不同团队和服务之间的术语和概念一致性是实现SOA的关键之一。 3. **业务流程重组**:实施SOA往往伴随着业务流程的重新设计,以更好地匹配SOA的原则。 #### 分析与设计 SOA的成功实施需要...
**SOA(Service-Oriented Architecture,面向服务架构)**是一种软件设计范式,它强调通过独立、可重用的服务来构建系统。自20世纪90年代末被提出以来,SOA经历了漫长的发展历程,逐渐成为现代企业信息化建设的重要...
面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...
- **SOA项目实施组织**:组建专门的项目团队,明确角色分工。 - **SOA项目实施支撑平台**:选择合适的技术平台和工具。 - **SOA项目实施指导文档体系**:编制详细的实施指南和标准操作规程。 - **用户信息化要求**:...