SOA 架构设计探讨
随着信息化技术不断发展,技术应用的不断增长、不断创新,信息系统开发建设也需要走专业化、多样性的建设之路,来帮助政府、企业解决信息化面临的难题,提升政府、企业服务整合能力。对我们软件开发公司也从原来的单个项目快速开发、快速构建能力,逐步过度到系统与系统间的能力整合,最终过渡到软件的理想境界软件服务提供能力。公司相关领导非常重视对新的技术架构研究,规划搭建一套无边界的服务能力整合平台,来实现业务集中、流程整合。
软件架构发展历程
在这里对软件总体技术架构发展历程做个简单介绍,软件技术架构软件发展也不是一蹴而就的,它与特定信息化发展阶段密切相关,遵循基本事务发展规律“点、线、面”的原则。软件技术架构发展经历三个大的阶段,一是、基于消息传递模式,实现应用间点对对的连接,实现简单、基本的信息间交互和数据传递;二是、应用系统间整和,通过HUB 模式整合应用,管理大量的连接和系统;三是、面向服务体系的架构,通过企业服务总线实现服集中,流程集中,借助对应的标准实现真正的随需而变。
总体技术架构
采用基于SOA 架构的方式来进行实现,通过企业服务总线
(Enterprise Service Bus)实现特有的服务集成平台(Service Integration Platform),来实现真正的随需而变支撑相关应用。总体架构主要包括三层通用的体系架构:
● 数据层:提供基础数据支撑服务,包括对通用的数据库数据、
LDAP 数据、Active Directory数据,NoSQL DB数据、Memory
(内存数据)
● 服务集成层: 提供服务集成服务能力,通过企业服务总线(E
SB)整合,提供无边界服务主要包括基础服务整合、相关业务整合。
⏹ 基础服务组件的整合:利用开源软件已实现一些成熟通用
的组件,整合进入服务集成平台,提供统一的引用,服务
调用。这里主要包括ESB 组件、工作流、报表、安全认证、
表达式引擎、规则引擎、日志、ORM
组件、表单组件、JN
DI服务。
⏹ 基础业务整合:提供通用的基础功能服务进行统一管理,
这里通用开发组件(用户、组织、角色、权限)、POJO 服
务、RESTful 服务、GPS 基础服务、GIS 服务、硬件相关服务、
仓储服务、运输服务。
⏹ 服务组装:通过已有服务的组装,发挥集合效益。例如通
过单点登陆(认证组件)+权限管理(Acegi )+用户、角
色、权限服务实现跨平台间服务认证体系。
● 展现层:提供对应的展现形式.
ESB 组件
ESB 提供了网络中最基本的连接中枢,提供比传统更为廉价的解决方案,解决不同应用之间的技术差异,
让不同的应用服务器协调运
作,实现了不同服务之间的通信与整合。
主要特性如下:
● 服务创建、托管—暴露和部署可重复利用的服务容器
● 服务媒介 — 隐藏服务间消息格式和协议,从消息中分离业务
逻辑,使得服务调用与本地无关
● 消息路由 — 路由,过滤,集合,和重新序列化基于消息和规
则
● 数据转换 — 交换数据通过各种格式和转换协议 。
主要产品比较如下:
从上述产品比较,Mule 和Servicemix 都实现了ESB 的核心功能,都提供了广泛的可用组件和良好的扩展性,从功能上看差别不大,但从稳定性、易用性和性能上比较,Mule 可能是更好的选择。
工作流组件
业务流程管理,是一套达成企业各种业务环节整合的全面管理模式。企业、政府以及其它各种组织,为了达到其业务目标,而执行的一系列活动,这些活动须由两个或两个以上的人或IT 系统执行,串行或并行,活动的执行需要满足一定的规则和条件。
主要产品如下:
从上述产品比较,Activiti 、JBPM5.0的产品都是业界比较好的工作流(BPM )组件,从两个产品比较Activiti 的相关的功能相对丰富些,倾向于Activiti 产品整合。
报表组件
报表是企业管理的基本措施和途径,是企业的基本业务要求,也是实施 BI 战略的基础。简单点讲就是利用表格、
图表等格式来动态
显示数据的数据软件。它主要需要提供了高效的报表设计方案、强大的报表展现能力、灵活的部署机制,支持强关联语义模型,并且具备强有力的填报功能和olap 分析,为企业级数据分析与商业智能提供了高性能、高效率的报表系统解决方案。
主要产品比较如下:
报表工具的完整性主要体现在它是否具有强大的信息展现功能; 能否覆盖不同类型的数据源和格式; 能否部署、集成在不同的运行平台和环境。综上所述,Eclipse Birt具有的优势还是比较明显。
身份认证
身份认证是在计算机网络中确认操作者身份的过程。身份认证主要包括提供一种用来解决在统一平台上进行用户集中认证的方案,及其根据系统资源提供一个可配置权限过滤体系。
主要产品比较如下:
综上所述,通过Central Authentication Service解决单点登录问题,结合Acegi Security解决权限分配问题。
其他产品
其他有技术特性的优秀组件还是挺多的,包括规则引擎(JBoss Drools 、Open Drools)、表达式引擎(JSEL 、Aviator2,MVEL 、OGNL )日志(Log4j )、缓存组件(Memcache 、Oscache 、 EhCache )通过服务集成的方式逐步并入服务集成平台。
SOA 架构设计探讨
随着信息化技术不断发展,技术应用的不断增长、不断创新,信息系统开发建设也需要走专业化、多样性的建设之路,来帮助政府、企业解决信息化面临的难题,提升政府、企业服务整合能力。对我们软件开发公司也从原来的单个项目快速开发、快速构建能力,逐步过度到系统与系统间的能力整合,最终过渡到软件的理想境界软件服务提供能力。公司相关领导非常重视对新的技术架构研究,规划搭建一套无边界的服务能力整合平台,来实现业务集中、流程整合。
软件架构发展历程
在这里对软件总体技术架构发展历程做个简单介绍,软件技术架构软件发展也不是一蹴而就的,它与特定信息化发展阶段密切相关,遵循基本事务发展规律“点、线、面”的原则。软件技术架构发展经历三个大的阶段,一是、基于消息传递模式,实现应用间点对对的连接,实现简单、基本的信息间交互和数据传递;二是、应用系统间整和,通过HUB 模式整合应用,管理大量的连接和系统;三是、面向服务体系的架构,通过企业服务总线实现服集中,流程集中,借助对应的标准实现真正的随需而变。
总体技术架构
采用基于SOA 架构的方式来进行实现,通过企业服务总线
(Enterprise Service Bus)实现特有的服务集成平台(Service Integration Platform),来实现真正的随需而变支撑相关应用。总体架构主要包括三层通用的体系架构:
● 数据层:提供基础数据支撑服务,包括对通用的数据库数据、
LDAP 数据、Active Directory数据,NoSQL DB数据、Memory
(内存数据)
● 服务集成层: 提供服务集成服务能力,通过企业服务总线(E
SB)整合,提供无边界服务主要包括基础服务整合、相关业务整合。
⏹ 基础服务组件的整合:利用开源软件已实现一些成熟通用
的组件,整合进入服务集成平台,提供统一的引用,服务
调用。这里主要包括ESB 组件、工作流、报表、安全认证、
表达式引擎、规则引擎、日志、ORM
组件、表单组件、JN
DI服务。
⏹ 基础业务整合:提供通用的基础功能服务进行统一管理,
这里通用开发组件(用户、组织、角色、权限)、POJO 服
务、RESTful 服务、GPS 基础服务、GIS 服务、硬件相关服务、
仓储服务、运输服务。
⏹ 服务组装:通过已有服务的组装,发挥集合效益。例如通
过单点登陆(认证组件)+权限管理(Acegi )+用户、角
色、权限服务实现跨平台间服务认证体系。
● 展现层:提供对应的展现形式.
ESB 组件
ESB 提供了网络中最基本的连接中枢,提供比传统更为廉价的解决方案,解决不同应用之间的技术差异,
让不同的应用服务器协调运
作,实现了不同服务之间的通信与整合。
主要特性如下:
● 服务创建、托管—暴露和部署可重复利用的服务容器
● 服务媒介 — 隐藏服务间消息格式和协议,从消息中分离业务
逻辑,使得服务调用与本地无关
● 消息路由 — 路由,过滤,集合,和重新序列化基于消息和规
则
● 数据转换 — 交换数据通过各种格式和转换协议 。
主要产品比较如下:
从上述产品比较,Mule 和Servicemix 都实现了ESB 的核心功能,都提供了广泛的可用组件和良好的扩展性,从功能上看差别不大,但从稳定性、易用性和性能上比较,Mule 可能是更好的选择。
工作流组件
业务流程管理,是一套达成企业各种业务环节整合的全面管理模式。企业、政府以及其它各种组织,为了达到其业务目标,而执行的一系列活动,这些活动须由两个或两个以上的人或IT 系统执行,串行或并行,活动的执行需要满足一定的规则和条件。
主要产品如下:
从上述产品比较,Activiti 、JBPM5.0的产品都是业界比较好的工作流(BPM )组件,从两个产品比较Activiti 的相关的功能相对丰富些,倾向于Activiti 产品整合。
报表组件
报表是企业管理的基本措施和途径,是企业的基本业务要求,也是实施 BI 战略的基础。简单点讲就是利用表格、
图表等格式来动态
显示数据的数据软件。它主要需要提供了高效的报表设计方案、强大的报表展现能力、灵活的部署机制,支持强关联语义模型,并且具备强有力的填报功能和olap 分析,为企业级数据分析与商业智能提供了高性能、高效率的报表系统解决方案。
主要产品比较如下:
报表工具的完整性主要体现在它是否具有强大的信息展现功能; 能否覆盖不同类型的数据源和格式; 能否部署、集成在不同的运行平台和环境。综上所述,Eclipse Birt具有的优势还是比较明显。
身份认证
身份认证是在计算机网络中确认操作者身份的过程。身份认证主要包括提供一种用来解决在统一平台上进行用户集中认证的方案,及其根据系统资源提供一个可配置权限过滤体系。
主要产品比较如下:
综上所述,通过Central Authentication Service解决单点登录问题,结合Acegi Security解决权限分配问题。
其他产品
其他有技术特性的优秀组件还是挺多的,包括规则引擎(JBoss Drools 、Open Drools)、表达式引擎(JSEL 、Aviator2,MVEL 、OGNL )日志(Log4j )、缓存组件(Memcache 、Oscache 、 EhCache )通过服务集成的方式逐步并入服务集成平台。