由于我们正在将我们的应用程序恢复到SOA设计的开始阶段,我有一些问题我无法获得清晰的答案/图片。在SOA设计中使用数据访问层(DAL)
我一直在做大量的阅读,主要围绕Thomas Erl的书籍,并遵循了理解什么是任务服务,实体服务和实用程序服务的设计模式。
我磕磕绊绊的是整个DAL概念的外观。所以这更多的是对理解或澄清的验证,以便为我们的平台提供最佳方法。
因此背景。我们目前有几个基于Web的电子商务应用程序,它们几乎都是独立存储的,而且几乎是彼此的副本。我们支持应用程序,例如守护程序和其他杂项Web服务。这些应用中的许多应用大于5年,仅基于技术(模型1)。我们所有的应用都以拍卖销售为中心。因此,在销售活动期间,我们将接受用户的出价,确定谁获胜并将该信息显示回来。每个销售活动都有一定量的时间可供用户使用。
该公司正在朝着SOA解决方案迈进,因为我们最终做的很多事情不仅可以在我们的团队之间共享,还可以在其他团队之间共享。
因此,我对DAL的理解是,它本身就是一种服务,它将位于数据之上,在这种情况下是不同的数据库 - MSSQL,ORACLE,MSSQL。这些数据库中的每一个都有不同的模式(Oracle)等。
所以服务(任务,实体,实用程序和表示层如果需要)将调用DAL来检索数据。 DAL有责任从消息的内容中知道为了完成请求而需要做什么。
例如,我们有一个安全服务候选人。此服务需要使用LDAP进行身份验证,并根据为给定应用程序存储的数据进行授权。
这里的想法是将创建一个实用程序服务来包装与LDAP通信所需的所有操作,并且安全服务将调用实用程序服务并访问DAL以获取授权数据。 DAL然后有责任去正确的数据库/模式来检索信息。信息将采用XML格式(标准SOA通信)。
那么,我在这里的正确轨道?其他人是否做过类似的事情?我还需要考虑哪些其他事项(目前我们可以统计一个小时内的平均出价数量)。
是否每个服务都有自己的DAL - 例如,安全服务是否应将DAL作为服务的一部分,还是应将DAL作为所有服务都可以使用的共享服务?
这是一个很好的方向 - 买入(免费)与构建 - 回顾产品和看来,它会让我的生活变得更轻松。现在只需要卖理想。 – boyd4715