SOA的一个很大的价值就是整合多个系统。比如人力资源管理,OA、固定资产、采购管理等等。其中一个很重要的需求就是这些系统都建立在统一的一套组织架构管理之下,而不是人力资源管理,OA、固定资产、采购管理等等这些系统的组织结构互相独立,不同的系统采用不同的用户名和密码。
虽然大家可以用SSO或者单点登陆来实现统一登陆的问题,但是单点登陆是用来整合历史遗留系统的,而不是鼓励大家每套系统都采用自己的组织架构和权限控制。
咱们先说一个场景:比如现在用户迫切要求统一所有的组织管理,即任何系统都必须建立在一个组织结构下,而用户的各个系统又分布在地理位置不同的数据库里。
SOA的一个很大的卖点就是提供整合这些异构系统之间的架构,所以大家肯定会想到采用SOA的架构去实现。首先人力资源管理采用SOA的架构,抛出一些Service,比如得到所有的员工、部门等组织结构树,由一个员工ID得到员工的所有信息。这个架构是没有问题的,却可能给别的系统带来严重的性能问题。比如:固定资产系统,固定资产卡片,要求所有的固定资产卡片上都必须记录 卡片编制人,编制部门,审批人审批部门,咱们通常只会记录人员和部门的ID值,如果在一个数据库里,直接通过SQL语句的关联查询,就会由ID得到员工和部门的名字,现在采用SOA架构,每一行数据都需要远程访问一次人力资源管理的Service,由ID得到名字,如果这样做很傻的话,有人可能想到先一次远程服务,得到所有的员工、部门列表,再写一个Service,由ID得到名字,但是这个和传统的数据库,做关联查询,由ID得到名字的效率差距还是甚远的。
推而广之,物资系统采用统一的物资编码,别的系统都不须有物资编码基础表,而必须建立在一个物资编码基础表基础之上,这些系统之间的数据库互相独立,那么,SOA究竟能给这些系统带来什么样的价值呢?
传统的数据库可能无法解决上述问题。而XML型数据库可能是解决这个问题的答案。SOA必须建立在真正的XML型数据库上,才可能发挥其整合异构系统架构的巨大作用。
相对而言,关系型数据库解决了固定流程下效率的提高,对于信息简单、处理数量巨大的应用来说,关系型数据库是最好的选择。关系型数据库与层次型数据库面对了两种不同的世界,前者是企业单一信息应用的王者,后者的强项是企业内不同应用之间、不同企业之间的信息处理。
原文:http://blog.csdn.net/bjblues/archive/2007/01/25/1492857.aspx
(责任编辑:铭铭 mingming_ky#126.com TEL:(010)-68476636)