1. 什么是SOA?
SOA(Service-Oriented Architecture)是面向服务的构架的简称,SOA是一种方法,它将企业中的应用组织成可重用的服务,以达到通过快速组合和重用这些服务来响应业务需求的变化。相对于组件,SOA提高了重用的层次,可提供更粗粒度的重用。
2. SOA的目标是什么?SOA的关键点是什么?
SOA的目标是通过构建可重用的服务来提高IT响应业务需求的能力。
SOA的关键是基于标准的、松耦合的、可重用的服务。
3. SOA可带来什么好处?
首先SOA提供可快速重用的服务,提高了IT和业务整合效率,可更快的交付产品;其次使IT能更好符合业务的需求;最后SOA能屏蔽IT环境的底层技术复杂性。
4. SOA标准化情况如何?
SOA所应对的是异构的系统,因此使用标准化的技术来降低系统间的交互至关重要,SOA所涉及的主要标准化技术包括:
Ø XML: XQuery用来查询XML中的数据,XSD用来定义XML的格式,XSLT用来在不同各式的XML格式间进行转换。
Ø Web服务: SOAP用于Web服务的访问,WSDL用来描述可被重用的服务,UDDI用来描述服务的发现方式;
Ø JMS消息: 在SOA中进行异步消息处理时采用J2EE标准的JMS方式来连接符合此标准的消息服务器,如WebSphere MQ、WebLogic MQ 等。
Ø 数据库访问: SQL,JDBC,不需要再多作解释。
Ø 业务流程管理: BPEL(Business Process Execution Language),SOA中会涉及业务的组合,因此采用标准的语言来对业务流程进行描述是必不可少的。
5. SOA系统的主要构成是什么?
不同厂商的SOA系统会有各自的特性,但要实现SOA的意图,一些共性的功能还是不可缺少的,从目前看,一个SOA系统至少应包含下面的功能:
Ø 服务管理:服务管理是SOA系统的核心功能,它实现对可重用服务的统一管理,简化服务的部署和使用。
Ø 数据管理:无论底层使用的是哪家的数据库系统,SOA系统都应提供一个统一的数据管理视图,可以一致的方式访问数据服务,便于数据服务的创建、修改和重用。
Ø 安全管理:当业务以服务方式暴露出来后,需要一套管理机制来保证只有有权限的角色才能访问被允许访问的服务,防止未经授权的访问。单点登录、日志记录、错误和异常处理等都属于安全管理所提供的服务。
Ø 服务构建:提供一个开发环境,可以高效开发新的服务和将遗留系统的功能包装成可重用的服务。
Ø 流程管理:SOA通常会连接一个业务流程中的多个服务,以可视化的方式来设置这些服务之间的使用方式是SOA系统必须提供的功能,如果采用编码方式来实现,效率太低,而且也不能灵活地修改流程以适应业务需求的多变性。
Ø 门户:为使用SOA的系统和用户提供统一的访问模式。
6. 目前SOA的主要供应商?
BEA,IBM,Microsoft,Oracle…,这个列表可能会随着时间而发生变化。各家厂商对SOA的实现都有其自身的特性。
7. 实施SOA的最佳实践?
Ø 渐进式:实施SOA不可能采用一步到位方式将现有系统一次性全部变成SOA的系统,而应该采用循序渐进方式将现有系统逐步转为符合SOA系统。这样可减少系统切换风险,并且可以在逐步实施中积累经验。
Ø 参考构架:SOA的供应商通常会将自己的成功实施经验总结出来,形成一个参考构架,作为新实施SOA企业的参考指南,帮助企业明确实施SOA要达成的目标和合适的方法。通过参考构架可极大提高实施SOA的概率。