`

我个人理解的什么是web service

阅读更多
有一些乱七八糟的想法,还不成章法,先记录下来,以后再回头看看

首先从本次项目的系统集成说起。我只说现状,不评论其是否合理或者正确。

这次只有一台应用服务器,应用服务器上同时启动多个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就更合适,因为更简单,也不需要额外的成本,并且性能也更好
分享到:
评论

相关推荐

    stealth:隐形-安全,对等,私有和自动化的Web浏览器

    它是由Chromium和Firefox的前撰稿人构建的,并且出于对Web浏览器应如何理解语义Web的个人见识而构建。 Stealth赋予其用户(而非网站开发人员)权力,他们可以(,会和确实)滥用技术来损害Web浏览器最终用户的自由...

    holbertonschool-web_back_end

    :Colombia: holbertonschool-web_back_end 先决条件 Holberton基金会9个月 建于 Python 3xx PycodeStyle mypy(注释) 贡献 -Santiago Yanguas-Holberton学生 版本控制 对于我在霍尔伯顿学校的学习 s -圣地亚哥·...

    asp.net面试题

    答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它. 5.值类型和引用类型的区别?写出C#的样例代码。 答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个...

    JAVA核心技术

    软件设计模式太多,就我的理解简单说一下最常见的MVC模式。??MVC模式是1996年由Buschmann提出的:??模型(Model):就是封装数据和所有基于对这些数据的操作。??视图(View):就是封装的是对数据显示,即用户界面。...

    asp.net知识库

    我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18 的算法(C#) 一组 正则表达式 静态构造函数 忽略大小写Replace...

    WCF全面解析(套装上下册) 高清pdf 带书签 part2(共4)

    如果读者具备了DCOM、Enterprise Library Service、.NET Remoting、Web Service、MSMQ及SOA相关的基础,对阅读此书尽快掌握WCF将大有裨益。 名人推荐我经历了COM时代,一直把Don Box的《COMM本质论》奉为我的指路...

    WCF全面解析(源码)

    如果读者具备了DCOM、Enterprise Library Service、.NET Remoting、Web Service、MSMQ及SOA相关的基础,对阅读此书尽快掌握WCF将大有裨益。 名人推荐我经历了COM时代,一直把Don Box的《COMM本质论》奉为我的指路...

    WCF全面解析(下册)

    如果读者具备了DCOM、Enterprise Library Service、.NET Remoting、Web Service、MSMQ及SOA相关的基础,对阅读此书尽快掌握WCF将大有裨益。 名人推荐我经历了COM时代,一直把Don Box的《COMM本质论》奉为我的指路...

    WCF全面解析(上册)

    如果读者具备了DCOM、Enterprise Library Service、.NET Remoting、Web Service、MSMQ及SOA相关的基础,对阅读此书尽快掌握WCF将大有裨益。 名人推荐我经历了COM时代,一直把Don Box的《COMM本质论》奉为我的指路...

    《Google Android开发入门与实战》.pdf

    从技术实现上,讲解了5个android平台下的完整综合实例及源代码分析,分别是rss阅读器、基于google map的个人gps、豆瓣网(web 2.0)客户端、在线音乐播放器、手机信息查看助手。本书注重对实际动手能力的指导,在遵循...

    Google.Android开发入门与实战

    从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别是RSS阅读器、基于Google Map的个人GPS、豆瓣网(Web 2.0)客户端、在线音乐播放器、手机信息查看助手。《Android开发入门与实战》注重对实际...

    (2.0版本)自己写的struts2+hibernate+spring实例

    应该看到我在service层的find方法上的注释.说当前版本因为原来使用find方法是从代理中取.而spring默认的数据持久话只能包含业务层和数据层.不能包含界面层.所以用find方法会导致session失效.故用get方法.现在这个...

    C#微软培训资料

    超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以...

    RESTful服务快速开发框架Rabbit.js.zip

    你甚至很快就可以理解它的底层实现(也许只需要5分钟)。Rabbit.js本身的代码量并不大,这得益于很多NodeJS开源库的支持,通过 一些有效的组合,成为这样一个简单而清晰的开发框架。 Rabbit.js 能够提供一个清晰的...

    二十三种设计模式【PDF版】

    为能和大家能共同探讨"设计模式",我将自己在学习中的心得写下来,只是想帮助更多人更容易理解 GoF 的《设计模式》。由 于原著都是以C++为例, 以Java为例的设计模式基本又都以图形应用为例,而我们更关心Java在中间件等...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:  第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;  ...

    新版Android开发教程.rar

    � MVC 和 Web APP 架构 Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的...

    .htaccess

    百度首页 | 百度空间 | 登录 广告停放提高网站流量,centos学习 主页博客相册|个人档案 查看文章 .htaccess怎么用2007-05-16 14:04(文章来源)...这里有一篇很容易让人理解的.htaccess介绍,作为入门文章非常的适合...

    Android高级编程--源代码

    8.2.3 将Earthquake Service移动到后台线程 262 8.3 创建一个Toast 263 8.3.1 定制Toast 263 8.3.2 在工作(worker)线程中使用Toast 265 8.4 Notification简介 266 8.4.1 Notification Manager简介 267 8.4.2 ...

Global site tag (gtag.js) - Google Analytics