有2个系统,一个是C写的,一个是java web,
现在的交互方式是在C中调用 web中的servlet,在servlet 返回 String。
有时servlet要返回xml。xml也当成String返回。有时C中也给web发xml,有时当成String发过来,在web里面解析成xml。
今天了解了一下web service,现在没感觉出来和servlet相比,有什么明显的优势。在我目前这2个项目中, 我在想有没有必要用 web service 替换 servlet。
想我这种项目,web service 比 servlet 更适合么??
首先建议你搜索一下WebService的定义,它是一个标准接口协议,一般用于向多个不同的应用提供接口服务的,它的原理和你用servlet相互调用是基本上一致的,只不过它是一个公开的协议,目前主流和语言大多提供了封装支持,封装后对于开发人员来说就是直接调用API,并且能返回多种数据类型,免去了你解析、分析、数据转换的麻烦。
对于你谈到的情况,我认为如果这2个系统都是你们公司开发的,甚至都是你们项目组开发的,大可不必使用WebService,因为你使用任何新技术都会带来学习成本。如果两个系统分属不同的公司或两边的开发都沟通不太方便的话,或者以后很有可能有更多的系统接入进来进行数据交互,建议采用WebService,可以明确接口,方便管理和调试。
WebService提供方是根据调用接口生成WSDL(说白了就一个xml),发布出来。Webservice调用方解析这个wsdl,了解调用接口的情况。之后发SOAP请求过去,调用WebService提供方的接口。
至于你说webservice中能直接传xml,那就是你接口的参数是一个字符串。WebService提供方拿到这个参数去解析字符串呗。
不建议你去用WebService。通过解释上面的整个过程可以知道,你可以想到整个过程非常慢。WebService的唯一好处在于跨平台。如果你是搭了个WebService给其他人,这还是蛮合适的。如果就2个系统之间用,真没必要。
如果只是很简单的信息,例如字符串,数字,用servlet是很方便的。如果是结构化的信息,例如对象,那么可以考虑1,webservice,2restful。Restful也是一种webservice,这里分开说只是为了和传统的xml区分。我个人觉得xml的webservice太可怕了,如果两边都能理解restful,restful是很好的选择,restful对对象和复杂数据结构的表现是非常直接和简单的。