前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >01.WebService_基础知识

01.WebService_基础知识

作者头像
Java帮帮
发布2018-03-15 17:48:57
1K0
发布2018-03-15 17:48:57
举报
01.WebService_基础知识

WebService基础学习(一)—基础知识

一、WebService

1.什么是WebService

Web Service(WEB服务)能够快捷和方便地综合结合各种系统、商务和任何应用平台。利用最新的Web Service 标准能够使任何软件系统和系统之间的应用互通互联,方便,而且更加廉价。

2.WebService的应用场合

(1)跨越防火墙通信

客户端和服务器端之间通信都会有防火墙或者代理服务器。传统的实现互相通信的方法是在分布式对象,如DCOM、CORBA之间进行相互的远程过程调用(TCP/IP),但在这种场合下HTTP协议的特性没有得到应用,因此在Internet环境下的远程过程调用不是一件容易的事情,同时在Internet上使用远程过程调用还存在安全问题,防火墙和代理服务器还有可能阻挡这种类型的数据传输。HTTP是在Internet上发送消息的标准协议。Web服务使用基于XML消息处理作为基本的数据通信方式,应用程序可以使用HTTP和XML消息等标准在基于Web的应用程序之间交换信息,从而跨越防火墙。

(2)应用程序集成

企业里经常要把不同语言写成的在不同平台上运行的各种程序集成起来。大型公司常常有很多部门,每个部门都使用最适合自己特定需要的应用程序和平台。为了能够让公司各部门之间进行通信,首先应该将公司内部的应用程序和商业过程集成在一起。Web服务的开放标准使组织创建可重用的应用程序接口。当被包装成一个或一组Web服务之后,任何应用程序理论上都可以通过SOAP消息与任何其他应用程序进行通信。

(3)软件复用

软件复用是在软件开发中避免重复劳动的解决方案。Web服务实现了业务级别的软件复用,例如在B2B的集成中,各企业之间通过互相调用Web服务,实现了Web服务的共享,Web服务的使用企业不需要再重新开发其他企业中已经存在的服务。

二、使用Socket远程通信

1.客户端

2.服务端

结果:

请求查询天气: 北京 北京的天气: 今天天气很热

接收到客户端发送的请求: 北京 返回天气信息: 今天天气很热

三、用WebService实现远程调用

1.服务端

第一步: 创建一个java工程,不需要导入jar包。

第二步: 创建接口。在Webservice中叫做SEI(wsdl中叫做PortType)。

第三步: 创建实现类。需要在实现类上加一个@Webservice注解。

第四步: 发布服务。EndPoint.publish发布服务。

WeatherInterface.java

WeatherInterfaceImpl.java

WeatherServer.java

2.查看wsdl

a: 在地址栏输入(注意后面的参数?wsdl)

http://127.0.0.1:12345/weather?wsdl

b: Wsdl不是webService,只是获取一个用于描述WebService的说明文件

3.使用wsimport工具生成客户端调用代码

4.编写客户端

第1步:创建服务视图对象。

第2步: 从服务视图中获得PortType对象。

第3步: 调用PortType的方法(可以实现远程通信)

第4步: 接收方法的返回值(服务端响应的结果)。

四、WebService和Socket的对比

(1)Socket是基于TCP/IP的传输层协议。 Webservice是基于HTTP协议传输数据,http是基于tcp的应用层协议。 Webservice采用了基于http的soap协议传输数据。

(2)Socket接口通过流传输,不支持面向对象。 Webservice 接口支持面向对象,最终webservice将对象进行序列化后通过流传输。 Webservice采用soap协议进行通信,不需专门针对数据流的发送和接收进行处理,是一种跨平台的面向对象远程调用技术。

(3)Socket适用于高性能大数据的传输,传输的数据需要手动处理,socket通信的接口协议需要自定义。

比如:自定义一种字符串拼接的格式,比如自定义的xml数据,自定义麻烦之处在接口调用方和接口服务端需要互相讨论确定接口的协议内容,不方便。 缺点

程序员需要自己去解析输入、输出流,解析发送和接收的数据。数据传输的格式不固定,需要程序员开发socket接口时自定义接口协议。

优点

如果要传输大数据量,socket可以满足,如果存在大并发使用socket也可以实现,程序用socket灵活性更大,比如可以socket的高并发框架mina开发。

Webservcie由于是遵循标准的soap协议,soap 协议的内容格式固定,soap协议传递的内容是xml数据,由于webservice是基于http的,所以简单理解为soap=http+xml,适用于没有性能要求情况下且数据传输量小,推荐在公开接口上使用webservice,因为soap协议的标准的。 优点 jaxws可以通过面向对象开发webservice,程序员不需要解析输入、输出流。 由于webservice传输数据使用标准的soap协议(基于http传输xml),soap协议已经被w3c管理了。 缺点

如果传输大数据量,webservice不适用。如果webservice开发大并发的应用,webservice依靠web容器提高并发数。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java帮帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、WebService
    • 1.什么是WebService
      • 2.WebService的应用场合
      • 二、使用Socket远程通信
        • 1.客户端
          • 2.服务端
          • 三、用WebService实现远程调用
            • 1.服务端
              • 2.查看wsdl
                • 3.使用wsimport工具生成客户端调用代码
                  • 4.编写客户端
                  • 四、WebService和Socket的对比
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档