Webservers学习总结
一:什么是webservers?
答:webservers是一个运行于非本地服务器上的,可以提供某种功能的程序。他向外提供了一些接口,这些接口可被其他程序所使用,从而完成某一功能。对于使用webservers的程序,它就象使用本地服务器端主件一样,只不过这个主件没有在本地服务器上,若把webservers放到本地,跟使用本地服务器端主件一样。
因此,webservers可以实现软件,硬件,数据资源的共享。实现分步式处理数据。
二:webservers用来做什么的?
答:webservers本身是实现某一功能的程序,当其他程序调用它时,他就可以为这个程序提供这一个功能。实现软件,硬件,数据资源的共享。
Webservice的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力。
三: 学习webservers要学些什么?
答:会本地程序开发,xml,   DOM vs. SAX,SOAP (Simple Object Access Protocol), WSDL (Web service Description Language), 以及UDDI (Universal Description, Discovery and Integration)
学习本地程序开发是开发webservers最基本的,因为webservers也是跟一般程序一样的开发,要懂语法和开发工具等。
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml;
[WebService(Namespace = "/")]//他就是程序调用webservers后,去访问webservers的程序地址,也是dtd的地址空间
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () {
        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }
    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }
  [WebMethod(Description="终于懂了")]
    public string get_hai(int i)
    {
      if(i>10)
      {
        return "<script language='javascript'> alert('nihao')</script>";
      }
      else
      {
      return "dd";}
    }
}
学习xml是为了知道webservers在进行数据传输时,保存和传输都是用的xml,因此webservers可实现异构系统之间的数据交换。
如何生成webservice客户端
学习DOM vs. SAX
他们的作用是为了解析收到的xml文件的内容或对xml文档进行操作修改。(一般的开发不用dom或者sax,他们做的工作由开发环境自动完成,因此读者只需知道他们的作用是什么就行了)
许多的Webservice开发环境,将开发者从底层的XML文档的解析和处理中解放出来,他们提供了自动化或者很方便的工具,使得这一过程变得很简单。但是对于一些有特殊要求的Webservice应用,比如需要更好的柔性或者对速度要求特别高的应用,就需要手工处理XML文档。这时候两种XML解析的模型-DOM SAX的选择,将成为重要的问题。
 DOM使用树状图的方式解析XML文档,而SAX则更多的采用事件驱动的模型。
DOM先将XML文档映射成一颗树,然后通过采用一系列与树相关的操作去处理这份文档。这种方法有很多的好处,首先开发者很容易理解,使用一颗树这对于开发者来说是最常见不过的了。DOM最常用于XMLService中需要频繁修改的场合。当然DOM也有它的缺点,在处理XML文档的时候,它需要载入整个文档,而不管你需要修改的是否只是其中的一小部分。因此它的运行效率以及对内存的使用显然是不能接受的,尤其是面对很大的XML文档。
SAX使用事件驱动的模型来处理XML文档。通过一系列事件的触发,来完成对XML的解析,你可以只关心你所要处理的事件,当这些事件发生时,会调用到相应的回调函数来通知到你。采用这种方式就可以在很大程度上提高XML文档解析的效率。但是它的缺点在于难于使用,以及对同一文档的多次处理会存在一些问题。
总而言之,DOM更适合处理那种文档型的XML文件,而SAX则适于那种想直接将XML结构映射成在你系统中的一个对象的操作。(比如将一个XML结构直接映射成JAVA中的一个Class)或者那种针对XML文件中特殊Tag的操作。
学习WSDL
它是实现不同方式开发的webservers能提供同一标准的接口,这就可使各个webservers兼容,因此,开发者和使用者不必担心webservers的具体实现采用什么标准了,只要提供的接口标准一致就可相互调用兼容。
WSDL是实现协同能力的关键,它提供了一份契约用于与新老的应用之间交互。这项技术使得各个组织可以将标准的制定集中在Service的外部接口,而不用考虑各组织的具体实现。简而言之,它实现了Webservice的接口与实现的分离。从而使得标准的制定,更加容易。并且,基于这份接口描述,很多工具可以从中自动生成客户端代码,减少了开发者的工作量,并使得大部分开发者摆脱了编写SOAP消息传递代码过程。
学习SOAP
简单的soap可由wsdl自动生成,但复杂的不行。学要人工编写soap,因此要学好soap传输 机制或xml的内容。
它主要是制定采用什么方式来传输webservers之间数据规则
SOAP是实现在各个Webservice组件之间传递消息的传输层。因此,SOAP应该是一项透
明的协同技术。但是,由于很多的SOAP实现方法却与标准背道而驰,要么添加了新的扩展功能要么删减了一些标准功能。由于对SOAP标准的支持程度不同,使得Webservice的协同能力大打折扣,实现协同的困难加大了。基于这种情况,当开发者需要Webservice运行在不同平台上时,就要对具体情况加以了解并相应的编码以解决这种不一致性。如果所有的SOAP实现组织都能够遵循标准的话,那么Webservice的开发者就不需要考虑使用该Webservice的底层平台了。
理解传输模型
SOAP并不是完全透明的解决方案,它把一些复杂的实现细节隐藏起来。Webservice的开发者必须深入的了解SOAP,了解底层的传输机制以及模型,从而知道SOAP是如何实现的。在一些简单的应用中,某些工具可以帮助Webservice的开发者生成SOAP消息传递的代码,但是这只在最简单的应用中有效。真正的情况不可能那么简单,可能在某些方面你需要有特殊的处理(这种情况在实际开发中是很常见的),这个时候,你就需要直接操纵SOAP的消息传递代码,以及一些底层的XML内容。因此,Webservice的开发者需要深入了解SOAPXML层的内容。
在开发Webservice的接口的时候,不要以为使用XML技术,协作性的问题就迎刃而解了,XML并不是解决集成问题的灵丹妙药。这里同样需要标准的制定,需要一个在业界公认的词汇表。仅仅在你的设计框架中引入XML技术并不能保证系统具有协同性,XML仅仅是用来描述数据的语言,XML自己并不提供语义去理解数据。就如同英语和德语都使用拉丁字母,但是他们的语义却并不相同。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。