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

        ?

        基于JADE的移動(dòng)端個(gè)人服務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2020-03-18 01:39:10姜慶彬涂志瑩
        關(guān)鍵詞:發(fā)布者使用者消息

        姜慶彬, 涂志瑩

        (哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 哈爾濱 150001)

        0 引 言

        隨著科技的迅速發(fā)展和生活水平的不斷提高,人與人之間的交互更加密切和頻繁,在各種社交場(chǎng)合中經(jīng)常出現(xiàn)需要迅速的了解其他人的個(gè)人信息的情況,尤其是在現(xiàn)實(shí)場(chǎng)景中經(jīng)常會(huì)出現(xiàn)“機(jī)會(huì)式社交”,即某幾個(gè)人僅存在短暫交集的需要,在很短的時(shí)間中需要互相傳遞信息,過(guò)了這段時(shí)間之后,就不需要再了解彼此,甚至可能再也不見(jiàn)。例如:在一個(gè)國(guó)際會(huì)議的場(chǎng)景中,大家彼此不認(rèn)識(shí),也沒(méi)有任何的社交聯(lián)系,會(huì)議結(jié)束后很可能不會(huì)再聯(lián)系了,但是在會(huì)議上需要知曉其他人的研究領(lǐng)域、研究?jī)?nèi)容等重要信息;再例如:在醫(yī)院這個(gè)場(chǎng)景中,醫(yī)生與每一個(gè)病人只有很短的交集,病人需要快速的將過(guò)去的病例信息傳遞給醫(yī)生,幫助醫(yī)生迅速了解病人的情況并對(duì)癥診斷,診斷結(jié)束后病人和醫(yī)生很可能不會(huì)有任何交集。因此,研究新型的個(gè)人信息交互方式具有重要的應(yīng)用及市場(chǎng)價(jià)值。

        移動(dòng)端個(gè)人服務(wù)系統(tǒng)是將機(jī)會(huì)式社交中短時(shí)間傳遞信息的行為作為個(gè)人服務(wù),主動(dòng)分享信息的一方作為服務(wù)發(fā)布者,接收分享信息的一方作為服務(wù)使用者,使用JADE框架運(yùn)行個(gè)人服務(wù)以及在服務(wù)發(fā)布者和服務(wù)使用者之間實(shí)現(xiàn)服務(wù)內(nèi)容傳遞[1]。系統(tǒng)分為兩個(gè)部分:Android客戶端和服務(wù)器后端,服務(wù)使用者和服務(wù)發(fā)布者要在Android客戶端進(jìn)行服務(wù)下載、編輯服務(wù)內(nèi)容、服務(wù)注冊(cè)、服務(wù)查詢、獲取服務(wù)內(nèi)容、查看分享者等操作,相關(guān)的數(shù)據(jù)層支持由服務(wù)器后端來(lái)完成。

        1 移動(dòng)端個(gè)人服務(wù)消息傳遞方式設(shè)計(jì)

        1.1 基于JADE的個(gè)人服務(wù)發(fā)布與使用結(jié)構(gòu)設(shè)計(jì)

        移動(dòng)端個(gè)人服務(wù)發(fā)布者與使用者之間的消息傳遞使用JADE框架來(lái)實(shí)現(xiàn)。JADE是基于對(duì)等通信體系結(jié)構(gòu)的分布式多agent應(yīng)用程序開發(fā)的中間件框架[2]。 JADE框架是基于agent實(shí)現(xiàn)的,允許每個(gè)agent程序動(dòng)態(tài)發(fā)現(xiàn)其他agent程序,并通過(guò)混合型p2p的方式與之通信。由于agent具有獨(dú)立性,即每個(gè)agent程序獨(dú)立運(yùn)行,所以可以在個(gè)人服務(wù)用戶登錄Android客戶端的同時(shí)根據(jù)該用戶的信息運(yùn)行一個(gè)唯一的agent程序,向其他個(gè)人服務(wù)用戶發(fā)送服務(wù)請(qǐng)求或服務(wù)內(nèi)容[3];考慮到個(gè)人服務(wù)用戶并不像企業(yè)級(jí)服務(wù)那樣穩(wěn)定,個(gè)人服務(wù)的發(fā)布者和使用者在發(fā)布服務(wù)和使用服務(wù)時(shí)可能受到時(shí)間、地點(diǎn)等影響,無(wú)法按時(shí)進(jìn)行服務(wù)內(nèi)容的傳遞[4],而JADE框架下agent之間的異步消息通訊方法可以很好地解決這個(gè)問(wèn)題,每個(gè)agent接收到其他agent傳來(lái)的信息時(shí)不會(huì)立刻響應(yīng),而是根據(jù)自身的邏輯判斷動(dòng)態(tài)地響應(yīng)。在Android客戶端中,使用JADE框架可以為每一個(gè)移動(dòng)端服務(wù)用戶建立一個(gè)agent節(jié)點(diǎn),服務(wù)發(fā)布者和服務(wù)使用者登錄時(shí)會(huì)加入p2p網(wǎng)絡(luò),系統(tǒng)在服務(wù)器端也建立一個(gè)manager-agent節(jié)點(diǎn)作為各個(gè)agent的管理中心和混合型p2p網(wǎng)絡(luò)的中心節(jié)點(diǎn),專門用于記錄移動(dòng)端用戶的服務(wù)節(jié)點(diǎn)信息和服務(wù)發(fā)布情況,相關(guān)結(jié)構(gòu)圖和操作步驟如圖1所示。

        圖1 系統(tǒng)agent結(jié)構(gòu)與用戶操作步驟圖

        使用JADE框架實(shí)現(xiàn)agent之間傳遞消息時(shí)需要設(shè)計(jì)自定義Behaviour類,發(fā)送消息時(shí)構(gòu)建DataSend類型的ACLMessage,滿足JADE的發(fā)送條件時(shí)調(diào)用agent.send方法將消息發(fā)送給指定接受者agent,如果不指定接受者將會(huì)發(fā)送到manager-agent,由其進(jìn)一步廣播給所有agent;指定接受者agent在Behaviour類中使用agent.receive方法接收Serializable類型的ACLMessage,根據(jù)個(gè)人服務(wù)消息格式對(duì)ACLMessage進(jìn)行解析。

        1.2 個(gè)人服務(wù)消息格式設(shè)計(jì)

        JADE中agent之間的通信使用ACLMessage類作為載體,通信時(shí)記錄了發(fā)送者agent信息、接受者agent信息和通信內(nèi)容,本系統(tǒng)中需要對(duì)通信內(nèi)容的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。個(gè)人服務(wù)消息傳輸?shù)膬?nèi)容可以是服務(wù)請(qǐng)求消息、服務(wù)反饋消息、服務(wù)注冊(cè)消息以及服務(wù)解除消息,其中服務(wù)請(qǐng)求消息和服務(wù)反饋消息均需要記錄服務(wù)發(fā)布者信息和服務(wù)使用者信息,服務(wù)請(qǐng)求信息還需要記錄服務(wù)請(qǐng)求參數(shù),服務(wù)反饋消息還需要記錄服務(wù)結(jié)果,服務(wù)注冊(cè)消息和服務(wù)解除消息是發(fā)送給manager-agent的,所以均只需要記錄服務(wù)發(fā)布者信息。除此之外,這四類消息還要記錄服務(wù)標(biāo)識(shí)信息,包括服務(wù)名、服務(wù)id、服務(wù)簡(jiǎn)介等。發(fā)送者agent使用MessageContent類表示服務(wù)信息,通信時(shí)將服務(wù)信息注入MessageContent類,使用GSON框架的toJson方法將其轉(zhuǎn)換成JSON對(duì)象,賦值給ACLMessage的通信內(nèi)容參數(shù)。接受者agent接收到ACLMessage后,讀取其中通信內(nèi)容參數(shù),將其使用fromJson方法反序列化成MessageContent對(duì)象,讀取其中信息,判斷其屬于哪一種個(gè)人服務(wù)消息,然后進(jìn)行不同的操作。

        2 系統(tǒng)設(shè)計(jì)

        系統(tǒng)整體技術(shù)架構(gòu)如圖2所示,其中左側(cè)是服務(wù)器后端框架,后端使用SpringMVC框架作為應(yīng)用層框架,Controller通過(guò)DispactcherServlet與Android客戶端前端界面進(jìn)行交互,同時(shí)又通過(guò)數(shù)據(jù)操作處理組件與底層的mysql持久化數(shù)據(jù)庫(kù)以及redis緩存數(shù)據(jù)庫(kù)進(jìn)行文件和數(shù)據(jù)庫(kù)的交互[5]。Android客戶端實(shí)現(xiàn)移動(dòng)端個(gè)人服務(wù)平臺(tái)的基礎(chǔ)界面和服務(wù)界面,服務(wù)加載組件使用文件操作工具FileUtils和Dalvik類加載機(jī)制加載服務(wù)鏡像,并與個(gè)人服務(wù)邏輯組件密切交互。JADE框架同時(shí)存在與這兩個(gè)子系統(tǒng),用來(lái)服務(wù)間的消息傳輸; manager-agent包含已發(fā)布服務(wù)的管理組件,與redis中的服務(wù)緩存交互數(shù)據(jù),個(gè)人服務(wù)平臺(tái)的user-agent作為移動(dòng)端用戶的agent啟動(dòng),包含用戶緩存加載組件,對(duì)移動(dòng)端用戶信息和服務(wù)緩存操作;Agent之間通過(guò)JADE框架提供的Behavior類和ACLMessage類傳輸服務(wù)信息。

        2.1 Android客戶端設(shè)計(jì)

        系統(tǒng)Android客戶端使用Android SDK 27作為開發(fā)版本,兼容了Android6.0以上的系統(tǒng),使用AndroidStudio作為開發(fā)工具。移動(dòng)端個(gè)人服務(wù)系統(tǒng)客戶端需要實(shí)現(xiàn)的功能模塊劃分如下:

        (1)賬號(hào)管理模塊:系統(tǒng)用戶需要使用賬號(hào)管理模塊提供的功能登錄和注冊(cè),并且允許用戶修改自己的個(gè)人信息,在服務(wù)的發(fā)布與使用過(guò)程中使用;

        (2)服務(wù)發(fā)布模塊:服務(wù)發(fā)布者通過(guò)此模塊發(fā)布服務(wù),將服務(wù)發(fā)布信息發(fā)送給manager-agent供給服務(wù)使用者查詢;

        (3)服務(wù)運(yùn)行模塊:服務(wù)發(fā)布者發(fā)布個(gè)人服務(wù)后,個(gè)人服務(wù)需要運(yùn)行在發(fā)布者agent中,等待服務(wù)使用者獲取服務(wù)結(jié)果;

        (4)服務(wù)查詢模塊:服務(wù)使用者使用此模塊在manager-agent查詢已發(fā)布的服務(wù);

        (5)服務(wù)使用模塊:獲取到服務(wù)發(fā)布者信息后,服務(wù)使用者使用此模塊使用p2p方式從服務(wù)發(fā)布者處直接獲取服務(wù)結(jié)果。

        圖2 系統(tǒng)整體技術(shù)架構(gòu)圖

        對(duì)移動(dòng)端agent服務(wù)交互的類模型設(shè)計(jì)如下,UserAgent類會(huì)在用戶登錄成功時(shí)啟動(dòng),在JADE框架生成的container中,自動(dòng)調(diào)用setup方法初始化agent。UserAgent依賴于4個(gè)類ParticipantsManager、ServiceListener、ServiceSpeaker和MessageContent,其中前3個(gè)類都間接繼承自Behavior類,為agent之間消息傳輸提供支持,ParticipantsManager類用于實(shí)時(shí)更新移動(dòng)端服務(wù)使用者列表,ServiceListener類用于實(shí)時(shí)監(jiān)聽移動(dòng)端服務(wù)使用者發(fā)來(lái)的服務(wù)請(qǐng)求,ServiceSpeaker類用于移動(dòng)端服務(wù)發(fā)布者向服務(wù)使用者返回服務(wù)結(jié)果;MessageContent是一個(gè)服務(wù)消息的實(shí)體類,標(biāo)注了服務(wù)消息的類型、發(fā)布者和使用者的信息、服務(wù)內(nèi)容、服務(wù)參數(shù)、服務(wù)結(jié)果等信息,agent之間會(huì)傳輸MessageContent的json格式。詳細(xì)類圖如圖3所示。

        圖3 移動(dòng)端agent服務(wù)交互類模型設(shè)計(jì)

        2.2 服務(wù)器后端設(shè)計(jì)

        服務(wù)器后端起到兩個(gè)作用:一個(gè)是manager-agent作為管理中心,agent需要運(yùn)行在服務(wù)器端,保證其可以穩(wěn)定運(yùn)行并作為混合型p2p的中心節(jié)點(diǎn),使得只要服務(wù)器正在運(yùn)行,移動(dòng)端服務(wù)用戶就可以接入p2p網(wǎng)絡(luò)進(jìn)行服務(wù)的發(fā)布和使用;另一個(gè)作用是移動(dòng)端服務(wù)用戶的用戶信息、服務(wù)發(fā)布與使用情況需要記錄,所以需要后端提供數(shù)據(jù)層持久化支持,本系統(tǒng)使用Springmvc+mysql作為web service技術(shù)框架。SpringMVC是常用的服務(wù)器端框架,具有穩(wěn)定性和易維護(hù)性。

        服務(wù)器后端的功能模塊:

        (1)服務(wù)注冊(cè)模塊:manager-agent接收到服務(wù)發(fā)布者的服務(wù)發(fā)布消息后,使用服務(wù)注冊(cè)模塊記錄服務(wù)發(fā)布信息;

        (2)服務(wù)查詢模塊:manager-agent向服務(wù)使用者返回已發(fā)布服務(wù)信息;

        (3)服務(wù)數(shù)據(jù)統(tǒng)計(jì)模塊:服務(wù)器后端對(duì)移動(dòng)端服務(wù)發(fā)布者和服務(wù)使用者的服務(wù)發(fā)布和使用情況進(jìn)行統(tǒng)計(jì);

        (4)服務(wù)權(quán)限控制模塊:允許服務(wù)發(fā)布者指定只有某些用戶才能使用其發(fā)布的服務(wù)。

        3 系統(tǒng)中幾種個(gè)人服務(wù)的實(shí)現(xiàn)

        個(gè)人服務(wù)必須至少擁有一個(gè)發(fā)布者和一個(gè)使用者,并且在實(shí)際的應(yīng)用場(chǎng)景中,還會(huì)經(jīng)常出現(xiàn)一個(gè)發(fā)布者發(fā)布的服務(wù)供多個(gè)使用者使用,甚至在一個(gè)服務(wù)場(chǎng)景中,每一個(gè)用戶既是服務(wù)發(fā)布者也是服務(wù)使用者,在使用其他用戶提供的服務(wù)時(shí)也在向其他用戶提供服務(wù)[6]。前者可以簡(jiǎn)稱為一對(duì)多場(chǎng)景服務(wù),后者可以簡(jiǎn)稱為多對(duì)多場(chǎng)景服務(wù)。系統(tǒng)實(shí)現(xiàn)了分享通訊錄服務(wù)和快捷討論組服務(wù)。分享通訊錄是一個(gè)一對(duì)多場(chǎng)景服務(wù),移動(dòng)端獲取Android讀寫通訊錄的權(quán)限,服務(wù)發(fā)布者預(yù)先設(shè)置分享的通訊錄內(nèi)容,不指定服務(wù)使用者,以便所有滿足權(quán)限的用戶均可以使用服務(wù),獲取到其分享的通訊錄內(nèi)容,選擇性的添加到自己的手機(jī)上??旖萦懻摻M服務(wù)是一個(gè)多對(duì)多場(chǎng)景服務(wù),每個(gè)人都可以看到其他人的發(fā)言,并且自己可以發(fā)言給別人看。為了避免混亂,多對(duì)多場(chǎng)景服務(wù)的實(shí)現(xiàn)讓一個(gè)服務(wù)發(fā)布者作為總發(fā)布者,其他服務(wù)參與者都作為服務(wù)使用者,只有當(dāng)其發(fā)言時(shí)才作為服務(wù)發(fā)布者,調(diào)用服務(wù)發(fā)布模塊操作。

        4 結(jié)束語(yǔ)

        通過(guò)對(duì)JADE框架技術(shù)在移動(dòng)端服務(wù)消息傳遞的研究,使用軟件設(shè)計(jì)方法,設(shè)計(jì)并實(shí)現(xiàn)了移動(dòng)端個(gè)人服務(wù)系統(tǒng),該系統(tǒng)運(yùn)行在Android設(shè)備上,允許用戶在其中發(fā)布和使用個(gè)人服務(wù)。整體系統(tǒng)操作簡(jiǎn)單,功能清晰,為用戶提供了一種新型的個(gè)人服務(wù)使用方式,并且易于維護(hù)和擴(kuò)展。

        猜你喜歡
        發(fā)布者使用者消息
        “法定許可”情況下使用者是否需要付費(fèi)
        一張圖看5G消息
        新型拼插休閑椅,讓人與人的距離更近
        好日子(2018年5期)2018-05-30 16:24:04
        基于NDN的高效發(fā)布/訂閱系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        廣告發(fā)布者的著作權(quán)審查義務(wù)問(wèn)題研究
        抓拍神器
        加權(quán)映射匹配方法的站內(nèi)搜索引擎設(shè)計(jì)
        消息
        消息
        消息
        日韩中文字幕在线丰满| 免费毛片视频网站| 久久国产A∨一二三| 国产人妖在线观看一区二区三区| 天天综合网网欲色| 日本不卡一区二区三区在线| 国产精品高清视亚洲乱码有限公司| 中文字幕精品乱码一区| 国产日本精品视频一区二区| 蜜桃视频无码区在线观看| 夜夜综合网| 蜜臀av一区二区三区精品| 国产人妻熟女高跟丝袜| 久久久无码人妻精品一区| 国产精品青草视频免费播放| 亚洲精品二区中文字幕| 亚洲国产精一区二区三区性色 | 日本av一区二区三区在线| 久久精品国产色蜜蜜麻豆| 成熟人妻av无码专区| 国产欧美一区二区成人影院| 亚洲精品中文字幕乱码人妻| 亚洲av综合国产av日韩| 久久夜色精品国产| 人妻无码在线免费| 中文字幕乱码人妻在线| 欧美丰满熟妇bbb久久久| 亚洲国产精品尤物yw在线观看| 超级少妇一区二区三区| 国产精品女同一区二区免| 国产av久久久久精东av| 天堂网在线最新版www中文网| 国产女主播强伦视频网站| 户外精品一区二区三区| 丰满熟女高潮毛茸茸欧洲视频 | 亚洲高清精品一区二区| 内射干少妇亚洲69xxx| 日产精品久久久久久久蜜臀| 日本一区二区三区在线| 国产成年人毛片在线99| 亚洲国产精品久久电影欧美 |