Web Service简介
什么是Web Service
- 根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互操作。网络服务通常是许多应用程序接口(API)所组成的,它们通过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求
- 无论定义还是实现,WEB服务过程中会由服务器提供一个机器可读的描述(通常基于WSDL)以辨识服务器所提供的WEB服务。另外,虽然WSDL不是SOAP服务端点的必要条件,但目前基于Java的主流WEB服务开发框架往往需要WSDL实现客户端的源代码生成。一些工业标准化组织,比如WS-I,就在WEB服务定义中强制包含SOAP 和WSDL
- Web Service 是一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务
- Web Service是一种应用程序,它可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML, 将功能纲领性地体现在互联网和企业内部网上。可将Web服务视作Web上的组件编程
复杂系统对接的解决方案
- 一般都是采用“独立解决方案”来实施: 对于每个应用,都为每个需要的企业资源或外部资源编写连接代码,以使得应用得以运行
- 还需要编写更多的代码以使得大量的用户能够访问每个应用
- 为什么会这样?
- 因为所有的应用都是从一次性开发的角度实施的,应用的每一个更改都需要由特定的程序员来完成这样,通过跨应用集成的方式实现应用的重用变得异常地困难
由于每个应用都有其自己特有的基础架构, 这些应用在部署、更改和维护上的代价都异常高昂 - 第一个应用,企业为之付出的总费用应该是该应用的开发和部署费用、以及运营时态的维护和更新费用
- 第二个应用,应用的开发和部署费用是一样的, 但是企业需要为之花费额外的集成费用,同时由于整个企业应用环境变得更加复杂,其运营时态的维护和更新费用可能呈指数形式增加
- 同样,当第三个、第四个应用被部署后,企业所支出的费用可能是高得惊人
Web服务和商业Web解决方案
- 电子商务需要摆脱独立解决方案的实现模式,需要舍弃复杂系统连接的实现方法
- 传统的由程序员主导的由里向外的开发模式应当被由用户主导的由外向里的开发模式取代
- 冗长的串行的开发循环应当被即时的、快速的应用装配所取代
- 同时这样的应用应当天生就具备高可定制性。"即时制造"以及"规模可伸缩"等概念
- 基于XML技术的Web服务正是解决这一问题的最佳手段
- 通过使用Web服务,企业能够以前所不可能的方式通过抽象和混合将自身的电子商务组件化
- 在商务Web中,将不需要为使用一个电子商务应用而购买这个电子商务应用所承载的应用软件
- 各大技术提供商都陆续地推出Web服务的构建工 具:Microsoft的Visual Studio .NET,IBM的Web ServiceToolkit, SUN 的SunONE 等等。基于WebService的公共技术标准SOAP/WSDL/UDDI/WSFL或是已经成为事实行业标准,或是正在制订的进程中,各大技术提供 商和传统商业企业都投入到了标准的制定和应用 的架构中去。作为Web服务的体系架构的领导者IBM和Microsoft也开始在全球推广Web服务技术
- 有理由相信Web服务将成为将来动态商务Web的主流技术
历史
- Web广泛用到的技术:
- TCP/IP:通用网络协议,被各种设备使用
- HTML:通用用户界面,可以使用HTML标签显示数据
- Java:写一次可以在任何地方运行的通用编程语言
- XML :通用数据表达语言,在web上传送机构化数据的容易方法
- 他们的特点是其开放性、跨平台性
- 开放性正是Web services的基础
Web发展的趋势
- 内容更动态化
- 带宽Bandwidth更便宜,易于获得
- 存储器Storage更便宜,更易获得
- 普遍式计算变得更加重要
Web Services扮演什么角色
- 上述的这些趋势意味着,更加智能的处理、操作和汇总内容变得十分重要。让我们看看按照Web services角度所预示的四个趋势:
- 内容更加动态:一个web service必须能合并从多个不同源来的内容,可以包括股票,天气,新闻等,在传统环境中的内容,如存货水平,购物订单或者目录信息等,都从后端系统而来
- 带宽更加便宜:web services可以分发各种类型的内容(音频, 视频流等)
- 存储更便宜: web services必须能聪明地处理大量数据,意味着要使用数据库,LDAP目录,缓冲,和负载平衡软件等技术保持可扩展能力
- 普遍式计算更重要:web services不能要求客户使用某一版本的windows的传统浏览器,必须支持各种设备,平台,浏览器类型, 各种内容类型
Web Services的演化
两种重要技术
- XML:XML是在web上传送结构化数据的方式, Web services要以一种可靠的自动的方式操作数据,HTML不能满足要求,而XML可以使web services十分方便的处理数据,它的内容与表示的分离十分理想
- SOAP:SOAP使用XML消息调用远程方法,这样web services可以通过HTTP协议的post和get 方法与远程机器交互,而且,SOAP更加健壮和灵活易用
- 其他像UDDI和WSDL技术与XML和SOAP技术紧密结合用于服务发现
Web对象
- 从外部的使用者的角度而言,Web服务是一种部署在Web上的对象/组件,它具备以下特征:
- 完好的封装性
- 松散耦合
- 使用协约的规范性
- 使用标准协议规范
- 高度可集成能力
Web Service “Stack”
- 网络传输层
- 数据表现层
- 数据模型层
- 基于XML的消息层服务描述层
- 服务发布层 服务发现层 服务工作流层
- Web服务追求的第一目标是简单性
- 这些协议本身都是简单的
- 一个可以使用的Web服务应当按照需要选用若干层次的功能,而无需所有的特性
- 所有的机制完全是基于现有的技术,并没有创造一个完全的新体系
Web服务的类别
- Web服务实施的领域可以分为四类:
- Business-Oriented Web Service
- Consumer-Oriented Web Service
- Device-Oriented Web
- Service System-Oriented Web Service
- Business-Oriented Web Service
- 该类服务针对的是那些面向各种领域的应用服务,包括图书馆应用系统, 企业内部的 ERP 系统、企业间的 SCM/CRM 等系统。当这些系统以 Web 服务的形式在网络 (Internet intranet) 中出现时,机构或企业内部或之 间的应用集成将更加容易
- Consumer-Oriented Web Service
- 为面向浏览器( Browser Oriented )的 Web 应用增加 Web 服务的应用 界面,使得第三方的桌面工具或其自身提供的增值桌面工具,能够利用更 加优秀的用户界面,提供跨越多个 B2C 服务的桌面服务。这将使得用户使用Internet 更为方便,能够获得更加便捷的服务
- 面向客户的 Web 服务有一个非常重要的应用领域就是企业信息门户。比 如可以在个人化检索、理财、信息查询 Web 服务、机票预订 Web 服务 等,使得个人理财应用的自动化程度更高、个性化程度更强
- 从技术角度来说,企业信息门户是一个基于 Web 服务的系统,它能通过 各种 Web 服务向分布各处的用户提供商业信息,帮助用户管理、组织和 查询与企业和部门相关的信息。内部和外部用户只需要使用浏览器就可以 得到自己需要的数据、分析报表及业务决策支持信息
- Device-Oriented Web Service
- 使用终端一般是指移动设备(如手机、 PDA )和信息家电等,对 于移动电子商务而言,利用面向设备的 Web 服务,用户可以在不 用修改网络服务体系结构的前提下,使以前的网络服务支持除了 PC 以外的各种终端设备,比如掌上电脑、 PocketPC 等。用户获 取数字图书馆中的信息服务、天气预报服务、出行信息服务、股 市信息服务等更为有效和便捷
- 面向设备的 Web 服务在基于位置的服务( LBS )领域具有非常广 阔的应用前景。基于位置的服务是指利用现有的移动通信网络, 对终端用户进行定位并提供增值服务。基于位置的服务系统结合 完备的地理信息数据和信息搜索引擎,可以为用户提供丰富的位 置信息服务
- System-Oriented Web Service
- 一些传统意义上的系统服务,比如用户权限认证,跨库检索,系统监控等,如果被迁移到全球范围的Internet 上,或者企业内部 intranet 上,其作用范围将从单个系统或局部网络拓展到整个 企业网络或整个Internet* * 因此,基于同一系统服务的不同应用将得以在整个Internet 环境 中部署,譬如跨国企业的所有在线服务可以使用同一个用户权限 认证 Web 服务
Web服务:当今的技术最亮点
Web services体系结构描述
- 概念
- 定义一:Web Services是自包含的、模块化的应用程序,它可以在网络(通常为Web)中被描述、发布、查找以及调用。
- 定义二:Web Services是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。
- 定义三:所谓Web服务,它是指由企业发布的完成其特别商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项应用服务。
- Web Services体系结构中共有三种角色:
- Service provider:发布自己的服务,并且对使用自身服务的请求进行响应
- Service broker:注册已经发布的Service provider,对其进行分类,并提供搜索服务
- Service requester:利用Service broker查找所需的服务,然后使用该服务
- Web Services体系结构中的组件必须具有上述一种或多种角色。
- 在这些角色之间使用了三种操作:
- publish操作:使Service provider可以向Service broker注册自己的功能及访问接口
- find操作:使Service requester可以通过Service broker查找特定种类的服务
- bind操作:使Service requester能够真正使用Service provider
Web services 基础结构
基础结构组件
基础结构组件 | 角色 |
---|---|
Web services 目录 | XML Web services 目录提供一个用以定位其他单位提供的 XML Web services 的 中 心 位 置 。 XML Web services 目录(如 UDDI 注册表)充当此角色。XML Web services 客户端可能或可能不需要引用 XML Web services 的目录 |
Web services 发现 | XML Web services 发现是定位(或发现)使用 Web 服务描述语言 (WSDL) 对特定 XML Web services 进行描述的一个或多个相关文档的过程。DISCO 规范定义定位服务说明的算法。如果 XML Web services 客户端知道服务说明的位置,它们可以跳过发现过程 |
Web services 说明 | 若要了解如何与特定的 XML Web services 进行交互, 需要提供定义该 XML Web services 支持何种交互操作的服务说明。XML Web services 客户端必须知道如何与XML Web services 进行交互才可以使用该服务 |
Web services 连网形式 | 为实现通用的通信,XML Web services 使用开放式连网形式进行通信,该格式是任何能够支持最通用的 Web 标准的系统都可以理解的协议。SOAP 是 XML Web services 通信的主要协议 |
Web services 生存期
调用 XML Web services 时发生的事件序列 :
- 客户端创建 XML Web services 代理类的一个新实例。该对象驻留在客户端所在的同一台计算机上
- 客户端调用代理类上的方法
- 客户端计算机上的基础结构将 XML Web services 方法的参数序列化为 SOAP 消息,并通过网络将它发送给 XML Web services
- 基础结构接收 SOAP 消息并反序列化该 XML。它创建实现 XML Web services 的类的实例并调用 XML Web services 方法,同时将反序列化的 XML 作为参数传入
- XML Web services 方法执行其代码,最终会设置返回值和任何输出参数
- Web 服务器上的基础结构将返回值和输出参数序列化为 SOAP 消息, 并通过网络将它发送回客户端
- 客户端计算机上的 XML Web services 基础结构接收该 SOAP 消息, 将 XML 反序列化为返回值和任意输出参数,并将它们传递给代理类的实例
- 客户端接收返回值和任何输出参数