系统执行故障预防方法及系统及其编译器的制作方法

文档序号:6554164阅读:140来源:国知局
专利名称:系统执行故障预防方法及系统及其编译器的制作方法
技术领域
本发明是有关于系统管理,且特别有关于一种系统执行故障的预防方法及系统。
背景技术
在系统管理中,预防系统的执行故障是非常重要且关键的。由于执行时错误可能会导致系统死机(shutdown),需要平顺且可靠执行环境来确保生产稳定的制造系统,如制造执行系统更须对于系统执行故障进行特定的预防。大部分的300mm制造执行系统,举例来说,是采用CORBA(公共对象请求代理体系结构)。CORBA提供一称为序列(Sequence)的动态容器作为储存数据的阵列数据结构。然而,由于当一程序存取到系统上未初始化的存储器时系统将会死机,因此,此结构是非常不够稳定的。在制造厂中,要在以CORBA为基础的制造执行系统中将不安全的程序锁定是非常困难的。
IBM公司提供一种处理系统执行故障的容错机制。如图1A所示,系统100提供三个程序来同时服务相应的程序。在图1A中,程序S1与S2被用来分别服务程序P1与P2,而程序S3为闲置。当程序P2导致程序S2死机关闭时,系统可以自动取消程序S2,叫醒程序S3来重新服务程序P2,且另外启动一个在闲置状态的新程序S4,以应付新的要求,如图1B所示。
然而,IBM公司所提出的单纯使用另外一程序来重新服务程序的机制无法解决系统死机的问题。对于一个完整的解决方案,有问题的程序码必须重新进行检视且逐行修正。这样的方法将会非常耗时且无效率,且错误亦可能持续存在,从而使得系统持续暴露在死机风险之中。
另外,系统死机问题亦会出现在网络环境中。由客户所传送的数据版本必须符合服务器可以辨识与接受的版本。如果数据版本不相配,系统可能会死机关闭。图2显示解决网络环境中系统死机问题的机制。首先,客户端210传送一数据版本至服务器220的版本单元221,如S1所示。接着,版本单元221判断此数据版本是否相配服务器220上所使用的版本,且回传一回应给客户210,如S2所示。如果数据版本相配,客户端210传送数据给服务器220的处理核心222,如S3所示。否则,客户端210取消传送。然而,现有机制需要许多网络传输,使得其非常耗时且不具效率。

发明内容
有鉴于此,本发明提供一种系统执行故障预防方法。
依据本发明提供一种系统执行故障预防方法,首先,使用一接口定义语言(Interface Definition Language,IDL)编译器编译一接口定义语言文件来产生一编译过的接口定义语言文件。通过在编译过的接口定义语言文件中定义相应一特定运算子的额外操作来转换编译过的接口定义语言文件。当包括此转换后的文件的一程序执行至此特定运算子时,在相应特定运算子的原始操作前执行额外操作。
在编译接口定义语言文件时,更产生一标题文件,且使用一来源码编译器将一来源码文件与此标题文件进行编译。转换后的文件与编译后的来源码文件进行合并来产生程序。
特定运算子包括CORBA的订购(Subscribe)运算子。额外操作包括判断订购运算子的参数值是否在一初始值内;如果参数值在初始值内,允许执行特定运算子的原始操作;且如果参数值不在初始值内,取消执行特定运算子的原始操作。额外操作包括判断订购运算子是否要存取未初始化的存储器;如果订购运算子不需要存取未初始化的存储器,允许执行特定运算子的原始操作;且如果订购运算子需要存取未初始化的存储器,取消执行特定运算子的原始操作。
如果参数值不在初始值内或是订购运算子需要存取未初始化的存储器,更回传一错误信息。
本发明提供一种编译器,所述编译器包括一接口定义语言编译器,用以编译一接口定义语言文件;以及一转换编译器,用以通过在编译过的该接口定义语言文件中定义相应一特定运算子的额外操作来转换编译过的该接口定义语言文件;当包括该转换后的文件的一程序执行至该特定运算子时,在相应该特定运算子的原始操作前执行该额外操作。
本发明所述的编译器,更包括一来源码编译器,用以编译一来源码文件与一标题文件,其中该标题文件是于编译该接口定义语言文件时产生;其中该转换后的文件与编译后的该来源码文件是合并来产生该程序。
本发明所述的编译器,该特定运算子包括公共对象请求代理体系结构的一订购运算子。
本发明所述的编译器,该额外操作包括判断该订购运算子的一参数值是否在一初始值内;若该参数值在该初始值内,允许执行该特定运算子的原始操作;以及若该参数值不在该初始值内,取消执行该特定运算子的该原始操作。
本发明所述的编译器,该额外操作更包括当该参数值不在该初始值内时,回传一错误信息。
本发明所述的编译器,该额外操作包括判断该订购运算子是否要存取一未初始化的存储器;若该订购运算子不需要存取未初始化的存储器,允许执行该特定运算子的原始操作;以及若该订购运算子需要存取未初始化的存储器,取消执行该特定运算子的该原始操作。
本发明所述的编译器,该额外操作更包括当该订购运算子需要存取未初始化的存储器时,回传一错误信息。
依据本发明提供一种使用于网络环境的系统执行故障预防方法,首先,透过一网络接收一包。此包是事先被一编码器以一数据版本与数据进行编码。接着,包被一译码器译码,以得到数据版本与数据。之后,判断数据版本是否相配于一既定版本,如果是,依据接收的数据执行操作。否则,丢弃此包。
本发明又提供一种系统执行故障预防系统,所述系统执行故障预防系统包括一编码器,用以编码一数据版本与数据来产生一包,且透过一网络传送该包;以及一译码器,用以接收该包,译码该包,以得到该数据版本与数据,判断该数据版本是否相配于一既定版本,且若该数据版本相配于该既定版本,依据接收的该数据执行操作。
本发明所述的系统执行故障预防系统,该译码器更当该数据版本不相配于该既定版本时,丢弃该包。
本发明上述方法可以透过程序码方式收录于实体介质中。当程序码被机器载入且执行时,机器变成用以实行本发明的装置。
本发明所述系统执行故障预防方法及系统及其编译器,提供了有效的机制来预防系统执行故障,从而节省相关人力与时间,且强化系统的稳定性。


图1A与图1B为一示意图是显示一现有容错机制;图2为一流程图是显示解决网络环境中系统死机问题的机制;图3为一示意图是显示一现有CORBA编译程序;
图4为一示意图是显示依据本发明实施例的编译器;图5为一示意图是显示依据本发明实施例的系统执行故障预防方法;图6为一流程图是显示依据本发明实施例的程序执行程序;图7为一示意图是显示储存提供系统执行故障预防方法的计算机程序的储存介质;图8为一示意图是显示依据本发明实施例的网络环境的系统执行故障预防方法;图9为一示意图是显示储存提供系统执行故障预防方法的计算机程序的储存介质。
具体实施例方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图示,进行详细说明如下。
在本发明实施例中,现有CORBA编译程序被进行修正,以有效率地避免系统死机问题。
CORBA允许程序的段(Segment)或对象(Object)来与不同的程序语言与操作系统的段或对象进行相互通信。CORBA提供一种机制,其中对象可以在不同的分散环境中的不同平台上相互通信。在此模式中,客户端透过一完善定义的接口由对象要求服务。此接口在接口定义语言(IDL)中指定。客户端可以通过发出一要求来存取一对象。此要求可以是一事件,且带有包括一操作、服务供应者的对象参考(Object Reference)与实际参数等的信息。
图3为一示意图是显示一现有CORBA编译程序。如图3所示,透过一接口定义语言编译器302,一接口定义语言文件301可以被产生一编译后的接口定义语言文件303与一标题(Header)文件304。值得注意的是,一接口定义语言文件包含一个或多个接口定义。每一接口定义是由一接口标题与一接口主体(Body)所组成。接口标题是由方括号所区分。接口主体是包含于圆括号中。
另外,透过一来源码编译器306,一来源码文件305与标题文件304可以产生一编译后的来源码文件307。值得注意的是,来源码文件305可以是一个使用C++、JAVA或是其他程序语言所撰写的文件,且来源码编译器306可以是CORBA基础的C++、JAVA或是其他编译器。接口定义语言文件303与编译后的来源码文件307被结合来产生一程序308。
图4为一示意图是显示依据本发明实施例的编译器。编译器400包括一接口定义语言编译器302、一来源码编译器306与一转换编译器410,其细节将于后说明。
图5为一示意图是显示依据本发明实施例的系统执行故障预防方法。注意的是,在图3、图4与图5中相同的元件将以相同的标示表示。首先,使用接口定义语言编译器302编译接口定义语言文件301,如S501所示,以分别产生一编译后的接口定义语言文件303,如S502a所示与一标题文件304,如S502b所示。接着,编译后的接口定义语言文件303被转换编译器410进行转换,如S503所示,以产生一转换后的文件411,如S504所示。其中,转换编译器410是在编译过的接口定义语言文件中定义相应一特定运算子的额外操作来转换编译过的接口定义语言文件。
另外,一来源码编译器306编译一来源码文件305与标题文件304,如S505所示,以产生一编译后的来源码文件307,如S506所示。之后,转换后的文件411与编译后的来源码文件307被结合来产生一程序308。值得注意的是,当包括此转换后的文件411的程序308执行至此特定运算子时,在相应特定运算子的原始操作前执行额外操作。特定运算子包括CORBA的订购运算子。额外操作包括,但不限定是,保护的操作其包括判断订购运算子是否要存取未初始化的存储器、与判断订购运算子的参数值是否在一初始值内。值得注意的是,相应订购运算子的原始操作在CORBA中已经明确定义,在此省略。
图6为一流程图是显示依据本发明实施例的程序执行程序。当一程序执行至订购运算子时,首先,如步骤S610,判断订购运算子是否要存取未初始化的存储器。类似地,步骤S610可以是判断订购运算子的参数值是否在一初始值内。如果不需要,即步骤S610的否,如步骤S611,允许依据相应的参数执行订购运算子的原始操作。若需要存取未初始化的存储器,即步骤S610的是,如步骤S612,取消执行订购运算子的原始操作,且如步骤S613,回报一个错误信息给计算机系统或相关人员以进行后续处理。
图7为一示意图是显示储存提供系统执行故障预防方法的计算机程序的储存介质。计算机程序产品包括可以使用于计算机系统700中具有储存计算机可读取程序码的储存介质710。计算机可读取程序码至少包括程序码711,用以使用一接口定义语言编译器编译一接口定义语言文件来产生一编译过的接口定义语言文件、以及程序码712,用以通过在编译过的接口定义语言文件中定义相应一特定运算子的额外操作来转换编译过的接口定义语言文件。当包括此转换后的文件的一程序执行至此特定运算子时,在相应特定运算子的原始操作前执行额外操作。
计算机可读取程序码更包括程序码(未显示),用以判断订购运算子是否要存取未初始化的存储器、程序码(未显示),用以当订购运算子不需要存取未初始化的存储器时,允许执行特定运算子的原始操作、以及程序码(未显示),用以当订购运算子需要存取未初始化的存储器时,取消执行特定运算子的原始操作。计算机可读取程序码更包括程序码(未显示),用以当订购运算子需要存取未初始化的存储器时,发出一错误信息。
图8为一示意图是显示依据本发明实施例的网络环境的系统执行故障预防方法。此环境包括分别在至少一客户端与一服务器上的一编码器803与一译码器806。
首先,客户端上的数据版本(或数据格式)802与数据801被编码器803进行编码,如步骤S811所示,以产生一包804,如步骤S812所示。此包804透过网络805被传送至服务器,如步骤S 813所示。接收到包804之后,包804被译码器806译码,如步骤S814所示,以得到数据版本802与数据801,如S815所示。之后,判断数据版本802是否相配于服务器上的一既定版本,且如果是,依据接收的数据执行操作。否则,丢弃此包。
图9为一示意图是显示储存提供系统执行故障预防方法的计算机程序的储存介质。计算机程序产品包括可以使用于计算机系统900中具有储存计算机可读取程序码的储存介质910。计算机可读取程序码至少包括程序码911,用以透过一网络接收一包;程序码912,用以译码包,以得到数据版本与数据;程序码913,用以判断数据版本是否相配于一既定版本;以及程序码914,用以当数据版本相配于既定版本时,依据接收的数据执行操作。
通过本发明实施例,可以提供有效的机制来预防系统执行故障,从而节省相关人力与时间,且强化系统的稳定性。
本发明的方法与系统,或特定型态或其部分,可以以程序码的型态包含于实体介质,如软盘、光盘片、硬盘、或是任何其他机器可读取(如计算机可读取)储存介质,其中,当程序码被机器,如计算机载入且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序码型态透过一些传送介质,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如计算机接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实作时,程序码结合处理器提供一操作类似于应用特定逻辑电路的独特装置。
虽然本发明已通过较佳实施例说明如上,但该较佳实施例并非用以限定本发明。本领域的技术人员,在不脱离本发明的精神和范围内,应有能力对该较佳实施例做出各种更改和补充,因此本发明的保护范围以权利要求书的范围为准。
附图中符号的简单说明如下P1、P2程序S1、S2、S3、S4程序100系统210客户端220服务器221版本单元222处理核心301接口定义语言文件302接口定义语言编译器303编译后的接口定义语言文件304标题文件305来源码文件306来源码编译器307编译后的来源码文件308程序400编译器410转换编译器411转换后的文件S501、S502a、S502b、...、S507操作步骤S610、S611、...、S613操作步骤700计算机系统
710储存介质711、712程序码801数据802数据版本803编码器804包805网络806译码器S811、S812、...、S815操作步骤900计算机系统910储存介质911、912、913、914程序码
权利要求
1.一种系统执行故障预防方法,使用于一计算机系统中,其特征在于,所述系统执行故障预防方法包括下列步骤编译一接口定义语言文件来产生一编译过的接口定义语言文件;以及通过在编译过的该接口定义语言文件中定义相应一特定运算子的额外操作来转换编译过的该接口定义语言文件;当包括该转换后的文件的一程序执行至该特定运算子时,在相应该特定运算子的原始操作前执行该额外操作。
2.根据权利要求1所述的系统执行故障预防方法,其特征在于,更包括下列步骤编译该接口定义语言文件,以更产生一标题文件;使用一来源码编译器将一来源码文件与该标题文件进行编译;以及将该转换后的文件与编译后的该来源码文件进行合并来产生该程序。
3.根据权利要求1所述的系统执行故障预防方法,其特征在于,该特定运算子包括公共对象请求代理体系结构的一订购运算子。
4.根据权利要求3所述的系统执行故障预防方法,其特征在于,该额外操作包括判断该订购运算子的一参数值是否在一初始值内;若该参数值在该初始值内,允许执行该特定运算子的原始操作;以及若该参数值不在该初始值内,取消执行该特定运算子的该原始操作。
5.根据权利要求4所述的系统执行故障预防方法,其特征在于,该额外操作更包括当该参数值不在该初始值内时,回传一错误信息。
6.根据权利要求3所述的系统执行故障预防方法,其特征在于,该额外操作包括判断该订购运算子是否要存取一未初始化的存储器;若该订购运算子不需要存取未初始化的存储器,允许执行该特定运算子的原始操作;以及若该订购运算子需要存取未初始化的存储器,取消执行该特定运算子的该原始操作。
7.根据权利要求6所述的系统执行故障预防方法,其特征在于,该额外操作更包括当该订购运算子需要存取未初始化的存储器时,回传一错误信息。
8.一种编译器,其特征在于,所述编译器包括一接口定义语言编译器,用以编译一接口定义语言文件;以及一转换编译器,用以通过在编译过的该接口定义语言文件中定义相应一特定运算子的额外操作来转换编译过的该接口定义语言文件;当包括该转换后的文件的一程序执行至该特定运算子时,在相应该特定运算子的原始操作前执行该额外操作。
9.根据权利要求8所述的编译器,其特征在于,更包括一来源码编译器,用以编译一来源码文件与一标题文件,其中该标题文件是于编译该接口定义语言文件时产生;其中该转换后的文件与编译后的该来源码文件是合并来产生该程序。
10.根据权利要求8所述的编译器,其特征在于,该特定运算子包括公共对象请求代理体系结构的一订购运算子。
11.根据权利要求10所述的编译器,其特征在于,该额外操作包括判断该订购运算子的一参数值是否在一初始值内;若该参数值在该初始值内,允许执行该特定运算子的原始操作;以及若该参数值不在该初始值内,取消执行该特定运算子的该原始操作。
12.根据权利要求11所述的编译器,其特征在于,该额外操作更包括当该参数值不在该初始值内时,回传一错误信息。
13.根据权利要求10所述的编译器,其特征在于,该额外操作包括判断该订购运算子是否要存取一未初始化的存储器;若该订购运算子不需要存取未初始化的存储器,允许执行该特定运算子的原始操作;以及若该订购运算子需要存取未初始化的存储器,取消执行该特定运算子的该原始操作。
14.根据权利要求13所述的编译器,其特征在于,该额外操作更包括当该订购运算子需要存取未初始化的存储器时,回传一错误信息。
15.一种系统执行故障预防方法,使用于一计算机系统中,其特征在于,所述系统执行故障预防方法包括下列步骤透过一网络接收一包;译码该包,以得到一数据版本与数据;判断该数据版本是否相配于一既定版本;以及若该数据版本相配于该既定版本,依据接收的该数据执行操作。
16.根据权利要求15所述的系统执行故障预防方法,其特征在于,更包括若该数据版本不相配于该既定版本,丢弃该包。
17.一种系统执行故障预防系统,其特征在于,所述系统执行故障预防系统包括一编码器,用以编码一数据版本与数据来产生一包,且透过一网络传送该包;以及一译码器,用以接收该包,译码该包,以得到该数据版本与数据,判断该数据版本是否相配于一既定版本,且若该数据版本相配于该既定版本,依据接收的该数据执行操作。
18.根据权利要求17所述的系统执行故障预防系统,其特征在于,该译码器更当该数据版本不相配于该既定版本时,丢弃该包。
全文摘要
本发明提供一种系统执行故障预防方法及系统及其编译器,所述系统执行故障预防方法,首先,使用一接口定义语言编译器编译一接口定义语言文件来产生一编译过的接口定义语言文件。通过在编译过的接口定义语言文件中定义相应一特定运算子的额外操作来转换编译过的接口定义语言文件。当包括此转换后的文件的一程序执行至此特定运算子时,在相应特定运算子的原始操作前执行额外操作。本发明所述系统执行故障预防方法及系统及其编译器,提供了有效的机制来预防系统执行故障,从而节省相关人力与时间,且强化系统的稳定性。
文档编号G06F11/36GK1811713SQ20061000177
公开日2006年8月2日 申请日期2006年1月25日 优先权日2005年1月25日
发明者汪明, 程建斐 申请人:台湾积体电路制造股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1