当前位置: 首页 > 专利查询>BEA系统公司专利>正文

定制软件抽象的方法技术

技术编号:2861210 阅读:164 留言:0更新日期:2012-04-11 18:40
通过本发明专利技术的一个代理对象(图2的254)的实现抽象一个实体,包括在运行时供一个软件应用程序以程序设置的方式与该实体(202)互动的函数,以及可选的用于支持说明性代理对象定义类(204)的开发和定制的编译时和运行时实现类。在一个实施例中,提供用于辅助实现类的创建的构造器(214)和资源接口(216)。在一个实施例中,也提供方便代理对象(254)的实现的扩展的扩展接口(218)。包括代理对象函数(209)的程序设备方式的使用的软件应用程序,被编译成具有代理对象和元数据文件的目标码。编译后的目标码被用运行引擎(250)执行,运行引擎包括用于方便逐个方式的互动的代理上下文对象(258)和用于传送实体(202)的异步事件的异步事件路由器(256)。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据处理领域。更具体来说,本专利技术涉及软件互动(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表示按照本专利技术一个实施例的一例适合用来实践本专利技术的计算机系统。具体实施例方式本专利技术包括用于简化作为用于与来自一个软件应本文档来自技高网
...

【技术保护点】
一个计算环境,包含:一个定义为方便一个软件应用程序与一个实体互动而要被生成的一个代理对象的代理对象定义,该代理对象定义标识该代理对象的至少一个实现,该代理对象的实现具有一个或多个用于方便该应用程序以程序设置的方式与该实体互动的内置函数;和该代理对象的实现。

【技术特征摘要】
【国外来华专利技术】US 2002-2-22 60/359,409;US 2002-8-30 10/233,1181.一个计算环境,包含一个定义为方便一个软件应用程序与一个实体互动而要被生成的一个代理对象的代理对象定义,该代理对象定义标识该代理对象的至少一个实现,该代理对象的实现具有一个或多个用于方便该应用程序以程序设置的方式与该实体互动的内置函数;和该代理对象的实现。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的运行环境,其中,接口回叫函数中被选择的接口回叫...

【专利技术属性】
技术研发人员:KW马文D包三世RA查维兹
申请(专利权)人:BEA系统公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1