詞語解釋
“SBB”在通信中是“Swiss Broadcasting Corporation”的縮寫,它是瑞士的一家公共廣播機(jī)構(gòu),也是瑞士最大的廣播機(jī)構(gòu)之一。 SBB的主要任務(wù)是提供全面的、客觀的、公正的、可靠的和有價(jià)值的信息服務(wù)。它的主要業(yè)務(wù)包括電視、廣播、網(wǎng)絡(luò)和移動(dòng)電臺(tái),以及各種新媒體服務(wù)。它的電視和廣播頻道涵蓋了瑞士的所有語言,包括德語、法語、意大利語和拉丁語。 SBB的電視和廣播服務(wù)涵蓋了瑞士各地的新聞、社會(huì)、政治、經(jīng)濟(jì)、文化、體育和其他節(jié)目,以及國際新聞。它還提供其他服務(wù),包括網(wǎng)絡(luò)和移動(dòng)電臺(tái),以及許多網(wǎng)絡(luò)和移動(dòng)應(yīng)用程序,例如電視節(jié)目表、節(jié)目提醒、節(jié)目錄制和節(jié)目回放等。 此外,SBB還負(fù)責(zé)瑞士的國家廣播服務(wù),其中包括國際新聞、國際電臺(tái)、國際電視和國際網(wǎng)絡(luò)服務(wù)。它還負(fù)責(zé)瑞士的數(shù)字電視服務(wù),包括數(shù)字電視、數(shù)字電臺(tái)和數(shù)字網(wǎng)絡(luò)服務(wù)。 SBB的服務(wù)涵蓋了瑞士的所有語言,為瑞士的電視觀眾提供了全面的、客觀的、公正的、可靠的和有價(jià)值的信息服務(wù)。它的服務(wù)也受到國際社會(huì)的認(rèn)可,為全球的電視觀眾提供了有價(jià)值的信息服務(wù)。 SBB中的幾個(gè)概念: SBB Compents :他們組成了Application .他們以何種方式組合是由SLEE來確定的。 SBB Compents的七大部分: 1. SBB組件發(fā)出和接收的事件。 2. 單個(gè)實(shí)例化的狀態(tài):每個(gè)實(shí)例化域的狀態(tài)都被收錄到SLEE集中管理的CMP容器。 3. 事件處理方法: Sbb組件中包含每個(gè)它所接收到的事件類型的一個(gè)事件處理方法。 4. 本地接口:SBB中定義一個(gè)SBB本地接口,它定義有可能同步被調(diào)用的SBB組件(是在同一個(gè)SBB Tree上生成的SBB才可調(diào)用的接口,下面也將詳細(xì)介紹)的操作。 5. Child Relation:SBB成分可能包括零個(gè)或者多個(gè)子SBB組件,SBB組件規(guī)定他的自子組件的關(guān)系。 6 可共享性:SBB組件通過Activity Context的方式與其他SBB組件共享狀態(tài),SBB組件定義。 7. 一個(gè)JAVA接口(Activity Context Interface),這個(gè)接口定義為了得到和設(shè)置這些特性所進(jìn)行的安全訪問操作。 SBB實(shí)體:是SBB組件的一個(gè)實(shí)例,他是一個(gè)邏輯實(shí)體,是一個(gè)代表著實(shí)例持久性狀態(tài)的實(shí)體。 SBB對(duì)象:是一個(gè)實(shí)現(xiàn)javax.slee.sbb接口的java對(duì)象,和SBB實(shí)體所不同的是SBB的實(shí)體是邏輯的實(shí)體,而SBB對(duì)象則是一個(gè)JAVA的對(duì)象,在運(yùn)行的時(shí)候,SLEE分配0個(gè)或者多個(gè)SBB對(duì)象去表現(xiàn)一個(gè)SBB實(shí)體。 他們?nèi)叩年P(guān)系描述: SBB Compents 的一個(gè)實(shí)例就是一個(gè)SBB實(shí)體,SBB實(shí)體具有以上的七大功能,他就具備了處理一些事件的能力,當(dāng)SLEE把這些實(shí)體分配給SBB對(duì)象以后,SBB對(duì)象就具有以上的七大功能,且能夠來處理事件了。當(dāng)事件處理完,SLEE把SBB實(shí)體從SBB對(duì)象移除以后,SBB實(shí)體仍然存在,他還具有以上七大功能(等待SLEE再次把它分配給其他的SBB對(duì)象),而SBB對(duì)象則沒有了,如果再調(diào)用SBB對(duì)象的unSetSbbContext()方法,SBB對(duì)象將成為垃圾。由此可見:SBB對(duì)象和SBB實(shí)體是個(gè)多對(duì)一的關(guān)系,可以將一個(gè)SBB實(shí)體分配給多個(gè)SBB對(duì)象。 注意:如果在沒有給SBB對(duì)象分配SBB實(shí)體的就來使用這個(gè)SBB對(duì)象,就會(huì)拋出異常。 在SBB的生命 SBB的生命周期(見圖5): SBB的生命周期有三個(gè)狀態(tài):不存在,pooled 狀態(tài),Ready狀態(tài) 【 整個(gè)生命周期的過程 】SBB對(duì)象的生命周期開始于SLEE用newInstance()方法創(chuàng)建一個(gè)SBB對(duì)象,然后SLEE調(diào)用setSbbContext()方法給SBB對(duì)象設(shè)置一個(gè)sbbContext對(duì)象,這是該SBB對(duì)象就能調(diào)用SLEE提供的方法了,并進(jìn)入到了pooled 狀態(tài)。進(jìn)入pooled狀態(tài)的SBB對(duì)象都一個(gè)自己的pool 空間,但他們沒有和任何的SBB實(shí)體相關(guān)聯(lián),這時(shí)pool池中的所有SBB對(duì)象都一樣,SBB實(shí)體要想進(jìn)入Ready狀態(tài),需要給SBB對(duì)象分配一個(gè)SBB實(shí)體。 從pooled狀態(tài)到ready狀態(tài)有兩種實(shí)現(xiàn)方式: 第一種: 調(diào)用SbbCreate()方法或者SbbPostCreat()方法。(SLEE需要?jiǎng)?chuàng)建一個(gè)新的SBB Entity時(shí)調(diào)用SbbPostCreat()方法,當(dāng)SLEE需要為已經(jīng)存在的SbbEntity分配一個(gè)SBB 對(duì)象時(shí)調(diào)用SbbCreate()方法)。 第二種: 調(diào)用SbbActivity()方法。SLEE需要為已經(jīng)存在的SbbEntity分配一個(gè)SBB 對(duì)象 在Ready狀態(tài)下:SBB對(duì)象已經(jīng)和SBB實(shí)體建立了關(guān)聯(lián)關(guān)系,SBB通過調(diào)用sbbLoad()方法和sbbStore()方法若干次,實(shí)現(xiàn)SBB對(duì)象的瞬時(shí)狀態(tài)與SBB實(shí)體的持久狀態(tài)的同步。這時(shí)SBB對(duì)象就能夠進(jìn)行接收事件和進(jìn)行事件的處理。當(dāng)SBB對(duì)象處理完事件后還要回到pooled狀態(tài),這一過程有三種可能的途徑來實(shí)現(xiàn): 第一種:調(diào)用sbbPassivate()方法;厥辗峙浣oSBB Entity的Sbb對(duì)象。 第二種:調(diào)用sbbRemove()方法。移除SBB實(shí)體。 第三種:調(diào)用sbbCreate()方法或sbbPostCreate()方法成功,且沒有拋出異常,但是最終食物回滾了。 當(dāng)SBB返回到pooled狀態(tài)后,SLEE可以通過調(diào)用unSetSbbContext()方法,使SBB對(duì)象成為垃圾而被回收。 SBB實(shí)體樹和SBB圖: SBB圖和SBB樹都是用來表現(xiàn)SBB間的關(guān)系圖,區(qū)別在于SBB圖用來表示SBB對(duì)象間的關(guān)系圖,在圖1中,節(jié)點(diǎn)表示SBB對(duì)象,邊表示SBB對(duì)象間的關(guān)系,邊上的數(shù)表示事件傳遞優(yōu)先級(jí)。SBB樹是一個(gè)定向不循環(huán)圖,用來表示SBB實(shí)體間的關(guān)系圖,在圖2中,節(jié)點(diǎn)表示SBB實(shí)體,邊表示SBB實(shí)體間的關(guān)系,邊上的數(shù)表示事件傳遞優(yōu)先級(jí)。一般來說事件傳遞的優(yōu)先級(jí)是由父級(jí)SBB來指定,在運(yùn)行中,這種優(yōu)先級(jí)別可以改變。每個(gè)父SBB可以有多個(gè)子SBB,但一個(gè)子SBB只能有一個(gè)父SBB 下圖為一個(gè)SBB實(shí)體樹的實(shí)例圖: 。樱拢碌膬(yōu)先級(jí): SBB的優(yōu)先級(jí)決定著同根子SBB實(shí)體接收事件的順序。 。樱拢率录l(fā)送的優(yōu)先級(jí)范圍是(-128~127),最低是-128,最高是127. 指定同一個(gè)父SBB實(shí)體的子SBB實(shí)體的事件發(fā)送優(yōu)先級(jí)有兩種方法: 。. 產(chǎn)生該子SBB實(shí)體時(shí)產(chǎn)生的默認(rèn)事件優(yōu)先級(jí)。 。. 在運(yùn)行的過程中,父SBB實(shí)體可以通過調(diào)用setSbbPriority()方法給該實(shí)體的子實(shí)體修改事件發(fā)送優(yōu)先級(jí) 事件發(fā)送的優(yōu)先級(jí)可分為五個(gè)等級(jí): 第一等級(jí):最高級(jí)(100~~127) 第二等級(jí):次高級(jí)(31~~99) 第三等級(jí):標(biāo)準(zhǔn)級(jí)(-30~~30) 第四等級(jí):次低級(jí)(-99~~-31) 第五等級(jí):最低級(jí)(-128~~-100) 同一個(gè)父SBB實(shí)體的同胞SBB實(shí)體接收事件的順序按照優(yōu)先級(jí)的從高到低的順序一次排列。 移除SBB實(shí)體樹: Attachment count ----與一個(gè)SBB實(shí)體相關(guān)聯(lián)的所有Activity Context的個(gè)數(shù)(包括該SBB實(shí)體的子SBB實(shí)體相關(guān)聯(lián)的Activity Context 的個(gè)數(shù))。 Remove 一個(gè)SBB實(shí)體樹,就是通過將 Attachment count 的數(shù)量減到0 來實(shí)現(xiàn)的。 移除一個(gè)SBB實(shí)體樹,需以下三步: 第一步:結(jié)束Avtivity Object。 第二步:解除所有的SBB實(shí)體與所綁定的ActivityContext的綁定關(guān)系。解除的順序是先解除子SBB實(shí)體在解除根SBB實(shí)體。解除完全的標(biāo)志就是Attachment Count的數(shù)量減到0。 第三步:SLEE回收Activity Context ,并級(jí)聯(lián)移除各個(gè)根SBB實(shí)體。 舉例說明: 【 說明 】 以上圖中,橢圓表示實(shí)體,矩形表示Activity Context,橢圓和矩形之間的無向線段表示實(shí)體與Activity Context 之間有綁定關(guān)系,一對(duì)橢圓和矩形之間只有一條無向線段,箭頭表示的是一種Child Relation關(guān)系,箭頭所指的實(shí)體為子實(shí)體,背離箭頭的為父實(shí)體。圖中的橢圓里的數(shù)字就表示Attachments Count 【 解釋1 】Attachments Count X1的Attachment Count(6個(gè))=與x1綁定的AC:AC1和AC2(2個(gè))+與Y1綁定的AC的個(gè)數(shù)(0個(gè))+ 與Z1綁定的AC:AC2和AC3(2個(gè))+與Y2綁定的AC:AC3和AC1(2 個(gè)) Y2的Attatchment Count (2 個(gè))=與y2 綁定的AC;Ac1個(gè)AC3(2個(gè)) 【注:】Y2,沒有子SBB實(shí)體,所以他的Attchment就是它自己所綁定的Activity Context的個(gè)數(shù)。 【 解釋2 】SLEE回收SBB實(shí)體樹的過程 首先,在Activity Object已經(jīng)終止的前提下,將Y2 與AC1和AC3 斷開綁定,使y2的Attchmentcount減到0,再斷開Z1與AC2和AC3的綁定斷開,使Z1的Attchmentcount減到0,最后將X1與AC2和AC1的綁定斷開,使X1的Attchmentcount減到0, 然后,SLEE回收Activity Context,并刪除SBB實(shí)體。 SBB Local Interface 和sbb Local Object 每一個(gè)SBB都有一個(gè)SBB Local interface ,zhege SBB Local interface 有兩種可能:一種是一個(gè)特殊的interface ,這個(gè)特殊的interface 是由SBB開發(fā)商提供的,并繼承了SBBLocalObject interface。 第二種是 如果SBB開發(fā)商沒有提供特殊的Local Interface ,那么它就是SbbLocalObject interface.,一個(gè)SBB對(duì)象通過SBB Local Object同步的調(diào)用,分配有SBB實(shí)體的SBB對(duì)象,這個(gè)Sbb Local Object是有由SLEE實(shí)現(xiàn)的一個(gè)對(duì)象,SBB Local Object實(shí)現(xiàn)了sbb Local interface 并描述了目標(biāo)SBB實(shí)體,當(dāng)SBB對(duì)象調(diào)用了SBB開發(fā)商在SBB Local object 定義的方法時(shí),SBB抽象類中的相應(yīng)的法會(huì)調(diào)用,調(diào)用這個(gè)相應(yīng)方法的是描述這個(gè)SBB實(shí)體狀態(tài)的SBB對(duì)象,另一方面,sbb Local object是一個(gè)具有同步方法的客戶端對(duì)象。 理論上,一個(gè)SBB Local Object僅僅描述一個(gè)SBB實(shí)體,但是若干個(gè)SBB Local Object 也可能描述一個(gè)SBB實(shí)體。 一個(gè)SBB對(duì)象僅僅允許被一個(gè)SBB Local Object調(diào)用,這個(gè)SBB Local Object僅描述一個(gè)SBB實(shí)體樹中的實(shí)體,SBB Local Object描述不同的sbb 實(shí)體樹中的實(shí)體時(shí),sbb對(duì)象調(diào)用sbb Local Object的行為并沒有定義。 SBB Local Interface 因?yàn)楸憩F(xiàn)呼叫者的SBB對(duì)象和表現(xiàn)被呼叫者的SBB對(duì)象都必須被配置到同一個(gè)JVM中,所以這個(gè)接口被稱之為SBB Local Interface.在這個(gè)SBB Local Interface中生明了一些SBB對(duì)象的方法,這些SBB對(duì)象的方法可以被同步的調(diào)用。 獲得一個(gè)SBB Local Object 的方法: 一個(gè)SBB Local Object 是SLEE 的一個(gè)實(shí)現(xiàn)類,這個(gè)實(shí)現(xiàn)類實(shí)現(xiàn)類SBB Local Interface。一個(gè)SBB對(duì)象可以通過一下方法來獲得一個(gè)描述SBB實(shí)體的SBB Local object : 1. 調(diào)用childRelation 對(duì)象的creat()方法。 2. 調(diào)用sbbContext對(duì)象的getSbbLocalObject()方法。 。. 通過調(diào)用sbb Local Object 對(duì)象的一個(gè)方法來獲得一個(gè)Sbb Local Object ,被呼叫者可能通過它的一個(gè)輸入?yún)?shù)來獲得一個(gè)SBB Local Object ,呼叫者可能通過返回值來接收一個(gè)SBB Local object 。 。. 從 CMP field 中找回一個(gè)已存在的SBB Local object 5. 接收一個(gè)childRelation 對(duì)象,這個(gè)childRelation對(duì)象實(shí)現(xiàn)了java。Util。Collection接口,這個(gè)ChildRelation對(duì)象和它的iterator對(duì)象可以訪問sbb local object。 SBB Local object 具有一下功能: 。. 測(cè)試兩個(gè)SBB Local Object是否描述了同一個(gè)SBB實(shí)體 。. 移除SBB Local Object 描述的SBB實(shí)體及其他的SBB實(shí)體派生出來的SBB實(shí)體. 。. 設(shè)置和獲取 sbb Local Object 描述的SBB實(shí)體發(fā)出事件的優(yōu)先級(jí). 。. 調(diào)用sbb 開發(fā)商定義的sbb Local Object 的方法. 5. 將sbb Local Object 存儲(chǔ)到CMP中. SBB Local Object interface 這個(gè)接口是所有SBB Local interface的父接口,所有的SBB Local Interface 都繼承了這個(gè)sbbLocalObject接口,如果一個(gè)對(duì)象沒有定義一個(gè)特殊的sbb Local interface,那么他的local Interface 就是SBBLocalObject sbbContext object SBB上下文對(duì)象是SLEE給SBB對(duì)象的一些數(shù)據(jù),SLEE將SBB上下文對(duì)象傳遞給SBB對(duì)象后,SBB對(duì)象便由不存在狀態(tài)進(jìn)入了緩沖池狀態(tài),這樣SBB便可以訪問SLEE和SBB實(shí)體提供的一些數(shù)據(jù)信息。SBB上下文對(duì)象實(shí)現(xiàn)了SBB上下文接口,該接口里定義了一些得到業(yè)務(wù)信息,行為上下文,不可訪問事件,事務(wù)的方法。 SbbContext interface SLEE為每一個(gè)SBB對(duì)象都提供了一個(gè)SbbContext對(duì)象,SLEE也維持SbbContext提供給sbb 對(duì)象訪問sbb 對(duì)象上下文的一個(gè)通道。也允許sbb對(duì)象調(diào)用SLEE提供的方法,并獲取分配給SBB 對(duì)象的SBB實(shí)體的信息,SBBContext對(duì)象實(shí)現(xiàn)類SBBContext接口, SLEE CMP和EJB CMP: CMP(Container Managed Persistence 持久性容器管理),SLEE中的CMP是以EJB的CMP為基礎(chǔ)定義的,但有其不同之處: 1。SLEE會(huì)自動(dòng)創(chuàng)建和刪除SBB實(shí)體,而EJB則是通過程序代碼來執(zhí)行。SBB實(shí)體并沒有一個(gè)外在的主鍵。 2。EJB中的CMP被用于把數(shù)據(jù)存入數(shù)據(jù)庫或者后臺(tái)程序。SLEE的CMP用于識(shí)別哪些數(shù)據(jù)是應(yīng)該被容器管理的,可以提供多種存取數(shù)據(jù)的方式。 3。EJB中有CMR(容器管理關(guān)系),SLEE中沒有。 SBB組件環(huán)境: SBB組件環(huán)境是一種機(jī)制,他有如下特征: 1。訪問SLEE工具 2。使用SLEE的規(guī)范部署文件來部署個(gè)性化的SBB組件 SBB開發(fā)者的職責(zé): 進(jìn)入SBB組件環(huán)境,通過使用JNDI接口,創(chuàng)建一個(gè)InitialContext對(duì)象(不帶參數(shù)),然后用該對(duì)象調(diào)用lookup(java:comp/env)方法進(jìn)入SBB組件環(huán)境。 業(yè)務(wù)部署者的職責(zé): 確保SBB組件的外界入口都有效,可以對(duì)外界入口的值進(jìn)行修改
SBB中的幾個(gè)概念: SBB Compents :他們組成了Application .他們以何種方式組合是由SLEE來確定的。 SBB Compents的七大部分: 1. SBB組件發(fā)出和接收的事件。 2. 單個(gè)實(shí)例化的狀態(tài):每個(gè)實(shí)例化域的狀態(tài)都被收錄到SLEE集中管理的CMP容器。 3. 事件處理方法: Sbb組件中包含每個(gè)它所接收到的事件類型的一個(gè)事件處理方法。 4. 本地接口:SBB中定義一個(gè)SBB本地接口,它定義有可能同步被調(diào)用的SBB組件(是在同一個(gè)SBB Tree上生成的SBB才可調(diào)用的接口,下面也將詳細(xì)介紹)的操作。 5. Child Relation:SBB成分可能包括零個(gè)或者多個(gè)子SBB組件,SBB組件規(guī)定他的自子組件的關(guān)系。 6 可共享性:SBB組件通過Activity Context的方式與其他SBB組件共享狀態(tài),SBB組件定義。 7. 一個(gè)JAVA接口(Activity Context Interface),這個(gè)接口定義為了得到和設(shè)置這些特性所進(jìn)行的安全訪問操作。 SBB實(shí)體:是SBB組件的一個(gè)實(shí)例,他是一個(gè)邏輯實(shí)體,是一個(gè)代表著實(shí)例持久性狀態(tài)的實(shí)體。 SBB對(duì)象:是一個(gè)實(shí)現(xiàn)javax.slee.sbb接口的java對(duì)象,和SBB實(shí)體所不同的是SBB的實(shí)體是邏輯的實(shí)體,而SBB對(duì)象則是一個(gè)JAVA的對(duì)象,在運(yùn)行的時(shí)候,SLEE分配0個(gè)或者多個(gè)SBB對(duì)象去表現(xiàn)一個(gè)SBB實(shí)體。 他們?nèi)叩年P(guān)系描述: SBB Compents 的一個(gè)實(shí)例就是一個(gè)SBB實(shí)體,SBB實(shí)體具有以上的七大功能,他就具備了處理一些事件的能力,當(dāng)SLEE把這些實(shí)體分配給SBB對(duì)象以后,SBB對(duì)象就具有以上的七大功能,且能夠來處理事件了。當(dāng)事件處理完,SLEE把SBB實(shí)體從SBB對(duì)象移除以后,SBB實(shí)體仍然存在,他還具有以上七大功能(等待SLEE再次把它分配給其他的SBB對(duì)象),而SBB對(duì)象則沒有了,如果再調(diào)用SBB對(duì)象的unSetSbbContext()方法,SBB對(duì)象將成為垃圾。由此可見:SBB對(duì)象和SBB實(shí)體是個(gè)多對(duì)一的關(guān)系,可以將一個(gè)SBB實(shí)體分配給多個(gè)SBB對(duì)象。 注意:如果在沒有給SBB對(duì)象分配SBB實(shí)體的就來使用這個(gè)SBB對(duì)象,就會(huì)拋出異常。 在SBB的生命 SBB的生命周期(見圖5): SBB的生命周期有三個(gè)狀態(tài):不存在,pooled 狀態(tài),Ready狀態(tài) 【 整個(gè)生命周期的過程 】SBB對(duì)象的生命周期開始于SLEE用newInstance()方法創(chuàng)建一個(gè)SBB對(duì)象,然后SLEE調(diào)用setSbbContext()方法給SBB對(duì)象設(shè)置一個(gè)sbbContext對(duì)象,這是該SBB對(duì)象就能調(diào)用SLEE提供的方法了,并進(jìn)入到了pooled 狀態(tài)。進(jìn)入pooled狀態(tài)的SBB對(duì)象都一個(gè)自己的pool 空間,但他們沒有和任何的SBB實(shí)體相關(guān)聯(lián),這時(shí)pool池中的所有SBB對(duì)象都一樣,SBB實(shí)體要想進(jìn)入Ready狀態(tài),需要給SBB對(duì)象分配一個(gè)SBB實(shí)體。 從pooled狀態(tài)到ready狀態(tài)有兩種實(shí)現(xiàn)方式: 第一種: 調(diào)用SbbCreate()方法或者SbbPostCreat()方法。(SLEE需要?jiǎng)?chuàng)建一個(gè)新的SBB Entity時(shí)調(diào)用SbbPostCreat()方法,當(dāng)SLEE需要為已經(jīng)存在的SbbEntity分配一個(gè)SBB 對(duì)象時(shí)調(diào)用SbbCreate()方法)。 第二種: 調(diào)用SbbActivity()方法。SLEE需要為已經(jīng)存在的SbbEntity分配一個(gè)SBB 對(duì)象 在Ready狀態(tài)下:SBB對(duì)象已經(jīng)和SBB實(shí)體建立了關(guān)聯(lián)關(guān)系,SBB通過調(diào)用sbbLoad()方法和sbbStore()方法若干次,實(shí)現(xiàn)SBB對(duì)象的瞬時(shí)狀態(tài)與SBB實(shí)體的持久狀態(tài)的同步。這時(shí)SBB對(duì)象就能夠進(jìn)行接收事件和進(jìn)行事件的處理。當(dāng)SBB對(duì)象處理完事件后還要回到pooled狀態(tài),這一過程有三種可能的途徑來實(shí)現(xiàn): 第一種:調(diào)用sbbPassivate()方法;厥辗峙浣oSBB Entity的Sbb對(duì)象。 第二種:調(diào)用sbbRemove()方法。移除SBB實(shí)體。 第三種:調(diào)用sbbCreate()方法或sbbPostCreate()方法成功,且沒有拋出異常,但是最終食物回滾了。 當(dāng)SBB返回到pooled狀態(tài)后,SLEE可以通過調(diào)用unSetSbbContext()方法,使SBB對(duì)象成為垃圾而被回收。 SBB實(shí)體樹和SBB圖: SBB圖和SBB樹都是用來表現(xiàn)SBB間的關(guān)系圖,區(qū)別在于SBB圖用來表示SBB對(duì)象間的關(guān)系圖,在圖1中,節(jié)點(diǎn)表示SBB對(duì)象,邊表示SBB對(duì)象間的關(guān)系,邊上的數(shù)表示事件傳遞優(yōu)先級(jí)。SBB樹是一個(gè)定向不循環(huán)圖,用來表示SBB實(shí)體間的關(guān)系圖,在圖2中,節(jié)點(diǎn)表示SBB實(shí)體,邊表示SBB實(shí)體間的關(guān)系,邊上的數(shù)表示事件傳遞優(yōu)先級(jí)。一般來說事件傳遞的優(yōu)先級(jí)是由父級(jí)SBB來指定,在運(yùn)行中,這種優(yōu)先級(jí)別可以改變。每個(gè)父SBB可以有多個(gè)子SBB,但一個(gè)子SBB只能有一個(gè)父SBB 下圖為一個(gè)SBB實(shí)體樹的實(shí)例圖: 。樱拢碌膬(yōu)先級(jí): SBB的優(yōu)先級(jí)決定著同根子SBB實(shí)體接收事件的順序。 。樱拢率录l(fā)送的優(yōu)先級(jí)范圍是(-128~127),最低是-128,最高是127. 指定同一個(gè)父SBB實(shí)體的子SBB實(shí)體的事件發(fā)送優(yōu)先級(jí)有兩種方法: 。. 產(chǎn)生該子SBB實(shí)體時(shí)產(chǎn)生的默認(rèn)事件優(yōu)先級(jí)。 。. 在運(yùn)行的過程中,父SBB實(shí)體可以通過調(diào)用setSbbPriority()方法給該實(shí)體的子實(shí)體修改事件發(fā)送優(yōu)先級(jí) 事件發(fā)送的優(yōu)先級(jí)可分為五個(gè)等級(jí): 第一等級(jí):最高級(jí)(100~~127) 第二等級(jí):次高級(jí)(31~~99) 第三等級(jí):標(biāo)準(zhǔn)級(jí)(-30~~30) 第四等級(jí):次低級(jí)(-99~~-31) 第五等級(jí):最低級(jí)(-128~~-100) 同一個(gè)父SBB實(shí)體的同胞SBB實(shí)體接收事件的順序按照優(yōu)先級(jí)的從高到低的順序一次排列。 移除SBB實(shí)體樹: Attachment count ----與一個(gè)SBB實(shí)體相關(guān)聯(lián)的所有Activity Context的個(gè)數(shù)(包括該SBB實(shí)體的子SBB實(shí)體相關(guān)聯(lián)的Activity Context 的個(gè)數(shù))。 Remove 一個(gè)SBB實(shí)體樹,就是通過將 Attachment count 的數(shù)量減到0 來實(shí)現(xiàn)的。 移除一個(gè)SBB實(shí)體樹,需以下三步: 第一步:結(jié)束Avtivity Object。 第二步:解除所有的SBB實(shí)體與所綁定的ActivityContext的綁定關(guān)系。解除的順序是先解除子SBB實(shí)體在解除根SBB實(shí)體。解除完全的標(biāo)志就是Attachment Count的數(shù)量減到0。 第三步:SLEE回收Activity Context ,并級(jí)聯(lián)移除各個(gè)根SBB實(shí)體。 舉例說明: 【 說明 】 以上圖中,橢圓表示實(shí)體,矩形表示Activity Context,橢圓和矩形之間的無向線段表示實(shí)體與Activity Context 之間有綁定關(guān)系,一對(duì)橢圓和矩形之間只有一條無向線段,箭頭表示的是一種Child Relation關(guān)系,箭頭所指的實(shí)體為子實(shí)體,背離箭頭的為父實(shí)體。圖中的橢圓里的數(shù)字就表示Attachments Count 【 解釋1 】Attachments Count X1的Attachment Count(6個(gè))=與x1綁定的AC:AC1和AC2(2個(gè))+與Y1綁定的AC的個(gè)數(shù)(0個(gè))+ 與Z1綁定的AC:AC2和AC3(2個(gè))+與Y2綁定的AC:AC3和AC1(2 個(gè)) Y2的Attatchment Count (2 個(gè))=與y2 綁定的AC;Ac1個(gè)AC3(2個(gè)) 【注:】Y2,沒有子SBB實(shí)體,所以他的Attchment就是它自己所綁定的Activity Context的個(gè)數(shù)。 【 解釋2 】SLEE回收SBB實(shí)體樹的過程 首先,在Activity Object已經(jīng)終止的前提下,將Y2 與AC1和AC3 斷開綁定,使y2的Attchmentcount減到0,再斷開Z1與AC2和AC3的綁定斷開,使Z1的Attchmentcount減到0,最后將X1與AC2和AC1的綁定斷開,使X1的Attchmentcount減到0, 然后,SLEE回收Activity Context,并刪除SBB實(shí)體。 SBB Local Interface 和sbb Local Object 每一個(gè)SBB都有一個(gè)SBB Local interface ,zhege SBB Local interface 有兩種可能:一種是一個(gè)特殊的interface ,這個(gè)特殊的interface 是由SBB開發(fā)商提供的,并繼承了SBBLocalObject interface。 第二種是 如果SBB開發(fā)商沒有提供特殊的Local Interface ,那么它就是SbbLocalObject interface.,一個(gè)SBB對(duì)象通過SBB Local Object同步的調(diào)用,分配有SBB實(shí)體的SBB對(duì)象,這個(gè)Sbb Local Object是有由SLEE實(shí)現(xiàn)的一個(gè)對(duì)象,SBB Local Object實(shí)現(xiàn)了sbb Local interface 并描述了目標(biāo)SBB實(shí)體,當(dāng)SBB對(duì)象調(diào)用了SBB開發(fā)商在SBB Local object 定義的方法時(shí),SBB抽象類中的相應(yīng)的法會(huì)調(diào)用,調(diào)用這個(gè)相應(yīng)方法的是描述這個(gè)SBB實(shí)體狀態(tài)的SBB對(duì)象,另一方面,sbb Local object是一個(gè)具有同步方法的客戶端對(duì)象。 理論上,一個(gè)SBB Local Object僅僅描述一個(gè)SBB實(shí)體,但是若干個(gè)SBB Local Object 也可能描述一個(gè)SBB實(shí)體。 一個(gè)SBB對(duì)象僅僅允許被一個(gè)SBB Local Object調(diào)用,這個(gè)SBB Local Object僅描述一個(gè)SBB實(shí)體樹中的實(shí)體,SBB Local Object描述不同的sbb 實(shí)體樹中的實(shí)體時(shí),sbb對(duì)象調(diào)用sbb Local Object的行為并沒有定義。 SBB Local Interface 因?yàn)楸憩F(xiàn)呼叫者的SBB對(duì)象和表現(xiàn)被呼叫者的SBB對(duì)象都必須被配置到同一個(gè)JVM中,所以這個(gè)接口被稱之為SBB Local Interface.在這個(gè)SBB Local Interface中生明了一些SBB對(duì)象的方法,這些SBB對(duì)象的方法可以被同步的調(diào)用。 獲得一個(gè)SBB Local Object 的方法: 一個(gè)SBB Local Object 是SLEE 的一個(gè)實(shí)現(xiàn)類,這個(gè)實(shí)現(xiàn)類實(shí)現(xiàn)類SBB Local Interface。一個(gè)SBB對(duì)象可以通過一下方法來獲得一個(gè)描述SBB實(shí)體的SBB Local object : 1. 調(diào)用childRelation 對(duì)象的creat()方法。 2. 調(diào)用sbbContext對(duì)象的getSbbLocalObject()方法。 。. 通過調(diào)用sbb Local Object 對(duì)象的一個(gè)方法來獲得一個(gè)Sbb Local Object ,被呼叫者可能通過它的一個(gè)輸入?yún)?shù)來獲得一個(gè)SBB Local Object ,呼叫者可能通過返回值來接收一個(gè)SBB Local object 。 。. 從 CMP field 中找回一個(gè)已存在的SBB Local object 5. 接收一個(gè)childRelation 對(duì)象,這個(gè)childRelation對(duì)象實(shí)現(xiàn)了java。Util。Collection接口,這個(gè)ChildRelation對(duì)象和它的iterator對(duì)象可以訪問sbb local object。 SBB Local object 具有一下功能: 。. 測(cè)試兩個(gè)SBB Local Object是否描述了同一個(gè)SBB實(shí)體 。. 移除SBB Local Object 描述的SBB實(shí)體及其他的SBB實(shí)體派生出來的SBB實(shí)體. 。. 設(shè)置和獲取 sbb Local Object 描述的SBB實(shí)體發(fā)出事件的優(yōu)先級(jí). 。. 調(diào)用sbb 開發(fā)商定義的sbb Local Object 的方法. 5. 將sbb Local Object 存儲(chǔ)到CMP中. SBB Local Object interface 這個(gè)接口是所有SBB Local interface的父接口,所有的SBB Local Interface 都繼承了這個(gè)sbbLocalObject接口,如果一個(gè)對(duì)象沒有定義一個(gè)特殊的sbb Local interface,那么他的local Interface 就是SBBLocalObject sbbContext object SBB上下文對(duì)象是SLEE給SBB對(duì)象的一些數(shù)據(jù),SLEE將SBB上下文對(duì)象傳遞給SBB對(duì)象后,SBB對(duì)象便由不存在狀態(tài)進(jìn)入了緩沖池狀態(tài),這樣SBB便可以訪問SLEE和SBB實(shí)體提供的一些數(shù)據(jù)信息。SBB上下文對(duì)象實(shí)現(xiàn)了SBB上下文接口,該接口里定義了一些得到業(yè)務(wù)信息,行為上下文,不可訪問事件,事務(wù)的方法。 SbbContext interface SLEE為每一個(gè)SBB對(duì)象都提供了一個(gè)SbbContext對(duì)象,SLEE也維持SbbContext提供給sbb 對(duì)象訪問sbb 對(duì)象上下文的一個(gè)通道。也允許sbb對(duì)象調(diào)用SLEE提供的方法,并獲取分配給SBB 對(duì)象的SBB實(shí)體的信息,SBBContext對(duì)象實(shí)現(xiàn)類SBBContext接口, SLEE CMP和EJB CMP: CMP(Container Managed Persistence 持久性容器管理),SLEE中的CMP是以EJB的CMP為基礎(chǔ)定義的,但有其不同之處: 1。SLEE會(huì)自動(dòng)創(chuàng)建和刪除SBB實(shí)體,而EJB則是通過程序代碼來執(zhí)行。SBB實(shí)體并沒有一個(gè)外在的主鍵。 2。EJB中的CMP被用于把數(shù)據(jù)存入數(shù)據(jù)庫或者后臺(tái)程序。SLEE的CMP用于識(shí)別哪些數(shù)據(jù)是應(yīng)該被容器管理的,可以提供多種存取數(shù)據(jù)的方式。 3。EJB中有CMR(容器管理關(guān)系),SLEE中沒有。 SBB組件環(huán)境: SBB組件環(huán)境是一種機(jī)制,他有如下特征: 1。訪問SLEE工具 2。使用SLEE的規(guī)范部署文件來部署個(gè)性化的SBB組件 SBB開發(fā)者的職責(zé): 進(jìn)入SBB組件環(huán)境,通過使用JNDI接口,創(chuàng)建一個(gè)InitialContext對(duì)象(不帶參數(shù)),然后用該對(duì)象調(diào)用lookup(java:comp/env)方法進(jìn)入SBB組件環(huán)境。 業(yè)務(wù)部署者的職責(zé): 確保SBB組件的外界入口都有效,可以對(duì)外界入口的值進(jìn)行修改
抱歉,此頁面的內(nèi)容受版權(quán)保護(hù),復(fù)制需扣除次數(shù),次數(shù)不足時(shí)需付費(fèi)購買。
如需下載請(qǐng)點(diǎn)擊:點(diǎn)擊此處下載
掃碼付費(fèi)即可復(fù)制
虛擬電路 | EVDO | DPLC | 中電通信 | 區(qū)域中心 | ESMA | ESEA | ESMC | 數(shù)據(jù)字典 | SCTP | PHS | 基本速率接口 |
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助