CN101405761A - 服务序列中的变换的声明 - Google Patents

服务序列中的变换的声明 Download PDF

Info

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
Application number
CNA2007800092425A
Other languages
English (en)
Other versions
CN101405761B (zh
Inventor
N·科塔里
H-H·昆古
S·N·沙科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101405761A publication Critical patent/CN101405761A/zh
Application granted granted Critical
Publication of CN101405761B publication Critical patent/CN101405761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements 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所述的方法。
CN200780009242.5A 2006-03-17 2007-02-13 供服务接收和处理数据的方法和系统 Active CN101405761B (zh)

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)

* Cited by examiner, † Cited by third party
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
US7970892B2 (en) 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8225308B2 (en) 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US7974939B2 (en) 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US7926070B2 (en) 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US20100070535A1 (en) * 2008-09-12 2010-03-18 Microsoft Corporation Data schema transformation using declarative transformations

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212911A (ja) * 1998-01-28 1999-08-06 Mitsubishi Electric Corp 分散サービス連携装置
AU776938B2 (en) * 1998-11-18 2004-09-30 Saga Software, Inc. Extensible distributed enterprise application integration system
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 富士通株式会社 データ中継プログラム

Also Published As

Publication number Publication date
KR20080104303A (ko) 2008-12-02
US7869585B2 (en) 2011-01-11
EP2011073A4 (en) 2009-06-10
WO2007108874A1 (en) 2007-09-27
JP5031819B2 (ja) 2012-09-26
JP2009530738A (ja) 2009-08-27
EP2011073A1 (en) 2009-01-07
US20070220177A1 (en) 2007-09-20
CN101405761B (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
CN101405761B (zh) 供服务接收和处理数据的方法和系统
Xiao et al. User interoperability with heterogeneous IoT devices through transformation
US8370863B2 (en) Method and apparatus for integrating applications on demand to display and manipulate a semantic resource
CN100429620C (zh) 用于将开发模式应用于基于组件的应用程序的系统和方法
US20050192984A1 (en) System and method for building mixed mode execution environment for component applications
US20110246438A1 (en) Method and apparatus for context-indexed network resources
US20060212836A1 (en) Personalized user interfaces for presentation-oriented web services
Afsari et al. Building Information Modeling data interoperability for Cloud-based collaboration: Limitations and opportunities
US20110282968A1 (en) Method and apparatus for coordinating media presentation on devices via an information space
WO2012057876A1 (en) Chained data processing and application utilization
CN110457325B (zh) 用于输出信息的方法和装置
WO2012089898A1 (en) Method and apparatus for providing input suggestions
CN111597466A (zh) 展示方法、装置和电子设备
Shi Sharing service semantics using SOAP-based and REST Web services
EP2203813A2 (en) Declarative model interpretation
CN106462603A (zh) 对多个实体隐含的查询的歧义消除
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) 用于生成信息的方法和装置
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