[英]How to design service that can provide interface as JAX-WS web service, or via JMS, or as local method calls within Java EE framework?
使用典型的Java EE框架,如何开发和部署可以称为Web服务(具有WSDL接口),通过JMS消息调用或直接从同一容器中的其他服务调用的服务?
这里是一些更多的上下文:
目前,我负责具有以下属性的服务(简称为Service X):
我想要(或至少已被告知!):
切换到著名的(首选开放源代码)Java EE堆栈,例如JBoss,Glassfish等。
将服务X分为服务A和服务B,以便我们可以在不影响服务A的情况下关闭服务B进行维护。请注意,服务B将取决于(即需要向服务A发出请求)。
通过提供至少一个WS-I样式的接口(WSDL + SOAP + XML + HTTP)以及可能的JMS接口,使第三方更易于集成这两种服务。 将来我们可能还会考虑使用更轻量级的API(REST + JSON?Google Protocol Buffers?),但这真是太好了。
其他注意事项是:
在较小的部署中,服务A和服务B可能会在同一台机器上运行,并且使用HTTP或消息总线进行通信似乎很愚蠢; 如果它们可以在同一个容器中运行并彼此进行方法调用,则更好。
不需要与现有的临时Service X界面向后兼容,并且我们不打算将过多的现有代码用于新服务。
我对契约优先(我猜是WSDL)或(注释)代码优先的开发感到满意。
抱歉,如果我的术语有点朦胧-我对Java和Web编程有相当的经验,但是发现很难掌握所有这些企业/ SOA的知识-看来我有很多东西要学习! 我也不太习惯使用框架,而不是简单地编写调用某些程序包来执行操作的代码。
我已经下载了Glassfish,下载了一个简单的WSDL文件,并使用wsimport和一些虚拟代码将其转换为我已部署的WAR文件。
本文的第2页: 带有Java EE 6的精益服务体系结构讨论了如何使用Facade模式向远程和本地用户公开服务。 我对使用JMS并不熟悉,所以我不确定它是否适合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.