当前位置: 首页 > 专利查询>微软公司专利>正文

利用抽象描述来生成、交换和配置服务和客户机运行库制造技术

技术编号:3511787 阅读:212 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及利用抽象描述来生成、交换和配置服务和客户机运行库。计算机系统剖析已编译代码以及可能的可任选配置信息,以实现服务并将已编译代码和任何配置信息转换成抽象服务描述。抽象服务描述然后可被转换成代码文档对象模型和服务配置信息,或被导出为元数据。对应的服务运行库可通过调用包括在抽象服务描述中的服务初始化器来启动。代码文档对象模型和配置信息和/或元数据可被传输到另一计算机系统。其它计算机系统可利用代码文档对象模型和配置信息和/或导入元数据,以便于初始化兼容的通道来与服务运行库通信。

【技术实现步骤摘要】

本专利技术涉及分布式应用程序编程模型,尤其涉及利用抽象描述来生成、交换和配置服务和客户机运行库
技术介绍
计算机系统和相关技术影响了社会的许多方面。实际上,计算机系统处理信息的能力已经转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现之前手动执行的多种任务(例如,文字处理、调度和数据库管理)。近来,计算机系统被彼此耦合且耦合到其它电子设备以形成有线和无线计算机网络,通过该网络,计算机系统和其它电子设备可传输电子数据。结果,在计算机系统处执行的许多任务(例如,语音通信、访问电子邮件、控制家用电器、web浏览以及打印文档)包括通过有线和/或无线计算机网络在多个计算机系统和/或其它电子设备之间的电子消息交换。网络实际上已变得如此大量增长,使得简单的启用网络的计算系统可通过通常被称为“因特网”的网络的混合与遍及全球的上百万其它计算系统中的任一个通信。这样的计算系统可包括台式机、膝上型计算机或图形输入板个人计算机、个人数字助理(“PDA”)、电话机、或能够通过网络通信的任何其它计算机或设备。在诸如面向服务的体系结构环境等某些环境中,连接端点(通常且在后文被称为“服务”)彼此通信以实现期望的功能。期望的功能可以如两个服务交换数据那样简单。例如,服务消费者可向服务提供者发送服务请求消息,服务提供者可接收和处理该服务请求消息,且服务提供者可向服务消费者返回对应的服务响应消息。然而,期望的功能也可以更复杂,例如,涉及多个服务交换消息以协调某一活动。服务通常具有支持对应的所提供的连接的某种类型的计算机系统(硬件和软件)。交换的消息(例如,服务请求消息和服务响应消息)可以用对涉及实现期望的功能的每一服务(例如,一个或多个服务消费者和一个或多个服务提供者)可理解的方式来定义。一般而言,消息可依照诸如分布式组件对象模型(“DCOM”)、公共对象请求代理体系结构(“CORBA”)或web服务等某一标准来定义。web服务还可依照诸如web服务描述语言(“WSDL”)、web服务策略框架(“WS-Policy”)等各种web服务规范来定义。例如,服务提供者可使用WSDL来描述其服务。服务提供者可向例如使用统一描述、发现和集成(“UDDI”)的服务目录发布描述。服务消费者可发出针对目录的查询以定义服务并确定如何与服务通信。由服务提供者提供的WSDL的各部分响应于查询被传递到服务消费者。服务消费者使用WSDL各部分以向服务提供者发送请求。服务提供者反过来向服务消费者提供适当的响应。在某些环境中,为生成服务,开发者依照指定的编程模型编写源代码(例如,以C#、C++或Visual Basic)。源代码然后可被编译成服务类型,且服务类型在服务运行库中执行以向服务消费者提供服务。然而,服务运行库可用不同的方式来创建,且不同的编程模型可以用不同的方式来实现分布式消息通信功能。例如,一种编程模型可使用一种接口来实现请求消息,并使用第二种不同的接口来实现对应的回复消息。另一方面,另一种编程模型可使用具有分离的方法的单个接口来同时实现请求消息和对应的回复消息。单个接口可具有用于请求消息的一个方法,以及用于对应的回复消息的第二个不同的方法。不同的编程模型也可依照诸如安全性选项、可靠消息通信选项、消息日志记录选项、连接节流选项等不同的配置选项来配置。由此,被设计成实现同一功能(例如,执行数学运算)的两个服务可不同地实现该功能。此外,分布式应用程序通常在其编程模型方面是严格的,从而仅允许紧密地耦合到其服务运行库的一个编程模型。因此,为兼容性起见,通常要求客户机运行库(例如,服务消费者处)利用依照与服务器运行库相同的编程模型来开发的客户机程序或模块。例如,如果服务是使用用于请求和回复消息的单独接口或使用特定的安全性机制来开发的,则服务消费者必须也实现那些接口或机制。无法使用依照同一编程模型开发的客户机程序或模块可组织客户机运行库与服务运行库通信。在许多环境中,在服务描述(或编程模型)和对应的运行库之间有严格的耦合。即,服务器定义其代码并生成其描述。为利用服务运行库,客户机下载服务描述并生成代理。然而,服务器处后续的甚至是非常少量的代码改变将导致客户机和服务器变得不兼容。即,由于服务描述和服务运行库之间的严格耦合,改变描述文档中甚至一个配置选项或定义的消息通信模式都可导致不兼容的客户机运行库。改变服务运行库的编程模型也可导致与现有客户机运行库的不兼容。此外,分发与新编程模型相关的信息可能是困难的。例如,客户机运行库的开发者在能够开始开发新客户机运行库之前可能必须等待新服务描述文档的发布。服务描述文档的生成在服务完成之前可能不会发生,且由此服务描述文档的生成可能落在基于新编程模型的新服务运行库的开发后面。不幸的是,当服务描述文档不可用或在某一方面不完整时,客户机运行库开发者可能很难标识且纠正不兼容性问题。此外,客户机运行库开发者可能无法访问由服务运行库开发者编写的服务类型源代码。由此,客户机运行库开发者可能没有方法来确定与新编程模型相关联的新消息模式或其它新配置选项。因此,客户机运行库开发者可能只有通过反复试验才能够标识并纠正不兼容性问题。因此,用于利用抽象描述来生成、交换和配置服务和客户机运行库的系统、方法和计算机程序将是有利的。
技术实现思路
现有技术的上述问题由本专利技术的原理克服,本专利技术针对用于利用抽象描述来生成、交换和配置服务和客户机运行库的方法、系统和计算机程序产品。在某些实施例中,计算机系统生成描述基于网络的服务的抽象服务描述。计算机系统访问服务类型(例如,包括编译的代码)以及对应的服务配置,以依照指定的编程模型来实现服务。计算机系统剖析服务类型和对应的服务配置,以标识基于指定的编程模型描述服务的描述信息。计算机系统基于所标识的描述信息为服务创建服务描述树。服务描述树的格式独立于任何编程模型,且是可消耗的,使得一个或多个变换模块可消耗该服务描述树来以其它格式创建服务的其它表示。在其它实施例中,计算机系统将描述了基于网络的服务的抽象服务描述变换成表示该服务的代码。计算机系统访问服务的服务描述树。服务描述树格式独立于任何编程模型,且是从根据对应的服务类型和服务配置剖析的描述信息生成的。计算机系统将服务描述树转换成不同的代表格式,使得描述信息可被兼容地传输到处理依照不同的代表格式定义的服务描述信息的模块。计算机系统以不同的代表格式输出描述信息。在另外的实施例中,计算机系统从描述基于网络的服务的抽象服务描述启动服务运行库。计算机系统访问服务的服务描述树。服务描述树格式独立于任何编程模型,且是从根据对应的服务类型和服务配置剖析的描述信息生成的。计算机系统调用与服务描述树相关联的初始化服务主机方法。计算机系统依照根据对应的服务类型和服务配置剖析的描述信息为服务初始化服务运行库。在还有一些实施例中,计算机系统生成用于通道的源代码。计算机系统访问描述服务的元数据。计算机系统将元数据导入通道的通道描述树中。通道描述树独立于任何编程模型。计算机系统从通道描述树生成代码文档对象模型和对应的服务配置。所生成的代码文档对象模型和对应的服务配置用于依照指定的编程模型来实现通道。计算机系统输出所生成的代码文档对象模型,作为源代码,并输出对应的服务配置,使得本文档来自技高网
...

【技术保护点】
一种在计算机系统处生成描述基于网络的服务的抽象服务描述的方法,所述方法包括:访问用于依照指定的编程模型来实现服务的服务类型和对应的服务配置的动作,所述服务类型包括已编译的源代码;剖析所述服务类型和对应的服务配置以标识描述信息的动作,所述描述信息基于所述指定的编程模型描述所述服务;以及基于所标识的描述信息为所述服务创建服务描述树的动作,所述服务描述树的格式独立于任何编程模型,所述服务描述树是可消耗的,使得一个或多个其它变换模块可消耗所述服务描述树以用其它格式创建所述服务的附加表示。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:A戴雅纳特D沃滕代克EK兹恩达J瑞兹斯考高尔MJ马鲁切克MS威尔诺RT斯特戈尔SJ米尔雷特ST斯瓦特兹
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1