SOA与应用网格
下一代利用应用网格的SOA平台可以提供服务架构所能提供的一般功能,比如服务层的提取、数据转换与路由的中介、多协议支持、适配器等,并将其与应用网格功能结合以无缝实现服务请求负载、共享服务状态数据、服务结果缓存和事件驱动架构(EDA)的内存数据缓存。
那么怎样才能实现这些优点呢?在典型的SOA情景中,一个处理流程中的多个服务可能要与同样的数据进行交互。如果没有网格,那么每次调用服务时都必须为服务提供所需的数据。通过网格,我们实现了一种"索物标签"(Claim Check)的模式。
该模式并不使用数据库来存储消息的有效数据,而是使用应用网格把信息保存在内存中,仅为各个服务传递一个或一串数据的关键字。这意味着虽然从一个服务传递到另一个服务的关键字会根据ESB、处理引擎和传输而变化,但是通常都会包含在服务请求中作为协议头属性的一部分或XML有效负载的验证元素。服务开始具有"网格意识",可以根据需求读取数据并调用对数据集的合并运算。处理完成之后,数据集可以继续保留在内存中以进行高速读取操作,也可以以子集和合适的格式异步写入数据库作为长期存储的关系数据(见图5)。

图5:SOA与应用网格可提供对服务状态数据的内存读取,并使用"索物标签"模式最小化边界成本