中文字幕无码日韩视频无码三区

對象補救系統及方法

文檔序號:7951854閱讀:317來源:國知局
專利名稱:對象補救系統及方法
技術領域
本發明涉及一種對象補救系統及方法,例如,可適用于在提供由面向對象的程序所構建的呼叫處理服務的語音通信服務裝置中,即使在呼叫處理對象中產生了障礙的情況下,也可迅速且可靠地補救該呼叫的系統及方法。
背景技術
例如,現有的語音通信服務提供裝置為了保持系統的可靠性,具有ACT系服務器和SBY系服務器,具有在ACT系服務器中產生了故障的情況下,由SBY系服務器繼續進行正在提供中的服務的冗余結構。
為了在ACT系服務器出現故障時由SBY系服務器提供同一服務,就需要SBY系服務器能夠利用與ACT系服務器具有的數據同值的數據。
在專利文獻1中公開了一種使在多個呼叫代理商(CA)之間分別搭載的呼叫控制數據一致,并且對該呼叫控制數據進行一元化管理的技術。具體而言專利文獻1公開了以下技術包括具有原始數據的信息服務器,各呼叫代理商從信息服務器接收原始數據并復制該原始數據,從而安裝與原始數據同值的數據(復制數據)。由此,各呼叫代理商就能夠分別安裝并利用一致的呼叫控制數據。
以往,在借助于面向對象的程序來提供各種服務的語音通信服務裝置中,在服務提供開始前,預約為了提供服務所必要的資源。
因此,語音通信服務裝置即便在對收容終端提供呼叫處理服務時,也要在進行呼叫處理之前確保呼叫處理對象的內存區等資源。然后,當進程進行生成時,在內存上生成呼叫處理服務所需要的遍及多分支的一個或多個對象,并在各個對象中設定類。
此處,一般而言,經過類設定的對象具有描述自身的對象數據和為了通過虛擬函數表調用服務提供所需要的虛擬函數而分配的變量(虛擬函數表指針(VFTPVirtual Function Table Pointer))。虛擬函數表將VFTP和虛擬函數的區域對應起來進行管理,類對象通過把該VFTP指向虛擬函數表,就可以調用對應VFTP的虛擬函數的區域。
專利文獻1日本專利特開號公報可是,若正在提供呼叫處理服務時,在硬件或軟件上產生故障,就需要再次生成提供呼叫處理服務的進程并恢復呼叫。
但是,根據以往的語音通信服務裝置,由于故障發生而使此前提供著的呼叫處理服務所需要的數據將消失,在進程再次生成之際就需要再一次從頭開始進行處理。因此,呼叫的補救就需要時間。
此外,上述課題并不限于呼叫處理對象,對由面向對象的程序所構建的其他對象也是同樣遇到的課題。
因而,就要求一種對象補救系統和方法,能夠在硬件或軟件中產生了故障時,快速、可靠地補救與提供中的服務有關的對象。

發明內容
為了解決這種課題,本發明的技術方案之一提供一種對象補救系統,補救在操作由面向對象的程序所構建的內存區上的一個或多個對象來實現服務提供的服務器內、產生了異常的對象,其中,各對象具有識別虛擬函數的內存區的虛擬函數識別信息、識別該對象所屬的類的類識別信息、和對象數據而構成,所述對象補救系統具備實例管理單元,在服務提供時,依照功能處理的順序在預先所確保的內存區排列并管理將提供的服務所需要的一個或多個對象;虛擬函數存儲區域,每當進程生成就在不同的內存區中存儲虛擬函數;以及再設定單元,在響應于異常發生再次生成了進程時,基于與有了異常的進程有關的對象的類識別信息來確定對象的類屬性,從而為對象設定新生成的進程的虛擬函數的虛擬區域識別信息。
另外,本發明的技術方案之二提供一種對象補救方法,補救在操作由面向對象的程序所構建的內存區上的一個或多個對象來實現服務提供的服務器內、產生了異常的對象,其中,各對象具有識別虛擬函數的內存區的虛擬函數識別信息、識別該對象所屬的類的類識別信息、和對象數據而構成,所述對象補救方法具備實例管理步驟,在服務提供時,依照功能處理的順序在預先所確保的內存區排列并管理將提供的服務所需要的一個或多個對象;虛擬函數存儲區域,每當進程生成就在不同的內存區中存儲虛擬函數;以及再設定步驟,在響應于異常發生再次生成了進程時,基于與有了異常的進程有關的對象的類識別信息來確定對象的類屬性,從而為對象設定新生成的進程的虛擬函數的虛擬區域識別信息。
根據本發明的對象補救系統和方法,就能夠在硬件或軟件中產生了故障的情況下,快速、可靠地補救與提供中的服務有關的對象。


圖1是說明本實施方式的類實例管理中的多個對象的排列的示意圖。
圖2是說明本實施方式的具有ACT系服務器1A和SBY系服務器1B的冗余結構的圖。
圖3是表示本實施方式的服務器的硬件結構的方框圖。
圖4是表示本實施方式的服務器實現的軟件結構的圖。
圖5是本實施方式的服務器的一般的對象模型的結構圖。
圖6是說明本實施方式的共享內存和用戶程序之關系的說明圖。
圖7是表示本實施方式的共享內存上的各種呼叫處理對象的結構的圖。
圖8是說明本實施方式的呼叫處理對象的補救的說明圖。
具體實施例方式
(A)實施方式以下,參照附圖就本發明的對象補救系統和方法的實施方式進行說明。
本實施方式說明把本發明的對象補救系統和方法適用于下述系統的情況,該系統在執行用面向對象的程序所構建的對象以提供呼叫處理服務的語音通信服務裝置(以下稱之為服務器)中,在硬件或軟件上產生了故障時,對呼叫處理對象進行補救。
本實施方式的服務器是提供呼叫處理服務的語音通信服務裝置(呼叫代理商),其中,該呼叫處理服務用于建立所收容的一個或多個電話終端間的呼叫,如圖2所示,該服務器包括具有ACT系服務器1A和SBY系服務器1B的冗余結構。另外,雖然在圖2中將SBY系服務器1B設為一臺,但也可以設為多臺。
ACT系服務器1A是主要被利用的裝置,SBY系服務器1B是在ACT系服務器1A中產生了故障的情況下從ACT系服務器1A切換后被利用的裝置。由此,即便在ACT系服務器1A中產生了故障時,SBY系服務器1B也能夠使迄今為止的處理繼續以下,并能夠對用戶繼續提供同樣的服務。
另外,雖然ACT系服務器1A和SBY系服務器1B可分別具有對應的結構和功能,但在下面以ACT系服務器1A的結構和動作為代表來進行說明。
圖3是表示本實施方式的服務器的硬件結構的方框圖。如圖3所示,與本實施方式有關的服務器10至少具有CPU11、存儲器12、外部存儲裝置13、通信部14、維護用通信部15。
在圖3中,CPU11掌管服務器10整體的控制。CPU11在通過通信部14從所收容的電話終端發出呼叫請求等的呼叫處理階段,一邊把RAM作為工作區域來利用ROM內的處理程序,一邊適當使用處理所需要的固定數據來實現處理。另外,CPU11還具有檢測在服務器10內的硬件或軟件中是否產生故障的功能,在產生了故障時或為了防備故障,而實現再起動控制功能、系統結構管理功能、數據雙重化功能、插入功能、命令控制功能等。此外,在本實施方式中,設處理程序是借助于面向對象的語言(例如,C++語言等)所構建的程序。
存儲器12和外部存儲裝置13例如ROM、RAM、閃存等就符合要求,用于存儲處理程序、固定數據等。
通信部14按照規定的通信方式在服務器10收容的多個電話終端(未圖示)之間授受呼叫處理所需要的信息。另外,通信部14還為了呼叫建立而與必要的數據庫服務器等進行連接。
維護用通信部15與其他服務器之間授受在故障產生時為了切換服務器系統所需要的信息。
圖4是表示服務器10實現的軟件結構的圖。在圖4中,服務器10在故障產生時或為了防備故障,在共用平臺上至少具備再起動控制功能部11A、系統結構管理功能部11B、數據雙重化功能部11C、插入功能部11D、命令控制功能部11E。
這些再起動控制功能部11A、系統結構管理功能部11B、數據雙重化功能部11C、插入功能部11D、命令控制功能部11E位于操作系統(OS例如Linux(注冊商標)等)11F的上層,并對上層的應用11G提供各自的功能。
此外,如上面所述那樣,共用平臺用面向對象的語言(例如,C++語言等)進行描述。另外,共用平臺和用戶間的起動方法例如以C語言函數調用或者函數地址調用為基準。即,共用平臺和用戶不進行利用套接字(socket)或信號量(semaphore)等的通信。因此,在用戶進程和僅利用共用平臺構成的進程之間進行通信的情況下,使對于共用平臺進程的存取函數庫化,并把該庫鏈接到用戶程序,從而實現通信。
再起動控制功能部11A按照規定的再起動可執行程序段(phase)進行系統的初始設定,或者如后面所述那樣,進行只再起動存在異常的程序的個別初始設定,監視運行中的進程的狀態,或者管理個別初始設定對象線程。此處,在系統的重新起動中大致區分有基于再起動命令、用戶指示等的外部因素的重新起動,和基于硬件或軟件的異常檢測的自行重新起動。在ACT系服務器1A中,再起動控制功能部11A進行自行重新起動。在SBY系服務器1B中,再起動控制功能部11A通過從后述的系統結構管理功能部11B接受ACT系服務器1A的故障發生通知來進行起動。
系統結構管理功能部11B管理ACT系服務器1A和SBY系服務器1B之間的雙重化(二重化)結構,進行ACT系服務器1A和SBY系服務器1B的決定,或ACT系服務器1A產生故障時的系統切換。另外,系統結構管理功能部11B在系統切換時,為了避免存在于連接到通信部14方一側(收容的電話終端側)的中繼裝置(例如路由器等)的ARP表(IP地址/MAC地址轉換表)的改寫延遲,設定與接口的IP地址和MAC地址不同的虛擬的IP地址和MAC地址,并使用虛擬IP地址和虛擬MAC地址來實現通信。然后,SBY系服務器1B的系統結構管理功能部11B使用虛擬IP地址和虛擬MAC地址來監視ACT系服務器1A的動作,當檢測出ACT系服務器1A的故障時,將該內容通知給SBY系服務器1B內的再起動控制功能部11A。另外,若SBY系服務器1B的系統結構管理功能部11B從再起動控制功能部11A接收到系統切換指示,就設定虛擬IP地址和虛擬MAC地址,從而實現迅速且可靠的通信。
數據雙重化功能部11C在ACT系服務器1A中產生了故障時,使服務提供所需要的數據同步化(使數據成為相同值),以使得SBY系服務器1B承接ACT系服務器1A正在提供的服務。利用數據雙重化功能部11C的數據雙重化方法,在共享內存上具有保存同步對象數據的同步對象內存區;管理同步對象內存區上的虛擬段(segment)的管理位圖(bitmap)表;和同步請求隊列,通過處在共享內存上即便在發生了各自不同的進程的情況下也能夠共通地進行識別。然后,若隨著應用進程的執行出現同步對象數據的變更,則對涉及該變更的同步對象數據的段,在管理位圖表上的對應部分設置標志。另外,同時在同步請求隊列上排隊該段的開頭地址和大小。之后,發生與應用進程不同的發送進程,發送進程取出被排在同步請求隊列中的段的開頭地址和大小,使用所取出的開頭地址和大小并參照管理位圖表,向其他系服務器發送同步對象區域上的變更后的數據。由此,即便正在執行的應用進程產生故障,與該進程不同的發送進程也能夠使用共享內存上的同步請求隊列和管理位圖表,從同步對象區域向其他系服務器發送變更數據,所以能夠謀求數據的同步化,并能夠避免服務的中斷。
插入功能部11D不停止系統地更新執行程序。由此,就能夠實現程序的錯誤(BUG)處置、簡單的功能變更和功能追加等。此外,該程序的更新以函數單位為基準。
命令控制功能部11E以用戶程序創建的負荷減輕為目的,進行由維護人員輸入的CUI命令和實際進行命令處理的進程的過渡。
接著,說明與本實施方式有關的服務器10中的呼叫處理對象的補救處理。
首先,當服務器10從所收容的電話終端(未圖示)接收到呼叫請求時,為了確保包含呼叫處理服務所需要的一個或多個呼叫處理對象的類的實例,而在共享內存上進行區域確保。
然后,依次生成為了提供呼叫處理服務所需要的進程,使用處理所需要的數據等使用于其一個或多個對象動作,從而能夠實現呼叫處理服務。
當服務器10在提供呼叫處理服務的過程中,在硬件或軟件上產生故障時,ACT系服務器的再起動控制功能部11A基于故障檢測起動規定的再起動控制進程。
在這里,圖5是服務器10中的一般對象模型的示意圖。
在圖5中,具有通知開始再起動處理的再起動控制51;管理類編號和管理器編號的管理主52;進行對象生成及共享內存的確保等的管理的管理器53;進行內存管理的內存控制器54;管理器數據管理24;實例管理21;實例區域23。
在圖5中,呼叫處理服務所需要的各呼叫處理對象位于用戶對象類22中。然后,掌管呼叫處理的各對象與靜態存在的裝載類對象、實例管理類21、對象類(實例區域)23的基礎類協作起來進行管理。
在圖5中,當檢測到硬件或軟件的故障時,再起動控制51通知管理主52開始再起動處理。管理主52對再起動處理所需要的一個或多個類的管理器53指示進行再起動處理。由此,關于服務器10具有的各種功能的再起動處理得以進行。
管理器53管理多個類的實例管理,進行對象的生成和共享內存的確保等的管理。
其次,參照圖6的示意圖就服務器10中的共享內存20和用戶程序30的關系進行說明。
共享內存20是在服務器10中可以在多個進程之間進行共享的內存區。用戶程序30是服務器10執行的程序的區域。
在服務器10中,將要提供的服務所需要的資源需要在服務開始前預先進行預約,所以在呼叫處理發生前的階段,在共享內存20上確保為了執行呼叫處理所需要的呼叫處理對象的內存區。
在本實施方式中,在共享內存20上設置服務提供所需要的類實例管理21,該類實例管理確保呼叫處理服務所需要的一個或多個對象并進行管理。
圖1是說明類實例管理中的多個對象的排列的示意圖。
在圖1中,例如在提供呼叫處理服務時,為了執行呼叫處理服務,需要n+1個對象#0~#n,把這些對象#0~#n中所設定的類設為類A和類B。
以往,類的對象管理是確保各自的類的對象。因此,在調用服務提供所需要的對象時,進行跨越類來調用對象的處理。
例如,類A的實例管理來管理類A的對象,類B的實例管理來管理類B的對象,所以呼叫處理服務所需要的各自對象的調用是由類A的實例管理來進行調用,或者由類B的實例管理來進行調用。
但是,在本實施方式中,如圖1所示,類的實例管理21是以規定順序排列并確保服務提供所需要的對象的結構。通過采用這種結構,就可以對應服務提供謀求迅速的處理。
另外,本實施方式的類的實例管理21處于共享內存20上。通過將類實例管理21處在共享服務器20上,即便在故障發生后進程再次生成也可不消失地進行保持。另外,例如通過利用在ACT系服務器1A和SBY系服務器1B之間謀求數據的同步化的規定的數據雙重化系統,還可以向別的主機發送未消失地得以保持的實例管理的對象,可以實現跨越主機的呼叫補救。
此外,雖然在本實施方式中,將類實例管理21設在共享服務器20上,但只要是即便進程再次生成也不會消失的內存區,則不限定于共享服務器20。
另外,例如在產生多個呼叫時,使用多個一種對象,所以類實例管理21如圖1所示,采取排列服務所需要的對象的結構,由此類實例管理21可以根據呼叫處理發生時的請求,進行抽出并轉交對象或者一旦不需要就將對象再次合并起來之類的管理。
進而,設為繼承序列相同的類,并根據請求進行選擇生成類之類的捕獲,所以能夠通過類實例管理21在有請求時切換內存區相同的各自的類并進行傳遞。
接著,參照

在服務器10中正在提供呼叫處理服務中,在硬件或軟件上產生了故障時的呼叫處理對象的補救。
參照圖7說明涉及本實施方式的共享內存20上的各呼叫處理對象的結構。如圖7所示,各呼叫處理對象具有虛擬函數表指針(VFTP)、類編號、對象數據。圖8是說明呼叫處理對象的補救的說明圖。
VFTP是為了對應于各自的類的虛擬函數而指向虛擬函數表的指針。
類編號是至少能夠識別類的識別信息。類編號例如能夠應用對象邏輯ID(LID)。對象邏輯ID(LID)是由類編號和實例編號所構成的識別信息。另外,類編號在生成對象時選擇了類之際進行設定。
在本實施方式中,除了VFTP外,還設置用于判定共享內存20上的對象是哪個類的對象的類編號。這樣設置類編號是由于以下理由。
在利用面向對象的語言(例如C++語言)所生成的一般對象內,為了分別對應于類的函數,而保持著指向函數表的指針。然后,在生成了繼承序列相同但繼承等級不同的對象的情況下,通過切換VFTP來決定對象的動作條件。
但是,在欲使用上述方式來補救呼叫處理對象時,不能適當進行呼叫處理對象的補救。
其理由是虛擬函數表對每次生成進程將生成在內存上(在圖8中為堆區域),故在進程被再次生成時,就沒有被捕獲在同一區域的保證。即,被分配到與以前(進程再次生成前)不同的區域。另外,由于VFTP被配置在補救內存區域中,所以以前所生成的信息(變量)仍保留著。因此,設定在VFTP中的以前的信息(變量)的對應性丟失。因而,對每次進程生成都需要再次設定VFTP自身。
但是,在本實施方式中,由于對同一內存區分配不同的類(即,在本實施方式中,使服務所需要的對象配置在類實例管理21中,所以被分配不同類的對象),故在該內存區中以前分配了哪個類的對象,無法直接進行判定,所以不能進行VFTP的再設定。
因此,能夠根據與VFTP同樣,在被補救的對象內與實際類相對應起來的類編號來判定類,判定應進行再設定的類,并再次設定VFTP。
然后,當VFTP被再設定時,就能夠通過該VFTP調用對象具有的函數并使其動作,并能夠補救呼叫處理對象。由此,即使VFTP對每個進程或每個主機不同也能夠補救呼叫處理對象。
(B)其他實施方式(B-1)雖然在上述實施方式中,以把SBY系服務器設為1臺服務器的情況為例進行了說明,但是SBY系服務器的設置臺數也可以是2臺或2臺以上。
(B-2)在上述實施方式中,用戶程序20A和20B、數據雙重化控制部數據雙重化客戶端庫30A和30B、數據雙重化控制部40A和40B、系統結構管理部50A和50B、雙重化開始/停止通知受理庫60A和60B,可以作為由各自的服務器中的OS(操作系統)所管理的軟件來進行實現。
權利要求
1.一種對象補救系統,補救在操作由面向對象的程序所構建的內存區上的一個或多個對象來實現服務提供的服務器內、產生了異常的對象,其特征在于,上述各對象具有識別虛擬函數的內存區的虛擬函數識別信息、識別該對象所屬的類的類識別信息、和對象數據而構成,所述對象補救系統具備實例管理單元,在服務提供時,依照功能處理的順序在預先所確保的內存區排列并管理將要提供的服務所需的一個或多個上述對象;虛擬函數存儲區域,每當進程生成就在不同的內存區中存儲虛擬函數;以及再設定單元,在響應于異常發生而再次生成了進程之際,基于與有了異常的進程有關的上述對象的上述類識別信息,來確定該對象的類屬性,由此對上述對象設定新生成的進程的虛擬函數的虛擬區域識別信息。
2.一種對象補救方法,補救在操作由面向對象的程序所構建的內存區上的一個或多個對象來實現服務提供的服務器內、產生了異常的對象,其特征在于,上述各對象具有識別虛擬函數的內存區的虛擬函數識別信息、識別該對象所屬的類的類識別信息、和對象數據而構成,所述對象補救方法具備實例管理步驟,在服務提供時,依照功能處理的順序在預先所確保的內存區排列并管理將要提供的服務所需的一個或多個上述對象;虛擬函數存儲區域,每當進程生成就在不同的內存區中存儲虛擬函數;以及再設定步驟,在響應于異常發生而再次生成了進程之際,基于與有了異常的進程有關的上述對象的上述類識別信息,來確定該對象的類屬性,由此對上述對象設定新生成的進程的虛擬函數的虛擬區域識別信息。
全文摘要
本發明提供一種對象補救系統,即便在產生了故障的情況下也能夠快速、可靠地補救與提供服務有關的對象。其作為在操作由面向對象的程序所構建的內存區上的對象來實現服務提供的服務器中的對象補救系統。其中,各對象具有虛擬函數識別信息、類識別信息和對象數據,該對象補救系統具備實例管理單元,在服務提供之際,根據功能處理順序在預先所確保的內存區中排列將要提供的服務所需要的一個或多個對象;存儲虛擬函數的虛擬函數存儲區域;以及再設定單元,在再次生成了進程之際,基于與出現了異常的進程有關的對象的類識別信息來確定對象的類屬性,并為對象重新設定新進程的虛擬函數的虛擬區域識別信息。
文檔編號H04L12/24GK1842025SQ200610002449
公開日2006年10月4日 申請日期2006年1月26日 優先權日2005年3月31日
發明者小池友岳 申請人:沖電氣工業株式會社
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1