Android应用通常都是运行在手机平台上,手机系统的硬件资源是有限的,不管是存储能力还是计算能力都是有限的,在Android系统上开发、运行一些单用户、小型应用是可能的,但对于需要进行大量的数据处理、复杂计算的应用,还是只能部署在远程服务器上,Android应用将只是充当这些应用的客户端。

为了让Android应用与远程服务器之间进行交互,可以借助于Java的RMI技术,但这要求远程服务器程序必须采用Java实现也可以借助于CORBA技术,但这种技术显得过于复杂;除此之外,Web  Service是一种不错的选择。

Web  Service用于消除不同平台、不同语言之间的实现差异,将现有的应用程序发布成开放式服务,从而允许互联网上任何地方、任何平台、任何语言的应用程序来访问该服务。通过使用Web  Service,我们可以将应用程序转换为网络应用程序,从而让本地的应用程序可以向全世界发布信息或提供某种服务。

对于Web  Service使用者而言,Web  Service  API与任何操作平台无关,与任何编程语言无关,它只是以XML语言作为服务描述语言,使用XML语言作为数据交换格式。因此,不管Web  Service使用者使用何种操作平台、何种编程语言,只要权限允许,都可以调用Web  Service暴露出来的服务。至于Web  Service底层如何实现,以怎样的平台、以怎样的技术来实现这些服务,对Web  Service使用者完全透明。

对于Web  Service服务提供者而言,他们既可以为Web  Service服务重新提供实现,也可以直接将已有的应用程序包装成Web  Service。由于Web  Service本身可以说只是一种思想,并不是一种特有的技术,各种编程语言都有自己的Web Service实现,因此不管现有的应用程序建立在哪种操作平台上,也不管现有的应用程序以哪种编程语言实现,都可以将其暴露成平台无关的、语言无关的Web  Service。

Web  Service主要的设计思想是:充分利用Web分布式编程模型的松散耦合性,允许各种平台、各种编程语言的应用可以交换数据,可以无缝地整合在一起。也就是说,Web  Service提供了一种建立分布式应用的平台,使得不同操作平台上、不同语言实现的软件,所有已开发、部署的软件,都可以充分利用这个平台实现分布式计算。

总结起来,Web  Service有如下特点:

1、自包含性:Web  Service是自包含的,Web  Service使用者无需安装任何·附件软件,只要一种支持Web和XML的编程语言即可;Web  Service服务提供者则只需要Web 服务器和SOAP服务器。

2、自描述性:Web  Service是自描述的,客户端和服务器都无须关心除请求和响应消息的内容和格式之外的任何内容,消息格式与消息的内容一起传播,无须外部程序辅助。

3、封装性:Web  Service是一种部署在Web应用上的对象,具备良好的封装性。对使用者而言,仅能看到服务描述,而该服务的具体实现,运行平台都是透明的,调用者无需关心,也无法关心。Web  Service作为整体提供服务。

4、可编程性:Web  Service并不提供图形用户界面,而是提供编程访问的API、Web  Service调用者只需知道Web服务器的API接口,即可使用任何平台上的、任何编程语言来调用Web  Service。

5、松散耦合:当Web  Service的实现发生改变时,调用者是无法感受到这种改变的。对调用者而言,只要服务实现的接口没有变化,具体实现的改变时完全透明的。

6、高度的开放性:Web  Service可以与其他的Web  Service进行交互,具有语言和平台无关性,支持CORBA、EJB、DCOM等多种组件标准,支持各种通信协议如:HTTP、SMTP、FTP和RMI等。

7、使用标准协议:Web  Service所有的公共协议都是用标准协议描述、传输和交换,这些标准协议在各种平台上完全相同,使用Web  Service完全可以在不同供应商之间实现互操作。

8、高度整合的能力:由于Web  Service采用简单的、易理解的标准的Web协议作为通信协议,完全屏蔽了不同平台的差异,无论是CORBA、DCOM还是EJB,都可以通过这种标准的协议进行交互操作,实现系统的最高的可整合性。

与Web  Service相似的是,软件开发领域还有一些基于网络的系统集成技术,例如DCOM(Distributed  Component  Object  Model,分布式组件对象模型),CORBA(Common  Object  Request  Broker  Architecture,通用对象请求代理结构)等,但这些传统的技术大都采用了专有的通信协议,限制了它们的使用。但Web  Service则采用标准的互联网协议,如HTTP,而且Web  Service采用的XML语言作为数据交换格式和服务描述文件,因此更加简单。

与其他网络集成技术相比,Web  Service具有如下量大优势:

1、Web  Service使用SOAP作为基本通信协议,更加简单、易用。

2、Web Service采用已经广泛使用的技术和协议,如XML、HTTP等,因此Web  Service更容易掌握。

使用Web Service进行网络编程-----Web Service简介的更多相关文章

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

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

  2. Linux 网络编程: echo Service

    前言 大病初愈,感谢某人的陪伴,感谢王乐庆同学和赵攀同学的细心照顾.原以为过了第八周就不忙了,却没想到还有明天的党章考试.还是写代码比背党章有意思~趁着服务器还没过期,赶紧把 echo 完成了.关于错 ...

  3. 2.Android网络编程-web介绍以及Tomcat安装使用

    1.CS和BS CS:Client/Server 客户端和服务器,这种软件往往需要安装.比如QQ.迅雷.播放器. 优点 :  可以减轻服务器端压力,将部分代码写到客户端,并且界面很美观. 缺点 :  ...

  4. 五十三 网络编程 TCP/IP简介

    虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Microsoft都有各自的 ...

  5. Linux 网络编程: daytime Service

    前言 如果你这段时间过得很舒服,那就证明你荒废以一段时间.如果你这段时间过得很辛苦,那么恭喜,你又进步了.最近入党的事情忙得焦头烂额,博客也拖了好久没写,主要也是因为要装 xinetd 服务一直没装好 ...

  6. 网络编程(socket简介)

    socket简介 Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中 ...

  7. 【网络编程】HTTP简介&URL

    目录 前言 1. http 简介 1.1 概念 1.2 原理 1.3 特点 2. URL 简介 2.1 概念 2.2 URL 通用格式 2.3 网页地址 实例说明 3. HTTP 消息结构 3.1 客 ...

  8. UNIX网络编程——TCP/IP简介

    一.ISO/OSI参考模型 OSI(open system interconnection)开放系统互联模型是由ISO(International Organization for Standardi ...

  9. 【Unix网络编程】chapter1简介

    1.1 概述 1.2一个简单的时间获取客户程序 网际套接字地址结构中IP地址和端口号这两个成员必须使用特定的格式,为此我们调用库函数htons("主机到网络端整数")去转换二进制端 ...

随机推荐

  1. hibernate对象关系实现(一)一对多

    hibernate是对jdk一个封装工具,实现对象和数据库之间数据映射.使用时涉及到四个问题:a.对象之间的关系在类中的体现:b,对象关系对应的数据库中表之间体现:c.实现a,b在hibernate的 ...

  2. Java中值传递的实质,形式参数与实际参数。引用传递。

    值传递 package ch5; /** * Created by Jiqing on 2016/11/9. */ public class Transfer { public static void ...

  3. Spring源码分析心得-Bean的读取和注册

    Spring广泛的被使用足以证明它的价值,成功的东西自然值得我们深入学习.有很多人说的熟悉Spring也只是简单的使用经验,当我发现我也是其中一员时我很恐惧,所以开始扒源码,准备深入了解,话不多说,直 ...

  4. iOS 的 Safari 文件上传功能详解

    iOS 6 给 Safari 浏览器带来的另外一个功能是文件上传,终于 Safari 终于支持 input 输入框的文件类型了,并且还支持 HTML媒体捕获(HTML Media Capture). ...

  5. jquery中DOM

    节点包裹 wrap() (1)$().wrap(html) 将选择的节点用指定的元素包装 $('p').wrap('<div></div>'); (2)多层包裹 $('p'). ...

  6. 如何连接git bash和git hub

    git config --global user.name "Your Real Name" 2 git config --global user.email you@email. ...

  7. xocde 静态类库 相对路径 与 绝对路径

    xocde 静态类库 相对路径 与 绝对路径 导入别人的 静态类库,通常我直接用鼠标把文件夹拉到了 xcode的项目里面: 这时,导入的静态类库路径变成了,绝对路径:如果你的项目,不换位置那么编译运行 ...

  8. python 练习24

    Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 语法: for循环的语法格式如下: for iterating_var in sequence: statements(s) ...

  9. Android利用V4包中的SwipeRefreshLayout实现上拉加载

    基本原理 上拉加载或者说滚动到底部时自动加载,都是通过判断是否滚动到了ListView或者其他View的底部,然后触发相应的操作,这里我们以 ListView来说明.因此我们需要在监听ListView ...

  10. centos svn服务器安装

    1.安装必须的软件 yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql 2.创建代码库 mkdir -p /root ...