web service介绍

web广泛用到的技术:

  ◆TCP/IP:通用网络协议,被各种设备使用

  ◆HTML:通用用户界面,可以使用HTML标签显示数据

  ◆Java:写一次可以在任何地方运行的通用编程语言

  ◆XML :通用数据表达语言,在web上传送机构化数据的容易方法

HTML
HTML  XHTML  HTML 5  CSS  TCP/IP
XML
XML  XSL  XSLT  XSL-FO  XPath  XPointer  XLink  DTD  XML Schema  DOM  XForms  SOAP  WSDL  RDF  RSS  WAP  Web Services
Web脚本
JavaScript  HTML DOM  DHTML  VBScript  AJAX  jQuery  JSON  E4X  WMLScript
Serv脚本
SQL  ASP  ADO  PHP
.NET
多媒体
SMIL  SVG

 


  他们的特点是其开放性,跨平台性,开放性正是Web services的基础。

        关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web 浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。

        Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。

两种重要技术

 

  要达到这样的目标,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 service介绍

关于Web 服务


    Web Service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法类型系统。要实现互操作性,Web Service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有:

XMLXSD(XML Schemas Definition)

  可扩展的标记语言XML是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD 定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。

  XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的。W3C制定的XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web service平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB. NET或C#)来构造一个Web service时,为了符合Web service标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。

       XML Schema 是DTD的替代品。XML Schema语言也就是XML Schema Definition (XSD)。XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。XSD文件的后缀名为.xsd。

       1) XML Schema基于XML,没有专门的语法  2) XML Schema可以象其他XML文件一样解析和处理  3) XML Schema支持一系列的数据类型(int、float、Boolean、date等)  4) XML Schema提供可扩充的数据模型。  5) XML Schema支持综合命名空间  6) XML Schema支持属性组。

     如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如 SOAP。

SOAP

  SOAP即简单对象访问协议(Simple Object Access Protocal),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。Web service建好以后,你或者其他人就会去调用它。简单对象访问协议(SOAP)提供了标准的RPC方法来调用Web service。实际上,SOAP在这里有点用词不当:它意味着下面的Web service是以对象的方式表示的,但事实并不一定如此:你完全可以把你的Web service写成一系列的C函数,并仍然使用SOAP进行调用。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。

  Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。

WSDL

  Web Service描述语言WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数参数返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。你会怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的WebService。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。

UDDI

  UDDI(Universal Description, Discovery and Integration) 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。为用户提供动态查找其他web服务的机制。可将它看做商业程序的DNS服务。

  为加速Web Service的推广、加强Web Service的互操作能力而推出的一个计划,基于标准的服务描述和发现的规范(specification)。  以资源共享的方式由多个运作者一起以Web Service的形式运作UDDI商业注册中心。  UDDI计划的核心组件是UDDI商业注册,它使用XML文档来描述企业及其提供的Web Service。  UDDI商业注册提供三种信息:  White Page包含地址、联系方法、已知的企业标识。  Yellow Page包含基于标准分类法的行业类别。  Green Page包含关于该企业所提供的Web Service的技术信息,其形式可能是指向文件或URL的指针,而这些文件或URL是为服务发现机制服务的。

远程过程调用RPC与消息传递

  Web Service本身其实是在实现应用程序间的通信。我们现在有两种应用程序通信的方法:RPC远程过程调用 和 消息传递。使用RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。

    

 

你可能感兴趣的:(Web,service)