使用Java实现高度可互操作的SOA实现的注意事项?

时间:2011-06-26 10:33:12

标签: java .net interop soa

自从有人问“Which SOAP XML object serialization library for Java would you recommend?”并假设自那时以来发生了很多变化以来已经两年多了,我相信这是改善这个话题的充分理由。

所以代替在Java中实现SOA,尽可能与.NET Framework(或任何其他企业平台)进行互操作,在第一次分析中,我正在考虑Apache Tuscany但我想知道我不应该有任何理由吗?任何反馈都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

实际上,我首先考虑的是“我真的需要SOAP / XMl吗?”。

特别是:

  • WSDL并非几乎作为建议的跨平台;很容易得到效果不佳的案例(本周早些时候有一篇关于PayPal的文章)
  • XML是人类可读的...但结果是相对缓慢和臃肿

还有其他方式可以共享定义 - 例如,我们都使用API​​文档管理很好,该文档说“此API以此形状返回JSON {...}”。 WSDL 主要是似乎有助于拖放开发人员;其中我不是一个。

因此,我建议考虑更简单(想想:YAGNI)协议。对于有效载荷,我是protobuf的忠实粉丝,它故意是一个更简单的模式,因此对不同实现可以/不可以处理的内容的不确定性要小得多,同时仍然覆盖每个理智的用例。它也非常高效或兼顾CPU /带宽。 Very portable,并且具有用于定义数据的模式定义语言(.proto),但 MUCH 比WSDL更简单。震惊恐怖!它不是人类可读的......好吧,有工具可以解决这个问题:为什么要在我们的API上施加我们周的失败和基于肉体的慢单位?

答案 1 :(得分:2)

我们使用metro framework,到目前为止,它已被证明可与WCF高度互操作,包括使用相互证书身份验证和用户名令牌的复杂消息级安全性。在我们的例子中,WCF是服务器,Java是客户端。