CN101442503A - 处理组件更新消息的方法和设备 - Google Patents
处理组件更新消息的方法和设备 Download PDFInfo
- Publication number
- CN101442503A CN101442503A CNA2008101656879A CN200810165687A CN101442503A CN 101442503 A CN101442503 A CN 101442503A CN A2008101656879 A CNA2008101656879 A CN A2008101656879A CN 200810165687 A CN200810165687 A CN 200810165687A CN 101442503 A CN101442503 A CN 101442503A
- Authority
- CN
- China
- Prior art keywords
- message
- processing components
- parts
- interface
- processing
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
- H04L51/063—Content adaptation, e.g. replacement of unsuitable content
-
- 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/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- 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/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Abstract
公开了处理组件更新消息的方法、设备和计算机程序。接收由处理组件处理的消息。从处理组件的声明接口中推断出将由处理组件更新一个或多个消息值作为其处理结果。然后使用处理组件的接口以获得一个或多个更新的值,然后将更新应用于消息。
Description
技术领域
本发明涉及消息的处理,并且更特别地涉及在消息内的元素的定位。
背景技术
在消息发送(messaging)环境中,消息产生者经由诸如来自IBM公司的一个可用的消息发送系统向消息使用者发送消息。
一个或多个居间器(mediation)服务应用程序可以位于消息处理环境中。所述居间器服务应用程序拦截和修改在产生者和使用者之间传递的消息。因此,居间器可能产生输入消息的稍微修改的版本作为输出,其中修改可以是关于消息的路由的上下文信息、消息内容、或者在记录或监视居间器(处理组件)的情况下是只读的。
居间器实现需要对消息内容的某些部分的访问,以便执行其功能。一般地,向居间器提供具有某种本地(native)或规范格式的完整消息,并留下以对于其自身确定要读取和修改消息的哪些部分。因此每一个居间器实现均敏感于向其提供的消息的结构,并且可能必须具有处理来自不同源的消息的特定代码。这样的代码指示由特殊消息格式限定的每一个元素的位置。此外,预先不知道居间器要求和/或更新哪些值。
居间器一般具有多种属性,例如,为了执行其处理,可以设置以指示居间器要求的信息的值。注入(injection)是覆盖(cover)基于与所述居间器相关联的元数据,从由运行时间确定的值中设置居间器属性的技术术语。通常这些注入属性代表对于居间器处理节点的运行时间创建的其他对象(如其他企业JavaTM Beans)的配置参数或参考。(Java和所有基于Java的商标都是美国或其他国家或两者中Sun Microsystems公司的商标)
Enterprise Bean Programming Model 2.0允许EJB对象包括可以检索(retrieve)或更新的多种属性。EJB对象可以保持数据库记录的形式。对等地,数据库记录可以重新构成EJB对象。目的是实现两者之间的同步。然而,不可能提前推断出将要更新哪些EJB属性。
美国专利申请6,636855公开了用于处理数据流的系统。提供输入映射,用于提取值以用作针对存储的过程的输入参数。还提供输出映射,其描述如何利用从存储的过程返回的输出参数来补充消息。
发明内容
根据第一方面,提供了处理组件更新消息的方法,包括:
接收用于由处理组件处理的消息;
从处理组件的声明接口中推断出将由处理组件更新一个或多个消息值作为其处理的结果;
使用处理组件的接口以获得一个或多个更新的值;并将该更新应用于消息。
例如,要更新的值可以从声明接口的方法调用的名称中推断出,或者可以从由声明接口列出的额外信息中推断出。
此外,优选地从处理组件的声明接口中推断出处理组件要求的一个或多个消息值以便进行其处理。
优选地使用处理组件的接口以便从消息中获取一个或多个所要求的值。
再一次,作为示例,所要求的值可以从声明接口的方法调用中推断出,或者从由声明接口列出的额外信息中推断出。
根据优选实施例,与处理组件相关联的元数据用于在消息中定位所要求的值。
优选地,所定位的要求的值被传递到处理组件。
根据优选实施例,与处理组件相关联的元数据用于在要更新的消息内定位每一个消息。
优选地,确定消息的类型,并访问适于消息类型的元数据。
根据一个实施例,使用处理组件将更新的一个或多个消息值的知识来确定需要由处理组件本地地存储消息的哪些元素。
根据第二方面,提供了处理组件更新消息的设备,包括:
接收用于由处理组件处理的消息的部件;
从处理组件的声明接口中推断出将由处理组件更新一个或多个消息值作为其处理结果的部件;
使用处理组件的接口,以获得一个或多个更新的值的部件;以及将更新应用于消息的部件。
本发明可以以计算机软件实现。
附图说明
现在仅作为示例并参照附图,描述本发明的优选实施例,在附图中:
图1图解根据本发明的优选实施例的消息发送环境;
图2a示出根据本发明的优选实施例的居间器;
图2b提供根据本发明的优选实施例的示例性元数据;
图2c图解示例性QuoteResponse消息;以及
图3图解根据优选实施例的本发明的处理。
具体实施方式
图1提供了其中可以实现本发明的优选实施例的消息处理环境的示例。消息产生者10经由消息发送系统20向消息使用者50发送消息。在消息发送系统内,由消息移动组件(未示出)将消息从输入队列25传递到输出队列30。
消息使用者50在输出队列30请求下一消息,并且消息发送系统将所述消息向前转送。处理节点35位于消息发送系统20与消息使用者50之间。这包含居间器40(处理组件),其拦截所述消息并使用在所述消息内包含的值来进行一些额外处理。
消息使用者50可以代表欧洲客户,他感兴趣与以美元对其进行出示(produce)相对的欧元的当前IBM股票价格。因此居间器40可以提供将所检索到的股票价格转换为欧元所需的功能。图2a图解根据本发明的优选实施例的、更详细的居间器40。居间器在其已声明接口(I/F)45列出“set”和“get”方法的列表。set方法的存在表示居间器实现要求值,而get方法的存在表示居间器实现修改值。在该示例中,货币类型(currency type)、量(amount)和汇率(exchange rate)是所要求的值(经由set方法设置表示这些值的居间器属性)。amount也是居间器作为其包含的任何“do”处理的结果而更新的所接收到的消息中的字段(经由get方法检索表示该值的居间器属性的更新值)。
某些元数据60与居间器40相关联。如图2b所示,该元数据表示由在居间器的接口45处列出的set和get方法要求的字段值的所接收到的消息内的位置(对于特殊消息格式)。因此,所示的元数据表示Amount可以从被称为QuoteResponse的消息中检索到,并且在位于y字段(反过来位于字段x内)内的amount字段内。类似地,Currency位于QuoteResponse字段内,所述QuoteResponse字段具有位于字段z内的currency字段。可以在站点:exchangerate.com/currencyx_to_euro(其是作为示例的、将请求的货币转换为欧元的站点)上找到exchange rate(汇率)。在图2c中图解示例性QuoteResponse消息。
当配置或配备元数据时,优选地向其提供居间器。如上所述,这样的元数据将来自特殊格式(类型)的消息的特定字段映射到get和set方法。可以通过指定XPath表达式来实现这样的映射。
图3示出根据优选实施例的本发明的处理。现在将联系图1的消息发送环境、图2a的示例性居间器、图2b的元数据和图2c的消息来读该图。
在步骤100,由处理节点30的运行时间(未示出)来接收图2c的QuoteResponse消息。运行时间从由居间器的接口的set方法限定的消息中提取字段(步骤110)。元数据60用于确定所接收到的消息内必需的字段的位置。在操作多种格式的消息的系统中,可能必须确定所接收到的消息的格式(类型)以及后续要使用的合适的元数据。
在步骤120,由处理节点35的运行时间调用居间器40的set方法(Currency,Amount,ExchangeRate)。这样,将居间器40内的currency、amount和exchange rate变量(属性)55设置为所提取的字段内包含的值。在该示例中,currency是美元,amount是15,而用于将美元转换为欧元的exchange rate(如从www.exchangerate.com/currencyx_to_euros中检索)是1.42。
所要求的变量的名称(即,在居间器的“do”处理中使用并在元数据中指定的那些)可以从在居间器的接口处列出的set和get方法的名称中得到。可选择地,这样的额外信息可以列出在接口本身。
在步骤130,运行时间使用“set”值(属性)来调用居间器的“do”处理。示例性do处理将amount(15)乘以对于所要求的currency的exchange rate(如欧元,1.42)。
然后,在步骤140调用任意get方法,以便提取作为do处理的结果而产生的任意更新的值(属性)。在该实例中,居间器的do处理已经返回对于amount的新值(15*1.42=21.30)。因此,这是提取的值,并且在步骤150更新相关消息字段(在这种情况下是amount字段)。元数据60用于直接定位amount字段而无需分析整个消息。
在步骤160,向消息使用者50转送QuoteResponse消息。
因此,连同居间器作为其“do”处理的结果而更新(经由get方法)的属性一起提供在居间器实现上的接口,其列出居间器将要求(经由set方法)的属性。然后,运行时间基础设施可以连同分别指定的元数据一起、合适地调用那些方法,其中该元数据将具有特殊具体消息格式(方案)的消息字段映射到居间器属性。这提供极其简单的居间器编程模型,其允许居间器与消息起源(格式)独立地被编码,并且还提供关于要访问和/或修改哪个消息字段的整个信息(这允许显著的最优化)。不再需要分析整个消息。
由元数据使消息访问分离并限定意味着可以利用不同元数据对于大量消息再使用单个居间器实现。
可以提供基于输入/输出参数及其类型的限定组来产生基本(skeleton)居间器实现的加工(tooling),然后居间器记录器(writer)只需要处理居间器逻辑,而没有消息访问/更新逻辑。
当然,将理解,以上给出的股票报价示例决不旨在限定。居间器具有多种用途,包括变换、记录(log)等。只要居间器需要更新消息内的值,本发明均具有效用。还应该理解,居间器的位置可以在消息发送环境内的多个地方之一——如在消息发送系统本身或者与消息产生者或使用者共处。
所公开的解决方案特别有利性在于:处理节点的运行时间不需要保持中间消息元素的表示。因此,如果居间器属性被映射到消息元素a/b/c/d/e/f,则运行时间只需要创建f的表示。之前,需要存储消息的完整表示,而这是低效的。更详细地进行解释:当读取元素时,所述元素的值需要以某种形式保存,并被提供到居间器组件。然而,当get方法的不存在表示居间器不更新所述值时,不需要产生所述元素的副本。如果不利用所公开的解决方案,则只要居间器更新任何值就调用居间器,一般就需要产生整个消息的副本。
应该理解,本发明不限于其中居间器要求来自消息的一个或多个值并且还更新消息中的一个或多个值的系统。其中仅更新值的系统同样也是可能的。还应该理解,每次接收到消息时均可以访问元数据,以便在消息内定位合适的字段。可选择地,当消息是频繁接收类型之一时,处理节点可以记忆消息内各字段的位置。
如上所讨论的那样,从居间器(处理组件)的声明接口,可以推断出将要更新的消息值。作为示例,其有利性在于:可以使用该知识来确定是否需要存储特定消息元素的副本及其值。例如,可能存在居间器链,并且不利用该知识,则一般将需要本地地存储对于每一居间器的完全信息的表示。现在,需要本地地存储所要求的特定消息元素(字段),并且仅在更新那个元素时。
可以将本发明的优选实施例总结如下:
一种处理组件处理消息的方法,包括:
使用处理组件的声明接口以识别处理组件要求的那些消息值;
使用与处理组件相关联的元数据以定位消息中所要求的值;
将那些值传递到处理组件;
使处理组件执行其功能;
使用处理组件的声明接口以识别处理组件已经更新的那些消息值;
使用元数据以在消息内定位每一个消息值,所述消息与处理组件已经更新的值相对应;
并基于所述处理更新每一个消息值。
Claims (15)
1、一种处理组件更新消息的方法,包括:
接收用于由处理组件处理的消息;
从该处理组件的声明接口中推断出将由该处理组件更新一个或多个消息值作为其处理结果;
使用该处理组件的该接口获得该一个或多个更新值;以及
将该更新应用于该消息。
2、根据权利要求1所述的方法,包括:
从该处理组件的该声明接口中推断出该处理组件要求的一个或多个消息值以便进行其处理;
使用该处理组件的该接口以从所述消息中获得一个或多个所要求的值。
3、根据权利要求2所述的方法,其中使用该处理组件的该接口以从所述消息中获得一个或多个所要求的值的步骤包括:
使用与所述处理组件相关联的元数据来在所述消息中定位该所要求的值。
4、根据权利要求3所述的方法,包括:
将所定位的所要求的值传递到所述处理组件。
5、根据上述任意一个权利要求所述的方法,其中将那些更新应用于所述消息的步骤包括:
使用与所述处理组件相关联的元数据来在要被更新的所述消息内定位每一个消息值。
6、根据权利要求3、4或5所述的方法,包括:
确定消息的类型;以及
访问适于所述消息类型的元数据。
7、根据上述任意一个权利要求所述的方法,包括:
使用所述处理组件将更新的该一个或多个消息值的知识来确定需要由所述处理组件本地地存储消息的哪些元素。
8、一种处理组件更新消息的设备,包括:
接收用于由处理组件处理的消息的部件;
从该处理组件的该声明接口中推断出将由该处理组件更新一个或多个消息值作为其处理结果的部件;
使用该处理组件的该接口以获得该一个或多个更新的值的部件;以及
将该更新应用于该消息的部件。
9、根据权利要求8所述的设备,包括:
从该处理组件的该声明接口中推断出该处理组件要求的一个或多个消息值以便进行其处理的部件;
使用该处理组件的该接口以从该消息中获得一个或多个所要求的值的部件。
10、根据权利要求9所述的设备,其中使用该处理组件的该接口以从该消息中获得一个或多个所要求的值的部件包括:
使用与该处理组件相关联的元数据以在该消息中定位所要求的值的部件。
11、根据权利要求10所述的设备,包括:
将所定位的要求的值传递到该处理组件的部件。
12、根据权利要求8到11中任意一个所述的设备,其中将那些更新应用于该消息的部件包括:
使用与该处理组件相关联的元数据来在要被更新的该消息内定位每一个消息值的部件。
13、根据权利要求10、11或12所述的设备,包括:
确定消息的类型的部件;以及
访问适于该消息类型的元数据的部件。
14、根据权利要求8到13中任意一个所述的设备,包括:
使用该处理组件将更新的一个或多个消息的知识,以确定需要由该处理组件本地地存储消息的哪些元素的部件。
15、一种计算机程序,包括程序代码部件,适于当该程序在计算机上运行时执行权利要求1到7中任意一个所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07121223 | 2007-11-21 | ||
EP07121223.7 | 2007-11-21 | ||
EP071212237 | 2007-11-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101442503A true CN101442503A (zh) | 2009-05-27 |
CN101442503B CN101442503B (zh) | 2013-10-30 |
Family
ID=40643141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101656879A Active CN101442503B (zh) | 2007-11-21 | 2008-09-24 | 处理组件更新消息的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8959246B2 (zh) |
CN (1) | CN101442503B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186491A (zh) * | 2011-12-30 | 2013-07-03 | 中兴通讯股份有限公司 | 一种端到端硬件消息传输的实现方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10798186B2 (en) | 2016-06-09 | 2020-10-06 | International Business Machines Corporation | Dynamic generation of network routing configuration with service requirements |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249197B1 (en) * | 2000-10-20 | 2007-07-24 | Nortel Networks Limited | System, apparatus and method for personalising web content |
US6636855B2 (en) | 2001-03-09 | 2003-10-21 | International Business Machines Corporation | Method, system, and program for accessing stored procedures in a message broker |
US7822860B2 (en) * | 2001-12-11 | 2010-10-26 | International Business Machines Corporation | Method and apparatus for dynamic reconfiguration of web services infrastructure |
CN1956419A (zh) * | 2005-10-26 | 2007-05-02 | 祝凯 | 商业电子邮件验证转发方法和系统 |
CN100471151C (zh) * | 2006-09-25 | 2009-03-18 | 郭枭业 | 一种在电脑上浏览wml或rss网页的方法及其计算机装置 |
-
2008
- 2008-09-24 CN CN2008101656879A patent/CN101442503B/zh active Active
- 2008-11-20 US US12/274,402 patent/US8959246B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186491A (zh) * | 2011-12-30 | 2013-07-03 | 中兴通讯股份有限公司 | 一种端到端硬件消息传输的实现方法和装置 |
WO2013097397A1 (zh) * | 2011-12-30 | 2013-07-04 | 中兴通讯股份有限公司 | 一种端到端硬件消息传输的实现方法和装置 |
US9647976B2 (en) | 2011-12-30 | 2017-05-09 | Zte Corporation | Method and device for implementing end-to-end hardware message passing |
CN103186491B (zh) * | 2011-12-30 | 2017-11-07 | 中兴通讯股份有限公司 | 一种端到端硬件消息传输的实现方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101442503B (zh) | 2013-10-30 |
US8959246B2 (en) | 2015-02-17 |
US20090132672A1 (en) | 2009-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318360B2 (en) | Registry for app features referenced pointers and pointer definitions | |
US7219351B2 (en) | Multi-view conversion system and method for exchanging communications between heterogeneous applications | |
US9436719B2 (en) | Updating an inverted index in a real time fashion | |
CN102754411B (zh) | 使用客户端-服务器网桥管理对象 | |
US8589876B1 (en) | Detection of central-registry events influencing dynamic pointers and app feature dependencies | |
US20130318514A1 (en) | Map generator for representing interrelationships between app features forged by dynamic pointers | |
CN102253827A (zh) | 具有学习机制的糅合基础结构 | |
CN101421726A (zh) | 偶尔连接的应用服务器 | |
US20070282616A1 (en) | Systems and methods for providing template based output management | |
CN103329130A (zh) | 管理数据集合的更改 | |
CN103019718A (zh) | 在集中式源控制环境中使用分布式源控制 | |
CN1689298B (zh) | 用于自主计算的合成服务 | |
CN112148343B (zh) | 规则发布方法、装置及终端设备 | |
CN103946794A (zh) | 数据特征的滚动升级的系统和方法 | |
CN102317905A (zh) | 网络应用程序构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质 | |
JP2010525452A (ja) | モデル内の予想されるエンティティ関係の記述 | |
CN112364021B (zh) | 业务数据处理方法、装置及存储介质 | |
WO2012053219A1 (ja) | 分散型データベースシステムおよび分散型データ処理システム | |
CN101442503B (zh) | 处理组件更新消息的方法和设备 | |
CN1954587A (zh) | 分布式计算机 | |
CN101635711B (zh) | 可编程字符通讯方法 | |
US7283994B2 (en) | Merging of products into a database | |
CN101208662A (zh) | 用于移动数据系统的模块化的应用 | |
US7366727B2 (en) | Management of inbound conflicts when merging data of distributed systems | |
JP7381290B2 (ja) | 計算機システム及びデータの管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |