一、Web Service是什么?

就是网络服务。依据W3C的定义,WebServices(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一种自包括、自描写叙述和模块化的应用程序,它能够在网络中被描写叙述、公布和调用,能够将它看作是基于网络的、分布式的模块化组件。

 Web Services是建立在通用协议的基础之上的。包括HTTPSOAPUDDIWSDL等。当中Web
Service
三要素就是SOAPWSDLUDDI SOAP用来描写叙述传递信息的格式,
WSDL
用来描写叙述怎样訪问详细的接口。UDDI用来管理。分发,查询webService

(以上粗体部分内容出自百度百科)

 WebServices的优势在于提供了不同应用程序平台之间的互操作,它使得基于组件的开发和Web相结合的效果达到最佳。它是基于HTTP协议的,调用请求和回应消息都能够穿过防火墙,不须要更改防火墙的设置。这样就避免了使用特殊port进行通信时无法穿越防火墙的问题。

 

归纳总结——Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API

 

事实上,说白了。就是某个server,你能够理解为站点。开放了(即对外公开)某个功能或者方法,我们通过 web service编程就能够获取到它公开的信息,从而为自己所用。

比方说,某个天气站点,对外公开了其天气接口,那么我们就能够通过web
service获取到每天的当地天气情况了。须要注意的是,上面说到,web service是基于通用协议的。这个跟JAVA一样,具备非常好的跨平台跨语言特性。可是说是这么说的,Web
Service真的是这种么?我眼下由于实践少而不得而知。可是以下这篇博文却以历史传记的形式说明了

一些事情。

我们能够參详下——

SOAPWebService的那些事

 

 

二、SOAP
WSDL
UDDI

上面说到, SOAP、WSDL和UDDI就是Web
Service的三大组件,当中SOAP和WSDL是必选的。然后UDDI是可选的。所以我们要先来了解这几个协议。

 

1SOAP

全称就是Simple Object Access Protocol。简单对象訪问协议。是用于交换XML(标准通用标记语言下的一个子集)编码信息的轻量级协议。

眼下经常使用的有两个版本号,SOAP1.1和
SOAP 1.2。SOAP的优点在于——它能够执行在随意的其它协议上。比方SMTP,HTTP等。

2WSDL

全称就是(Web Services DescriptionLanguage。即Web服务描写叙述语言)是一种用来描写叙述Web服务的XML语言,它描写叙述了Web服务的功能、接口、參数、返回值等,便于用户绑定和调用服务。

它以一种和详细语言无关的方式定义了给定Web服务调用和应答的相关操作和消息。

    WSDL是我们能够实实在在看到的东西。它是一份xml文档,用于描写叙述某个WebSerivce的方方面面。

假设阅读上述的文字后,你依旧无法理解WSDL,那么请阅读以下的内容:(来自某网友的。以下有出处)

你会怎样向别人介绍你的Webservice有什么功能,以及每一个函数调用时的參数呢?你可能会自己写一套文档。你甚至可能会口头上告诉须要使用你的Webservice的人。

这些非正式的方法至少都有一个严重的问题:当程序猿坐到电脑前,想要使用你的Web service的时候。他们的工具(如VisualStudio)无法给他们提供不论什么帮助。由于这些工具根本就不了解你的Web service。解决方法是:用机器能阅读的方式提供一个正式的描写叙述文档。Webservice描写叙述语言(WSDL)就是这样一个基于XML的语言。用于描写叙述Webservice及其函数、參数和返回值。由于是基于XML的。所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个非常大的优点。一些最新的开发工具既能依据你的Webservice生成WSDL文档,又能导入WSDL文档。生成调用对应Web
service的代码。
于是WSDL诞生。

 

源文档 <http://sakyone.iteye.com/blog/353063>

 

 

3UDDI

全称是:Universal Description, Discovery andIntegration",中文翻译就是“通用描写叙述,发现和集成服务”,或者能够叫“统一描写叙述、发现和集成协议”。

感觉非常抽象是吧,我也这么觉得,哈哈。

没关系,接着看。

以下的说明过于专业,不好理解,于是原文引用——

了解 Web 服务规范: 第 3部分:统一描写叙述、发现和集成 (UDDI)

 

当全部应用程序都位于本地时。要找到所需的功能会非常easy。

只是,使用 Web服务之类的分布式系统时,您不能获得中央注冊中心的优点。分布式系统也easy发生更改。而这正是
UDDI的用武之地。它旨在用于两个目的。最初形成时。它被觉得是一种“通用业务注冊中心”。其想法是,企业能够使用以下三种方法之中的一个搜索合作伙伴:

  • “白页”:白页与电话簿中用于查找公司信息的白页相似。

    比如,假设您知道公司的名称,能够在当中查找公司的地址、怎样进行联系,甚至还能够确定与组织中的哪个人联系。

  • “黄页”:相同,黄页与电话簿中的黄页一样。能够在当中依据分类查找公司。UDDI指定了各种分类法,以供各个公司用于对自己进行分类。比如。假设您在查找体育用具,则能够查找其北美工业分类系统(North
    American Industry Classification System,NAICS)代码为
    339920 的公司。
  • “绿页”:电话簿中没有绿页,但这里的想法是,公司能够使用此搜索方法来查找实现了特定服务的贸易合作伙伴。比如,能够搜索实现了使用邮政编码的距离计算功能的公司。

UDDI同一时候也被觉得是一种保持分布式应用程序长期执行的方法。其想法是这种,能够缓存有关訪问特定服务的信息,假设客户机崩溃。应用程序将自己主动回到注冊中心并进行检查,以确定信息是否已更改。

假设已更改,则能够直接在应用程序内进行更改(在理想的情况下将自己主动进行更改)并重试您的请求。

看完之后,大概懂了吧,UDDI事实上就是业务登记逻辑和注冊,使得使用者能够高速查找。

 

 

 

Android笔记之 Web Service 基础的更多相关文章

  1. 使用Android应用调用Web Service

    Java本身提供了丰富的Web  Service支持,比如Sun公司指定的JAX-WS  2规范,还有Apache开源组织所提供的Axis1.Axis2.CXF等,这些技术不仅可以用于非常方便地对外提 ...

  2. Android笔记二十七.Service组件入门(一).什么是Service?

    转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.Service 1.Service简单介绍     Service为Android四大组件之中 ...

  3. Web Service基础——规范及三要素

    1. Java中的Web Service规范 Java 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC).JAX-RS.JAXM&SAAJ(废弃). 1.1 JAX- ...

  4. Web Service基础——基础概念

    1. Web Service基本概念 Web Service(Web服务)是一种远程调用技术,他的作用就是从远程系统中获取业务数据.具体来说,Web Service可以让你的网站使用其他网站的资源,比 ...

  5. Web service基础

    Web service是Web应用程序 平台是XML+http XML是不同平台和不同编程语言之间的语言,用于编解码数据. http是因特网协议 XML是web service的基础 Web serv ...

  6. web service基础知识

    Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等. 当我们输入www.oldboyedu.com/时候,很快就能看到 ...

  7. Web Service基础——四种客户端调用方式

    通过访问公网服务地址 http://www.webxml.com.cn/zh_cn/index.aspx 来演示四种不同的客户端调用方式 1. 生成客户端调用方式 1.1 Wsimport命令介绍 首 ...

  8. Android开发之使用Web Service进行网络编程

    使用Web Service进行网络编程 Android应用通常都是执行在手机平台上.手机系统的硬件资源是有限的,无论是存储能力还是计算能力都有限.在Android系统上开发.执行一些单用户.小型应用是 ...

  9. Rest风格WEB服务(Rest Style Web Service)的真相

    http://blog.csdn.net/jia20003/article/details/8365585 Rest风格WEB服务(Rest Style Web Service)的真相 分类: J2E ...

随机推荐

  1. Spring---AOP与DI的初步理解

    依赖注入 依赖注入并没有我们听上去那么复杂,在项目中应用依赖注入,会使代码变的异常简单,更易于理解和测试. 任何一个有实际意义的应用,都是多个类组成,这些类之间相互协作,来实现特定的业务逻辑,通常,每 ...

  2. [javaSE] IO流(管道流)

    之前我们使用io流,都是需要一个中间数组,管道流可以直接输入流对接输出流,一般和多线程配合使用,当读取流中没数据时会阻塞当前的线程,对其他线程没有影响 定义一个类Read实现Runable接口,实现r ...

  3. 一、spark单机安装

    如果要全面的使用spark,你可能要安装如JDK,scala,hadoop等好些东西.可有时候我们只是为了简单地安装和测试来感受一下spark的使用,并不需要那么全面.对于这样的需要,我们其实只要安装 ...

  4. 在IIS中部署好WCF服务站点后,本机访问服务无问题,局域网中其他电脑访问不到

    1.问题描述 在IIS中部署好WCF服务站点后,本机访问服务无问题,局域网中其他电脑访问不到. 2.解决方法 (1)控制面板 -> Windows防火墙 -> 高级设置 (2)属性 (3) ...

  5. MYSQL-EXPLAIN 命令详解 (转载)

    EXPLAIN 命令详解   在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描, ...

  6. UOJ#400. 【CTSC2018】暴力写挂

    传送门 看到要求两棵树的 \(lca\) 深度不太好操作 考虑枚举第二棵树的 \(lca\),这样剩下的都是只和第一棵树有关的 而注意到 \(dis(x,y)=d(x)+d(y)-2d(lca(x,y ...

  7. BZOJ4650: [Noi2016]优秀的拆分(hash 调和级数)

    题意 题目链接 Sol NOI的题都这么良心么.. 先交个\(n^4\)暴力 => 75 hash优化一下 => 90 然后\(90\)到\(100\)分之间至少差了\(10\)难度台阶= ...

  8. 推荐js库: underscore

    Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率. 之间没用他之前,自己写,那是相当的酸爽. 如循环处理: for(var i=0;i<data.length; ...

  9. Node服务端极速搭建 -- nvmhome

    > 本文意在让你掌握极速搭建Node服务端(任何Project) ```$ whoaminame: kelvinemail: kelvv@outlook.comhomepage: www.kel ...

  10. Android深入四大组件(六)Service的启动过程

    前言 此前我用较长的篇幅来介绍Android应用程序的启动过程(根Activity的启动过程),这一篇我们接着来分析Service的启动过程.建议阅读此篇文章前,请先阅读Android深入四大组件(一 ...