亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        融合通信業(yè)務(wù)門戶系統(tǒng)中業(yè)務(wù)邏輯層的擴(kuò)展與實(shí)現(xiàn)

        2010-07-17 03:17:40趙京華
        關(guān)鍵詞:門戶通訊錄組件

        趙京華, 李 煒

        (1. 北京郵電大學(xué) 網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室, 北京 100876;2. 東信北郵信息技術(shù)有限公司, 北京 100191)

        融合通信業(yè)務(wù)(unified communications service,UC service)是以IP通信為基礎(chǔ),提供語音、視頻、數(shù)據(jù)和信息服務(wù)的綜合業(yè)務(wù). 用戶可以采用多樣化的終端接入到網(wǎng)絡(luò)享有融合通信的各種服務(wù),以IP為核心的統(tǒng)一控制以及融合的業(yè)務(wù)平臺(tái)能夠?qū)崿F(xiàn)各類通信的統(tǒng)一和用戶體驗(yàn)的統(tǒng)一[1].

        融合通信業(yè)務(wù)提供門戶系統(tǒng),通過登錄業(yè)務(wù)門戶,集團(tuán)客戶管理員和個(gè)人用戶能夠?qū)崿F(xiàn)對(duì)業(yè)務(wù)的統(tǒng)一管理,因此該門戶系統(tǒng)亦稱作自助服務(wù)門戶系統(tǒng)(portal system). 融合通信業(yè)務(wù)的部分組網(wǎng)結(jié)構(gòu)如圖1,自助服務(wù)門戶系統(tǒng)部署在Web服務(wù)器上. 由于研究主要關(guān)注的是自助服務(wù)門戶系統(tǒng),因此,與Web服務(wù)器沒有直接連接的組網(wǎng)設(shè)備在圖1中未詳細(xì)給出.

        融合通信業(yè)務(wù)自助服務(wù)門戶系統(tǒng)采用SSH(Spring、Struts和Hibernate)框架搭建系統(tǒng)架構(gòu). 基于Struts+Spring+Hibernate的輕量級(jí)J2EE架構(gòu),在系統(tǒng)運(yùn)行性能、可擴(kuò)展性,可維護(hù)性等多方面具有優(yōu)勢(shì)[2]. 在一般的SSH框架的應(yīng)用中,業(yè)務(wù)邏輯層通過對(duì)DAO(data access object,數(shù)據(jù)訪問接口)組件進(jìn)行封裝,來對(duì)數(shù)據(jù)庫進(jìn)行操作. 但是,從圖1中可以看出,自助服務(wù)門戶系統(tǒng)與諸多網(wǎng)絡(luò)設(shè)備之間都存在信息的交互,且交互方式不同. 基于這種復(fù)雜的組網(wǎng)結(jié)構(gòu),研究分析本系統(tǒng)對(duì)業(yè)務(wù)邏輯層的特殊需求,并介紹如何通過對(duì)業(yè)務(wù)邏輯層的擴(kuò)展,來滿足本系統(tǒng)的業(yè)務(wù)需求.

        圖1 融合通信業(yè)務(wù)組網(wǎng)結(jié)構(gòu)中的自助服務(wù)門戶系統(tǒng)Fig.1 Portal system in the network infrastructure of UC service

        1 業(yè)務(wù)組網(wǎng)環(huán)境

        對(duì)于一般的Web應(yīng)用程序,與之進(jìn)行信息交互的網(wǎng)絡(luò)實(shí)體包括客戶端(瀏覽器)和數(shù)據(jù)庫等. 而在融合通信業(yè)務(wù)中,豐富的業(yè)務(wù)特性和復(fù)雜的組網(wǎng)結(jié)構(gòu),讓自助服務(wù)門戶系統(tǒng)除了具有一般Web應(yīng)用程序的特點(diǎn)之外,還需要具備與電信運(yùn)營商核心網(wǎng)、PC桌面程序、移動(dòng)電話等進(jìn)行直接或間接信息交互的能力. 下面介紹融合通信業(yè)務(wù)中與自助服務(wù)門戶系統(tǒng)建立了直接物理連接的網(wǎng)絡(luò)實(shí)體的功能,同時(shí)介紹自助服務(wù)門戶系統(tǒng)如何通過以下網(wǎng)元,與電信運(yùn)營商核心網(wǎng)、PC桌面程序、移動(dòng)電話建立通信.

        1.1 數(shù)據(jù)庫

        同大多數(shù)企業(yè)級(jí)Web應(yīng)用程序一樣,數(shù)據(jù)庫服務(wù)器是自助服務(wù)門戶系統(tǒng)組網(wǎng)環(huán)境的重要組成部分. 數(shù)據(jù)庫中存儲(chǔ)著諸如系統(tǒng)參數(shù),用戶的個(gè)人信息,以及用戶的好友、通訊錄、群組等大量數(shù)據(jù).

        自助服務(wù)門戶系統(tǒng)通過JDBC(java database connectivity,Java數(shù)據(jù)庫連接)對(duì)數(shù)據(jù)庫進(jìn)行訪問.

        1.2 XDMS

        在融合通信業(yè)務(wù)中,XDMS(XML document management server,XML文檔管理服務(wù)器)為PC客戶端和其它服務(wù)器提供好友管理、群組管理、企業(yè)通訊錄管理等功能. 另一方面,在XDMS上運(yùn)行的Sync進(jìn)程可以與電信運(yùn)營商的SMP(service management point,業(yè)務(wù)管理點(diǎn))之間建立通信,通過SMP對(duì)SCP(service control point,業(yè)務(wù)控制點(diǎn))的管理功能,實(shí)現(xiàn)全網(wǎng)SCP的數(shù)據(jù)同步[3]. 同步的信息包括用戶的業(yè)務(wù)辦理狀態(tài)、用戶的停開機(jī)狀態(tài)、用戶振鈴策略等. XDMS是PC客戶端和SMP訪問融合通信業(yè)務(wù)平臺(tái)的唯一接入點(diǎn),因此,自助服務(wù)門戶系統(tǒng)也可以通過XDMS的中轉(zhuǎn),建立與PC客戶端和SMP之間的通信.

        自助服務(wù)門戶系統(tǒng)與XDMS之間通過XCAP(XML configuration access protocol,XML配置訪問協(xié)議)協(xié)議進(jìn)行通信.

        1.3 SM-Proxy

        SM-Proxy(short message proxy, 短信代理服務(wù)器)是融合通信業(yè)務(wù)平臺(tái)與電信運(yùn)營商短信行業(yè)網(wǎng)關(guān)之間的唯一接口. 融合通信業(yè)務(wù)平臺(tái)的所有用戶短信和系統(tǒng)短信都通過SM-Proxy發(fā)送給行業(yè)網(wǎng)關(guān),并通過電信運(yùn)營商的網(wǎng)絡(luò)將短信下發(fā)至用戶手機(jī).

        自助服務(wù)門戶系統(tǒng)與SM-Proxy之間通過自定義接口的HTTP(hypertext transfer protocol,超文本傳輸協(xié)議)協(xié)議進(jìn)行通信.

        1.4 話單接口機(jī)

        話單接口機(jī)主要負(fù)責(zé)生成融合通信業(yè)務(wù)產(chǎn)生的計(jì)費(fèi)話單文件,并將其通過FTP協(xié)議傳送至電信運(yùn)營商BOSS(business & operation support system,電信業(yè)務(wù)運(yùn)營支撐系統(tǒng)). 由于話單接口機(jī)建立了一條融合通信業(yè)務(wù)平臺(tái)與BOSS之間的FTP通道,因此,自助服務(wù)門戶系統(tǒng)也借助這條通道與BOSS進(jìn)行信息的同步,同步的信息包括短信白名單、用戶停開機(jī)狀態(tài)等.

        2 業(yè)務(wù)邏輯層的擴(kuò)展

        2.1 SSH框架分層結(jié)構(gòu)

        SSH框架具有清晰的層次結(jié)構(gòu). 根據(jù)立場(chǎng)的不同,SSH框架也具有多種分層的方式. 一般來說,一個(gè)基于SSH框架的系統(tǒng)可以分為五層:客戶層、Web層、業(yè)務(wù)邏輯層、持久化層和數(shù)據(jù)庫層. 通常,業(yè)務(wù)邏輯組件會(huì)對(duì)持久化組件進(jìn)行封裝,那么持久化層就完全被封裝在業(yè)務(wù)邏輯層中,因此可以得到一種SSH框架的四層結(jié)構(gòu):客戶層、Web層、業(yè)務(wù)邏輯層和數(shù)據(jù)庫層.

        2.2 自助服務(wù)門戶系統(tǒng)對(duì)業(yè)務(wù)邏輯層的需求

        自助服務(wù)門戶系統(tǒng)區(qū)別于其它Web應(yīng)用程序的特點(diǎn)在于,它需要與組網(wǎng)環(huán)境中的多種設(shè)備進(jìn)行多種方式的信息交互. 這些交互包括:

        1) 通過JDBC對(duì)數(shù)據(jù)庫進(jìn)行訪問;

        2) 通過XCAP協(xié)議與XDMS進(jìn)行通信;

        3) 通過HTTP協(xié)議與SM-Proxy進(jìn)行通信;

        4) 通過FTP協(xié)議向BOSS傳送信息同步文件.

        通過Spring和Hibernate對(duì)DAO組件的支持,我們可以輕易地實(shí)現(xiàn)數(shù)據(jù)庫訪問邏輯[4],這也是SSH框架最具優(yōu)勢(shì)的功能之一. 但是,SSH框架并未對(duì)上面所列出的其它幾種交互能力提供支持,因此,為實(shí)現(xiàn)系統(tǒng)多元化的交互功能,需要對(duì)業(yè)務(wù)邏輯層進(jìn)行擴(kuò)展.

        2.3 具體擴(kuò)展方案

        業(yè)務(wù)邏輯層通過DAO組件來實(shí)現(xiàn)數(shù)據(jù)庫訪問. 我們可以根據(jù)這種思路來提出一個(gè)業(yè)務(wù)邏輯層的擴(kuò)展方案:如果對(duì)其它的每一種實(shí)體,分別提供一個(gè)組件來實(shí)現(xiàn)與它的交互,那么就可以得到一個(gè)功能完備的業(yè)務(wù)邏輯層,且對(duì)Web層的組件來說,也無需關(guān)心組網(wǎng)結(jié)構(gòu)和協(xié)議等細(xì)節(jié).

        擴(kuò)展后的業(yè)務(wù)邏輯層如圖2. 由于原分層結(jié)構(gòu)中的數(shù)據(jù)庫層中增加了多種網(wǎng)絡(luò)設(shè)備,所以我們將原來的數(shù)據(jù)庫層改稱作外部設(shè)備層.

        圖2 擴(kuò)展的業(yè)務(wù)邏輯層Fig.2 Extended service logic layer

        3 擴(kuò)展的業(yè)務(wù)邏輯層的實(shí)現(xiàn)

        3.1 配置DAO組件

        DAO組件用來連接業(yè)務(wù)邏輯和數(shù)據(jù)源,實(shí)現(xiàn)兩者的解耦. 一般來說,應(yīng)當(dāng)為每一個(gè)持久化類創(chuàng)建一個(gè)DAO. DAO模式要求為每個(gè)DAO組件編寫DAO接口和至少一個(gè)實(shí)現(xiàn)類. 這種接口和實(shí)現(xiàn)分開的做法,可以使業(yè)務(wù)邏輯組件只與DAO接口耦合,而無需關(guān)心DAO的具體實(shí)現(xiàn). 當(dāng)?shù)讓訑?shù)據(jù)庫變更或持久化機(jī)制變更時(shí),只需修改DAO實(shí)現(xiàn)即可.

        下面以企業(yè)通訊錄為例,介紹DAO組件的創(chuàng)建方法. 其它持久化類的DAO的創(chuàng)建方法與此類似,不再列舉.

        企業(yè)通訊錄DAO封裝了對(duì)企業(yè)通訊錄持久化類的CRUD操作,DAO的實(shí)現(xiàn)類繼承自Spring對(duì)Hibernate的支持類HibernateDaoSupport.

        編寫完成DAO組件的代碼后,需要將DAO組件配置在Spring容器中,由Spring的ApplicationContext負(fù)責(zé)管理DAO組件的創(chuàng)建. 借助于Spring提供的IoC(inverse of control,控制反轉(zhuǎn))實(shí)現(xiàn)依賴注入,便可以得到DAO實(shí)例. 與傳統(tǒng)程序設(shè)計(jì)中創(chuàng)建一個(gè)對(duì)象的實(shí)例的方式不同,IoC的含義是:由Spring容器來創(chuàng)建被調(diào)用對(duì)象的實(shí)例,然后將其注入調(diào)用者,因此IoC也稱為DI(dependency injection,依賴注入). Spring通過接口松耦合的JavaBean模型提供了基于IoC容器的BeanFactory[5].

        在Spring的配置文件applicationContext.xml中添加如下的配置代碼,即可完成對(duì)企業(yè)通訊錄DAO組件的配置.

        〈bean id=“ComPhonebookDAO”class=“com.bupt.uc.hibernate.dao.ComPhonebookDAOImpl”〉

        〈property name=“sessionFactory”ref=“sessionFactory”/〉

        〈/bean〉

        在上面配置的property子元素里,引用了Hibernate的SessionFactory. 其中,SessionFactory負(fù)責(zé)產(chǎn)生Hibernate Session. Session接口是Hibernate向應(yīng)用程序提供的操縱數(shù)據(jù)庫的最主要的接口,它提供了基本的保存、更新、刪除和查詢方法[6]. ComPhonebookDaoImpl實(shí)現(xiàn)類并沒有提供 setSessionFactory()方法,該方法由其父類HibernateDaoSupport提供,用于為DAO組件依賴注入SessionFactory.

        依次類推,可以完成所有持久化類的DAO組件的配置.

        3.2 配置XCAP組件

        XCAP組件用于實(shí)現(xiàn)業(yè)務(wù)邏輯與XDMS服務(wù)器的解耦. 同樣地,XCAP組件也通過接口為業(yè)務(wù)邏輯組件提供服務(wù),再通過實(shí)現(xiàn)類編寫具體的實(shí)現(xiàn). XCAP組件應(yīng)當(dāng)提供的功能包括構(gòu)造XCAP請(qǐng)求、構(gòu)造XCAP消息等.

        由于XCAP是基于HTTP的協(xié)議,我們可以借助HTTP開源包來實(shí)現(xiàn)XCAP中基本的通信功能. HttpClient是開源組織Apache提供的一個(gè)使用Java語言實(shí)現(xiàn)的HTTP開源包,使用其中的HttpClient類可以模擬各種HTTP客戶端所需的功能,使用其中的GetMethod,PutMethod,DeleteMethod類可以創(chuàng)建不同類型的連接,以對(duì)應(yīng)XML文檔的獲取、創(chuàng)建、修改和刪除操作.

        XCAP接口和實(shí)現(xiàn)類的類圖如圖3.

        圖3 XCAP組件接口和實(shí)現(xiàn)類的類圖Fig.3 The class diagram of XCAP component

        在Spring中進(jìn)行如下配置,將XCAP組件添加到IoC容器.

        〈bean id=“XcapComponent”class=“com.bupt.uc.components.XcapComponent”〉

        〈/bean〉

        3.3 配置HTTP組件

        HTTP組件用于連接業(yè)務(wù)邏輯與SM-Proxy. 由于與SM-Proxy之間的交互比較簡單,因此HTTP組件只需完成HTTP消息的發(fā)送和接收即可. 在XCAP組件的實(shí)現(xiàn)中介紹了HttpClient類,它具備了所有HTTP組件需要具備的功能,因此,直接使用HttpClient類作為業(yè)務(wù)邏輯層的HTTP組件. 為在業(yè)務(wù)邏輯中使用該組件,只需要在Spring的配置文件中進(jìn)行配置.

        3.4 配置FTP組件

        FTP組件用于與話單接口機(jī)之間建立FTP連接,發(fā)送和接受信息同步文件. 同時(shí),還應(yīng)具有移動(dòng)、刪除等功能,以便完成文件的轉(zhuǎn)移和備份. 另外,還應(yīng)支持批量上傳和下載文件的操作.

        FTP組件類FtpComponent依賴于FtpClient類,F(xiàn)tpClient是開源軟件edtftpj提供的開源包中的FTP客戶端組件,可以完成基本的FTP操作. 在FtpComponent類中對(duì)其進(jìn)行封裝,并將它配置到Spring容器中.

        3.5 配置業(yè)務(wù)邏輯組件

        業(yè)務(wù)邏輯層為Web層提供完成各類業(yè)務(wù)邏輯的服務(wù),這些服務(wù)通過業(yè)務(wù)邏輯接口暴露給Web層,供Web層的控制器進(jìn)行調(diào)用,而服務(wù)的實(shí)現(xiàn)在相應(yīng)的實(shí)現(xiàn)類中進(jìn)行定義. 通過面向接口編程,控制器無須與具體的業(yè)務(wù)邏輯組件耦合. 假如需要改變業(yè)務(wù)邏輯的實(shí)現(xiàn)時(shí),可以只提供新的實(shí)現(xiàn)類,而不需要改變其控制器代碼[4].

        在自助服務(wù)門戶系統(tǒng)中,業(yè)務(wù)邏輯層提供的服務(wù)放在UCService接口中進(jìn)行定義,并在UCServiceImpl類中實(shí)現(xiàn)它們. UCServiceImpl的實(shí)現(xiàn)依賴于前面各節(jié)介紹的四類組件. UCService接口與其實(shí)現(xiàn)類UCServiceImpl,以及實(shí)現(xiàn)類依賴的四類組件類的類圖如圖4.

        圖4 業(yè)務(wù)邏輯組件的類圖Fig.4 The class diagram of service logic components

        從類圖中可以看出,UCService接口提供了四個(gè)業(yè)務(wù)邏輯的功能,而這四個(gè)功能的實(shí)現(xiàn)則分別依賴于四個(gè)不同的組件. 由于Web層僅僅與UCService提供的接口耦合,因此通過這一擴(kuò)展的業(yè)務(wù)邏輯層,系統(tǒng)底層的組網(wǎng)細(xì)節(jié)和交互方式都被隱藏了. 對(duì)于Web層的使用者來說,調(diào)用addComPhonebook()方法與調(diào)用addGroup()方法并無區(qū)別,但在實(shí)際場(chǎng)景中,前者將一個(gè)ComPhoneBook(企業(yè)通訊錄)實(shí)例持久化到數(shù)據(jù)庫中,后者則將一個(gè)Group(群組)節(jié)點(diǎn)添加到XDMS上的XML文檔中.

        在3.1節(jié)中,介紹了如何借助Spring的IoC容器獲取DAO組件的實(shí)例. 為在業(yè)務(wù)邏輯組件的實(shí)現(xiàn)中獲得其它三個(gè)不同組件的實(shí)例,可以使用同樣的辦法.

        為了實(shí)現(xiàn)Spring的依賴注入,需要在UCServiceImpl實(shí)現(xiàn)類中添加四類組件的setter方法,然后在Spring配置文件中配置業(yè)務(wù)邏輯組件時(shí),將它依賴的四類組件作為property子元素,這些子元素分別引用3.1至3.4節(jié)中配置的4類bean.

        〈bean id=“ucService”class=“com.bupt.uc.service.UCServiceImpl”〉

        〈!--省略了部分property子元素的定義--〉

        〈propery name=“comPhonebookDAO”ref=“ComPhonebookDAO”/〉

        〈property name=“xcapComponent”ref=“XcapComponent”/〉

        〈property name=“httpComponent”ref=“HttpComponent”/〉

        〈property name=“ftpComponent”ref=“FtpComponent”/〉

        〈/bean〉

        至此,研究實(shí)現(xiàn)了自助服務(wù)門戶系統(tǒng)的業(yè)務(wù)邏輯層,它對(duì)傳統(tǒng)的基于SSH框架的Web應(yīng)用系統(tǒng)的業(yè)務(wù)邏輯層進(jìn)行了擴(kuò)展,使之具備了與多種組網(wǎng)設(shè)備進(jìn)行信息交互的能力. 另一方面,業(yè)務(wù)邏輯層的擴(kuò)展并未破壞它與Web層之間松散的耦合性,自助服務(wù)門戶系統(tǒng)的業(yè)務(wù)邏輯層可以以傳統(tǒng)的方式供Web層調(diào)用.

        4 結(jié)束語

        介紹了融合通信業(yè)務(wù)門戶系統(tǒng)區(qū)別于其它Web應(yīng)用程序的顯著特征,并提出了一種通過擴(kuò)展系統(tǒng)架構(gòu)中的業(yè)務(wù)邏輯層來實(shí)現(xiàn)系統(tǒng)功能的實(shí)現(xiàn)方案. 這種方案體現(xiàn)了SSH框架在可擴(kuò)展性等方面的優(yōu)勢(shì),更大限度地發(fā)揮了SSH框架的能力. 對(duì)其它基于SSH框架的輕量級(jí)J2EE應(yīng)用在系統(tǒng)擴(kuò)展和優(yōu)化方面具有一定的參考價(jià)值.

        目前在軟件開發(fā)領(lǐng)域存在著眾多優(yōu)秀的開發(fā)框架,它們有著各自的特點(diǎn)和優(yōu)勢(shì),任何一種開發(fā)框架都不可能適應(yīng)所有的應(yīng)用場(chǎng)景. 因此,一方面應(yīng)當(dāng)根據(jù)具體應(yīng)用場(chǎng)景選擇適當(dāng)?shù)拈_發(fā)框架,另一方面,也應(yīng)當(dāng)打破慣性的思維,通過擴(kuò)展和改造,充分發(fā)掘開發(fā)框架的能力,以便在不破壞系統(tǒng)架構(gòu)的基礎(chǔ)上,實(shí)現(xiàn)更加豐富的功能.

        猜你喜歡
        門戶通訊錄組件
        關(guān)隘:要道門戶
        散文(2022年6期)2022-07-28 01:37:58
        無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
        能源工程(2022年2期)2022-05-23 13:51:50
        西域門戶——兩關(guān)遺址
        本期石友通訊錄
        寶藏(2021年6期)2021-07-20 06:12:30
        通訊錄
        寶藏(2021年4期)2021-05-27 08:11:08
        本期石友通訊錄
        寶藏(2021年11期)2021-01-01 06:17:42
        新型碎邊剪刀盤組件
        美食通訊錄
        U盾外殼組件注塑模具設(shè)計(jì)
        基于內(nèi)外網(wǎng)門戶系統(tǒng)的研究
        電子制作(2018年10期)2018-08-04 03:24:34
        亚洲中文字幕无码中文字| 国产极品嫩模大尺度在线播放| 日本女优五十路中文字幕| 亚洲日产国无码| 成人免费播放视频影院| 天天夜碰日日摸日日澡性色av| 女人扒开下面无遮挡| 精品少妇人妻成人一区二区| 色婷婷久色国产成人免费| 免费播放成人大片视频| 午夜性色一区二区三区不卡视频 | 中文精品久久久久中文| 国产一区二区三区观看视频| 精品奇米国产一区二区三区| 免费国产自拍在线观看| 国产精品欧美福利久久| 国产AV无码一区精品天堂 | 亚洲av精品一区二区| 国产精品女老熟女一区二区久久夜 | 久久久www成人免费无遮挡大片| 国产精品麻豆一区二区三区| 精品国产偷窥一区二区| 一本一本久久a久久精品综合麻豆| 免费va国产高清不卡大片| 99青青草视频在线观看| 香港三日本三级少妇三级视频| 亚洲午夜精品久久久久久人妖| 国产一区二区三区观看视频 | 人妻精品无码一区二区三区| 国产午夜精品美女裸身视频69| 国产丝袜长腿美臀在线观看| 国产av无码专区亚洲av蜜芽| 波多野结衣中文字幕在线视频| 国产精品高清亚洲精品| 日韩亚洲无吗av一区二区| 极品成人影院| 国产亚洲午夜精品| 亚洲性日韩一区二区三区| 亚洲日韩欧美一区、二区| 真正免费一级毛片在线播放| 一本大道加勒比东京热|