用于通信系统的系统平台的制作方法

文档序号:7571292阅读:83来源:国知局
专利名称:用于通信系统的系统平台的制作方法
技术领域
本发明一般关于一个在提供用户业务的电信系统中使用的面向对象的系统平台。这种平台可以大致描述为在低层包含一个操作系统,其上有一个应用平台,并含有资源对象形式的适当的电信抽象,在其上,有一个高层,含有提供基本和附加业务的基本和附加功能形式的期望的应用。
由通信系统提供的用户业务可以包括基本业务和附加业务,它们分别由系统的基本功能和附加功能提供。一个系统的附加功能是任选的,依市场而定的,并可在提供基本业务的系统已安装后提供给用户。后者通常是用户业务的情况,诸如忙时的呼叫等待和呼叫传送。
通常,在提供基本业务的系统已经被开发并提供的时候,引入附加业务。传统的更新系统的方式是,编辑并重新编译原有工具,以使其同样支持新的附加功能并使它负责新的和原有的扩展功能间的协调。
在美5,057,996和5,136,712中,描述了一个包括硬件层,操作系统功能层,和软件层的面向对象的操作系统。要求能存取指定对象以利用系统中相应的资源。对象有一个相容数据结构及一个相容方法,以便为每种对象类型定义操作。系统允许不修改操作系统内核,而生成新的对象类型的例程。
在美5,421,015中,描述了一个包括一个可扩展对象类型组和相应的对象管理器组的面向对象的数据处理系统。
本发明的一个总的主要目的是提高通信系统中,对系统的附加功能(即系统中可选的,依市场而定的或在提供基本业务的系统已提供后再向用户提供的部分)管理的效率。
一个更具体的目的是,使得不需改变已实施并已提供的功能的软件,而能够修改和扩充由系统提供的业务。
这些和其它将在以后提到的目的,已通过专利权利要求中提出的特性达到了。
在通过介绍而定义的一类系统平台中,上层是由基本对象和扩展对象实现的,基本对象是用一种或多种包含在其中的方法,完成将来可能需要扩展的基本功能的对象类型,而扩展对象是用一种或多种包含在其中的方法,使作为基本功能的扩展的扩展功能能够实现的对象类型。每个基本对象类型都是为一个特定任务设计的,它的执行只需与其它基本对象有最少的配合。扩展对象被设计为允许实现新业务的增加以及原有业务的修改和扩展,而不需修改已实现和提供的业务的软件。扩展对象还可包括实施扩展功能的对象类型(该扩展功能形成对扩展功能的扩展),及实施扩展功能交互处理的对象类型(它处理附加业务间的交互)。
扩展对象使得能够在操作中在系统内引入扩展。它受要被修改的对象的动态约束。
扩展是可构造的,即,允许以普通方式在系统运行时加入或撤消对系统的修改,而设计员自已不需为扩展的激活/减活本身设计代码,这一任务由平台处理。
所包括对象类型的性能是通过将其中每个方法的性能描述为一个有限状态机来定义的。该状态机包含一个有限数目的状态及这些状态间的转换,在这些状态,执行定义方法的代码。扩展被添加在状态处,然后,它们在那里取得执行控制,并在完成自身运行之后,将控制转交给另一个或同一个扩展点。
基本和扩展对象类型支持这样一个扩展概念允许对系统作修改和扩展,而不需改变系统的原有工具。更具体的,它是通过只在系统中加载扩展的定义而得到的,通过在指定的预定扩展点取得执行控制,而非直接地改变系统的性能。
一个扩展对象技术规格定义了在扩展对象的哪个扩展点,假定扩展取得了控制,及在哪个扩展点,它能返回控制。
在一个扩展对象接管控制时,一个预定的扩展方法开始执行。
一个运行时系统处理在指定扩展点扩展对象的创建和它们的扩展方法的调用。
扩展对象可以取得基本对象或从中取得控制的扩展对象的属性和方法。属性和方法可只包含在对象类型说明中申明可获取的部分。
在对象类型说明中,通过定义只有说明中属性和方法的特定子集,能被在某扩展点取得控制的扩展所使用,来为每个扩展点定义获取限制。
一个可扩展对象的对象类型说明,起到一个接口的作用,该接口限定可扩展对象的扩展可见和可用的信息的数量。一个与扩展概念一起使用的接口层由扩展视图定义,每个视图都定义了可扩展对象说明中信息的一个子集,该子集可由利用该视图的扩展获取。
对一个基本对象,有一个说明,它一方面作为一个显示扩展可用的状态,属性和方法的接口描述,另一方面定义一个需要创建基本对象实例的面向用户对象的接口。该接口由基本对象类型的方法定义,它决定在创建新实例时,哪些参数是可用的。
说明提供了基本对象类型性能的高层描述,而省去了实施细节,它们在理解对象类型的动能时,不是必须的。
一个由基本对象使用的基础对象逻辑创建的抽象层,和包含对象逻辑用法的基本对象中的局部方法,影响高抽象级。
通过显示说明中基本对象的等待状态以及一些作为理解基本对象功能的基础的选定非等待状态,可以得到说明中一个合理的抽象级。在所示状态间执行的代码被引入到所说明的局部方法中,而不需在说明中指定性能。判断哪些部分要在说明中显示包括考虑对象类型中哪些部分在将来可能要被施加扩展。
在方法说明中,显示了所有状态,包括等待状态和非等待状态,以及所有显式命名的扩展点。操作码被用于局部方法中的状态转换。若性能的某些部分不需要是可扩展的,则它们以整体形式被引入到在说明或实现中,或在工具级上定义的局部方法中。
对象类型实现被用于基本对象中不需,或不能被扩展的部分,这些部分不需在说明中显示以创建一个高层描述,但它们最好有一个定义而不是直接使用工具语言。实现中有引入操作码的局部方法的引入定义。实现中,替换包含在说明中的性能定义的同时,提供一个更详细的性能定义,它表明说明中给出的性能说明的一个精选。
按发明的扩展概念有一些有用的性质。它是一个做修改的小粒度方法,它不需替换多数面向对象体系中可用技巧的全部方法。相反,可以在方法中的某些扩展点进行替换。扩展概念为处理由在已开发和提供的系统中引入许多附加功能而带来的复杂性形成了一个框架。通过单独描述由每个扩展所引起的改动,使这成为可能,在此基础上,如果需要,又可以使扩展之间互相配合。这种附加功能间的配合也可被表达成单个的扩展,这种情况下是作为对附加功能的扩展。这使得有可能以预定方式管理系统的可选部分及它们间的依赖关系。
借助附图,以下将更详细地介绍本发明,附图中

图1是用于可提供用户业务的电信系统的一个系统平台的示意图,图2是一个用来说明按照本发明,在扩展概念中使用的概念间关系的图形,图3综述说明了扩展概念,图4-6分别显示了一个基本对象的一个说明,一个实现和一个扩展视图的例子,图7-9分别显示了一个扩展对象的一个说明,一个实现和一个扩展视图的例子,图10是一个视图,用来提供基本对象,扩展对象,和扩展视图概念间的关系,以及对象类型说明,对象类型实现及对象类型实施概念间的关系的总视图。
图11-14为显示例证扩展技巧应用的例子的示图,其中图11显示一个无条件扩展实例,图12显示一个条件扩展实例,图13显示一个表明事件扩展的实例,图14显示一个在同一扩展点有几个扩展的实例。
参考图1,一个用于电信系统的系统平台包括一些功能,或层。这些层可大体描述为在下层102包含一个操作系统,其上有一个应用平台104,并含有资源对象形式的合适的电信抽象,其上有一层106,包含基本及附加功能形式的期望应用,它们提供基本和附加业务。
今后,“Category”这一概念将用来定义包含在层106中的不同类型的对象,更具体地,一个“Category”在句法上表征一个对象,而且还表征它在系统结构中的位置和功能。有两个分别被命名为BASE和EXTENTION的范畴的对象类型(以下将更详细介绍)包含在层106的一个工具中。以下,这些对象的实例将分别被称为基本对象和扩展对象。
以下还有一个概念“events”,它被用于命名发送异步信息。对象可请求监督一个“event”并随后等待它。事件在一个对象类型描述的“EVENTS”部分中被说明。在层106中,性能由事件驱动,即,对象对异步信息的接收作应答。事件常作为信息到达一个到进程去的进程间通信链的结果而被产生,在该进程中,执行对象。此处,一个进程指的是执行一个程序,以下,执行线索这一命名被用于表示一个进程的执行路径。每个执行线索都有它自已的堆栈和程序计数器,但同一进程中的所有线索共享同一进程数据(堆)。
每个基本对象类型都被设计为执行某一特定任务,如管理一个电话系统中呼叫的建立。当这样一个任务要被执行时,创建基本对象类型的一个实例。于是,该对象就有了对怎样执行该任务的控制。低层的细节,例如怎样使用资源以执行任务,是由基本对象向其它范畴(例如范畴“Event generator”)的对象发送方法调用来处理的,该范畴的对象类型代表被调用的资源或基本业务,且它们通过生成事件来通知它们的用户。
基本对象类型最好被设计为使它们各自的任务在执行时,能与其它在系统中运行的任务配合最少,即基本对象间的配合最少。这反映在基本和扩展范畴的特性中每个基本对象都在一个半-并行执行线索上执行,基本对象或扩展对象都不能有任何从外部调用的方法,且它们不能生成任何事件。这些特性将在以下更详细地介绍。
基本和扩展范畴的另一个重要方面是它们支持这样一个扩展概念,允许修改和扩展一个系统的性能,而不必改变系统的原有工具。相反,性能的修改和扩展是通过只在系统中加载扩展来得到的。借助于扩展概念,通过在特定的确定扩展点取得执行控制,而非直接地更改系统的性能。
基本范畴应被用于完成基本功能(它们在将来可能需被扩展,即所谓的基本功能)的对象类型。扩展范畴被用于完成这些基本功能的扩展,即所谓的扩展功能的对象类型。
通过利用一个用于对象模型的特定设计语言,以后称之为“设计语言”(“design language”),用一个有限状态机描述每种方法的性能,来定义对象类型的性能。这样一个有限状态机包含一个有限数目的状态和这些状态间的转换,其中在转换动作时执行代码。于是最初的用于加入扩展的点,扩展点,是状态。一个扩展可被设计为在一个扩展点获取执行控制并在同一方法的另一个或同一个扩展点处返回控制。从这一点看,扩展可被看作是对状态机进行新状态和状态转换的添加。于是,这些状态和状态转换修改了这一状态机的原有状态转换。
一个方法中的所有状态可被用作扩展点,不过,也可能显式地指定一个扩展点而不引入一个新状态,一个所谓的显式命名扩展点。
根据是否允许从一点扩展,是否允许在一点终止扩展或它们是否可用于这两种用途,对扩展点分类。对于这些点,以后将用到以下命名-接收点,Top,它是执行控制可在那里被转交给一个扩展方法的扩展点。
-继续点,Cop,它是执行控制可在那里被从一个扩展方法再转交的扩展点。
-接收和继续点,Top Cop,它是既可被用作接收点又可被用作继续点的扩展点。
-开始(缺省),一个对象中的所有状态均为接收和继续点,不过,若有必要对所有扩展加以限制,则可在对象类型说明中改变这一设定。也可在扩展视图(一个以下将更详细介绍的概念)中做同类的扩展。
扩展概念也认同扩展的扩展这一定义。事实上,通过创建扩展的链,或层,可在任意个数的层上定义扩展。从而,必须有一个词汇表,以保证例如一个扩展链的“最上端”(“uppermost“)扩展和整个扩展链间的不同。
概念“基本对象”(“base ob ject”)被用于表示包含原始的,未被扩展的基本功能的对象。如果存在误解的危险,使用命名“原始基本对象”。
扩展被称为“扩展对象”。
直接基础的概念与一个基本对象或一个扩展对象有关,从该对象处开始一个扩展,即,一个扩展从其直接基础获取控制。
一个更一般的命名“基础”指扩展的总链,包含原始基本对象,某扩展对它形成一个扩展。若存在误解的危险,使用命名“整体基础”。
上面提到的在图2中例证,其中,一个对象202,“Baseobject”,为原始基本对象。对基本对象202,可以链接扩展对象204和206,“Extension Object1”和“Extension Object2”。扩展对象206是另一个扩展对象208,“Extension Object21”的直接基础,基本对象202和扩展对象206形成扩展对象208的基础。
一个扩展对象的说明定义了在扩展对象中假定扩展获取控制的扩展点和在哪个扩展对象上,扩展可以返回控制。当一个扩展对象获取控制时,开始执行预定义扩展方法,EXTENSION METHOD。运行时系统负责创建扩展对象并在给定扩展点调用它们的扩展方法。
正如前面所显示的,扩展对象同样也可有扩展。于是,扩展方法总是从一个基本方法或从另一个扩展方法被隐式调用。
一个扩展对象可以获取被扩展对象(即扩展从中取得控制的扩展对象)的属性和方法。不过,有一些对这些存取的限制方法。首先,只有在一个对象类型说明中说明的属性和方法可被存取。只在实现中说明的属性和方法,对扩展来说是不可用的。在说明中,还有可能通过定义只有说明中属性和方法的某子集对在某扩展点取得控制的扩展来说是可用的,来为每个扩展点定义存取限制。
这样,一个可扩展对象的对象类型说明起到一个限制该基本对象的扩展可见并可用的信息量的接口的作用。不过,还有一个与扩展概念一起使用的附加接口层,它是由扩展视图定义的接口。一个扩展视图定义了一个可扩展对象说明中信息的一个子集,该可扩展对象能被使用该视图的扩展获取。
图3说明了扩展原理。在图3中,块302代表一个基本对象的说明,块304代表一个扩展对象的说明。说明302包含一个由块306代表的实体方法,“BODY”,其中示出了一个有四个状态的有限状态机308。这些状态包括两个扩展点S1和S2。在由块310表示的一个扩展视图中,扩展点S1和S2分别被说明为接收点和继续点,由“TOP S1;”和“COP S2;”表示。块312通过一个有五个状态的无限状态机,代表基本对象说明中的另一个方法“Method ml”。
扩展对象的说明304包含一个扩展方法“EXTENSION METHODext1”,它在块314中被说明为一个包含一个开始状态t和一个结束状态S2的有三个状态的有限状态机。在块316中说明了另一个有四个状态的扩展方法,“METHod ext2”。
通过扩展视图,扩展点S1和S2从扩展对象是可见的。当基本对象的方法308到达状态S1时,执行控制连接到扩展方法ext1上,由箭头318表示。扩展方法ext从其初始状态t开始执行。当执行到达扩展中的状态S2时,控制按箭头320返回到基本对象,它又从状态S2开始执行。这是由运行时系统执行的,即,除了在扩展的说明中声明外,扩展的设计员不需在他的代码中显式地管理这一扩展。
如前面所提到的,范畴BASE是用来建模基本功能(在以后可被扩展的功能)的对象类型范畴。基本对象有一些特定的性质。一个重要的性质是,基本对象总是在半一并行控制线索上执行的。这是很自然的,因为基本对象的目标是执行一个可独立于其它能在系统中并行处理的任务而发生的任务。在执行中,对象可进入一个等待状态,它是一个停止执行,直到被进一步调用的状态,且控制被传送给另一条线索。当接收到一个在等待状态等待的事件时,执行重新开始。
从用户的观点看,可以通过在当前执行线索中创建一个新的基本对象实例并在新的线索中为下次执行安排该基本对象实例的实体方法“BODY”,来得到这一特性。当第一个当前线索进入等待状态时,执行一个线索切换。在这一步中,新创建的线索获得开始执行的机会。不过,在进程中可能还有其它线索也准备开始执行,所以,不能担保新线索将准确地在这一时刻开始执行。所能担保的只是它迟早将开始执行。
连同新线索的创建,返回新创建对象实例的基准。通过等待在线索终止时总是出现的事件,该基准在以后可被用作与所创建线索的终止同步。该基准还可被用作自变量或被储存在一个属性中,但它不能被用于任何其它的目的。
基本对象的另一个重要特性是,它们的属性和方法对除它们的扩展对象之外的所有其它对象来说,是隐含的。
一个基本对象可以有说明和实现描述,它们都含有利用设计语言的性能描述。说明的目的主要是用作基本对象的接口描述。有不同种类的基本对象的用户与该说明相关。
首先,有扩展基本对象性能的扩展对象,对于它们,说明起到一个显示扩展可用的状态,属性和方法的接口描述的作用。还可通过它们所使用的扩展视图,为扩展引入进一步的存取限制,但是它们最多只能存取在基本对象的说明中显示的东西。
其次,说明定义了面向需要创建基本对象实例的用户对象的接口。该接口是由基本对象类型的方法定义的。它们决定在按照上面所说的创建一个新的执行线索时,哪些参数可被用于创建新的实例。
说明的另一个目的是提供一个基本对象类型的性能的一个高层描述,而省略了在理解对象类型功能时不必要的实施细节。高抽象层部分地是由基本对象所用的基础对象逻辑所创建的一个抽象层提供的,但也通过基本对象中包含对象逻辑应用的局部方法来提供。说明中一个合理的抽象级可以用来显示说明中基本对象的等待状态,且可能显示作为理解基本对象功能基础的一些选定非等待状态。于是,在所显示状态间执行的代码可被引入到所说明的局部方法中,但不需在说明中作性能指定。
当要确定在说明中显示什么,不显示什么时,必须考虑对象类型中的哪些部分在将来要被施加扩展。最可扩展的说明策略是在BODY方法的说明中显示所有状态,包括等待状态和非等待状态,以及所有显式命名的扩展点,并且仅在局部方法中封装一个用于状态转换的操作码。另一方面,如果确定性能的某些部分不必是可扩展的,则这些部分可以被整个地引入到局部方法中。随后,这些局部方法可被定义在说明中,或实现中,或者甚至可以在工具层。如果它们要被从说明中调用,则它们必须在说明中被说明。
对象类型实现的用途是,它们被用于基本对象中不需或不能被扩展的部分,和没有必要在说明中显示以创建一个高层描述,但最好能有一个设计语言的定义而不是直接使用工具语言的部分。封装操作码的局部方法的定义可以安装在此处。在实现中,也可能省去包含在说明中的性能定义,并提供一个更详细的定义。这样一个新定义的性能定义应该是在说明中给出的性能说明的一个精选。
应该强调的是,在实现中定义或说明的方法,属性或状态,对于该对象类型的扩展来说,都是不可用的。只有在对象类型说明中的信息对扩展来说是可见的。
也有可能只使用一个设计语言的说明来指定整个基本对象,而没有使用该语言的实现,在这种情况下,执行语言可被用于定义在说明中调用的某些操作方法,这在此处是合适的。不过,不管在说明中还是在实现中,事件的监督,“MONITOR”,或停止监督“STOP MONITOR”,必须被以设计语言执行。若对象的“创建/消除”是以设计语言执行的,同样在说明和实现中,同一对象的相应信息“消去/新建”也必须以设计语言执行。若相反,创建/消除是以工具语言执行的,则对应的消去/新建也必须以工具语言执行。
对对象的实体方法BODY,必须在说明中给出一个设计语言的性能定义,尽管该定义可以是非常简单的,且可以在实现中被替换。正如所说的,对于基本对象中的其它方法,设计语言的应用是任选的。
在图4和5中,分别有一个基本对象类型的对象“TheBase”的说明和实现的给定例子。
在图4所示的说明中,实体方法“BODYmethod”的性能已从第12行开始定义。不过,方法“method1”和“method2”以及“CONSTRUCTOR”仅从第7行开始被声明。CONSTRUCTOR是一个在一个对象类型的实例被创建时执行的方法。
在图5所示的实现中,从第二行开始定义了方法“CONSTRUCTOR”,“method1”和“method2”的性能。在第22行,实体方法被声明为与说明中的相同。
如前面所述的,基本对象类型的说明的作用相当于其用户的一个接口描述。扩展视图也是一种接口描述。它们被用于为它们的扩展进一步限制对可扩展对象的存取权。
附加接口层的目的是进一步管理可对某对象做哪些扩展。可为不同目的创建不同的扩展视图。如果,例如,某视图是为借款功能和统计功能设计的,则只显示被扩展对象的状态和属性的一个小的子集就足够了。另一个作用是为一个功能的不同部分定义不同的视图,这样,某视图的一个扩展的使用就表明只修改了被扩展对象的某个功能。当一个新的扩展功能被引入到系统中时,在调查必须实施扩展功能间的哪些配合时,这个或这类信息是很有用的。
于是,一个基本对象可以有几个不同的扩展视图。不过,每个扩展对象是为一个特定的扩展视图设计的。扩展视图仅在设计阶段,为不同的分析目的而使用,在运行时环境中不作为独立单元存在。
在图6中,示出了一个图4中基本对象类型的对象theBase的一个扩展视图的例子。一个扩展视图被用于创建可扩展对象的说明的约束视图。扩展视图不能定义任何在基本对象中已不能使用的信息。它们只能对基本对象中已经可见的信息添加进一步的约束并隐藏信息。在基本对象中已指定的限制不能被替换。
在扩展视图中,首先给出一个通过扩展应该可能得到的基本对象中的方法和属性的列表,参照图6中的第3-6行。该列表定义一个基本对象中存在的属性和方法的一个子集。由此,列出扩展应该可用的扩展点。对视图中的每个扩展点,指定下列信息-扩展点的名称,分别参照图6的第7,11,15和18行,分别为TOP WAIT STATE,TOP COP STATE,TOP STATE和COP STATE。对于作为状态的扩展点,分别在名称中给出关键字STATE和WAIT STATE。对于显式命名的扩展点,不给出这类信息。另外,命名包含了扩展点的类型,即声明了接收点TOP,继续点COP或接收和继续点TOP COP。正如以前所提到的,基本对象中的所有扩展点都是接收和继续点类型。这里,一个扩展点可被约束为只允许用作接收点或是继续点。若要使用最初所设定的,则必须给出关键字TOP COP。
-对于每个接收点,都有一个基本对象中的属性和方法的列表,列表中的内容对于从该指定接收点开始的扩展方法来说是可提供的,参见图6中的第9,12-13和16行。该列表是扩展视图开头所列属性和方法的一个子集。
-对每个接收点,都给出一个允许继续点COPS的列表,参见图6第8行。该信息被用于确定在当前接收点取得控制的扩展允许在哪些扩展点处继续。
-对每个接收点,都表明了用于基本对象的状态转移的表达式的类型。这只与非等待状态相关。
在一个扩展视图中,不能访问基本对象的方法中的局部变量。
由于扩展概念也承认对扩展的扩展,所以可以为基本对象和扩展对象创建扩展视图。
对基本对象的约束同样对扩展对象有效。除了其扩展,它们的成员不能被任何其它对象存取。
同样,对扩展对象也可给出说明和实现。对一个扩展对象的扩展方法,必须在说明中用设计语言给出一个性能定义,尽管该定义可以是很简单的,并且在实现中,它不能被替换。对于扩展对象中的其它方法,设计语言的实现是任选的。
在图7,8和9中,分别给出了一个扩展类型的对象“the ExtObj”的一个说明和一个实现的例子及所讨论对象的一个扩展视图的例子。
扩展被封装在范畴为EXTENTION的对象中。一个扩展对象的说明,参照图7,定义了该扩展对象使用的视图,参照第3行,及在哪个接收点,其扩展方法取得控制,参见第8行,并定义了扩展方法的优先级,见第7行。几个不同的扩展对象可以使用一个基本对象的同一视图。甚至从同一对象的同一扩展点,可以开始多重扩展。
一个扩展对象中的方法总是与基本对象在同一线索上执行。所有在基本对象中执行的事件监督也同样在扩展方法中有效。换句话说,只要通过视图,使事件生成器的一致性对扩展方法是可用的,则扩展方法可以接收在基本对象中已被监督的事件。
以与基本对象的BODY方法说明中的状态相同的方式,在EXTENSION METHODS说明中的状态可被用作接收和继续点。扩展方法的实现,参见图8,可以同样方式加入几个状态,参见第2和第8行,不过,它们再次不能被其它扩展使用。
按照图9中仅以框架形式给出的扩展视图所表明的,可以对扩展对象theExtobj做进一步的扩展。
图10是一个概要总示图,示出了基本对象,扩展对象和扩展视图,以及对象类型说明,实现和实施这些概念间的关系。在图10中,一个堆栈块1002表明设计语言的说明1004和实现1006,以及目标语言的实施1008。以同样方式,块1006表明设计语言的说明1012和实现1014,以及目标语言的实施1016。
基本对象的说明1004是一个在适当高度抽象层上的说明,它可用于获得对对象类型功能的总体了解。说明包含属性和方法的标记说明以及方法(的一个子集)的性能说明。在BODY方法的性能说明中示出的所有状态都可由扩展使用。
基本对象的实现1006有一个对象类型的性能的更详细的说明。它可替换在对象类型说明中的方法的性能定义。实现也可定义已申明的方法中的性能,而不是说明中指定的性能。可以添加局限于实现的新的属性和方法。扩展不能获得加入到实现中的信息。一个说明可以有不止一个实现。
目标语言的基本对象类型的实施1008是对象类型的一个完整实施。它包含目标语言(c++)的生成的和人工编写(任选的)的源代码。生成部分确保为按对象类型说明的扩展准备好了实施。通过使用对象类型说明和一个或多个设计语言的对象类型的实现(任选的),产生工具码。
在1018和1020中,示出了基本对象类型说明1004的扩展示图。同一对象类型说明可以有几个视图,但每个视图总是仅为一个对象类型说明设计的。可以创建新的视图而不影响基本对象说明,实现或实施。在设计扩展对象类型时,使用基本对象类型说明1004和其视图1018和1020。
扩展对象类型的说明1012在与基本对象类的说明相同的高抽象层上指定扩展对象。同样,扩展对象类型的实现1014和实施1016也以与基本对象类型相同的方式出现。
每个扩展对象类型的说明都总是通过只使用一个扩展视图1022来设计的。照基本对象类型的情况来类推,可以为一个扩展对象类型定义一个或多个扩展视图。
至于代码生成,可以提到以下所述。可以为对象类型说明和实现生成目标语言(C++)的代码,所有的方法,包括说明中的CONSTRUCTOR,BODY和扩展方法,都必须在实现中被重复。基本对象类型的每个实现和扩展对象类型的每个实现都必须遵守以下法则-在说明中显示的每个方法标记(method name dom-FormalArguments[RETURNS dom-Type]部分)必须也在实现中存在。这一要求可以按以下所述方法中的一个来完成。
此外,标记的意思是这样一个概念,它通过声明其名称,变量类型和返回值类型,来识别所讨论的元素,此处为一个方法。
-若在说明中只声明了一个方法的标记,则在实现中即可省略也可声明BODY方法(dom-BehaviouyBody,即IS BEGIN…END部分)。
若在实现中省略了BODY方法,则只用目标语言实现方法的一个框架。
-若在实现中声明了BODY方法,则以目标语言生成全部代码。
-若在说明中已经有了一个BODY方法,则在实现中使用关键字AS SPECIFICATION以表明实现中的BODY方法与说明中的完全相同。在这种情况下,也生成完全目标语言代码,该代码不能做手工修改或添加。
-若说明和实现中都为同一方法定义了BODY方法,则完全代码由实现中声明的BODY方法生成。这表明在实现中定义的性能总是比说明中声明的性能优先。
说明中声明的属性不应在实现中被重复。由于实现中声明的方法定义完全替换说明中的相应定义,所以说明中声明的局部变量也必须在实现中被重复。
以下,将参照图11-14,介绍一些证明扩展技巧使用的例子。
在图11中示出了一个无条件扩展的例子。本例子是从一个基本对象和一个扩展对象的说明分别如图所示被声明这一假设开始的。在一个未被示出的扩展视图中,还声明一个状态analyzing为TOP,在1102处表示,和状态calling为COP。
通常,在执行到达声明为TOP的状态时,检查所有的扩展对象,若有一个扩展方法从一个当前TOP状态开始,则调用该扩展方法。运行时系统将保证在扩展对象的扩展方法第一次被调用之前,已创建了一个相应的扩展对象。若在基本对象的执行期间,扩展方法不是第一次被调用,则再次使用扩展对象的原有实例。于是,该对象将返回到在同一基本对象执行期间,介于其扩展方法的调用之间的状态。为每个基本对象创建扩展对象类型的实例,即一个扩展对象不能被两个基本对象共享。
在图11所给的例子中,每当基本对象的执行到达状态1102analyzing时,到扩展方法的转移,由箭头1108表示,总是被无条件执行。
有几种不同方法来终止一个扩展方法的执行。首先,可以使用EXIT终止整个执行线索的执行。其次,有一个特定的可能性,命名BACK(TOBASE),用来表明从扩展向它取得控制的基本对象返回控制。再次,可以使用一个普通的结束状态,不过用于扩展方法时它有一个特定的语义。在这种情况下,一个与扩展方法的结束状态同名的COP状态必须在基本对象中占优。当控制到达该结束状态时,扩展方法中的执行将被中断,执行将在基本对象中的COP状态中继续。
EXIT到基本对象中开始进行扩展的状态处,和BACK的不同在于,若不止一个扩展在同一TOP处获取控制,将会发生什么。当使用BACK时,下一个扩展依次将被执行。最高优先级的扩展总是先被执行,且如果有多于一个扩展处于同一优先级,则它们通常以随意顺序被执行。不过,如果有一个设定了扩展间某一执行次序的干扰扩展实体,则它们按该次序执行。
若执行EXIT到基本对象中扩展开始处的TOP状态,则基本对象的TOP状态以及所有与之连接的扩展都同样被再次执行。
图12中示出了一个条件扩展的例子。条件扩展是那些只有在满足某些条件时才执行的扩展。这种情况是通过与扩展方法的初始状态相关的CASE表达式指定的。该例是从一个基本对象和一个扩展对象的说明分别如图所示被表示这一假设开始的。在一个未示出的扩展视图中,一个状态analyzing进一步被声明为TOP。a和b为基本对象中的属性。
当基本对象到达状态analyzing,在1202处时,结果是,有一个扩展从该TOP点开始。通过一个与扩展方法的初始状态相关的CASE表达式,开始执行扩展方法,如1204所示。该表达式的值用来切换流。
在这种情况下,结果取决于一个参照基本对象中CASE表达式值的简单的RESULT,在1206表示。计算表达式(a+b)。若它的值是3,则选定由值3表示的分支,在1208处表示,且执行在扩展中继续。否则,选定DEFAULT分支,在1210处表示,用执行控制返回到基本对象。然后,基本对象必须重新计算CASE表达式并以此沿适当的分支继续执行。
在上面给定的例子中,与扩展方法的初始状态相关的CASE表达式是非常简单的。不过,它可以是一个标量类型的任意表达式。
RESULT是一个允许一个扩展参照基本对象中一个非等待状态的CASE表达式的结果的键字。RESULT可在每个表这式中使用,但它的值在整个扩展方法的执行期间不能被改变。如果没有合适分支或DEFAULT分支,则出现一个错误。若扩展方法有一个与基本对象同值的分支,则扩展方法比基本对象优先级高。
如果扩展是从基本对象的一个等待状态开始的,则扩展方法的初始状态同样也必须为一个等待状态,它指定所等待的其它事件。在一个等待状态中,所有扩展方法的所有期望状态都在一个简单的WAIT-FOR-EVENT中被收集在该点。
图13提供一个事件扩展的例子,并从一个基本对象和一个扩展对象的说明如图所示这一假设开始。还有,在一个未被示出的扩展视图中指定一个状态Ring-B为TOP。
当基本对象到达状态Ring-B时,在1302表示,发现有一个扩展从该TOP点开始。运行时系统必须从扩展对象中收集关于哪些事件应被监督的信息,并将这些信息与等待状态信息一起放在基本对象中。以这种方式,创建并引入一个复合等待状态。根据随后所出现的事件,扩展或基本对象被执行。如果在扩展中指定BLOCK_EV,在1304表示,则执行扩展方法。若接收到基本对象中指定并在1306中表示的off-hook,则执行基本对象。
两个扩展可以等待同一事件,也可以是与基本对象相同的事件。有最高优先级的扩展被执行。
扩展和等待状态不能执行BACK(TO BASE),它们必须继续执行到一个基本对象中的COP状态或EXIT。若一个扩展方法的执行导致重新返回到扩展方法的初始状态(例如,在上面例子中的Start),则扩展方法被重新执行,但这次,只有在扩展方法中指定的事件是被等待的。若要再次引入“整个”等待状态,则必须在基本对象中将等待状态定义为一个TOP COP点且必须在扩展方法中声明“continue to”该TOP COP状态。
也有可能对基本对象中的同一个TOP点有多个扩展。这种情况下,必须以指定的优先次序组织所有的扩展,且按该优先次序执行,即首先执行最高优先级的扩展对象。若该扩展将其执行控制返回给基本对象,则执行下一个最高优先级的扩展对象。若所有扩展都返回了执行控制,则执行基本对象。
若一个扩展方法继续到基础中的一个继续点处,则将不再有扩展方法被使用。执行在基础中非常简单地进行。当然,状态“continuedto”可以有扩展。如果是这样,则重新开始执行所有的一切。
在图14中,给出一个例子,该例有三个扩展方法m2,m3和m4,分别由1402,1404和1406表示,和一个基本对象,由1408表示,该基本对象有一个扩展点R,由1410表示,它被声明为TOP COP,在1412处表示。
第一个扩展执行“Continue to”基础中的TOP COP,由箭头1414表示。两个其它的扩展流从TOP COP状态1410取得控制,分别在1416和1418处表明。扩展方法m3利用BACK将执行控制返回给基础。如果m3的优先级比m4高,则先执行m3,在m3返回执行控制的条件下,接着执行m4,由1420表明。若m4比m3优先级高,则只执行m4。在这种情况下,由于m4永远不会返回到基础,所以m3永远没有被执行的可能性。
也可能有实施扩展功能交互管理的对象类型,它管理附加功能间的相互作用。在例如已有的瑞典的专利应用93 02024-6和94 00209-4中有关于交互附加功能的应用的描述。参照图15a/15b的后一种应用中所描述的,包含在其中的由一个基本功能执行的方法,也可借助于一个交互管理扩展对象执行。就此而论,以上借助于图14所描述的考虑对基本对象的同一个TOP点连接多个扩展的概念也可被使用。于是,可以将一个交互管理扩展对象连到基本对象的同一个TOP点上,作为代表两个交互扩展功能之一的两个扩展对象。关于解决交互问题的更多的信息,可参阅前面提到的瑞典专利应用。
权利要求
1.一个用在提供用户业务的电信系统中的面向对象的系统平台,所述平台包括一些功能层,一个操作系统功能层(102),一个位于其上,包含资源对象形式的电信抽象的应用层(104),其上,有一个最高层(106),包括基本和附加功能形式的期望应用,提供基本和附加业务,其特征在于最高层是由基本对象(202)和扩展对象(204,206,208)实施的,其中基本对象是实施基本功能的对象类型,该基本功能以后可能需要被扩充,每个基本对象类型都专为一种特定任务而设计,其执行只需与其它基本对象有最少的配合。扩展对象是实施扩展功能的对象类型,该扩展功能是对基本功能的扩充,且它使得能够不改变已实施和供应的系统的软件,而增加新的业务并对原有业务修改和扩充。
2.一个如权利要求1的系统平台,其特征在于扩展对象还包括实施扩展功能的对象类型(208),它形成对扩展功能的扩展。
3.一个如权利要求1或2的系统平台,其特征在于扩展对象还包括对扩展功能实施交互管理的对象类型,它管理附加业务间的交互。
4.一个如权利要求1-3中的任一个的系统平台,其特征在于扩展对象被设计为允许在操作中将扩展引入系统,它受要被修改的基本对象的动态约束。
5.一个如权利要求4的系统平台,其特征在于扩展被设计为允许在运行时,以普通方式增加和撤消对系统的修改,而不必编制激活/减活每个扩展的专用支持程序。
6.一个如权利要求5的系统平台,其特征在于,通过将每个所包含方法的性能描述为一个有限状态机,来定义所包含基本和扩展对象类型的性能,该状态机包含一个有限个数的状态和这些状态间的转换,其中转换操作时执行代码,扩展被添加在状态处,以在一个扩展点获取执行控制,并将控制返回给同一方法中另一个或同一个扩展点。
7.一个如权利要求1-6中任一个的系统平台,其特征在于基本和扩展对象支持这样一个扩展概念通过只在系统中加载扩展的定义,以在指定预定扩展点获取执行控制,而非直接地修改系统的性能,从而允许修改和扩展系统,而不必改变系统的原有工具。
8.一个如权利要求1-7的任一个的系统平台,其特征在于一个扩展对象的说明定义了在扩展对象的哪个扩展点,假定扩展取得了控制,和在哪个扩展点,它能返回控制。
9.一个如权利要求8的系统平台,其特征在于当一个扩展对象取得控制时,开始执行一个预定的扩展方法。
10.一个如权利要求8或9的系统平台,其特征在于;一个运行时系统处理扩展对象的创建和在指定扩展点,其扩展方法的调用。
11.一个如权利要求1-12中任一个的系统平台,其特征在于一个扩展对象可以存取基本对象或扩展从中获取控制的扩展对象的属性和方法。
12.一个如权利要求11的系统平台,其特征在于所述属性和方法仅包含在对象类型说明中被声明为可被存取的属性和方法。
13.一个如权利要求8-12中任一个的系统平台,其特征在于通过定义只有说明中一个属性和方法的特定子集,对在某扩展点取得控制的扩展来说是可用的,从而在对象类型说明中为每个扩展点定义存取限制。
14.一个如权利要求7-13中任一个的系统平台,其特征在于一个可扩展对象的对象类型说明起到一个接口的作用,它限制对于可扩展对象的扩展来说,可见和可用的信息的数量。
15.一个如权利要求14的系统平台,其特征在于,有一个与扩展概念一起使用的接口层,且它由扩展视图定义,其中每个视图都定义了一个可扩展对象说明中信息的一个子集,该子集可由使用该视图的扩展存取。
16.一个如权利要求1-15中任一个的系统平台,其特征在于对一个基本对象,有一个说明,一方面,作为一个显示扩展可用的状态,属性和方法的接口描述,另一方面,定义一个面向需创建基本对象实例的用户对象的接口,所述接口由基本对象类型的方法定义,它确定在创建新实例时可以使用哪些参数。
17.一个如权利要求16的系统平台,其特征在于说明提供一个基本对象类型性能的高层描述,而省去了在理解对象类型的功能时不必要的实施细节。
18.一个如权利要求17的系统平台,其特征在于一个通过由基本对象使用的基础对象逻辑和基本对象中包含对象逻辑应用的局部方法所创建的抽象层,影响高抽象层。
19.一个如权利要求18的系统平台,其特征在于,通过显示说明中基本对象的等待状态及作为理解基本对象功能的基础的一些可能的选定非等待状态,在说明中得到一个合理的抽象层,用于在所显示状态间执行的代码被引入局部方法中,局部方法在说明中被声明,但不需指定性能。
20.一个如权利要求19的系统平台,其特征在于对在说明中显示什么的判断包括考虑对象类型的哪些部分在将来可能被施加扩展。
21.一个如权利要求20的系统平台,其特征在于所有状态,包括等待状态和非等待状态及所有显式命名的扩展点,都在方法说明中显示,操作码用于局部方法中的状态转换。
22.一个如权利要求20的系统平台,其特征在于若性能的某部分不需为可扩展的,则它们被整个引入到在说明或实现,或在工具层定义的局部方法中。
23.一个如权利要求22的系统平台,其特征在于对象类型实现被用于基本对象中不需或不能被扩展的部分,及不需在说明中显示以创建一个高层描述,但最好有一个定义而不是直接使用工具语言的部分。
24.一个如权利要求23的系统平台,其特征在于在实现中引入了引入操作码的局部方法的定义。
25.一个如权利要求23或24的系统平台,其特征在于在实现中提供了一个表明说明中提供的性能说明的精选的更详细的性能说明,而替换了包含在说明中的性能定义。
全文摘要
一个在提供用户业务的电信系统中使用的面向对象的系统平台,包括一个上层,它含有提供基本和附加业务的基本和附加功能形式的应用。该层是由基本对象(202)和扩展对象(204,206,208)实施的。基本对象是实施将来可能需要被扩充的功能的对象类型,每个对象类型都是为一个特定任务设计的,其执行所需的与其它基本对象的合作最少。扩展对象是实施扩展功能的对象类型,扩展功能形成对基本功能的扩展并使得可能增加新的业务及对原有业务修改和扩展,而不用改变已实施和供应的系统的软件。
文档编号H04M3/42GK1207847SQ9619979
公开日1999年2月10日 申请日期1996年11月27日 优先权日1995年12月8日
发明者J·T·克伊斯蒂仁, E·文麦尔, E·S·全 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1