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