【发布时间】:2012-06-25 18:13:13
【问题描述】:
看了Service Oriented Architecture Principles网站和各自的维基百科article之后,我有个想法:Erlang/OTP平台可以看成是一个SOA平台,可以在上面构建SOA应用程序。
唯一的问题是,在这样的系统中,每个服务的Service Contract 非常具体:为了在 Erlang/OTP 中调用服务,编排层必须通过 Erlang 消息或对 gen_server 的调用进行调用(取决于关于实施)。
这将不允许对 Erlang/OTP 平台范围之外的服务进行任何调用。
但是,如果我们尝试通过将所有各自的 Service 功能移动到基于 Erlang 的 Web 服务器(如 Mochiweb)中来构建每个 Service,并从本质上将每个 Service 的接口从 gen_server:call 更改为 XML,那会怎样?
这将允许使用基于WSDL 的通用服务合同从标准化“砖块”组合各种应用程序。
此外,这种方法将让我们继续使用 OTP 监管者和其他 OTP 功能,因为这样的服务仍然是 OTP 应用程序。
所以,问题是: 您认为通过使用 OTP 网络服务器 (Mochiweb) 作为服务来使用面向服务的架构方法构建软件应用程序是一个好主意吗?额外的 XML 处理层会破坏这种方法的所有优点吗?
【问题讨论】:
-
webmachine (wiki.basho.com/Webmachine.html) 对于您的非 OTP 特定环境可能值得一看。原则上,OTP 没有理由不能提供您正在寻找的东西 - 至少在您描述的一般性水平上。
-
我一直在想同样的事情:-)
-
sfinnie,在这种特殊情况下,Webmachine 和 Mochiweb 有什么区别?
-
Erlang 完全兼容流行语,但它的流行语兼容性不符合 SOA 流行语命名空间的范围。这就是说,实际上,Erlang 服务已经做了 SOA 所伪装的事情,但没有成为 SOA 世界一部分所必需的社会标准。例如,您说“编排层”,就好像它是一个与 OTP 正交的想法。此外,XML 有点令人讨厌。
标签: architecture wsdl erlang soa erlang-otp