从表单和表元数据中导出web服务接口的方法

文档序号:6476978阅读:177来源:国知局

专利名称::从表单和表元数据中导出web服务接口的方法从表单和表元数据中导出web服务接口的方法背景此背景旨在提供本专利申请的基本上下文,而不旨在描述要解决的具体问题。通常需要被设计成在一个环境中工作的计算机应用程序在不同环境中工作。例如,一计算机应用程序可被设计成安装在计算机的硬盘驱动器上,以使数据容易获得。然而,随着时间变化,可能需要不同的环境。例如,可能需要使得应用程序可通过因特网获得,在这种情况下不会将该应用程序安装在正使用该应用程序的每一计算机上的每一硬盘驱动器上。尽管描述应用程序中使用的表单和表的数据是可用的,但将应用程序修改为可通过因特阿获得仍需要仔细的审阅和修改。讽W提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。许多应用程序是其中诸如表单和表等数据的抽象是应用程序设计的驱动力的数据驱动应用程序。相当多的努力已经投入到定义应用程序中这些抽象(表、表单等)之后的元数据中。元数据描述了到应用程序的接口,诸如哪些字段是有意义的以及哪些交互是可用的。例如,用于销售定单表单的元数据包含用于标题的字段(买家、日期、交付条款等)以及创建该表单的行。该元数据还可以包含用户可以对该表单做的事,诸如保存、发送、发货等。通过使用此数据,可以使用简单对象访问协议即SOAP来授权程序性访问。公开了从表单和表元数据中导出web服务接口的系统和方法。该方法使用发现子系统来发现在应用程序服务器上可用的服务。该方法在应用程序服务器上检索这些服务的元数据描述。该方法使用所发现的服务和这些元数据描述来创建web服务接口,以使该服务可使用web服务描述语言来获得。附图图1是可根据各权利要求来操作的计算系统的框图2是从表单和表元数据中导出web服务接口的方法的流程图的图示;图3是实现图2的方法的系统的图示;以及图4是协助实现该系统的方法的各部分的图示。描述尽管以下正文阐明众多不同实施例的详细描述,但是应当理解,该描述的法律范围由本发明所附的权利要求书的言辞来限定。该详细描述应被解释为仅是示例性的,且不描述每一可能的实施例,因为描述每一可能的实施例即使不是不可能的也是不切实际的。可使用现有技术或在本申请提交日之后开发的技术来实现众多替换实施例,而这仍落入权利要求书的范围之内。还应该理解,在本专利中,除非使用句子"如此处所用,术语'_'特此被定义为意指......"或者类似句子来明确地定义一个术语,否则不管是明确地还是含蓄地,都没有限制该术语意义超出其平常或普通意义的意图,并且,这一术语不应该被解释为被限制在基于本专利的任何部分中(除了权利要求书的语言之外)所做的任何陈述的范围中。就本专利所附的权利要求书中所述的任何术语在本专利中以与单数意义相一致的方式来引用而言,这是为简明起见而如此做的,仅仅是为了不使读者感到混淆,且这类权利要求术语并不旨在隐含地或以其它方式限于该单数意义。最后,除非一权利要求要素是通过叙述单词"装置"和功能而没有叙述任何结构来定义的,否则任何权利要求要素的范围并不旨在基于35U.S.C.§12第6段的应用来解释。图1示出在其上可实现用于所要求保护的方法和装置的步骤的系统的合适的计算系统环境100的示例。计算系统环境100仅为合适的计算环境的一个示例,并不旨在对本权利要求的装置的方法的使用范围或功能提出任何局限。也不应该把计算环境IOO解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。所要求保护的方法和装置的步骤可运行于多种其它通用或专用计算系统环境或配置。适合在本权利要求的方法或装置中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型机、包括上述系统或设备中的任一个的分布式计算机环境等。所要求保护的方法和装置的步骤可在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。这些方法和装置也可以在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包f舌存储器存储设备在内的本地和远程计算机存^l-介质中。参见图1,用于实现所要求保护的方法和装置的各步骤的示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、也称为夹层(Mezzanine)总线的外围部件互连(PCI)总线、以及快速外围部件互连(PCI-E)。计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机UO访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以7由计算机IIO访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。术语"已调制数据信号"指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,它通常储存在ROM131中。RAM132通常包含处理单元120可以立即访问和/或目前正在其上操作的数据和/或程序模块。作为示例而非局限,图l示出了操作系统134、应用程序135、其它程序模块136和程序数据137。计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图l示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器140,对可移动、非易失性磁盘152进行读写的磁盘驱动器151,以及对诸如CDROM或其它光学介质等可移动、非易失性光盘156进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘162和定点设备161(通常指的是鼠标、跟踪球或触摸垫)向计算机20输入命令和信息。其它输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。除监视器以外,计算机还可以包括其它外围输出设备,诸如扬声器197和打印机196,它们可以通过输出外围接口l卯连接。计算机110可使用至一个或多个远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机UO通过网络接口或适配器171连接至LAN170。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN173建立通信的其它装置。调制解调器172可以是内置或外置的,它可以经由用户输入接口160或其它适当的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非局限,图l示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。图2是从表单和表元数据中导出web服务接口的方法的图示。随着越来越多应用程序从基于本地转换为基于web,已经存在自动化将基于本地的应用程序转换成可通过诸如因特网等较宽网络获得的应用程序的过程的需要。大多数商业应用程序是其中诸如表单和表等数据的抽象是应用程序的设计的驱动力的数据驱动应用程序。相当多的努力已经投入到定义应用程序中这些抽象(表、表单等)之后的元数据中。元数据描述了到应用程序的接口,诸如哪些9字段是有意义的以及哪些交互是可用的。例如,用于销售定单表单的元数据包含用于标题的字段(买家、日期、交付条款等)以及创建该表单的行。元数据还可以包含用户可以对表单做的事,诸如保存、发送、发货等等,这些可以被表示为表单上的按钮或菜单选项或通过其它手段来表示。通过使用此数据,可以使用简单对象访问协议即SOAP来授权程序性访问。在某些应用程序中,表可以被认为是最低级的抽象。例如,表可以定义与一实体相关的一组字段且这些字段可以包含值或从此表或其它表中的值计算而得。字段还可以具有诸如值的类型(串、整数等)及其大小(例如,串长度50)等特性。此外,表还可以包括优化对实体的寻找的索引,以及用于在插入、更新以及删除时的确认逻辑的触发器/事件。代码单元抽象是一种以与如同visualbasic的程序语言相似的方式定义到方法的接口的标准的面向方法的程序性抽象。表单抽象定义应用程序的用户接口。表单抽象为用户将字段组合在一起且仅对用户显示相关的字段。表单抽象还可以向用户提供与数据交互的手段,诸如査看、插入和修改以及对诸如发送订单或生成发货通知等系统功能的访问。表单定义了实体(诸如销售定单)的外部视图,它定义了视图中的字段以及该视图是否准许或允许诸如读取、修改、插入、删除以及定义哪些字段是只读的和哪些字段是可编辑的等功能。通过从应用程序的用户接口中推导,可以使得该应用程序可使用诸如web服务技术等远程技术来获得。再次参考图2,在框200,可以使用发现子系统来发现应用程序服务器可用的服务。图3可以是该方法的示例系统部署的图示。服务客户机305可以是服务的消费者或开发者。服务客户机305可以通过通信云320向应用程序的服务器315传递发现请求310。在一个实施例中,该通信云是因特网且通信使用TCP/IP上的http来发生。当然,其它实施例也是可能的。例如,客户机和服务器可以是本地的,诸如在内联网上。在框210,服务客户机305(图3)可以请求应用程序服务器315上的服务的元数据描述325。该服务器315可以使用通信云320来返回元数据请求325。在另一实施例中,使用web服务定义语言请求来检索元数据。服务请求330也可以使用通信云320。在框220,使用所发现的服务310和元数据描述325来创建web服务接口,以使该服务可使用web服务描述语言来获得。从服务客户机到应用程序服务器的通信可以为诸如插入和更新等服务交互使用http上的soap。图4是可以如何处理各种请求的图示。如前所述,客户或开发者405可以向应用程序请求元数据410。该请求可以由服务器基础结构(IIS)415传送到服务代理程序420。服务代理程序420随后可以确定请求是哪种类型并随后将其路由到适用的子系统。该单独子系统处理这些请求。一个子系统是发现子系统425。该发现子系统允许客户机/开发者发现那些服务可从系统中获得。响应可以是各种格式的,包括来自微软公司的DISCO格式。一旦部署了web服务,则潜在用户一定能够发现它在哪里以及它如何工作。DISCO是微软⑧的用于发布和发现web服务的技术。通用描述、发现和集成(UDDI)是定义用于更新和查询web服务信息储存库的基于SOAP的协议的行业级发端。如同DISCO—样,UDDI使得发布和发现web服务成为可能,从而最大化了站点的范围和最终成功。web服务描述语言(WSDL)是试图标准化可以如何以XML格式来描述web服务的正在进行的发端。WSDL文档按照消息和(通常的)XML架构类型定义来描述服务的操作、以及它们如何被绑定到各种协议和端点。一旦客户机可以沾手WSDL文档,它应该具有足够的信息来知道如何与目标web服务交互。如果客户机知道WSDL文档在哪里,则它可以简单地通过HTTP来要求该文档。然而,如果客户机不知道WSDL在哪里,则需要发现机制。使用DISCO来发现过去,大多数消费者通过浏览web、接收电子邮件、或通过口述来找出新的web服务(以及它们的端点地址)。DISCO可以定义文档格式以及询问算法,从而使得发现在给定服务器上展示的web服务成为可能。DISCO还使得发现每一web服务的能力(经由文档编制)以及如何与它交互(经由WSDL)成为可能。为使用DISCO来发布部署的web服务,用户需要注册应用程序服务器内的服务。.disco响应是仅包含到描述该web服务的其它资源的链接的XML文档,其非常相似于包含人类可读文档的HTML文件或包含接口合约的WSDL文件。在数据库表中注册从旨在可作为web服务来进行web访问的应用程序底层的数据中进行的抽象,如表单430和表435。从该数据库表填充发现子系统425。如果用户已经将数据库中的每一记录标记为服务,则该记录在响应中变为DISCO响应内的web服务条目。响应中的每一条目可以包含指向该服务的web服务描述语言(wsdl)描述的统一资源定位符(url)。元数据提供者元数据提供者440可以提供可由诸如可以理解WSDL格式的工具等标准工具使用的服务接口的描述。客户机/开发者可以请求特定服务的描述。系统加载描述该服务的元数据427,如表单430和表435。随后使用元数据427来定义被传递到该服务的值类型以及消息。部分。系统通过加载表单元数据427开始且该表单元数据持有关于表单430将数据保存到哪个表435的信息。该表单430元数据427还指出将哪些来自表435的字段显示在表单430上。表元数据437包含这些字段及其特性,如类型(以及大小)和名称。除了服务的名称以外,xml类型也从此元数据信息427中构建。服务的名称形成值类型的名称,随后表单上的每一字段作为其中使用该字段的名称和类型的值类型上的字段显示。假设应用程序具有表435。tableid=l=>Customers{fieldid=l=>Name:string(100),fieldid=2=>TelephoneNumber:string(16),fieldid=3=>Rating:int以及表单430:formid=2=>CustomerCard{table-ref1,field-ref1,field-ref2,can-readtrue,can-inserttrue,can-modifytrue,can-ddctcfaiss该表单430可以在表Customers(顾客)中插入新记录。此表单430还可以编辑并读取字段Name(名称)禾BTelephoneNumber(电话号码),但是它既不能删除记录也不能读取或编辑Rating(评级)字段。具有对作为程序性构造的此视图/表单430的访问权是合乎需要的。为此,可以将视图/表单430注册为服务。将Form:2(表单2)注册为Customer通过将表单430CustomerCard(顾客卡)注册为服务,可以检索WSDL描述且可以调用该WSDL中所描述的服务。该WSDL文件包含以下信息方法Find(寻找)、Insert(插入)、Update(更新)以及Get(取得),它包含被称为Customer的类型,该类型具有两个字段Nam)和TelephoneNumber。此类型是方法的参数。分派器分派器445接收实际服务请求。将该服务请求格式化为由元数据提供者440所提供的WSDL中所提供的规范。该分派器445的基本操作是通过虚拟地填充表单430并调用表单430的正确方法以分派消息或使用来自表单430的信息来填充响应。尽管以上正文陈述了众多不同实施例的详细描述,但是应当理解,本专利的法律范围由本专利所附的权利要求书的言辞来限定。该详细描述应被解释为仅是示例性的,且不描述每一可能的实施例,因为描述每一可能的实施例即使不是不可能的也是不切实际的。可使用现有技术或在本申请提交日之后开发的技术来实现众多替换实施例,而这仍落入权利要求书的范围之内。由此,可在此处所描述和示出的技术和结构上作出许多修改和变化而不脱离本权利要求的精神和范围。因此,应当理解,此处所描述的方法和装置仅是说明性的,且不限制本权利要求的范围。权利要求1.一种从表单和表元数据中导出web服务接口的方法,包括使用发现子系统来发现应用程序服务器上可用的服务200;在所述应用程序服务器上检索所述服务的元数据描述210;以及使用所发现的服务和来自发现子系统的元数据描述来创建web服务接口,以使所述服务可使用web服务描述语言来获得220。2.如权利要求1所述的方法,其特征在于,所述元数据是使用web服务定义语言请求来检索的305。3.如权利要求1所述的方法,其特征在于,还包括使用http与所述应用程序服务器通信以便进行发现和元数据检索。4.如权利要求1所述的方法,其特征在于,还包括适用http上的soap从服务客户机向所述应用程序服务器通信以便进行服务交互。5.如权利要求所述的方法,其特征在于,所述发现子系统响应使用DISCO格式425。6.如权利要求1所述的方法,其特征在于,在数据库表中注册旨在可作为web服务来进行web访问的抽象。7.如权利要求6所述的方法,其特征在于,所述发现子系统从所述数据库表填充425。8.如权利要求7所述的方法,其特征在于,如果所述数据库中的每一记录已经被标记为服务,则该记录成为所述响应中的条目425。9.如权利要求8所述的方法,其特征在于,所述响应中的每一条目包含指向所述服务的web服务描述语言(wsdl)描述的统一资源定位符(url)425。10.如权利要求l所述的方法,其特征在于,元数据提供者提供可由与所述WSDL格式兼容的标准工具使用的所述服务的描述440。11.如权利要求IO所述的方法,其特征在于,除消息外,还使用所述元数据来定义被传送到所述服务的值类型427。12.如权利要求10所述的方法,其特征在于,所述表单元数据指出所述表单将它的数据保存到来自哪些表的哪些字段且所述表单元数据指出来自所述表的哪些字段在所述表单上显示427。13.如权利要求10所述的方法,其特征在于,所述表元数据包含所述字段及其特性437。14.如权利要求10所述的方法,其特征在于,从表单元数据和表元数据与所述服务的名称中构建XML类型427。15.如权利要求1所述的方法,其特征在于,所述表单上的每一字段表现为其中使用字段的名称和类型的值类型上的字段427。16.—种包括用于从表单和表元数据中导出web服务接口的计算机可执行代码的计算机可读存储介质,其中所述计算机代码还包括用于以下动作的代码使用发现子系统来发现应用程序服务器上可用的服务200;在所述应用程序服务器上检索所述服务的元数据描述,其中所述元数据是使用web服务定义语言请求来检索的210;以及使用所发现的服务和来自发现子系统的元数据描述来创建web服务接口,以使所述服务可使用web服务描述语言来获得220。17.如权利要求16所述的计算机可读介质,其特征在于,在数据库表中注册旨在可作为web服务来进行web访问的抽象,并且其中,所述发现子系统从所述数据库表填充。18.如权利要求16所述的计算机可读介质,其特征在于,所述响应中的每一条目包含指向所述服务的web服务描述语言(wsdl)描述的统一资源定位符(url)。19.一种包括用于执行计算机可执行代码的处理器、用于存储计算机可执行代码的存储器和输入/输出电路的计算机系统,所述计算机可执行代码还包括用于从表单和表元数据中导出web服务接口的代码,其中所述计算机代码还包括用于以下动作的代码使用发现子系统来发现应用程序服务器上可用的服务200;在所述应用程序服务器上检索所述服务的元数据描述,其中所述元数据是使用web服务定义语言请求来检索的210;以及使用所发现的服务和来自发现子系统的元数据描述来创建web服务接口,以使所述服务可使用web服务描述语言来获得220。20.如权利要求19所述的计算机系统,其特征在于,元数据提供者提供可由与所述WSDL格式兼容的标准工具使用的所述服务的描述;其中所述表单元数据指出所述表单将它的数据保存到来自哪些表的哪些字段且所述表单元数据指出来自所述表的哪些字段在所述表单上显示;以及其中所述表元数据包含所述字段及其特性。全文摘要公开了从表单和表元数据中导出web服务接口的系统和方法。该方法使用发现子系统来发现应用程序服务器上可用的服务、在应用程序服务器上检索该服务的元数据描述以及使用所发现的服务和元数据描述来创建web服务接口以使得该服务可使用web服务描述语言来获得。文档编号G06F17/00GK101669113SQ200880013483公开日2010年3月10日申请日期2008年4月3日优先权日2007年4月27日发明者R·K·拉芬森申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1