独特的数据处理方式
SOA的双重优势是开发常用功能的服务以减少多余的开发工作,以及利用标准化接口或外壳使应用功能可以跨系统使用,从而增加应用的灵活性。而SOA松耦合的、抽象的本质对于服务使用、处理和生成的数据具有深远意义。
桑•帕克在喜达屋酒店集团开始部署SOA时曾发问:“到底是把它分散开还是提供一种集中服务?”这个问题引导这家公司沿着很多企业走向SOA时的必由之路走下去:即用一种基于对数据含意的了解(无论数据来自何方)来处理数据的服务方式。斯驰米勒强调:“SOA凸显了数据不一致这一事实。”
在企业中以服务的形式提供数据源是一项宏大的工程。对传统的集成工作而言,这意味着了解每个应用中的上下文关系,以及数据在交付给其他应用时该如何转换。对SOA来说,这需要了解数据与不同的业务流程间的多种关系和依存性。
专家认为解决这种环境的复杂性,需要在建立数据架构模型前进行IT投入,要求企业系统地考虑数据的依存性和上下文关系。IDC的莫里斯说,发现数据模型和建立映射的工作量占到SOA数据架构开发工作量的70%左右。
喜达屋的帕克说:“这是非常值得做的准备工作。否则,你会在实施项目很长时间后才发现有10个不需要的字段、10个需要但在设计服务时不知道的字段,以及5个与设想不一致的字段。当你拥有一个具有数百个服务的复杂系统时,这些接口必须被明确下来。”
当服务交换数据时,发生误搭配和非对应转换的可能性大大增加。Common Sense的德帕尔马说:“SOA把这个问题推升到了最高层面。”他说,“当你尝试建立第一个3路或4路数据服务,你会很快发觉数据管理的问题。没有最初的数据架构努力,SOA就无法扩展到整个企业。”
专家称,非常好的的解决办法是开发一个数据服务层,它会对将要使用的数据进行分类,将其上下文关系展示给其他服务。这种方法把数据逻辑与业务逻辑分离开来,把数据访问和处理作为由业务流程调用的独立服务集合对待。喜达屋就是采用了这种办法。