CN101405761A - 服务序列中的变换的声明 - Google Patents
服务序列中的变换的声明 Download PDFInfo
- Publication number
- CN101405761A CN101405761A CNA2007800092425A CN200780009242A CN101405761A CN 101405761 A CN101405761 A CN 101405761A CN A2007800092425 A CNA2007800092425 A CN A2007800092425A CN 200780009242 A CN200780009242 A CN 200780009242A CN 101405761 A CN101405761 A CN 101405761A
- Authority
- CN
- China
- Prior art keywords
- conversion
- transformation
- class
- service
- computer
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于指定可在完成更复杂任务的服务序列中的每一服务的输入和输出处发生的适当变换的声明性模型。这些服务中的每一个都可以访问该适当变换声明,并可以解释这些声明从而得到关于在其输入数据和/或输出数据中要发生的变换的适当指示。为改变变换,可更改变换声明。
Description
背景
计算技术对人类进步贡献巨大。计算***有各种各样的物理形式,包括台式计算机、膝上型计算机、个人数字助理、电话、甚至常规上不被认为是计算***的设备,诸如例如冰箱和汽车。因此,计算***可以是具有任何类型的处理器和存储器的任何设备或***。计算***甚至可以具有如在网络***中那样一起合作的组成计算***。因而,一些计算***可以很容易地适合手掌,而其它的则可以全球地分布。
最普遍使用的应用程序中的许多都依赖于网络技术。这些应用程序包括,例如,电子邮件、即时消息通信、web浏览、远程网络访问、电子白板、IP语音电话通信、视频会议、远程同步以及其它。当前,有许多通过因特网提供的服务。这些服务的种类是可枚举的且在日益增长。例如,有搜索引擎服务、公司定位服务、股票报价服务、电子邮件服务、远程计算机访问服务、在线拍卖服务、以及许多其它服务。
有时,更复杂的任务的执行涉及序列中的多个服务中的服务。来自这些服务的一个的输出被提供给另一服务的输入且以此类推直到达到最终结果。用户输入被提供给第一服务,其识别用户可能是人类或可能是计算***和/或运行于计算***上的一个或多个进程。该用户输入可能需要被变换成由第一服务识别的格式。最终服务以在所得数据被呈现给最终用户之前可能需要变换的格式来提供所得数据。此外,在一个服务与序列中的下一服务通信时,也可能需要变换以在服务之间适当地变换数据。因此,可在输入和输出数据上作各种变换以允许服务与用户以及互相之间进行通信。
通常,使用用于每一变换特定的专用代码来进行变换。因此,要使用代码来将用户数据变换成适于输入到第一服务的格式,要在每一服务之间使用代码以执行适当的变换,且要使用代码来将所得数据从最终服务变换成用户所理解的格式。草拟这些代码可能是耗时的活动且要求富有经验的软件程序员技能。
简要概述
尽管并非所需,本发明的各实施例可被应用于其中串行执行两个或更多服务的序列以满足复杂服务请求的环境中。为在这些服务的每一个的输入和输出上实现适当的变换,可通过使用指定要执行的一类变换的变换类字段,以及更具体地定义变换的变换参数字段来声明性地指定这些变换。可使变换声明在每一服务上可用,从而在做出变换时给出适当的指导。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
使用附图以更具体地描述本发明的各实施例。可以理解这些附图仅描述本发明的各典型实施例,从而不被认为是对其范围的限制,将通过使用附图用附加特征和细节来描述和说明这些实施例,附图中:
图1示出本发明的原理的各实施例可以在其中操作的计算***;
图2示出本发明的各实施例可以在其中操作的包括服务序列的环境;
图3示意性地示出包括具有用于服务的输入和输出变换的对应的类和参数的那些服务的标识的数据结构;
图4示意性地示出与使用该数据结构来执行变换相关联的逻辑流程;以及
图5示出根据本发明的原理的供服务处理服务请求的方法的流程图。
详细描述
本发明的各实施例涉及用于指定可在完成更复杂任务的服务序列中每一服务的输入和输出处发生的适当变换的声明性模型。这些服务中的每一个都可以访问该适当变换声明,并可以解释这些声明从而得到关于在其输入数据和/或输出数据中要发生的变换的适当指示。为改变一变换,可以更改变换声明,而非更改实现每一变换的底层代码。
本发明的各实施例可以包括含有各种计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。图1示出可用于实现本发明的特征的示例计算***100的示意图。所述计算***只是这种合适的计算***的一个示例,而并不旨在对本发明的使用范围或功能提出任何限制。也不应该把本发明解释为对图1中示出的任一组件或其组合有任何依赖性或要求。
计算***现在越来越多地采用各种各样的形式。计算***例如可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算***、或甚至常规上不被认为是计算***的设备。在本说明书和权利要求书中,术语“计算***”被广义地定义为包括包含至少一个处理器以及其上能含有可由处理器执行的计算机可执行指令的存储器的任何设备或***(或其组合)。存储器可采取任何形式,且可取决于计算***的本质和形式。计算***可分布在网络环境上,且可包括多个组成计算***。
参考图1,在其最基本的配置中,计算***100一般包括至少一个处理单元102和存储器104。存储器104可以是***存储器,它可以是易失性的、非易失性的或两者的某种组合。易失性存储器的示例包括随机存取存储器(RAM)。非易失性存储器的示例包括只读存储器(ROM)、闪存等。术语“存储器”也可在此处用来指诸如物理存储介质等非易失性大容量存储。这样的存储可以是可移动或不可移动的,且可包括(但不限于)PCMCIA卡、磁盘和光盘、磁带等。
如此处所使用的,术语“模块”或“组件”可以指在计算***上执行的软件对象或例程。此处描述的不同的组件、模块、引擎和服务可被实现为在计算***上执行的对象或进程(例如,作为分开的线程)。尽管此处描述的***和方法可用软件实现,但用硬件以及软件和硬件的组合的实现也是可能的且已被想到。
在以下描述中,参考由一个或多个计算***执行的动作来描述本发明的各实施例。如果这些动作是用软件实现的,则相关联计算***中执行该动作的一个或多个处理器响应于执行了计算可执行指令而引导计算***的操作。这样的操作的一个示例涉及对数据的操纵。计算机可执行指令(和所操纵的数据)可被存储在计算***100的存储器104中。
计算***100也可包含允许计算***100例如通过网络110与其它计算***通信的通信信道108。通信信道108是通信介质的示例。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、无线电、红外线和其它无线介质。如此处所用的术语计算机可读介质既包括存储介质又包括通信介质。
本发明的范围内的各实施例也包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括物理存储和/或存储器介质,诸如RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,计算机将该连接完全视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于在此所述的具体特征或动作。相反,在此所述的具体特征和动作是作为实现权利要求的示例形式公开的。
图2示出了其中可利用本发明的原理的环境200。环境200包括服务序列210,该服务序列中包括例如第一服务211、第二服务212和最终服务213。然而,还可以有由第二服务212和最终服务213之间的水平省略号214所表示的另外的服务。此外,序列中可以只有两个服务,在这一情况下,第二服务212可与序列210中的最终服务213相同。环境200还包括向服务序列210提供输入数据的数据输入实体201,和消费从服务序列210得到的输出数据的数据输出实体202。
该服务序列可被串行执行以准许实现复杂的任务。例如,假定复杂任务是获取一给定地理区域中的所有公司的股票报价。这可以通过使用地图服务形式的第一服务来实现,该地图服务通过返回该指定区域中的公司的列表来对纬度和经度坐标范围做出响应。财务服务形式的第二服务随后获取由第一服务返回的所列出的所有公司的股票报价。这一场景以下将被称为“基于地图的股票报价”场景。
尽管并非所需,但该序列中的服务可以分布在网络上。例如,第一服务211可以位于一网络节点上,而第二服务212可以在另一网络节点上。然而,这些服务中的某一些或全部可以在同一网络节点上。这些服务可以是例如web服务,或者可以是可本地地或远程地向其做出功能调用的任何组件或模块。数据输入实体201和数据消费实体202可以是同一计算***或不同的计算***,且可以位于与服务210相比不同的网络节点上,或可能可以位于与服务210中的一个或多个相同的网络节点上。在本说明书和权利要求书中,如果两个计算***使用联网协议来通信,则它们在不同的网络节点上。
为使该服务序列能够通信,输入数据和/或输出数据的某些变换可能是有用的。例如,在上述基于地图的股票报价场景中,假定地图服务只提供公司的名称,而不是股票代号,而财务服务期望股票报价。在这一情况下,会发生其中公司名称被映射到股票代号的某一映射变换。另选地,假定地图服务以XML格式生成公司名称,而财务服务期望输入为特定的另一类非XML对象。在这一情况下,可以发生某一格式转换。变换还可以对输入到地图服务的数据发生。例如,可能数据输入实体生成被称为“latitude(纬度)”和“longitude(经度)”的参数,而地图服务可能期望分别被称为“lat”和“long”的参数。变换还可以发生在财务服务的输出上以提供可被数据输出实体消费的形式的所得数据。
参考图2,例如,第一服务211可以在其从数据输入实体201接收到的输入数据221上执行如输入变换组件211A所表示的一个或多个变换,并且可以在其输出数据222上执行如输出变换组件211B所表示的一个或多个变换。同样,第二服务212可以使用输入变换组件212A在其输入数据222上执行变换,并且可以使用输出变换组件212B在其输出数据223上执行变换等,且对于服务序列210中的其它服务以此类推。最后,最终服务213可以使用输入变换组件213A在其输入数据224执行变换,并且可以使用输出变换组件213B在其输出数据225上执行变换。
本发明的各实施例使用数据结构来声明性地定义每一变换,而非通过草拟用于每一变换的自定义代码来执行这些变换。图3示出数据结构300的示例。数据结构300对服务序列中的每一服务包括一服务标识字段。例如,第一服务信息301包括标识第一服务(参见图2的第一服务211)的服务标识符字段311。同样地,第二服务信息302可以标识图2的第二服务212,而最终服务信息303可以标识图2的最终服务213。垂直省略号304表示可能有关于其它服务的其它类似信息。
对于每一服务,可能有一个或多个输入变换标识字段312,该字段包括标识在输入数据被服务处理之前要在其上执行的一类变换的输入变换类字段312A,以及标识该变换类的一个或多个参数从而更具体地定义变换的一个或多个变换参数字段312B。如垂直省略号312C所表示的,对于任何给定服务可能有不止一个输入变换。还可能没有指定的输入变换。
变换类和变换参数的组合可被用来标识更具体的变换。变换类的示例可以包括参数映射变换或格式转换变换。例如,假定变换类是参数映射类。参数的示例可以包括例如,关于哪一参数名(例如,“latitude”或“longitude”)要被映射到哪一参数名(例如,分别为“lat”或“long”)的标识。
类似地,对于每一服务,可能有一个或多个输出变换标识字段313,该字段包括标识在输出数据被服务处理之前要在其上执行的变换类的输出变换类字段313A,以及标识变换类的一个或多个参数从而更具体地定义输出变换的一个或多个变换参数字段313B。如垂直省略号313C所表示的,对于任何给定服务可能有不止一个输出变换。还可能没有指定的输出变换。变换类和变换参数的组合也可被用来标识更具体的输出变换。
如前所述,以上关于第一服务301所描述的字段中的每一个都可以被包括在关于相应的第二服务212和最终服务213的第二服务信息302和最终服务信息303中。关于数据结构300所描述的字段的布局并不暗示关于字段的任何位置或分层关系。例如,任何单个所示字段可以由多个分布字段所组成,且不必只包括如在字段中所描述的所指定的信息。此外,示为被包括在另一字段中的字段根本不必被包括在该字段中。
可以使用文本来指定数据结构300。在一实施例中,可对该数据结构使用可扩展标记语言(XML)文档,但是绝不要求如此。使用直观文本文档来声明性地指定变换允许不必通过运用耗时且昂贵的手动改变底层代码来指定和改变更复杂的变换。通过在服务请求之前将数据结构300向每一服务注册,或通过与服务请求一起或在其后提供数据结构300,数据结构300可对服务序列中的每一个可用。
图4示出可被用来执行变换的变换体系结构400。解释组件401表示用于解释变换类字段和一个或多个变换参数字段的计算机可执行指令。具体地,解释组件401接收变换类声明412A和参数声明412B,并向变换组件402提供类标识411A和参数标识411B。
变换组件402表示用于执行由变换类字段和一个或多个变换参数字段的组合指定的变换的计算机可执行指令。变换组件402可访问多个未填充的或未完全填充的变换类403A到403C。变换组件402使用类标识符411A来选择适当的变换类403A到403C。变换组件402随后实例化从该类导出的一变换对象并用参数411B来填充该对象。结果是可被执行从而接收输入或输出数据411并将该数据变换为经变换的输入或输出数据413的对象。
图5示出根据本发明的原理的供服务用适当的输入和/或输出变换来处理数据的方法500的流程图。服务从数据源实体201或服务序列210中的前一服务接收对于服务的请求(动作501)。该服务请求可以通过网络或从同一计算***中的另一进程本地地接收。
另外,该服务访问如上参考图3描述的数据结构(动作502)。由于该服务可以在接收服务请求之前、期间或之后访问该数据结构,所以该数据结构被示为与接收服务请求并行地被访问。然而,在特定实施例中,该数据结构可以与服务请求一起接收。在一实施例中,服务只访问数据结构中涉及该服务的部分。例如,第一服务211可以只访问第一服务信息301,且对于其它服务以此类推。
服务随后确定该服务在数据结构中是否被引用(判定框503)。换言之,服务确定该服务接收到的服务请求是对于服务序列中的服务之一的请求。如果该服务在数据结构中未被引用(判定框504中的否),则该请求被处理(动作504)而不依赖于数据结构来指定任何输入和/或输出变换。
如果该服务在数据结构中被引用(判定框503中的是),则该服务标识在数据结构中是否指定了任何相关联的输入变换(判定框505)。如果没有(判定框505中的否),则使用输入数据来处理该请求(动作508)。另一方面,如果指定了输入变换(判定框505中的是),则对于输入变换中的每一个,该服务解释变换类字段和一个或多个变换参数字段(动作506),并执行由变换类字段和一个或多个变换参数字段的组合所指定的输入变换(动作507)。这可使用图4的变换体系结构400来实现。在所有指定的输入变换在指定的序列中被执行之后,在经变换的输入数据上处理该服务请求(动作508)以生成所得输出数据。
该服务随后确定是否有要在输出数据上执行的任何相关联的输出变换(判定框509)。如果没有(判定框509中的否),则向数据输出实体202或服务序列210中的下一服务提供所得数据(动作512)。另一方面,如果指定了输出变换(判定框509中的是),则对于输出变换中的每一个,该服务解释变换类字段和一个或多个变换参数字段(动作510),并执行由变换类字段和一个或多个变换参数字段的组合所指定的输出变换(动作511)。再一次,这可使用图4的变换体系结构400来实现。在所有指定的输出变换都被执行后,所得经变换的数据被提供给数据输出实体202或服务序列210中的下一服务。
虽然参考图5和相关联的附图和说明书描述了各个方法,但是本发明的原理延及包括其上具有一个或多个计算机可执行指令的一个或多个计算机可读介质的计算机程序产品,这些指令在被服务器计算***上的一个或多个处理器执行时使该计算***执行这些方法中的全部或部分或任一个或两者。例如,参考图1,存储器104和通信信道108可以表示这种计算机可读介质上的示例。存储器104表示物理存储和/或存储器介质形式的物理计算机可读介质的示例。本发明的原理还延及计算***本身,其通过硬件、软件或硬件和软件的组合来配置以执行图5的方法的所有部分。
现在已经以某些细节描述了本发明的广泛的原理,现将描述一更具体的示例。本领域技术人员在阅读本说明书之后将认识到,除该示例之外还有可数的方法来实现本发明的更广泛的原理。因而,该示例只是说明性的而非限制性的。
在一示例中,数据结构300可以是如下为清楚起见添加了行号的XML文档:
<?xml version=″1.0″encoding=″utf-8″?>
<bridge namespace=″Samples″className=″BookSearch″>
<proxy type=″Microsoft.Web.Services.BridgeRestProxy″url=″http://booksearchexample.com/xml″/>
<method name=″Search″>
<input>
<parameter name=″Service″value=″AWSECommerceService″ServerName=“BookSearch”/>
<parameter name=″AWSAccessKeyId″value=″%appsettings:AWSAccessKeyId %″serverOnly=″true″/>
<parameter name=″Keywords″ServerName=“SearchTerms”/>
<parameter name=″Operation″value=″ItemSearch″/>
<parameter name=″SearchIndex″value=″Books″/>
</input>
<transforms>
<transform type=″Microsoft.Web.Services.XPathBridgeTransformer″>
<data>
<attribute name=″selector″value=″bs:Items/bs:Item″/>
<dictionary name=″namespaceMapping″>
<item name=″bs″value=″http://webservices.amazon.com/AWSECommerceService/2005-10-05″/>
</dictionary>
<dictionary name=″selectedNodes″>
<item name=″Title″value=″bs:ItemAttributes/bs:Title″/>
<item name=″Product″value=″bs:ItemAttributes/bs:ProductGroup″/>
<item name=″Author″value=″bs:ItemAttributes/bs:Author″/>
<item name=″ASIN″value=″bs:ASIN″/>
</dictionary>
<data>
</transform>
</transforms>
</method>
<method name=″SearchRaw″outputMode=″Raw″>
<input>
<parameter name=″Service″value=″AWSECommerceService″/>
<parameter name=″AWSAccessKeyId″value=″xyz″serverOnly=″true″/>
<parameter name=″Keywords″/>
<parameter name=″Operation″value=″ItemSearch″/>
<parameter name=″SearchIndex″value=″Books″/>
</input>
</method>
</bridge>
在该数据结构中,“bridge(桥)”元素在其属性中定义被称为BookSearch(书籍搜索)的服务。BookSearch服务是图2的服务序列中所示的服务的示例。也可以指定proxy type(代理类型)从而标识与该服务通信所要使用的代理。proxy元素还包括可由该代理用来与第一服务连接的URL。bridge元素定义与BookSearch属性相关联的两个方法,一个被称为Search(搜索)而另一个被称为RawSearch(原始搜索)。
Search方法定义对该Search方法的某些输入参数。这些参数包括Service(服务)、AWSAccessKeyId(AWS访问键Id)、Keywords(关键字)、Operation(操作)和Search Index(搜索索引)。对于输入参数中的两个,即Service和Keywords存在ServerName(服务器名)属性。ServerName属性名是变换类标识的示例。ServerName属性的值是变换参数的示例。例如,在参数名=“Service”的元素中的ServerName属性指示其中名为“Service”的参数将被映射到名字“BookSearch”的参数映射类变换。类似地,“Keywords”参数被映射到“SearchTerms(搜索项)”参数。因而,“input(输入)”元素定义两个参数的映射功能。
“transforms(变换)”元素指定名为“XPathBridgeTransformer(X路径桥变换器)”的输出变换,该变换从所得数据中提取名-值对并将其置于XML文档的形式。XPathBridgeTransformer引用是变换类标识的示例。在这一情况下,从搜索结果中提取Title(标题)、ProductGroup(产品组)、Author(作者)、和ASIN字段并将其置于XML文档中。因此,item name(项目名)元素是变换参数的示例。除未指定输出变换之外,SearchRaw方法类似于Search方法。
因此,本发明的原理提供了一种用于在到服务的输入数据和来自服务的输出数据两者上声明性地指定变换的方便的机制。为改变变换,不必改变底层代码,而是变更高层声明。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。
Claims (20)
1.一种或多种其上具有一数据结构的计算机可读介质,所述数据结构包括:
多个服务标识字段,每个服务标识字段都标识两个或更多服务的序列中的一个服务;以及
变换类字段,所述变换类字段指定在输入数据被提供给所述服务序列之前在该输入数据上、在所述服务序列中的所述多个服务的两个服务之间提供的服务间数据上、或在从所述服务序列输出的输出数据上执行的一类变换;以及
标识所述一类变换的一个或多个参数从而更具体地定义所述变换的一个或多个变换参数字段。
2.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述多个服务标识字段、所述类变换类字段和所述一个或多个变换参数字段是使用文本来指定的。
3.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述变换类字段指定在所述输入数据被提供给所述服务序列之前要在该输入数据上执行的一类变换,所述计算机可读介质上还具有:
用于解释所述变换类字段和所述一个或多个变换参数字段的计算机可执行指令;以及
用于执行由所述变换类字段和所述一个或多个变换参数字段的组合指定的变换的计算机可执行指令。
4.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述变换类字段指定要在所述服务间数据上执行的一类变换,所述计算机可读介质上还具有:
用于解释所述变换类字段和所述一个或多个变换参数字段的计算机可执行指令;以及
用于执行由所述变换类字段和所述一个或多个变换参数字段的组合指定的变换的计算机可执行指令。
5.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述变换类字段指定要在从所述服务序列输出的输出数据上执行的一类变换,所述计算机可读介质上还具有:
用于解释所述变换类字段和所述一个或多个变换参数字段的计算机可执行指令;以及
用于执行由所述变换类字段和所述一个或多个变换参数字段的组合指定的变换的计算机可执行指令。
6.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述变换类字段是第一变换类字段,所述一类变换是第一类变换,所述变换是第一变换,且所述一个或多个变换参数字段是第一一个或多个变换参数字段,其中所述第一变换类字段指定在所述输出数据被提供给所述一个或多个服务的序列之前要在该输入数据上执行的一类变换,所述计算机可读介质上还具有:
指定要在所述服务序列中的所述多个服务的两个服务之间提供的所述服务间数据上执行的第二类变换的第二变换类字段;以及
标识所述第二类变换的一个或多个参数从而更具体地定义所述第二变换的第二一个或多个变换参数字段。
7.如权利要求6所述的一种或多种计算机可读介质,其特征在于,所述计算机可读介质上还具有:
指定要在从所述服务序列输出的输出数据上执行的第三类变换的第三变换类字段;以及
标识所述第三类变换的一个或多个参数从而更具体地定义所述第三变换的第三一个或多个变换参数字段。
8.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述变换类字段是第一变换类字段,所述一类变换是第一类变换,所述变换是第一变换,且所述一个或多个变换参数字段是第一一个或多个变换参数域,其中所述第一变换类字段指定在所述输出数据被提供给所述一个或多个服务的序列之前要在该输出数据上执行的一类变换,所述计算机可读介质上还具有:
指定要在从所述服务序列输出的输出数据上执行的第二类变换的第二变换类字段;以及
标识所述第二类变换的一个或多个参数从而更具体地定义所述第二变换的第二一个或多个变换参数字段。
9.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述变换类字段是第一变换类字段,所述一类变换是第一类变换,所述变换是第一变换,且所述一个或多个变换参数字段是第一一个或多个变换参数字段,其中所述第一变换类字段指定要在所述服务序列的所述多个服务的两个服务之间提供的所述服务间数据上执行的一类变换,所述计算机可读介质上还具有:
指定要在从所述服务序列输出的输出数据上执行的第二类变换的第二变换类字段;以及
标识所述第二类变换的一个或多个参数从而更具体地定义所述第二变换的第二一个或多个变换参数字段。
10.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述一个或多个计算机可读介质是物理存储介质。
11.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述一个或多个计算机可读介质是物理存储器介质。
12.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述一类变换包括参数映射变换。
13.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述一类变换包括格式转换变换。
14.如权利要求1所述的一种或多种计算机可读介质,其特征在于,所述多个服务的至少一个或多个服务在与所述多个服务的至少一个或多个其它服务不同的网络节点上。
15.如权利要求14所述的一种或多种计算机可读介质,其特征在于,所述多个服务在与生成所述输入数据的组件相比不同的一个或多个网络节点上。
16.一种供服务接收和处理来自另一网络节点的输入数据的方法,所述方法包括:
接收对服务的请求及相关联的输入数据的动作;
访问一数据结构的动作,所述数据结构包括:多个服务标识字段,其中每一服务标识字段都标识两个或更多服务的序列中的一个服务,且其至少一个标识所请求的服务;指定在输入数据被提供给所述两个或更多服务的序列之前要在该输入数据上上执行的一类变换的变换类字段;以及标识所述一类变换的一个或多个参数从而更具体地定义所述变换的一个或多个变换参数字段;
确定所述服务请求是对于所述多个服务中的一个服务的请求的动作;
解释所述变换类字段和所述一个或多个变换参数字段的动作;以及
通过在所述输入数据上执行所述变换来执行由所述变换类字段和所述一个或多个变换参数字段所指定的变换的动作。
17.如权利要求16所述的方法,其特征在于,所述变换类字段是第一变换类字段,所述一类变换是第一类变换,所述变换是第一变换,所述一个或多个变换参数字段是第一一个或多个变换参数字段,所述数据结构还包括指定在输出数据被提供给所述服务序列中的下一服务之前或在被所述服务输出之前要在该输出数据上执行的一类变换的第二变换类字段;和标识所述一类变换的一个或多个参数从而更具体地定义所述变换的一个或多个变换参数字段,所述方法还包括:
处理所述服务请求以生成所得数据的动作;
解释所述第二变换类字段和所述第二一个或多个变换参数字段的动作;以及
通过在所述所得数据上执行所述变换来执行由所述变换类字段和所述一个或多个变换参数字段所指定的所述第二变换的动作。
18.一种包括其上具有计算机可执行指令的一个或多个计算机可读介质的计算机程序产品,所述指令在被计算***上的一个或多个处理器执行时使所述计算***执行如权利要求16所述的方法。
19.一种供服务处理所得数据的方法,所述方法包括:
处理服务请求以生成所述所得数据的动作;
访问一数据结构的动作,所述数据结构包括指定在所述所得数据被提供给所述服务序列中的下一服务之前或在被所述服务输出之前要在该所得数据上执行的一类变换的变换类字段;以及标识所述一类变换的一个或多个参数从而更具体地定义所述变换的一个或多个变换参数字段;
解释所述变换类字段和所述一个或多个参数字段的动作;以及
通过在所述所得数据上执行所述变换来执行由所述变换类字段和所述一个或多个变换参数字段所指定的变换的动作。
20.一种包括其上具有计算机可执行指令的一个或多个计算机可读介质的计算机程序产品,所述指令在被计算***上的一个或多个处理器执行时使所述计算***执行如权利要求19所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/378,711 US7869585B2 (en) | 2006-03-17 | 2006-03-17 | Declarations for transformations within service sequences |
US11/378,711 | 2006-03-17 | ||
PCT/US2007/004042 WO2007108874A1 (en) | 2006-03-17 | 2007-02-13 | Declarations for transformations within service sequences |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101405761A true CN101405761A (zh) | 2009-04-08 |
CN101405761B CN101405761B (zh) | 2016-02-03 |
Family
ID=38519290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780009242.5A Active CN101405761B (zh) | 2006-03-17 | 2007-02-13 | 供服务接收和处理数据的方法和*** |
Country Status (6)
Country | Link |
---|---|
US (1) | US7869585B2 (zh) |
EP (1) | EP2011073A4 (zh) |
JP (1) | JP5031819B2 (zh) |
KR (1) | KR20080104303A (zh) |
CN (1) | CN101405761B (zh) |
WO (1) | WO2007108874A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814198B2 (en) | 2007-10-26 | 2010-10-12 | Microsoft Corporation | Model-driven, repository-based application monitoring system |
US8024396B2 (en) * | 2007-04-26 | 2011-09-20 | Microsoft Corporation | Distributed behavior controlled execution of modeled applications |
US8239505B2 (en) * | 2007-06-29 | 2012-08-07 | Microsoft Corporation | Progressively implementing declarative models in distributed systems |
US7970892B2 (en) | 2007-06-29 | 2011-06-28 | Microsoft Corporation | Tuning and optimizing distributed systems with declarative models |
US8230386B2 (en) | 2007-08-23 | 2012-07-24 | Microsoft Corporation | Monitoring distributed applications |
US8099720B2 (en) | 2007-10-26 | 2012-01-17 | Microsoft Corporation | Translating declarative models |
US7926070B2 (en) | 2007-10-26 | 2011-04-12 | Microsoft Corporation | Performing requested commands for model-based applications |
US8225308B2 (en) | 2007-10-26 | 2012-07-17 | Microsoft Corporation | Managing software lifecycle |
US7974939B2 (en) | 2007-10-26 | 2011-07-05 | Microsoft Corporation | Processing model-based commands for distributed applications |
US8181151B2 (en) * | 2007-10-26 | 2012-05-15 | Microsoft Corporation | Modeling and managing heterogeneous applications |
US20100070535A1 (en) * | 2008-09-12 | 2010-03-18 | Microsoft Corporation | Data schema transformation using declarative transformations |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11212911A (ja) * | 1998-01-28 | 1999-08-06 | Mitsubishi Electric Corp | 分散サービス連携装置 |
MXPA00007085A (es) * | 1998-11-18 | 2005-09-20 | Software Ag Inc | Sistema de integracion de aplicacion de empresa distribuido extensible. |
US6941510B1 (en) | 2000-06-06 | 2005-09-06 | Groove Networks, Inc. | Method and apparatus for efficient management of XML documents |
US6941511B1 (en) * | 2000-08-31 | 2005-09-06 | International Business Machines Corporation | High-performance extensible document transformation |
JP2003242127A (ja) * | 2002-02-14 | 2003-08-29 | Meidensha Corp | 業務統合システム |
US20040133635A1 (en) * | 2002-11-26 | 2004-07-08 | Axel Spriestersbach | Transformation of web description documents |
CA2413697A1 (en) * | 2002-12-06 | 2004-06-06 | Ibm Canada Limited-Ibm Canada Limitee | Transformations as web services |
US6976144B1 (en) * | 2003-05-06 | 2005-12-13 | Pegasystems, Inc. | Methods and apparatus for digital data processing with mutable inheritance |
US7519577B2 (en) * | 2003-06-23 | 2009-04-14 | Microsoft Corporation | Query intermediate language method and system |
JP4204493B2 (ja) * | 2004-03-03 | 2009-01-07 | 富士通株式会社 | データ中継プログラム |
-
2006
- 2006-03-17 US US11/378,711 patent/US7869585B2/en active Active
-
2007
- 2007-02-13 JP JP2009501422A patent/JP5031819B2/ja active Active
- 2007-02-13 EP EP07750851A patent/EP2011073A4/en not_active Ceased
- 2007-02-13 KR KR1020087022171A patent/KR20080104303A/ko not_active IP Right Cessation
- 2007-02-13 CN CN200780009242.5A patent/CN101405761B/zh active Active
- 2007-02-13 WO PCT/US2007/004042 patent/WO2007108874A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20070220177A1 (en) | 2007-09-20 |
EP2011073A1 (en) | 2009-01-07 |
JP2009530738A (ja) | 2009-08-27 |
JP5031819B2 (ja) | 2012-09-26 |
US7869585B2 (en) | 2011-01-11 |
WO2007108874A1 (en) | 2007-09-27 |
CN101405761B (zh) | 2016-02-03 |
EP2011073A4 (en) | 2009-06-10 |
KR20080104303A (ko) | 2008-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101405761B (zh) | 供服务接收和处理数据的方法和*** | |
US7756905B2 (en) | System and method for building mixed mode execution environment for component applications | |
US8370863B2 (en) | Method and apparatus for integrating applications on demand to display and manipulate a semantic resource | |
CN100429620C (zh) | 用于将开发模式应用于基于组件的应用程序的***和方法 | |
US8341185B2 (en) | Method and apparatus for context-indexed network resources | |
US7761586B2 (en) | Accessing and manipulating data in a data flow graph | |
CN110096584B (zh) | 一种应答方法和装置 | |
US9026609B2 (en) | Method and apparatus for coordinating media presentation on devices via an information space | |
CN110442330A (zh) | 列表组件转换方法、装置、电子设备及存储介质 | |
WO2012057876A1 (en) | Chained data processing and application utilization | |
EP2659348A1 (en) | Method and apparatus for providing input suggestions | |
CN111597466A (zh) | 展示方法、装置和电子设备 | |
CN110457325B (zh) | 用于输出信息的方法和装置 | |
Shi | Sharing service semantics using SOAP-based and REST Web services | |
WO2009055759A2 (en) | Declarative model interpretation | |
Palviainen et al. | Towards user-driven cyber-physical systems—Strategies to support user intervention in provisioning of information and capabilities of cyber-physical systems | |
Shinde et al. | Context Management in IoT | |
CN111046146B (zh) | 用于生成信息的方法和装置 | |
CN111030856B (zh) | 一种基于云的数据接入方法、电子设备及计算机可读介质 | |
US7660789B2 (en) | Entity agent | |
CN107209674B (zh) | 管理资产的方法以及应用该方法的资产管理***与机器 | |
Di Modica et al. | Sensor node plug-in system: A service-oriented middleware for wireless sensor networks | |
Ntiamoah-Sarpong et al. | Check for updates Performance Improvement in NOMA User Rates and BER Using Multilevel Lattice Encoding and Multistage Decoding | |
CN114185811A (zh) | 测试方法、装置、存储介质及电子设备 | |
Saany et al. | Multimedia Data Archive Application in Cloud Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150729 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150729 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |