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部分,包含要执行的服务器的方法。和发送到服务器的数据。

socket介绍(webService适用场景)的更多相关文章

  1. Redis常用数据类型介绍、使用场景及其操作命令

    Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...

  2. 网络编程-Socket介绍

    Socket介绍 什么是socket?(5分钟) Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议 ...

  3. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_6-2.申请微信支付介绍和不同场景的支付方式

    笔记 2.申请微信支付介绍和不同场景的支付方式         简介:介绍微信商户平台,支付方式和使用场景,申请微信支付流程                  1.什么是微信商户平台:        ...

  4. 小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景

    笔记 第六章 微服务网关zuul开发实战 1.微服务网关介绍和使用场景     简介:讲解网关的作用和使用场景 (画图)          1)什么是网关         API Gateway,是系 ...

  5. MySQL主从复制介绍:使用场景、原理和实践

    MySQL主从复制介绍:使用场景.原理和实践 MySQL数据库的主从复制方案,和使用scp/rsync等命令进行的文件级别复制类似,都是数据的远程传输,只不过MySQL的主从复制是其自带的功能,无需借 ...

  6. socket servlet webservice 区别及使用场景

    原文地址: http://blog.csdn.net/sdjkjsdh/article/details/51569481 1. Socket:使用TCP/IP或者UDP协议在服务器与客户端之间进行传输 ...

  7. 【memcache缓存专题(1)】memcache的介绍与应用场景

    简介 Memcached是一个高性能的分布式的内存对象缓存系统,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各 ...

  8. Memcache介绍与应用场景

    一:概念介绍         Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果 ...

  9. socket、webService、RMI ?

    网络七层协议为:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层 webService > RMI > socket RMI比socket更高一点 socket 只是 java在 ...

随机推荐

  1. 火狐IE event和target的兼容

    一.event对象 IE 中可以直接使用 window.event 对象,而 FF 中则不可以,解决方法之一如下: var theEvent = window.event || arguments.c ...

  2. DevOps - 日志分析 -ELK

    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-co ...

  3. 无线Web开发

    http://am-team.github.io/amg/dev-exp-doc.html

  4. JZOJ 3493. 【NOIP2013模拟联考13】三角形

    3493. [NOIP2013模拟联考13]三角形(triangle) (File IO): input:triangle.in output:triangle.out Time Limits: 10 ...

  5. day 59 MySQL之锁、事务、优化、OLAP、OLTP

    MySQL之锁.事务.优化.OLAP.OLTP   本节目录 一 锁的分类及特性 二 表级锁定(MyISAM举例) 三 行级锁定 四 查看死锁.解除锁 五 事务 六 慢日志.执行计划.sql优化 七 ...

  6. python3爬虫之Urllib库(二)

    在上一篇文章中,我们大概讲了一下urllib库中最重要的两个请求方法:urlopen()  和  Request() 但是仅仅凭借那两个方法无法执行一些更高级的请求,如Cookies处理,代理设置等等 ...

  7. DAG上的动态规划——嵌套矩阵问题

    问题描述:有n个矩形,每个矩形可以用两个整数a,b描述,表示它的长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d,或者b<c,a<d(相当于把矩形X旋 ...

  8. UVA - 10213 How Many Pieces of Land?(欧拉公式 + 高精度)

    圆上有n个点,位置不确定.问这些点两两连接成的线段,最多可以把圆划分成多少块平面? 欧拉公式:V-E+F = 2,V是点数,E是边数,F是面数. 答案是F=C(n,4)+C(n,2)+1,看的别人推的 ...

  9. FreeMarker的<#if></#if>标签

    <#if target??> xxxx </#if> 上面这段代码判断target??是否为null,如果不为null时才可以执行if里面的内容,为null时则不进到 if里面 ...

  10. “帮你APP”团队冲刺8

    1.整个项目预期的任务量 (任务量 = 所有工作的预期时间)和 目前已经花的时间 (所有记录的 ‘已经花费的时间’),还剩余的时间(所有工作的 ‘剩余时间’) : 所有工作的预期时间:88h 目前已经 ...