ColdFusion中的SOA风格架构?

Hen*_*nry 5 coldfusion service soa esb coldfusion-9

公司内部系统的后端变得越来越复杂,我想探索做SOA风格架构而不是沉重的单片系统的想法.我应该从哪里开始?

我是SOA的新手.这是指个人CF实例,它们通过远程Web服务调用相互通信?如何处理诸如错误处理和服务器中断之类的事情?如果ESB的每个部分都在ColdFusion中,ESB是否会对架构有益?

DB层怎么样?他们应该共享一个巨大的数据库,还是应该自己以自己的方式存储?

谢谢

ora*_*ips 1

首先,你想实现什么目标?SOA 对于需要相对容易地更改并且可供新程序员访问的系统非常有用。另一方面,您往往会进行性能权衡,因为您最终会隔离持久性,以便其交互发生在应用程序服务器上而不是数据库中。通常这种性能权衡不是问题,但如果您正在开发高吞吐量事务系统,您可能需要通过在数据库中放置一些算法并让这些算法违反您的服务故障来进行妥协。

因此,如果您想要优点而不特别关心缺点,请首先阅读一些有关该主题的适用书籍:

您想要的趋势是具有高级服务对象的设计,其关系通过服务定位器容器通过依赖项注入进行管理。ColdFusion 的ColdSpring就是一个例子。然后,这允许对象模拟,以便您可以轻松进行单元测试。例如,如果服务位于其他服务器上,则本地有服务对象,这些对象是作为依赖项传入的代理。为了测试这些代理被模拟,因此它们不必与远程服务器通信。

关于错误处理和服务器中断。我假设您主要关心的是处理本地服务器控制之外的问题。这是使用服务代理对象的另一个原因。让这个对象负责处理超时、错误的响应值等——有效的反腐败层

至于数据库共享,我将构建表关系来反映我的服务对象关系。因此,如果相关表具有仅通过服务关联的数据,我不会强制执行任何外键约束。因此,虽然它们可能位于同一个数据库中,但这并不重要。这使您能够将这些服务和数据库表移动到其他地方,而对代码进行相对较少的更改。