场景

某个系统服务由第三方提供,我方要使用到这个这个服务,就可以使用WebService的方式。

什么是WebService

关于什么WebService,官方是这么解释的:

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。 
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
通俗的讲,WebService就是一个提供可以跨语言,跨平台的用于在Web通信协议上进行数据交互的平台。
 XML+XSD,SOAP和WSDL是构成WebService平台的三大核心。
 
适用场合
1. 跨防火墙通信
如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服 务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户 端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。如果中间层组件换成WebService的话, 就可以从用户界面直接调用中间层组件。从大多数人的经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用WebService这种结构,可以节 省花在用户界面编程上20%的开发时间。
 
2. 应用程序集成
企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常 需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集 成起来。通过WebService,可以很容易的集成不同结构的应用程序。
 
3. 软件和数据重用
软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,一种形式是二进制形式的组件重用。采用 WebService应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用,达到业务级重用。
 
如何使用
1. 新建一个项目,在引用中, 右键 添加服务引用

2. 在弹出的窗口中输入WebService暴露的API接口,点击 转到,验证WebService服务

点击确认,出现如下图:调用成功

PS:欢迎扫描下方二维码,加入QQ群

 
作者:Jacky
声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

最新文章

  1. WebStorm设置左侧菜单栏背景色和样式
  2. java jar包解析:打包文件,引入文件
  3. netsh winsock reset
  4. solr的collection,shard,replica,core概念
  5. CMMI 配置管理
  6. HDOJ --- 1176 免费馅饼
  7. Codeforces 484B Maximum Value(排序+二分)
  8. MySQL 全角转换为半角
  9. vs 2012svn 插件设置
  10. BZOJ4944 泳池 解题报告
  11. 针对 jQuery Gridly 控件显示多少列的问题。
  12. Git(时光机-版本回退)
  13. thread == 售票
  14. Django使用自定义的authentication登录认证
  15. p标签在div中垂直居中,并且div高度随着p标签文字内容的变化而变化
  16. php mysql procedure获取多个结果集
  17. Node.js处理I/O数据之Buffer模块缓冲数据
  18. 用Linux中man命令查询C函数
  19. java中String和char的区别
  20. 把磁力下载站改为python系统

热门文章

  1. 使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决
  2. springcloud(八) Hystrix监控
  3. 学习了django对于sqlite3进行了了解,谈谈看法
  4. C++Builder 内存泄露检测
  5. SAFEARRAY
  6. VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”<转>
  7. ArrayList原理(一)
  8. oracle中bulk collect into用法
  9. JAVA_02
  10. LUA table.sort的问题,数组与表的区别