web service 学习 2 -- 什么时候应该使用web service
跨越防火墙的通信
如果你的应用程序有成千上万的用户,而且他们都分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。那是因为客户端和服务器之间通常都会有防火墙或者代理服务器。在这种情况下,你想使用dcom就不是那么简单了,而且,通常你也不愿意把你的客户端程序发布到如此庞大数量的每一个用户手中。于是,你最终选择了用浏览器作为客户端,写下一堆asp页面,把应用程序的中间层暴露给最终用户。结果呢?运气好的话,只是开发难度大了一些,运气不好的话,就会得到一个根本无法维护的应用程序。当然。如果你的中间层组件是web service的话,你完全可以从用户界面直接调用中间层组件,从而省掉建立asp页面的那一步。要调用web service,你可以直接使用microsoft soap toolkit或.net这样的soap客户端,也可以使用你自己开发的soap客户端,然后把它和你的应用程序连接起来。这样做,不仅可以缩短开发周期,还可以减少代码的复杂度,并增强整个应用程序的可维护性。同时,你的应用程序也不再需要在每次调用中间层组件时,都跳转到相应的结果页了。
应用程序集成
企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发的力量。通过web service,应用程序可以用标准的方法把功能和数据暴露出来,供其它的应用程序使用。
b2b的集成
通过web service,你的公司可以把关键的商务应用暴露给指定的供应商和客户。用web service来实现b2b集成的最大好处在于可以轻易实现互操作性。只要把你的商务逻辑暴露出来,成为web service,你就可以让任何指定的合作伙伴轻松的调用你的商务逻辑,而不管他们的系统在什么平台上运行,使用的是什么开发语言。这样就大大减少了花在b2b集成的上的时间和成本。
软件重用
软件重用是一个很大的主题,它有很多的形式和程度。最基本的形式是源代码模块或者类一级的重用。另一种形式是二进制形式的组件重用。当前,像表格控件或用户界面控件这样的可重用软件组件在市场上都占有很大的份额。但这类软件的重用都有一个很严重的限制:重用仅限于代码,而数据不能被重用。原因在于你可以很轻易的发布组件甚至源代码,但要发布数据就没那么容易了,除非那些数据都是不会经常变化的静态数据。
而web service允许你在重用代码的同时,重用代码后面的数据。使用web service,你不再像以前那样,要先从第三方购买、安装软件组件,再从你的应用程序中调用这些组件。你只需要直接调用远端的web service就可以了。
另一种软件重用的情况是把好几个应用程序的功能集成起来。例如,你想要建立一个局域网上的门户站点应用,让用户既可以查询他们的联邦快递包裹,察看股市行情,又可以管理他们的日程安排,还可以在线购买电影票。现在web上有很多应用程序供应商,都在其应用中实现了上面的这些功能。一旦他们把这些功能都通过web service 暴露出来,你就可以非常轻易地把所有这些功能都集成到你的门户站点中,为用户提供一个统一的、友好的界面。用web service来集成各种应用中的功能,为用户提供一个统一的界面。
什么时候不应该使用web service
单机应用程序:只要用本地的api就可以了。com非常适合于在这种情况下工作,因为它既小又快。运行在一台服务器上的服务器软件也是这样:最好直接用com或其他本地的api来进行应用程序间的调用。当然web service 也能用在这些情况下,但那样不仅消耗太大,而且不会给你带来任何好处。
局域网上的同构应用程序
总结
web service是创建可互操作的分布式应用程序的新平台。web service 的主要目标是跨平台的可互操作性。为了达到这一目标,web service 是完全基于xml、xsd等独立于平台、独立于软件供应商的标准的。
web service在应用程序跨平台和跨网络进行通信的时候是非常有用的。web service适用于应用程序集成、b2b集成、代码和数据重用,以及通过web进行客户端和服务器的通信的场合。
只要把你的商务逻辑暴露出来,成为web service,你就可以让任何指定的合作伙伴轻松的调用你的商务逻辑(可以为不同的用户发布不同的应用程序功能,而不用为每个用户设定各自的防火墙),而不管他们的系统在什么平台上运行,使用的是什么开发语言。
转载于:https://www.cnblogs.com/dotrai/archive/2006/03/02/341551.html
web service 学习 2 -- 什么时候应该使用web service相关推荐
- local service system账户_systemd.service学习和使用总结
公众号:暮北林 Q Q 群 : 一起学前端 Systemd Service 学习和使用总结 什么是Systemd service system就是系统,d的意思是daemon,systemd就是系统 ...
- sts java配置tomcat_Java Web入门学习(一) STS与Tomcat配置
Java Web学习(一) STS与Tomcat配置 一.IDE的选择 使用基于Eclipse的STS Ide ,个人感觉挺好用的. 根据以上两张图片,将STS 下载下来.然后解压缩. 用编辑器打开S ...
- Web Service学习笔记
Web Service概述 Web Service的定义 W3C组织对其的定义例如以下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的A ...
- Spring Web Service 学习之Hello World篇
http://fuxueliang.iteye.com/blog/175184 Spring Web Service是Spring社区基于Spring提供的一个关注于创建"文档驱动" ...
- Java for Web学习笔记(六七):Service和Repository(2)抽象分层例子
小例子说明 Spring提供了很好的架构和很方便的工具,在作为工具使用的同时,也应注意正确使用spring的架构,虽然不是强制的,但是这是spring的精髓.用spring,也要用spring的框架. ...
- Web Service学习笔记(4)
代理类文件: 在客户端使用程序中生成的Reference.cs的文件即代理类,Service1.wsdl为相应的XML文件 代理类说明: 1. 代理类开始是引出一系列的命名空间,代码的主题是定义一个跟 ...
- Web Service 学习笔记(2)
1.SOAP的目标是允许使用标准化的方法在客户机和运行在Internet上的应用程序交换原文的信息. 2.每个SOAP消息都是一个XML文档,XML文档具有一个根元素,即SOAP封套. 3.串行化:把 ...
- Web前端学习第四周
Web前端学习第四周 position定位 指定一个元素在文档中的定位方式 top,right,left,bottom属性决定最终位置 position取值 static(默认) relative a ...
- web安全学习-sql注入-针对mysql的攻击
文章目录 1. 前言 补充:读取客户端本地文件到服务端mysql数据库 补充:利用全局日志写shell 补充:修改mysql的root密码 补充:配置远程登录 补充:低权限下读文件 补充:高版本mys ...
最新文章
- Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组、split函数垂直拆分二维numpy数组
- Microsoft Visual Studio 2005 Beta 2 下载地址
- Vs code自动生成Doxygen格式注释
- python执行adb命令_Python实现对adb命令封装
- 阿里巴巴1682亿背后的“企业级”高效持续交付
- 【MySQL】MySQL开启general_log报错ERROR 29 (HY000) not found (OS errno 13 - Permission denied)
- 百度api 一直提示token错误_phpcms小程序插件小程序万能接口api(支持微信、百度)...
- 程序员面试金典——5.6奇偶位交换
- [转载]树、森林和二叉树的转换
- Dll学习心得(2)
- Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结
- 橡胶柱压缩_橡胶=汽车半条命:浅谈ABAQUS橡胶大变形仿真5大注意事项
- java实现文字跑马灯_跑马灯的问题
- 汇编语言程序设计-钱晓捷(第五版)学习笔记目录
- GOF-23种设计模式UML图
- 如何取消WPS 2019启动就显示稻壳商城?关闭后如何打开?
- 机械盘阵高并发——使用ImDisk 与 junction显著提高整体吞吐性能
- RFID室内定位技术原理浅析-RFID室内人员定位-新导智能
- Unity3D简单换装系统
- 为什么会有这么多种Python?