服务器端服务框架的制作方法

文档序号:7639585阅读:166来源:国知局

专利名称::服务器端服务框架的制作方法服务器端服务框架背景在包括客户机组件("客户机")和服务器组件("服务器")的系统中,服务器可能想展示客户机能使用的服务。传统上,为展示服务,开发者为该服务编写具有特殊扩展名的特殊文件。例如,在微软.NETTM平台中,Web服务由于服务器上ASMX文件的存在而被展示;该特殊扩展名为ASMX。Web服务通常提供允许客户机调用来得到特定信息的存在于服务器上的一个或多个方法。Web服务通常通过使用URL来调用。例如,URLhttp:〃www.xyz.com/app/login.asmx引导至用于XYZ.com的服务器上的登录服务。通常,URL指向物理文件,例如存在于服务器上的ASMX文件。客户机可通过采用引导至服务器上的ASMX文件的URL来调用Web服务。使用传统的展示服务的方法,服务开发者需要理解该特殊文件的句法,例如ASMX文件格式。另外,为了将现有的服务器代码转变成所展示的Web服务,开发者需要将现有的服务器代码转换成ASMX句法。因此,传统的展示供客户机使用的服务的手段需要不小的开发努力。尽管现有系统的特定弊端已在该背景一节中阐明和描述,但本领域的技术人员将意识到,此处所请求保护的主题不局限于用来解决任何或所有上述弊端的任何具体实现。概述提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并非意在确定所要求保护的主题的关键特征,也并非意在用来帮助确定所要求保护的主题的范围。本发明的各方面通过为服务提供一伪虚拟路径来补充传统的用于向客户机展示服务器提供的服务的机制。该伪虚拟路径允许开发者展示服务而不用创建具有特殊扩展名的物理文件。这种伪虚拟路径还可被加密,以使关于该服务6的信息不会被不必要地展示。根据本发明的一个方面,在包括至少一台服务器和一个客户机的分布式计算环境中,服务器上的服务通过服务器为该服务生成一伪虚拟路径来展示。该伪虚拟路径直接映射至该服务,而不是包含该服务的物理文件。较佳地,提供将该服务作为参数并为该服务生成伪虚拟路径的应用程序编程用户界面。较佳地,用于所展示的服务的伪虚拟路径被集成至服务器的代理类(proxyclass)中。该代理类可标识服务器提供的服务以及关于如何调用该服务的信息。代理类可包括所展示的服务的描述和类型信息。代理类可包括有关如何访问所展示的服务的信息,例如,通过为该服务提供伪虚拟路径或传统途径。一旦客户机发送对代理类的请求,该代理类即被发送到客户机。客户机可通过检査代理类来标识要请求哪些服务。客户机可使用代理类中的该服务的路径来请求服务。根据本发明的另一方面,当接收到来自客户机的服务请求时,服务器确定该服务请求是否包括伪虚拟路径。如果该服务请求的确包括伪虚拟路径,则服务器直接向客户机提供请求服务。通常,伪虚拟路径包括一指示该路径是伪虚拟路径的特殊标志。该路径中在该特殊标志之后的内容是表示该服务的特殊句法。因此,当确定服务请求是否包括伪虚拟路径时,服务器判定路径是否包括特殊标志。如果路径包括标识伪虚拟路径的存在的特殊标志,则服务器将该特殊标志之后的特殊语法视作表示该服务的信息。较佳地,为了防止服务器服务的不必要的展示,伪虚拟路径可在被集成至代理类中之前被加密。加密可仅覆盖该特殊标志,或可覆盖特殊标志和特殊句法两者。附图简述当结合附图考虑时,因为通过参考以下详细描述将更好地理解本发明的上述方面和许多附带优点,因此这些方面和优点将变得更加容易明白,在附图中-图1是示出了客户机与服务器之间的示例性交互的框图;图2A是示出了引导至所展示的服务器服务的示例性传统路径的框图;图2B是引导至所展示的服务器服务的示例性伪虚拟路径;图2C是示出了引导至所展示的服务器服务的示例性加密路径的框图;图3是示出了用于展示服务器服务的示例性过程的流程图;图4是示出了适合在图3中使用的用于提供映射至所展示的服务的伪虚拟路径的示例性例程的流程图;图5是示出了适合在图3中使用的用于确定服务请求是否包括伪虚拟路径的示例性例程的流程图;以及图6是示出了用于生成伪虚拟路径的示例性应用程序编程接口的框图。详细描述下文阐明和描述了本发明的示例性实施例。然而,本领域的普通技术人员将理解,在此可作出各种变化而不背离本发明的精神和范围。本发明的各实施例可以在诸如程序模块等由包括至少一个处理器和一个存储器的计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、窗口部件、对象、组件、数据结构等等。本发明的各实施例还可以在其中计算服务由某些实体("服务器")提供给其它实体("客户机")的分布式计算环境中实践。各实体可对同一计算系统是本地的,或通过通信网络链接。在分布式计算环境中,提供服务的程序模块可位于本地和/或远程计算机储存介质上。图1示出了包括至少一个客户机102和至少一个服务器104的示例性分布式计算系统100。服务器104提供客户机102可以使用的至少一个所展示的服务105,例如Web服务。Web服务通常提供允许客户机调用来得到特定信息的存在于服务器上的一个或多个方法。下面的代码阐明了展示于服务器104上的示例性Web服务SimpleService。,力giSy他w.股6.iSm'vce,.iSywew.呢6;为了展示由服务器104提供的服务105,本发明的示例性实施例使用了代理类108。代理类108可包括关于什么服务可供客户机102使用的信息。代理类108还可提供服务105的基本描述和关于如何调用服务105的信息。通常,代理类108向客户机102提供由服务器104提供的服务105的表示。代理类还可包括描述与服务105相关联的类型信息的信息。在本发明的示例性实施例中,服务器104上的每个所展示的服务105与代理类108相关联。在本发明的一示例性实施例中,例如由了解客户机102可能需要使用服务器104提供的所展示的服务105的客户机102的开发者向客户机102提供到用于服务器104的代理类108的链接。因此,一旦客户机102确定它需要使用代理类108中描述的服务105,客户机102即采用该链接向服务器104发送对于代理类的请求106。服务器104然后返回代理类108。客户机102通过检查代理类108来确定什么是服务器104所提供的。通过该检查,客户机102了解为了使用所展示的服务105可调用什么方法。客户机102然后采用代理类108中提供的信息来提出对所展示的服务105的请求110。例如,客户机102可调用由所展示的服务105提供的一特定方法。下文说明了用于所展示的服务SimpleService的代理类108中的示例性内容。<table>tableseeoriginaldocumentpage107</column></row><table>在本发明的各实施例中,包含于用于诸如服务105等服务的代理类108中的类型信息向服务器104提供标识符来定位该服务。类型信息可以是,例如,服务的类型名称、引导至该服务的URL、和/或该服务的方法名称。例如,在用于以上示出的所展示的服务SimpleService的代理类108中的示例性内容中,用于所展示的服务SimpleService的类型信息包括类型名称Acme.SimpleService、URL7app/AtlasServices/Acme/SimpleService.asmx"、禾口方法名称"HelloWorld"。同样显示于用于示例性SimpleService的代理类108中的以上示例性内容中,代理类108包括引导至服务器104上的诸如示例性SimpleService等所展示的服务105的路径。在本发明的各实施例中,引导至所展示的服务105的路径可以是传统路径、伪虚拟路径、或加密路径。图2A—2C为三类路径中的每一种提供了示例。通常,传统路径引导至包含所展示的服务105的服务器104上的物理文件。图2A示出了示例性4专统路^g200—http:〃server/app/folder/SimpleService.asmx。传统路径200指向服务器104上的物理文件—SimpleService.asmx。图2B示出了示例性伪虚拟路径240。表面上,伪虚拟路径240看上去类似于传统路径200。然而,伪虚拟路径240实际上并不像传统路径200那样映射至物理文件。伪虚拟路径240实际上映射至所展示的服务105。如图2B所示,伪虚拟路径240包括特殊标志242和特殊句法244。在本发明的各实施例中,特殊标志242和特殊句法244可以用服务器104能够识别的任何句法或格式来编写。例如,在本发明的某些实施例中,特殊标志242和特殊句法244作为一个实体出现,虽然服务器104能识别出该实体中的特殊标志242部分和特殊句法244部分。用于示例性的所展示的服务SimpleService的示例性代理类的以上代码阐明了用于该示例性SimpleService的伪虚拟路径。该路径为"/app/AtlasServices/Acme/SimpleService.asmx"。该路径中的"AtlasServices/Acme"用作指示该路径是伪虚拟路径的特殊标志242。该路径中的"SimpleService.asmx"是映射至所展示的SimpleService的示例性特殊句法244。在本发明的各实施例中,路径中特殊标志242的存在帮助服务器104确定该路径用作伪虚拟路径240,而不是引导至物理文件的位置的传统路径200。特殊标志242指示该路径中的特殊标志242之后的内容是特殊句法244。特殊句法244提供了所展示的服务105是什么的描述。特殊句法244不将伪虚拟路径240映射至服务器104上的物理文件。该特殊句法虽然看起来很像正常路径,但其通常包含了与所展示的服务105相关联的类型信息。例如,该类型信息可揭示所展示的服务105的类型名称。当以明文显示时,特殊句法244中揭示的类型信息可允许客户机102推测并调用客户机102应该不能访问的服务方法。例如,客户机102可推测http:〃Server/App/Special_Token/Forbidden.asmx所提供的服务可能包含方法"Forbidden()"并构造方法调用"Forbidden()",其中,实际上,该方法"Forbidden()"是由服务提供而客户机102应该不能访问。为了避免服务器信息的不必要的揭示,本发明的各示例性实施例对伪虚拟路径240加密。图2C示出了一示例性加密路径260。加密路径260可包含传统路径200或伪虚拟路径240。在本发明的一示例性实施例中,加密伪虚拟路径中的加密内容262仅包含直接映射至所展示的服务105的特殊句法244。在本发明的一替换实施例中,加密伪虚拟路径中的加密内容262包含特殊标志242与特殊句法244两者。在本发明的各示例性实施例中,无论在代理类108中使用何种类型的路径,例如传统路径或伪虚拟路径,来表示所展示的服务105,客户机102对该路径全部所察觉到的是所展示的服务105的URL。客户机102将该路径,即URL发送给服务器104以请求所展示的服务105。服务器104解释接收到的路径来确定接收到的路径是传统路径200、伪虚拟路径240、还是加密路径260。当服务器104在路径中检测到加密信息时,它首先解密该加密信息。服务器104然后利用所解密的信息来确定该路径是伪虚拟路径还是传统路径。例如,如果服务器104在接收到的路径中检测到特殊标志242,则服务器104确定该接收到的路径是伪虚拟路径240,并确定特殊标志242之后的内容是直接映射至所展示的服务105的特殊句法244。如图6所示,在本发明的一示例性实施例中,为了展示服务105以便它能被客户机102调用,服务105首先通过应用程序编程接口("API")600来注册。API600为服务105创建伪虚拟路径240。伪虚拟路径240然后被包括在用于服务器104的代理类108内。如图1所示,当客户机102请求代理类108时,服务器104将包含伪虚拟路径240的代理类108发送到客户机102。由此,客户机102可采用伪虚拟路径240来访问所展示的服务105。图3示出了采用伪虚拟路径来展示服务器服务的示例性过程300。通常,过程300为服务器上每个展示的服务生成一伪虚拟路径。当接收到来自客户机的对于所展示的服务的请求时,服务器确定该请求是包括伪虚拟路径还是传统路径,并相应地提供所展示的服务。在本发明的一示例性实施例中,如所示出的,过程300始于执行为服务器上所展示的服务生成伪虚拟路径并将其提供给潜在客户机的例程302。图4示出了例程302的示例性实现并不久将详述。或者,对于所展示的服务的潜在客户机可以接收到该服务的传统路径。想访问所展示的服务的客户机将向服务器发送对于该服务的请求。这样的请求可包含伪虚拟路径、传统路径、或包括伪虚拟路径或传统路径中的任一个的加密路径。因此,当确定服务器已接收到来自客户机的服务请求(见判定框304)时,过程300进而执行确定接收到的服务请求是否包括伪虚拟路径的另一例程306。见框306。图5示出了例程306的示例性实现并不久将详述。执行例程306后,过程300进而确定来自客户机的服务请求是否包括伪虚拟路径。见判定框308。如果对判定框308的答案为否,则过程300进而将该服务请求视为包括映射至用于所展示的服务的物理文件的传统路径并向客户机提供该物理文件。见框310。过程300然后终止。如果对判定框308的答案为是,则该服务请求的确包括伪虚拟路径;过程300进而向客户机提供伪虚拟路径的特殊句法中表示的服务。见框312。过程300然后终止。图4示出了用于向任何打算使用服务器上所展示的服务的客户机提供伪虚拟路径的示例性例程302。例程302首先为所展示的服务器服务生成一伪虚拟路径。见框402。在本发明的各实施例中,可通过不同手段生成伪虚拟路径。例如,如上所指出的,所展示的服务可以被送至为该服务创建伪虚拟路径的API。或者,可手动或通过脚本创建伪虚拟路径。例程302然后将该服务的伪虚拟路径包括在描述由服务器提供的服务的代理类中。见框404。如上所指出的,代理类还可包括关于服务器上什么服务可供客户机使用的信息。代理类还可包括服务的基本描述和关于如何调用服务的信息。代理类还可包括与服务相关联的类型信息。在本发明的一示例性实施例中,当客户机有可能向服务器调用由服务器提供的服务时,客户机的开发者将一到用于该服务器的代理类的链接嵌入于客户机中。当客户机打算使用服务器提供的服务时,客户机采用该到代理类的链接向服务器发出对于代理类的请求。因此,当接收到来自客户机的对于代理类的请求时,例程302向客户机提供代理类。见框406。然后客户机可采用代理类中提供的关于该服务的信息向服务器发送服务请求。本领域的普通技术人员将意识到,示例性例程302仅提供了一个为所展示的服务器服务提供伪虚拟路径的示例性手段。替换手段可包括,例如,采用脚本为所展示的服务器服务生成伪虚拟路径,并且当接收到来自客户机的对于服务器上所展示的服务的请求时,提供该伪虚拟路径。图5示出了确定客户机发送的服务请求是否包括伪虚拟路径的示例性例程306。例程306始于解析服务请求。见框502。例程306然后判定该服务请求是否包含任何加密内容。见判定框504。如果服务请求确实包括加密内容,则例程306进而解密该加密内容。见框506。如果对判定框504的答案为否,意味着服务请求包含明文,或者如果例程306已解密了任何加密内容,则例程306进而确定该服务请求是否包括指示伪虛拟路径的存在的特殊标志。见判定框508。如果对判定框508的答案为是,意味着服务要求确实包括伪虚拟路径,则例程306返回真并终止。见框512。如果对判定框508的答案为否,意味着服务请求不包括伪虚拟路径,则例程306返回假并终止。见框510。总之,本发明的各实施例为客户机提供了访问服务器展示的服务的另一种方法。该伪虚拟路径方法使得开发者能够展示服务器的服务而不用为该服务编写具有特殊扩展名的特殊文件。因此,开发者可展示服务器服务而不需要去理解特殊文件的句法或将现有的服务代码转换成该特殊文件的句法。因此,该伪虚拟路径方法减少了展示服务器服务所需要的开发努力。尽管用对结构性特征和/或方法性动作专用的语言描述了本发明的各方面,但应该理解,所附权利要求的主题并不必然局限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例性形式而公开的。权利要求1.在包括服务器组件(“服务器”)(104)和客户机组件(“客户机”)(102)的分布式计算系统中,一种用于展示由所述服务器(104)提供的服务(105)的计算机实现的方法,包括向所述客户机提供直接映射至所述服务(105)而不是映射至包含所述服务(105)的物理文件的伪虚拟路径(240);当接收到来自所述客户机(102)的对于所述服务(105)的请求(110)时,确定所述请求(110)是否包括所述伪虚拟路径(240);以及如果所述请求(110)包括所述伪虚拟路径(240),则根据所述伪虚拟路径(240)中的信息向所述客户机(102)提供所述服务(105)。2.如权利要求1所述的方法,其特征在于,所述伪虚拟路径包括一指示一路径为直接映射至所述服务的伪虚拟路径的特殊标志。3.如权利要求2所述的方法,其特征在于,所述伪虚拟路径还包括表示所述服务的特殊句法。4.如权利要求3所述的方法,其特征在于,所述特殊句法提供所述服务的类型信息。5.如权利要求3所述的方法,其特征在于,所述伪虚拟路径是被加密的。6.如权利要求5所述的方法,其特征在于,只有所述伪虚拟路径中的所述特殊句法是被加密的。7.如权利要求5所述的方法,其特征在于,所述伪虚拟路径中的特殊标志和特殊句法均被加密。8.如权利要求1所述的方法,其特征在于,向所述客户机提供伪虚拟路径包括生成所述伪虚拟路径;将所述伪虚拟路径包括于一代理类中;以及当接收到来自所述客户机的对于所述代理类的请求时,向所述客户机提供所述代理类。9.如权利要求8所述的计算机实现的方法,其特征在于,生成所述服务的所述伪虚拟路径包括使用所述服务作为参数来调用一应用程序编程接口,其中所述应用程序编程接口生成并返回所述伪虚拟路径。10.如权利要求8所述的计算机实现的方法,其特征在于,所述代理类标识所述服务器所展示的至少一种服务。11.一种包含于一个或多个计算机可读介质上的应用程序编程接口,包括涉及为服务器(104)上所展示的服务(105)生成伪虚拟路径(240)的功能,其中所述伪虚拟路径(240)直接映射至所述所展示的服务(105),而不是映射至包含所述服务(105)的所述服务器(104)上的物理文件。12.—种提供至少一种服务(105)的计算机系统,包括(a)存储器;以及(b)与所述存储器相耦合的、执行以下计算机可执行指令的处理器提供(302)直接映射至所述服务(105)的伪虚拟路径(240);当接收到来自客户机(102)的对于所述服务(105)的请求(110)时,确定(306)所述请求(110)是否包括所述伪虚拟路径(240);以及如果所述请求(110)包括所述伪虚拟路径(240),则根据所述伪虚拟路径(240)中的信息向所述客户机(102)提供(312)所述服务(105)。13.如权利要求12所述的计算机系统,其特征在于,所述伪虚拟路径包括一指示一路径为直接映射至所述服务的伪虚拟路径的特殊标志。14.如权利要求13所述的计算机系统,其特征在于,所述伪虚拟路径还包括表示所述服务的特殊句法。15.如权利要求14所述的计算机系统,其特征在于,所述特殊句法提供所述服务的类型信息。16.如权利要求14所述的计算机系统,其特征在于,所述伪虚拟路径是被加密的。17.如权利要求16所述的计算机系统,其特征在于,只有所述伪虚拟路径中的所述特殊句法是被加密的。18.如权利要求12所述的计算机系统,其特征在于,所述处理器通过以下步骤来执行用于提供直接映射至所述服务的伪虚拟路径的计算机可执行指令生成所述伪虚拟路径;将所述伪虚拟路径包括于一代理类中;以及当接收到来自所述客户机的对于所述代理类的请求时,向所述客户机提供所述代理类。19.如权利要求18所述的计算机系统,其特征在于,所述处理器通过以下步骤执行用于生成所述服务的伪虚拟路径的计算机可执行指令使用所述服务作为参数来调用一应用程序编程接口,其中所述应用程序编程接口生成并返回所述伪虚拟路径。20.如权利要求18所述的计算机系统,其特征在于,所述代理类标识所述服务器所展示的至少一种服务(全文摘要作为对通过映射至包含服务的具有特殊扩展名的物理文件的URL来展示服务器服务的传统手段的补充,向请求该服务的客户机提供了一直接映射至该服务的伪虚拟路径。该伪虚拟路径包括标识一路径为伪虚拟路径的特殊标志。该特殊标志之后的内容通过标识例如与该服务相关联的类型信息来直接映射至该服务。伪虚拟路径可以通过一应用程序编程接口来生成,并且还可在送至客户机之前被加密。文档编号H04L12/28GK101263481SQ200680033202公开日2008年9月10日申请日期2006年8月22日优先权日2005年9月12日发明者D·艾伯,N·科塔里,S·卡尔福特,T-H·杨申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1