[微信開發_03]基本框架設計

 

奇蹟蛋的軟件架構如圖所示,主要有6個模塊。結合上一篇環境搭建中所描述的,系統主要與微信服務器、數據庫以及API服務器之間有交互,在這裏分別經過微信適配層、數據庫管理模塊、外部API適配層來作接口。php

 

這裏所畫的Servlet實際就是配置在微信公共帳號中的URL,這樣就把用戶的請求和咱的機器人關聯了起來。算法

 

一、微信適配層:用於解析和封裝微信消息。數據庫

二、主業務處理模塊:處理解析後的消息。裏面有幾個子模塊:json

Ø  Context:對話上下文模塊,相似於聊天記錄。人在交流的時候會基於以前的對話而創建相應的語境,而不是孤立的一問一答。所以,我針對每一個用戶創建一個惟一的會話表,做爲與該用戶對話的上下文,這樣機器人的回覆便再也不受限於用戶本次所發送的消息,而是與用戶對話的全部消息!api

Ø  Alogrithm:分詞算法(Word Segment Algorithm)是引用的新浪的分詞算法庫,經過外部API調用;天然語言處理算法(NLP Algorithm)裏面實現了主要的機器人聊天邏輯,當前設計的還比較簡陋。服務器

Ø  Extensible Module:預留的擴展模塊,之後能夠加入地理位置、圖片、音頻等消息的處理。微信

三、DAO模塊:數據訪問對象(DataAccess Objects),隔離業務邏輯和數據庫操做。架構

四、外部API模塊:經過url訪問來獲取使用第三方提供的API,好比天氣查詢、搜歌、分詞等。第三方返回的結果基本都是xml或json格式的,因此會用到公共模塊的xml和json解析方法。app

Ø  HTTP Service用於封裝url訪問接口,與第三方交互。url

Ø Word Segment Service:分詞算法,使用的sina的api,http://5.tbip.sinaapp.com/api.php?str=[sentence]&type=[json]

Ø Music Service:使用的百度音樂盒,http://box.zhangmen.baidu.com/x?op=12&count=1&title=[song]$$[singer]$$$$

Ø Weather Service:使用的車聯網的天氣服務,http://api.map.baidu.com/telematics/v3/weather?location=[city]&output=[json]&ak=[api]

上面url中用「[]」框起來的都是須要填入的參數。

五、Database Manager:數據庫管理模塊,主要是數據庫鏈接和操做接口。

六、公共接口:日誌、公共庫、xml和json解析。

 

不早了,先簡單寫下,明天補充完整。


謝謝關注奇蹟蛋~掃一下&調戲之

相關文章
相關標籤/搜索