Web Service webservice是什么
webService\u63a5\u53e3\u662f\u4ec0\u4e48\uff1fWeb \u662f\u4f7f\u5e94\u7528\u7a0b\u5e8f\u53ef\u4ee5\u4e0e\u5e73\u53f0\u548c\u7f16\u7a0b\u8bed\u8a00\u65e0\u5173\u7684\u65b9\u5f0f\u8fdb\u884c\u76f8\u4e92\u901a\u4fe1\u7684\u4e00\u9879\u6280\u672f\u3002Web \u670d\u52a1\u662f\u4e00\u4e2a\u8f6f\u4ef6\u63a5\u53e3\uff0c\u5b83\u63cf\u8ff0\u4e86\u4e00\u7ec4\u53ef\u4ee5\u5728\u7f51\u7edc\u4e0a\u901a\u8fc7\u6807\u51c6\u5316\u7684 XML \u6d88\u606f\u4f20\u9012\u8bbf\u95ee\u7684\u64cd\u4f5c\u3002
\u5b83\u4f7f\u7528\u57fa\u4e8e XML \u8bed\u8a00\u7684\u534f\u8bae\u6765\u63cf\u8ff0\u8981\u6267\u884c\u7684\u64cd\u4f5c\u6216\u8005\u8981\u4e0e\u53e6\u4e00\u4e2a Web \u670d\u52a1\u4ea4\u6362\u7684\u6570\u636e\u3002\u4e00\u7ec4\u4ee5\u8fd9\u79cd\u65b9\u5f0f\u4ea4\u4e92\u7684 Web \u670d\u52a1\u5728\u9762\u5411\u670d\u52a1\u7684\u4f53\u7cfb\u7ed3\u6784\uff08Service-Oriented Architecture\uff0cSOA\uff09\u4e2d\u5b9a\u4e49\u4e86\u7279\u6b8a\u7684 Web \u670d\u52a1\u5e94\u7528\u7a0b\u5e8f\u3002
\u7b80\u5355\u7684\u8bf4WebService\u662f\u4e00\u4e2aSOA\uff08\u9762\u5411\u670d\u52a1\u7684\u7f16\u7a0b\uff09\u7684\u67b6\u6784\uff0c\u5b83\u662f\u4e0d\u4f9d\u8d56\u4e8e\u8bed\u8a00\uff0c\u4e0d\u4f9d\u8d56\u4e8e\u5e73\u53f0\uff0c\u53ef\u4ee5\u5b9e\u73b0\u4e0d\u540c\u7684\u8bed\u8a00\uff08\u901a\u8fc7 xml \u63cf\u8ff0\uff09\u95f4\u7684\u76f8\u4e92\u8c03\u7528\uff0c\u901a\u8fc7Internet\u8fdb\u884c\u57fa\u4e8eHttp\u534f\u8bae\u7684\u7f51\u7edc\u5e94\u7528\u95f4\u7684\u4ea4\u4e92\u3002
\u901a\u8fc7SOAP\u5728Web\u4e0a\u63d0\u4f9b\u7684\u8f6f\u4ef6\u670d\u52a1\uff0c\u4f7f\u7528WSDL\u6587\u4ef6\u8fdb\u884c\u8bf4\u660e\uff0c\u5e76\u901a\u8fc7UDDI\u8fdb\u884c\u6ce8\u518c\u3002
\u6269\u5c55\u8d44\u6599Web Service\u6280\u672f\uff0c \u80fd\u4f7f\u5f97\u8fd0\u884c\u5728\u4e0d\u540c\u673a\u5668\u4e0a\u7684\u4e0d\u540c\u5e94\u7528\u65e0\u987b\u501f\u52a9\u9644\u52a0\u7684\u3001\u4e13\u95e8\u7684\u7b2c\u4e09\u65b9\u8f6f\u4ef6\u6216\u786c\u4ef6\uff0c \u5c31\u53ef\u76f8\u4e92\u4ea4\u6362\u6570\u636e\u6216\u96c6\u6210\u3002
\u4f9d\u636eWeb Service\u89c4\u8303\u5b9e\u65bd\u7684\u5e94\u7528\u4e4b\u95f4\uff0c \u65e0\u8bba\u5b83\u4eec\u6240\u4f7f\u7528\u7684\u8bed\u8a00\u3001 \u5e73\u53f0\u6216\u5185\u90e8\u534f\u8bae\u662f\u4ec0\u4e48\uff0c \u90fd\u53ef\u4ee5\u76f8\u4e92\u4ea4\u6362\u6570\u636e\u3002Web Service\u662f\u81ea\u63cf\u8ff0\u3001 \u81ea\u5305\u542b\u7684\u53ef\u7528\u7f51\u7edc\u6a21\u5757\uff0c \u53ef\u4ee5\u6267\u884c\u5177\u4f53\u7684\u4e1a\u52a1\u529f\u80fd\u3002
web\u5e7f\u6cdb\u7528\u5230\u7684\u6280\u672f\uff1a
TCP/IP\uff1a\u901a\u7528\u7f51\u7edc\u534f\u8bae\uff0c\u88ab\u5404\u79cd\u8bbe\u5907\u4f7f\u7528
HTML\uff08\u6807\u51c6\u901a\u7528\u6807\u8bb0\u8bed\u8a00\u4e0b\u7684\u4e00\u4e2a\u5e94\u7528\uff09\uff1a\u901a\u7528\u7528\u6237\u754c\u9762\uff0c\u53ef\u4ee5\u4f7f\u7528HTML\u6807\u7b7e\u663e\u793a\u6570\u636e
NET: \u4e0d\u540c\u5e94\u7528\u7a0b\u5e8f\u95f4\u5171\u4eab\u6570\u636e\u4e0e\u6570\u636e\u4ea4\u6362
Java\uff1a\u5199\u4e00\u6b21\u53ef\u4ee5\u5728\u4efb\u4f55\u7cfb\u7edf\u8fd0\u884c\u7684\u901a\u7528\u7f16\u7a0b\u8bed\u8a00\uff0c\u56e0\u4e3ajava\u5177\u6709\u8de8\u5e73\u53f0\u7279\u6027
XML\uff08\u6807\u51c6\u901a\u7528\u6807\u8bb0\u8bed\u8a00\u4e0b\u7684\u4e00\u4e2a\u5b50\u96c6\uff09\uff1a\u901a\u7528\u6570\u636e\u8868\u8fbe\u8bed\u8a00\uff0c\u5728web\u4e0a\u4f20\u9001\u7ed3\u6784\u5316\u6570\u636e\u7684\u5bb9\u6613\u65b9\u6cd5
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1\u2014Web Service
WebService\u662f\u4e00\u4e2aSOA\uff08\u9762\u5411\u670d\u52a1\u7684\u7f16\u7a0b\uff09\u7684\u67b6\u6784\uff0c\u5b83\u662f\u4e0d\u4f9d\u8d56\u4e8e\u8bed\u8a00\uff0c\u4e0d\u4f9d\u8d56\u4e8e\u5e73\u53f0\uff0c\u53ef\u4ee5\u5b9e\u73b0\u4e0d\u540c\u7684\u8bed\u8a00\u95f4\u7684\u76f8\u4e92\u8c03\u7528\uff0c\u901a\u8fc7Internet\u8fdb\u884c\u57fa\u4e8eHttp\u534f\u8bae\u7684\u7f51\u7edc\u5e94\u7528\u95f4\u7684\u4ea4\u4e92\u3002
WebService\u5b9e\u73b0\u4e0d\u540c\u8bed\u8a00\u95f4\u7684\u8c03\u7528\uff0c\u662f\u4f9d\u6258\u4e8e\u4e00\u4e2a\u6807\u51c6\uff0cwebservice\u662f\u9700\u8981\u9075\u5b88WSDL\uff08web\u670d\u52a1\u5b9a\u4e49\u8bed\u8a00\uff09/SOAP\uff08\u7b80\u5355\u8bf7\u6c42\u534f\u8bae\uff09\u89c4\u8303\u7684\u3002
WebService=WSDL+SOAP+UDDI\uff08webservice\u7684\u6ce8\u518c\uff09
Soap\u662f\u7531Soap\u7684part\u548c0\u4e2a\u6216\u591a\u4e2a\u9644\u4ef6\u7ec4\u6210\uff0c\u4e00\u822c\u53ea\u6709part\uff0c\u5728part\u4e2d\u6709Envelope\u548cBody\u3002
Web Service\u662f\u901a\u8fc7\u63d0\u4f9b\u6807\u51c6\u7684\u534f\u8bae\u548c\u63a5\u53e3\uff0c\u53ef\u4ee5\u8ba9\u4e0d\u540c\u7684\u7a0b\u5e8f\u96c6\u6210\u7684\u4e00\u79cdSOA\u67b6\u6784\u3002
Web Service\u7684\u4f18\u70b9
(1) \u53ef\u4ee5\u8ba9\u5f02\u6784\u7684\u7a0b\u5e8f\u76f8\u4e92\u8bbf\u95ee\uff08\u8de8\u5e73\u53f0\uff09(2) \u677e\u8026\u5408
(3) \u57fa\u4e8e\u6807\u51c6\u534f\u8bae\uff08\u901a\u7528\u8bed\u8a00\uff0c\u5141\u8bb8\u5176\u4ed6\u7a0b\u5e8f\u8bbf\u95ee\uff09
Web Service\u7684\u57fa\u672c\u539f\u7406
(1) Service Provider\u91c7\u7528WSDL\u63cf\u8ff0\u670d\u52a1
(2) Service Provider \u91c7\u7528UDDI\u5c06\u670d\u52a1\u7684\u63cf\u8ff0\u6587\u4ef6\u53d1\u5e03\u5230UDDI\u670d\u52a1\u5668\uff08Register server\uff09
(3) Service Requestor\u5728UDDI\u670d\u52a1\u5668\u4e0a\u67e5\u8be2\u5e76 \u83b7\u53d6WSDL\u6587\u4ef6
(4) Service requestor\u5c06\u8bf7\u6c42\u7ed1\u5b9a\u5230SOAP\uff0c\u5e76\u8bbf\u95ee\u76f8\u5e94\u7684\u670d\u52a1\u3002
Web Service 技术是原来的组件技术思想在 Internet 时代中的进一步发展,更准确地说,Web Service 是封装成单个实体发布到网络上,并提供 API 以提供其他程序使用的功能集合,是在 Internet 上进行分布式计算的基本构造块,是可用 URL 定位服务资源。简言之,Web Service 是可远程调用的应用程序组件。Web Service 的本质目的是提供一个与操作系统、程序设计语言、机器类型、运行环境均无关的平台,实现 Internet 中应用程序的共享。Web Service 基于一系列的标准协议,其协议构架如图 4.4 示。
图 4.4 Web Service 协议架构
统一描述、发现与集成协议 UDDI(UniversalDescription,Discovery and Integration )用 于 构 建Web Service 的服务注册中心,实现服务发现功能。Web 服务描述语言 WSDL(Web Service DescriptionLanguage)驻 留 在 服务 容 器 中, 定义 了 一 种提供Web 服务 描述 的 标 准化 方 式。简 单 对 象 访 问协议SOAP(Simple Object Access Protocol)提供传输数据的标准方式,充当在服务提供方和服务请求方之间激活服务的消息交换服务。可扩展标记语言 XML(Extensible Markup Language)是 Internet 上数据交换的标准,在 Web Service 中实现信息表达,用于 SOAP,WSDL 和 UDDI。超文本传输协议 HTTP(Hyper Text Transfer Protol)是 Web Service 最流行的传输协议。Web Service 体系结构是一种面向服务的结构,典型的Web Service 组件架构如图 4.5 示。
Web Service 体系结构主要由服务请求者、服务注册中心和服务提供者三部分组成。其实现过程包括服务发布与注册、服务查询与发现、服务绑定与调用三个过程。服务请求者指查询、调用服务的客户端程序; 服务提供者即服务的所有者和部署服务的平台; 服务注册中心指用来存储服务信息的信息库,服务提供者在这里发布、注册服务、而服务请求者在这里查询、绑定服务,最终实现调用服务提供者的服务。
图 4.5 Web Service 组件架构
Web Service 有两大核心优势,即分布性和互操作性。在 Web Service 架构下,服务提供者和服务请求者都可以是分布式的,一个服务请求者可以远程调用多个服务提供者的服务,服务提供者也可以同时为多个服务请求者提供服务,这为服务共享提供了一个最佳的方式。
互操作性也是服务共享的关键问题。Web Service 的信息表达基于标准通用的 XML 语言,在 XML 语言的基础上,使用 WSDL 和 UDDI 实现服务注册与发现,使用 SOAP 实现服务调用。基于这些标准的协议,Web Service 实现了服务的跨平台、跨语言的共享。XML、SOAP、WSDL 和 UDDI 是用于构建和使用 Web Service 的核心标准和技术。以下将分别介绍这四种标准和技术。
4.2.2.1 XML
XML 是一种数据描述语言,为 Internet 上数据交换的标准。XML 定义了应用系统间传递数据的结构,而且这种结构的描述不是基于二进制的、只能由程序去判读的代码,而是一种简单的、能够用通用编辑器读取的文本。XML 的基本概念包括元素、属性、DTD,Schema 和命名空间等。元素是 XML 文档内容的基本单元。语法上而言,一个元素包括一个起始标记、结束标记以及标记之间的数据内容。形式上为: < tag > 数据内容 < tag > 。元素内容可以为其他的元素或未处理文本或两者的混合,还可以是空的。元素的嵌套使得文档的层次结构很容易表示。一个元素可以有多个属性。属性是一个名称数据对,表示为字符串。用户可以根据需要自己定义。一个元素不能有同名的两个属性。
XML 的精髓是允许文档编写者制定基于信息描述、体现数据间逻辑关系的自定义标记。如果不对文档标记作明确定义,而是任意地使用它们,则生成的文档是无法识别的。DTD 是对文档结构的一个清晰描述,定义了特定文档中允许出现的元素类型、属性和实体,给出了文档的整体结构和语法。XML Schema 是定义 XML 的数据定义文件。XMLSchema 也规定了一套特定文档的结构,这是与 DTD 的相同之处。与 DTD 相比,最大的不同在于它本身也是 XML 文档。此外还有以下的不同: XML Schema 可以用 XML 解析器来解析; 允许使用全局性元素(在整个 XML 文档中用相同的方式使用元素)和局部元素(特定的上下文中元素有不同的含义); 提供丰富的数据类型(整型、布尔型、日期类型等),且元素的数据类型可以自定义。
XML 命名空间是一组可以用作 XML 文档的元素或属性名称的名称集,就是将元素或属性的名称归类。因为 XML 的开放性,允许任何人创建属于他们自己的元素或属性名称,这样就不可避免地出现不同的人或组织定义的元素名称或属性名称重复,使得相同的名称表达不同的语义。为了避免元素之间出现相同名称的冲突,命名空间限定这些元素或属性名称在命名空间内是唯一的。一般命名空间由这些统一资源标识符 URI(Universal Resource Identifier)来识别。URI 在 Internet 上是全球唯一的,用 URI 来限定 XML 元素名称或属性名称也就确保是全球唯一的。XML 主要具有四大优势:
(1)XML 用文本格式表示数据,方便在 Internet 上的传输。这一点使 XML 数据可以方便地利用现有的 Internet 上基于文本的各种传输协议(如 HTTP)进行传输,可以安全的穿越防火墙。
(2)XML 是可扩展的。XML 是一个元语言(MetaLanguage),它使用了标准化的方法定义其他语言。它只是为结构文档提供了一个数据格式,而没有深入该数据本身,定义它的词汇列表。这使自定义标记语言成为可能,每个行业,每个部门,甚至每个人都可以定义自己的标记语言。
(3)XML 可以对信息进行很好的层次描述。它基于信息内容的描述,对信息的表达清晰。
(4)XML 可以进行数据完整性的自动检验。XML DTD 和 Schema 机制使得 XML 解析器可以检验 XML 文档是否与 DTD 或 Schema 相配。
4.2.2.2 SOAP
SOAP 通过定义一个关于远程组件如何请求信息和如何递交信息的标准,实现 Internet中不同应用之间的集成和交互。SOAP 是一个基于 HTTP 和 XML 的请求、响应 RPC 协议。SOAP 把 XML 使用代码化为请求和响应参数编码模式,并用 HTTP 传输。SOAP 本身没有定义任何应用程序语义,如编程模型或特定语义的实现,实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使得 SOAP 能够被用于从消息系统到 RPC(远程进程调用)的各种应用中。
SOAP 规范主要由信封(Envelop)、编码规则(Encoding Rules)和 RPC 表示(RPC Representation)三部分组成。①SOAP 信封构造定义了一个整体的 SOAP 消息表示框架,可以用于表示消息中的内容是什么,是谁发送的,谁接受并处理它,以及这些处理操作是可选的还是必需的等。②SOAP 编码规则定义了一个数据的编码机制,通过这样一个编码机制来定义应用程序中需要使用的数据类型,并可用于交换由这些应用程序定义的数据类型所衍生的实例。③SOAP RPC 表示定义了一个用于表示远程过程调用和响应的约定,例如,如何使用 HTTP 或 SMTP 协议于 SOAP 绑定,如何传输过程调用,在具体传输协议的哪个部分传输过程响应,如可以在 HTTP 的响应的时候传递过程响应。这三部分在功能上是彼此独立的。特别的,信封和编码规则是被定义在不同的 XML 命名空间中,这样有利于通过模块化获得定义和实现的简明性。
SOAP 消息是 SOAP 应用中的主体要素。SOAP 为在一个松散的、分布的环境中使用XML 对等地交换结构化地和类型化的消息提供了一个简单的轻量级机制。SOAP 消息的描述框架格式是以 SOAP 信封为根元素,内含 SOAP Header 和 SOAP Body 子元素的一个XML 文档。所有的 SOAP 消息都是使用 XML 格式来编码的。SOAP 消息必须不包含 DTD与 PI(Processing Instructions)。除 SOAP must understand attribute 和 SOAP actor attribute外,一般允许属性及属性值自由地选择是在 XML 实例中描述还是在 XML Schema 中描述。SOAP 是一种基于 XML 的轻量级消息交换协议,它是建立在现有行业标准之上的,所以在支持这些标准的平台上运行的应用程序可以通过 SOAP 消息与其他平台上运行的应用程序有效地进行通信,而且能够穿越防火墙,因而得到了业界的广泛支持。
4.2.2.3 WSDL
Web 服务描述语言 WSDL(Web Services Description Language)是基于 XML 模式的规范,用于将 Web 服务描述为操作集,并将数据输入/输出参数描述为消息。WSDL 还定义使用绑定机制将任何传输协议、数据格式或结构附加到抽象消息、操作或终端的通信模型。
WSDL 将 Web 服务描述为一组服务访问点,或称为一组 “端口”,客户端可以通过这些端口对包含面向文档信息或面向过程调用的服务进行访问。一个端口定义了一个 “服务”项目的提供地点。一个服务可以有多个提供地点,但只能对一组事先定义好的 “信息”做出响应。“信息”是对通信数据的描述,每条信息由一组数据组成,这些数据必须定义为收、发双方都能识别的 “类型”。端口和信息结合在一起代表了一组 “操作”,并定义了这个服务访问点的 “端口类型”。把一种协议和一种数据格式关联在一起就定义出了一种可重复使用的 “绑定”。把一个网址和一个绑定关联在一起就定义了一个端口,相关的具体部署的端点通过组合就成为抽象的 Web 服务。综上所述,WSDL 文档的根元素是 definitions 元素,该元素又包含 6 个子元素:
(1)Types: 包含可由服务器收发的消息的架构定义。最常见的表示架构的方法是使用 XML 架构;
(2)Message: 充当一个将架构中的消息与消息的定义关联起来的交叉引用。简单地说,就是定义通信中的数据,包括数据输入和输出。
(3)PortType: 定义一组 Web 服务可公开的接口。一个接口与一个或多个消息关联。
(4)Operation: 它是对服务端所实现功能的抽象定义。
(5)Binding: 将 PortType 定义与某个特定的协议关联。
(6)Service: 定义 Web 服务公开的相关端点(端口)的集合。
4.2.2.4 UDDI
统一描述、发现和集成协议 UDDI(Universal Description,Discovery and Integration)是一套基于 Web 的、分布式的、为 Web 服务提供信息注册中心的实现标准规范,同时也包含一组使不同的人或组织能将自身提供的 Web 服务注册以使得他人或其组织能够发现的访问协议的实现标准。UDDI 注册的工作流程如图 4.6。
UDDI 注册中心是 Web 服务注册、用户集中管理的地方,通过它可以发布、查询、调用 Web Service,也可以查询特定服务的描述信息,并动态绑定到该服务上。UDDI 注册中心同时还提供服务结点管理、用户管理、权限管理、计费管理等功能。服务提供者提供服务需要到 UDDI 注册中心进行服务的注册、登记,这样用户就可以通过 UDDI 注册中心获取所需要服务的基本信息与技术细节信息,再通过对服务的绑定得到服务和产品。
图 4.6 UDDI 注册工作流程
扩展阅读:韩国macbookpro ... web proxyserver ... www.sony.com.cn ... www.vivo.com ... online web proxy ... 免费网站服务器软件下载 ... java webservice ... java windowbuilder ... springboot webservice ...