專利名稱:用于集成網絡服務提供者的服務應用程序構架的制作方法
技術領域:
本發明涉及先進的智能網絡領域,特別涉及用于集成網絡服務提供者的服務應用程序構架。
背景技術:
開放網絡應用程序編程接口(API)的發展代表了與用于開放公用交換電話網絡(PSTN)的構架的傳統方法的重要背離。一種這樣的開放網絡API,先進的智能網絡(AIN)API和構架,定義了一種呼叫模式,其允許創建在該交換環境之外的通信服務應用程序。通信服務應用程序是可以執行在兩方或多方之間建立通信會話的增強服務的通信應用程序。示意的服務應用程序可以包括呼叫等待、主叫方標識、呼叫轉移、語音激活撥號以及電話會議。
當AIN首先被引入時,根據服務應用程序創建處理,該AIN代表一種重要的發展。從交換發展而來的AIN分離的服務使得服務邏輯組件更加快速地發展,并且置于附著到數據庫的專用網絡部件中。反過來,被從所有服務邏輯解放出來的交換機可以對速度和效率而優化。但是,發展到AIN標準的典型服務應用程序由專門訓練的程序員使用專用的服務創建環境來編寫。
重要的是將來的通信網絡的特征在于新的和發展的網絡構架,其中分組交換、電路交換和無線網絡被集成,以向用戶提供一批創新的多媒體、多方應用程序。同樣重要的是,通信應用程序發展的過程將會改變,并且將不僅僅是該通信網絡或服務應用程序提供者的領域。實際上,為了快速地提供廣泛、新型、有競爭力的應用程序,服務應用程序提供者將日益求助于應用程序開發者和軟件銷售商。因此,在通信領域中的應用程序的開發將變得更加類似于一般的軟件和信息技術的情況,客戶從日益增加的競爭、減小進入市場的時間以及新技術的快速發展中得到好處。
為了使得這種設想成為現實,由于新服務應用程序組件開發模式,AIN的原理已經被放棄。具體來說,人們已經認識到將來的集成網絡必須向應用程序開發者提供一組標準的、開放的API,使得為了與一個銷售商的系統相兼容而編寫的應用程序可以在另一個銷售商的系統中執行。從而,可以分期支付應用程序開發的成本,減小對于客戶的最終成本。用于集成網絡的Java API(JAIN)滿足新服務應用程序組件開發模式的要求。當前,JAIN包括標準、開放、公布的用于下一代系統的Java API,包括集成網際協議(IP)或者異步傳輸模式(ATM)網絡、PSTN和無線網絡。該JAIN API包括在協議級的接口,用于例如媒體網關控制協議(MGCP)、會話啟動協議(SIP)以及交互能力應用程序部分(TCAP)以及駐留在通信協議棧的較高層中的協議。
JAIN包括一組集成網絡API,用于Java平臺的以及把JAIN組件構建和集成到在PSTN、分組和無線網絡上工作的服務或應用程序中的一個環境。該JAIN方法通過把基于服務的邏輯與基于網絡的邏輯相分離而集成有線線路、無線和基于分組的網絡。圖1示出一種常規的JAIN應用。如圖1中所示,一種常規的JAIN應用可以包括一個協議層102,其可以包括到IP、有線線路和無線信令協議的接口。盡管僅僅示出TCAP、JCC和H.323協議110,但是由JAIN規范所支持的協議不限于具體的協議,并且例如可以包括TCAP,ISUP,INAP,MAP,SIP,MGCP和H.323。另外,該JAIN應用可以包括到達例如JCC這樣的一個連通性管理和呼叫控制協議的接口。
除了協議層102之外,該常規的JAIN應用還可以包括用于處理安全網絡接入和其他外部服務120的應用層104。并且,該常規JAIN應用可以包括一個服務邏輯層106,其可以包括一個服務創建和載體等級服務邏輯執行環境(SLEE)108。服務組件112是核心JAIN組件,并且可以在SLEE 108中執行。更加具體來說,服務組件112可以實現電話和網絡服務,并且可以根據一種標準組件模型而構造。服務組件組合的實例與SLEE 108相協調地執行。
在工作中,使用關于可以包含到SLEE 108的協議層102的信息,服務組件112可以與一個下層的協議層110交互作用,而不需要關于該協議層110的具體知識。更加重要的是,該SLEE 108可以通過提供用于事務處理、連續性、負載平衡、安全性以及對象和連接實例合并的便攜支持而減輕服務組件112的常規使用壽命保證責任。按照這種方式,該服務組件112可以針對于提供電話和/或網絡服務。特別地,SLEE 110可以直接通信連接到客戶機組件,例如外部應用程序116、協議棧110和服務組件112。
例如,在SLEE 108中的服務邏輯層106處執行的服務組件112可以通過在SLEE 108中的協議適配器與在該協議層中的協議棧110進行通信。協議適配器一般可以包括類方法、回封裝接口或事件處理程序。在許多情況中,一個下層協議棧110可以通過在SLEE 108中的一個事件表114直接與SLEE 108進行通信,該SLEE 108可以被配置為專用于處理對于該下層協議棧110特定的事件。從而,該SLEE 108可以識別這些特殊事件,并且在從下層協議棧110接收這種事件之后,該SLEE108可以把該事件傳送到一個預定服務組件112。并且,服務組件112可以被獨立編程為與例如關系數據庫、目錄服務等等這樣的特定外部服務120交互作用。
盡管從表面上看JAIN規范具有優點,但是,JAIN規范的常規應用包括一些缺點,特別在它們應用于實時電話的情況中。首先,常規JAIN應用的SLEE包括一個Enterprise Javabean(EJB)方法,其包括不必要的系統雜務,例如使用壽命保證責任。但是,使用壽命保證責任在實時電話領域中不如在其他通信領域中那樣重要。因此,EJB的使用可能對于滿足實時操作的要求來說導入太長的等待時間。另外,為了減小協議棧的服務組件的復雜度,該SLEE需要下層協議棧的專業知識,例如從可以用于促進SLEE和下層協議棧之間的通信的相應事件表顯然可以看出這一點。但是,在SLEE中包括專用的客戶機組件信息可能對SLEE增加不必要的復雜度。從使用壽命保證責任的觀點來看,這是成問題的。并且,在SLEE中包括客戶機組件信息不必要地導致SLEE與特定的客戶機組件相結合。最后,把SLEE與特定客戶機組件相結合可能需要在計算上緊密相鄰的應用層、協議層和服務邏輯層的定位。
與在SLEE中的一個服務組件進行通信對于外部應用程序來說也可能是成問題的。具體來說,一個外部應用程序必須編程地與在可以與外部應用程序進行通信的SLEE中的這些服務組件相結合。在外部應用程序在例如互聯網這樣的計算機通信網絡上發布時,該問題可能是復合的。相應地,集成服務或通過包括萬維網在內的互聯網可用的其他功能的任何嘗試必須使用一個分離、專用的系統來實現。
特別地,根據JAIN規范,一個無線服務應用程序的發展需要許多不同的通信接口和用于接入無線服務的知識。例如,當前存在有多種不同的通信協議,其支持使用無線網絡。這些協議可以包括用于全球數字移動電話系統(GSM)、通用分組無線業務(GPRS)、增強的數據GSM環境(EDGE)、通用移動通信系統(UTMS)、無線應用協議(WAP)、移動接入協議(MAP)和i模式。
為了開發一種無線服務應用程序,一個開發者必須熟悉對應于被包含到被開發的無線服務應用程序的無線服務或功能的該特定無線協議接口。例如,WAP是用于使得無線設備通信標準化的一組通信協議的一種規范。因此,開發用于手持設備的無線服務的服務應用程序的人至少需要對WAP的一般了解,以成功地開發這種服務應用程序。
類似地,希望提供通過無線手持設備交互使用一個網址的應用程序服務的服務應用程序開發者可能需要熟悉GPRS,其能夠提供比WAP更高的數據率。例如GPRS和WAP這樣的解決方案可以促進各種設備和服務的協作能力,以及使得對專用解決方案的使用最少化。但是,為了開發各種無線服務應用程序,一個開發者必須熟悉無線協議和接口的分類。相應地,在使用不同無線通信協議和接口中具有必要經驗的人數可能受到限制。
類似于在開發無線服務應用程序中所面對的困難,一種通信服務應用程序的開發還需要許多用于接入服務應用程序和功能的不同通信接口和協議的知識。例如,除了用于訪問呼叫模型的服務組件之外,呼叫阻塞或呼叫轉移這樣的服務應用程序可能需要接入目錄服務或者其他專用數據庫,用于訪問信息以實現該呼叫模型。但是,接入目錄服務可能需要關于輕量目錄接入協議(LDAP)的專門知識。通過比較,接入任何特定的數據庫可能需要DB2、MQSeries或者其他專用數據庫接入協議的知識。
一般來說,使用一種特殊的協議實現無線應用程序所需的知識可能如此高度專業化,使得在一個給定的機構中可能僅僅有一個人具有必要的經驗。這種人員上的兩難境地意味著每次開發用于一個特定無線格式的解決方案時,該解決方案不容易端接一個不同的無線格式或協議。另外,由于編程專業技能可能如此高度專業化,把一個服務應用程序端接另一個格式或協議,一般需要具有在目標格式或協議內的專業技能額外人員。
因此,電話服務應用程序開發的高度專業化的特性可能導致開發費用的增加和較長的設計周期。另外,所涉及的復雜度使得系統、特性和應用程序的回收利用和維護極其困難。例如,由于接入一個特定服務功能所需的協議和邏輯被包含在被開發的服務應用程序中,則對一個下層協議的任何改變可能需要對整個服務應用程序重新編程。總而言之,無線服務應用程序開發的高度專業化特性可能導致增加開發費用和更長的設計周期。另外,所涉及的復雜度使得系統、特性和應用程序的回收利用極其困難。因此,所需要的是用于集成網絡服務提供者的一種更加靈活的服務應用程序構架。
發明內容
相應地,根據第一方面,本發明提供一種用于智能網絡的應用程序執行環境,其中包括在服務邏輯層中的SLEE,該SLEE包括一個事件路由總線,用于在服務邏輯層中的服務組件以及協議層和應用層中的客戶機組件之間路由事件;在協議層中的至少一個客戶機組件,其中該至少一個客戶機組件通過一個連接器/包裝器接口(wrapper interface)與SLEE通信連接;以及在該SLEE中執行的至少一個電話服務組件,其中該電話組件可以被配置為通過在SLEE中的事件路由總線與在該協議層中的客戶機組件和在該服務邏輯層中的其他服務組件進行通信。
最好,該應用程序執行環境進一步包括至少一個在SLEE中執行的普通服務組件。該普通服務組件可以被配置為與在SLEE中的其他服務組件進行通信。該普通服務組件還被配置為與在該應用層中的特定外部服務進行通信。
最好,該應用程序執行環境進一步包括在所述SLEE中執行的至少一個互聯網使能服務組件(IESC),所述IESC具有用于通過所述事件處理程序與在所述SLEE中的其他服務組件之間發送和接收消息的配置,所述IESC具有到達所述SLEE之外的一個服務器方程序的通信鏈路。
最好,該連接器/包裝器接口包括一個客戶機組件包裝器,該客戶機組件包裝器提供到該協議層中的一個客戶機組件的抽象接口;以及與該SLEE相關的連接器,該連接器對應于該客戶機組件包裝器,其中該連接器被配置為通過由該客戶機組件包裝器所提供的抽象接口與該客戶機組件進行通信。
最好,該應用程序執行環境進一步包括一個SLEE描述符,該SLEE描述符指定至少一個客戶機組件,該SLEE可以被配置為通過一個連接器/包裝器接口與該客戶機組件進行通信。
最好,該應用程序執行環境進一步包括至少一個客戶機組件描述符,每個客戶機組件描述符對應于在該協議層中的一個特定客戶機組件,該至少一個客戶機組件描述符指定特定的事件,該事件被通過在SLEE中的事件路由總線通知該指定的客戶機組件。
最好,該客戶機組件是一個協議棧。另外,該客戶機組件可以是一個呼叫控制組件、信令協議組件、連通性管理協議組件或者安全網絡接入協議組件。
最好,該SLEE是一個JAIN兼容的SLEE。
最好,該SLEE進一步包括用于在SLEE中裝載服務組件的類裝載器,該SLEE登記每個裝載的服務組件,以接收發送到特定的所登記服務組件的事件;每個路由總線把所述所接收的事件路由到在該SLEE中執行的所述特定的所登記服務組件。
最好,該SLEE進一步包括一個線程池(thread pool);以及用于分配由所述裝載的服務組件所使用的線程的線程池管理器。
根據第二方面,本發明提供一種電話服務提供方法,其中首先在一個服務邏輯執行環境(SLEE)中的一個事件路由總線中,協議層事件被通過一個連接器/包裝器接口從客戶機組件接收,服務邏輯層事件被從在該SLEE中執行的服務組件接收,以及該特定協議層事件和服務邏輯層事件被轉發到被登記接收該特定協議層和服務邏輯層事件的服務組件和客戶機組件;以及其次在SLEE中執行的至少一個服務組件中,至少一個服務邏輯層事件被發送到事件路由總線,其中該事件路由總線可以把被發送的服務邏輯層事件轉發到另一個被登記接收所發送的服務邏輯層事件的另一個服務組件。
最好,作為電話服務提供方法的一部分在至少一個服務組件中,建立與一個指定外部服務的通信鏈路;一個服務邏輯層事件被從另一個服務組件接收,所接收的事件請求外部服務;以及響應從另一個服務組件接收的服務邏輯層事件,所請求的外部服務被通過對由鏈接的指定外部服務所提供的一個功能的至少一個指定調用而提供。
根據第三方面,本發明提供一種機器可讀存儲器,其具有存儲于其上的一個用于提供電話服務的計算機程序,所述計算機程序具有可由一個機器所執行的程序代碼,用于使得該機器執行根據第二方面的方法。
根據第四方面,本發明提供一種先進的智能網絡,其中包括服務邏輯執行環境(SLEE),所述SLEE包括一個事件處理程序,用于在客戶機組件和服務器組件之間路由消息;至少一個服務組件被配置為通過所述事件處理程序與在所述SLEE中的其他服務組件之間發送和接收消息;以及在所述SLEE中執行的至少一個互聯網使能服務組件(IESC),所述IESC被配置為通過所述事件處理程序與在所述SLEE中的其他服務組件之間發送和接收消息,所述IESC通信鏈接到所述SLEE外部的一個服務器側的程序。
根據第五方面,本發明提供一種在智能網絡模塊中的服務邏輯執行環境(SLEE),所述SLEE包括類裝載器,用于在SLEE中裝載服務組件,該SLEE登記每裝載的服務組件,以接收發送到特定的所登記服務組件的事件;以及一個事件路由總線,用于從一個協議層和其他服務組件接收事件,所述事件路由總線把所述接收的事件路由到在該SLEE中執行的所述特定的所登記服務組件。
根據第六方面,本發明提供一種用于智能網絡的應用程序執行環境,其中包括具有至少一個客戶機組件包裝器的服務邏輯執行環境(SLEE),所述至少一個客戶機組件包裝器提供到一個指定客戶機組件的抽象接口;以及與所述SLEE相關的至少一個連接器,所述至少一個連接器對應于至少一個客戶機組件包裝器,其中所述連接器被配置為通過由所述對應的至少一個客戶機組件包裝器所提供的抽象接口與該客戶機組件進行通信。
根據第七方面,本發明提供一種先進的用于無線服務的智能網絡,其中包括一個服務邏輯執行環境(SLEE);至少一個在所述SLEE中執行的服務應用程序;以及至少一個用于通信鏈接到所述服務應用程序的無線服務應用程序的普通服務組件,所述普通服務組件包括一個到所述SLEE外部的所述無線服務應用程序的接口。
根據第八方面,本發明提供一種用于呼叫模型的先進智能網絡,其中包括一個服務邏輯執行環境(SLEE);在所述SLEE中執行的至少一個服務應用程序;以及至少一個鏈接到所述服務應用程序的普通服務組件,所述普通服務組件包括到所述SLEE外部的第二服務應用程序的接口。
根據第九方面,本發明提供一種用于智能網絡的數據處理系統,其中包括包括一個服務邏輯執行環境(SLEE)的服務邏輯層;包括至少一個客戶機組件的協議層,其中所述至少一個客戶機組件通過一個連接器/包裝器接口通信鏈接到所述SLEE,以及其中所述SLEE包括一個事件路由總線,用于在該服務邏輯層中的服務組件和在協議層和應用程序層中的客戶機組件之間路由事件;以及至少一個在所述SLEE中執行的電話服務組件,所述電話組件配置為通過所述SLEE中的所述事件路由總線與該協議層中的客戶機組件和在該服務邏輯層中的其他服務組件進行通信。
因此,本發明提供一種靈活的用于集成網絡服務提供者的服務應用程序構架。本發明通過該服務組件提供更加直接的事件處理以及通過減小在該服務邏輯執行環境(SLEE)中包含的協議棧特定代碼而解決現有技術中的缺陷。另外,本發明通過從SLEE中除去指定客戶機組件信息并且把其替換為一個連接器/包裝器通信接口而克服現有技術的缺陷。結果,該SLEE可以一般地通過該連接器/包裝器接口發送和接收通信,而不管在下層客戶機組件的具體實現方式。因此,根據本發明,可以減小SLEE的復雜度。另外,根據本發明配置的SLEE不需要直接附著到特定的客戶機組件。
最好,本發明的構架包括普通服務組件,其可以被配置為與特定的外部服務進行通信,并且把一個普通接口提供到在SLEE中執行的其他服務組件。按照這種方式,例如電話服務組件這樣的在SLEE中執行的服務組件一般可以請求例如來自該普通服務組件的數據庫操作這樣的外部服務。響應接收對于一個外部服務的一般請求,該普通服務組件可以調用對于一個相應指定外部服務特定的一個或多個功能,以把所請求的外部服務提供到該請求電話服務組件。從而,電話服務組件不需要包含發送到一個指定外部服務的特定代碼。而是。僅僅該普通服務組件需要包含發送到該指定外部服務的特定代碼。因此,可以減小該電話服務組件的復雜度。
下面將參照如附圖中所示的優選實施例僅僅通過例子描述本發明,其中圖1為根據現有技術中公知的常規JAIN實現方式而配置一個智能網絡構架的示意圖;圖2為包含一個服務邏輯執行環境(SLEE)的智能網絡構架的示意圖;圖3為用于在圖2的SLEE中執行而配置的電話服務組件的詳細示圖;圖4為用于在圖2的SLEE中執行而配置的普通服務組件的詳細示圖;圖5是配置為訪問在圖2的智能網絡構架的應用層中的服務應用程序的普通服務組件的集合的方框圖;以及圖6為示出用于通過連接器/包裝器接口建立一個客戶機組件和圖2的SLEE之間的通信鏈路的方法的流程圖。
具體實施例方式
本發明是一種用于集成網絡服務提供者的靈活服務應用程序構架。該構架可以類似于一種先進的智能網絡構架(AIN),因為該構架可以具有一個協議層、服務邏輯層和應用層。根據本發明的結構,本發明的構架可以包括在該服務邏輯層中的一個服務邏輯執行環境(SLEE)。顯著地,該SLEE可以是一個JAIN兼容的SLEE。該SLEE可以包括用于在該服務邏輯層中的服務組件和在該協議層和應用層中的客戶機組件之間路由事件的事件路由總線。特別地,在該SLEE中執行的電話服務組件可以被配置為通過在SLEE中的事件路由總線與在該協議層中的客戶機組件和在服務邏輯層中的其他服務組件進行通信。最后,客戶機組件可以通過一個連接器/包裝器接口通信連接到SLEE。
包含根據本發明的優選實施例而配置的SLEE通過提供可以促進服務組件之間的數據通信的一個事件路由總線,有助于解決該現有技術的缺陷。通過提供更多的直接事件通信,可以減少與JAIN規范的EJB方法相關的內在潛力。并且,與服務組件僅僅可以接收和處理通過SLEE從例如一個協議棧這樣的客戶機組件接收的事件的SLEE的常規實現方式不同,在本發明的一個優選實施例中,服務組件還接收和處理來自其他服務組件的事件。因此,可以創建服務組件的先進組合,以形成宏服務組件。
并且,服務組件可以被構造為包括一個特定協議層的指定知識。從而該特定協議層的指定知識可以被從該SLEE中除去,從而減小該SLEE的復雜度。結果,在本發明的一個優選實施例的SLEE中,新的協議層可以被添加到該智能網絡,而不需要該SLEE的重新編碼,因為服務組件可以被創建以,包括添加的協議棧的指定知識。一旦被動態地插入到該SLEE中,其他服務組件可以通過所插入的服務組件經該事件路由總線訪問新的協議棧。與不可能進行服務組件之間的通信的現有智能網絡不同,在本發明的一個優選實施例中,存在使得新協議棧的簡化添加成為可能的服務組件之間的通信。
本發明的構架還可以包括用于把SLEE通信連接到在該協議層中的客戶機組件的一個連接器/包裝器接口。SLEE和在協議層中的客戶機組件之間的連接器/包裝器接口還可以通過到達一個指定客戶機組件的普通接口提供一個可配置的連接,而不把該客戶機組件附著到該SLEE,從而有助于解決現有技術的缺陷。
與SLEE被直接附著到與該SLEE通信的客戶機組件的SLEE的常規實現方式不同,在本發明的一個優選實施例中,該SLEE和客戶機組件不需要相互接近。而是,該SLEE和客戶機組件可以在需要時通過一個網絡而定位。通過這種方式,可以實現一個更加靈活的客戶機組件和SLEE之間的連接,其可以在使用壽命維護過程中促進SLEE的維護和增強。另外,特定客戶機組件的指定知識可以被從SLEE中除去,并且包含在到該客戶機組件的接口中。結果,可以減小SLEE的復雜度。
最后,本發明的一個優選實施例包括用于向一個指定外部服務提供一個抽象接口的普通服務組件。更加具體來說,當每個普通服務組件可以保持得知指定外部服務的特定實現方式時,其他服務組件,特別是在該SLEE中執行的電話服務組件通常可以請求該普通服務組件的外部服務,而不知道一個相應指定外部服務的特定實現方式。按照這種方式,服務組件的復雜度可以被減小,并且該服務組件可以與外部服務的指定實現方式相脫離。
圖2為根據本發明一個優選實施例配置的JAIN兼容智能網絡的示意圖。一個JAIN兼容網絡被配置為包括一個協議層202、應用層205和服務邏輯層207。該應用層205可以容納外部的第三方應用程序208一般的第三方應用程序208可以適合對例如虛擬專用網絡(VPN)、內地服務和統一消息接發這樣的服務的大眾市場需求。外部的第三方應用程序208還可以包括短壽和適應性的應用程序,其可以使用例如數據庫查找接口、可下載機制和Parlay API這樣的本領域所公知的不信任應用程序空間部署技術(un-trusted application space deploymenttechnologies)而部署。最后,例如數據庫服務、目錄服務和無線服務這樣的指定外部服務220可以被包含在該應用層205中。
該服務邏輯層207可以包括例如可以被配置為與JAIN規范相兼容的JSLEE服務器200的一個SLEE服務器。重要的是,該JSLEE服務器200可以包括一個事件路由總線218。該事件路由總線218可以在服務組件203、204、205之間發送和接收消息。具體來說,服務組件203、204、205可以被配置為把消息傳送到該事件路由總線218,并且向JSLEE服務器200登記服務組件203、204、205可以,以從其他服務組件203、204、205接收如此發送的事件。按照這種方式,服務組件之間的通信成為可能。另外,服務組件203、204、205可以被配置為通過事件路由總線218從外部應用程序208接收事件。并且,從外部應用程序208接收并且發送到該事件路由總線218的這些事件可以路由到已經登記接收這種事件的其他服務組件203、204、205。
該服務組件203、204、205可以包括電話服務組件204、普通服務組件203和互聯網服務組件205。圖3為被配置用于圖2的JSLEE服務器200中的一個電話服務組件204的示意圖。如圖3中所示,該電話服務組件204可以包括一個或多個服務實例302。服務實例302可以分別以具體例子說明可以在該JSLEE 200中執行的服務。更加重要的是,可以向該事件路由總線218登記每個服務實例302,以接收和發送事件到該協議層202,以及其他電話和普通服務組件203、204、205。
每個服務實例302可以通過隔離該服務實例實現方式的具體細節的服務包裝器306而被訪問。更加具體來說,該服務類的數據和方法部件可以被通過包含在該服務包裝器306中的一個普通接口而被訪問。還可以提供一個部署描述符310。該部署描述符310可以是一個文檔,例如一個XML文檔,其可以描述用于在該JSLEE服務器200中初始裝載該服務組件302的實例的適當參數。特別地,到該服務包裝器306的接口可以被通過例如作為一個XML文檔的一部分而包含的服務接口308發布到外部對象。類似地,到達每個服務實例302的接口可以被包含作為一個前后關系接口304的一部分,例如其還可以被作為XML文檔的一部分而發布。一旦被裝載,服務實例302可以通過在JSLEE服務器200中的事件路由總線218進行通信。
為了避免在用于訪問例如所有權和關系數據庫服務以及目錄服務這樣的指定外部服務220的電話服務組件204中包含代碼,普通服務組件203可以被包含在本發明的構架中。普通服務組件203可以對指定外部服務220提供一個抽象接口,并且可以特別響應來自其他服務組件203、204、205的普通請求,以與該指定外部服務220交互作用。特別地,普通服務組件203可以提供一個普通API,用于訪問例如無線服務、目錄服務、數據庫服務或消息接發服務這樣的服務應用程序。
實際上,一個普通服務組件203可以每個不同服務應用程序而構建。另外,一個普通服務組件203可以對由一個服務應用程序所使用的每個不同協議而構建。因此,如圖2中所示,多個普通服務組件203可以被包含,每個服務組件對應于一個服務應用程序或協議。例如,一個不同的普通服務組件203可以對基于LDAP、DB2和MQ系列(MQSeries)的服務或功能而構建。類似地,一個不同的普通服務組件203可以被構建,用于訪問例如利用用于全球數字移動電話系統(GSM)、通用分組無線業務(GPRS)、增強的數據GSM環境(EDGE)、通用移動通信系統(UTMS)、無線應用協議(WAP)、移動接入協議(MAP)和i模式的無線服務應用程序。因此,包含普通服務組件203可以免除其他服務組件,特別是電話服務組件204,包含一個用于與指定外部服務220進行通信的指定配置。
圖4為被配置用于圖2的JSLEE服務器200的普通服務組件203的示意圖。如圖4中所示,該普通服務組件203可以包括一個或多個普通服務實例402。類似于圖3的電話服務實例302,圖4的普通服務實例402分別舉例說明可以在該JSLEE服務器200中執行的普通服務。更加重要的是,可以向該事件路由總線218登記每個普通服務實例402,以與該服務邏輯層207中的其他MQSeries之間接收和發送事件。與該電話服務組件204的情況相同,每個普通服務實例402可以通過隔離該服務實例實現方式的具體細節的普通服務包裝器406而被訪問。更加具體來說,該服務類的數據和方法部件可以通過包含在該普通服務包裝器406中的一個普通接口而被訪問。
還可以提供一個部署描述符410。該部署描述符410可以是一個文檔,例如一個XML文檔,其可以描述用于在該JSLEE服務器200中初始裝載普通服務組件402的一個實例的適當參數。特別地,一個到該普通服務包裝器406的接口可以被通過例如作為一個XML文檔的一部分而包含的普通服務接口408發布到外部對象。類似地,到每個服務實例402的接口可以被包含作為一個前后關系接口404,其還可以被作為例如一個XML文檔的一部分而被發布。一旦被裝載,普通服務實例402可以通過在該JSLEE服務器200中的事件路由總線218進行通信。
圖5為在本發明一個優選實施例的JAIN兼容智能網絡中的普通服務組件502A、502B、502C、502D、502E和502F的示意排列的簡化示意圖。如圖5中所示,每個普通服務組件502A、502B、502C、502D、502E和502F可以包括一個服務包裝器506和一個或多個客戶機服務實例502。可以向JSLEE服務器200登記該服務包裝器506,以接收對應于一個服務應用程序530的一個特定種類的事件。相應地,該服務包裝器506可以包括轉換所接收的事件并且根據一個特定協議對該事件重新格式化所需的功能。重新格式化的事件可以被路由到一個特定無線服務應用程序。該服務包裝器506可以舉例說明用于處理一個特定事務或一個或多個事件的客戶機服務實例502。該客戶機服務實例502還可以舉例說明與普通服務組件502A、502B、502C、502D、502E和502F之一的通信。
如圖5中所示,示例的普通服務組件502A、502B、502C、502D、502E和502F可以包括但不限于WAP普通服務組件502A、EDGE普通服務組件502B、GPRS普通服務組件502C、LDAP普通服務組件502D、DB2普通服務組件502E以及MQ系列普通服務組件502F。可以向JSLEE服務器200登記例如作為WAP普通服務組件502A的一部分的服務包裝器506,以接收與例如無線手持設備這樣的無線設備相關的無線事件。如圖5中所示,該服務包裝器506已經舉例說明三個客戶機服務實例502,每個實例用于每個所接收的事件,或者包括與基于WAP的無線服務應用程序相關的事務的事件系列。另外,單個客戶機服務實例502可以處理多個事務。因此,每個客戶機服務實例502可以與基于WAP的服務應用程序530A交互作用。
類似地,該EDGE普通服務組件502B和MQ系列普通服務組件502F分別可以包括一個服務包裝器以及分別用于與基于EDGE無線服務應用程序530B和MQ系列消息隊列服務應用程序530F交互作用的一個或多個客戶機服務實例。應當知道,一個普通服務組件可以根據需要對任何服務應用程序而構建,包括使用所有權接口和協議的所有權數據庫和無線服務。
現在轉到圖2,與電話和普通服務組件203、204不同,該互聯網使能服務組件205可以被預先配置為與例如服務小程序(servlet)或腳本這樣的外部服務器側的程序進行通信。服務器側程序的例子包括但不限于普通網關接口(CGI)、Perl腳本、JavaTM服務器頁面、VB腳本、有效服務器頁面TM或者其他腳本技術。一旦一個外部應用程序232已經獲得對互聯網使能服務組件205的訪問,則該互聯網使能服務組件205可以被提供到接入在JSLEE服務器200中的事件路由總線218的外部應用程序232,服務組件203、204、205可以通過該JSLEE服務器200相互通信。
通過這種機制,在JSLEE服務器200中執行的服務組件203、204、205可以與互聯網使能服務組件205進行通信。因此,由于該互聯網使能服務組件205可以通信連接到與在例如互聯網這樣的一個計算機通信網絡中的網絡服務器230相關而執行的服務器方程序232,在該JSLEE服務器200內的其他服務組件203、204可以利用該互聯網使能服務組件205來通過互聯網發送和接收信息。另外,在JSLEE服務器200中的其他服務組件203、204可以由用戶和管理員從互聯網訪問。
該互聯網使能服務組件205可以被配置為通過根據超文本傳輸協議(HTTP)發送和接收請求和響應而與網絡服務器230直接通信。類似地,該網絡服務器230可以包括被配置為也根據HTTP與互聯網使能服務組件205進行通信的服務器側程序232。不必說,本發明該互聯網使能服務組件205和相應服務器方程序通信的方式。而是,任何現有的通信技術可以包括例如明確的TCP/IP通信這樣的普通面向連接的技術。
服務器方程序232和互聯網使能服務組件205的組合使得服務和服務組件的各個方面要被通過互聯網經過由互聯網使能服務組件205所提供的普通應用程序編程接口(API)而訪問。例如,用戶可以訪問和修改服務屬性。服務屬性可以包括任何用戶可訪問的一個訪問的各個方面。類似地,服務管理員或上層用戶可以訪問、監視和在互聯網上執行管理函數。管理函數可以包括但不限于為一個系統管理員或超級用戶所保留并且不提供到一個用戶的任何功能。特別地,該互聯網使能服務組件205可以提供通過互聯網而不需要外部服務或系統對用戶和管理員的訪問。
類似于在JSLEE服務器200中的其他服務組件203、204,每個互聯網使能服務組件205還可以被配置為具有接收事件并且把事件傳送到JSLEE服務器200的能力。按照這種方式,可以向該JSLEE服務器200登記其他服務組件203、204,以接收這種事件。這些服務組件203、204可以相應地把事件傳送到該JSLEE服務器,該互聯網使能服務組件205可以為該JSLEE服務器而被登記以進行接收。應當知道,該互聯網使能服務組件205可以處理從JSLEE服務器200接收的事件,以及從網絡服務器230接收通信。按照這種方式,該互聯網使能服務組件205可以作為在該互聯網和JSLEE服務器200之間的一個接口。
特別地,該JSLEE服務器200還可以包括幾個壽命管理組件,其中包括一個線程池222、類裝載器224、定時器226和使用計數器228。但是,該壽命管理組件不限于圖2中所示的部件。而是,該壽命管理組件可以包括能夠執行其他壽命管理保證責任例如負載平衡。在任何情況中,根據本發明的方案,各個服務組件沒有執行壽命管理的開銷,并且可以更加適合地用于電話應用中。
特別地,如圖2中所示,該線程池222可以包括多個預先配置和裝載的執行線程,其可以由一個線程池管理組件根據需要而分配,以請求在JSLEE服務器200中執行的服務組件203、204、205,該線程池管理組件可以解除分配該所分配的線程,并且可以該解除分配的線程返回到該線程池222,用于由其他組件所使用,請求在該JSLEE服務器中執行的服務組件203、204、205。
該類裝載器224可以由JSLEE服務器200所使用,以適當地裝載用于在該JSLEE服務器200中執行的服務組件203、204、205。特別地,該類裝載器224可以識別與要被裝載的每個服務組件203、204、205相關的配置和裝載參數。從而,該類裝載器224可以使用所識別配置和裝載參數執行該服務組件203、204、205。最后,該類裝載器224可以用向該事件路由總線218登記該服務組件203、204、205,使得事件可以被在該JSLEE服務器200中執行的服務組件203、204、205之間發送。
最后,該協議層202可以包括一個或多個協議層206,其可以被配置為與在該JSLEE服務器200中執行的服務組件204交互作用。特別地,盡管圖2僅僅示出三個協議棧206,但是本發明不限于協議棧206的數目或類型。而是,JSLEE服務器200可以與任何協議棧交互作用,例如根據JAIN規范配置的那些協議棧。
在操作中,該JSLEE服務器200可以與協議層202中的協議棧206之間發送和接收事件。更加具體來說,該事件可以在包含于JSLEE服務器200中的事件路由總線218中發送和接收。電話服務組件204和普通服務組件204可以登記為用于在該事件路由總線218中接收的特定事件的接聽者。向JSLEE服務器200登記的服務組件203、204、205可以接收傳送到該服務組件203、204、205中的特定一個的服務組件事件。更加具體來說,該JSLEE服務器200的事件路由總線218可以把所接收的事件路由到已經向JSLEE服務器200登記的服務組件203、204、205,以接收這種事件。
根據本發明的一個優選實施例,該JSLEE服務器200可以被配置為與在該JAIN兼容智能網絡中的客戶機組件進行通信。客戶機組件可以不但包括協議棧206,而且還包括其他服務組件203、204、205、指定外部服務220以及外部應用程序208。重要地,該JSLEE服務器200還可以被配置,而沒有每個客戶機組件的實現方式的特定知識。為了實現該功能,該JSLEE服務器200可以包括能夠與包裝器216進行通信的連接器210,從而形成一個連接器/包裝器接口。該包裝器216可以向該連接器210提供一個用于例如協議棧206這樣的指定客戶機組件的抽象接口。每個連接器210反過來可以被配置為通過與由相應包裝器216所提供的抽象接口與例如協議棧206這樣的相應客戶機組件進行通信。
因此,通常,該JSLEE服務器200可以一般地通過連接器/包裝器接口發送和接收事件,而與在例如協議棧206這樣的下層客戶機組件的實現方式的具體細節無關。相反地,僅僅該包裝器216需要下層協議棧206的實現方式的具體細節的特定知識。在本發明的一個方面中,一個JSLEE描述符214可以被包括,其能夠指定各個包裝器216,相應的連接器210可以被配置為與該包裝器進行通信。
特別地,該JSLEE服務器200在開始時可以讀取該JSLEE描述符216,以得知每個指定的包裝器216的標識。從而,該JSLEE服務器200可以配置與指定的包裝器216進行通信的連接器210。類似地,客戶機組件描述符212可以被提供給每個連接器210。該客戶機組件描述符212可以指定特定事件,可以由JSLEE服務器200的事件路由總線218通知該事件給例如協議棧206這樣的相關客戶機組件。
圖6為示出把一個SLEE通信連接到在集成網絡的應用程序執行環境中的客戶機組件的方法的流程圖。該方法可以在裝載SLEE的方框602開始。在方框604中,一個SLEE描述符可以被裝載。如果在判斷方框606中,指定一個客戶機組件,在方框608中,一個連接器實例可以被創建和配置為與相關于該指定客戶機組件的包裝器進行通信。在方框610中,與配置的連接器相關的預定描述符可以被裝載,并且在方框612中,可以向該SLEE中的一個事件處理程序登記該指定客戶機組件,以接收在該預定描述符中列出的那些事件。
從而,在判斷方框614中,如果附加客戶機組件被在SLEE描述符中列出,則附加連接器實例可以被根據方框608至612而創建和配置。最后,一旦所有連接器實例已經被創建和配置,則該SLEE可以在步驟616開始,并且事件可以被通過連接器/包裝器接口路由到登記的客戶機組件,而與每個客戶機組件的下層實現方式無關。從而,該SLEE可以通過客戶機組件包裝器通信連接到客戶機組件,而不要求該SLEE具有每個客戶機組件的特定知識。
本發明可以用硬件、軟件、或者硬件和軟件的組合來實現。根據本發明的電話服務提供方法可以在一個計算機系統中以集中的方式來實現,或者以分布的方式來實現,其中不同部件被在幾個互連的計算機系統上展開。任何計算機系統或適用于執行在此描述的方法的其他裝置是適用的。硬件和軟件的典型組合可以是一個具有計算機程序的通用計算機系統,其中當該程序被裝載和執行時,控制該計算機系統執行在此所述的方法。
本發明還可以體現在一個計算機程序產品,其包括能夠實現在此所述的方法的所有特征,并且當裝載在一個計算機系統中時,能夠執行這些方法。在本文中計算機程序裝置或計算機程序意味著用任何語言、代碼或標記表達的一組指令,使得具有信息處理能力的一個系統直接執行特定功能,或者在如下兩種情況之后執行該特定功能a)轉換為另一種語言、代碼或標識;b)以不同材料形式再現。
權利要求
1.一種用于智能網絡的應用程序執行環境,其中包括在服務邏輯層中的服務邏輯執行環境(SLEE),所述SLEE包括一個事件路由總線,用于在服務邏輯層中的服務組件以及協議層和應用層中的客戶機組件之間路由事件;在協議層中的至少一個客戶機組件,其中所述至少一個客戶機組件通過一個連接器/包裝器接口與所述SLEE通信連接;以及在所述SLEE中執行的至少一個電話服務組件,其中所述電話組件被配置為通過在所述SLEE中的所述事件路由總線與在所述協議層中的客戶機組件和在該服務邏輯層中的其他服務組件進行通信。
2.根據權利要求1所述的應用程序執行環境,其中進一步包括至少一個在所述SLEE中執行的普通服務組件,其中所述普通服務組件被配置為與在所述SLEE中的其他服務組件和在該應用層中的特定外部服務進行通信。
3.根據權利要求1或2所述的應用程序執行環境,其中進一步包括在所述SLEE中執行的至少一個互聯網使能服務組件(IESC),所述IESC具有用于通過所述事件處理程序與在所述SLEE中的其他服務組件之間發送和接收消息的配置,所述IESC具有到達所述SLEE之外的一個服務器方程序的通信鏈路。
4.根據上述任何一項權利要求所述的應用程序執行環境,其中所述連接器/包裝器接口包括一個客戶機組件包裝器,所述客戶機組件包裝器提供到該協議層中的一個客戶機組件的抽象接口;以及與所述SLEE相關的連接器,所述連接器對應于所述客戶機組件包裝器,其中所述連接器被配置為通過由所述客戶機組件包裝器所提供的所述抽象接口與所述客戶機組件進行通信。
5.根據上述任何一項權利要求所述的應用程序執行環境,其中進一步包括一個SLEE描述符,所述SLEE描述符指定至少一個客戶機組件,該SLEE可以被配置為通過一個連接器/包裝器接口與該客戶機組件進行通信。
6.根據上述任何一項權利要求所述的應用程序執行環境,其中進一步包括至少一個客戶機組件描述符,每個客戶機組件描述符對應于在該協議層中的一個特定客戶機組件,所述至少一個客戶機組件描述符指定特定的事件,該事件被通過在所述SLEE中的所述事件路由總線通知該指定客戶機組件。
7.根據上述任何一項權利要求所述的應用程序執行環境,其中所述客戶機組件是一個協議棧。
8.根據權利要求1至6中的任何一項所述的應用程序執行環境,其中所述客戶機組件是選自呼叫控制組件、信令協議組件、連通性管理協議組件或者安全網絡接入協議組件之一。
9.根據上述任何一項權利要求所述的應用程序執行環境,其中所述SLEE是一個JAIN兼容的SLEE。
10.根據上述任何一項權利要求所述的應用程序執行環境,其中所述SLEE進一步包括用于在SLEE中裝載服務組件的類裝載器,該SLEE登記每個裝載的服務組件,以接收發送到特定的所登記服務組件的事件;所述路由總線把所述所接收的事件路由到在該SLEE中執行的所述特定的所登記服務組件。
11.根據上述任何一項權利要求所述的應用程序執行環境,其中所述SLEE進一步包括一個線程池;以及用于分配由所述裝載的服務組件所使用的線程的線程池管理器。
12.一種電話服務提供方法,其中包括如下步驟在一個服務邏輯執行環境(SLEE)中的一個事件路由總線中,通過一個連接器/包裝器接口從客戶機組件接收協議層事件,從在所述SLEE中執行的服務組件接收服務邏輯層事件,以及把所述特定協議層事件和所述服務邏輯層事件轉發到被登記接收所述特定協議層和服務邏輯層事件的服務組件和客戶機組件;以及在所述SLEE中執行的至少一個服務組件中,把至少一個服務邏輯層事件發送到事件路由總線,其中所述事件路由總線可以把所述被發送的服務邏輯層事件轉發到另一個被登記接收所述被發送的服務邏輯層事件的另一個服務組件。
13.根據權利要求12的電話服務提供方法,其中進一步包括如下步驟在至少一個所述服務組件中,建立與一個指定外部服務的通信鏈路;以及從另一個服務組件接收一個服務邏輯層事件,所述被接收的事件請求外部服務;以及響應從所述另一個服務組件接收所述服務邏輯層事件,把所請求的外部服務通過對由鏈接的指定外部服務所提供的一個功能的至少一個指定調用而提供。
14.一種機器可讀存儲器,其具有存儲于其上的一個用于提供電話服務的計算機程序,所述計算機程序具有可由一個機器所執行的程序代碼,用于使得該機器執行權利要求12或13所述的步驟。
全文摘要
一種用于智能網絡的應用程序執行環境。該應用程序執行環境包括在服務邏輯層中的服務邏輯執行環境(SLEE)。特別地,該SLEE可以是一個JAIN兼容的SLEE。該SLEE可以包括一個事件路由總線,用于在服務邏輯層中的服務組件以及協議層和應用層中的客戶機組件之間路由事件。該應用程序執行環境還可以包括在協議層中的至少一個客戶機組件,其中所述至少一個客戶機組件通過一個連接器/包裝器接口與所述SLEE通信連接。最后,該應用程序執行環境可以包括在所述SLEE中執行的至少一個電話服務組件,其中所述電話組件可以被配置為通過在所述SLEE中的所述事件路由總線與在所述協議層中的客戶機組件和在該服務邏輯層中的其他服務組件進行通信。
文檔編號H04Q7/38GK1537392SQ02810557
公開日2004年10月13日 申請日期2002年5月14日 優先權日2001年5月24日
發明者托馬斯·克萊米爾, 托馬斯 克萊米爾, 凱爾納, 塞繆爾·凱爾納, 特 安東尼 洛澤斯基, 齊格蒙特·安東尼·洛澤斯基, 穆爾, 維克托·穆爾, 沙喬, 高爾·沙喬, 沃特曼, 皮尼納·沃特曼, 格倫·沃爾特斯, 沃爾特斯 申請人:國際商業機器公司