应用框架的开发方法和该方法使用的上位框架的制作方法

文档序号:6452044阅读:136来源:国知局
专利名称:应用框架的开发方法和该方法使用的上位框架的制作方法
技术领域
本发明涉及用于作成应用程序(下面也简称为应用)的应用框架(下面也简称为框架),尤其涉及利用上位框架开发框架的方法、和该方法中使用的上位框架。
背景技术
框架是构成应用的构件的种类和规定它们的关系的对象指向程序。利用这种框架,应用开发者可通过根据框架定义独立的构件来作成应用,从而大大减轻了应用开发中的设计负担。由于这种利用状态,框架常常被叫作“半完成的应用”。
原来,这种框架的考察方法被广泛熟知,关于框架的基本设计要素,一般也是公知的(参考文献1“E.Gamma等的Design PatternsElements ofReusable Object-Oriented Software.USAAddison-Wesley.1995.(本位田等(编译)。可面向对象再利用的设计方案。东京softbank(日本最大的软件出版商)出版社.1995年”)下面由图49说明利用框架作成的应用的一般构成。
如图49所示,原来的应用110备有包含彼此具有参照关系的多个抽象类114的框架111、包含对框架111的各抽象类114定义的操作(方法)提供安装的多个构件115的构件群112、利用框架111和构件群112执行整体处理的应用主体113。这里,应用主体113具有选择应用110利用的构件115并对它们进行初始化和设定(配置)的工厂部116、通过参照并调出由构件115提供安装的抽象类114来执行处理的客户部117。
这种应用110中,需要处理变更和追加时,通过进行对构件群112的各个构件115的追加、变更和替换等来对应。这里,各构件115是通过继承框架111中包含的特定的抽象类114而作成的程序模块,各构件115的追加、变更和替换可通过在框架111和应用主体113(尤其是客户部117)中透过的形式,即,不使这些设计和安装等中产生变更地来进行。
如上所述,通过利用框架开发应用,可大幅度减轻应用开发的设计负担,也能容易进行应用中的处理变更和追加。
但是,开发适合于开发应用的高品质的框架需要较大成本(参考文献2“D.Robert等的Patterns for Evolving Frameworks.In Pattern Languagesof Program Design 3.USAAddison-Wesley.1997.(细谷等(编译)。用于框架发展的模式。用于程序设计的模式语言Pattern Languages of ProgramDesign选集(收录)。东京softbank(日本最大的软件出版商)出版社.2001年”).实际的应用开发中,必须组合运用多个框架的情况居多(参考文献3“M.Fayad等的Building Application Frameworks.USAAddison-Wesley.1999.),但一般讨论以相互运用为前提的框架的具体设计方法。

发明内容
本发明是在考虑了上述几点之后作出的,其目的是提供可容易且高效地开发适合于开发应用程序的高品质的应用框架,即应用框架间的相互运用性、扩展性和附加价值等高的应用框架的、利用上位框架应用框架的开发方法和该方法中使用的上位框架。
本发明作为第一解决方案,提供一种利用上位框架的应用框架的开发方法,其特征在于在利用上位框架来开发应用框架的方法中包含准备上位框架的步骤,该上位框架是对多种应用框架实现公共处理的上位框架,具有包括用于将对象间构造规定为图形构造的类构造的对象间构造机构、包括用于进行对象间移动和对象的处理执行的类构造的处理执行机构;通过将上述上位框架的上述对象间构造机构和上述处理执行机构中包含的对象直接地、或以边对其扩展边组合的方式来定义构件、作成应用框架的步骤。
上述第一解决方案中,更好是上述上位框架还具有用于对对象追加新的功能的功能扩展机构,作成上述应用框架时,通过将上述功能扩展机构包含的对象直接地或边对其扩展边组合来定义构件。
上述第一解决方案中,更好是上述上位框架还具有对随着对象的处理的执行产生的错误执行错误处理的错误处理机构,作成上述应用框架时,通过将上述错误处理机构包含的对象直接地、或以边对其扩展边组合的方式来定义构件。
此外,更好是上述上位框架还具有通知与随着上述各机构的处理所发生的事件相关的信息的事件通知机构、和根据经该事件通知机构通知的信息记录登录信息的登录机构。
另外,更好是上述上位框架还具有通知与随着上述各机构的处理所发生的事件相关的信息的事件通知机构、和根据经该事件通知机构通知的信息将与对象间构造有关的信息和与对象的处理的执行有关的信息中的至少一个进行可视化的可视化机构。
再有,更好是上述上位框架还具有进行上述各机构的初始化和设定的配置机构。更好是上述配置机构读入记述应用框架利用的机构的种类和它们的关系的框架定义信息、和记述利用应用框架作成的应用程序的对象间构造的脚本(script)信息,通过根据这些信息进行上述各机构的初始化和设定,构筑应用程序使用的对象间构造实体。
本发明作为第二解决方案,提供一种上位框架,在作成应用框架的上位框架中,其特征在于备有包括用于将对象间构造规定为图形构造的类构造的对象间构造机构;包括用于进行对象间移动和对象的处理执行的类构造的处理执行机构。
上述第二解决方案中,更好是还具有用于向对象追加新的功能的功能扩展机构。
上述第二解决方案中,更好是还具有对随着对象的处理的执行而产生的错误执行错误处理的错误处理机构。
上述第二解决方案中,更好是还具有通知与随着上述各机构的处理产生的事件相关的信息的事件通知机构、根据经该事件通知机构通知的信息、记录与对象的处理的执行有关的登录信息的登录机构。
上述第二解决方案中,更好是还具有通知与随着上述各机构的处理产生的事件相关的信息的事件通知机构、根据经该事件通知机构通知的信息、将与对象间构造有关的信息和与对象的处理的执行有关的信息中的至少一个进行可视化的可视化机构。
上述第二解决方案中,更好是还具有进行上述各机构的初始化和设定的配置机构。
根据本发明,可容易且高效地开发适合于开发应用程序的高品质的应用框架,即应用框架间的相互运用性、扩展性和附加价值等高应用框架。


图1是表示本发明的一实施例的上位框架的整体构成的类图;图2是说明图1所示的上位框架的框架开发时和应用开发时的利用方法的图;图3是说明图1所示的上位框架的对象间构造机构的利用方法的图;图4是说明图1所示的上位框架的处理执行机构的利用方法的图;图5是说明图1所示的上位框架的功能扩展机构的利用方法的图;图6是说明图1所示的上位框架的错误处理机构的利用方法的图;图7是说明图1所示的上位框架的事件通知机构的利用方法的图;图8是说明图1所示的上位框架的登录机构的利用方法的图;图9是说明图1所示的上位框架的可视化机构的利用方法的图;图10是说明图1所示的上位框架的配置机构的利用方法的图;图11是表示图1所示的上位框架的对象间构造机构的基本构造的类图;图12是表示使用图11所示的对象间构造机构相互连接2个框架的构件之间的例子的类图;图13是表示把图12所示的2个框架适用于具体应用例时的对象间构造的一例的图;图14是表示把图12所示的2个框架适用于具体应用例时的对象间构造的另一例的图;图15是表示图1所示的上位框架的处理执行机构的基本构造的类图;图16是说明使用图15所示的处理执行机构执行会计发票数据登录处理流程的例子的图;图17是表示图1所示的上位框架的功能扩展机构的基本构造的类图;图18是说明在图17所示的功能扩展机构中对可扩展的构件执行新的扩展功能对象时动态进行追加的情况下的顺序的图;图19是表示将图17所示的功能扩展机构适用于图12所示的框架的情况下的例子的图;图20是表示将图17所示的功能扩展机构适用于图16所示的框架时的例子的图;图21是说明在图17所示的功能扩展机构中分类节点访客对象取得对发票分类算法对象的参照并利用它的顺序的图;图22是表示与对象间构造机构一起使用图17所示的功能扩展机构时的例子的类图;图23是表示向图27所示的功能扩展机构追加多个功能扩展类的状况图;图24是表示图1所示的上位框架的错误处理机构的基本构造的类图;图25是与图1所示的上位框架的对象间构造机构、处理执行机构、功能扩展机构和错误处理机构一起表示的会计发票数据登录处理系统用的框架的类图;图26是表示图25所示的框架执行时的对象间构造的图;图27是表示图1所示的上位框架的事件通知机构的基本构造的类图;图28是将图27所示的事件通知机构适用于对象间构造机构时的例子的图;图29是将图27所示的事件通知机构适用于处理执行机构时的例子的图;图30是将图27所示的事件通知机构适用于功能扩展机构时的例子的图;图31是表示图27所示的事件通知机构的其他例子的图;图32是表示图1所示的上位框架的登录机构的基本构造的类图;图33是表示用于实现图1所示的上位框架的可视化机构中应用非执行中进行的可视化处理的部分的基本构造的类图;图34是表示用于实现图1所示的上位框架的可视化机构中应用执行中进行的可视化处理的部分的基本构造的类图;图35是表示应用执行中和非执行中使用的显示画面的一例的图;图36是表示应用执行中和非执行中使用的显示画面的另一例的图;图37是表示应用执行中显示的按钮显示画面的一例的图;图38是表示应用执行中显示的按钮显示画面的另一例的图;图39是表示应用执行中显示的上下文(context)显示画面的一例的图;图40是表示图39所示的上下文显示画面的应用例的图;图41是表示图1所示的上位框架的配置机构的基本构造的图;图42是表示图41所示的配置机构的动作例的图;图43是表示成为配置对象的框架的构成的类图;图44是表示与图43所示的框架对应的框架定义信息的图;图45是表示与图43所示的框架对应的对象间构造的例子的图;图46是表示记述图45所示的对象间构造的脚本信息的一例的图;
图47是表示根据图44所示的框架定义信息和图46所示的脚本信息构筑的对象间构造的一例的图;图48是表示用于实现关于本发明的一个实施例的、利用上位框架的框架的开发方法的计算机的一例的框图;图49是说明利用框架作成的应用的一般构成的图。
具体实施例方式
下面参考

本发明的实施例。图1到图48是说明本发明的一实施例的图。本实施例中,以利用上位框架开发事务处理系统的框架的情况为例来举例说明。图中,类图等的表示法中,使用UML(Unified Modeling Language)规定的一般程序构造图表示法(参考文献4“グラデイブチ著的UML用户指南。东京皮尔逊版本。1999”)1.上位框架的构成首先,说明用于作成框架的上位框架的构成。这里,上位框架用于实现多种框架公共的处理,统一对框架提供通常要求的非功能处理。上位框架通过作为对象指向语言的Java(商标)等进行安装。
图1是表示本实施例的上位框架的整体构成的类图。如图1所示,上位框架1作为上位框架核心10,具有对象间构造机构11、处理执行机构12和功能扩展机构13。上位框架1具有错误处理机构14、事件通知机构15、登录机构16、可视化机构17和配置机构18。上位框架1的各机构11~18分别如下所示。
(a)对象间构造机构对象间构造机构11是具有将对象间构造规定为图形构造的类构造的组件(package)。根据需要,通过类继承等来扩展功能扩展机构13,由此可构成对象间构造机构11。
(b)处理执行机构处理执行机构12是具有用于进行对象间的移动和对象的处理的执行的类构造的组件。处理执行机构12更好是利用对象间构造机构11和功能扩展机构13来构成。
(c)功能扩展机构功能扩展机构13是用于在编码时或执行时对对象追加新功能(动作和处理能力等)的组件。
(d)错误处理机构错误处理机构14是对随着对象的处理的执行产生的错误执行错误处理的组件。错误处理机构14更好是通过类继承等扩展上位框架核心10来构成。
(e)事件通知机构事件通知机构15是通知与随着对象间构造机构11、处理执行机构12和功能扩展机构13等的处理产生的事件相关的信息的组件。事件通知机构14更好是通过类继承扩展上位框架核心10来构成。
(f)登录机构登录机构16是根据经事件通知机构15通知的信息,记录与对象的处理执行有关的登录码(登录信息)的组件。登录机构16更好是利用上位框架核心10和事件通知机构15来构成。
(g)可视化机构可视化机构17是根据经事件通知机构15通知的信息,将与对象间构造有关的信息和与对象的处理的执行有关的信息中的至少一个进行可视化的组件。可视化机构17更好是利用上位框架核心10和事件通知机构15来构成。
(h)配置机构配置机构18是进行上位框架核心10(对象间构造机构11、处理执行机构12和功能扩展机构13)、错误处理机构14和登录机构16的初始化和设定(配置)的组件。如图2所示,配置机构18(和将其扩展了的配置机构28)读入记述框架利用的机构的种类和它们的关系的框架定义信息29、和记述利用框架作成的应用的对象间构造的脚本(script)信息31,并根据这些信息构筑应用中使用的对象间构造实体。
上述各机构11~18作为组件,即类的集合体提供,其细节后述。
2.上位框架的利用方法接着由图2说明图1所示上位框架1的框架开发和应用开发时的利用方法。图2是模式表示上位框架、框架和应用间的关系的图。
(框架开发时)首先说明利用上位框架1开发框架20的方法。
如图2所示,首先,准备具有上述的对象间构造机构11、处理执行机构12、功能扩展机构13、错误处理机构14、事件通知机构15、登录机构16、可视化机构17和配置机构18的上位框架1。
接着框架开发者根据成为开发对象的框架20的设计方针等,通过将上位框架1的对象间构造机构11、处理执行机构12、功能扩展机构13、错误处理机构14、事件通知机构15、登录机构16、可视化机构17和配置机构18中包含的对象直接、或以边扩展边组合的方式来定义构件,作成框架20。
下面说明上位框架1的各机构11~18的具体利用方法。
(a)对象间构造机构11的利用方法如图3所示,上位框架1的对象间构造机构11中包含实现基本图形构造的构件。具体说,包含为了实现有向图像(DG)结构、有向非循环图像(DAG)结构和树结构的构件。
作成框架20时,框架开发者使用上述图形构造中的任一个的情况下,直接利用该构件。与此相反,需要上述图形构造以外的构造时,扩展上位框架1的对象间构造机构11,并定义新的图形构造的构件(图形构造X)(对象间构造机构21)。
(b)处理执行机构12的利用方法如图4所示,上位框架1的处理执行机构12作为用于进行对象间的移动和对象处理的执行的机构,具有图形(graph)行人类和节点访客类(图形行人类和节点访客类具体在后面说明)。
作成框架20时,框架开发者继承处理执行机构12中包含的图形行人类和节点访客类定义具体的图形行人类(图形访客X)和节点访客类(节点访客X1,X2)(处理执行机构22)。
(c)功能扩展机构13的利用方法如图5所示,上位框架1的功能扩展机构13作为在编码时或执行时用于对对象追加新的功能(动作和处理能力等)的结构,具有可扩展构件和扩展接口(可扩展构件和扩展接口具体在后面说明)。
作成框架20时,框架开发者对安装功能扩展机构13中包含的扩展接口的具体扩展功能类(扩展功能X1,X2)(功能扩展机构23)进行定义。此时,对于可扩展构件,使用上位框架1中预先提供的,通常不需要扩展自身。
利用框架20作成应用30时,具有应用30独自追加的扩展功能时,可对装功能扩展机构13中包含的扩展接口的具体扩展功能类(扩展功能A1,A2)进行定义(功能扩展机构33)。
(d)错误处理机构14的利用方法如图6所示,上位框架1的错误处理机构14作为对随着对象的处理的执行产生的错误执行错误处理的机构,具有错误处理管理构件和错误处理类(错误处理管理构件和错误处理类具体在后面说明)。
作成框架20时,框架开发者继承错误处理机构14中包含的错误处理类之后,定义(错误处理机构24)具体的错误处理类(错误处理X1,X2)。此时,对于错误处理管理构件,使用上位框架1中预先提供的,通常不需要扩展自身。
利用框架20作成应用30时,有应用30独自追加的错误处理时,可继承错误处理机构14中包含的错误处理类来定义(错误处理机构34)具体错误处理类(错误处理A1,A2)。
(e)事件通知机构15的利用方法如图7所示,上位框架1的事件通知机构15作为通知在对象间构造机构11、处理执行机构12和功能扩展机构13等的处理时产生的事件相关的信息的接口,具有节点事件通知接口、图形行人事件通知接口、节点访客事件通知接口和功能扩展事件通知接口(这些通知接口具体在后面说明)。
作成框架20时,框架开发者选择事件通知机构15中包含的通知接口中的必要通知接口,并对安装该选择的通知接口的具体被通知者类(节点事件被通知者X、处理执行事件被通知者X、功能扩展事件被通知者X)进行定义(功能扩展机构25)。被通知者类中用1个对象同时接收多个事件群的通知。
(f)登录机构16的利用方法如图8所示,上位框架1的登录机构16根据经事件通知机构15通知的信息,作为记录与对象的处理执行有关的登录码(登录信息)的机构,具有安装了图形行人事件通知接口和节点访客事件通知接口的公共部登录构件(公共部登录构件具体在后面说明)。
作成框架20时,框架开发者在有框架20独自追加的登录处理时,对安装图形行人事件通知接口和节点访客事件通知接口的具体的固有部登录构件(固有部登录X)进行定义(登录机构26)。
(g)可视化机构17的利用方法如图9所示,上位框架1的可视化机构17根据事件通知机构15通知的信息,作为将与对象间构造有关的信息和与对象的处理的执行有关的信息中的至少一个进行可视化的机构,具有公共节点信息显示构件、有向图形显示构件、上下文显示构件、处理开始按钮显示构件和处理继续进行按钮显示构件(这些显示构件具体在后面说明)。
作成框架20时,框架开发者在有框架20独自追加的显示处理时,对具体的显示构件(框架固有节点信息显示)进行定义(可视化机构27)。
(h)配置机构18的利用方法如图10所示,上位框架1的配置机构18作为进行上位框架核心10(对象间构造机构11、处理执行机构12和功能扩展机构13)、错误处理机构14和登录机构16的初始化和设定(配置)的机构,具有工厂。这样的工厂有两种情况由全部的框架共同使用的情况、和对每个框架扩展来使用的情况。
作成框架20时,框架开发者在原样使用上述工厂时,直接利用该工厂。与此相反,在需要对每个框架扩展来使用工厂时,扩展上位框架1的配置机构18,定义框架20固有的工厂(框架固有工厂)(配置机构28)。框架开发者将框架20利用的机构种类和它们的关系作为框架定义信息29(参考图2)记述。
通过以上作成扩展了上位框架1的高品质的框架20。
(应用开发时)接着返回图2,说明利用这样被开发的框架20开发应用30的方法。
首先,应用开发者在有由应用30独自追加的扩展功能或错误处理时,如上所述,根据功能扩展机构13,23或错误处理机构14,24对应用30固有的构件进行追加定义(功能扩展机构33和错误处理机构34)。
应用开发者将利用框架20作成的应用30执行时的对象间构造记述为脚本信息31。
(应用执行时)之后,执行应用30时,如图2所示,启动配置机构18,28,通过配置机构18,28读入框架定义信息29和脚本信息31(参考符号(1)(2))。并且配置机构18,28根据该读入的信息,通过对对象间构造机构11,21、功能扩展机构13,23、错误处理机构14,24和登录机构16,26中包含的对象(构件)进行初始化和设定,构筑应用30使用的对象间构造实体37(参考符号(3))。此时,配置机构18,28也对事件通知机构25中包含的各被通知者类(参考图7)进行初始化和登录。
接着启动可视化机构17,27,生成用于监视构筑的对象间构造实体37的可视化对象35(参考符号(4))。
之后,由配置机构18,28启动处理执行机构12,22(参考图2的符号(5)),生成处理执行对象36(参考符号(6))。由此,在处理执行对象36的控制下,执行对象间构造实体37的处理。
3.上位框架中包含的各机构的构成和动作下面详细说明上位框架1中包含的对象间构造机构11、处理执机构12和功能扩展机构13、错误处理机构14、事件通知机构15、登录机构16、可视化机构17和配置机构18的构成和动作。
(概要)通过连接对象间形成的对象间构造通常可表示为有向图像构造。所谓有向图像构造是像节点A→节点B那样,通过母与子的关系表示节点间的图形构造,通过这种构造,可表现成为框架或应用的处理对象的事物或处理的顺序。
原来的框架中,一般地,在框架中的构件中,独立实现形成有向图形构造的接口和结构,因此不能用1个有向图形构造连接不同的框架的构件。
(基本构造)本实施例的上位框架1为解决这种问题提供一种具有将对象间构造规定为有向图形构造等的图形构造的类构造的对象间构造机构11。
图11是表示对象间构造机构11的基本构造的类图。如图11所示,对象间构造机构11具有含有0个以上的构件(实节点)的节点类41。节点类41表示有向图形构造中的1个节点,各节点可参照0个以上的子节点。此时,参照子节点的节点为这些子节点的母节点,从而表示形成有向图形构造的节点间的母子关系。
(具体例)接着通过图12到图14说明图11所示的对象间构造机构11的具体例。
图12是表示使用图11所示的对象间构造机构11去相互连接2个框架的组件之间的例子的类图,图13是表示将图12所示的2个框架适用于具体应用例中时的对象间构造的一例的图。如图12和图13所示,通过把形成有向图形构造的各节点连接于框架的构件(实节点),可将对象间构造({会计发票数据分类处理→会计页面区分处理→会计页面打印处理}和{会计发票数据分类处理→出纳页面区分处理→出纳页面打印处理})作为有向图形构造表示。这里,形成有向图形构造的各节点可连接于不同的框架的构件(实节点),因此可彼此连接不同的框架的构件。
可同时使用多个图11所示的对象间构造机构11,此时,如图14所示,可同时将同一构件集合作为多个有向图形构造表示。图14中,除图13所示的对象间构造(用“x1~x5节点”间的结合表示)外,还表示另外的对象间构造({会计页面区分处理→出纳页面区分处理→会计页面打印处理→出纳页面打印处理})。
(效果)通过图11所示的对象间构造机构11得到如下效果。
(1)不需要对每个框架进行有向图形构造的维持和管理用的机构的设计和安装等,因此框架开发效率和维修性得到提高。
(2)可将跨不同框架的多个对象间构造表示为1个有向图形构造,因此容易实现框架间的相互连接。
(3)可同时将同一构件(实节点)的集合表示为多个有向图形构造,因此对于同一对象的集合,可根据情况区分使用不同的处理流程。这种特性(多态性(polymorphism))尤其在需要根据处理种类更换对象间构造的系统中有效。如果全部预先定义需要的有向图形构造,则执行时对象间构造的更换可瞬时进行,可将对处理性能的影响抑制到最小限度。
(4)可不对构件(实节点)产生影响,仅单独定义或变更或再利用与有向图形构造相关的信息。
(5)可不对有向图形构造产生影响,仅追加地定义、替换或在多个有向图形中共有构件(实节点)。
(6)在同一存储器空间内结合构件(实节点)的情况下和跨过不同存储器空间(即在网络上)结合的情况下,连接方法不同。但是,在具有连接规定对象间构造的专用节点类的方法的情况下,不对构件(实节点)产生影响,可同时使用或相互更换各种连接方法。这种特性叫作配置透过性(deploymenttransparency)。
(概要)原来的框架中,一般是对框架中的构件(实节点)转移执行顺序的控制等,变更执行顺序、变更把控制从节点移动到节点时要进行的处理时,需要变更现有的类的编码。
(基本构造)本实施例的上位框架1为解决这种问题,提供具有用于进行对象间的移动和对象的处理执行的类构造的处理执行机构12。
图15是表示处理执行机构12的基本构造的类图。如图15所示,处理执行机构12具有图形行人类45和节点访客类46。
图形行人类45用于在对象间构造机构11等实现的类构造中在节点间移动。与图形行人类45对应的图形行人对象在移动目的地的节点中,根据节点访客类46生成该节点用的节点访客对象,派遣到节点。生成的节点访客对象执行该节点的处理(节点处理),图形行人对象根据其结果和图形构造决定接着要执行的1个或多个节点,移动到该决定的节点。图形行人对象在节点访客对象派遣前后和图形行人对象移动前后执行节点处理以外的追加的处理,可扩展整个处理。
节点访客类46用于在特定节点中执行节点处理。与节点访客类46对应的节点访客对象每当执行时从该节点取得必要信息,把节点处理的结果返回图形行人对象,节点访客类46可通过一种叫做访客(Visitor)的设计方法实现(参考上述文献1)。
各节点中要如何执行节点处理,这将依赖于对应该节点的构件种类。因此,使图形行人类45具有用于执行节点处理的编码时,每当构件种类增加或减少时,必须变更图形行人类45。因此,用于执行依赖于构件种类的节点处理的编码存在于对每个构件种类设置的各个节点访客类46中。由此,构件种类增加或减少时,可通过追加或删除与其对应的节点访客类来对应。
(具体例)接着由图16(a)(b)说明图15所示的处理执行机构12的具体例。
图16(a)(b)是说明使用图15所示的处理执行机构12执行会计发票数据登录处理流程的例子的图。图16(a)是与处理执行机构一起表示会计发票数据登录处理系统用的框架的类图,图16(b)是表示图16(a)所示的框架执行时的对象间构造的图。
如图16(a)(b)所示,会计发票数据登录处理系统用的框架47的各构件仅具有自己的子节点是哪个、自己提供的功能是什么的信息,关于从节点到节点的移动,由继承了图形行人类45的具体的图形行人类(数据处理行人类45a)和继承节点访客类46的具体的节点访客类(分类节点访客类46a和登录节点访客类46b)进行。数据处理行人类45a可呼叫登录构件48,登录节点访客类46b可呼叫数据库构件49。
下面说明图16(a)(b)所示的框架中装入会计数据时的处理的流程。
(1)客户(未示出)生成1个数据处理行人对象,并提供会计数据,指示处理开始。
(2)数据处理行人对象移动到发票数据分类节点,生成并派遣分类节点访客对象。
(3)[数据处理行人对象向发票数据分类节点移动的记录作为登录码传递到登录构件。](4)数据分类访客对象进行下面动作。
(4-1)从节点取得发票分类算法。
(4-2)启动发票分类算法,取得会计数据的分类目的地。
(4-3)把会计数据的分类目的地返回到数据处理行人对象。
装入的数据是会计数据的情况下,通过发票数据分类节点的算法(发票分裂算法)将会计登录节点作为分类目的地返回,因此也向数据处理行人对象返回该结果。
(5)[数据处理行人对象把发票数据分类节点的节点处理的结果作为登录码传递到登录构件。](6)数据处理行人对象向会计数据登录节点移动,生成并派遣登录节点访客对象。
(7)[将数据处理行人对象向发票数据分类节点的移动的记录作为登录码传递到登录构件。](8)登录节点访客对象根据自身的程序码,取得作为节点属性提供的会计数据库信息,通过把该会计数据库信息和会计数据传递到另外设定的数据库构件,执行实际登录动作。
(9)[数据处理行人对象把会计数据登录节点的节点处理结果作为登录码传递到登录构件。](10)指定接着要移动的节点期间,反复进行上述处理。在图16(a)(b)所示的框架情况下,未指定接着要移动的节点,因此数据处理行人对象执行该处理的完成动作。
(11)[数据处理行人对象将发票数据登录处理流程完成作为登录码传递到登录构件。](效果)通过图15所示的处理执行机构12得到如下效果。
(1)由于可分离各节点的功能和处理的执行控制,因此可单独变更或扩展每一个。具体说,例如上述具体例的处理流程中,执行对应括号包围的部分([~])的登录处理的编码存在于数据处理行人类内,因此在变更登录处理时仅变更数据处理行人类内的编码。或者不仅登录处理,例如取得了执行的集合(通过了几个节点等)的处理追加也可以只通过变更数据处理行人类中的编码来进行对应。
(2)有时通过框架跨构件(实节点)不同的存储器空间(即网络上)结合的情况。此时,处理的执行也必须跨存储器空间(处理空间)执行。但是,对象间移动和对象的处理执行用的专用对象(图形行人对象)中具有处理执行方法的情况下,通过变更或扩展该专用对象的功能可不对构件(实节点)作任何变更地进行对应。这种特性叫作配置透过性(deployment transparency)。
(3)由于构件(实节点)不具有特定处理的执行方法(或不依赖于其他构件),其他框架中也可利用构件(实节点),提高其再利用性。具体说,例如上述具体例的发票数据分类构件除在数据库登录发票数据的框架外,还可在用于开票打印发票数据的框架中使用,这是由于发票数据分类构件不依赖于数据处理行人类的处理执行。
(概要)所谓功能扩展是在编码时或执行时对对象追加新的功能(动作或处理能力等)。
原来的框架中一般地,通过使用类继承的扩展(静态扩展)或使用转移的扩展(动态扩展)之中的任一个方法进行这种功能扩展。
但是,上述方法中,使用类继承的扩展(静态扩展)中,进行多重扩展,即多重继承时,容易引起方法名和属性名的冲突,进行多重继承实际上很困难。也不能通过对象指向语言使用多重继承(例如Java(商标))。
使用转移的扩展(动态扩展)中,扩展功能时,必须变更现有的类的定义。为避免这种转移进行的功能扩展的缺点,已知使用兼用了类继承的类构造(一般叫作装饰器(Decorator))(参考上述文献1)。但是,该方法中,必须特别注意把功能扩展的对象设计为通过类继承进行功能扩展,成为功能扩展对象的扩征功能类也必须注意不损坏功能扩展的对象的功能来附加追加的功能,因此设计不容易。并且这种类构造中,难以进行多重扩展。
(基本构造)本实施例的上位框架1为解决这个问题,作为在编码时或执行时对对象追加新的功能(动作或处理能力等)的功能扩展机构13,提供一种使用了已知的扩展对象(Extension Object)的方法(参考上述文献2)的功能扩展机构13。
图17是表示功能扩展机构13的基本构造的类图。如图17所示,功能扩展机构13具有由客户50参照的可扩展构件51和可扩展构件51具有的扩展接口52,功能扩展可扩展构件51的扩展功能类53是通过继承扩展接口52而形成的。可扩展构件51具有取得对扩展功能类53的参照的getExtension方法。
这里,通过图18(a)(b)(c)说明执行时对可扩展构件动态追加新的扩展功能对象时的顺序。图18中,对象X对应客户50、对象A对应可扩展构件51、对象B对应扩展功能类53。
如图18(a)(b)(c)所示,首先,存在通过对象X参照的功能扩展前的对象A(图18(a))。
该状态下,配置扩展对象A的对象B时,该时刻完成对象A的扩展(图18(b))。
之后,对象X利用对象B时,通过对象A的getExtension方法取得对对象B的参照,在与对象B之间构筑暂时的参照关系(图18(c))。该参照关系在对象B的利用结束后消除。
(具体例)接着通过图19到图21说明图17所示功能扩展机构13的具体例。
图19是将功能扩展机构13适用于图12所示的框架43时的例子的图,图20是表示将功能扩展机构13适用于图16(a)(b)所示的框架47中时的例子的图。
如图19和图20所示,数据分类构件(发票数据分类对象)是功能扩展的对象,发票分类算法对象是对发票数据分类节点进行功能扩张,并将分类发票的功能赋给它的对象。
这里,如图20所示,功能扩展机构13可与处理执行机构12一起使用。此时,节点访客对象(分类节点访客对象)为客户,节点(发票数据分类对象)为功能扩展的对象。节点访客对象被设计成可预先知道访问目的地的节点具有哪种扩展功能对象,从而可以适当利用扩展功能对象。
下面通过图21(a)(b)说明分类节点访客对象取得对发票分类算法对象的参照并利用其的顺序。
首先,如图21(a)所示,分类节点访客对象利用发票数据分类对象的getExtension方法取得对发票分类算法对象的参照,在与发票分类算法对象之间构筑暂时的参照关系(步骤(1))。
之后,如图21(b)所示,分类节点访客对象根据构筑的参照关系利用发票分类算法对象对发票数据进行分类(步骤(2))。
功能扩展机构13也可与对象间构造机构11一起使用。如图22所示,功能扩展机构13的可扩展构件51作为框架的构件(实节点),可将扩展功能类53用作对象间构造机构11的节点类41(参考图11)。如上所述,对象间构造机构11中,1个构件可(实节点)同时成为多个有向图形构造的节点。因此,构件(实节点)可作为功能扩展对象具有多个节点对象。此时,客户(例如图形行人对象)对一个构件选择并取得特定有向图形构造的节点对象,因此对象间构造机构11的可扩展构件51中,getExtension方法可将扩展名作为自变数设置为2个以上的数据构造(例如getExtension(扩展名部分1,扩展名部分2,…..))。由此取得属于特定有向图形构造的节点对象时,例如可通过用“getExtension(节点名、有向图形构造名)”形式提供2个自变数来对应。
(效果)通过图17所示的功能扩展机构13可得到如下效果。
(1)由于不是使用类继承的扩展,因此如图23所示,不受到许可继承时必要的设计上的制约,可追加多个扩展功能类53。追加扩展功能类53(例如扩展功能C,D)时对现有的类(客户X,可扩展构件A和扩展功能B等)设计不产生影响。
(2)参照客户(对象X)由于通常是功能扩展的对象原样,即便在执行中配置对其进行动态扩展的扩展功能对象(扩展功能B),也不需要更换基本的参照关系。
(3)通过把功能扩展机构13的可扩展构件51作为框架的构件(实节点)、把对象间构造机构11的节点类41定义为扩展功能类53,各个构件(实节点)设计不依赖于对象间构造机构11的节点对象,即不具有装入节点对象的设计,一般将其处理为简单的扩展功能对象中的一个。
(概要)原来的框架中,一般地向框架中的构件(实节点)转移随着该构件的处理产生的错误处理,因此难以容易地变更、追加、删除错误处理。
(基本构造)本实施例的上位框架1为解决这个问题,提供对随着构件(实节点)等的对象的处理产生的错误执行错误处理(或例外处理)的错误处理机构14。
图24是表示错误处理机构14的基本构造的类图。图24表示出错误处理机构14与处理执行机构12一起使用的情况。如图24所示,错误处理机构14具有错误处理管理构件54和错误处理类55。
错误处理管理构件54从处理执行机构12的节点访客类46调出,对应来自节点访客类46的委托,选择与随着构件(实节点)等的对象处理产生的错误对应的错误处理类55来执行错误处理。
错误处理类55安装与随着构件(实节点)等的对象处理产生的特定错误对应的错误处理。
错误处理管理构件54和错误处理类55可作成一个对象,但通过作为另外的对象可将与错误处理的鉴定等相关的码汇总为1个,提高编码的维修性。
如图24所示,随着对象处理产生错误的情况下,节点访客类46把对象产生的错误返回图形行人类45(步骤(1))。
接着图形行人类45进行每当错误处理时需要的被准和登录处理等后(步骤(2)),对节点访客类46指示开始错误处理(步骤(3))。
之后,节点访客类46把错误信息传递到错误处理管理构件54,委托错误处理(步骤(4))。
这里,错误处理管理构件54根据从节点访客类46传递来的错误信息鉴定必要的错误处理后(步骤(5)),向可执行该鉴定的错误处理的错误处理类55委托错误处理(步骤(6))。
最后,委托了错误处理的错误处理类55执行错误处理(步骤(7)),返回其结果(“处理完成”、“未处理”、“产生新错误”等)(步骤(8))。
(具体例)接着根据图25和图26说明图24所示的错误处理机构14的具体例。图25是与对象间构造机构、处理执行机构、功能扩展机构和错误处理机构一起表示会计发票数据登录处理系统用框架的类图,图26是表示图25所示的框架执行时的对象间构造的图。
下面说明在图25和图26所示框架中通过数据分类构件的节点产生分类错误时的处理流程。
(1)分类节点访客对象访问具有发票分类算法对象的数据分类构件的节点(发票数据分类对象)。
(2)数据分类算法对象的处理失败时,数据分类构件的节点(发票数据分类对象)把错误(数据分类错误)返回分类节点访客对象。
(3)分类节点访客对象把错误返回数据处理行人对象。
(4)数据处理行人对象把错误发生的事实作为登录码记录下来。
(5)数据处理行人对象向分类节点访客对象指示开始错误处理。
(6)分类节点访客对象通过getExtension(“错误处理管理”)方法取得对数据分类构件的节点(发票数据分类对象)中设定的错误处理管理构件的参照,对错误处理管理构件委托错误处理。
(7)错误处理管理构件从自己具有的错误处理对象中鉴定与数据分类错误对应的(即,数据分类错误处理对象)那个,向其委托处理。
(8)数据分类错误处理对象执行与数据分类错误对应的错误处理,返回处理完成的结果。
(9)最后把错误处理结果返回分类节点访客对象,结束该节点的处理。
(10)数据处理行人对象根据构件(实节点)的对象间构造继续进行处理。
(效果)通过图24所示的错误处理机构14,错误处理被定义在从构件(实节点)独立的对象中,因此框架开发者和应用开发者可简单地变更、追加或删除错误处理。
(概要)登录处理、可视化处理等中使用与对象的处理执行有关的信息。
原来的框架中一般明确地从信息提供者对象呼叫信息利用者对象来提供信息。
但是,上述方法中,有下面缺点。即,第一,必须在信息提供者对象侧进行用于信息提供的设计。第二,每当追加初始的设计时未知的信息利用者对象时,必须变更信息提供者对象侧的设计。第三,对每个信息利用者对象而言,其呼叫方法不同,因此在信息提供者对象侧,必须具有用于提供配合各方法的信息的码。
(基本构造)本实施例的上位框架1为解决上述问题,作为通知与随着对象间构造机构11、处理执行机构12和功能扩展机构13等的处理产生的事件相关的信息的事件通知机构15,提供使用已知为多点传送(Multicast)的方法(参考文献5“Vlissides.Pattern HatchingDesign PatternsApplied.USAAddison-Wesley.”)的事件通知机构15。
图27是表示事件通知机构15的基本构造的类图。如图27所示,事件通知机构15具有向信息利用者对象58的每一个通知事件发生并提供信息的信息提供者对象56、接收来自信息提供者对象56的通知的事件通知接口57。通过安装事件通知接口57,定义信息利用者对象58。信息提供者对象56具有登录信息利用者对象的addReceiver方法和抹除信息利用者对象的登录的removeReceiver方法。事件通知接口57具有通知信息利用者对象58产生的事件的eventFired方法的定义。
图27所示的事件通知机构15中,信息提供者对象56通过addReceiver方法事前登录各信息利用者对象58后,经事件通知接口57对各信息利用者对象58通知事件发生并提供信息时(步骤(1)),各信息利用者对象58经事件通知接口57接收来自信息提供者对象56的通知,利用信息(步骤(2)(3))。
图28,29,30表示出把图27所示的事件通知机构15分别用于对象间构造机构11、处理执行机构12和功能扩展机构13的每一个时的例子。
这里,从对象间构造机构11提供信息时,如图28所示,对象间构造机构11的节点类41为信息提供者对象,从该节点类41经节点事件通知接口59通知事件的发生。节点事件通知接口59具有通知节点类41产生的事件(“追加子节点”和“删除子节点的”)的方法的定义。
从处理执行机构12提供信息时,如图29所示,处理执行机构12的图形行人类45和节点访客类46成为信息提供者对象,从节点访客类46经图形行人事件通知接口60通知事件的发生,从节点访客类46经节点访客事件通知接口61通知事件的发生。图形行人事件通知接口60具有通知图形行人类45产生的事件(“开始图形步行”和“结束图形步行)的方法的定义。节点访客事件通知接口61具有通知节点访客类46产生的事件(“要访问节点”、“结束访问节点”和“处理错误”)的方法的定义。错误处理机构14的错误处理结果的通知也经这种处理执行机构12进行。
另外,从功能扩展机构13提供信息时,如图30所示,功能扩展机构13的功能扩展的对象51成为信息提供者对象,从该功能扩展的对象51经功能扩展事件通知接口62通知事件的发生。功能扩展事件通知接口62具有通知功能扩展的对象51产生的事件(“追加扩展功能的”和“删除扩展功能的”)的方法的定义。
(具体例)事件通知机构15与登录机构16、可视化机构17一起使用。事件通知机构15的具体例与登录机构16和可视化机构17的构成与动作一起在后面说明。
(效果)通过图27所示的事件通知机构15得到如下效果。
(1)信息提供者对象56不管信息利用者对象58的种类、设计、数目如何,都用公共方法提供信息,即便追加、变更信息利用者对象58,也不需要变更信息提供者对象56侧的设计。
(2)框架中有在放置信息提供者对象56的存储器空间和放置信息利用者对象58的存储器空间不同的情况,此时,如图31所示,可通过在信息提供者对象56和信息利用者对象58之间放置安装事件通知接口57的远程代理(プロキシ)63(参考上述文献1)来对应。这种特性叫作配置透过性(deploymenttransparency)。
(概要)原来的框架中一般分别独立进行登录处理(记录与对象的处理执行有关的登录码(登录信息)的处理),作成登录码的信息的取出方式也各不相同。因此在不同的框架之间统一登录码的形式不是件容易的事。
(基本构造)本实施例的上位框架1为解决这种问题,根据对象间构造机构11、处理执行机构12和功能扩展机构13经事件通知机构15通知的信息,提供记录与对象的处理执行中有关的登录码(登录信息)的登录机构16。作为登录码,包含根据通常从上位框架1的构造得到的信息的部分(公共部)和根据由从上位框架1作成的框架附加的信息的部分(固有部)。
图32是表示登录机构16的基本构造的类图。图32是表示登录机构16与处理执行机构12(图形行人类45和节点访客类46)一起使用时的例子的图。如图32所示,登录机构16具有安装图形行人事件通知接口60和节点访客事件通知接口61的公共部登录构件64。在由框架20独自追加的登录处理的情况下,框架开发者定义安装图形行人事件通知接口60和节点访客事件通知接口61的具体的固有部登录构件65。
如图32所示,图形行人事件通知接口60中,作为输出框架和应用独自定义的登录码的方法,可追加通知“用户登录事件发生”事件的方法的定义。这种方法的定义可追加到节点访客事件通知接口61。
图32所示的登录机构16中,可省略公共部登录构件64和固有部登录构件65之中的任何一方。这里,省略公共部登录构件64时,登录码的记录方法由该框架全权决定。因此,框架开发者可更自由地设计登录处理。与此相反,省略固有部登录构件65时,上位框架1提供的公共部登录构件64完全进行登录码的记录。因此不需要根据框架固有的信息等追加内容时,不需要登录处理的设计。
(具体例)接着说明图32所示的登录机构16的具体例。这里,说明从处理执行机构12(图形行人类45和节点访客类46)提供信息时的处理流程。
(1)图形行人对象向公共部登录构件和固有部登录构件通知“开始图形步行”事件。
(2)公共部登录构件把下一个登录记录(公共部)输出到登录文件中。
“开始2001/09/01 111005 XXX处理”。
(3)固有部登录构件向登录文件输出下一个登录记录(固有部)。
“>>服务器处理ID0123456”(4)节点访客向公共部登录构件和固有部登录构件通知“要访问节点”事件。
(5)公共部登录构件把下一个登录记录(公共部)输出到登录文件中。
“开始2001/09/01 111006 YYY节点的处理”。
(6)固有部登录构件向登录文件输出下一个登录记录(固有部)。
“>>节点种类数据分类>>数据种类发票数据”(7)图形行人对象向公共部登录构件和固有部登录构件通知“用户登录事件发生”(表示作成对应框架或应用独自定义的登录事件的登录记录)。
(8)共部登录构件把框架或应用的登录码(公共部)输出到登录文件中。(该例中,固有部登录构件在“用户登录事件发生”中什么也不输出)。
“2001/09/01 111008应用初始设定读入完成。
初始设定文件名my_init.conf”。
(9)下面继续同样的处理。
(效果)通过图32所示的登录机构16得到如下效果。
(1)可按统一形式取出登录处理(与对象的处理的执行有关的登录记录(登录信息))。
(2)把进行登录处理的构件分给公共部登录构件64和固有部登录构件65,因此对于框架公共的登录处理的设计和安装等,不需要对每个框架作成,可将开发成本设为最小限度。
(3)由于作为独立的机构安装登录处理,框架开发者和应用开发者容易变更、追加、删除登录处理。
(4)通过将多个登录构件作为信息利用者对象登录,可同时实现多个登录处理。
(概要)像框架那样,由利用其的应用开发者使用内部处理的细节未必知道的设计和安装等的程序通常难以调试。这是由于程序的控制在框架的码和应用开发者独自作成的码之间急进急出,并且并不清楚框架码内的处理状况的缘故。
(基本构造)本实施例的上位框架1为解决这个问题,根据经事件通知机构15从对象间构造机构11、处理执行机构12和功能扩展机构13通知的信息,把与对象间构造有关的信息和与对象的处理的执行有关的信息经图形用户界面(GUI)提供给可视化的可视化机构17。作为可视化的信息,包含根据通常从上位框架1的构造得到的信息的部分(公共部)和根据由上位框架1作成的框架附加的信息的部分(固有部)。这种可视化处理,在应用不动作的非执行中进行,也在应用动作的执行中进行。在动作的非执行中进行的可视化处理中,进行对象间构造和节点信息的阅览、从应用独立的状态的处理的执行的试运行。另一方面,应用执行中进行的可视化处理中,除与对象间构造有关的信息和与节点有关的信息的阅览外,还进行与应用的动作一致的处理的执行监视和上下文的操作。所谓上下文信息是包含对处理执行机构12提供的数据(例如发票数据)等的信息。
图33和图34是分别表示可视化机构17中实现应用非执行中进行的可视化处理的部分和实现执行中进行的可视化处理部分的基本构造的类图。
这里,如图33所示,可视化机构17作为实现应用的非执行中进行的可视化处理的机构,具有有向图形显示构件66、公共节点信息显示构件67和框架固有节点信息显示构件68。
有向图形显示构件66显示与规定为有向图形构造的对象间构造有关的信息,也构筑图35和图36所示的显示画面72的显示部73。
公共节点信息显示构件67显示与节点相关的信息中上位框架1公有的信息,并构筑图35和图36所示的显示画面72中的显示部74或显示部75。
框架固有节点信息显示构件68显示与节点相关的信息中对框架特定的信息,构筑图35和图36所示的显示画面72中的显示部74或显示部76。
如图34所示,可视化机构17作为实现应用的执行中进行的可视化处理的机构,具有处理开始按钮显示构件69、处理继续进行按钮显示构件70和上下文显示构件71。
处理开始按钮显示构件69安装图形行人事件通知接口60和节点访客对象事件通知接口61,对框架指示处理执行开始。
处理继续进行按钮显示构件70安装图形行人事件通知接口60和节点访客对象事件通知接口61,对框架指示处理执行继续。
上下文显示构件71在应用执行中显示上下文信息。
(具体例)接着通过图35到图39说明图34所示的可视化机构17的具体例。
图35是表示应用执行中和非执行中使用的显示画面的一例的图。如图35所示,显示画面72上有显示与对象间构造有关的信息的显示部73、显示与显示部73选择的节点有关的信息的显示部74。
这里显示部73中,在有向图形显示构件66的控制下,对象间构造作为有向图形构造被可视化地显示,这种有向图形构造中,通过选择一个以上的节点(图35中选择的节点用粗线框包围),与该选择的节点有关的信息在公共节点信息显示构件67和框架固有节点信息显示构件68的控制下在显示部74显示。图35中,1个显示部74中,简略表示与节点有关的信息中上位框架公共的信息和对框架特定的信息,但如图36所示,可设置2个显示部(显示部75和显示部76),其中在显示部75中一览显示上位框架公共的信息(从对象间构造机构11和功能扩展机构13得到的信息),同时在显示部76中显示对框架特定的信息(设定为框架固有的类的信息)。
该显示画面72中,还可显示与应用的执行中对象的处理的执行有关的信息。此时,显示部73中,在作为有向图形构造显示的对象间构造中,顺序选择显示当前执行中的节点,与当前执行中的节点相关的信息显示在显示部74中。
图37和图38是表示应用执行中显示的按钮显示画面的一例的图,其中图37表示由处理开始按钮显示构件69显示的处理开始按钮显示画面77,图38表示由处理继续进行按钮显示构件70显示的处理继续进行按钮显示画面80。处理开始按钮显示画面77和处理继续进行按钮显示画面80分别具有处理开始按钮78或处理继续进行按钮81,用户可以控制处理的开始或继续进行的定时。
这里,框架的处理的执行由处理执机构12进行时,图34所示构成中,由节点访客类45进行构件(实节点)间的移动,之后,节点访客类46进行构件(实节点)的处理。此时,处理开始按钮显示构件69和处理继续进行按钮显示构件70中,设计为框架的处理,一直停止到与经图形行人事件通知接口60和节点访客事件通知接口61通知的事件接受有关的处理完成,压下处理开始按钮78或处理继续进行按钮81时,框架的处理开始或继续进行。
这种构成中,节点访客类45完成构件(实节点)间的移动时,节点访客类46开始构件(实节点)的处理之前,显示图37所示的处理开始按钮显示画面77。
这种状态下,处理开始按钮显示画面77中,用户压下处理开始按钮78时,处理执行机构12的节点访客类46开始构件(实节点)的处理,其完成之后,显示图38所示的处理继续进行按钮显示画面80。
之后,在处理继续进行按钮显示画面80中,当用户按下处理继续进行按钮81时,通过处理执行机构12的图形行人类45,向下一构件(实节点)移动,在移动完成时刻,显示图37所示处理开始按钮显示画面77。
处理开始按钮显示画面77和处理继续进行按钮显示画面80中,与处理开始按钮79或处理继续进行按钮81一起,设置显示部79,82,一起显示此时产生的错误信息(例如“错误(发票分类错误)产生”)或错误处理完成信息(例如处理“错误(发票分类错误)”)。
图39是表示应用执行中显示的上下文显示画面的一例的图。如图39所示,上下文显示画面83由上下文显示构件71(参考图34)显示,并可显示执行中的上下文信息。这种上下文显示画面83中,如图40所示,通过用户指定可更换上下文信息。
(效果)通过图33和图34所示的可视化机构17得到如下效果。
(1)应用执行中可阅览与对象间构造和节点等相关的信息,因此容易确认是否正确进行框架的初始化和设定(配置)。
(2)可实时地把握应用和框架的动作,从而容易进行调试和执行分析等。
(3)几乎不变更应用和框架的设计,可实现可视化处理。
(4)用于进行可视化处理的构件分为公共部节点信息显示构件67和框架固有节点信息显示构件68,不必要对每个框架作成框架公共的可视化处理的设计和安装等,从而可将开发成本降低到最小限度。
(概要)利用上位框架1作成的框架的特征可由下面的(1)~(5)中组合与该框架利用的机构对应的那些来记述。这种记述叫作框架定义信息。
(1)与对象间构造机构11相关,框架准备的构件的定义(2)与处理执行机构12相关,框架准备的图形行人类和节点访客类的定义以及这些构件(实节点)的定义的对应关系(3)与功能扩展机构13相关,框架准备的扩展功能类的定义和其构件(实节点)的定义的对应关系(4)与错误处理机构14相关,框架准备的错误处理管理构件和错误处理类的定义(5)与登录机构16相关,框架准备的固有部登录构件的定义如上所述,利用由框架定义信息定义的框架的应用中,每当执行处理时,需要进行框架中包含的各机构的初始化和设定(配置),并构筑对象间构造实体。对象间构造在框架定义信息的范围内与应用的处理内容一致被决定,但此时,需要准备面向各个应用的多个对象间构造,或对应1个应用规格(处理内容)的变更迅速更换对象间构造。
(基本构造)本实施例的上位框架1为解决上述问题,提供具有进行对象间构造机构11、处理执行机构12和功能扩展机构13、错误处理机构14和登录机构16的初始化和设定(配置)的工厂85的配置机构18。
图41是表示配置机构18的基本构造的图。如图41所示,配置机构18具有工厂85,读入记述框架利用的机构的种类和它们的关系的框架定义信息86、和记述利用框架作成的应用的对象间构造的脚本(script)信息87(步骤(1)),根据这些信息构筑应用使用的对象间构造实体88(步骤(2))。
此时,工厂85把边解释脚本(script)信息87边进行的配置的结果作为缓存信息89存储。由此,如图42所示对应提供的框架定义信息86或脚本信息87的最初的配置后,仅读入缓存信息89(步骤(1)),可再构筑对象间构造实体88(步骤(2)),大大缩短对象间构造实体88的构筑的处理时间。例如Java(商标)中,对这样构筑的对象间构造实体88,通过“串行化(serialize)”等功能进行缓存。工厂85在更新框架定义信息86和脚本信息87后的最初的配置中,将缓存信息89视为无效并废弃,再次边解释框架定义信息86和脚本信息87边进行配置,作成新的缓存信息89。
框架定义信息86和脚本信息87可按文件和程序模块等形式准备。对于框架定义信息86,在工厂85中可记述为编码。
(具体例)接着通过图43到图47说明图41和42所示的配置机构18的具体例。
图43是表示成为配置对象的框架90的构成的类图,图44是表示与图43所示的框架90对应的框架定义信息91的图。图44所示的框架定义信息91由框架开发者作成,与框架一起传递给应用开发者,应用开发者本人不需要看到该内容。
这里,作为与图43所示的框架90对应的对象间构造,假定图45(a)(b)所示的2种对象间构造时,记述这2种对象间构造的脚本信息的一例如图46所示。图46中,符号(A)的部分中记述与图45(a)对应的定义,符号(B)的部分中记述与图45(b)对应的定义。图46所示脚本信息92由应用开发者作成,与应用的安装一起传递给用户,用户本人不需要看到该内容。
图47是表示根据图44所示的框架定义信息91和图46所示的脚本信息92构筑的对象间构造的一例的图。
(效果)图41和42所示配置机构18得到如下效果。
(1)通过脚本信息的变更可对应对象间构造的变更,因此可不进行编码和编译等,可准备面向各种应用的多个对象间构造,或可对应1个应用的规格(处理内容)的变更迅速更换对象间构造。
(2)根据脚本信息进行配置,因此与根据编码等的情况相比,可大幅度降低配置成本。
(3)按文件等形式作为外部信息源提供框架定义信息,或把脚本信息的形式公用化时,可公用工厂,不需要对每个框架作成工厂。
(4)公共化工厂时,提供的框架和根据其构筑的对象间构造通过改换框架定义信息和脚本信息,可由作为框架的利用者的应用开发者和用户自由更换。此时,框架和对象间构造叫作反射性的(reflective)(参考文献6“Reflection”Buschmann(著)出自“Pattern Languages of Program Design 2”Vlissides等(编)USAAddison-Wesley)。
这样根据本实施例,可容易且高效地开发适合于开发应用的高品质的框架,即框架间的相互运用性、扩展性和附加价值等高的框架。
更具体说,得到如下效果。
(1)开发成本降低和品质提高不需要在各个框架20的开发中新设置多种框架公共的处理,因此框架开发者可集中于构件的设计和安装等。从而提高开发效率和维修性等,实现开发成本降低和品质提高。
(2)扩展性提高通过扩展上位框架1的安装,可在利用其作成的全部框架20中反映该扩展。在各个框架20中,通过功能扩展机构13容易进行功能扩展。
(3)抑制框架的利用成本对于上位框架1提供的功能等,适用于利用其作成的全部框架20,因此框架20的功能等的学习中能够以其自身提供的功能等为中心进行。
(4)再利用性提高由上位框架1按同一形式定义各机构,因此应用开发者对某个框架准备的构件容易组装到其他框架中。
(5)框架间的相互连接性的获得上位框架1中一起设置对象间构造机构11、事件通知机构15等。不同的框架20的对象之间的相互连接容易进行。因此用于框架20间的连接的设计和安装等不重新进行,满足多个功能要件的1个应用30中可直接组合各个框架20。
(6)附加价值的获得个别的框架开发中,成本不划算的机构(例如可视化机构17等)也作为上位框架1提供时,可按相对低的成本实现。因此,利用这种上位框架1作成的框架20获得高的附加价值。
(7)相乘价值的提高上位框架1上设置的登录机构16和可视化机构17统一了多个框架20的登录处理和可被化处理的结果的形式,因此可按将它们统一的形式进行信息分析。
(8)特征的选择上位框架1设置的机构11~18中仅选择使用必要的,从而可控制伴随框架20的开发和维修等的成本。
(9)调试等容易上位框架1上设置登录机构16和可视化机构17,因此应用开发者容易得到关于框架20的处理执行的详细信息,与原来的框架相比,容易进行调试和执行分析等。
上述实施例中,以利用上位框架1开发事务处理系统的框架20的情况为例进行了说明,但不限于此,也适用于开发面向组装设备框架等的任意框架的情况。
上述实施例中,上位框架1、框架20和应用30任一个都安装在图48所示的计算机系统100上,计算机101中,根据上述顺序,由上位框架1作成框架20,由框架20作成应用30。这里,计算机系统100除计算机101外,还备有CRT等的显示装置102、打印机103、键盘和鼠标等的输入装置104、FD驱动器105和CD-ROM驱动器106等各种外围设备。上述的上位框架1、框架20和应用30可存储在软盘107、CD-ROM108等的计算机可读记录媒体中。
作为本发明的记录媒体,不限于软盘、CD-ROM,像磁盘、内部存储器、硬盘、光盘(CD-R、DVD(数字多能盘)等)、磁光盘(MO(Magneto Optical)等)、半导体存储器等,可记录上位框架等,并且只要是计算机可读的记录媒体,其记录形式是任何形式都行。作为记录媒体,也包含网络上传输时的载波、信息传递媒体。
本发明的记录媒体,不限于和计算机独立的媒体,也包含下载通过LAN、互联网等传输的程序并存储或暂时存储的记录媒体。
记录媒体不限于1个,本发明的记录媒体中也包含从多个媒体执行本发明的处理的情况,任一媒体构成都无妨。
发明效果如以上说明,根据本发明,可容易且高效地开发适合于开发应用程序的高品质的应用框架,即应用框架间的相互运用性、扩展性和附加价值等高的应用框架。
权利要求
1.一种利用上位框架开发应用框架的方法,其特征在于包括准备上位框架的步骤,该上位框架是实现多种应用框架公共处理的上位框架,包括具有将对象间构造规定为图形(graph)构造的类(class)构造的对象间构造机构、具有进行对象间移动和对象的处理执行的类构造的处理执行机构;通过将上述上位框架的上述对象间构造机构和上述处理执行机构中包含的对象直接地或以边对其扩展边组合的方式来定义构件、并作成应用框架的步骤。
2.如权利要求1所述的方法,其特征在于上述上位框架还具有对对象追加新的功能的功能扩展机构,作成上述应用框架时,通过将上述功能扩展机构包含的对象直接地或边对其扩展边组合的方式来定义构件。
3.如权利要求1或2所述的方法,其特征在于上述上位框架还具有对随着对象的处理的执行产生的错误执行错误处理的错误处理机构,作成上述应用框架时,通过将上述错误处理机构包含的对象直接地或以边对其扩展边组合的方式来定义构件。
4.如权利要求1到3之中的任意一个所述的方法,其特征在于上述上位框架还具有通知随着上述各机构的处理产生的事件相关的信息的事件通知机构、和根据经该事件通知机构通知的信息记录登录信息的登录机构。
5.如权利要求1到3之中的任意一个所述的方法,其特征在于上述上位框架还具有通知随着上述各机构的处理产生的事件相关的信息的事件通知机构、和根据经该事件通知机构通知的信息,将对象间构造有关的信息和对象的处理的执行有关的信息中的至少一个进行可视化的可视化机构。
6.如权利要求1到5之中的任意一个所述的方法,其特征在于上述上位框架还具有进行上述各机构的初始化和设定的配置机构。
7.如权利要求6所述的方法,其特征在于上述配置机构读入记述了应用框架利用的机构的种类和它们的关系的框架定义信息、和记述了利用应用框架作成的应用程序的对象间构造的脚本(script)信息,通过根据这些信息而进行的上述各机构的初始化和设定,构筑在应用程序中所使用的对象间构造实体。
8.一种作成应用框架的上位框架,其特征在于包括具有将对象间构造规定为图形构造的类构造的对象间构造机构;具有进行对象间移动和进行对象的处理执行的类构造的处理执行机构。
9.如权利要求8所述的上位框架,其特征在于还具有对对象追加新的功能的功能扩展机构。
10.如权利要求8或9所述的上位框架,其特征在于还具有对随着对象的处理的执行产生的错误执行错误处理的错误处理机构。
11.如权利要求8到10中的任意一个所述的上位框架,其特征在于还具有通知与随着上述各机构的处理产生的事件相关的信息的事件通知机构、根据经该事件通知机构通知的信息,记录对象的处理的执行有关的登录信息的登录机构。
12.如权利要求8到10之中的任意一个所述的上位框架,其特征在于还具有通知与随着上述各机构的处理产生的事件相关的信息的事件通知机构、根据经该事件通知机构通知的信息,将对象间构造有关的信息和与对象的处理的执行有关的信息中的至少一个进行可视化的可视化机构。
13.如权利要求8到12之中的任意一个所述的上位框架,其特征在于还具有进行上述各机构的初始化和设定的配置机构。
全文摘要
提供可容易且有效地开发适合于开发应用软件的高品质的框架(framework)的、利用上位框架的应用框架的开发方法。首先,准备上述具有对象间构造机构11、处理执行机构12、功能扩展机构13、错误处理机构14、事件通知机构15、登录机构16、可视化机构17和配置机构18的上位框架1。接着,框架开发者根据成为开发对象的框架20的设计方针等,通过将上位框架1的对象间构造机构11、处理执行机构12、功能扩展机构13、错误处理机构14、事件通知机构15、登录机构16、可视化机构17和配置机构18中包含的对象直接或以对其边扩展边组合的方式来定义构件,作成框架20。
文档编号G06F9/06GK1444136SQ0312261
公开日2003年9月24日 申请日期2003年3月7日 优先权日2002年3月11日
发明者细谷竜一 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1