1. SOA
SOA 是服务面向(Service Oriented)的基础框架,其目标为:
- 业务对齐和敏捷(Business Alignment & Agility),这是SOA框架的终极目标
- 统一的编程模型和开发流程(Unified Programming Model & Development Process)
- 强化反馈环(Strengthen Feedback Loop),降低失败成本
- 政策和控制(Policy Enforcement)
- 测试友好(Testing Friendly)
- 运维友好(Ops Friendly)
2. SOA 框架主要部件
- 高性能RESTful服务框架,包括服务端(Service-Side)框架和客户端(Client-Side)框架
- 合同驱动(Contract Driven)代码生成工具,自动从WSDL生成服务端和客户端代理(Proxy)
- 服务资产库(Service Repository),服务元数据中央数据库(Single Sourth of Truth)
- 服务注册表(Service Registry),提供动态服务路由查询(lookup)
- 安全和配置服务,统一和中央的安全和配置信息管理,直接和目标服务进行同步
- 实时和历史监控,提供实时和历史服务性能的监控dashboard,保障服务SLA
3. SOA 架构
SOA 平台架构主要划分为设计开发时平台和运行时平台两大部分:
设计开发时平台主要有代码生成工具和服务资产库组成,主要涉及的角色包括:
- 架构师 - 负责服务的架构,设计和评审工作。
- SOA开发者 - 负责服务的设计,实现和单元测试。
- SOA测试员 - 负责对服务进行集成和性能测试。
架构师和SOA开发者首先在服务资产库中注册服务,然后业务需求定义服务接口合同(WSDL),然后开发者通过代码生成工具从WSDL生成出服务端(或者客户端)代码,并根据具体业务实现服务的业务逻辑和做单元集成测试,服务在通过测试人员测试后会被最终部署到生产环境。
运行时平台主要有服务端和客户端框架组成,同时包括服务监控和安全策略控制部件,运行时主要涉及的角色是:
- 运维工程师 - 监控服务的实时和历史性能,并对服务进行安全控制和配置管理。
服务端和客户端框架会将运行时性能以dashboard的方式展示出来,供运维人员监控服务的性能和健康状况,同时运维人员可根据需要对服务进行动态配置和进行安全设置。
服务注册表(Registry)是设计开发时和运行时平台之间的一个桥梁,它定期同步服务资产库(Repository)中的服务路由信息并做本地缓存,服务客户端在运行时通过服务注册表进行动态地服务路由查询。