数据服务开发人员
或许我们应该称他为信息结构工程师。他要负责提取底层的数据层并将其暴露给架构中的其它层,甚至提供给外部的其它系统。比如,假如购物车业务服务允许多种支付方式(美国运通卡、Visa和Pay Pal)。另外,不同产品(书籍、DVD、衣物等)分别由不同的库存系统进行管理。我们需要隐藏这些复杂的东西,并可以随时添加其它的支付服务和库存管理方式。因此,我们使用数据服务来为购物车提供数据的逻辑视图。也就是说,我们创建了一个可以提供给购物车的标准的支付与库存信息。只要购物车使用的是这些标准消息,那么底层的各种支付与库存服务的物理实现就毫无干系。购物车服务只需要识别这些信息的标准格式,而标准信息到接收系统的转换工作就交给数据服务层。
这一层的开发人员(或架构师)必须具备数据建模和数据库设计领域方面的知识。即使公司有工具可以管理这一层(我们也建议这样做),管理员这一职位也是需要的。
数据库开发人员
现在各个企业通常都有这一层,这就是DBA工作的地方。在SOA环境下,DBA必须更紧密地与架构中其它层的开发人员合作。他们必须明白各层的安全与性能要求,并保证底层的数据模型能够满足这些要求。因为旧系统的集成在当前的SOA建设中还很常见,所以通常都会需要DBA创建结构的视图,甚至建立新的ETL过程为架构中的其它层提供数据视图。
安全开发人员
虽然安全专家们可以不做实际的开发工作,但是必须有人或者有团队能够了解当前SOA所面临的安全方面的挑战。SOA可能会产生以下威胁:
· 暴露原本不可暴露在防火墙外的旧系统
· 多系统之间的免登录切换需要信任
· 将一条信息分别按不同的安全准则发往多个合作伙伴
· 将信用卡或其它隐私问题暴露到网络上
现在的多层安全模型在B2B类型的SOA上尚存在许多不足。这一领域的开发人员必须对信息协议、安全性最佳实践、网络架构、法案(比如HIPAA、SOX、PCI)和WS-*或其它标准有深入的了解。
总结
我们可以看到,成功实现SOA需要多种截然不同的开发技能。要找到一个熟练掌握所有技能的人是不实际的。即使有这么一个人,那么他也只可能在你的架构团队里。这个架构的高明之处在于它能够把各层的问题分解并解决掉。一个业务服务可以由各层的许多人员共同完成。这需要坚固的治理、扎实的技巧和团队协作,而这也正是为什么需要在合适的位置安排合适的人来解决SOA中出现问题的原因。下一篇文章将讨论SOA系统中测试人员所需技能,以及他们与开发团队的关系。
文章来源于领测软件测试网 https://www.ltesting.net/