当大型需求被数个公司分割开来,各公司系统相互交换数据的问题就会接踵而来。毕竟是多家不同的公司的产品,研发开发语言、采用技术框架基本上是百花齐放。怎样让自家系统提供的服务具有跨平台、跨语言、跨各种防火墙,让其他公司的研发用起来没障碍和爽呢?进过前期的技术调研和实践,最终将目光放在了轻量级 webService 服务上面
1. WebService 服务技术的关键点XML:
做为 WebService 的基本数据表示,特点即容易组织和分析,而且又与开发平台无关。
SOAP: 做为 WebService 的传输协议,特定能运行在任何传输协议(TCP/UDP..)上面,将程序中的对象编码为 XML 的规则,执行远程调用。
WSDL: 做为描述 WebService 的语言,你能很清晰的知道提供的服务是什么、入参、返回的数据,机器和人都很容器进行阅读。
公司自己实现 WebService 服务铁定不现实,如果你公司有一群热爱技术的大牛、有一颗想造*的匠心,有老总的支持,还是可以放手一战的。
公司自己实现 WebService 服务铁定不现实,如果你公司有一群热爱技术的大牛、有一颗想造*的匠心,有老总的支持,还是可以放手一战的。
目前已有的 WebService 开发框架有: Axis、Axis2、Xfire、CXF、JAX-WS。
除了 JAX-WS 为 JDK 1.6 发布的的 WebService 开发框架以外,其余的都是第三方开源框架。
其中 Axis 和 XFire 随着技术更新和发展已经慢慢的谈出了人们的视线,并且官方已经有很长时间没有更新,这里暂且不表。
CXF是Apache旗下一个重磅的SOA简易框架,它实现了ESB(企业服务总线)。
CXF 原型来源与 XFire + Client, 就像 Struts2 来自 WebWork 一样,当让你也能预言到 XFire 的命运会和 WebWork 一样,会淡出开发者的视线。
Axis2 是 Apache 下的一个重量级 WebService 框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是 WebService 框架的集大成者。
Axis2 不但能制作和发布WebService,而且可以生成Java和其他语言版WebService客户端和服务端代码。这是它的优势所在。
丰满意味着臃肿和庞大,不可避免的导致了Axis2的复杂性,听使用过她的人,它所依赖的包数量和大小都是很惊人的,打包部署发布很麻烦。
源于对第三方开源框架的恐惧和颤抖,结合自身公司的业务复杂度,技术团队一致选定 JDK JAX-WS 作为公司的 Webservice 框架。
2. JAX-WS 服务端无 MVC 框架开发实践
我这里的说的无 MVC 框架指的是没有使用任何像 Struts/Spring MVC/WebWork....这些东西,Java EE 项目最纯真的 Servlet 时代。
在 main 函数中静态方式防部的方式这里就不提了,咱需要 webServer 服务和 web 项目一起启动起来,同呼吸共命运。