看完后, 面向服务的架构原则网站和相应的维基百科的文章我有一个想法:二郎山/ OTP平台可视为SOA平台和SOA应用程序可以在其上建造。
唯一的一点是,该服务合同在这样的系统中的每个服务是非常具体:为了调用在二郎山/ OTP服务的编排层将不得不作出通过二郎消息调用或调用gen_server(取决于实现) 。
这不会让制作到外的Erlang / OTP平台范围的服务的任何电话。
但是,如果我们试图通过将所有相应的服务功能整合到一个基于Erlang的Web服务器构建每个服务一样了Mochiweb,基本上改变从gen_server每个服务的接口是什么:调用XML?
这将允许从基于普遍服务合同规范“砖”组成各种应用WSDL 。
此外,这种做法将让我们继续使用OTP监事和OTP功能,因为这样的服务仍然是一个OTP应用。
所以,问题是:你认为通过使用OTP Web服务器(受Mochiweb)作为服务建设与面向服务的架构方式的软件应用程序是一个好主意? 额外的XML处理层能够破坏这样的方法的所有优点?
不这样做,主要的原因是因为你将自己限制SOA的协议。 二郎实现IP的一些额外的点(监视器)的协议。 虽然你可以做到这一点,我不知道这将是值得的。
原则上,二郎神已经拥有所有SOA的想法 ,但没有SOAP和WSDL的所有膨胀的工具:)
这是我们的二郎主要应用:网络服务。 我们通常使用雅司病Appmods和这里的文章可以告诉你它怎么做了很多。 二郎一直是SOA一个很好的平台,这是因为以下几点:
1.无副作用的代码是非常easilly编写和测试。
2.分离:在Erlang进程帮助隔离在一个干净的方式,每个服务请求。
3.大多数二郎库一样mochiweb
, misultin
和Chicago Boss
已经从地面行动内置,支持用Erlang编写的SOA系统。
它是一个伟大的想法,申请背后这些框架中的任何一个你自己的OTP应用。 另一个重要原因,为什么Erlang是适合SOA是冗余的。 SOA系统需要了。 如果服务请求失败,其沿着不同的路径(当然在物理层的,其由不同的机器,在这里您OTP应用程序已被分发处理)再尝试。
给它一个镜头,好主意
SOA可以应用到很多的实现技术,而不仅仅是肥皂水Web服务,我发现它总是有益的。 例如,你可以模拟你的数据库视图和存储过程作为服务。 你可以模拟你的Java API是服务。 等等
现在,让您的实际问题:
所以,问题是:你认为通过使用OTP Web服务器(受Mochiweb)作为服务建设与面向服务的架构方式的软件应用程序是一个好主意?
人人号从SOAP和REST走向移开; 然而,通过使用OTP Web服务器(受Mochiweb)作为基于REST的服务会是个不错的想法建立与面向服务的架构方式的软件应用程序。
额外的XML处理层能够破坏这样的方法的所有优点?
这取决于你的目标是什么。 如果你只是增加一个XML层,因为你认为这是“正确的事情™”,那么你将永远有与XML层的问题,因为这将是寻找解决问题的解决方案。 如果你的目标是从客户端代码中分离出的服务器实现技术,通过为您的实体,那么附加的XML(或JSON或什么是最适合的)处理层是值得的创建普遍理解的表示。