本發(fā)明涉及即時通訊服務器領域,尤其涉及一種基于Openfire服務器的業(yè)務分離系統(tǒng)和分離方法。
背景技術:
即時通訊技術(IM,Instant Messaging)廣泛應用于通訊領域。利用通訊網(wǎng)絡系統(tǒng)(CNS,Communication Network System)和通訊協(xié)議,能夠快速的進行信息交流。實時的基于WEB的即時消息傳輸平臺(Openfire)是一實現(xiàn)XMPP協(xié)議的開源項目,用它部署的即時通訊服務器可以給終端提供通訊服務。Openfire為了實現(xiàn)部署的簡單化,將即時通訊所需的所有業(yè)務服務都實現(xiàn),這樣導致一些業(yè)務和Openfire黏合的太緊,不利于實際的開發(fā)和使用。
Openfire不僅完美的實現(xiàn)了XMPP協(xié)議,還完成了包括用戶賬號提供、授權驗證、花名冊管理、消息邏輯處理等等功能,這些功能原本是由具體的業(yè)務服務器去管理,Openfire實現(xiàn)這些功能后,導致第三方業(yè)務很難接入Openfire,可拓展性差,也難于管理和維護。
Openfire賬號管理功能提供對賬號基本的增、刪、改、查,如果有對賬號額外的功能需求,如賬號關聯(lián)等,就無法滿足。Openfire的授權驗證接口缺少完善的驗證接口,對于利用HTTP協(xié)議來實現(xiàn)的網(wǎng)絡請求驗證,目前的Openfire無能為力。Openfire由于其完善的消息邏輯處理功能,不僅有消息的保存策略、消息的審計策略、還有消息的限制策略等等,大大的超出了Openfire作為一個即時通訊服務器的范疇,在一定程度上影響了其基本功能的處理。
事實上,Openfire目前的這些功能是系統(tǒng)資源沒必要的浪費,這些業(yè)務功能占用大量系統(tǒng)資源導致服務器性能下降,影響了其作為服務器的路由功能。在當前的Openfire上進行相關業(yè)務的開發(fā)和維護耗時耗力成本高昂,還存在功能上的隱患。
技術實現(xiàn)要素:
本發(fā)明的目的是針對上述現(xiàn)有技術存在的缺陷,提供一種基于Openfire服務器的業(yè)務分離系統(tǒng)和分離方法。
本發(fā)明提出的基于Openfire服務器的業(yè)務分離系統(tǒng)包括至少一個終端設備、多個業(yè)務服務器和至少一個Openfire服務器,所述的Openfire服務器設有多個功能接口,這些功能接口分別與各個業(yè)務服務器相關聯(lián),所述終端設備與各個業(yè)務服務器之間,以及所述終端設備之間均通過Openfire服務器進行通訊。
所述終端設備向所述Openfire服務器發(fā)起業(yè)務請求,所述Openfire服務器將所述業(yè)務請求通過功能接口遞交給所述業(yè)務服務器進行處理;所述業(yè)務服務器通過所述功能接口向所述Openfire服務器主動發(fā)起推送和/或功能管理指令,所述Openfire服務器根據(jù)所述指令對所述終端設備完成推送和/或功能管理操作。
所述Openfire服務器和業(yè)務服務器組成一個可以自由拓展的系統(tǒng),各個業(yè)務服務器以功能接口的形式獨立分開。
所述的業(yè)務服務器包括:認證授權服務器、賬戶管理服務器、和/或消息處理服務器、和/或花名冊管理服務器和其他的服務器。
本發(fā)明還提出一種基于Openfire服務器的業(yè)務分離方法,該方法從Openfire服務器抽象出多個功能接口,用于分別與各個業(yè)務服務器相關聯(lián);所述終端設備與各個業(yè)務服務器之間,以及所述終端設備之間均通過Openfire服務器進行通訊。
在終端設備登入Openfire服務器的認證實施例中,包括下列步驟:
步驟1.終端設備與Openfire服務器建立連接,打開一個會話;
步驟2.Openfire服務器向終端設備返回會話建立成功的信息;
步驟3.終端設備向Openfire服務器發(fā)起登錄請求,并攜帶賬號信息和唯一標識;
步驟4.Openfire服務器向賬戶管理服務器發(fā)送驗證賬戶是否有效的請求;
步驟5.賬戶管理服務器對賬號信息和唯一標識進行驗證,并將驗證結(jié)果返回給Openfire服務器;
步驟6.Openfire服務器向終端設備發(fā)起授權所需的挑戰(zhàn);
步驟7.終端設備完成挑戰(zhàn),發(fā)送密文給Openfire服務器;
步驟8.Openfire服務器得到密文后,將其遞交給認證授權服務器進行認證;
步驟9.如認證通過,賬戶管理服務器將向Openfire服務器返回認證結(jié)果;
步驟10.Openfire服務器標記會話已經(jīng)授權,初始化授權會話;
步驟11.Openfire服務器向終端設備返回登錄成功。
在所述終端設備推送消息的實施例中,包括下列步驟:
步驟1.第一終端向Openfire服務器發(fā)送消息;
步驟2.Openfire服務器向第一終端發(fā)送服務器回執(zhí);
步驟3.Openfire服務器攔截消息;
步驟4.Openfire服務器將消息遞交給消息處理服務器;
步驟5.消息處理服務器對消息進行業(yè)務上的處理;
步驟6.消息處理服務器向Openfire服務器返回消息處理結(jié)果;
步驟7.消息處理服務器向Openfire服務器發(fā)送指令,使Openfire服務器將消息推送給第二終端;
步驟8.第二終端接收到消息后,向Openfire服務器返回已接收消息的回執(zhí);
步驟9.Openfire服務器將已接收消息的回執(zhí)發(fā)送給第一終端;
步驟10.Openfire服務器向消息處理服務器遞交推送結(jié)果。
所述終端設備推送消息的過程還包括所述第二終端用戶閱讀所述消息后,第二終端向Openfire返回消息已閱讀的回執(zhí),Openfire將所述消息已閱讀的回執(zhí)返回給所述第一終端。
在所述終端設備請求Openfire服務器進行花名冊管理的實施例中,包括下列步驟:
步驟1.終端設備向Openfire服務器發(fā)起花名冊管理請求并攜帶花名冊信息;
步驟2.Openfire服務器將所述請求及花名冊信息遞交給所述花名冊管理服務器;
步驟3.花名冊管理服務器處理所述花名冊管理請求;
步驟4.花名冊管理服務器返回處理結(jié)果給Openfire服務器;
步驟5.Openfire服務器返回處理結(jié)果給終端設備。
其中,所述花名冊管理請求包括花名冊信息的增加、刪除、修改和查詢。
與現(xiàn)有技術相比,本發(fā)明的有益效果是:
(1)抽離了Openfire服務器的業(yè)務處理功能,從中抽象出業(yè)務功能接口與相應的業(yè)務服務器相關聯(lián)處理相關業(yè)務,可拓展性強利于開發(fā)和維護,可方便的供第三方業(yè)務接入和對已有業(yè)務的拓展;
(2)利用認證授權服務器對賬戶進行驗證,完善了Openfire服務器的賬戶驗證功能;
(3)降低了系統(tǒng)資源占用率,大大提高了服務器性能;
(4)開發(fā)和維護成本低。
附圖說明
圖1為本發(fā)明系統(tǒng)的結(jié)構示意圖;
圖2為本發(fā)明終端設備請求Openfire服務器的用例圖;
圖3為本發(fā)明業(yè)務服務器請求Openfire服務器的用例圖;
圖4為本發(fā)明終端設備成功登錄Openfire服務器的時序圖;
圖5為本發(fā)明終端設備成功推送出消息的時序圖;
圖6為本發(fā)明增加花名冊信息的時序圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明進行詳細的說明。
本發(fā)明提供的基于Openfire服務器的業(yè)務分離系統(tǒng),包括至少一個終端設備、多個業(yè)務服務器和至少一個Openfire服務器。Openfire服務器設有多個功能接口,這些功能接口分別與各個業(yè)務服務器相關聯(lián)。終端設備與各個業(yè)務服務器之間,以及終端設備之間均通過Openfire服務器進行通訊。
本發(fā)明從Openfire服務器中將其已有的業(yè)務功能分離處理,并分別設置業(yè)務功能接口,通過各功能接口與各業(yè)務服務器相關聯(lián),組成一個自由可拓展的服務器系統(tǒng),各個業(yè)務服務器通過Openfire服務器的功能接口獨立分開,各自處理各自負責的業(yè)務。Openfire服務器不再處理具體的業(yè)務,而只是作為一個路由器連接終端設備與各業(yè)務服務器,讓業(yè)務服務器通過Openfire服務器的路由功能處理實現(xiàn)終端設備的業(yè)務請求。
Openfire服務器和各業(yè)務服務器組成一個可以自由拓展的系統(tǒng),各個業(yè)務服務器以功能接口的形式獨立分開。
如圖1所示,在一實施例中,終端設備包括有第一、第二終端終備,分別與Openfire服務器通過TCP/IP協(xié)議建立連接。從Openfire服務器分離出并設置的功能接口有賬戶、認證、花名冊、消息和推送,分別與賬戶管理服務器、認證授權服務器、花名冊管理服務器和消息處理服務器等業(yè)務服務器相關聯(lián),分別用以使Openfire服務器與業(yè)務服務器配合實現(xiàn)終端設備請求的業(yè)務。其中消息和推送兩個功能接口均與消息處理服務器相關聯(lián)。
圖2是終端設備請求Openfire服務器的用例圖,終端設備直接與Openfire服務器中的登錄認證、消息處理和花名冊管理用例相關聯(lián)。
圖3是業(yè)務服務器請求Openfire服務器的用例圖,業(yè)務服務器可主動向Openfire服務器發(fā)起推送、會話管理和出席管理,向Openfire服務器發(fā)出指令進行消息推送、會話管理或出席管理等功能操作。
終端設備可向Openfire服務器發(fā)起各用例相關的業(yè)務請求,Openfire服務器將終端設備發(fā)出的業(yè)務請求遞交給相關業(yè)務服務器,讓業(yè)務服務器對請求進行具體的業(yè)務處理,并向Openfire服務器發(fā)送指令進行消息推送和/或會話管理和/或出席管理等操作,若業(yè)務處理完成,業(yè)務服務器則會將處理結(jié)果通過Openfire服務器返回給終端設備。
本發(fā)明還提出了一種基于Openfire服務器的業(yè)務分離方法,包括:從Openfire服務器抽象出多個功能接口,用于分別與各個業(yè)務服務器相關聯(lián);終端設備與各個業(yè)務服務器之間,以及所述終端設備之間均通過Openfire服務器進行通訊。
圖4為終端設備成功登錄Openfire服務器的時序圖,終端設備登入Openfire服務器的認證過程包括下列步驟:
步驟S401.終端設備與Openfire服務器建立連接,使用XMPP協(xié)議打開一個會話;
步驟S402.Openfire服務器向終端設備返回會話建立成功的信息;
步驟S403.終端設備向Openfire服務器發(fā)起登錄請求,并攜帶賬號信息和唯一標識;
步驟S404.Openfire服務器向賬戶管理服務器發(fā)送驗證賬戶是否有效的請求;
步驟S405.賬戶管理服務器對賬號信息進行驗證,并將驗證結(jié)果返回給Openfire服務器;
步驟S406.Openfire服務器向終端設備發(fā)起授權所需的挑戰(zhàn);
步驟S407.終端設備完成挑戰(zhàn),發(fā)送密文給Openfire服務器;
步驟S408.Openfire服務器得到密文后,將其遞交給認證授權服務器進行認證;
步驟S409.如認證通過,賬戶管理服務器將向Openfire服務器返回認證結(jié)果;
步驟S410.Openfire服務器標記會話已經(jīng)授權,初始化授權會話;
步驟S411.Openfire服務器向終端設備返回登錄成功的結(jié)果。
以上為賬戶一次性登錄成功的過程,賬戶登錄失敗包括兩種情況:賬戶驗證失敗和密文認證失敗。步驟405中,若賬戶驗證未通過,賬戶管理服務器返回驗證未通過的結(jié)果至Openfire服務器,Openfire服務器返回賬戶驗證失敗結(jié)果至終端設備,登錄失??;步驟409中,若密文認證未通過,則認證授權服務器通過Openfire服務器返回密文認證失敗的結(jié)果至終端設備,登錄失敗。
賬戶成功登錄后,所述終端即可通過標準的網(wǎng)絡協(xié)議與其他終端用戶進行即時通訊,在本實施例中,消息發(fā)送終端為第一終端,消息接收終端為第二終端,且第一終端必須為賬戶成功登錄的終端。
圖5為終端設備成功推送出消息的時序圖,具體過程包括下列步驟:
步驟S501.第一終端向Openfire服務器發(fā)送消息;
步驟S502.Openfire服務器向第一終端發(fā)送服務器回執(zhí);
步驟S503.Openfire服務器攔截消息;
步驟S504.Openfire服務器將消息遞交給消息處理服務器;
步驟S505.消息處理服務器對消息進行業(yè)務上的處理;
步驟S506.消息處理服務器向Openfire服務器返回消息處理結(jié)果;
步驟S507.消息處理服務器向Openfire服務器發(fā)送指令,使Openfire服務器將消息推送給第二終端;
步驟S508.第二終端接收到消息后,向Openfire服務器返回已接收消息的回執(zhí);
步驟S509.Openfire服務器將已接收消息的回執(zhí)發(fā)送給第一終端;
步驟S510.Openfire服務器向消息處理服務器遞交推送結(jié)果。
其中,步驟S501還包括前置步驟:使用XMPP協(xié)議打開一個會話。第一終端通過該會話界面發(fā)送出消息。
在本實施例中,第二終端用戶閱讀消息后,第二終端將向Openfire返回消息已閱讀的回執(zhí),Openfire將該消息已閱讀的回執(zhí)返回給所述第一終端。
Openfire服務器的會話管理包括關閉會話、打開會話、掛起會話和會話解除授權等,出席管理包括對參與即時通訊終端的數(shù)據(jù)應答管理。
上述第一終端向第二終端推送消息的過程同時體現(xiàn)了終端到終端的路徑和服務器到終端的路徑。
終端設備請求Openfire服務器進行花名冊管理的過程包括下列步驟:
步驟1.終端設備向Openfire服務器發(fā)起花名冊管理請求并攜帶花名冊信息;
步驟2.Openfire服務器將花名冊管理請求及花名冊信息遞交給所述花名冊管理服務器;
步驟3.花名冊管理服務器處理所述花名冊管理請求;
步驟4.花名冊管理服務器返回處理結(jié)果給Openfire服務器;
步驟5.Openfire服務器返回處理結(jié)果給終端設備。
花名冊管理服務器是一個數(shù)據(jù)庫服務器,其中,花名冊管理請求包括花名冊信息的增加、刪除、修改和查詢,用戶可方便的管理通訊系統(tǒng)中的聯(lián)系人花名冊信息。
圖6為增加花名冊信息的時序圖,終端設備請求Openfire服務器增加花名冊信息的過程包括下列步驟:
步驟S601.終端設備向Openfire服務器發(fā)起增加花名冊信息的請求,并使用XMPP協(xié)議打開一個會話;
步驟S602.Openfire服務器返回會話建立成功的結(jié)果至終端設備;
步驟S603.終端設備輸入待添加的用戶信息,如用戶昵稱或ID等;
步驟S604.Openfire服務器將用戶信息提交至花名冊管理服務器;
步驟S605.花名冊管理服務器將用戶信息寫入數(shù)據(jù)庫;
步驟S606.花名冊管理服務器將成功增加花名冊信息的結(jié)果返回至Openfire服務器;
步驟S607.Openfire服務器將成功增加花名冊信息的結(jié)果返回至終端設備。
本實施例中,基于Openfire服務器的業(yè)務分離系統(tǒng)包括有登錄認證、消息推送和花名冊管理等即時通訊系統(tǒng)的基本功能,本領域技術人員還可根據(jù)其他需求開發(fā)拓展其他業(yè)務功能,如賬戶的關聯(lián)等。
本發(fā)明通過從Openfire服務器中抽象出功能接口,通過功能接口與各業(yè)務服務器相關聯(lián),以實現(xiàn)即時通訊,終端發(fā)出的業(yè)務請求通過Openfire服務器遞交給業(yè)務服務器,業(yè)務服務器處理后將結(jié)果通過Openfire服務器的相關功能接口返回給Openfire服務器,Openfire服務器不再處理具體的業(yè)務,只做消息或業(yè)務的路由,大大減小了Openfire服務器系統(tǒng)資源的占用率,提高了服務器性能和可拓展性,更利于即時通訊系統(tǒng)的開發(fā)和維護,節(jié)約了時間和金錢成本。
上述實施例僅用于說明本發(fā)明的具體實施方式。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和變化,這些變形和變化都應屬于本發(fā)明的保護范圍。