CN1705947A - 服务发现及发布 - Google Patents
服务发现及发布 Download PDFInfo
- Publication number
- CN1705947A CN1705947A CNA2004800013241A CN200480001324A CN1705947A CN 1705947 A CN1705947 A CN 1705947A CN A2004800013241 A CNA2004800013241 A CN A2004800013241A CN 200480001324 A CN200480001324 A CN 200480001324A CN 1705947 A CN1705947 A CN 1705947A
- Authority
- CN
- China
- Prior art keywords
- service
- discovery
- information
- application programming
- programming interfaces
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4541—Directories for service discovery
Abstract
本文内容包括服务的发现和发布的系统和方法。应用程序描述了服务发现、发布和订阅(subscription)服务发现应用编程接口的要求。服务发现应用程序接口援用一个或多个低等级协议来满足该发现、发布和/或订阅的要求。从低级协议中得到的服务信息被编组成一个统一的数据模型,并返还给用户应用程序。此外,服务信息可被存储在一个由与服务发现API通讯相连的发现持续服务所管理的一个长期数据存储器中。
Description
(1)技术领域
本发明涉及数字计算,尤其涉及在计算设备和计算网络中的服务发现(service discovery)。
(2)背景技术
在计算设备和计算机网络上运行的应用程序,有时会需要使用由其他与计算设备或网络相连接的物理或逻辑设备所提供的服务。目前,应用程序使用大范围的应用编程接口(API)、协议、和用于发现、列举及描述服务和设备的对象模型,而这些服务和设备是在本地计算设备上或是在计算机网络中的多个设备上。即使所涉及的服务和设备在概念上是相似的,但用来发现、列举和描述服务和设备的机制相差很大。
例如,设想一个应用程序试图列举可用的打印机的情形。当程序运行在一个被管理的、团体环境下时,应用程序会需要使用简便目录访问协议(LDAP)来与Microsoft(现用目录)目录服务存储器通信以发现注册的团体打印机、或使用NetBT以发现打印队列服务器、或使用蓝牙以发现私人领域的网络打印机。此外,应用程序或许必须调用设备管理API以发现直接与本机相连的打印机、或调用UPnPTMAPI以发现UPnP打印机。这些机制中的每一个都要求对特定的API、协议和查询语义的理解。
用于发现、列举和描述服务的应用程序所需的API和协议的数量之大使得软件发展的任务复杂化了。
(3)发明内容
在说明书和权利要求书中所描述的具体实现通过提供一种将发现和发布任务简化的统一接口而解决了上述和其他问题。该统一接口允许发挥基础协议的优势,不再需要应用程序开发者去理解下层协议。该统一接口提供了一个对于服务以及以在大范围的低级API、协议、存储和网络环境上发现和发布服务细节位目标的相关联操作的一致的、高度的抽象。
在一个示例实现中,提供了一种发现在计算环境中可用的服务的方法。该方法包括:在一应用程序中,定义一发现范围,定义一发现过滤器,及向第一应用编程接口发出一搜索请求;及在该第一应用编程接口中:解析该搜索请求,检索与所请求的发现范围和发现过滤器相对应的服务信息,和将该服务信息返还给该应用程序。
在另一个示例实现中,提供了一种发布计算环境中可用的服务的方法。该方法包括:在一应用程序中:定义一服务条目对象,定义一发布范围,分配给服务一个唯一的键,分配一服务类型,定义服务的属性,定义服务的端点,及向第一应用编程接口发出一发布请求;及在第一应用编程接口中:解析该搜索请求,和执行至少一个低级API调用来发布该服务。
在另一个示例实现中,提供了一种删除计算环境中的一个已发布的服务的方法。该方法包括:在一应用程序中:定义服务条目对象,指定一个对应于已发布的服务的键,定义删除范围,及向第一应用编程接口发出一删除请求;及在第一应用编程接口中:解析该搜索请求,执行至少一个低级API调用来删除服务。
在另一个示例实现中,提供了一种订阅计算环境中服务事件的方法。该方法包括:在一应用程序中:定义一范围,定义一过滤器,定义一调回函数(callbackfunction),及向第一应用编程接口发出一订阅请求;及在第一应用编程接口中:解析该搜索请求,运执至少一个低级API调用来订阅服务事件,及将服务事件的信息返还给该应用程序。
在另一个示例实现中,提供了一种管理有关计算环境中可用的服务的信息的系统。该系统包括:第一应用编程接口,其配置成接受来自应用程序的服务查询,其中第一应用编程接口以第一服务查询协议接收服务查询、处理该服务查询、和向第二协议发出至少一个相应服务查询;与该第一应用编程接口通信地相连的发现持续服务,其中发现持续服务从第一应用编程接口处接收服务信息,并将服务信息存储在一个数据存储器中。
(4)附图说明
图1是一个示例计算设备的示意性说明;
图2是一个说明示例软件体系结构的结构图;
图3是阐明服务发现操作的流程图;
图4是阐明服务发布操作的流程图;
图5是阐明服务删除操作的流程图;
图6是阐明订阅服务事件操作的流程图;
图7是阐明具体范围和抽象范围之间关系的结构图;
图8是阐明如何使用C#编程语言利用现用目录协议上的SimpleFilter对象来定位那些每分钟能打印50页的彩色打印机的伪代码;
图9是阐明如何使用C#编程语言来定位网络服务的伪代码;
图10是阐明如何使用C#编程语言利用SimpleFilter对象和UDDI协议来查找支持特定的tModel接口的伪代码;
图11是阐明利用SimpleFilter对象和UDDI协议来查找支持特定的tModel接口Visual Basic.NET的使用方法的伪代码;
图12是阐明利用现用目录支持下的RichFilter来定位一个名如OfficePrinter的打印机的C#编程语言的使用方法的伪代码;
图13是阐明利用现用目录支持下的RichFilter来定位一个名如OfficePrinter的打印机的Visual Basic.NET的使用方法的伪代码;
图14是阐明利用SSDP协议来发布一个由特定的唯一的标识符所确定的特定类型的服务的C#编程语言的使用方法的伪代码;
图15是阐明利用SSDP协议来发布一个由特定的唯一的标识符所确定的特定类型的服务的Visual Basic.NET的使用方法的伪代码;
图16是阐明来删除一个来自SSDP协议的服务的C#编程语言的使用方法的伪代码;
图17是阐明来删除一个来自SSDP协议的服务的Visual Basic.NET的使用方法的伪代码;
图18是阐明利用SimpleFilter来注册那些使用SSDP协议的特定类型的事件的C#编程语言的使用方法的伪代码。这个注册了的调回函数将为每个与过滤器相匹配的事件调用,且相应的ServiceEntry对象将被提供给该处理器;和
图19是阐明利用SimpleFilter来注册那些使用SSDP协议的特定类型的事件的Visual Basic.NET的使用方法的伪代码。
(5)具体实施方式
这里描述的是用于服务发现和发布的示例性方法和软件体系结构。这里描述的方法可被具体化为计算机可读媒体上的逻辑指令。当运行在处理器上时,这些逻辑指令使得通用计算设备被编程为执行上述方法的专用机。当处理器由逻辑指令配置成执行这里所表述的方法时,它就组成适于执行上述方法的结构。
示例性运行环境
图1是可被用来实现根据所述具体实施方式的一个或多个计算设备的示例性计算设备130的示意性说明。计算设备130可被用来实现根据所述具体实施方式的各种不同实现。
计算设备130包括一个或多个处理器或处理单元132、系统存储器134、和耦合包括系统存储器134和处理器132在内的多个系统组件的总线136。总线136表示若干类型的总线结构中任意的一种或多种,包括存储器总线或存储器控制器、外部总线、图形加速端口、以及采用多种总线结构中任意一种的处理器或本地总线。系统存储器134包括只读存储器(ROM)138和随机存取存储器(RAM)140。基本输入输出系统(BIOS)142包含帮助在计算设备130内的组件之间传输信息的基本例行程序,诸如在启动时,BIOS被存储在ROM 138中。
计算设备130还包括用来从硬盘(未示出)中读取数据和向硬盘写入数据的硬盘驱动器144、用来从可移动式磁盘148(未示出)中读取数据和向可移动式磁盘148写入数据的磁盘驱动器146、和用来从可移动光盘152如CD ROM或其他光媒中读取数据和向可移动光盘152写入数据的光盘驱动器150。硬盘驱动器144、磁盘驱动器146和光盘驱动器150通过SCSI接口154或其他适合的接口与总线136相连接。这些驱动器和及其相关联计算机可读媒体给计算设备130提供对计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管这里所述的示例性运行环境使用了硬盘、可移动磁盘148和可移动光盘152,但本领域的技术人员应认识到其他类型的能够存储计算机可存取数据的计算机可读媒体,如磁带、闪存卡、数字影碟、随机存取存储器(RAM),只读存储器(ROM)等都可被用在该示例性运行环境中。
众多程序模块可存储在硬盘144、磁盘148、光盘152、ROM 138,和RAM 140上,包括操作系统158、一个或多个应用程序160、其它程序模块162和程序数据164。用户可通过输入设备,如键盘166和定位设备168向计算设备130输入命令和信息。其它可用的输入设备(未示出)可以是麦克风、操纵杆、游戏手柄、圆盘式卫星电视天线、扫描仪等。这些或其它输入设备通过耦合至总线136上的接口170与处理单元132相连接。通过诸如视频适配器174的接口,监视172或其它显示设备同样与总线136相连接。除监视器之外,个人计算机通常包括其他外部输出设备(未示出),诸如扬声器和打印机。
计算设备130通常运行在利用与一个或多个远程计算机如远程计算机176的逻辑连接的网络环境下。远程计算机176可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,而且远程计算机176通常包括上述与计算设备130相关所描述的元件中的多个或者全部,尽管在图1中只示出了一个存储器178。图1中所描述的逻辑连接包括局域网(LAN)180和广域网(WAN)182。这种网络环境在办公室、企业范围计算机网络、企业内部互联网和因特网中都很常见。
当在LAN网络环境中使用时,计算设备130通过网络接口或适配器184连接至本地网络180接。当在WAN网络环境中使用时,计算设备130通常包括调制解调器186或其它手段,用于在广域网182如因特网上建立通信。调制解调器186可以是内置的或外置的,它通过串行接口156连接至总线136。在网络环境中,与计算设备130相关描述的程序模块或其中的部分,可以存储在远程存储器设备中。将会认识到,所示出的网络连接是示例性的,其它在计算机间建立通信连接的方法也可以使用。
一般,计算设备130中的数据处理器通过在不同时期存储在计算机的各种计算机可读存储媒体中的指令来编程。程序和操作系统通常是分布在在例如软盘或CD-ROM中的。它们被从软盘或光盘上安装或装载至计算机辅助存储器。当执行时,它们至少会被部分地装入计算机主要电子存储器中。这里所描述的发明包括这些或其它类型的计算机可读存储媒体,如果这些媒体包含以下用于实现结合微处理器和其它数据处理器所描述步骤的指令或程序。当计算机被根据下述方法和技术编程时,本发明还包括计算机本身。
示例性软件体系结构概述
图2是在可以驻留在图1的系统存储器134中的用于服务发现的示例性软件体系结构200的结构图。在这种实现中,系统存储器134可包含多个应用程序210。在网络化环境中,应用程序可以是客户程序的作用,而在PC环境中应用程序可以是单机程序。应用程序的特别性质是无关紧要的。
应用程序210调用服务发现API 214以发现在计算机环境中可用的服务。服务发现API 214提供高级文法来用于表达发现查询。这种文法可以用Opath-一种用于表达发现查询的自然查询语言来实现。这种高级文法向软件开发者提供一种更概念化的机制来表达开发者所寻找的服务,而不是要求由协议220-234所要求的颗粒度更高的和协议特定的表达。开发者可以用高级文法来构建一个查询,其可随后或者被转给一个特定的协议集,称之为众多“具体的范围”,或者给一个“抽象的范围”,其为预定义的或配置的具体范围的集合,。除了支持服务发现,系统还支持服务发布/删除和对事件的监视。
服务发现API 214进而调用在图中用Protocol 1 220到Protocol 8 234所表示的一个或多个基础协议(underlying protocol)。基础协议的确切数目是不重要的。协议220-234中的几个是目录支持协议,比如LDAP、通用描述(Universal Description)、发现和集成(UDDI)、和域名系统(DNS)服务器()。其它的协议可以是特殊的协议,诸如Bluetooth(蓝牙)、UpnP、和NetBT。协议220-234中的一个或多个使用通信连接236来与计算环境中可用的其它组件或服务进行通信。
响应于发现请求,服务发现API返回一组表示在本地机器或网络上发现的匹配服务的ServiceEntry对象。ServiceEntry对象是一个通用数据结构,它能够代表许多由系统支持的协议所返回的相关细节。每个ServiceEntry对象对应于一个单一的服务实例。在一种实现中,ServiceEntry对象提供描述性的和辨识性的属性,包括:(1)服务名称;(2)服务描述;(3)端点,其通常包含服务的网络地址;(4)键值,其标识该服务实例;(5)属性,例如,服务或设备特性的名称-值对可扩展表;和(6)供应商,例如,一个标识提供该服务的实体的标识符。
发现持续服务212与服务发现API 214通信。其中,发现持续服务212登记在特别协议上的声明事件。当声明事件被检测到时,即通知发现持续服务,发现持续服务将服务声明的相关信息复制到数据存储240中的存储单元。在存储单元中存储服务细节使得目前不可用的服务也能被发现。例如,即使一个打印机现在被关闭电源,打印机的有关细节可被登记在存储单元内,且可被发现。除此之外,服务查询不局限于与服务通信的协议。此外,查询存储单元的性能可远远好于处理一个广泛的网络发现查询。
示例性操作
在示例性实现中,服务发现API 214提供用于服务发现、服务发布和订阅服务事件通知的方法。图3是阐明服务发现的操作300的流程图。在操作310处,应用程序定义了一个范围,在操作315处应用程序定义了一个过滤器,在操作320处应用程序发出搜索请求。服务发现API 214收到了搜索请求,在操作325处,服务发现API 214解析这个搜索请求。在可任选操作330处,服务发现API 214确定这个搜索请求是否可利用存储在发现持续服务212中的信息解决。在一种实现中,由发现持续服务212所管理的信息包括一个生存时间指示器,其指定在发现持续服务212中的信息的生存期限。取决于控制和配置,服务发现API 214会查询发现持续服务212来确定这个发现请求能否利用发现持续服务212在数据存储器240上管理的那些信息去满足。如果该发现请求可利用发现持续服务212解决,那么控制传给操作350,且从发现持续服务212中检索到的服务条目对象被返回给应用程序。
相反,如果发现请求是利用发现持续服务212没有解决或不能够解决的,那么控制传给操作335,服务发现API 214执行为实现该发现请求所要求的低级API(一个或多个)调用。在操作340处,从低级API调用中返回的服务信息被格式化成服务条目对象,在可任选操作345处,服务条目对象被传给能够在数据存储器240上储服务条目对象的发现保存服务。在可任选操作347处,可以执行进一步的对服务条目结果的处理和过滤,诸如冗余检测和去除。在操作350处,服务条目对象被返回给应用程序进行在操作355处的进一步处理。由应用程序执行的进一步处理的精确细节是不重要的。
图4是阐述服务发布操作的流程图。在操作410处,应用程序为服务发布定义服务条目对象。在操作415处,应用程序给服务发布定义范围。在操作420处,应用程序给服务发布分配一个唯一的键,在操作425处,应用程序给服务发布分配一个服务类型。在操作430处,应用程序给服务发布定义端点,在操作432处,应用程序为服务发布定义属性,在操作435处,应用程序生成一个发布请求。根据将要发布的信息的细节以及将会使用的低级API,所执行的步骤可有所变化。
服务发现API 214接收到发布请求,并在操作440处,解析该发布请求。在操作450处,服务发现API 214执行低级API调用来执行服务发布请求。在可任选操作455处,服务发布被存储在发现持续服务212中。
服务发现API 214的服务发布工具也可用来删除一个已发布的服务。图5是阐述服务删除操作的流程图。在操作510处,应用程序定义服务发布的服务条目对象。在操作515处,应用程序给服务指定一个唯一的键。在操作520处,应用程序给服务删除定义范围。在操作530处,应用程序生成一个服务删除请求。
服务发现API 214接收删除请求,并且在操作540处,解析该删除请求。在操作550处,服务发现API 214执行低级API调用来执行服务删除请求。在可任选操作555处,服务发布被从发现持续服务212中删除。
服务发现API 214也可被用来允许向应用程序通知服务事件,如一项新的服务或特定类型的设备的到来和离去。图6是阐述订阅服务事件操作600的流程图。在操作610处,应用程序定义一个向监视器指定特定低级协议的范围。在操作615处,应用程序定义一个指定事件类型的过滤器。在操作620处,应用程序定义一个调回函数,它将在匹配事件发生时接收ServiceEntry细节。在操作625处,应用程序生成一个订阅请求,其被传给服务发现API 214。
服务发现请求API 214接收该订阅请求,并且在操作630处,解析该订阅请求,在操作635处,服务发现请求执行实现订阅服务所要求的低级协议调用。当服务事件发生时,低级协议会向服务发现API提供事件的通知。在操作640处,事件的通知被格式化成服务条目对象。在可任选操作645处,服务条目对象可被存储在发现持续服务212中,在操作650中,该服务条目对象利用先前指定的调回函数返回给应用程序。在操作655处,应用程序对服务条目对象进行进一步的处理。应用程序的进一步处理的精确细节是不重要的。
系统的组件和操作在以下做更详细的说明。
API类
过滤器
过滤器是借以评估服务描述的一组规则,得到的结果是真(即服务描述与过滤器相匹配)或假(即服务描述与过滤器不匹配)。一个过滤器可以表达成一个指定具体属性的简单过滤器,或表达成一个利用更有表达力的文法的复杂过滤器。不论是表达为简单过滤器还是复杂过滤器,查询能够通过不止一个的协议遵从所用协议的能力来指定和执行而不需修改。服务发现请求API 214将高层查询重新表达成用于基础低级协议的正确格式。例如,服务发现请求API214可以接收一个用于特定服务类型的查询,并且利用为现用目录服务的LDAP和为UDDI Web服务注册服务的UDDI协议来表达和评估该项查询。不要求应用程序开发者直接处理个别的协议。
在一示例性的实现中,服务发现请求API 214要求发现模块支持简单过滤器,提供给出标准的精确的匹配语义、和含有用OPath文法表达的查询的复杂过滤器。将会理解,各自也会支持附加的“天生的”过滤器类型。不同的发现模块可能拥有协议专用的天生的过滤类型,如,UPnP可使用XPath过滤器,现用目录可以天生地使用LDAP过滤器,UDDI可以天生的使用UDDI过滤器。
模块上的OPath过滤器功能的底层进一步将应用程序与基础发现协议隔绝。过滤器类用模块间共享的方式展露了其他的解析和解释过滤器的方法。
一个简单过滤器通过指定服务类型、服务接口、和/或属性而规定查询的表达。这些设置的任意组合可在一个搜索查询中提供,只有在每个标准都精确地匹配时,服务才会被包括在所得服务条目集之中。
服务类型可以被实现为一个指定必须与服务实例相匹配的类型的串。一个常用的服务类型集在服务发现请求API 214中被预定义。当有在协议和存储器中的键实体被标识到时,这个集合可以被扩展。例如,对于现用目录中的打印机,其可指定为:filter.ServiceType=CommonServiceTypes.Printer。
服务接口可被实现为一个指定用于服务必须匹配的接口的标识符的串集合。作为一个例子,对于在UDDI中的web服务,下述tModel标识符可以被指定:
filter.ServiceInterfaces.Add(″uuid:ac104dcc-d623-452f-88a7-f8acd94d9b2b″);
filter.ServiceInterfaces.Add(″uuid:4d2aclca-e234-142f-e217-4d9b2f8acd9b″)
属性可在指定服务必须匹配的服务特性的属性字典中实现。作为一个例子,对于在现用目录中的打印机,下述属性可被指定:filter.Properties.Add(″printcolor″,″TRUE″);filter.Properties.Add(″pagesperminute″,″50″)
通过设定Query串属性,一个复杂过滤器提供一种利用例如OPath文法表达显著复杂的查询语义的机制。作为一个例子,对于UDDI中的web服务,Query串会指定所需的名称和所需的支持的接口:filter.Query=″WebService[name=’Fabrikam’andServiceInterface=’uuid:ac104dcc-d623-452f-88a7-f8acd94d9b2b’]″
作为一个在没有A4纸可用时查找现用目录中有能力每分钟打印25页纸以上的打印机的更有表达力的例子:filter.Query=″Printer[printPagesPerMinuter>20+5 and not(printmediaReady=’A4’)]″。
由于基础协议和存储器的能力很不相同,从基本的NetBT到复杂的现用目录查询语义,使用具有更强表达力的OPath结构的能力将取决于所选择的范围(协议)。
范围
范围标识一个可以被搜索的查询域,通常是粗略的且由网络位置或管理权限所及给出。发现查询被发往一个或多个范围,且查询结果包括这些范围内的服务的子集,即,查询结果是所有在此范围内匹配给定过滤器的服务的子集。示例性的范围包括工作组、本地机器和域。
服务发现API 214提供具体的范围和抽象的范围。具体的范围以三个部分来指定查询域:一个标识具体协议的协议(Protocol)标识符,例如映射到单个发现模块,诸如ConcreteScope.NetBtProtocol.或ConcreteScope.ADProtocol;一个地址(Address)(可任选)标识符,其指定一个在此范围上向其指引操作的服务器,诸如用于企业内部互联网UDDI服务器的″http://intrauddi/uddi/inquire.asmx″;和一个路径标识符(可任选),其标识模块名空间的分割,诸如一个LDAP搜索基,其可被设置成″CN=joedev,CN=Computer,DC=corp,DC=fabrikam,DC=com″,或者一个UPnPv2范围名。
服务发现请求API 214将具体范围传给模块。服务发现请求API 214不排除模块执行其它在具体范围上的间接操作,比如以有线方式传输具体范围给另一台机器和将具体范围传给该另一台机器上的相应的API。
抽象范围是一个或多个具体范围的别称,也可以是其它抽象范围的别称。抽象范围提供一种在逻辑预定义的或配置了的具体范围集上定标查询的机制。这提供了允许开发者来定标例如,“enterprise”范围的附加抽象,不需要清楚的协议、地址和特定目录服务器的连接细节。
将抽象范围映射到具体范围是全机器范围的,且是可配置的。例如,抽象范围AbstractScope.Enterprise可以映射以包括表1中两个具体范围。
Protocol=ConcreteScope.ADProtocoladdress=″ldap://dev.corp.fabrikam.com″path=null |
Protocol=ConcreteScope.UddiProtocoladdress=″http://uddi.fabrikam.com/inquire.asmx″path=null |
表1
图7是阐明具体范围和抽象范围之间示例关系的结构图。具体范围730-750给出在其上评估查询的域的规格。具体范围730-750包括协议标识细节,及所要求的要用的存储器或服务器的具体情况,具有进一步在该存储器或服务器内进行范围确定的潜能。在服务发现API 214中,这些分别在协议、地址和路径属性中指定。
抽象范围710-725在具体范围之上提供更高层次的分级抽象。抽象范围被设置成包括组成它们的具体范围或抽象范围。这一范围映射系统管理员可用的,他们能够精确地配置如何解析例如AbstractScope.EnterpriseScope。
具体范围和抽象范围都能够被服务发现API 214的用户所使用。在提供了抽象范围的场合,服务发现API 214会将其沿等级向下分解为一定数目的具体范围。
抽象范围允许应用程序210的程序员能在较高层次上工作,并且在代码中可以包含诸如“AbstractScope.Enterprise”的范围标识术语。这样,例如,程序员就不必将特定UDDI服务器的具体情况硬代码写入他的代码中。这种抽象提供了更大是代码重用性和可移殖性。同一代码段可以不经修改和重新编译地用于各种各样的企业环境中。只有抽象范围的配置会在环境改变时改变。
在抽象范围到具体范围的映射中可以有多重等级。在图7中,AbstractScope.LocalMachine不能映射进AbstractScope.All,尽管它的所有组件都包括了。
在一个示例性实现中,范围映射配置能由系统管理员通过组政策进行操控以控制企业中服务发现API 214的使用。作为例子,一个管理员能定义一个或多个可用于企业计算环境中或部分的企业计算环境中的抽象范围。这使得系统管理员能够调控应用程序的发现和对资源的使用。
ServiceEntry服务条目结果
应用程序员能够选择合适的范围和过滤器表达,这些可以设置成服务发现者对象的属性。于是应用程序就可用FindOne或FindAll方法来执行发现请求。FindAll方法返回所有匹配所提供的标准的服务,而FindOne方法只返回单个匹配的服务。这些方法可以应用同步或异步的调用模式来执行。
假定在指定的范围内有匹配所提供的过滤器的服务,FindOne或FindAll方法会返回一个或一组服务条目对象。服务条目对象是对各种基础协议可提供的服务的表示法的抽象。每个服务条目对象对应于一个服务的单个实例,照此提供包括在表2中所述那些在内的描述性和标识性的属性。
属性 | 注释 |
名称 | 标识服务实例 |
描述 | 服务实例的描述 |
端点 | 服务实例可在其处服务的端点的集合 |
键 | 服务实例的标识键 |
范围 | 实体从其中发现或向其中发布的范围 |
证书 | 指定在发布该服务时将用到的证书 |
提供商 | 引用服务提供商(容器),如果存在的话 |
终止时间 | 服务条目根据生存时间将终止的时刻 |
表2
提供了一公共空白(public void)Save()函数来创建或更新在范围集之中所指定的范围内的服务条目表示。
公共空白Delete()方法将ServiceEntry对象从在范围属性中所指定的范围内去除。如果服务尚未发布,则造成异常。
伪代码
图8-19所示是用于各种服务发现、发布和订阅函数的伪代码。
图8是阐述利用现用目录协议上的SimpleFilter对象如何使用C#编程语言来查找每分钟打印50页的彩色打印机的伪代码。
图9是阐述利用UDDI协议上的RichFilter对象如何使用C#编程语言来查找实现uddi-org:inquiry_v2接口且名称为Fabrikam的web服务的伪代码。
图10是阐述利用UDDI协议上和SimpleFilter对象使用C#编程语言来查找支持特定的tModel接口的服务的伪代码。
图11是阐述利用UDDI协议上和SimpleFilter对象使用Visual Basic.NET来查找支持特定的tModel接口的服务的伪代码。
图12是阐述利用现用目录下的RichFilter使用C#编程语言来查找名字如Office Prihter的打印机的伪代码。
图13是阐述利用现用目录下的RichFilter使用Visual Basic.NET来查找名字如Office Printer的打印机的伪代码。
图14是阐述利用SSDP协议使用C#编程语言来发布由特定的唯一的标识符所标识的特定类型的服务的伪代码。
图15是阐述利用SSDP协议使用Visual Basic.NET来发布由特定的唯一的标识符所标识的特定类型的服务的伪代码。
图16是阐述使用C#编程语言来删除一个来自SSDP协议的服务的伪代码。
图17是阐述使用Visual Basic.NET来删除一个来自SSDP协议的服务的伪代码。
图18是阐述利用SimpleFilter使用C#编程语言来登记使用SSDP协议的特定类型事件的伪代码。已登记的调回函数会为每一个匹配过滤器的事件而调用,且相应的ServiceEntry对象会被提供给该处理者(handler)。
图19是阐述利用SimpleFilter使用Visual Basic.NET来登记使用SSDP协议的特定类型事件的伪代码。
示例性的OPath语法
标3给各种发现函数提供了示例性的OPath语法。
Opath | 说明 |
Printer | 寻找所有打印机和打印队列。 |
Printer[name=’Upstairs Printer’] | 寻找所有名为Upstairs Printer的打印机。 |
Printer[printPagesPerMinute>20+5and not(printmediaReady=’A4’)] | 寻找所有能够每分钟打印超过25页且没有可用的A4纸的打印机。 |
Printer[Properties.name like’Pri’and(printPagesPerMinute>10 orprintMediaReady=’letter’)] | 寻找所有名字以Pri开头的、且每分钟打印超过10页或有可用的信纸的打印机。 |
Print[supportsColor=true &&(printName like’Home’or name like’Work’)] | 寻找所有支持彩色打印且名字开头为Home或Work的打印机。 |
Service[serviceInterface=ServiceConnectionPoint] | 寻找所有是ServiceConnectionPoint对象的服务。 |
Service[(serviceType=’Printer’orServiceType=’Computer’)and namelike’Work’] | 寻找所有名如Work的是打印机或者是计算机的服务。 |
Computer[operatingSystemVersion like’%3790%’] | 寻找所有运行其操作系统版本号中有3790的计算机。 |
Computer[operatingSystem=’WindowsServer 2003’] | 寻找所有运行特定操作系统的计算机。OperatingSystem属性不包括在全局目录中。 |
表3
表4包含可以在UDDI协议上使用的OPath语法的示例。
OPath | 说明 |
WebService[name=’Fabrikam’] | 寻找所有名为Fabrikam的web服务。 |
Webservice[name=’UDDI%’&&ServiceInterface=’uuid:ac104dcc-d623-452f-88a7-f8acd94d9b2b’] | 寻找所有名称开头为UDDI且支持所标识的接口(即tModeluddi-org:inquiry_v2)的web服务。 |
表4
表5包含了可以在NetBT协议上使用的OPath语法的示例。
OPath | 说明 |
Workstation | 寻找所有的工作站。 |
Service[ServiceType=’PrintQueueServer’] | 寻找所有的类型为PrintQueueServer的服务。 |
Computer[serviceInterface=’DomainController’andServiceInterface=’TerminalServer’] | 寻找所有作为终端服务器运行的域控制器计算机。 |
表5
发现持续服务
如上文概要描述,发现持续服务212为服务信息管理一个服务信息的持久数据存储器。周期性地,或当某些预定事件发生时,比如启动,发现持续服务会登记以接收特别的设备/服务通知。作为一个例子,当一个新的UPnP设备被引入时,它会生成一个会由UPnP协议模块处理的设备通知。该UPnP协议模块会将此事件(设备及其服务)通过服务发现API 214传给发现持续服务。
利用其持久数据存储器,发现持续服务随后确定这是一个新的设备/服务还是一个回归的设备/服务。如果是新的设备/服务,那么此设备及其服务的细节会被登记在持久数据存储器中。当另一个服务发现API 214的消费者试图查找服务时,服务发现API 214将能够返回特别的设备/服务的服务,即使该设备当前不可用。对于上述例子,在设备/服务当前可用的情况中,根据所指定的范围,UPnP协议模块和持久数据存储器模块都会返回该设备的结果。除了UpnP之外,这种功能性也适用于其他特别的发现机制。
如此,发现持续服务212、服务发现API 214和本地数据库存储器240给用于设备和服务发现的各种低级协议提供了一个抽象层。这个附加的抽象层建立了一个应用程序员在开发应用程序时可使用的通用的、改进了的搜索语义。
此外,发现抽象服务212、服务发现API 214和本地数据库存储器240给本地机器、家庭网络、企业网络和因特网上的服务和设备提供了一个统一的发现模型。如此,通过编写一个统一的API,应用程序开发员能够在范围广泛的位置中发现服务。
结论
尽管所描述的内容是用一种针对结构特征和/或方法性操作的语言描述的,但应该认识到,在所附权利要求中定义的主题内容不必局限于所描述的具体特征和操作。相反,这些具体特征和方法是作为实现权利要求中的本发明优选形式来揭示的。
Claims (18)
1.一种用于发现在计算环境中可用的服务的方法,包括:
在一应用程序中:
定义一发现范围;
定义一发现过滤器;和
向第一应用程序接口发出一搜索请求;
在第一应用程序接口中:
解析所述搜索请求;
检索对应于所请求的发现范围和发现过滤器的服务信息;和
将所述服务信息返还给所述应用程序。
2.如权利要求1所述的方法,其中检索对应于所请求的发现范围和发现过滤器的服务信息包括执行针对至少一个低级API或协议的调用。
3.如权利要求1所述的方法,其中检索对应于所请求的发现范围和发现过滤器的服务信息包括查询一个持续数据存储服务。
4.如权利要求1所述的方法,还包括将所检索的服务信息格式化成一个一致的服务条目对象数据格式。
5.如权利要求2所述的方法,还包括在持续数据存储中保存从所述至少一个低级API或协议接收的信息。
6.一种用于发布在计算环境中可用的服务的方法,包括:
在一应用程序中:
定义一服务条目对象;
定义一发布范围;
给所述服务分配一个唯一的键;和
分配一服务类型;
定义服务的属性;
定义服务的端点;和
向第一应用程序接口发出一发布请求;
在第一应用程序接口中:
解析所述搜索请求;和
执行至少一个低级API调用以发布所述服务。
7.如权利要求6所述的方法,还包括将所述服务信息存储在一个持续数据存储器中。
8.一种用于删除在计算环境中已发布的服务的方法,包括:
在一应用程序中:
定义一服务条目对象;
指定一对应于所述已发布的服务的键;
定义一删除范围;和
对第一应用程序接口发出一删除请求;
在第一应用程序接口中:
解析所述搜索请求;和
执行至少一个低级API调用来删除所述服务。
9.如权利要求8所述的方法,还包括从一个持续数据存储器中删除所述服务信息。
10.如权利要求8所述的方法,还包括在一个持续数据存储器中登记所删除的服务信息。
11.一种订阅在计算环境中的服务事件的方法,包括:
在一应用程序中:
定义一范围;
定义一过滤器;
定义一调回函数;和
对第一应用程序接口发出一订阅请求;
在第一应用程序接口中:
解析所述搜索请求;和
执行至少一个低级API调用来订阅服务事件;和
将信息从服务事件返回给所述应用程序。
12.如权利要求11所述的方法,还包括将所检索的服务信息格式化成服务条目对象数据格式。
13.如权利要求12所述的方法,还包括在持续数据存储器中保存从所述至少一个低级API接收的信息。
14.一种管理有关在计算环境中可用的服务的信息的系统,包括:
第一应用程序接口,用于接受来自应用程序的服务查询,其中所述第一应用程序接口接收第一服务查询协议中的服务查询、处理所述服务查询、且对第二协议至少发起一个相应的服务查询;
发现持续服务,通信地连接至所述第一应用程序接口,其中所述发现持续服务从所述第一应用程序接口处接收服务信息并将所述服务信息存储在数据存储器中。
15.如权利要求14所述的系统,其中所述第一应用程序接口提供接口给至少一个基于目录的协议和至少一个特别协议。
16.如权利要求14所述的系统,其中所述第一应用程序接口发现在本地计算设备上可用的服务。
17.如权利要求14所述的系统,其中所述第一应用程序接口发现在远程计算设备上可用的服务。
18.如权利要求14所述的系统,其中所述第一应用程序接口实现一范围映射,且其中所述范围映射可由系统管理员配置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/693,653 US7716357B2 (en) | 2003-10-24 | 2003-10-24 | Service discovery and publication |
US10/693,653 | 2003-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1705947A true CN1705947A (zh) | 2005-12-07 |
CN100481069C CN100481069C (zh) | 2009-04-22 |
Family
ID=34573201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800013241A Active CN100481069C (zh) | 2003-10-24 | 2004-07-21 | 服务发现及发布 |
Country Status (11)
Country | Link |
---|---|
US (2) | US7716357B2 (zh) |
EP (1) | EP1676215A4 (zh) |
JP (2) | JP2007509406A (zh) |
KR (2) | KR101176757B1 (zh) |
CN (1) | CN100481069C (zh) |
AU (1) | AU2004279194B2 (zh) |
BR (1) | BRPI0406411A (zh) |
CA (2) | CA2501718C (zh) |
MX (1) | MXPA05006611A (zh) |
RU (1) | RU2365973C2 (zh) |
WO (1) | WO2005045563A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101713962B (zh) * | 2008-09-30 | 2012-11-28 | 洛克威尔自动控制技术股份有限公司 | 模块化对象的公布和发现 |
CN101739335B (zh) * | 2008-11-10 | 2013-11-20 | 埃森哲环球服务有限公司 | 建议的应用评估系统 |
CN101849238B (zh) * | 2007-11-05 | 2017-04-19 | 微软技术许可有限责任公司 | 跨站脚本过滤器 |
CN108647012A (zh) * | 2018-05-04 | 2018-10-12 | 山东汇贸电子口岸有限公司 | 一种服务引擎的管理方法和管理装置 |
CN111161437A (zh) * | 2019-12-04 | 2020-05-15 | 江苏苏宁物流有限公司 | 一种物流箱码的通用接收订阅派发方法及系统 |
WO2021237527A1 (zh) * | 2020-05-27 | 2021-12-02 | Oppo广东移动通信有限公司 | 信息处理方法及装置、设备、计算机存储介质 |
WO2022002141A1 (zh) * | 2020-06-30 | 2022-01-06 | 中兴通讯股份有限公司 | 应用程序接口的调用方法和装置、存储介质及电子装置 |
CN115023931A (zh) * | 2020-02-14 | 2022-09-06 | 瑞典爱立信有限公司 | 用于服务api发布的方法和网络实体 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996492B2 (en) * | 2002-02-20 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | System for providing information regarding network resources |
US7716357B2 (en) * | 2003-10-24 | 2010-05-11 | Microsoft Corporation | Service discovery and publication |
US7720906B2 (en) * | 2003-11-24 | 2010-05-18 | Microsoft Corporation | Web service for remote application discovery |
US7590713B2 (en) | 2003-11-24 | 2009-09-15 | Microsoft Corporation | Presenting a merged view of remote application shortcuts from multiple providers |
US7475125B2 (en) | 2003-11-24 | 2009-01-06 | Microsoft Corporation | Seamless discovery of workstation-installed remote applications from an extranet |
US8694532B2 (en) * | 2004-09-17 | 2014-04-08 | First American Data Co., Llc | Method and system for query transformation for managing information from multiple datasets |
US20060168320A1 (en) * | 2004-12-30 | 2006-07-27 | Kidd Nelson F | Network topology discovery service |
US20070005746A1 (en) * | 2005-06-30 | 2007-01-04 | Roe Bryan Y | Enhanced network discovery service |
US8356011B2 (en) | 2005-07-26 | 2013-01-15 | Microsoft Corporation | Organizing presence information into collections of publications |
US8108345B2 (en) | 2006-03-31 | 2012-01-31 | Microsoft Corporation | Managing rich presence collections in a single request |
US8234559B2 (en) | 2006-03-31 | 2012-07-31 | Microsoft Corporation | Managing rich presence collections |
US20080046435A1 (en) * | 2006-08-18 | 2008-02-21 | Microsoft Corporation | Service discovery and automatic configuration |
US8732658B2 (en) * | 2006-09-29 | 2014-05-20 | Rockwell Automation Technologies, Inc. | Layered interface in an industrial environment |
US8078296B2 (en) * | 2006-09-29 | 2011-12-13 | Rockwell Automation Technologies, Inc. | Dynamic procedure selection |
US8041435B2 (en) * | 2008-09-30 | 2011-10-18 | Rockwell Automation Technologies, Inc. | Modular object dynamic hosting |
US9058032B2 (en) * | 2006-09-29 | 2015-06-16 | Rockwell Automation Technologies, Inc. | Hosting requirements for services |
US9217998B2 (en) * | 2006-09-29 | 2015-12-22 | Rockwell Automation Technologies, Inc. | Management and development of an industrial environment |
US9261877B2 (en) * | 2006-09-29 | 2016-02-16 | Rockwell Automation Technologies, Inc. | Multiple machine interface |
US20080082577A1 (en) * | 2006-09-29 | 2008-04-03 | Rockwell Automation Technologies, Inc. | Module classification and searching for industrial control systems |
US8818757B2 (en) * | 2008-09-30 | 2014-08-26 | Rockwell Automation Technologies, Inc. | Modular object and host matching |
US8776092B2 (en) * | 2006-09-29 | 2014-07-08 | Rockwell Automation Technologies, Inc. | Multiple interface support |
CN101611609B (zh) * | 2006-12-28 | 2012-11-14 | 艾利森电话股份有限公司 | 用于服务发现的方法和装置 |
US7904470B2 (en) * | 2007-06-13 | 2011-03-08 | Sap Ag | Discovery service for electronic data environment |
US20090132323A1 (en) * | 2007-11-21 | 2009-05-21 | Motive, Incorporated | Customer service representative support application for a service management system and method of operation thereof |
US7987163B2 (en) * | 2008-02-12 | 2011-07-26 | Bae Systems Information And Electronic Systems Integration Inc. | Apparatus and method for dynamic web service discovery |
US9071443B2 (en) * | 2008-08-25 | 2015-06-30 | Novell, Inc. | Automated service platform prospecting |
US8788666B2 (en) * | 2008-12-31 | 2014-07-22 | Sap Ag | System and method of consolidated central user administrative provisioning |
US8949280B2 (en) * | 2010-04-30 | 2015-02-03 | International Business Machines Corporation | Web service discovery via data abstraction model with input assistance |
US8583699B2 (en) * | 2010-04-30 | 2013-11-12 | International Business Machines Corporation | Web service discovery via data abstraction model augmented by field relationship identification |
US8275806B2 (en) * | 2010-04-30 | 2012-09-25 | International Business Machines Corporation | Web service discovery via data abstraction model and condition creation |
US8250113B2 (en) * | 2010-04-30 | 2012-08-21 | International Business Machines Corporation | Web service discovery via data abstraction model |
US8793263B2 (en) * | 2010-08-23 | 2014-07-29 | International Business Machines Corporation | Avoiding duplicate and equivalent data objects in service registries |
US9262474B2 (en) * | 2010-09-30 | 2016-02-16 | Microsoft Technology Licensing, Llc | Dynamic domain query and query translation |
US9141411B2 (en) * | 2010-09-30 | 2015-09-22 | Microsoft Technology Licensing, Llc | Model slicing and versioning |
US8671416B2 (en) | 2011-01-14 | 2014-03-11 | Apple Inc. | Dynamic service discovery |
US9578114B2 (en) | 2011-09-27 | 2017-02-21 | Microsoft Technology Licensing, Llc | External service application discovery method |
US9652314B2 (en) * | 2012-10-15 | 2017-05-16 | Alcatel Lucent | Dynamic application programming interface publication for providing web services |
GB2509723A (en) * | 2013-01-10 | 2014-07-16 | Ibm | Invoking web services that are determined at the time of execution |
US10216812B2 (en) | 2013-10-30 | 2019-02-26 | Hewlett Packard Enterprise Development Lp | Application programmable interface (API) discovery |
CN107836007B (zh) * | 2015-07-31 | 2023-04-11 | 难题知识产权有限责任公司 | 发现并发布api信息 |
US10078562B2 (en) | 2015-08-18 | 2018-09-18 | Microsoft Technology Licensing, Llc | Transactional distributed lifecycle management of diverse application data structures |
US10341444B2 (en) * | 2016-07-27 | 2019-07-02 | Microsoft Technology Licensing, Llc | Abstracted device service discovery |
CN108989372B (zh) | 2017-06-02 | 2021-04-09 | 华为技术有限公司 | 服务发现的方法、注册中心和设备 |
US10831564B2 (en) | 2017-12-15 | 2020-11-10 | International Business Machines Corporation | Bootstrapping a conversation service using documentation of a rest API |
US10831772B2 (en) | 2017-12-20 | 2020-11-10 | International Business Machines Corporation | Facilitation of domain and client-specific application program interface recommendations |
US10803108B2 (en) | 2017-12-20 | 2020-10-13 | International Business Machines Corporation | Facilitation of domain and client-specific application program interface recommendations |
CN111045833A (zh) * | 2018-10-15 | 2020-04-21 | 北京京东尚科信息技术有限公司 | 接口调用的方法和装置 |
CN111865746B (zh) * | 2020-06-19 | 2022-08-19 | 苏宁云计算有限公司 | 基于环路总线的系统开发方法及装置 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5423003A (en) | 1994-03-03 | 1995-06-06 | Geonet Limited L.P. | System for managing network computer applications |
US5893107A (en) | 1996-07-01 | 1999-04-06 | Microsoft Corporation | Method and system for uniformly accessing multiple directory services |
US6067568A (en) | 1996-12-10 | 2000-05-23 | International Business Machines Corporation | Automatic setup of services for computer system users |
JP2002510088A (ja) | 1998-03-27 | 2002-04-02 | インフォミックス ソフトウェア, インコーポレイテッド | 予め演算されたビューの処理 |
US6463078B1 (en) | 1998-07-22 | 2002-10-08 | Microsoft Corporation | Method for switching protocols transparently in multi-user applications |
US6487552B1 (en) | 1998-10-05 | 2002-11-26 | Oracle Corporation | Database fine-grained access control |
US6366934B1 (en) * | 1998-10-08 | 2002-04-02 | International Business Machines Corporation | Method and apparatus for querying structured documents using a database extender |
US6584459B1 (en) | 1998-10-08 | 2003-06-24 | International Business Machines Corporation | Database extender for storing, querying, and retrieving structured documents |
WO2000078001A2 (en) * | 1999-06-11 | 2000-12-21 | Microsoft Corporation | General api for remote control of devices |
JP4335405B2 (ja) | 2000-03-28 | 2009-09-30 | ブラザー工業株式会社 | 印刷システム、ネットワークプリンタ及び印刷制御方法 |
ATE333675T1 (de) | 2000-05-09 | 2006-08-15 | Sun Microsystems Inc | Aufruf einer entfernten funktion mit nachrichten in einer verteilten rechnerumgebung |
US7171475B2 (en) * | 2000-12-01 | 2007-01-30 | Microsoft Corporation | Peer networking host framework and hosting API |
US20020099814A1 (en) * | 2001-01-24 | 2002-07-25 | International Business Machines Corporation | Method and apparatus for providing automatic discovery of network protocols, configurations and resources |
US7249100B2 (en) * | 2001-05-15 | 2007-07-24 | Nokia Corporation | Service discovery access to user location |
JP4096223B2 (ja) | 2001-09-19 | 2008-06-04 | 富士ゼロックス株式会社 | サービス検索装置およびその方法 |
JP2003223449A (ja) * | 2001-10-26 | 2003-08-08 | Yasuhiro Tanaka | 端末情報の登録およびその活用方法。 |
US7603469B2 (en) | 2002-01-15 | 2009-10-13 | International Business Machines Corporation | Provisioning aggregated services in a distributed computing environment |
US20030140119A1 (en) | 2002-01-18 | 2003-07-24 | International Business Machines Corporation | Dynamic service discovery |
US8135843B2 (en) | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
US7614059B2 (en) * | 2002-07-11 | 2009-11-03 | Topia Technology | System and method for the discovery and usage of local resources by a mobile agent object |
US7401338B1 (en) * | 2002-09-27 | 2008-07-15 | Symantec Operating Corporation | System and method for an access layer application programming interface for managing heterogeneous components of a storage area network |
US20040111525A1 (en) * | 2002-12-09 | 2004-06-10 | International Business Machines Corporation | Dynamic web service implementation discovery and selection apparatus and method |
US7188155B2 (en) * | 2002-12-17 | 2007-03-06 | International Business Machines Corporation | Apparatus and method for selecting a web service in response to a request from a client device |
US20040133896A1 (en) * | 2002-12-20 | 2004-07-08 | Sony Corporation And Sony Electronics, Inc. | Network device application interface |
US20040120344A1 (en) * | 2002-12-20 | 2004-06-24 | Sony Corporation And Sony Electronics, Inc. | Device discovery application interface |
US7774495B2 (en) * | 2003-02-13 | 2010-08-10 | Oracle America, Inc, | Infrastructure for accessing a peer-to-peer network environment |
US6959262B2 (en) | 2003-02-27 | 2005-10-25 | Hewlett-Packard Development Company, L.P. | Diagnostic monitor for use with an operating system and methods therefor |
US20040210630A1 (en) * | 2003-04-17 | 2004-10-21 | Microsoft Corporation | Systems and methods for discovering, acquiring and maintaining nodes in a logical network |
US7444386B2 (en) * | 2003-06-20 | 2008-10-28 | Sun Microsystems, Inc. | Application programming interface for provisioning services |
US20050080768A1 (en) * | 2003-10-10 | 2005-04-14 | International Business Machines Corporation | Methods and apparatus for dynamic service discovery from Web services representation chain |
US7328282B2 (en) * | 2003-10-23 | 2008-02-05 | International Business Machines Corporation | Aspect oriented web service invocation |
US7716357B2 (en) * | 2003-10-24 | 2010-05-11 | Microsoft Corporation | Service discovery and publication |
-
2003
- 2003-10-24 US US10/693,653 patent/US7716357B2/en not_active Expired - Fee Related
-
2004
- 2004-07-21 CA CA2501718A patent/CA2501718C/en active Active
- 2004-07-21 AU AU2004279194A patent/AU2004279194B2/en active Active
- 2004-07-21 MX MXPA05006611A patent/MXPA05006611A/es active IP Right Grant
- 2004-07-21 CN CNB2004800013241A patent/CN100481069C/zh active Active
- 2004-07-21 KR KR1020117016088A patent/KR101176757B1/ko active IP Right Grant
- 2004-07-21 JP JP2006536562A patent/JP2007509406A/ja active Pending
- 2004-07-21 CA CA2782812A patent/CA2782812C/en active Active
- 2004-07-21 KR KR1020057008290A patent/KR20060130479A/ko not_active Application Discontinuation
- 2004-07-21 WO PCT/US2004/023547 patent/WO2005045563A2/en active Application Filing
- 2004-07-21 RU RU2005115975/09A patent/RU2365973C2/ru active
- 2004-07-21 BR BR0406411-9A patent/BRPI0406411A/pt not_active IP Right Cessation
- 2004-07-21 EP EP04778869A patent/EP1676215A4/en not_active Ceased
-
2010
- 2010-05-06 US US12/774,879 patent/US8489759B2/en not_active Expired - Lifetime
- 2010-12-24 JP JP2010288262A patent/JP5193280B2/ja not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101849238B (zh) * | 2007-11-05 | 2017-04-19 | 微软技术许可有限责任公司 | 跨站脚本过滤器 |
CN101713962B (zh) * | 2008-09-30 | 2012-11-28 | 洛克威尔自动控制技术股份有限公司 | 模块化对象的公布和发现 |
CN101739335B (zh) * | 2008-11-10 | 2013-11-20 | 埃森哲环球服务有限公司 | 建议的应用评估系统 |
CN108647012A (zh) * | 2018-05-04 | 2018-10-12 | 山东汇贸电子口岸有限公司 | 一种服务引擎的管理方法和管理装置 |
CN111161437A (zh) * | 2019-12-04 | 2020-05-15 | 江苏苏宁物流有限公司 | 一种物流箱码的通用接收订阅派发方法及系统 |
CN115023931A (zh) * | 2020-02-14 | 2022-09-06 | 瑞典爱立信有限公司 | 用于服务api发布的方法和网络实体 |
CN115023931B (zh) * | 2020-02-14 | 2023-10-03 | 瑞典爱立信有限公司 | 用于服务api发布的方法和网络实体 |
WO2021237527A1 (zh) * | 2020-05-27 | 2021-12-02 | Oppo广东移动通信有限公司 | 信息处理方法及装置、设备、计算机存储介质 |
WO2022002141A1 (zh) * | 2020-06-30 | 2022-01-06 | 中兴通讯股份有限公司 | 应用程序接口的调用方法和装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
AU2004279194B2 (en) | 2010-03-04 |
MXPA05006611A (es) | 2005-08-16 |
WO2005045563A2 (en) | 2005-05-19 |
CA2501718C (en) | 2012-10-02 |
KR101176757B1 (ko) | 2012-08-23 |
KR20060130479A (ko) | 2006-12-19 |
JP2011103131A (ja) | 2011-05-26 |
AU2004279194A1 (en) | 2005-06-23 |
WO2005045563A3 (en) | 2005-07-14 |
CA2501718A1 (en) | 2005-04-24 |
EP1676215A4 (en) | 2012-10-17 |
JP5193280B2 (ja) | 2013-05-08 |
RU2005115975A (ru) | 2006-01-20 |
US7716357B2 (en) | 2010-05-11 |
EP1676215A2 (en) | 2006-07-05 |
CN100481069C (zh) | 2009-04-22 |
BRPI0406411A (pt) | 2005-10-04 |
US8489759B2 (en) | 2013-07-16 |
CA2782812C (en) | 2015-09-08 |
CA2782812A1 (en) | 2005-04-24 |
JP2007509406A (ja) | 2007-04-12 |
RU2365973C2 (ru) | 2009-08-27 |
AU2004279194A8 (en) | 2008-10-02 |
US20100217782A1 (en) | 2010-08-26 |
US20050234873A1 (en) | 2005-10-20 |
KR20110086193A (ko) | 2011-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1705947A (zh) | 服务发现及发布 | |
US7103593B2 (en) | System and method for retrieving information from disparate information sources in a decentralized manner and integrating the information in accordance with a distributed domain model/ontology | |
JP5559140B2 (ja) | 計算環境の表現 | |
CN1577322A (zh) | 管理数据处理系统中的应用文件的方法和装置 | |
CN1577242A (zh) | 用于自动配置的系统和方法 | |
US9594548B2 (en) | Dynamically updating templated applications | |
US20060101019A1 (en) | Systems and methods of access control enabling ownership of access control lists to users or groups | |
CN1689019A (zh) | 用于在万维网服务架构中对服务进行排名的方法和系统 | |
CN1832476A (zh) | 动态服务代理 | |
CN1794230A (zh) | 以透明方式公开计算机生成文档中嵌套数据的方法和系统 | |
CN101044478A (zh) | 分析查询日志以用于管理类别特定的电子内容 | |
CN1577327A (zh) | 用于寄存和检索可以用来使缓存记录无效的数据库表格变化信息 | |
CN1658609A (zh) | 定制应用内容供应的系统和方法 | |
CN1609873A (zh) | 用于管理电子邮件和报警消息的方法,装置,以及用户界面 | |
CN1773456A (zh) | 打印机驱动程序自动安装系统及自动安装方法 | |
CN1708749A (zh) | 信息处理方法和信息处理设备 | |
CN1494017A (zh) | 用于环球网服务结构中的包容器选择器及其选择方法 | |
CN1655148A (zh) | 管理图形数据库 | |
CN1864129A (zh) | 用于向用户提交相关项的系统和方法 | |
CN1853161A (zh) | 用于呈现存储于计算机上条目的系统和方法 | |
CN1658159A (zh) | 可配置和可动态更改的对象模型 | |
US7376666B2 (en) | Driver database auto-configuration methods and means | |
CN1848083A (zh) | 一般软件要求分析器 | |
CN101068163A (zh) | 实现文件传输的方法、装置及网管系统 | |
US20070168961A1 (en) | Delegate control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170825 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |
|
TR01 | Transfer of patent right |