有一些乱七八糟的想法,还不成章法,先记录下来,以后再回头看看
首先从本次项目的系统集成说起。我只说现状,不评论其是否合理或者正确。
这次只有一台应用服务器,应用服务器上同时启动多个jboss,每个jboss中有若干个(1-3)应用。
每个子系统都对外提供了一些接口,或者说是服务,供其他的子系统调用。接口的提供方式是web service,用CXF进行了封装。与此同时,由于要开放一些服务给android终端调用,所以也提供了一个servlet的地址,专门给终端用。以上就是本次多个子系统相互集成的方式
但是事实上,子系统直接调用提供给终端的servlet也是可以的,用web service可以实现的功能,用servlet照样可以实现。所以由此我就在想,究竟所谓的web service和servlet有什么区别?
相同点:
1、流程相似:客户端(可以是浏览器或者应用程序)访问指定的地址,服务端(web service或者servlet)接受参数,在内部进行逻辑处理,然后返回一个结果给客户端。这个过程是相同的,所以上面说了,用web service可以做到的事情,用servlet一样可以做到
2、底层协议基本相同:servlet是基于HTTP协议,大部分的web service同样也是基于HTTP协议
不同点:
1、servlet在服务端是只能用java实现的(本身就是JavaEE规范的一部分),而web service的服务端可以用任何语言来实现。相应的,servlet只能部署在Servlet容器内,而web service则无此限制
2、servlet返回的是纯文本(有的文章里说,servlet返回的是HTML,这个是不对的,所谓的HTML也不过是文本而已,我一个servlet做完业务逻辑以后,完全可以返回"success"等字符串,甚至可以返回一个空串),而web service返回的是语义更加丰富的XML,而且可以是有类型的
3、servlet的地址,如果不公开声明,客户端是不知道的。比如我们这个项目,提供servlet的子系统,对终端声明了servlet的地址,终端才知道这个URL,才知道往哪里调。而web service,可以通过WSDL,对外公开发布自己的地址
4、web service的请求和响应,都有一套XML规范(标准、协议),所以只要遵循web service规范,任何人或者说任何程序都能读懂web service的请求和响应。而如果用servlet的话,当然也可以自己定义一套输入和输出的XML格式,但是这个格式除了你自己,或者组织内部,是没有人懂的。所以把这个servlet放到网上,根本没有用,因为别人不知道怎么按照你的要求传递参数给你,也不知道怎么解析你的返回值。从这个角度说,web service是通用的规范
5、servlet就是JavaEE规范的一部分,定义了一组API,其实现依赖各应用服务器厂商,比如jboss、tomcat、WAS等,但无论其如何实现,都是基于JAVA平台的。而web service是一种定义了“网络服务”如何提供和使用的规范,没有规定其实现的平台,所以具有跨平台的特点
总结来说,servlet和web service不是一个层面的东西,虽然有很多共同点,但是并不容易放在一起来比较。
如果有跨平台的需求,或者需要开放给网络上的其他组件调用,那么选择web service是不错的,因为其没有绑定JAVA平台,更重要的是,web service已经有了输入输出的规范,就节省了定义和推广的成本
但是,如果只是在一个有限的系统内要实现互相调用,每个子系统都是基于JAVA平台来实现,这个服务也没有打算发布到互联网的话,那么用servlet或者RMI就更合适,因为更简单,也不需要额外的成本,并且性能也更好
分享到:
相关推荐
这份"ASP.NET与Web Service实例剖析中文版(PPT)"资料涵盖了这两个主题的关键概念、技术和实际应用,对于学习和理解这两者有极大的帮助。 ASP.NET是.NET Framework的一部分,它提供了一种用于创建动态网站、Web应用...
Web服务的核心在于其能够动态地描述、发布、查找和调用,构建了一个分布式计算环境,促进了企业间的业务协作(B2B)和个人对个人(P2P)的交互。 Web服务模型主要包括以下几个关键组件: 1. **SOAP(简单对象访问...
通过实践书中的源码,开发者可以提升自己在Delphi 6和Kylix 2环境下的网络编程能力,同时对SOAP和Web Service有更深入的理解。这不仅有助于提升个人技能,也为团队协作和企业级项目提供了有力的技术支持。
《Amazon Associates Web Service开发手册》不仅是一本实用的技术指南,也是理解和掌握Amazon Associates Web Service及其生态系统的重要资料。通过学习这本手册,开发者可以获得构建与亚马逊电子商务平台集成的Web...
以上就是关于“动态调用Web Service的例子”的核心知识点,这些内容对于理解和实现C#中的Web Service调用至关重要。在实际开发中,根据具体需求,可能还需要处理错误、管理连接、缓存响应、安全性等问题。
总的来说,这些Web Service接口在商业和贸易领域扮演着重要角色,提供即时的数据更新,帮助企业和个人做出明智的决策。开发者可以通过集成这些接口,构建出各种财务分析工具、投资顾问应用或市场监控系统。然而,...
首先,我们需要理解Web Service的基本概念。Web Service是一种基于互联网的、平台无关的应用程序接口,它通过标准的XML(如SOAP)进行通信,允许不同系统之间的数据交换。在这个场景下,我们可以找到一个提供代码...
总之,SOAP Web Service作为一种成熟且广泛采用的分布式应用程序模型,为企业和个人提供了高效、灵活的服务交互方式。随着技术的不断发展,尽管出现了RESTful API等新的服务架构,SOAP Web Service仍然在许多领域...
- **书籍推荐**:如《Web Service编程》、《.net Web 服务实用案例教程》等,帮助学生深入理解Web Service开发的相关技术和实践技巧。 综上所述,《XML Web Service开发》课程设计报告不仅要求学生掌握理论知识,还...
Web服务是一种基于互联网的软件接口,它允许不同的应用程序之间进行通信和数据交换。在这个例子中,我们关注的是一个名为“mathservice”的Web服务,它很可能是一个用于执行数学运算的服务。让我们深入探讨一下Web...
【Java Web个人博客源码详解】 本篇将深入解析基于Java Web开发的个人博客系统源码,这是一个适合初学者学习和实践的项目。通过这个项目,你可以了解到Java Web开发的基本框架、技术栈以及核心概念。 1. **技术栈...
在探讨如何在J2EE平台上开发基于XML的Web服务时,我们首先需要理解Web服务的基本概念及其重要性。Web服务是一种轻量级、独立的通信技术,它允许跨平台、跨系统的应用程序通过互联网或局域网进行交互。这种技术不仅...
通过学习“精通SOA_基于服务总线的Struts+EJB+Web Service整合应用开发”,开发者将掌握如何构建一个高效、可扩展的企业级应用架构,理解不同组件如何协同工作,以及如何利用现代软件工程的最佳实践来提高软件质量...
这些问题往往需要深入理解Web服务的工作原理,以及XFire和MyEclipse的具体配置和使用技巧。面对常见问题,开发者应当查阅相关文档、参考案例和社区论坛,结合实践经验,逐步排查和解决。 #### 15.10 小结 通过本章...
BOA Web服务器以其简洁和小巧著称,适用于小型网站或者作为个人服务器使用。它的主要特点是低资源消耗,适合在内存有限的系统上运行。BOA的设计理念是提供基本的HTTP服务,而不包含许多现代Web服务器所具备的复杂...
对于想要学习Java Web Service开发的读者来说,这个项目是一个很好的学习资源,因为它涵盖了从编写客户端代码到理解Web Service通信机制的全过程。通过阅读源码和文档,可以了解如何在Java中创建和消费Web Service,...
### 利用Java技术实现基于XML的Web服务 #### 一、引言 随着互联网技术的飞速发展,Web服务已成为跨平台、跨系统间进行...未来随着技术的发展,Web服务的应用范围将会更加广泛,为不同领域的企业和个人提供更多便利。
乐购掌上超市系统是一个基于Web Service的3G应用程序,旨在提供便捷的移动购物体验。本文档主要关注系统的概要设计,包括系统架构、各子系统功能、性能要求、用户界面设计以及运行环境等关键方面,以确保开发人员...
在IT领域,特别是软件开发与企业级应用中,Web服务(Web Service)作为一种关键技术,扮演着连接不同系统、实现跨平台通信的重要角色。其架构与规范是理解现代分布式计算环境的基础。本文将深入探讨Web服务架构及其...