CN1647042A - 定制软件抽象的方法 - Google Patents
定制软件抽象的方法 Download PDFInfo
- Publication number
- CN1647042A CN1647042A CNA038088835A CN03808883A CN1647042A CN 1647042 A CN1647042 A CN 1647042A CN A038088835 A CNA038088835 A CN A038088835A CN 03808883 A CN03808883 A CN 03808883A CN 1647042 A CN1647042 A CN 1647042A
- Authority
- CN
- China
- Prior art keywords
- agent object
- function
- software application
- agent
- interface
- 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.)
- Pending
Links
Images
Classifications
-
- 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/465—Distributed object oriented systems
-
- 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
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/46—Indexing scheme relating to G06F9/46
- G06F2209/461—Bridge
Abstract
通过本发明的一个代理对象(图2的254)的实现抽象一个实体,包括在运行时供一个软件应用程序以程序设置的方式与该实体(202)互动的函数,以及可选的用于支持说明性代理对象定义类(204)的开发和定制的编译时和运行时实现类。在一个实施例中,提供用于辅助实现类的创建的构造器(214)和资源接口(216)。在一个实施例中,也提供方便代理对象(254)的实现的扩展的扩展接口(218)。包括代理对象函数(209)的程序设置方式的使用的软件应用程序,被编译成具有代理对象和元数据文件的目标码。编译后的目标码被用运行引擎(250)执行,运行引擎包括用于方便逐个方式的互动的代理上下文对象(258)和用于传送实体(202)的异步事件的异步事件路由器(256)。
Description
相关发明
本发明涉及临时申请号60/359,409的美国专利申请“A UNIFIEDFRAMEWORK FOR INTERACTING WITH EXTERNAL ENTITIES FROM APROGRAMMING LANGUAGE AND EXAMPLE APPLICATIONS”(申请日2002年2月22日),并要求其优先权,特此全文引用其详细说明作为参考。
发明领域
本发明涉及数据处理领域。更具体来说,本发明涉及软件互动(interaction)方法。
发明背景
在开发现代软件应用程序的过程中,开发者经常遇到与外观、感觉和性能不像熟悉的内部程序设计语言对象的外部实体。这些外部实体包括数据库、传统(legacy)系统、web服务、非本机(non-native)软件组件、以及(例如用于控制它们的设置的)物理对象。
一般来说,程序员必须学习用于与这些实体的每一个互动的新范例(paradigms)、技巧和技术。此外,程序员必须开发和获得可能是巨大部分的软件才能处理每一种外部实体的错综复杂。例如,编写与外部网络服务(web service)互动的软件,可能要求开发者掌握几种技术,包括可扩展标记语言(XML)、XML模式语言、XML协议(XP,也叫SOAP)和网络服务描述语言(WSDL)。
应用程序(applications)与之互动的每种外部实体,都需要开发者的一个不同的技巧、知识和软件集合。例如,与数据库互动需要有与外部网络服务互动完全不同的技巧、知识和软件集合。学习和实现用于与各种外部实体互动的技术所带来的额外负担增加开发软件应用程序所需的时间、知识、技巧以及终归的金钱。
所需要的是一种提供一致的对外部实体的使用(access)、重新使用开发者已有的通用软件概念的知识、并且最小化与每种外部实体互动所需的专业知识的简单软件抽象(abstraction)。这些软件抽象不但应当容易使用,而且也应当容易定制得适合特定用途,而无需多少或者不需要软件开发。软件抽象应当使得容易同时与外部实体的几个实例互动(例如用一个网络服务的几个实例同时为几个顾客进行信用审查。也应当简化对由一个外部实体的一个或多个实例生成的异步事件(例如数据库触发器(trigger))的处理。
例如考察图1的计算环境。所示的计算环境例子100包括服务器102、115、120和125,以及通过网络组织101通信地连接的客户机112。
服务器125例如提供电子商务应用程序130,各种客户装置的用户—例如客户112,可以用它来购买各种东西。电子商务应用程序130可以包括多个网页(web pages)131,网页具有诸如商品说明、评论和价格信息的内容以及一个或多个函数(functions)132。
作为补充,服务器102例如提供(例如在客户装置的用户与它们的网页/函数131/132互动时)由诸如电子商务应用程序130的电子商务应用程序使用的购物车服务104。因此,电子商务应用程序的开发者不需要开发他们自己的“购物车”函数,因此可以转而他们的努力专注于网页131内容上。
购物车服务104例如可以包括一个“向购物车中加一个东西”函数、一个“从购物车中去掉一个东西”函数、以及“结帐”函数。响应用户例如对网页131上显示的一个图形按钮的选择,函数132之一可以导致一个或多个对相应购物车函数的请求被生成并被发送到购物车服务104,供在服务器102上处理。
这些请求的处理,可能进而要求购物车函数例如与服务器115和120的服务118和128互动。服务118和128的例子是信用授权、存货或产品位置确认、出货/发货时间安排、等等。
因此,即使在这个有限的例子中,电子商务应用程序130的开发者也要装备应用程序130才能与外部的“购物车服务”104互动,而“购物车服务”104则要装备服务104才能与诸如信用授权、存货或产品位置确认、出货/发货时间安排等等的外部实体互动。
除了为便于这些互动所需的通用网络服务软件(例如XML,SOAP,WSDL)、每种网络服务(例如购物车、信用授权、运送)都要求编写专业软件来与它的特定功能部件(features)互动。例如,必须编写软件,以创建“向购物车添加东西”XML消息并将它发送到与正确的购物篮相关联的URL地址。此外,必须编写软件,以把由信用审查和运送服务返回的消息变换成可以向终端用户表示的形式。
如所属技术领域的熟练人员能理解的那样,通常,该例子要求与每个外部服务的几个实例同时发生的和异步的互动。例如,在任何时刻,一个电子商务应用程序130都可能正在接待(hosting)许多用户,每个用户有单独的购物车,内含不同的东西。购物车服务104进而可能正在为不同电子商务应用程序的不同用户的许多购物车处理购物车互动。同样,一个信用授权服务可能正在同时处理许多电子商务应用程序中出现的多个结账的授权请求。对这些交易的每一个的最终信用核准和运送安排的通知,可能在顾客已经完成他们的订单之后异步地进行(例如通过电子邮件)。很清楚,将与关系每个顾客的购物车、信用授权、运送细节和通知进行关联并与其他顾客的这些内容分开是很关键的,即使在同时处理几个顾客请求时也如此。处理所要求的关联和异步事件处理所需的软件可能变得相当复杂。
即使在这个相对简单的例子中,显然应用程序开发者一般也必须获得新的专业技巧、知识和软件才能与外部实体互动。他们必须经常创建用于与每个外部实体的特定形式互动的专用软件。他们也必须应对同时地和异步地与一个给定类型的实体的几个实例互动的复杂性。因此,需要一种提供一致的对外部实体的使用、简化为特定类型的外部实体创建专用软件抽象、并且方便同时地和异步地与外部实体的多个实例互动的简单软件抽象。
附图说明
现在将通过附图中所示的示例性实施例非限定地说明本发明。附图中相似的标注代表相似的元件,其中:
图1表示一例现有技术的计算环境;
图2表示按照一个实施例的本发明的总体;
图3表示按照一个实施例的为外部实体指定代理对象的方法;
图4表示按照一个实施例的、通过与一个标记代理-对象接口(marker proxy-object interface)的直接或间接的关联而限定一个软件对象是一个外部实体的代理对象的方法;
图5表示一例外部定时器(timer)的代理对象定义的详细说明(specification)例子;
图6更详细地表示按照一个实施例的、图2的代理对象实现;
图7表示按照一个实施例的一例限定(specify)可用于定制一个代理对象的行为(behavior)的元数据特性(meta-data properties)的语法的XML文档;
图8表示按照一个实施例的、本发明的包括使用外部实体的软件抽象的应用程序开发方法;
图9a-9c表示说明(declare)一个代理对象、设定它的特性和处理它的异步事件的详细说明的例子;
图10a表示一个用于一个外部实体的、通过定制其特性的默认值而扩展图5的代理对象定义的代理对象定义的详细说明的例子;
图10b表示一个通过说明一个新函数和相关联的缺生特性设定而扩展一个现有代理对象定义的代理对象定义的详细说明的例子;
图11a-11b表示按照本发明一个实施例的、图2的增强的编译器的相关方面的操作流程;
图12更详细地表示按照一个实施例的、图2的代理对象;
图13a表示按照本发明一个实施例的、图2的运行环境(runtimeenvironment)的相关方面的操作流程;
图13b表示一例执行流程;
图14a-c表示用于说明一个代理对象工厂、用一个代理对象工厂创建代理对象以及处理与生成的代理对象相关联的异步事件的详细说明;
图15表示按照本发明一个实施例的一例适合用来实践本发明的计算机系统。
具体实施方式
本发明包括用于简化作为用于与来自一个软件应用程序内的外部实体互动的软件抽象的代理对象的开发、定制和使用的方法和设备。
在以下的说明中,将说明本发明的各个方面。然而,所属技术领域的熟练人员将明白,只以本发明的一些方面或所有方面都能实现本发明。为了方便解释,陈述了具体的数字、材料和配置,以便于透彻地理解本发明。然而,对于所属技术领域的熟练人员来说,即使没有这些具体细节显然也可以实现本发明。在其它实例中,为了不妨碍对本发明的说明,省略或简化了众所周知的功能部件。
术语
说明书的各部分将以所属技术领域的熟练人员向该领域其他熟练人员传达他们工作的实质所通常采用的方式一致的方式,用数据处理术语进行表达,这些术语诸如有数据、选择、检索、生成、等等。正如所属技术领域的熟练人员所明白的那样,这些数量采取电、磁或光信号的形式,能被存储、传送、组合和以其它方式通过处理器和其子系统的电和/光部件被操纵。
说明书有的部分将采用各种缩略语,包括一但不限于:
URL(同一资源定位器)
XML(可扩展标记语言)
本申请(包括权利要求书)中所使用的术语“外部实体”,不仅指外部软件实体,也指硬件实体。“外部”是从与该实体互动的软件应用程序的角度来看的。
段落标题、说明和实施例的次序
段落标题仅仅用来改善可读性,不应认为它们限制或缩小本发明的范围。
各种操作将依次以分立的步骤的形式、以最有助于理解本发明的方式进行说明。然而不应认为说明的顺序意味着这些操作必然是与顺序相关的。特别地,这些操作并不需要按所陈述的顺序执行。
短语“在一个实施例中”被再三使用。该短语一般不是指相同的实施例,不过它可以指相同的实施例。术语“包含”、“有”和“包括”是同义词,除非上下文中另外指出。
概述
图2表示按照本发明一个实施例的、本发明的概述。如图所示,为了简化开发与外部实体202互动的软件应用程序240,本发明提供便于为外部实体202提供代理对象254的方法和装置,使得软件应用程序240可以用软件开发者熟悉的通用程序设计概念以程序设置的方式(programmatically)与外部实体202互动。
更具体来说,开发者可以为外部实体202创建一个代理对象定义204。该开发者可以是外部实体202的开发者,第三方开发者、甚至是应用程序240的开发者。
代理对象定义204包括确定根据对与外部实体互动的定义应被生成的一个代理对象254的接口说明(interface declaration)205。另外的代理对象定义204包括用于定义代理对象254的默认行为和默认实现(implementation)210的默认特性设置206、用于处理来自外部实体202的回叫说明(callback declarations)208和用于启动与外部实体202互动的函数说明(function declarations)209。
在一个实施例中,一个或多个代理对象实现类(implementationclasses)210包括一个运行时(run-time)实现类。在另一个实施例中,该一个或多个代理对象实现类210进一步包括一个编译时(compile-time)实现类。在另一个实施例中,实现类210进一步包括一个设计时(design-time)实现类。
运行时实现类为在代理对象说明204中所说明的并由软件应用程序码220使用的函数提供运行时实现,用于以程序设置的方式与外部实体202互动。运行时实现类可以提供一个或多个用于启动与外部实体202互动的内置(built-in)函数211和一个或多个用于处理由外部实体202生成的外部事件的内置回叫212。
可选的编译时实现类,提供编译时确认实现(validationimplementation),以在编译期间辅助编译器230确认由代理对象定义204和由应用程序码220对函数和特性设置的使用。
可选的设计时实现类提供用于辅助代理对象定义204和应用程序码220的开发者的设计时实现类。它辅助开发者以程序设置的方式扩展和使用由运行时实现执行的用于与外部实体202互动的特性和函数。这种设计时实现的一个例子包括—但不限于—一个图解魔板,它引导开发者在给定外部网络服务的WSDL说明的条件下创建该网络服务的代理对象定义。另一个例子是提供对应于代理对象定义204的函数的用法的图标,在为一个应用程序码220被选择时,它把对应的函数调用插入到该应用程序码220中。
对于所示的实施例来说,代理对象实现210可以实现一个或多个接口214-218。特别地,对于该实施例来说,代理对象实现210可以实现构造器接口(builder interface)214、资源接口(resourceinterface)216和可扩展接口(extensible interface)218。
构造器接口214可以由代理对象实现210的编译时组件实现,以辅助编译器230确认由代理对象实现210实现的特性和函数的使用。资源接口216可以由代理对象实现210的运行时组件实现,以获得和释放为代理对象实现所需要的关键资源,诸如数据库和文件柄(handles)。可扩展接口214可以由代理对象实现210的运行时组件实现,以使代理对象定义204能说明未内置到代理对象实现210的新函数。
仍然参看图2,一旦创建了代理对象定义204和代理对象实现210,应用程序码220的开发者就可以配备应用程序240,以通过包括代理对象说明222和调用在作为结果的代理对象上说明的函数209,启动与外部实体202的互动。应用程序码也可以包括定制代理对象的行为的特性设置223,或者包括处理由外部实体202生成的异步事件的事件处理程序(handlers)224。
按照本发明配备的软件应用程序码220、代理对象定义204和代理对象实现210,被用增强的编译器230编译成应用程序240、代理对象254和元数据252。
把编译器230加强,以认识代理对象定义204,生成使用代理对象实现210的相关联的代理对象254,用于方便在运行时与软件实体202的互动。编译器也生成为每个代理对象说明222创建一个代理对象的代理初始化码242,将该代理对象分配给被说明的变量,并向异步事件路由器256登记该代理对象,以接收由相关联的外部实体202生成的合适事件。进一步,编译器230被增强,以收集和输出描述特性对象定义204的接口、函数、回叫和特性设置的元数据252,在运行时供对应的代理对象254使用。
仍然参看图2,被编译的目标码在运行期间的执行,在运行引擎(run-time engine)250的控制之下。运行引擎250特别包括代理上下文对象(proxy context objects)258,为每个代理对象调用创建代理上下文对象的一个实例,用于与外部实体202的一个实例互动和维持该特定互动的状态信息。对于该实施例来说,互动上下文(interactioncontext)258包括许多方法,代理对象实现210可以通过这些方法获得关于某个互动的信息。
对于该实施例来说,如前所述,代理对象定义204可以说明一个或多个用于处理由对应的外部实体202生成的异步事件的回叫函数208。作为补充,运行引擎250包括异步事件路由器256,用于收听、接收和把由外部实体202生成的异步事件传送(routing)到适当的代理对象254,供由应用程序240的事件处理码246处理。异步事件路由器256所听的位置,由代理初始化码242根据代理对象实现210和相关联的特性设置204和223限定。
开发者可以用上述的机制创建应用程序码220,以通过调用在代理对象222上说明的函数、设定代理对象特性223和定义事件处理程序224,与外部实体202互动。以这种方式与外部实体互动,非常类似于与其它软件对象的互动,不要求开发者学习过多的范例、技巧和/或技术。此外,开发者甚至用新的函数和回叫、不必限定这些新函数和回叫的实现,就可以创建新的代理对象定义204。所得到的代理对象254与运行引擎250协作,处理多个与外部实体202同时发生的和异步的互动。
在各种实施例中,外部实体202可以是个web服务、数据库或传统系统、以及物理对象。
可选的设计时实现类的提供,不是实践本发明的一个根本方面。此外,这是在所属技术领域的那些熟练人员的能力范围之内的,因此将不作进一步的描述。下面将依次地进一步说明本发明的其它方面。
代理对象定义
图3进一步详细地表示按照本发明一个实施的、开发者或设计时工具为开发本发明的代理对象定义204所可能采取的操作。如图所示以及前文所示的那样,创建代理对象定义204所要采取的行动之一,是限定一个代理对象接口说明205,框302。
在一个实施例中,这是通过说明代理对象定义204扩展一个特殊的“代理对象”标记接口(图4的402)而完成的。如图4所示,标记接口402的扩展可以是直接的—如在代理对象定义404a-404b的情形中的那样,或者可以是间接的—如在代理对象定义404c-404i的情形中的那样。在编译时,增强的编译器230将通过寻找扩展标记接口402的接口来确定代理对象定义204,并将为每个这种接口生成代理对象。如果标记接口402的扩展是间接的,代理对象定义204将继承它扩展的其它代理对象定义的函数、特性和回叫(例如,代理对象定义404i将继承由代理对象404c和404a所定义的函数、特性和回叫)。
回过来参看图3,如图所示以及前文所示的那样,创建代理对象定义204所要采取的另一个行动是为该代理对象定义指定默认特性设置,框303。这些设置将在运行时被代理对象实现210用来决定代理对象254的行为。
此外,程序员或设计时工具可以任选地指定代理对象定义204的函数说明209,框304。应用程序码220可以用所说明的函数以程序设置的方式与外部实体202互动。函数说明209可以对应于代理对象实现210的内置函数211;或者,如果代理对象实现210实现可扩展接口214,则函数说明209可以导入未被代理对象实现210明确提供的新函数。
此外,程序员或设计时工具可以任选地限定代表可能是由外部实体202在运行时生成的异步事件的回叫函数说明208。回叫函数说明208可能对应于代理对象实现210的内置回叫函数212,在这种情况下,代理对象254将把由外部实体202生成的对应的异步事件传送(route)到代理对象实现210供处理(后者进而把它们传送到应用程序240的事件处理码246)。当回叫函数说明208不对应于代理对象实现210的内置回叫函数212时,代理对象254将把由外部实体202生成的对应的异步事件直接传送到应用程序240的事件处理码246。
此外,开发者或设计时工具可以限定代理对象定义204的实现类,包括运行时实现类、以及—可选地—编译时实现类和/或设计时实现类,块306。如果代理对象定义204扩展另一个限定实现类的代理对象定义,则不必限定实现类。在这种情况下,实现类详细说明是从扩展的代理对象定义继承的。
在一个实施例中,用特性设置构造实现类的详细说明。在一个实施例中,特性设置是以注解(annotation)形式限定的,即以传统上被认为是源文件的注解的形式限定的。
图5表示外部定时器实体的一例代理对象定义。所属技术领域的熟练人员将认识这是一个熟悉的Java接口定义,它扩展502行上的一个称作com.bea.jws.ProxyObject的现有接口并包括510-516行上的一些特殊的JavaDoc注释(comments)。通过限定Timer(定时器)接口扩展本发明的″ProxyObject″(代理对象)标记接口,Timer接口被标识为本发明的一个代理对象定义。在这种情况下,Timer接口直接地扩展ProxyObject标记接口;然而,也有可能如图4中所示地间接地扩展ProxyObject标记接口。
此外,Timer接口被限定有一个setTimeoutln(int milliseconds)函数504a、一个setTimeoutAt(java.util.Date date)函数504b、等等,供应用程序码220在n个消逝的时间单元后或者在特定的时刻设定一个“警报”(alarm)。
此外,Timer接口还包括一个回叫函数504c,用于在定时器于所请求的时间到点时,处理由外部实体202生成的警报事件,例如把警报事件异步地传送到应用程序240。在一个实施例中,回叫说明是在名为″Callback″(回叫)的嵌套接口中定义的函数,如图5中所示。
运行时、编译时和设计时实现类分别被指定为″com.bea.jws.private.TimerImpl″512″com.bea.jws.private.TimerValidator″514和″com.bea.jws.private.TimerDesigner″516。详细说明是用特性设置构造的。在一个实施例中,特性设置在注释段中以注解的形式被限定。如所属技术领域的熟练人员将认识到的那样,本例中的特性设置是用特殊的Javadoc注解@implementation(实现)510限定的。
代理对象实现
除了采用可扩展接口、资源接口和/或构造器接口214-218、使用代理上下文对象258以及实现符合预期的执行范例的装置外,无论运行时、编译时还是设计时的每个实现类的核心构造(coreconstitution)都是依赖于应用程序的。就是说,它们依赖于外部实体202的行为和所提供的服务,以及函数的性质。
然而,如前文指出的那样,运行时实现类被指望或者直接地通过内置函数211或者间接地通过可扩展接口218的″invoke″(调用)函数在本发明的执行上下文中实现代理对象定义204的函数。
图6更详细地表示按照一个实施例的代理对象实现210。如图所示,对于该实施例来说,代理对象实现210包括内置函数211、内置回叫函数212、构造器接口214、资源接口216和扩展接口218。
如前文所述的那样,构造器接口214在被一个编译时实现类实现时,辅助编译器230确认由代理对象实现204定义并由应用程序码220使用的特性受到代理对象实现210的支持。此外,构造器接口可以被一个集成的开发环境用来帮助开发者明白可以在哪里以及如何使用特性。
资源接口216在被一个运行时对象实现类实现时,辅助该运行时对象实现类获得和释放资源,诸如数据库连结和文件柄。
可扩展接口218在被一个运行时对象实现类实现时,使代理对象定义204能说明不被代理对象实现210直接支持的新函数,而不定义这些函数如何被实现。
对于所示的实施例来说,构造器接口218特别包括一个GetProperty Syntax(得到特性语法)函数602、Validate ClassProperties(确认类特性)函数604和Validate Field Properties(确认域特性)函数606。正如这些函数的名字所提示的那样,这些函数被调用时,返回代理对象的一个有效特性语法并确认代理对象的类和域级特性。
在一个实施例中,当Get Property Syntax函数602被调用时,返回一个标识一个文件的URL,该文件是由编译时实现类的开发者提供的,以一个XML文件的形式标识有效特性语法。
这样一个XML文件的片断的例子在图7中表示。如图所示,这种片断可以规定特性的名702a或702b、特性的属性(attributes)704a、704b或704c-包括是否它们是必需的、属性值的数据类型706以及它们的默认值708-如果适用的话。
对于该片断例来说,它规定″@sql″特性只被允许在代理对象定义函数208的前面,并且在此需要有该特性。@sql特性可以有statement(语句)、maxcount(最大计数)、以及returnType(返回类型)属性。statement属性是必需的。除非另外规定,否则所有属性都必须被赋值。Maxcount和returntype是任选的。Maxcount取整数值,默认值是infinity(无穷大)。除非另外规定,否则属性(诸如Statement和returntype)取串值,默认值是空串。允许@pool注解在代理对象说明222、代理对象定义函数209以及代理对象定义204的前面,并且在所有这些位置都是任选的。最后,@pool annotation可以有一个名字属性,它是必须出现的并且由一个串值。
在替代实施例中,可以以其它格式或者用其它数据组织技术提供和/或返回信息。
Get Property Syntax函数602、Validate Class Properties函数604和Validate Field Properties函数606的实现,在所属技术领域的熟练人员的能力范围内,因此将不作进一步的说明。
实现构造器接口218使编译时实现类能用这些函数来提供期望的语法以及为编译器验证元数据。
回过来参看图6,对于所示实施例来说,资源接口216包括一个Acquire Resource(获得资源)函数612和Release Resource(释放资源)函数614。正如这些函数的名字所提示的那样,函数612使代理对象实现210能在运行时创建一个代理的每个新实例之前获得该实现所需要的系统资源,诸如数据库连结和文件柄,函数614使代理对象实现210能在运行时破坏一个代理对象的每个实例之后释放资源。类似地,Acquire Resource函数612和Release Resource函数614的实现,在所属技术领域的熟练人员的能力范围内,因此将不作进一步的说明。
仍然参看图6,对于所示实施例来说,扩展接口214包括一个InvokeObject(调用对象)函数616.Invoke object函数616被设计得处理由代理对象定义204所说明的定制方法的调用。因此,代理对象定义204可以说明未被代理对象实现210的内置函数211明确地实现的新函数209。在运行期间,当应用程序码220调用新函数209时,代理对象254将把它们打送到代理对象实现210的invoke函数616。代理对象实现210的invoke函数616可以通过代理上下文对象258访问与代理对象调用244有关的名字、自变量(arguments)、返回类型、特性和其它元数据,以确定该invoke操作所需的语义(semantics)。该访问可以用例如与代理上下文对象258相关联的方法进行。
类似地,Invoke Object函数616的实现,在所属技术领域的熟练人员的能力范围内,因此将不作进一步的说明。
开发应用程序
图8表示按照一个实施例的、本发明的包括使用外部实体的软件抽象的应用程序开发方法。如图所示,在框801,首先创建一个代理对象实现210,其可选地包括内置函数、内置回叫、构造器接口实现、资源接口实现和/或可扩展接口实现。
然后在框802,创建一个代理对象定义204,其直接地或者通过另一个代理对象定义间接地扩展marker(标记)ProxyObject接口。如果代理对象定义直接地扩展marker ProxyObject接口,它例如用一个″implementation″(实现)属性规定相关联的代理对象实现210。一个间接地扩展markerProxyObject接口的代理对象定义,也可以规定一个相关联的实现,取代与它的基类(base class)相关联的实现。代理对象定义也可以规定新的默认特性质,并且如果实现210是可扩展的,可以规定新的函数和回叫。代理对象定义可以由应用程序220的开发者、代理对象实现210或者另一个独立第三方构造。如前文所述的那样,如果相关联的实现210实现可扩展的借口214,则代理对象定义204是可扩展的。下文将参照图10a-10b描述扩展例子。
在框804,应用程序220的开发者将一个或多个代理对象说明222插入引用代理对象定义204的应用程序码220中。正如前文指出的那样,代理对象定义204可以是例如由外部实体202的软件抽象的开发者提供的基(base)代理对象定义204,或者可以使代理对象定义204的一个定制版本。下文将参照图9a描述一例说明。
在框806,应用程序220的开发者限定代理对象定义204的特性中适合的特性的值。在一个实施例中,该详细说明以源文件的一个注释段内的注解为形式。下文将参照图9b描述一例详细说明。
插入代理对象说明222后,并且对于任何适合的代理代理对象说明、特性值,在框808,应用程序220可以用由代理对象定义204定义的、并由实现210直接用内置函数211或者间接通过可扩展接口218实现的函数,以程序设置的方式与外部实体202互动。
如前文指出的那样,应用程序220的开发者也可以为由外部实体202的软件抽象的异步事件生成函数生成和发送的异步事件指定一个处理程序。下文将参照图9c描述一例详细说明。
定制代理对象特性
图10a表示一个通过限定一个新的接口说明1002和新的默认特性设置1004而扩展图5中所示的Timer(定时器)接口例的简单代理对象定义204。图10a的StandardTimer代理对象定义继承由图5中的代理对象定义所定义的所有函数和特性,但是把@Timer的″timeoutln″属性的默认设置改变为30秒。因此,如果30秒是可接受的,使用StandardTimer的应用220将不必规定@Timer的″timeoutln″属性。
所属技术领域的熟练人员当然将认识到,上述例子故意简单化,以方便解释和易于理解。实践中,本发明的代理对象定义可以更广泛地定制默认特性设置。特别地,代理对象定义也可以定制与特性对象函数和回叫相关联的特性。此外,特性对象定义可以被连续地定制多次,就是说,一个被定制的对象定义,本身可以被进一步定制。
定制代理对象接口
当代理对象实现210实现可扩展接口214时,也可能通过增加新的函数说明209和回叫说明208定制相关联的代理对象定义204的接口。图10b表示一例通过说明一个名为getEmployeeData的新函数定制com.bea.jws.Database代理对象定义的、名为EmployeeDB的代理对象定义1020。1022行的接口说明205,说明EmployeeDB接口扩展com.bea.jws.Database接口,后者又扩展把EmployeeDB接口标识为本发明的代理对象定义的com.bea.jws.ProxyObject接口(未予示出)。这样,EmployeeData将继承在Database(数据库)代理对象定义中说明的所有特性设置、函数和回叫,以及它扩展的所有代理对象定义。
1028行是一个把函数getEmployeeData添加到从Database(数据库)代理对象定义继承的现有函数列表的函数说明。这个函数可以被应用程序240在运行时调用,以与由代理对象1020描述的外部的Employee(职员)数据库互动。然而要注意的是,代理对象定义或代理对象实现哪一个都不特别地限定getEmployeeData函数。关于在运行时究竟如何处理对由代理对象说明204说明的函数209的调用的细节,在下文中进一步说明。
1026行是描述getEmployeeData函数所需的语法的特性设置,1024行定义由getEmployeeData函数返回的EmployeeRecord数据结构。所有接口说明205、特性设置206、回叫说明208、函数说明209和相关联的定义(例如EmployeeRecord数据结构),都被编译器230存储在元数据252中,并可通过代理上下文对象258的在运行时用于代理对象254。这个元数据辅助代理对象254和代理对象实现210提供由代理对象定义204所说明的函数208和回叫209的实现。
使用代理对象
图9a表示一例如在应用程序码220中可能找到的代理对象说明222。902行说明一个名为theTimer的新代理对象,它实现图5中的com.bea.jws.Timer代理对象定义。
图9b表示一个几乎相同的一例代理对象说明,它带有被设定为30秒的@Timer特性的timeoutln属性,904。在这个例子中,timeoutln特性的值是以一个注解段中的Javadoc注释的形式规定的。应用程序码220调用关于这个对象的函数,以与相关联的外部定时器实体互动。此外,应用程序码220的开发者可以为外部实体202生成的异步事件指定处理程序。
图9c表示这样一例处理异步超时(timeout)事件通知的异步事件处理程序906。在这个例子中,处理程序被编写成应用程序码220中一个特别命名的函数。函数名的构成方式是,把要被处理的异步事件名(即″ontimeout″)附接到相关联的代理对象的名(即″theTimer″)。如在下文将看到的那样,在运行时,代理对象254将把异步事件传递到应用程序240中的适当的时间处理码246。
编译时
图11a-11b表示按照本发明一个实施例的、编译器230的有关方面的操作流程。首先如图11a所示,在框1102,编译器230分析应用程序码220的源语句,以确定源语句中存在的语言元素。特别地,编译器230通过寻找为实现起源于代理对象标记接口402而说明的对象而确定是否在应用程序码220中包含本发明的任何代理对象说明,框1104。
如果找不到本发明的代理对象说明,就像编译现有技术中的其它软件实体那样编译应用程序码220,框1106。这个编译的准确的性质与语言和编译器实现有关。
如果找到至少一个本发明的代理对象说明,编译器230就收集为描述本发明的代理对象说明所需的元数据,框1108。
在一个实施例中,元数据收集操作包括从应用程序码220中识别和抽取特性设置223,以及从所有相关联的代理对象定义204中—包括从在代理对象说明222中所标识的代理对象定义所源自的代理对象定义中—识别和抽取默认特性设置204。此外,元数据收集还包括从所有相关联的代理对象定义204中识别和抽取被说明的接口205的名和签名,以及代理对象实现210的内置函数211和内置回叫212的名和签名。
在一个实施例中,特性设定是用应用程序码220和代理对象定义204的源文件的注解段中的Javadoc注释形式限定的。编译器230包括一个负责分析应用程序码220和代理对象定义204的源文件的注解段中的特性处理器(未予示出)。
在一个实施例中,编译器230的特性处理器也要进行与编译时实现类的协商,以确认特性设置和相关联的特性被代理对象实现210实现和允许。在一个实施例中,该协商是通过构造器接口218的函数实现的。
收集好为描述本发明的代理对象说明所需的源数据后,编译器230输出一个或多个含有所收集的元数据的元数据文件252,框1110,供由对应的代理对象254在运行期间使用。
然后,编译器230为与代理对象说明222相关联的(即被代理对象说明222引用的)每个代理对象定义204生成一个代理对象254,以方便应用程序240与外部实体202之间的互动。这个过程在下文参照图11b作更详细地说明。
此外,编译器230为每个代理对象说明222生成代理初始化码242,框1114。在运行时,代理初始化码242的每个实例创建一个实现在相关联的代理对象说明222中所标识的接口的代理对象,把该代理对象分配到在相关联的代理对象说明222中所标识的代理对象变量,并向异步事件路由器256登记该代理对象,以从相关联的外部实体202接收所有异步事件。
然后,编译器230如现有技术中的那样编译其余的应用程序码220,插入代理初始化码242,以在相关联的代理调用码244和事件处理码246之前运行,框1106。编译的方式与语言和编译器实现有关。
此外,属性处理在本领域的技术人员能力之内,不需要进一步描述。
图12更详细地表示由编译器230生成的代理对象254。代理对象254包括由代理对象说明204所说明的、在图12中用黑圈表示的函数接口1222-1224和回叫接口1226-1228。此外,代理对象254还包括代理对象实现210-包括在图12中用白圈表示的内置函数211和内置回叫212。如果代理对象实现扩展的接口216,则代理对象实现也包括用于处理对没有对应的内置函数211的函数接口1224的调用的invoke函数616。
此外,代理对象254和代理对象实现210能通过描述相关联的代理对象定义204(包括接口说明、特性设置、回叫说明和函数说明)和特性设置223的代理对象上下文258,访问元数据252。这个元数据可以在运行时被用来确定所需的对没有对应的内置函数211的函数接口1224的调用的语法。在一个实施例中,通过调用由运行引擎250提供的全局函数getProxyContext(),获得一个对代理对象上下文258的引用。在运行时,getProxyContext()函数将按下文进一步说明的那样,返回与当前代理对象调用相关联的代理对象实例。
如前文所述的那样,在各种实施例中,代理对象上下文258包括各种用于方便“上下文”信息的访问的方法。在一个实施例中,这些方法包括一个用于取得元数据的getMetaData()方法,一个用于取得特定特性值的getattribute()方法。元数据例如可以包括与代理对象函数和回叫相关联的方法、自变量、域和/或注释。
在一个实施例中,代理对象上下文258也包括一个用于方便获得代理对象实例的独有ID的getInstanceID(),以及一个用于向应用程序240发送异步事件的sendEvent()。在一个实施例中,sendEvent()通过把事件的名附接在代理对象说明中指定的代理对象变量,确定要调用的合适的事件处理程序246。它从元数据252中抽取事件名和代理对象变量名。这些方法的实现,在所属技术领域的熟练人员的能力范围内,因此将不作进一步说明。在可替代的实施例中,可以用更多或更少的与代理对象上下文258相关联的方法实践本发明。
如前文所述的那样,在框1112,编译器230生成代理对象254,更具体来说,用从应用程序码220、代理对象定义204和代理对象实现210中收集的对象,生成代理对象254。如图11b中所示,它为在代理对象实现210中有一个对应内置函数211的代理对象定义204的每个函数说明209,生成一个代理对象函数1222,框1122。代理对象函数1222的每个实现,简单地调用代理对象实现210中的内置函数211传入provide(提供)参数并返回结果。
如果代理对象实现210实现可扩展接口214,编译器230也为在代理对象实现210中没有一个对应内置函数211的代理对象定义204中的每个函数说明209,生成代理对象函数1224,框1124。代理对象函数1224的每个实现,调用“invoke”函数616传送所提供的参数的列表,并返回结果。
类似地,编译器230为在代理对象实现210中有一个对应的内置回叫212的代理对象定义204的每个回叫说明208,生成代理对象回叫函数1226,框1126。回叫函数1226的每个实现,简单地调用对应的内置回叫212传送所提供的参数并返回任何结果。
此外,对于在代理对象实现210中没有对应的内置回叫212的代理对象定义204的每个回叫说明208,编译器230确定是否在应用程序240中存在一个用于处理该回叫(call back)的适当的事件处理程序246,框1128。如果存在适当的事件处理程序246,编译器230生成一个代理回叫函数1228,该代理回叫函数调用该适当的事件处理程序246传入(passing in)所提供的参数并返回由事件处理程序生成的任何结果,框1128。如果不存在适当的事件处理程序,编译器230生成一个错误,框1128。在一个实施例中,编译器230通过在应用程序240中搜索一个具有一个特殊名的函数而标识(identifies)该适当的事件处理程序并确定它的存在,该特殊名是通过把相关联的事件的名附接到在代理对象说明中限定的相关联的代理对象变量而构成的。该适当的事件和代理对象变量的名,是从元数据252中抽取的。
运行时
图13a表示按照本发明一个实施例的运行引擎(runtimeengine)250的相关操作流程。当运行引擎250最初被实例化时,它初始化运行环境,特别是包括异步事件路由器256的实例的创建,框1302。在一个实施例中,异步事件路由器256是一个服务器部件,它收听使用各种网络协议的消息并把它们转发到已经(例如根据消息地址或内容)为具有匹配的特征的事件登记的客户机(clients)。在一个实施例中,异步事件路由器256是一个Java小应用程序,它收听使用因特网协议—诸如HTTP-的XML消息。在一个实施例中,事件路由器256收听使用排队协议—诸如JMS-的消息。
运行引擎250的另外的非实质性的详细资料可以在共同待审定美国专利申请″ANNOTATION BASED DEVELOPMENT PLATFORM FORASYNCHRONOUS WEB SERVICES″(申请号10/082,807,申请日2002年2月22日)中找到。该申请与本申请具有至少部分共同的申请人,特此完整引用其详细说明作为参考。
运行环境一初始化,运行引擎250就等待要求执行应用程序的请求,框1304。在框1306,运行引擎250被请求执行加载应用程序240(或者,如果该应用程序因为更早的执行请求已经在以前被加载,则创建该应用程序的一个新实例)。在加载和/或创建应用程序220的实例后,运行引擎250“执行”应用程序220,或者更具体来说,把执行控制转移到应用程序220。
图13b表示按照本发明一个实施例的一个典型的执行流程。如由编译器230所指明的那样,如果应用程序240包括代理初始化码242等等,代理初始化码242在代理调用码244和事件处理码246之前执行。
如前文所述的那样,代理初始化码242为每个代理对象说明222实例化一个代理对象,把该代理对象分配给在代理对象说明222中指定的相关联的变量,框1312。然后,代理初始化码242登记在相关联的代理对象定义204中说明的并由代理对象254实现的所有回叫函数208,以异步事件路由器256作为来自外部实体202的异步事件的处理程序,框1314。
之后,代理引擎250继续执行应用程序240。在执行过程中,如果应用程序240有与外部实体互动的需要,它用在代理对象说明222中说明的相关联的变量调用代理对象函数1222-1224,框1318。如由编译器230所指明的那样,代理对象函数1222-1224用一个函数调用ID生成一个与被调用函数相关联的代理上下文258的实例。在一个实施例中,为每个函数调用创建一个单独的线程,并把线程ID用作函数调用ID。
函数2222进一步调用代理对象实现210的相关联的内置函数211,框1318。内置函数211因每个代理对象实现210而异,在很大程度上与相关联的外部实体202的性质有关。如果提供的话,代理对象函数1224调用代理对象实现210的”invoke”函数616。
在一个实施例中,内置函数通过因特网或讯息传递协议(messagingprotocols)向外部实体202发送消息,然后等待响应。在一个实施例中,如果接收到一个响应,内置函数211返回一个代表性的结果,后者又被代理对象函数1222返回给应用程序240内的代理调用码244。在一个实施例中,内置函数包括为方便由外部实体202生成的回叫事件的生成和传送而发送给外部实体202的消息中的一个回叫位置和代理对象实例。
内部函数211和可扩展接口218的“invoke”函数616二者都可以含有对当前代理上下文258的一个引用,用于通过调用由运行引擎250提供的全局getProxyContext()函数而访问元数据252。getProxyContext()函数根据与当前函数调用相关联的调用ID寻找并返回时当的内容对象。在一个实施例中,为每个函数ID创建一个单独的线程,并且当前调用ID与当前线程ID相同。
像内置函数211一样,invoke函数616因每个代理对象实现210而异,在很大程度上与相关联的外部实体202的性质有关。在一个实施例中,invoke函数616通过代理上下文对象258访问元数据252,已确定所需的代理对象函数1224的语法,然后向外部实体202发送消息,可选地等待一个响应,并把一个代表性的结果返回给代理对象函数1224,代理对象函数1224进而把该结果返回给应用程序240中的代理调用码244。在一个实施例中,invoke函数616包括为方便由外部实体202生成的回叫事件的生成和传送而发送给外部实体202的消息中的一个回叫位置和代理对象实例。
外部实体240一接收到来自应用程序的请求,就以独立于应用程序的方式处理该请求,并可选地记录由该请求提供的一个回叫地址和实例标识符。外部实体202可以生成可由异步事件处理程序256检测到的异步事件,并可以指定所记录的回叫地址和实例标识符,以方便事件的处理。在一个实施例中,外部实体202以消息的形式向异步事件路由器256提供异步通知。
在框1320,当异步事件路由器256检测到来自外部实体202的事件时,它检查它的登记的处理程序的列表,并调用指定代理对象的指定回叫函数1226-1228传送该事件的一个代表作为一个参数集合。在一个实施例中,异步事件路由器256用被提供的回叫位置来标识哪个登记的处理程序和回叫函数应当处理该事件。在一个实施例中,异步事件路由器256用被提供的实例标识符来确定所标识的处理程序的哪个实例应当接收该回叫。
如由编译器230所指明的那样,在框1324,代理对象回叫1226调用代理对象实现210的相关联的内置回叫212传送任何所提供的参数,框1332。内置回叫212因每个代理对象实现210而异,在很大程度上与相关联的外部实体202的性质有关。
在一个实施例中,内置回叫212可以调用应用程序240中的一个适当的事件处理程序246传送被提供的参数,并可选地等待一个响应,框1322。
内置回叫212一旦收到一个对外部实体202的事件的响应,就把任何被返回的结果返回给代理对象回叫函数1226,代理对象回叫函数1226把它返回给异步事件路由器252,异步事件路由器252把结果提供给外部实体202,框1324。在一个实施例中,该结果以一个代表性消息的形式被返回到外部实体。
也如编译器所指明的那样,代理对象回叫1228没有对应的内置函数212,因此,被直接转发到适当的事件处理程序246,而任何对应的结果则被可选地通过代理回叫函数1228和异步事件路由器256返回到外部实体202,框1324。
在一个实施例中,适当的事件处理程序246被标识为在应用程序中定义的特别命名的函数。在一个实施例中,通过把对应于回叫说明208的代理回叫函数1226-1228的名附接到在应用程序马220中的代理对象说明222中说明的代理对象的名,确定这个命名规则(namingconvention)。
管理N路(N-Way)关系
对于有些应用程序来说,有管理与一个外部实体的n路的互动的需要。就是说,一个单一的应用程序240可能需要同时与外部实体202的多个实体互动。根据运行时数据,所需的实例的个数可能不同;因此也许在编写应用程序码220时不可能确定将需要多少个代理对象实例。例如,某应用程序实例可能需要分解一个购买订单的行项目(lineitems),并为每个行项目与外部实体的一个不同实例进行并发的谈话(conversation)。
在各种实施例中,为了满足这种需要,应用程序开发者可以在代理对象说明222中规定一个代理对象工厂(factory)而不是规定单一的代理对象。对于这些实施例来说,编译器230自动地为每个代理对象254生成一个“工厂类”(factory class)。例如,为一个名为MyService的代理对象,自动地生成一个名为MyServiceFactory的工厂类(未予单独地示出)。图14a表示在一个实施例中的一例对应于图5中所示的″Timer″代理对象定义的代理对象工厂说明。
在这些实施例的一些或全部中,自动生成的代理对象工厂可以包括一个用来使应用程序240能控制对新的代理对象实例的创建的create()函数和一个用来使应用程序240能控制对以前创建的代理对象实例的破坏的destroy()函数。这样,应用程序240在运行时就可以创建要多少有多少的代理对象的实例。图14b表示应用程序码202如何能用一个实施例中的creates(创建)函数生成”Timer”代理对象的一个新实例并用生成的代理对象与相关联的外部实体互动。
每个自动生成的代理对象工厂都可以被软件应用程序用来与一个n路互动中的对应的外部实体互动,其方式犹如前文参照图9a-9c所述的单一互动的情形中的一样。代理对象工厂的行为犹如注释(即使用说明)就在由代理对象工厂创建的实例的前面一样。
为了方便正确的异步事件传送,应用程序码220的开发者用代理对象工厂的名而不是代理对象变量名来命名相关联的事件处理程序224。此外,开发者还限定一个“proxy object instance”(代理对象实例)为每个事件处理程序224的一个预定的参数,例如第一个参数。代理对象254将为每个回叫事件提供适当的代理对象实例,这样,应用程序240就可以确定外部实体202的哪个实例生成了事件,并用被提供的代理对象实例与它互动。图14c表示一个实施例中的一个事件处理程序224,这是为处理由在图14a中说明的名为″manyTimers″的代理对象工厂生成的Timer代理对象中的异步事件而开发的。如图所示,在调用时,第一个字变量”t”将引用与生成该事件的外部实体的实例相关联的Timer代理对象的特定实例。
计算机系统举例
图15表示按照一个实施例的一例适合用于实施本发明的计算机系统。视各种元件的大小、功能或能力,示例计算机系统1500可以被用来在运行期间寄放外部实体202的软件抽象、和/或外部实体202的软件抽象的实现。示例计算机系统1500也可以被用作开发以程序设置的方式与外部实体202互动的应用程序220一包括编译该程序的、或者在运行期间执行应用程序240的主机系统。
如图所示,计算机系统1500包括一个或多个处理器1502和系统内存1504。此外,计算机系统1500还包括海量存储装置1506(诸如磁盘、硬驱、CDROM等等)、输入/输出装置1508(诸如键盘、光标控制器等等)和通信接口1510(诸如网络接口卡、调制解调器等等)。这些元件通过代表一个或多个总线的系统总线1512互相连接。如果有多个总线,这多个总线由一个或多个桥接器(未予示出)桥接。
这些元件的每一个执行它在现有技术中已知的传统功能。
特别地,系统内存1504和海量存储器1506存储实现本发明的的各个方面的程序指令的工作副本和永久副本,即外部实体202的抽象、软件抽象的实现210、应用程序220、编译器230、和/或运行引擎250。程序指令的永久副本,可以通过例如发布介质(未予示出)或通过通信接口1510(来自(未予示出的)发布服务器),在工厂或者在现场被装入海量存储器1506中。
这些元件1502-1512的构造是已知的,因此将不作进一步说明。
结语
因此,从以上说明中可见,已经说明了一种用于简化用于与一个软件应用程序内的外部实体的互动的软件抽象的开发、定制和使用的新颖方法和设备。本发明的优点是辅助软件开发者开发与各种其它外部实体互动的软件,而不必需要软件开发者学习大量的范例或获得大量的新技术。
尽管以上述的实施例说明了本发明,所属技术领域的熟练人员将认识到,本发明并不限于所描述的实施例。在本发明的精神和范围内实践本发明可以有修改或改变。因此应当认为详细说明对本发明是示例性的而非限制性的。
Claims (80)
1.一个计算环境,包含:
一个定义为方便一个软件应用程序与一个实体互动而要被生成的一个代理对象的代理对象定义,该代理对象定义标识该代理对象的至少一个实现,该代理对象的实现具有一个或多个用于方便该应用程序以程序设置的方式与该实体互动的内置函数;和
该代理对象的实现。
2.权利要求1的计算环境,其中,该代理对象定义进一步包括一个说明该代理对象定义以直接和间接方式中被选择的一种方式扩展一个标记接口的说明。
3.权利要求1的计算环境,其中,该代理对象定义进一步包括一个说明一个用于方便在运行期间由该实体生成的一个或多个异步事件的处理的回叫的说明。
4.权利要求1的计算环境,其中,
该代理对象实现支持一个或多个可设置的特性;和
该代理对象定义包括一个或多个限定对该一个或多个可设置特性的设置的设置详细说明。
5.权利要求1的计算环境,其中,该代理对象实现进一步实现一个构造器接口,用于在该软件应用程序的编译期间辅助至少确认为与该实体互动而由该软件应用程序对该代理对象实现的内置函数的使用。
6.权利要求1的计算环境,其中,该代理对象实现进一步实现一个资源接口,用于为要被生成的代理对象配备获得和释放运行时资源的能力。
7.权利要求1的计算环境,其中,该代理对象实现进一步实现一个可扩展接口,用于使该代理对象实现能被扩展。
8.一种编译器,包含:
一个用于分析一个源形式的软件应用程序的分析器,包括分析逻辑,用于辨别和理解一个定义为方便一个软件应用程序与一个实体互动而要被生成的一个代理对象的代理对象定义,该代理对象定义标识该代理对象的至少一个实现,该代理对象的实现具有一个或多个用于方便该应用程序以程序设置的方式与该实体互动的内置函数;和
一个与该分析器相连的生成器,用于至少部分地根据所述分析的结果、该代理对象定义以及该代理对象的实现,生成可执行形式的该软件应用程序和该代理对象。
9.权利要求8的编译器,其中:
该分析逻辑包括用于辨别和理解该代理对象实现的一个或多个可设置特性的设置详细说明的逻辑;和
该生成器包括用于生成包括所述的该代理对象实现的一个或多个可设置特性的设置详细说明的一组元数据的生成逻辑。
10.权利要求8的编译器,其中,该生成器包括用于随同该软件应用程序的可执行形式包括用于在该软件应用程序的执行期间实例化该代理对象的代理实例化码的生成逻辑。
11.权利要求10的编译器,其中,该代理初始化码被配备得向一个变量分配该代理对象的一个实例,并为接收该实体的异步事件的通知登记该代理对象。
12.权利要求10的编译器,其中,该生成逻辑被设计得随同该软件应用程序的可执行形式包括该代理实例化码,其方式要确保在该代理对象的实现的函数由该软件应用程序为与该实体互动而作的任何程序设置方式的使用之前,该代理实例化码被执行。
13.权利要求8的编译器,其中,该生成器包括用于随同该软件应用程序的可执行形式包括用于接收该代理对象的实现的内置函数的程序设置方式的调用的一个或多个接口函数的生成逻辑。
14.权利要求13的编译器,其中,该生成逻辑被配备得为该代理对象的实现的每个内置函数生成该代理对象的一个接口函数,其中每个接口函数调用对应的内置函数来与该实体互动。
15.权利要求8的编译器,其中,该生成逻辑被配备得为该代理对象的实现的每个每个增加的非内置函数生成该代理对象的一个接口函数,其中每个接口函数调用一个特殊的调用函数,以为对应的增加的非内置函数完成与该实体的互动。
16.权利要求15的编译器,其中,该特殊的调用函数被配备得访问该代理对象的、包括描述该增加的非内置函数的配对(companion)元数据,用于理解要为之完成该特殊调用函数的、该软件应用程序与该实体之间的互动。
17.权利要求8的编译器,其中,该生成器被配备得随同所生成的代理对象包括一个特殊的调用函数,以为该代理对象说明的一个实现的增加的非内置函数完成与该实体的互动。
18.权利要求8的编译器,其中,该生成器被配备得进一步生成该代理对象的、描述该代理对象的选定的方面的配对元数据。
19.权利要求8的编译器,其中,该生成器被配备得进一步根据该代理对象生成一个代理对象工厂,以方便软件应用程序与该实体之间的n路互动。
20.权利要求8的编译器,其中,该生成器包括生成逻辑,用于随同所生成的代理对象包括一个或多个用于从该实体的一个异步事件路有器接收异步事件的报告的接口回叫函数。
21.权利要求20的编译器,其中,该生成逻辑被配备得为该代理对象的一个实现的每个内置回叫生成一个代理对象接口回叫函数,其中每个接口回叫函数为被报告的异步事件要被对应的内置回叫处理而调用对应的内置回叫函数。
22.权利要求20的编译器,其中,该生成逻辑被配备得为该代理对象说明的一个实现的每个增加的非内置回叫生成一个代理对象接口回叫函数,其中每个接口回叫函数为被报告的异步事件要被软件应用程序的一个对应的事件处理程序处理而调用该件应用程序的该对应的事件处理程序。
23.一种计算环境,包含:
一个编译器,用于将一个软件应用程序从源形式编译成可执行的形式,包括生成一个配对的代理对象,用于方便该软件应用程序与一个实体互动,源形式的软件应用程序包括程序化表达的、采用该代理对象的一个实现的函数与该实体的互动;和
一个运行引擎,用于方便该可执行形式的软件应用程序以及该代理对象的执行,该运行引擎包括一个异步事件路由器,用于通过该代理对象向该实体的软件应用程序报告异步事件。
24.权利要求23的计算环境,其中,该编译器被配备得能分析源形式的该软件应用程序,包括分析逻辑,用于辨别和理解至少从以下选择的一个:一个该代理对象的使用的说明、该代理对象的一个实现的一个特性的一个设置详细说明、以及一个限定用于为该实体而被报告的事件的事件处理程序的处理程序详细说明。
25.权利要求23的计算环境,其中,该编译器被配备得至少部分地根据分析源形式的软件应用程序的结果、代理对象的定义和代理对象的实现,生成可执行形式的软件应用程序和配对的代理对象。
26.权利要求23的计算环境,其中,该编译器包括用于随同该软件应用程序的可执行形式包括用于在该软件应用程序的执行期间实例化该代理对象的代理实例化码的生成逻辑。
27.权利要求23的计算环境,其中,该编译器包括用于随同被生成的代理对象包括用于接收该代理对象的实现的内置函数的程序设置方式的调用的一个或多个接口函数的生成逻辑。
28.权利要求23的计算环境,其中,该编译器被配备得随同所生成的代理对象包括一个特殊的调用函数,以通过该代理对象的实现的增加的非内置函数完成与该实体的互动。
29.权利要求23的计算环境,其中,该编译器被配备得进一步生成该代理对象的、描述该代理对象的选定的方面的配对元数据。
30.权利要求23的计算环境,其中,该编译器被配备得进一步根据该代理对象成一个代理对象工厂,以方便软件应用程序与该实体之间的n路互动。
31.权利要求23的计算环境,其中,该编译器包括生成逻辑,用于随同所生成的代理对象包括一个或多个用于从该实体的一个异步事件路有器接收异步事件的报告的接口回叫函数。
32.一种运行环境,包含:
一个加载器,用于加载一个可执行形式的软件应用程序供执行,该软件应用程序包括为方便一个代理对象的初始化而被包括的代理初始化码,该代理对象的实现包括该软件应用程序以程序设置的方式用来与一个实体互动的函数;和
一个异步事件路由器,用于通过该代理对象向该软件应用程序报告该实体的异步事件。
33.权利要求32的运行环境,其中,该代理对象包括一个或多个用于以程序设置的方式接收该代理对象的实现的函数的调用的接口函数。
34.权利要求32的运行环境,其中,该代理对象的实现包括一个特殊的调用函数,用于通过该代理对象的实现的增加的非内置函数完成与该实体的互动。
35.权利要求32的运行环境,其中,该代理对象有一个描述该代理对象的选定的方面的配对元数据,包括该代理对象的实现的设置和可配置特性。
36.权利要求32的运行环境,其中,该代理对象有一个根据该代理对象的代理对象工厂,用于方便该软件应用程序与该实体之间的n路互动。
37.权利要求32的运行环境,其中,该异步事件路由器被配备得收听由该实体报告的异步事件。
38.权利要求37的运行环境,其中,该异步事件路由器被配备得将所检测到的由该实体报告的异步事件报告给该代理对象的接口回叫函数中被选择的接口回叫函数。
39.权利要求38的运行环境,其中,接口回叫函数中被选择的接口回叫函数包含该代理对象的一个默认的实现的一个内置回叫的一个接口回叫函数,其中该接口回叫函数为被报告的异步事件要被一个对应的内置回叫处理而调用该对应的内置回叫函数。
40.权利要求38的运行环境,其中,接口回叫函数中被选择的接口回叫函数包含该代理对象的该实现的一个增加的非内置回叫的一个接口回叫函数,其中该接口回叫函数为被报告的异步事件要被该软件应用程序的一个对应的事件处理程序处理而调用该该软件应用程序的该对应的事件处理程序。
41.在一个计算环境中的一种方法,包含:
定义一个为了方便一个软件应用程序与一个实体互动而要被生成的代理对象,包括该代理对象的至少一个实现的标识,该实现具有一个或多个用于方便该软件应用程序以程序设置的方式与该实体互动的函数;和
提供该代理对象的该实现。
42.权利要求41的方法,其中所述定义进一步包括以一个标记接口的直接扩展和间接扩展中的选定的一个说明该代理对象的定义。
43.权利要求41的方法,其中所述定义进一步包括说明一个用于在运行期间处理由该实体生成的一个或多个异步事件的回叫。
44.权利要求41的方法,其中
被提供的代理对象实现支持一个或多个可设置特性;和
所述定义进一步包括说明一个或多个用于限定该一个或多个可设置特性的一个或多个设置的设置详细说明。
45.权利要求41的方法,其中所述提供包含一个实现一个构造器接口的代理对象实现,该构造器接口用于在该软件应用程序的编译期间辅助至少确认为与该实体互动而由该软件应用程序对该代理对象实现的内置函数的使用。
46.权利要求41的方法,其中所述提供包含一个实现一个资源接口的代理对象实现,该资源接口用于为要被生成的代理对象配备获得和释放运行时资源的能力。
47.权利要求41的方法,其中所述提供包含一个实现一个可扩展接口的代理对象实现,该可扩展接口用于使该代理对象实现能被扩展。
48.一种软件编译方法,包含:
分析一个源形式的软件应用程序,包括辨别和理解一个定义为方便一个软件应用程序与一个实体互动而要被生成的一个代理对象的代理对象定义,该代理对象定义标识该代理对象的至少一个实现,该代理对象的实现具有一个或多个用于方便该应用程序以程序设置的方式与该实体互动的内置函数;和
至少部分地根据所述分析的结果、该代理对象定义以及该代理对象的实现,生成可执行形式的该软件应用程序和该代理对象。
49.权利要求48的软件编译方法,其中
所述分析包含辨别和理解该代理对象实现的一个或多个可设置特性的设置详细说明;和
所述生成包含生成包括所述的该代理对象实现的一个或多个可设置特性的设置详细说明的一组元数据。
50.权利要求48的软件编译方法,其中,该所述生成包含随同该软件应用程序的可执行形式包括用于在该软件应用程序的执行期间实例化该代理对象的代理实例化码。
51.权利要求50的软件编译方法,其中,该代理初始化码被配备得向一个变量分配该代理对象的一个实例,并为接收该实体的异步事件的通知登记该代理对象。
52.权利要求50的软件编译方法,其中,所述生成进一步包含随同该软件应用程序的可执行形式包括该代理实例化码,其方式要确保在该代理对象的实现的函数由该软件应用程序为与该实体互动而作的任何程序设置方式的使用之前,该代理实例化码被执行。
53.权利要求48的软件编译方法,其中,所述生成包含随同该软件应用程序的可执行形式包括用于接收该代理对象实现的内置函数的程序设置方式的调用的一个或多个接口函数。
54.权利要求53的软件编译方法,其中,所述生成包含为该代理对象的实现的每个内置函数生成该代理对象的一个接口函数,其中每个接口函数调用对应的内置函数来与该实体互动。
55.权利要求48的软件编译方法,其中,所述生成包含为该代理对象的实现的每个每个增加的非内置函数生成该代理对象的一个接口函数,其中每个接口函数调用一个特殊的调用函数,以为对应的增加的非内置函数完成与该实体的互动。
56.权利要求55的软件编译方法,其中,该特殊的调用函数被配备得访问该代理对象的、包括描述该增加的非内置函数的配对元数据,用于理解要为之完成该特殊调用函数的、该软件应用程序与该实体之间的互动。
57.权利要求48的软件编译方法,其中,所述生成包含随同所生成的代理对象包括一个特殊的调用函数,以为该代理对象说明的一个实现的增加的非内置函数完成与该实体的互动。
58.权利要求48的软件编译方法,其中,所述生成包含生成该代理对象的、描述该代理对象的选定的方面的配对元数据。
59.权利要求48的软件编译方法,其中,所述生成包含根据该代理对象生成一个代理对象工厂,以方便软件应用程序与该实体之间的n路互动。
60.权利要求48的软件编译方法,其中,所述生成包含随同所生成的代理对象包括一个或多个用于从该实体的一个异步事件路有器接收异步事件的报告的接口回叫函数。
61.权利要求60的软件编译方法,其中,所述生成包含为该代理对象的一个实现的每个内置回叫生成一个代理对象接口回叫函数,其中每个接口回叫函数为被报告的异步事件要被对应的内置回叫处理而调用对应的内置回叫函数。
62.权利要求60的软件编译方法,其中,所述生成包含为该代理对象说明的一个实现的每个增加的非内置回叫生成一个代理对象接口回叫函数,其中每个接口回叫函数为被报告的异步事件要被软件应用程序的一个对应的事件处理程序处理而调用该件应用程序的该对应的事件处理程序。
63.一种计算方法,包含:
将一个软件应用程序从源形式编译成可执行的形式,包括生成一个配对的代理对象,用于方便该软件应用程序与一个实体互动,源形式的软件应用程序包括程序化表达的、采用该代理对象的一个实现的函数与该实体的互动;和
方便该可执行形式的软件应用程序以及该代理对象的执行,包括通过该代理对象收听并向该软件应用程序传送由该实体报告的异步事件。
64.权利要求63的计算方法,其中,所述编译包含分析源形式的该软件应用程序,包括辨别和理解至少从以下选择的一个:一个该代理对象的使用的说明、该代理对象的一个实现的一个特性的一个设置详细说明、以及一个限定用于为该实体而被报告的事件的事件处理程序的处理程序详细说明。
65.权利要求63的计算方法,其中,所述编译包含至少部分地根据分析源形式的软件应用程序的结果、代理对象的定义和代理对象的实现,生成可执行形式的软件应用程序和配对的代理对象。
66.权利要求63的计算方法,其中,所述编译包含随同该软件应用程序的可执行形式包括用于在该软件应用程序的执行期间实例化该代理对象的代理实例化码。
67.权利要求63的计算方法,其中,所述编译包含随同被生成的代理对象包括用于接收该代理对象的实现的内置函数的程序设置方式的调用的一个或多个接口函数。
68.权利要求63的计算方法,其中,所述编译包含随同所生成的代理对象包括一个特殊的调用函数,用于通过该代理对象的实现的增加的非内置函数完成与该实体的互动。
69.权利要求63的计算方法,其中,所述编译包含生成该代理对象的、描述该代理对象的选定的方面的配对元数据。
70.权利要求63的计算方法,其中,所述编译包含根据该代理对象成一个代理对象工厂,用于方便软件应用程序与该实体之间的n路互动。
71.权利要求63的计算方法,其中,所述编译包含随同所生成的代理对象包括一个或多个用于从该实体的一个异步事件路有器接收异步事件的报告的接口回叫函数。
72.一种执行方法,包含:
加载一个可执行形式的软件应用程序供执行,该软件应用程序包括为方便一个代理对象的初始化而被包括的代理初始化码,该代理对象的实现包括该软件应用程序以程序设置的方式用来与一个实体互动的函数;和
通过该代理对象向该软件应用程序报告该实体的异步事件。
73.权利要求72的运行方法,其中,该方法进一步包含可执行形式的软件应用程序的代理调用码,其调用该代理对象的一个或多个接口函数,用于方便该代理对象的实现的函数的程序设置方式的调用。
74.权利要求72的运行方法,其中,该方法进一步包含可执行形式的软件应用程序的代理调用码,其调用该代理对象的一个特殊的调用函数,用于用该代理对象实现的增加的非内置函数完成与该实体的互动。
75.权利要求72的运行方法,其中,该方法进一步包含该代理对象访问描述该代理对象的选定的方面的配对元数据。
76.权利要求72的运行方法,其中,该方法进一步包含根据该代理对象生成一个代理对象工厂,用于方便该软件应用程序与该实体之间的n路互动。
77.权利要求76的运行方法,其中,该方法进一步包含一个异步事件路由器收听由该实体报告的异步事件。
78.权利要求77的运行方法,其中,该方法进一步包含该异步事件路由器所检测到的由该实体报告的异步事件报告给该代理对象的接口回叫函数中被选择的接口回叫函数。
79.权利要求78的运行方法,其中,该方法进一步包含该代理对象的对应该代理对象实现的一个内置回叫的一个接口回叫函数,其中该接口回叫函数为被报告的异步事件要被一个对应的内置回叫处理而调用该对应的内置回叫函数。
80.权利要求79的运行方法,其中,该方法进一步包含一个增加的非内置回叫对应的一个接口回叫函数,其中该接口回叫函数为被报告的异步事件要被该软件应用程序的一个对应的事件处理程序处理而调用该该软件应用程序的该对应的事件处理程序。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US35940902P | 2002-02-22 | 2002-02-22 | |
US60/359,409 | 2002-02-22 | ||
US10/233,118 US7516447B2 (en) | 2002-02-22 | 2002-08-30 | Methods and apparatus for building, customizing and using software abstractions of external entities |
US10/233,118 | 2002-08-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1647042A true CN1647042A (zh) | 2005-07-27 |
Family
ID=27767491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA038088835A Pending CN1647042A (zh) | 2002-02-22 | 2003-02-14 | 定制软件抽象的方法 |
Country Status (6)
Country | Link |
---|---|
US (3) | US7516447B2 (zh) |
EP (1) | EP1485800B1 (zh) |
CN (1) | CN1647042A (zh) |
AU (1) | AU2003215268A1 (zh) |
CA (1) | CA2477790A1 (zh) |
WO (1) | WO2003073275A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354645A (zh) * | 2007-07-25 | 2009-01-28 | Sap股份公司 | 用于定制软件应用的方法和系统 |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6605648B1 (en) * | 1999-04-06 | 2003-08-12 | Phillips Plastics Corporation | Sinterable structures and method |
WO2003032124A2 (en) * | 2001-10-09 | 2003-04-17 | Collaxa Corporation | System and method for managing service interactions |
US20030093471A1 (en) * | 2001-10-18 | 2003-05-15 | Mitch Upton | System and method using asynchronous messaging for application integration |
US7516447B2 (en) | 2002-02-22 | 2009-04-07 | Bea Systems, Inc. | Methods and apparatus for building, customizing and using software abstractions of external entities |
FR2838217B1 (fr) * | 2002-04-05 | 2004-06-25 | De Chelle Yvonne Auberlet | Procede et dispositif de generation de logiciels executables sur mesure et evolutifs sans programmation informatique |
US7171672B2 (en) * | 2002-04-24 | 2007-01-30 | Telefonaktie Bolaget Lm Ericsson (Publ) | Distributed application proxy generator |
US8135772B2 (en) | 2002-05-01 | 2012-03-13 | Oracle International Corporation | Single servlets for B2B message routing |
US7257645B2 (en) * | 2002-05-01 | 2007-08-14 | Bea Systems, Inc. | System and method for storing large messages |
US7519976B2 (en) * | 2002-05-01 | 2009-04-14 | Bea Systems, Inc. | Collaborative business plug-in framework |
US7676538B2 (en) | 2002-05-02 | 2010-03-09 | Bea Systems, Inc. | Systems and methods for application view transactions |
US7222148B2 (en) * | 2002-05-02 | 2007-05-22 | Bea Systems, Inc. | System and method for providing highly available processing of asynchronous service requests |
US7165249B2 (en) * | 2002-05-02 | 2007-01-16 | Bea Systems, Inc. | Systems and methods for modular component deployment |
US7350184B2 (en) | 2002-05-02 | 2008-03-25 | Bea Systems, Inc. | System and method for enterprise application interactions |
US7353521B1 (en) * | 2002-10-19 | 2008-04-01 | Borland Software Corporation | Object oriented distributed software system with methodology for piggybacked reflective callbacks |
US7577965B2 (en) * | 2003-01-15 | 2009-08-18 | Alcatel | Push-based object request broker |
US7774697B2 (en) * | 2003-02-25 | 2010-08-10 | Bea Systems, Inc. | System and method for structuring distributed applications |
US20050022164A1 (en) * | 2003-02-25 | 2005-01-27 | Bea Systems, Inc. | Systems and methods utilizing a workflow definition language |
US7752599B2 (en) * | 2003-02-25 | 2010-07-06 | Bea Systems Inc. | Systems and methods extending an existing programming language with constructs |
US7293038B2 (en) | 2003-02-25 | 2007-11-06 | Bea Systems, Inc. | Systems and methods for client-side filtering of subscribed messages |
US20050108682A1 (en) * | 2003-02-26 | 2005-05-19 | Bea Systems, Inc. | Systems for type-independent source code editing |
US8032860B2 (en) * | 2003-02-26 | 2011-10-04 | Oracle International Corporation | Methods for type-independent source code editing |
US7650276B2 (en) | 2003-02-26 | 2010-01-19 | Bea Systems, Inc. | System and method for dynamic data binding in distributed applications |
US7707564B2 (en) | 2003-02-26 | 2010-04-27 | Bea Systems, Inc. | Systems and methods for creating network-based software services using source code annotations |
US7299454B2 (en) * | 2003-02-26 | 2007-11-20 | Bea Systems, Inc. | Method for multi-language debugging |
US20040225995A1 (en) * | 2003-02-28 | 2004-11-11 | Kyle Marvin | Reusable software controls |
US20050044173A1 (en) * | 2003-02-28 | 2005-02-24 | Olander Daryl B. | System and method for implementing business processes in a portal |
US7650592B2 (en) | 2003-03-01 | 2010-01-19 | Bea Systems, Inc. | Systems and methods for multi-view debugging environment |
US7194733B2 (en) * | 2003-06-11 | 2007-03-20 | Microsoft Corporation | Transformation of an asynchronous transactional messaging language into a web services compatible language |
US8225282B1 (en) | 2003-11-25 | 2012-07-17 | Nextaxiom Technology, Inc. | Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions |
US20050229186A1 (en) * | 2004-03-15 | 2005-10-13 | Canyonbridge, Inc. | Method and apparatus for dynamic runtime object aggregation |
US7805523B2 (en) | 2004-03-15 | 2010-09-28 | Mitchell David C | Method and apparatus for partial updating of client interfaces |
US7650593B2 (en) * | 2004-03-25 | 2010-01-19 | Microsoft Corporation | Proxy objects for display |
US7716644B2 (en) * | 2004-03-25 | 2010-05-11 | Microsoft Corporation | Attributed debugging |
US7594237B2 (en) * | 2004-06-01 | 2009-09-22 | Sap Ag | Program object to support connection generation |
US7647319B2 (en) * | 2004-09-06 | 2010-01-12 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, program, and storage medium |
US7908290B2 (en) * | 2004-12-20 | 2011-03-15 | Sap Ag | Application development performed independent of system landscape |
US8458201B2 (en) * | 2005-04-08 | 2013-06-04 | International Business Machines Corporation | Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment |
US8145653B2 (en) | 2005-04-08 | 2012-03-27 | International Business Machines Corporation | Using schemas to generate application specific business objects for use in an integration broker |
US20060230048A1 (en) * | 2005-04-08 | 2006-10-12 | International Business Machines Corporation | Method and apparatus for object discovery agent based mapping of application specific markup language schemas to application specific business objects in an integrated application environment |
US7636883B2 (en) * | 2005-05-18 | 2009-12-22 | International Business Machines Corporation | User form based automated and guided data collection |
EP2228969B1 (en) * | 2005-06-09 | 2017-04-19 | Whirlpool Corporation | Software architecture system and method for communication with, and management of, at least one component within a household appliance |
US8442042B2 (en) * | 2005-06-09 | 2013-05-14 | Whirlpool Corporation | Appliance and a consumable holder with an embedded virtual router |
US8214731B2 (en) | 2005-06-30 | 2012-07-03 | International Business Machines Corporation | Independently refreshing portlet content in a portal view |
US9218329B2 (en) | 2005-06-30 | 2015-12-22 | International Business Machines Corporation | Independent submission of forms in a portal view |
US7984107B2 (en) * | 2005-09-09 | 2011-07-19 | Microsoft Corporation | Proxy assembly for simulating real assembly features on a remote device |
US8090818B2 (en) * | 2005-09-19 | 2012-01-03 | Sap Ag | Generation of customized client proxies |
US20070168926A1 (en) * | 2005-12-16 | 2007-07-19 | Raghuram Rajah | Software customization framework |
US20070239505A1 (en) * | 2006-03-30 | 2007-10-11 | Microsoft Corporation | Abstract execution model for a continuation-based meta-runtime |
US9128727B2 (en) * | 2006-08-09 | 2015-09-08 | Microsoft Technology Licensing, Llc | Generation of managed assemblies for networks |
US20080127055A1 (en) * | 2006-09-07 | 2008-05-29 | Microsoft Corporation | Application proxy |
US7908580B2 (en) * | 2006-09-07 | 2011-03-15 | Microsoft Corporation | Connecting an integrated development environment with an application instance |
US8850388B2 (en) * | 2006-09-07 | 2014-09-30 | Microsoft Corporation | Controlling application features |
US8671199B2 (en) * | 2006-10-26 | 2014-03-11 | International Business Machines Corporation | Converged call flow modeling and converged web service interface design |
US7966625B2 (en) * | 2006-10-26 | 2011-06-21 | International Business Machines Corporation | Extending web service description language for SIP/call flow interactions |
US8214514B2 (en) * | 2006-10-26 | 2012-07-03 | International Business Machines Corporation | Auto-generation or auto-execution of web service description language call flow implementation |
US9229726B2 (en) * | 2006-10-26 | 2016-01-05 | International Business Machines Corporation | Converged call flow and web service application integration using a processing engine |
US20090199159A1 (en) * | 2008-01-31 | 2009-08-06 | Microsoft Corporation | Declarative execution context splitting |
US20090228542A1 (en) * | 2008-03-06 | 2009-09-10 | Microsoft Corporation | Occasionally-connected support through off-line service-supplied proxies |
US7798864B2 (en) | 2008-03-12 | 2010-09-21 | Boston Scientific Neuromodulation Corporation | Low-profile connector for a neurostimulation lead |
US8392913B2 (en) * | 2008-03-28 | 2013-03-05 | International Business Machines Corporation | Method and apparatus for threaded background function support |
US20100083219A1 (en) * | 2008-10-01 | 2010-04-01 | Microsoft Corporation | Runtime Object Composition |
US8341608B2 (en) * | 2008-11-13 | 2012-12-25 | Visicom Media, Inc. | Cross-browser toolbar and method thereof for facilitating cross-browser interoperability |
US8214795B2 (en) * | 2008-11-26 | 2012-07-03 | Optumsoft, Inc. | Efficient automated translation of procedures in constraint-based language |
US8203566B2 (en) * | 2009-05-29 | 2012-06-19 | Microsoft Corporation | Fixed function pipeline application remoting through a shader pipeline conversion layer |
US9547511B2 (en) | 2009-06-05 | 2017-01-17 | Microsoft Technology Licensing, Llc | Language-based model for asynchronous operations |
US8898627B2 (en) * | 2010-05-11 | 2014-11-25 | Smartshift Gmbh | Systems and methods for applying rules to transform objects of an application |
US20120072891A1 (en) * | 2010-09-17 | 2012-03-22 | Joseph Raymond Hewitt | Computer Language Syntax for Automatic Callback Function Generation |
US8760395B2 (en) | 2011-05-31 | 2014-06-24 | Microsoft Corporation | Gesture recognition techniques |
US9092466B1 (en) | 2011-06-30 | 2015-07-28 | Emc Corporation | Trait definitions |
US8719305B1 (en) * | 2011-06-30 | 2014-05-06 | Emc Corporation | Object type definitions |
US8819077B1 (en) | 2011-06-30 | 2014-08-26 | Emc Corporation | Dynamic data structures |
US8959477B2 (en) * | 2011-10-21 | 2015-02-17 | Sap Se | Scripting language for business applications |
US8635637B2 (en) | 2011-12-02 | 2014-01-21 | Microsoft Corporation | User interface presenting an animated avatar performing a media reaction |
US9100685B2 (en) | 2011-12-09 | 2015-08-04 | Microsoft Technology Licensing, Llc | Determining audience state or interest using passive sensor data |
US20130159555A1 (en) * | 2011-12-20 | 2013-06-20 | Microsoft Corporation | Input commands |
US8898687B2 (en) | 2012-04-04 | 2014-11-25 | Microsoft Corporation | Controlling a media program based on a media reaction |
CA2775700C (en) | 2012-05-04 | 2013-07-23 | Microsoft Corporation | Determining a future portion of a currently presented media program |
US10346422B2 (en) * | 2012-10-18 | 2019-07-09 | International Business Machines Corporation | Use of proxy objects for integration between a content management system and a case management system |
US20140114864A1 (en) | 2012-10-22 | 2014-04-24 | International Business Machines Corporation | Case management integration with external content repositories |
KR101368950B1 (ko) | 2012-11-21 | 2014-03-03 | 주식회사 안랩 | 이벤트의 콜백함수 관리장치 및 이벤트의 콜백함수 관리방법 |
US9311331B2 (en) * | 2013-08-27 | 2016-04-12 | Netapp, Inc. | Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system |
US9792161B2 (en) * | 2014-11-25 | 2017-10-17 | The Board Of Trustees Of The University Of Illinois | Maximizing concurrency bug detection in multithreaded software programs |
US9956394B2 (en) | 2015-09-10 | 2018-05-01 | Boston Scientific Neuromodulation Corporation | Connectors for electrical stimulation systems and methods of making and using |
US10409837B1 (en) * | 2015-12-22 | 2019-09-10 | Uber Technologies, Inc. | Asynchronous notifications for a datastore of a distributed system |
US10342983B2 (en) | 2016-01-14 | 2019-07-09 | Boston Scientific Neuromodulation Corporation | Systems and methods for making and using connector contact arrays for electrical stimulation systems |
US11593342B2 (en) | 2016-02-01 | 2023-02-28 | Smartshift Technologies, Inc. | Systems and methods for database orientation transformation |
US10585655B2 (en) | 2016-05-25 | 2020-03-10 | Smartshift Technologies, Inc. | Systems and methods for automated retrofitting of customized code objects |
US10201713B2 (en) | 2016-06-20 | 2019-02-12 | Boston Scientific Neuromodulation Corporation | Threaded connector assembly and methods of making and using the same |
US10307602B2 (en) | 2016-07-08 | 2019-06-04 | Boston Scientific Neuromodulation Corporation | Threaded connector assembly and methods of making and using the same |
US10089103B2 (en) | 2016-08-03 | 2018-10-02 | Smartshift Technologies, Inc. | Systems and methods for transformation of reporting schema |
US10543374B2 (en) | 2016-09-30 | 2020-01-28 | Boston Scientific Neuromodulation Corporation | Connector assemblies with bending limiters for electrical stimulation systems and methods of making and using same |
US10905871B2 (en) | 2017-01-27 | 2021-02-02 | Boston Scientific Neuromodulation Corporation | Lead assemblies with arrangements to confirm alignment between terminals and contacts |
US10814136B2 (en) | 2017-02-28 | 2020-10-27 | Boston Scientific Neuromodulation Corporation | Toolless connector for latching stimulation leads and methods of making and using |
US10603499B2 (en) | 2017-04-07 | 2020-03-31 | Boston Scientific Neuromodulation Corporation | Tapered implantable lead and connector interface and methods of making and using |
US11050607B2 (en) * | 2017-06-21 | 2021-06-29 | Red Hat, Inc. | Proxy with a function as a service (FAAS) support |
US10795646B2 (en) * | 2017-07-07 | 2020-10-06 | Vmware, Inc. | Methods and systems that generate proxy objects that provide an interface to third-party executables |
WO2019023067A1 (en) | 2017-07-25 | 2019-01-31 | Boston Scientific Neuromodulation Corporation | SYSTEMS AND METHODS FOR MANUFACTURING AND USING AN ENHANCED CONNECTOR FOR AN ELECTRICAL STIMULATION SYSTEM |
AU2018331521B2 (en) | 2017-09-15 | 2021-07-22 | Boston Scientific Neuromodulation Corporation | Biased lead connector for operating room cable assembly and methods of making and using |
AU2018331512B2 (en) | 2017-09-15 | 2021-06-24 | Boston Scientific Neuromodulation Corporation | Actuatable lead connector for an operating room cable assembly and methods of making and using |
US11139603B2 (en) | 2017-10-03 | 2021-10-05 | Boston Scientific Neuromodulation Corporation | Connectors with spring contacts for electrical stimulation systems and methods of making and using same |
US11103712B2 (en) | 2018-01-16 | 2021-08-31 | Boston Scientific Neuromodulation Corporation | Connector assemblies with novel spacers for electrical stimulation systems and methods of making and using same |
US10698674B2 (en) | 2018-02-06 | 2020-06-30 | Smartshift Technologies, Inc. | Systems and methods for entry point-based code analysis and transformation |
US10528343B2 (en) | 2018-02-06 | 2020-01-07 | Smartshift Technologies, Inc. | Systems and methods for code analysis heat map interfaces |
US10740075B2 (en) | 2018-02-06 | 2020-08-11 | Smartshift Technologies, Inc. | Systems and methods for code clustering analysis and transformation |
US10867343B1 (en) * | 2018-08-30 | 2020-12-15 | Morgan Stanley Services Group Inc. | Metadata driven orchestration engine |
US10915302B2 (en) * | 2018-12-11 | 2021-02-09 | The Mathworks, Inc. | Identification and visualization of associations among code generated from a model and sources that affect code generation |
US11357992B2 (en) | 2019-05-03 | 2022-06-14 | Boston Scientific Neuromodulation Corporation | Connector assembly for an electrical stimulation system and methods of making and using |
US11055068B1 (en) * | 2020-03-17 | 2021-07-06 | Microsoft Technology Licensing, Llc | Proxying a target ECMAScript object regardless whether the target ECMAScript object is a read-only object |
US11403074B1 (en) * | 2020-09-28 | 2022-08-02 | The Mathworks, Inc. | Systems and methods for generating interfaces for callback functions in object-oriented classes |
Family Cites Families (217)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5187790A (en) * | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
US5555201A (en) | 1990-04-06 | 1996-09-10 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information |
EP0501610B1 (en) * | 1991-02-25 | 1999-03-17 | Hewlett-Packard Company | Object oriented distributed computing system |
IL100987A (en) | 1991-02-27 | 1995-10-31 | Digital Equipment Corp | Method and device for encoding |
US5469562A (en) | 1992-06-26 | 1995-11-21 | Digital Equipment Corporation | Durable atomic storage update manager |
WO1994011810A1 (en) * | 1992-11-13 | 1994-05-26 | Microsoft Corporation | A method and system for marshalling interface pointers for remote procedure calls |
US6226690B1 (en) | 1993-06-14 | 2001-05-01 | International Business Machines Corporation | Method and apparatus for utilizing proxy objects to communicate with target objects |
AU683038B2 (en) * | 1993-08-10 | 1997-10-30 | Addison M. Fischer | A method for operating computers and for processing information among computers |
US6021307A (en) * | 1994-04-07 | 2000-02-01 | Chan; Hark C. | Information distribution and processing system |
US5944794A (en) | 1994-09-30 | 1999-08-31 | Kabushiki Kaisha Toshiba | User identification data management scheme for networking computer systems using wide area network |
US5604860A (en) * | 1994-10-27 | 1997-02-18 | Xerox Corporation | Feature library and stored customized control interfaces |
US5630131A (en) * | 1994-11-14 | 1997-05-13 | Object Technology Licensing Corp. | Method and apparatus for importing and exporting archive files for a graphical user interface |
US5642511A (en) | 1994-12-16 | 1997-06-24 | International Business Machines Corporation | System and method for providing a visual application builder framework |
US5748975A (en) * | 1995-07-06 | 1998-05-05 | Sun Microsystems, Inc. | System and method for textual editing of structurally-represented computer programs with on-the-fly typographical display |
GB2305271A (en) | 1995-09-15 | 1997-04-02 | Ibm | Proxy object recovery in an object-oriented environment |
US5835769A (en) | 1995-09-19 | 1998-11-10 | Sun Microsystems, Inc. | Apparatti and computer program products for integrating editors with applications |
US5966535A (en) | 1995-12-07 | 1999-10-12 | At&T Corporation | Method and apparatus for generating program code for world wide web service applications |
SE517033C2 (sv) | 1995-12-08 | 2002-04-02 | Ericsson Telefon Ab L M | Systemplattform för kommunikationssystem |
EP0888585A1 (en) * | 1996-03-19 | 1999-01-07 | Massachusetts Institute Of Technology | Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions |
DE19712946A1 (de) * | 1996-05-30 | 1997-12-04 | Ibm | Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells |
US5862327A (en) * | 1996-06-10 | 1999-01-19 | Tactica Corporation | Activity based long-lived transaction system |
US5867822A (en) | 1996-06-26 | 1999-02-02 | Sun Microsystems, Inc. | Method and apparatus for management of electronic calendars throughout an enterprise and management of events in a distributed system |
US6253252B1 (en) * | 1996-07-11 | 2001-06-26 | Andrew Schofield | Method and apparatus for asynchronously calling and implementing objects |
US6347342B1 (en) * | 1996-07-15 | 2002-02-12 | Next Software, Inc. | Method and apparatus for dynamically brokering object messages among object models |
US6012083A (en) * | 1996-09-24 | 2000-01-04 | Ricoh Company Ltd. | Method and apparatus for document processing using agents to process transactions created based on document content |
US5950010A (en) | 1996-11-25 | 1999-09-07 | J.D. Edwards World Source Co. | System and method for customized application package building and installation |
GB2320112B (en) * | 1996-12-07 | 2001-07-25 | Ibm | High-availability computer server system |
US5961593A (en) | 1997-01-22 | 1999-10-05 | Lucent Technologies, Inc. | System and method for providing anonymous personalized browsing by a proxy system in a network |
US6353923B1 (en) * | 1997-03-12 | 2002-03-05 | Microsoft Corporation | Active debugging environment for debugging mixed-language scripting code |
WO1998040850A2 (en) | 1997-03-13 | 1998-09-17 | Whitney Mark M | A system for, and method of, off-loading network transactions from a mainframe to an intelligent input/output device, including off-loading message queuing facilities |
CA2201278C (en) * | 1997-03-27 | 2001-02-20 | Ibm Canada Limited-Ibm Canada Limitee | Hierarchical metadata store for an integrated development environment |
US6230309B1 (en) * | 1997-04-25 | 2001-05-08 | Sterling Software, Inc | Method and system for assembling and utilizing components in component object systems |
CA2204971A1 (en) * | 1997-05-09 | 1998-11-09 | Michael Cheng | Uniform access to and interchange between objects employing a plurality of access methods |
US6023578A (en) * | 1997-05-09 | 2000-02-08 | International Business Macines Corporation | Systems, methods and computer program products for generating an object oriented application for an object oriented environment |
US5987376A (en) * | 1997-07-16 | 1999-11-16 | Microsoft Corporation | System and method for the distribution and synchronization of data and state information between clients in a distributed processing system |
CA2210755C (en) * | 1997-07-17 | 2003-12-23 | Ibm Canada Limited - Ibm Canada Limitee | Creating proxies for distribution of beans and event objects |
US6366663B1 (en) | 1997-07-21 | 2002-04-02 | Mci Communications Corporation | System for achieving local number portability |
US6222533B1 (en) * | 1997-08-25 | 2001-04-24 | I2 Technologies, Inc. | System and process having a universal adapter framework and providing a global user interface and global messaging bus |
US6070184A (en) * | 1997-08-28 | 2000-05-30 | International Business Machines Corporation | Server-side asynchronous form management |
CA2246130C (en) * | 1997-09-04 | 2003-01-14 | Mitel Corporation | Web based help desk |
US6016495A (en) * | 1997-09-19 | 2000-01-18 | International Business Machines Corporation | Object-oriented framework mechanism for providing persistent storage |
US6470386B1 (en) | 1997-09-26 | 2002-10-22 | Worldcom, Inc. | Integrated proxy interface for web based telecommunications management tools |
US6393481B1 (en) * | 1997-10-06 | 2002-05-21 | Worldcom, Inc. | Method and apparatus for providing real-time call processing services in an intelligent network |
US6092102A (en) | 1997-10-24 | 2000-07-18 | University Of Pittsburgh Of The Commonwealth System Of Higher Education | System and method for notifying users about information or events of an enterprise |
US6334114B1 (en) | 1997-10-31 | 2001-12-25 | Oracle Corporation | Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm |
US6067623A (en) * | 1997-11-21 | 2000-05-23 | International Business Machines Corp. | System and method for secure web server gateway access using credential transform |
US6029000A (en) * | 1997-12-22 | 2000-02-22 | Texas Instruments Incorporated | Mobile communication system with cross compiler and cross linker |
FI106831B (fi) | 1998-01-14 | 2001-04-12 | Nokia Networks Oy | Pääsyn kontrollointimenetelmä matkaviestinjärjestelmää varten |
US6594693B1 (en) | 1998-02-10 | 2003-07-15 | Nitin A. Borwankar | Method and apparatus for a structured, synchronized conversation using electronic messages over a computer network |
US6345382B1 (en) * | 1998-02-12 | 2002-02-05 | International Business Machines Corporation | Run-time customization in object-oriented design |
US6480206B2 (en) | 1998-02-24 | 2002-11-12 | Sun Microsystems, Inc. | Method and apparatus for an extensible editor |
US6311327B1 (en) | 1998-03-02 | 2001-10-30 | Applied Microsystems Corp. | Method and apparatus for analyzing software in a language-independent manner |
US6141686A (en) | 1998-03-13 | 2000-10-31 | Deterministic Networks, Inc. | Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control |
US6349408B1 (en) | 1998-03-23 | 2002-02-19 | Sun Microsystems, Inc. | Techniques for implementing a framework for extensible applications |
US6338064B1 (en) * | 1998-05-14 | 2002-01-08 | International Business Machines Corporation | Method for enabling a web server running a “closed” native operating system to impersonate a user of a web client to obtain a protected file |
US6721740B1 (en) * | 1998-05-29 | 2004-04-13 | Sun Microsystems, Inc. | Method and apparatus of performing active update notification |
US6119149A (en) | 1998-06-05 | 2000-09-12 | I2 Technologies, Inc. | System and process allowing collaboration within and between enterprises for optimal decision making |
US6237135B1 (en) * | 1998-06-18 | 2001-05-22 | Borland Software Corporation | Development system with visual design tools for creating and maintaining Java Beans components |
US6067548A (en) * | 1998-07-16 | 2000-05-23 | E Guanxi, Inc. | Dynamic organization model and management computing system and method therefor |
US6343265B1 (en) * | 1998-07-28 | 2002-01-29 | International Business Machines Corporation | System and method for mapping a design model to a common repository with context preservation |
WO2000014618A2 (en) * | 1998-08-24 | 2000-03-16 | Fujitsu Limited | Workflow system and method |
US6963914B1 (en) | 1998-09-01 | 2005-11-08 | Lucent Technologies Inc. | Method and apparatus for retrieving a network file using a logical reference |
CA2248634C (en) | 1998-09-24 | 2004-02-24 | Ibm Canada Limited-Ibm Canada Limitee | Common connector framework |
US6212546B1 (en) * | 1998-10-01 | 2001-04-03 | Unisys Corporation | Providing a modular gateway architecture which isolates attributes of the client and server systems into independent components |
US6324681B1 (en) | 1998-10-01 | 2001-11-27 | Unisys Corporation | Automated development system for developing applications that interface with both distributed component object model (DCOM) and enterprise server environments |
US6226675B1 (en) * | 1998-10-16 | 2001-05-01 | Commerce One, Inc. | Participant server which process documents for commerce in trading partner networks |
US6385661B1 (en) * | 1998-10-19 | 2002-05-07 | Recursion Software, Inc. | System and method for dynamic generation of remote proxies |
US6993774B1 (en) * | 1998-10-19 | 2006-01-31 | Recursion Software, Inc. | System and method for remote enabling classes without interfaces |
US6367068B1 (en) * | 1998-11-13 | 2002-04-02 | Microsoft Corporation | Dynamic parsing |
US6393605B1 (en) * | 1998-11-18 | 2002-05-21 | Siebel Systems, Inc. | Apparatus and system for efficient delivery and deployment of an application |
US6385724B1 (en) | 1998-11-30 | 2002-05-07 | Microsoft Corporation | Automatic object caller chain with declarative impersonation and transitive trust |
US6637020B1 (en) | 1998-12-03 | 2003-10-21 | International Business Machines Corporation | Creating applications within data processing systems by combining program components dynamically |
US6018730A (en) * | 1998-12-22 | 2000-01-25 | Ac Properties B.V. | System, method and article of manufacture for a simulation engine with a help website and processing engine |
US6795967B1 (en) | 1999-01-26 | 2004-09-21 | Microsoft Corporation | Changing user identities without closing applications |
WO2000045260A1 (fr) | 1999-01-29 | 2000-08-03 | Fujitsu Limited | Compilateur, procede de compilation et support de stockage sur lequel est stocke un programme pour la mise en oeuvre dudit procede |
JP4146983B2 (ja) | 1999-02-26 | 2008-09-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム |
US6360358B1 (en) * | 1999-03-11 | 2002-03-19 | Microsoft Corporation | Maintenance of code knowledge for up-to-date access thereof |
US6735771B1 (en) * | 1999-03-12 | 2004-05-11 | Perot Systems Corporation | System and method for delivering web services using common object request broker architecture |
US6243737B1 (en) * | 1999-04-09 | 2001-06-05 | Translink Software, Inc. | Method and apparatus for providing direct transaction access to information residing on a host system |
AU4482000A (en) | 1999-04-23 | 2000-11-10 | Sony Electronics Inc. | Method of and apparatus for implementing and sending an asynchronous control mechanism packet |
US6789054B1 (en) | 1999-04-25 | 2004-09-07 | Mahmoud A. Makhlouf | Geometric display tools and methods for the visual specification, design automation, and control of adaptive real systems |
US6377939B1 (en) * | 1999-05-04 | 2002-04-23 | Metratech | Pipelined method and apparatus for processing communication metering data |
US6510550B1 (en) * | 1999-05-12 | 2003-01-21 | Intel Corporation | Method and apparatus for providing intermittent connectivity support in a computer application |
US6578191B1 (en) * | 1999-05-17 | 2003-06-10 | International Business Machines Corporation | Method and apparatus for dynamic generation of adapters |
US7165041B1 (en) | 1999-05-27 | 2007-01-16 | Accenture, Llp | Web-based architecture sales tool |
US6292932B1 (en) | 1999-05-28 | 2001-09-18 | Unisys Corp. | System and method for converting from one modeling language to another |
US7472349B1 (en) | 1999-06-01 | 2008-12-30 | Oracle International Corporation | Dynamic services infrastructure for allowing programmatic access to internet and other resources |
US6594700B1 (en) | 1999-06-14 | 2003-07-15 | International Business Machines Corporation | System and method for implementing a universal service broker interchange mechanism |
US6877163B1 (en) * | 1999-06-14 | 2005-04-05 | Sun Microsystems, Inc. | Method and system for dynamic proxy classes |
US6408311B1 (en) | 1999-06-30 | 2002-06-18 | Unisys Corp. | Method for identifying UML objects in a repository with objects in XML content |
US6330569B1 (en) | 1999-06-30 | 2001-12-11 | Unisys Corp. | Method for versioning a UML model in a repository in accordance with an updated XML representation of the UML model |
US6880126B1 (en) | 1999-08-03 | 2005-04-12 | International Business Machines Corporation | Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data |
US6282711B1 (en) | 1999-08-10 | 2001-08-28 | Hewlett-Packard Company | Method for more efficiently installing software components from a remote server source |
US7200563B1 (en) * | 1999-08-20 | 2007-04-03 | Acl International Inc. | Ontology-driven information system |
US6549949B1 (en) * | 1999-08-31 | 2003-04-15 | Accenture Llp | Fixed format stream in a communication services patterns environment |
US7051316B2 (en) * | 1999-10-05 | 2006-05-23 | Borland Software Corporation | Distributed computing component system with diagrammatic graphical representation of code with separate delineated display area by type |
US6802000B1 (en) | 1999-10-28 | 2004-10-05 | Xerox Corporation | System for authenticating access to online content referenced in hardcopy documents |
US20020013080A1 (en) * | 1999-11-23 | 2002-01-31 | Joseph Howard Gladd | Environmentally proctected bussed electrical center |
US6748420B1 (en) | 1999-11-23 | 2004-06-08 | Cisco Technology, Inc. | Methods and apparatus for providing shared access to an application |
AU2062301A (en) * | 1999-12-06 | 2001-06-25 | Bios Group Inc. | A method and system for discovery of trades between parties |
US6678518B2 (en) * | 1999-12-09 | 2004-01-13 | Nokia Corporation | Dynamic content filter in a gateway |
US20020010781A1 (en) * | 1999-12-30 | 2002-01-24 | Tuatini Jeffrey Taihana | Shared service messaging models |
US6609115B1 (en) | 1999-12-30 | 2003-08-19 | Ge Medical Systems | Method and apparatus for limited online access to restricted documentation |
US6584454B1 (en) | 1999-12-31 | 2003-06-24 | Ge Medical Technology Services, Inc. | Method and apparatus for community management in remote system servicing |
US7089583B2 (en) * | 2000-01-14 | 2006-08-08 | Saba Software, Inc. | Method and apparatus for a business applications server |
AU2001227857A1 (en) | 2000-01-14 | 2001-07-24 | Saba Software, Inc. | Method and apparatus for a business applications management system platform |
AU2001229371A1 (en) | 2000-01-14 | 2001-07-24 | Saba Software, Inc. | Information server |
US6643652B2 (en) | 2000-01-14 | 2003-11-04 | Saba Software, Inc. | Method and apparatus for managing data exchange among systems in a network |
AU2001229660A1 (en) | 2000-02-14 | 2001-08-27 | Ubs Painewebber Inc. | System for providing financial services |
AU2001238380A1 (en) * | 2000-02-16 | 2001-08-27 | Bea Systems Inc. | Open market collaboration system for enterprise wide electronic commerce |
JP2001243366A (ja) | 2000-02-25 | 2001-09-07 | Hitachi Ltd | 貿易業務支援機能を有するサーバ |
AU2001245976A1 (en) * | 2000-03-29 | 2001-10-08 | Nextset Software Inc. | System and method of providing an asynchronous interface between a client system and an enterprise javabeans-enabled server |
US20040148336A1 (en) | 2000-03-30 | 2004-07-29 | Hubbard Edward A | Massively distributed processing system architecture, scheduling, unique device identification and associated methods |
US7146422B1 (en) | 2000-05-01 | 2006-12-05 | Intel Corporation | Method and apparatus for validating documents based on a validation template |
US6901588B1 (en) * | 2000-04-17 | 2005-05-31 | Codemesh, Inc. | Sharing components between programming languages by use of polymorphic proxy |
US6516322B1 (en) * | 2000-04-28 | 2003-02-04 | Microsoft Corporation | XML-based representation of mobile process calculi |
CA2306974A1 (en) | 2000-04-28 | 2001-10-28 | Ibm Canada Limited-Ibm Canada Limitee | Management of application programming interface interoperability |
US6918084B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Spawning new repository spaces using information provided in advertisement schema messages |
US6850979B1 (en) * | 2000-05-09 | 2005-02-01 | Sun Microsystems, Inc. | Message gates in a distributed computing environment |
US6971096B1 (en) | 2000-05-19 | 2005-11-29 | Sun Microsystems, Inc. | Transaction data structure for process communications among network-distributed applications |
US6922685B2 (en) | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US6721777B1 (en) | 2000-05-24 | 2004-04-13 | Sun Microsystems, Inc. | Modular and portable deployment of a resource adapter in an application server |
US6832238B1 (en) | 2000-05-24 | 2004-12-14 | Sun Microsystems, Inc. | Local transaction management |
AU2001264944A1 (en) * | 2000-05-25 | 2001-12-03 | Transacttools, Inc. | A method, system and apparatus for establishing, monitoring, and managing connectivity for communication among heterogeneous systems |
US6687848B1 (en) * | 2000-05-31 | 2004-02-03 | Sun Microsystems, Inc. | Techniques for preventing information loss in a business to business message in an enterprise computer system |
US7127704B2 (en) | 2000-06-02 | 2006-10-24 | Sun Microsystems, Inc. | Interactive software engineering tool with support for embedded lexical contexts |
US6993743B2 (en) * | 2000-06-03 | 2006-01-31 | Sun Microsystems, Inc. | Method and apparatus for developing enterprise applications using design patterns |
US6836883B1 (en) | 2000-06-21 | 2004-12-28 | Microsoft Corporation | Method and system for compiling multiple languages |
US6874143B1 (en) * | 2000-06-21 | 2005-03-29 | Microsoft Corporation | Architectures for and methods of providing network-based software extensions |
US20020194267A1 (en) * | 2000-06-23 | 2002-12-19 | Daniel Flesner | Portal server that provides modification of user interfaces for access to computer networks |
US6721779B1 (en) * | 2000-07-07 | 2004-04-13 | Softwired Ag | Messaging proxy system |
AUPQ877600A0 (en) * | 2000-07-13 | 2000-08-03 | Erg R&D Pty Ltd | A card system |
US20020143960A1 (en) | 2000-08-02 | 2002-10-03 | Erez Goren | Virtual network generation system and method |
JP3919476B2 (ja) * | 2000-08-07 | 2007-05-23 | キヤノン株式会社 | 撮像装置 |
US6684388B1 (en) * | 2000-08-22 | 2004-01-27 | International Business Machines Corporation | Method for generating platform independent, language specific computer code |
US6732237B1 (en) * | 2000-08-29 | 2004-05-04 | Oracle International Corporation | Multi-tier caching system |
FR2813471B1 (fr) | 2000-08-31 | 2002-12-20 | Schneider Automation | Systeme de communication d'un equipement d'automatisme base sur le protocole soap |
WO2002019097A1 (en) | 2000-09-01 | 2002-03-07 | International Interactive Commerce, Ltd. | System and method for collaboration using web browsers |
US6823495B1 (en) | 2000-09-14 | 2004-11-23 | Microsoft Corporation | Mapping tool graphical user interface |
US6895444B1 (en) * | 2000-09-15 | 2005-05-17 | Motorola, Inc. | Service framework with local proxy for representing remote services |
US6560769B1 (en) * | 2000-09-28 | 2003-05-06 | Unisys Corporation | Computer-implemented method for generating a UML representation from JAVA source code |
US7069507B1 (en) | 2000-09-29 | 2006-06-27 | Microsoft Corporation | Event routing model for an extensible editor |
US6889244B1 (en) * | 2000-10-31 | 2005-05-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for passing messages using a fault tolerant storage system |
IE20010964A1 (en) * | 2000-11-03 | 2002-05-29 | Wilde Technologies Ltd | A software development process |
AU2002239620A1 (en) | 2000-11-06 | 2002-05-27 | Terry Bernard Young | Electronic markets business interchange system and metheo |
US20020078365A1 (en) | 2000-12-15 | 2002-06-20 | International Business Machines Corporation | Method for securely enabling an application to impersonate another user in an external authorization manager |
US7275220B2 (en) | 2000-12-22 | 2007-09-25 | Epic Systems Corporation | System and method for a seamless user interface for an integrated electronic health care information system |
US7174534B2 (en) | 2001-01-22 | 2007-02-06 | Symbol Technologies, Inc. | Efficient system and method for running and analyzing multi-channel, multi-modal applications |
US20020161826A1 (en) | 2001-01-25 | 2002-10-31 | Carlos Arteaga | System and method for remote communication transactions |
US20020165936A1 (en) | 2001-01-25 | 2002-11-07 | Victor Alston | Dynamically branded web sites |
US6567738B2 (en) * | 2001-01-30 | 2003-05-20 | Ford Global Technologies, Llc | Fueling control system |
US6757689B2 (en) | 2001-02-02 | 2004-06-29 | Hewlett-Packard Development Company, L.P. | Enabling a zero latency enterprise |
US7957999B2 (en) | 2001-02-13 | 2011-06-07 | American Express Travel Related Services Company, Inc. | Electronic acquisition system and method |
US7111243B1 (en) | 2001-03-02 | 2006-09-19 | Oracle International Corporation | Customization of tab-order functionality in internet applications |
US7184967B1 (en) * | 2001-03-06 | 2007-02-27 | Microsoft Corporation | System and method utilizing a graphical user interface of a business process workflow scheduling program |
GB0108924D0 (en) | 2001-04-10 | 2001-05-30 | Ibm | Installation of a data processing solution |
US20030004746A1 (en) * | 2001-04-24 | 2003-01-02 | Ali Kheirolomoom | Scenario based creation and device agnostic deployment of discrete and networked business services using process-centric assembly and visual configuration of web service components |
US6983328B2 (en) | 2001-05-18 | 2006-01-03 | Hewlett-Packard Development Company, L.P. | Trusted internet clipboard |
US6996832B2 (en) * | 2001-05-30 | 2006-02-07 | Bea Systems, Inc. | System and method for software component plug-in framework |
US20020194244A1 (en) | 2001-06-01 | 2002-12-19 | Joan Raventos | System and method for enabling transaction-based service utilizing non-transactional resources |
US7152090B2 (en) * | 2001-06-01 | 2006-12-19 | Sun Microsystems, Inc. | Metadata-aware enterprise application integration framework for application server environment |
US7761319B2 (en) | 2001-06-08 | 2010-07-20 | Click Acqusitions, Inc. | Supply chain management |
US7594267B2 (en) | 2001-06-14 | 2009-09-22 | Cisco Technology, Inc. | Stateful distributed event processing and adaptive security |
US6687702B2 (en) * | 2001-06-15 | 2004-02-03 | Sybass, Inc. | Methodology providing high-speed shared memory access between database middle tier and database server |
US6976086B2 (en) | 2001-06-18 | 2005-12-13 | Siemens Business Services, Llc | Systems and methods to facilitate a distribution of information via a dynamically loadable component |
US20030014439A1 (en) * | 2001-06-20 | 2003-01-16 | International Business Machines Corporation | Defining a markup language representation for state chart data |
US6789254B2 (en) * | 2001-06-21 | 2004-09-07 | International Business Machines Corp. | Java classes comprising an application program interface for platform integration derived from a common codebase |
EP1410258A4 (en) | 2001-06-22 | 2007-07-11 | Inc Nervana | SYSTEM AND METHOD FOR RECALLING, MANAGING, DELIVERING AND PRESENTING KNOWLEDGE |
US7065771B1 (en) * | 2001-06-28 | 2006-06-20 | Microsoft Corporation | Distributed types and proxy refinement |
US7437710B2 (en) * | 2001-07-02 | 2008-10-14 | Bea Systems, Inc. | Annotation based development platform for stateful web services |
US6754884B1 (en) | 2001-07-02 | 2004-06-22 | Bea Systems, Inc. | Programming language extensions for processing XML objects and related applications |
US7356803B2 (en) * | 2001-07-02 | 2008-04-08 | Bea Systems, Inc. | Annotation based development platform for asynchronous web services |
US7117504B2 (en) | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
US6799718B2 (en) | 2001-07-10 | 2004-10-05 | Borland Software Corp. | Development assistance for mixed-language sources |
US7210094B2 (en) * | 2001-07-11 | 2007-04-24 | International Business Machines Corporation | Method and system for dynamic web page breadcrumbing using javascript |
US6915519B2 (en) | 2001-07-12 | 2005-07-05 | International Business Machines Corporation | Pluggable JMS providers in a J2EE server |
US20030018661A1 (en) * | 2001-07-19 | 2003-01-23 | Darugar Parand Tony | XML smart mapping system and method |
US20030046266A1 (en) * | 2001-07-26 | 2003-03-06 | Ward Mullins | System, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships |
US7054858B2 (en) * | 2001-08-01 | 2006-05-30 | Oic Acquisition Corporation | System and method for retrieval of objects from object to relational mappings |
US20030028579A1 (en) * | 2001-08-06 | 2003-02-06 | Kulkarni Vinay Vasant | Process for component-based application development |
US7367028B2 (en) | 2001-08-14 | 2008-04-29 | National Instruments Corporation | Graphically deploying programs on devices in a system |
US20030043191A1 (en) * | 2001-08-17 | 2003-03-06 | David Tinsley | Systems and methods for displaying a graphical user interface |
US6910041B2 (en) * | 2001-08-23 | 2005-06-21 | International Business Machines Corporation | Authorization model for administration |
US7356837B2 (en) * | 2001-08-29 | 2008-04-08 | Nader Asghari-Kamrani | Centralized identification and authentication system and method |
US6985939B2 (en) * | 2001-09-19 | 2006-01-10 | International Business Machines Corporation | Building distributed software services as aggregations of other services |
US7035944B2 (en) * | 2001-09-19 | 2006-04-25 | International Business Machines Corporation | Programmatic management of software resources in a content framework environment |
US7107578B1 (en) | 2001-09-24 | 2006-09-12 | Oracle International Corporation | Techniques for debugging computer programs involving multiple programming languages |
AU2002343424A1 (en) | 2001-09-28 | 2003-04-14 | Bluesocket, Inc. | Method and system for managing data traffic in wireless networks |
CA2358681C (en) * | 2001-10-12 | 2008-01-15 | Ibm Canada Limited-Ibm Canada Limitee | Resource adapter and integrated development environment |
US7552222B2 (en) * | 2001-10-18 | 2009-06-23 | Bea Systems, Inc. | Single system user identity |
US20030093471A1 (en) * | 2001-10-18 | 2003-05-15 | Mitch Upton | System and method using asynchronous messaging for application integration |
US7089568B2 (en) * | 2001-10-26 | 2006-08-08 | Hitachi, Ltd. | Program control method, computer system, control program, and storage medium storing the control program |
US6918088B2 (en) * | 2001-11-05 | 2005-07-12 | Sun Microsystems, Inc. | Service portal with application framework for facilitating application and feature development |
US8156471B2 (en) * | 2001-11-09 | 2012-04-10 | Oracle International Corporation | Multi-language execution method |
US7155705B1 (en) | 2001-11-26 | 2006-12-26 | Cisco Technology, Inc. | Techniques for binding an application with a data exchange format based on tags in comments |
US20030110446A1 (en) | 2001-12-10 | 2003-06-12 | Sun Microsystems, Inc. | Object class for facilitating conversion between Java and XML |
US6950872B2 (en) | 2001-12-19 | 2005-09-27 | Sun Microsystems, Inc. | Methods and systems for facilitating message exchange between networked computing entities |
US7240331B2 (en) | 2002-01-16 | 2007-07-03 | Xerox Corporation | Bi-valuation of programming statements |
US8151003B2 (en) | 2002-02-05 | 2012-04-03 | International Business Machines Corporation | System and method for routing data by a server |
US6922827B2 (en) | 2002-02-22 | 2005-07-26 | Bea Systems, Inc. | Iterative software development environment with prioritized build rules |
US7516447B2 (en) | 2002-02-22 | 2009-04-07 | Bea Systems, Inc. | Methods and apparatus for building, customizing and using software abstractions of external entities |
US20030196168A1 (en) | 2002-04-10 | 2003-10-16 | Koninklijke Philips Electronics N.V. | Method and apparatus for modeling extensible markup language (XML) applications using the unified modeling language (UML) |
US6804686B1 (en) | 2002-04-29 | 2004-10-12 | Borland Software Corporation | System and methodology for providing fixed UML layout for an object oriented class browser |
US7434207B2 (en) | 2002-07-02 | 2008-10-07 | Microsoft Corporation | Floating debugger |
US7720910B2 (en) * | 2002-07-26 | 2010-05-18 | International Business Machines Corporation | Interactive filtering electronic messages received from a publication/subscription service |
US7043722B2 (en) * | 2002-07-31 | 2006-05-09 | Bea Systems, Inc. | Mixed language expression loading and execution methods and apparatuses |
US7523174B2 (en) | 2002-10-15 | 2009-04-21 | International Business Machines Corporation | Dynamic portal assembly |
KR100501410B1 (ko) * | 2002-11-27 | 2005-07-18 | 한국전자통신연구원 | 서블릿 프로그램의 재사용 가능한 비즈니스 로직으로부터이제이비 컴포넌트를 생성하는 시스템 및 방법 |
US7448024B2 (en) | 2002-12-12 | 2008-11-04 | Bea Systems, Inc. | System and method for software application development in a portal environment |
US7650591B2 (en) | 2003-01-24 | 2010-01-19 | Bea Systems, Inc. | Marshaling and un-marshaling data types in XML and Java |
US7076772B2 (en) | 2003-02-26 | 2006-07-11 | Bea Systems, Inc. | System and method for multi-language extensible compiler framework |
US7096422B2 (en) | 2003-02-28 | 2006-08-22 | Microsoft Corporation | Markup language visual mapping |
US20040225995A1 (en) | 2003-02-28 | 2004-11-11 | Kyle Marvin | Reusable software controls |
US7260599B2 (en) | 2003-03-07 | 2007-08-21 | Hyperspace Communications, Inc. | Supporting the exchange of data by distributed applications |
US20040260715A1 (en) | 2003-06-20 | 2004-12-23 | Mongeon Brad A. | Object mapping across multiple different data stores |
US7739223B2 (en) * | 2003-08-29 | 2010-06-15 | Microsoft Corporation | Mapping architecture for arbitrary data models |
US6859180B1 (en) * | 2003-09-15 | 2005-02-22 | The United States Of America As Represented By The Secretary Of The Navy | Gravity-actuated submarine antenna |
-
2002
- 2002-08-30 US US10/233,118 patent/US7516447B2/en not_active Expired - Lifetime
-
2003
- 2003-02-14 AU AU2003215268A patent/AU2003215268A1/en not_active Abandoned
- 2003-02-14 CN CNA038088835A patent/CN1647042A/zh active Pending
- 2003-02-14 CA CA002477790A patent/CA2477790A1/en not_active Abandoned
- 2003-02-14 EP EP03711085.5A patent/EP1485800B1/en not_active Expired - Lifetime
- 2003-02-14 WO PCT/US2003/004723 patent/WO2003073275A1/en not_active Application Discontinuation
-
2007
- 2007-04-11 US US11/734,239 patent/US8015572B2/en not_active Expired - Lifetime
-
2011
- 2011-08-01 US US13/195,284 patent/US8484664B2/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354645A (zh) * | 2007-07-25 | 2009-01-28 | Sap股份公司 | 用于定制软件应用的方法和系统 |
CN101354645B (zh) * | 2007-07-25 | 2016-08-03 | Sap欧洲公司 | 用于定制软件应用的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20070199002A1 (en) | 2007-08-23 |
EP1485800A4 (en) | 2007-08-01 |
EP1485800A1 (en) | 2004-12-15 |
EP1485800B1 (en) | 2019-12-25 |
US7516447B2 (en) | 2009-04-07 |
AU2003215268A1 (en) | 2003-09-09 |
CA2477790A1 (en) | 2003-09-04 |
US8015572B2 (en) | 2011-09-06 |
US8484664B2 (en) | 2013-07-09 |
WO2003073275A1 (en) | 2003-09-04 |
US20030167358A1 (en) | 2003-09-04 |
US20110289477A1 (en) | 2011-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1647042A (zh) | 定制软件抽象的方法 | |
US7448022B1 (en) | Dynamic software composition in a component-based software system | |
Thai et al. | . NET framework essentials | |
CN1242326C (zh) | 程序对象的串行化和解串行的方法和设备 | |
CN1313953C (zh) | 在软件对象与以结构化语言要素为基础的文件之间映射的系统及方法 | |
Kongdenfha et al. | An aspect-oriented framework for service adaptation | |
US20040226030A1 (en) | Systems and methods for an extensible software proxy | |
CN1783019A (zh) | 用于创建web服务并与其交互的接口基础结构 | |
CN1551006A (zh) | 分布式计算系统架构及分布式应用的设计、部署和管理 | |
CN1942860A (zh) | 在分布式网络体系结构中建模和动态部署服务的系统和方法 | |
CN1967485A (zh) | 一种实现j2ee应用的方法及系统 | |
CN1766835A (zh) | 用于在设计和运行时间无缝制作和编辑工作流的框架 | |
WO2009061146A2 (en) | A method for software development and operation based on component reuse and dependency injection | |
AU2003227991A1 (en) | Generation of executable processes for distribution | |
CN1585948A (zh) | 用于系统整合的应用程序视窗部件 | |
CN1258704C (zh) | 基于网格环境的多计算引擎协同方法 | |
CN1975669A (zh) | Xml语言描述的业务逻辑映射到应用语言的方法 | |
CN1531701A (zh) | 工作流程管理系统中的信令事件 | |
US20020152291A1 (en) | Universal customization tool for providing customized computer programs | |
Marot et al. | Composability of aspects | |
Rodriguez et al. | The EasySOC project: A rich catalog of best practices for developing Web Service applications | |
US20060150204A1 (en) | Method, system, and article of manufacture for providing service components | |
Hofer et al. | The Otho Toolkit–Synthesizing tailor-made scientific grid application wrapper services | |
Rodriguez et al. | The EasySOC project: a rich catalog of best practices for developing web service applications | |
Herrmann | Lua/P—a repository language for flexible software engineering environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20050727 |