socket介绍(webService适用场景)

   1.使用场景
   
      - 不同的移动客户端访问
      - 需要访问第三方的项目

   2.访问第三方应用的方式
      ISO的七层模型  : 物理层、数据链路层、网络层、传输层、表示层、会话层、应用层
     - Socket访问  : Socket属于传输层,它是对Tcp/ip协议的实现,包含TCP/UDP,它是所有通信协议的基础,Http协议需要Socket支持,以Socket作为基础
 Socket通信特点:
      1. 开启端口,该通信是 长连接的通信 ,很容易被防火墙拦截,可以通过心跳机制
                   来实现 ,开发难度片段
      2. 传输的数据一般是字符串 ,可读性不强
                lj|16|1|60|up  
          3. socket端口不便于推广
         http:17.23.23.2:2345   www.jd.com   www.360buy.com
      4. 性能相对于其他的通信协议是最优的

- Http协议访问 :属于应用层的协议,对Socket进行了封装
          1. 跨平台
          2. 传数据不够友好 :
                      get请求: http://127.0.0.1:8888?username=lj&pwd=1234
          3. 对第三方应用提供的服务,希望对外暴露服务接口
        
     问题:
       1. 数据封装不够友好 :可以用xml封装数据
       2. 希望给第三方应用提供web方式的服务  (http + xml) = web  Service
          
     - Webservice
       1.webService介绍
         
       2.webservice的规则
         - xml
     - soap :(simple object access 协议) :简单对象访问协议
     - wsdl : webservice描述语言 ,它也是xml实现的
       3.webservice的优点
         
       4.webservice专业名称
         1. xml
         2. wsdl
     3. soap

 

 

 

常见WEB服务:

  1. 手机淘宝、京东….
  2. 天气预报
  3. 手机号归属地
  4. 股票查询
  5. 发手机短消息
  6. 手机充值功能
  7. 中英文翻译
  8. 银行转账业务
  9. 公司的“进销存系统”在某商品缺货时自动给供应商下订单

简单的网络应用:

需求总结:目前软件应用中会出现大量的需求:同一个应用会有不同的客户端访问,或者不同的应用之间也会相互调用服务(A程序和B程序可能不是同一个语言开发的应用)

 

 

复杂的网络应用:

 

需求总结:目前软件应用中会出现大量的需求:同一个应用会有不同的客户端访问,或者不同的应用之间也会相互调用服务(A程序和B程序可能不是同一个语言开发的应用)

 

先理解什么是服务:

l现在的应用程序变得越来越复杂,甚至只靠单一的应用程序无法完成全部的工作。更别说只使用一种语言了。
l大家在写应用程序查询数据库时,并没有考虑过为什么可以将查询结果返回给上层的应用程序,甚至认为,这就是数据库应该做的,其实不然,这是数据库通过TCP/IP协议与另一个应用程序进行交流的结果,而上层是什么样的应用程序,是用什么语言,数据库本身并不知道,它只知道接收到了一份协议,这就是SQL92查询标准协议。
l目前的云计算、云查杀都是一种服务,现在比较流行的说法是SOA(面向服务的框架)。
l既然数据库可以依据某些标准对外部其他应用程序提供服务、而且不关心对方使用什么语言,那我们为什么就不能实现跨平台、跨语言的服务呢?
l只要我们用Java写的代码,可以被任意的语言所调用,我们就实现了跨平台,跨语言的服务!

对几个问题的回答:

1.WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用.
2.我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单调用了一下服务器上的一段代码而已。
3.学习WebService可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.。

在开始之前必须要让先了解几个名词:

l名词1:XML. Extensible Markup Language -扩展性标记语言
•XML,用于传输格式化的数据,是Web服务的基础。
•namespace-命名空间。
•xmlns=“http://itcast.cn” 使用默认命名空间。
•xmlns:itcast=“http://itcast.cn”使用指定名称的命名空间。
l名词2:WSDL – WebService Description Language – Web服务描述语言。
•通过XML形式说明服务在什么地方-地址。
•通过XML形式说明服务提供什么样的方法 – 如何调用。
l名词3:SOAP-Simple Object Access Protocol(简单对象访问协议)
•SOAP作为一个基于XML语言的协议用于有网上传输数据。
•SOAP = 在HTTP的基础上+XML数据。
•SOAP是基于HTTP的。
•SOAP的组成如下:
•Envelope – 必须的部分。以XML的根元素出现。
•Headers – 可选的。
•Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

 

posted @ 2017-09-18 22:22  QiaoZhi  阅读(1970)  评论(0编辑  收藏  举报