用于借助中心xml配置文件生成分布式java应用的方法和装置的制作方法

文档序号:6417364阅读:173来源:国知局
专利名称:用于借助中心xml配置文件生成分布式java应用的方法和装置的制作方法
技术领域
本发明涉及多等级或多级环境中的分布式应用的生成,最好在数据库方面。它还涉及面向对象的分布式JAVA应用的生成。
分布式应用是典型客户机-服务器应用的进一步的开发版本。也称作n等级或多等级应用的这种分布式架构的主要优点是单独层(等级)的清楚分离。这些等级一般由用于保存持久数据的数据库服务器、用于执行对象逻辑或商业逻辑的应用服务器、用于准备演示的WEB服务器以及用于向用户演示和用户交互的客户机应用组成。
这种架构描述美国专利5212787中。该文献揭示了用于访问面向对象的环境之外的关系数据库而不用退出该环境的方法。对关系数据库的该访问是通过转换器应用执行的,该转换器用于提供面向对象的环境和关系数据库之间的应用协议界面。
这种架构的有关问题是增加了应用开发者必须应对的复杂性。在典型的客户机-服务器应用的开发过程中,开发者具有图形开发工具并直接访问数据库数据。这简化了过程,因为开发者仅必须应对两个层而非3个或更多。
在n等级分布式应用的开发期间的许多情况中,要实施几种客户机应用。典型的一种应用是具有图形用户界面(GUI)的完整(fully-fledged)JAVA客户机且另一种是基于光滑WEB浏览器的应用。处理的数据必须发送到WEB或应用服务器。当数据已发送到WEB服务器时,它们必须被处理-转换,用于应用服务器。随后,应用服务器执行对象逻辑或商业逻辑并创建语句来询问数据库。由于架构相当复杂,应用开发者常被迷惑和失败。
因此,期望一种方法和装置用于简化多等级环境中所有等级中的应用生成。
根据本发明的一个方面,提供了一种方法以生成多等级环境中的所有等级中的应用。该方法包括访问综合配置代码,它包括每个所述级中生成应用所需的所有信息的代码片段。所述信息包括数据、命令、定义、布置等。例如可以通过接收、检索、借助用户输入生成以及重新操作之前存储的综合配置代码来实现访问。在配置代码中,随后分析所述多级环境的至少一个级中的至少一个应用所需的所有片段。为所述至少一个级提取分析的代码片段,并将其转换或转化为每个级的级专用应用代码。
在本发明的实例性实施例中,该方法进一步包括识别所述综合配置代码中所述多级环境的至少一个级所需的所有代码片段。
在另一个实施例中,所述级专用应用代码是JAVA代码。Java代码可以编程应用而不依赖实际使用的硬件,提供可以在等级中的几乎所有服务器-、中间件或客户机装置上运行的应用。因此,所生成的应用不需要可得应用程序界面的附加信息或为其生成该应用装置的其它专有特点。因此,综合配置代码可节省所有的装置或平台专用信息。
该方法的另一个实例性实施例还包括将所述级专用应用发送或发出到所述多级环境中的装置中。
根据本发明的另一个方面,提供了一种用于生成综合配置代码的方法。综合配置代码的生成包括接收数据库的数据库表的至少一个表示。所述至少一个表示限定诸如数据库中的商业对象的对象。例如,这可通过用户输入等进行。此后,在存储所述表的数据库中检索所述至少一个表示所代表的至少一个数据库表的所有元信息。元信息包括内容信息和有关附加信息,诸如所述至少一个数据库表的属性和关系。元信息可包括有关数据库表与其它(甚至未列出)数据库表的关系的信息。表和元信息用于生成综合配置代码。综合配置代码包括用于从所述数据库检索的所有元信息的代码片段,其需要用它们生成每个所述等级中的应用。配置文件包括将表的所述表示限定的所述对象映射到所述配置文件所需的所有信息。配置文件可被处理或修改以改变和变化所述对象的关系和内容。完整配置文件限定所述对象及其掩码,包括对象逻辑(例如,商业逻辑),如确认、相似诸如格式、不同等级之间的通信以及数据库上的存储。不能从数据库派生出的配置文件的所述部件必须从其它之前生成的配置文件、从库或经由用户输入而生成。
在一实例性实施例中,所述综合配置代码是XML(可扩展标记语言)文件。通过使用XML文件,可独立于实际使用的装置生成和处理该配置代码。另一个优点在于XML提供便于使用的可移植数据和代码格式。完整配置XML文件能编码数据,诸如对象和数据对象的内容以及所述数据和数据对象的显示的程序部分和配置。
本发明允许开发者将所有方面维持一处并生成一实现。开发者可创建骨架多等级应用而不用编程努力,因为完整配置文件是自动生成的。开发者可通过由XML配置文件提供的生成骨架专心于应用专用实现的特定行为。
本发明之后的要点包括例如商业对象的所有对象可映射到数据库表。因此,可以在配置文件中描述该映射。根据本发明的一个方面,这是通过使用生成器实现的,该生成器将一个或多个数据库表作为变元并通过从指定表的数据库中读取元信息创建基配置文件。
配置文件还可用于配置对象的显示。换句话说,可指定如何格式化属性的值、如何使该值生效、GUI部件具有什么视觉形式和尺寸(Textfield、Checkbox、Dropdown、Menu...)。此外,可以指定标签和配置文件中的其它方面而不实际用JAVA编程。全部信息描述一实体,它事实上是解散或分解对象的蓝图。
本发明使用以下技术JAVA,XML和JSP(Struts)。Java是面向对象且独立于平台的编程语言,用于生成应用程序。SWING是图形用户界面类库,诸如用于在Java环境中生成用户界面的ATW,代替使用SWING,类似于ATW的任何其它标准GUI库也可用于生成应用程序的GUI。JDBC(Java数据库连接)是用于关系数据库中使用的SQL(结构化查询语言)命令执行的Java-API(应用程序界面)。JDBC可用于具有对SQL数据库的直接访问的所有应用中。XML(可扩展标记语言)用于配置文件。XML的扩展性使其存储数据且XML提供分析程序、DTD(文档类型定义)以便将XML文件转换成JAVA应用程序。JAVA服务器页面(JSP)用于生成用于因特网的GUI和HTML应用程序。JSP例如可用STRUTS生成,它是利用预存的设计模式帮助JSP应用程序开发的开放源框架。
当开发者最终为实体指定所有的需要信息时,可生成必要的代码文件。
每个实体所生成的文件是1.Java Class Source files(Java类源文件)·Swing Panel(Swing面板)·Swing Table(Swing表)·Client Object(客户机对象)·Server Object(服务器对象)·Data object of the Object Logic(对象逻辑的数据对象)
·Struts Action(Struts动作)·Struts Form(Struts形式)2.JSP(Java服务器页面)页面·Presentation of the Object(对象的显示)根据本发明的另一个方面,提供了软件工具它包括程序代码装置用于在计算机或网络装置上运行所述程序产品时实施以上描述的方法。
根据本发明的另一个方面,提供了可从服务器下载用于实施以上描述的方法的计算机程序产品,它包括用于在计算机或网络装置上运行所述程序时执行以上描述的所有步骤的程序代码装置。
根据本发明的另一个方面,提供了计算机程序产品,它包括计算机可读介质上存储的程序代码装置,用于在计算机或网络装置上运行所述程序产品时实施以上描述的方法。
根据本发明的再一个方面,本发明提供了计算机装置,用于在多等级环境中为每个级生成分布式应用程序。计算机装置包括接收模块、控制器、用户界面和网络模块。接收模块需要用于接收包含用于多级环境的不同级的代码部分的综合配置代码。控制器连接到所述接收模块,并被配置用于分析、识别、提取和转换所述综合配置代码的代码部分成为所述环境中每个等级的级专用应用代码。用户界面连接到所述控制器,以扩展和修改所述综合配置代码。网络模块连接到所述控制器,以便将所述生成的级专用应用代码传递到网络中的其它装置。
以下将通过参考附图详细描述本发明,其中

图1是描述多等级环境的框图;图2是描述XML配置文件的生成实例的框图;图3是用于数据库信息到XML文件的映射的简单实例;图4是XML实体配置文件的实例;图5是XML特性配置文件的实例;图6是XML关系配置文件的实例;图7是描述多等级环境形式XML配置文件中应用程序生成实例的框图;图8是商业对象的Swing屏幕实现的实例;
图9是表的Swing表实现的实例;图10是与商业对象的交互的确认和通知的实现实例;图11是保持商业对象的数据的实现实例;图12是执行商业对象的服务器侧商业逻辑的钩(hook)的实现实例;图13是描述图形用户界面和数据之间的绑定实例的框图;图14到17描述了客户机和服务器之间数据对象的同步过程的实例;图18到22是前述生成过程中使用的代码的不同属性的属性实例。
在其它情况中,将省去已知方法、界面、装置和信令技术的详细描述以不使描述含糊。
图1是描述典型的多等级环境架构的概观的框图。分布式应用是典型的客户机-服务器应用的进一步的开发版本。也被称作n等级或多等级应用的这种分布式架构的主要优点是单独层(等级)的清楚分离。所描述的多级或多等级环境由数据库服务器2、应用服务器4、客户机应用6、网络服务器8和HTML(超文本标示语言)客户机10组成。数据库服务器2表示多等级环境的第一或最低等级。数据库服务器2用于维持持久数据,并以表、项、属性、关系和其它元信息的形式物理地存储数据库的数据。数据库服务器使用数据库服务器应用来检索物理存储的数据并与应用服务器4交换数据。
应用服务器4形成环境的第二等级。应用服务器4分别形成数据库服务器2和客户机应用6以及网络服务器8之间的链路。应用服务器4用于执行对象逻辑或商业逻辑并根据从客户机6和网络服务器8接收到的请求生成询问以询问数据库服务器2中存储的数据。请求可包括读出操作以便检索数据库中存储的信息或者包括写入操作以便改变数据库的内容。为了执行读出操作,应用服务器4包括询问构造器应用和数据对象更新器以便执行与从客户机6或网络服务器8接收到的请求相对应的写操作。为了执行通信和处理数据库服务器2、网络服务器8和客户机6之间的不同协议,应用服务器4使用应用服务器应用。
客户机6连接到应用服务器4以便将数据对象请求发送到数据库服务器2并更新数据库服务器2中的数据对象。客户机6形成第三等级。客户机6包括用于演示和用户交互的图形用户界面(GUI)以简化数据库访问。通过用户终端上运行的客户机应用执行GUI和与应用服务器4的数据交换。
网络服务器8连接到应用服务器4以便在数据库服务器2和HTML客户机10之间交换数据对象请求和数据对象。网络服务器8用于准备演示并形成该环境中的第四等级。网络服务器8包括数据对象更新器和数据请求执行器以解释不同协议并在HTML客户机10和应用服务器4之间传递请求。数据交换和解释通过网络服务器执行。
HTML客户机10连接到网络服务器8以通过网络交换数据并提供数据库访问。HTML客户机10形成该环境中的第五等级。HTML客户机10将从网络服务器8接收的HTML代码转换成网页,作为用于演示和用户交互的图形用户界面。网页必须被定义为HTML图形应用。
为了提供所有这些应用,必须生成数据库服务器应用、应用服务器应用、客户机应用、网络服务器应用和HTML图形应用。应用开发者必须应对高复杂性的问题。
在n等级分布应用的开发中的许多情况中,必须实现几种客户机应用。通常,一种应用是具有GUI的完整JAVA客户机(客户机6)而另一个是基于光滑(slick)网络浏览器应用(网络服务器8)。要处理的数据必须被发送到网络8-或应用服务器4。当数据已被发送到网络服务器8时,它们必须被处理-为应用服务器4转换。随后,应用服务器4执行对象逻辑或商业逻辑并创建语句来询问数据库服务器2。由于该架构相当复杂,甚至很小的错误也会引起不同等级之间交互的故障。
图2是框图,描述了XML配置文件26的生成实例。该方法基本包括两个以上或以下的独立子元素,形成完全综合配置代码的应用生成,以及借助数据库的元信息和应用特定要求的配置代码生成。后者在图2中描述。这两个子方法都有助于简化多等级环境中的应用生成。
为了生成完全综合配置文件26用于生成分布JAVA应用以与具有至少一服务器等级和一客户机等级的多等级环境中的数据库相互作用,对象或商业对象的属性必须固定。在关系数据库中,确定包含所需信息的表20可以这么作。在已确定包含有关信息的表20的情况中,可以从包含该信息的数据库24中检索表之间的各关系。如果要生成的应用被设计成访问数据库的现有表,确定所需的表,例如在表20的列表中就足够。诸如数据结构的附加信息也可从数据库24中检索。或者,可确定仅单个表元素和各关系,以生成例如用于应用的示范版本。
基于表和元信息,配置文件可被生成22。配置文件26可生成为包含用于所需应用的所有信息的XML配置文件。从而,数据库表的选择或这些表的表示以及限定数据库或商业对象的各关系可被映射到配置文件。根据期望的或所需的等级数量的附加信息也可在配置文件的生成之前确定。
基本想法是限定完整文件中的所有属性,并用生成环境的所有等级中的应用所必需的所有信息生成单个组合。从而不仅限定单个应用所必需的单个属性,而且在单个文件中集成了单个等级的全部结构。基本上,该想法可与通过首先生成一图画并仅从其切割所需的块的七巧板单个部分的生成相比,其中保证从相同图画切下的所有部分都可被装配,而非分别生成单个部分但希望在某处有其它部分相配。
在将表名20列表传递到实体生成器22时,生成器22用从数据库24检索的信息创建缺省配置文件26(entities.xml)。为了生成完整配置文件,应用使用XML技术,诸如分析程序和DTD(文档类型定义)。
图3描述了数据库表到XML文件的映射的简单实例。该生成可体现为将具有其结构和内容的例如ODBC-或ORACLE或Trans-Base-数据库转换成XML文件的转换器从简单数据库表30开始,表的实体被映射到XML配置文件30。该实例仅描述了表的结构和内容而没有描述单个元素之间的任何关系。应注意,本实例不限于价格表,且可应用于任何类型的表内容,诸如部分表等等。该实例仅用于提供如何实现完整文件生成器的一个方面的想法。根据XML设计规则,表名列表形成XML文件部分的开始<price list>和结束</price list>。其它属性也形成具有关于列表内容的附加信息的子元素。由于表中相对较少量的元素,表和所选表元素之间的映射函数应清晰,并提供如何实施配置文件生成器的足够指示。生成器的准确实施取决于所使用的数据库结构、所使用操作系统以及用于实现生成器的计算机语言。
图4是完整配置文件的XML实体配置文件部分的实例。实体用于限定相同类型的对象或商业对象。实体配置文件(entities.xml)包括XML标记<entity以使以下文本的意思与实体有关。
不关闭标记以表示所描述的选择仅仅是实例性的且不限于所描述的文本。在围起的部分中,列表定义实体属性,其限定了对象的名字、标签和注释。通过布尔类别名、文档类别名、条件可能条件错误、标记的主要键和唯一键进一步定义实体。
图5是XML特性配置文件的实例。特性限定对象或商业对象的属性。如图3和4中的描述,文件节以XML标记50<attributes>开始,该标记将以下文本识别为特性。第一特性使标签“Deal id”与名称“DEALID”有关。以下,限定实体的类别名、格式和实体最大位数。下一个特性标记限定实体“inspection date(检查日期)”的特性。
图6是XML关系配置文件的实例。XML标记60<relation>指定的关系表示在存储或加载对象或商业对象时的连接。图中,含名称“dealcontract”的实体“CONTRACT”被分配给父母特性“DEALID”。类似地,含名称“dealpartner”的实体“PARTNER”被分配给父母特性“DEALID”。其它特性类型是描述符、标识符、任选描述符且也可以限定或固定其它功能性。
可从数据库中存储的元信息中提取实体、特性和关系。配置文件本身可自动生成,如果只确定数据库表,并从数据库中检索各元信息。
图7是框图,描述多等级环境中的应用生成形式XML配置文件的实例。如图2所讨论的,该方法基本包括两个以上或以下的独立子元素,形成完全综合配置代码的应用生成,以及借助数据库的元信息和应用专用要求的配置代码生成。前者方法在图7中描述。
采用XML配置文件70中定义的实体和特性以及关系信息,框架生成71基类别,用于多等级环境的所有等级中的应用。在客户机侧72上,生成用于对象或商业对象73以及用于屏幕和表75的应用。在服务器侧73上,生成用于对象或商业对象77以及用于实体管理器存储78的应用。生成器71还生成用于数据对象76的中间件应用。
应用的生成可使用JAXB(用于XML捆绑的Java架构)的扩展版本,以将XML元素映射到Java编程语言中的类。标准JAXB不能识别每个等级中的单个应用所必需的XML文件中的有关片段。因此,在Java应用的生成之前,必需提供附加元件或工具来分析、识别和提取XML文件中的有关代码片段。
基本想法是生成具有在环境的所有等级中生成应用所必需的所有信息的单个组合。基本上,可以将该想法与通过首先生成一图画并将其切成碎片的七巧板生成相比,其中保证所有部分是适配的,而非分开生成每个部分并期望它们能相配。
图8是商业对象的Swing屏幕实现的实例。Swing屏幕实现被提供作为实例性的格子袋布局(gridbag layout),将含数据的可视组件绑定到相应的对象或商业对象。SWING是图形用户界面类库,诸如用于生成用户界面的ATW,可以将类似于ATW的任何其它的标准GUI库用于生成应用的GUI而取代使用SWING。客户机解释所描述的Swing屏幕以显示用户输入的保护空白并检索对象标识(dealid)的输入上的输入之后对象交易的创始日期。Swing屏幕实例的所有描述的代码片段都可直接从XML配置文件生成。
图9是作为Swing表代码的数据库表的实现的实例。采用缺省描绘器和编辑器,栏被定义为(不)可分类的、可编辑的、(不)可调节大小的、优选-最小-最大字符数等等。Swing表实例的所有描述的代码片段可从XML配置文件直接生成。
图10是与对象或商业对象的交互作用的确认和通知的实现实例。如果对象或商业对象已改变,则客户机侧确认对象或商业对象,通知寄存器收听器。
图11是用于保持对象或商业对象的数据的实现实例。如被修改,将用于保持对象或商业对象的数据的数据对象发送到服务器。Swing实现具有某些帮助方法,类似于“isModified()”。图12是执行对象或商业对象的服务器侧对象逻辑或商业逻辑的钩的实现实例。它通过统计方法提供,而没有任何状态。
图13是框图,描述了图形用户界面和数据之间的绑定实例。框图显示对象或商业对象的数据如何与显示层交互。这是利用MVC(模型、视图、控制器)模式进行的,它在面板生成时由代码发生器实现。
所描述的图形用户界面(GUI)130包括用于接收用户输入和显示数据的不同部件。每个输入部件都由适配器132登记到各收听器。在GUI130的接收部件的用户输入的情况中,适配器从该部件获得值并将其委托给对象或商业对象134。对象134浏览所有其登记的收听器以执行改变事件。改变事件由适配器控制器136接收,其接着根据属性控制部件以便在GUI130中显示格式化值,其中属性绑定到控制。
图14到17描述了客户机和服务器之间数据对象的同步过程的实例。
图14描述了对象140,其中数据对象由客户机改变。客户机应用从对象140提取改变的或修改的数据对象142并将所提取的修改的数据对象142发送到服务器。
图15描述了在修改的数据对象接收时服务器的反应。每个接收到的修改数据对象150首先分配(151)给数据库表155,以确认数据对象是否是可分配的,数据对象的值已改变。随后,执行更新动作152,所述更新动作包括存储中和表155中的永久数据的更新152。为了确认该更新,改变数据是来自存储中的读出154,且更新的数据对象被返回给客户机。
图16描述了对于来自服务器的更新数据对象162的接收的客户机反应。更新对象的表160中的数据对象162执行该更新。
图17描述了对于更新对象172的客户机反应。更新对象172用于更新客户机显示器上的GUI部件170。在更新过程之后,显示所有数据对象,由GUI和对象指定的更新和未改变的数据对象。GUI部件170的更新是通过使用收听器和适配器应用程序执行的。
提供客户机和服务器之间的交互所必需的所有以上应用程序可从单个XML文件中生成,其指定指定对象本身,GUI提取和更新过程以及数据对象的属性。总之,图14-17呈现了来自一个或多个客户机的数据如何与数据库同步而不必通过应用开发者编写专用代码。
图18到22是上述生成过程中使用的代码的不同属性的属性实例。
图18描述了实体的属性,诸如名字、标签和对实体的注释。其它属性涉及实体的类型和处理、数据类型、解释该实体所必需的语言、错误消息的情况、对象类名、数据对象类名、准许的访问类型,实体中的属性列表。
图19描述了用于实体的数据库有关属性。诸如计划、写入和读取表、主键和在数据库中生成主键、查找、选择、更新、删除和插入数据对象的语句。
图20描述了用于特性的属性选择。
图21描述了用于特性的GUI有关属性。GUI有关属性用于在正文段、标签、复选框、图表、代码表等中或作为它们排列数据。可通过限定行和列的数量来安排GUI中描述的表,且可将代码表名用于命名一表。
图22描述实体之间的关系。关系名字和实体名应为清楚的,以描述其关系和由所述关系关联的实体。外部关键码用于限定键以连接实体。外部关键码用于实现配置文件中的数据库元信息中的不同关系。在图6中,仅示出关系“parentattribute”,其它关系也可限定为1∶1,1∶n或n∶m关系,任选和限制关系以及一个两个或更多表之间的关系。
该应用包含采用实例帮助的本发明实现和实施例的描述。本领域熟练技术人员将理解,本发明不限于以上呈现的实施例细节,且本发明可以其它形式实现而不背离本发明的特性。以上实施例应被认为是说明性的而非限制性的。因此,实施和使用本发明的可能性仅由所含权利要求书限定。结果,如权利要求所确定的实施本发明的各种选项(包含等效实施)也属于本发明的范围。
权利要求
1.一种为多级数据库环境中的每个级生成分布应用的方法,其特征在于,包括接收综合配置代码,它包括生成每个所述级中的应用所需的所有信息的代码片段;分析所述多级环境的至少一个级所需的所述综合配置代码中的所有代码片段;提取用于所述至少一个级的所述被分析的代码片段;以及将所述提取的代码片段转换成用于每个提取级的级专用应用代码。
2.如权利要求1所述的方法,其特征在于,所述分析步骤包括识别所述多级环境中的至少一个级所需的所述综合配置代码中的所有代码片段。
3.如权利要求1所述的方法,其特征在于,所述级专用应用代码是JAVA代码。
4.如权利要求1所述的方法,其特征在于,进一步包括将所述级专用应用代码发送到所述多级数据库环境中的装置。
5.一种生成多级数据库环境中的综合配置代码的方法,其特征在于,包括接收所述数据库的数据库表的至少一个表示;检索由来自所述数据库的至少一个表示所代表的所述数据库表的所有元信息,所述元信息包括涉及与所述至少一个数据库表有关的附加信息的内容的信息;生成综合配置代码,它包括用于从所述数据库检索的所有元信息的代码片段。
6.如以上任一权项所述的方法,其特征在于,所述综合配置代码是XML文件。
7.一种软件工具,它包括计算机可读介质上存储的程序代码装置,用于在计算机或网络装置上运行所述软件工具时执行如权利要求1到6中任一项所述的方法。
8.一种计算机程序产品,它包括计算机可读介质上存储的程序代码装置,用于在计算机或网络装置上运行所述程序产品时执行如权利要求1到6中任一项所述的方法。
9.一种计算机程序产品,它包括程序代码,可从服务器下载,用于在计算机或网络装置上运行所述程序产品时执行如权利要求1到6中任一项所述的方法。
10.一种用于为多级环境中的每个级生成分布应用的网络装置,其特征在于,包括接收模块,它接收包含用于多级环境的不同级的代码片段的综合配置代码;控制器,它被连接到所述接收模块,并被配置成分析、提取和转换所述综合配置代码的代码片段为每个级的级专用应用代码;用户界面,它连接到所述控制器,以修订所述综合配置代码;网络模块,它连接到所述控制器,以将所述级专用应用代码传递给网络中的其它装置。
全文摘要
揭示了一种为多级数据库环境中的每个级生成分布应用的方法和装置,包括接收综合配置代码,它包括生成每个所述级中的应用所需的所有信息的代码片段;分析所述多级环境的至少一个级所需的所述综合配置代码中的所有代码片段;提取用于所述至少一个级的所述被分析的代码片段;以及将所述提取的代码片段转换成用于每个提取级的级专用应用代码。
文档编号G06F9/44GK1809811SQ03823229
公开日2006年7月26日 申请日期2003年9月16日 优先权日2002年10月4日
发明者A·塞恩克 申请人:瑞士再保险公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1