在阅读了面向服务的架构原则站点和相应的 Wikipedia文章后,我有一个想法:Erlang/OTP 平台可以被视为一个 SOA 平台,并且可以在其上构建 SOA 应用程序。
唯一的问题是这样一个系统中每个服务的服务契约是非常具体的:为了调用 Erlang/OTP 中的服务,编排层必须通过 Erlang 消息或调用 gen_server 进行调用(取决于实现) .
这不会让对 Erlang/OTP 平台范围之外的服务进行任何调用。
但是,如果我们尝试通过将所有各自的 Service 功能移动到基于 Erlang 的 Web 服务器(如 Mochiweb)中来构建每个 Service,并从本质上将每个 Service 的接口从 gen_server:call 更改为 XML,那会怎样?
这将允许使用基于WSDL的通用服务合同从标准化的“砖块”组合各种应用程序。
此外,这种方法将让我们继续使用 OTP 管理器和其他 OTP 功能,因为这样的服务仍然是 OTP 应用程序。
所以,问题是:您认为通过使用 OTP 网络服务器 (Mochiweb) 作为服务来使用面向服务的架构方法构建软件应用程序是一个好主意吗?额外的 XML 处理层会破坏这种方法的所有优点吗?