国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MEAN架構(gòu)與圖數(shù)據(jù)庫(kù)的企業(yè)社交網(wǎng)絡(luò)平臺(tái)設(shè)計(jì)

2016-12-22 21:44石春菊
軟件導(dǎo)刊 2016年11期

石春菊

摘 要:從社交網(wǎng)絡(luò)發(fā)展現(xiàn)狀和企業(yè)需求出發(fā),設(shè)計(jì)了企業(yè)社交網(wǎng)絡(luò)平臺(tái)。對(duì)平臺(tái)功能進(jìn)行了劃分,從平臺(tái)易用性和易維護(hù)角度進(jìn)行架構(gòu)設(shè)計(jì),討論了基于MEAN架構(gòu)的系統(tǒng)實(shí)現(xiàn)模式。在此基礎(chǔ)上依據(jù)數(shù)據(jù)特點(diǎn),設(shè)計(jì)了圖數(shù)據(jù)庫(kù)存儲(chǔ)模型。

關(guān)鍵詞關(guān)鍵詞:企業(yè)社交網(wǎng)絡(luò);MEAN;MVC;REST服務(wù);Neo4j圖數(shù)據(jù)庫(kù)

DOIDOI:10.11907/rjdk.161967

中圖分類號(hào):TP319

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2016)011008202

0 引言

社交網(wǎng)絡(luò)平臺(tái)信息交流形成龐大數(shù)據(jù),對(duì)這些數(shù)據(jù)進(jìn)行分析和預(yù)測(cè),發(fā)現(xiàn)有價(jià)值的信息,使社交平臺(tái)根據(jù)用戶偏好,以主推特定廣告等方式受益。中國(guó)制造2025規(guī)劃提出,制造業(yè)要向智造業(yè)轉(zhuǎn)化,企業(yè)的轉(zhuǎn)化不僅需要CRM、ERP、SRM等相關(guān)軟件組合應(yīng)用,更多的是對(duì)資源優(yōu)化、流程優(yōu)化。資源優(yōu)化就包含企業(yè)社交關(guān)系的優(yōu)化。近年來,企業(yè)對(duì)社交網(wǎng)絡(luò)的需求越來越強(qiáng)烈[1]。企業(yè)通過分析和處理網(wǎng)絡(luò)中的大量數(shù)據(jù),整合消費(fèi)者關(guān)系、市場(chǎng)關(guān)系,并對(duì)企業(yè)供應(yīng)關(guān)系進(jìn)行分析,以優(yōu)化企業(yè)業(yè)務(wù)流程和有效制定市場(chǎng)策略。利用社交網(wǎng)絡(luò)理論,對(duì)企業(yè)網(wǎng)絡(luò)建模,為業(yè)務(wù)提供戰(zhàn)略性指導(dǎo),對(duì)供求關(guān)系、客戶關(guān)系、地域關(guān)系等建立對(duì)應(yīng)關(guān)系圖數(shù)據(jù)庫(kù),通過對(duì)圖數(shù)據(jù)庫(kù)的查詢、增加、修改和刪除,管理企業(yè)動(dòng)態(tài)交互性信息。利用網(wǎng)絡(luò)平臺(tái),企業(yè)關(guān)系網(wǎng)絡(luò)可對(duì)用戶管理、企業(yè)關(guān)系中的供求關(guān)系管理,以圖數(shù)據(jù)的形式展示企業(yè)關(guān)系、公布企業(yè)動(dòng)態(tài),使企業(yè)信息交互性更強(qiáng),消除企業(yè)內(nèi)部與外部信息不一致的情況,與員工分享工作任務(wù)和戰(zhàn)略決策,為企業(yè)推薦優(yōu)秀的合作伙伴。

1 系統(tǒng)總體設(shè)計(jì)

1.1 系統(tǒng)功能及流程

ENFORCE(企業(yè)社交網(wǎng)絡(luò)平臺(tái))系統(tǒng)用戶分為企業(yè)用戶和平臺(tái)管理員兩種角色,企業(yè)用戶分為認(rèn)證用戶和未認(rèn)證用戶。經(jīng)過身份驗(yàn)證的用戶,可以選擇企業(yè)并獲得該企業(yè)數(shù)據(jù),能夠?qū)@些數(shù)據(jù)進(jìn)行維護(hù)。未認(rèn)證用戶只能瀏覽這些數(shù)據(jù)。

企業(yè)管理員可進(jìn)行企業(yè)信息維護(hù)、員工維護(hù)、數(shù)據(jù)中心、企業(yè)展廳和信息交流5大功能管理。

企業(yè)信息維護(hù)指企業(yè)關(guān)系建立、查看、解除、發(fā)出關(guān)系申請(qǐng)、拒絕申請(qǐng)查看等信息維護(hù);員工維護(hù)功能包括查詢、增加、刪除企業(yè)員工;數(shù)據(jù)中心功能有企業(yè)關(guān)系圖展示、企業(yè)供應(yīng)關(guān)系展示、企業(yè)熱點(diǎn)圖展示;企業(yè)展廳主要展示企業(yè)生產(chǎn)、經(jīng)營(yíng)、證書、獲獎(jiǎng)等信息;信息交流平臺(tái)可提供企業(yè)員工內(nèi)的信息交流,也可提供企業(yè)間的信息交流。

平臺(tái)管理員同樣可實(shí)現(xiàn)5大功能,各部分功能主模塊與企業(yè)管理員相同。數(shù)據(jù)中心增加了爬蟲功能,將爬取的網(wǎng)絡(luò)公開數(shù)據(jù)進(jìn)行清洗、匹配、去重和格式化后顯示。企業(yè)管理員可以增、刪、改、查平臺(tái)上的所有企業(yè)和用戶,同時(shí)對(duì)優(yōu)秀廠商進(jìn)行推薦,具備郵件管理功能。

1.2 系統(tǒng)框架設(shè)計(jì)

系統(tǒng)使用者權(quán)限不同,界面不同,可操作內(nèi)容也不同,為滿足不同用戶群體登錄后實(shí)現(xiàn)所需功能,系統(tǒng)框架采用MEAN設(shè)計(jì),采用Java語言實(shí)現(xiàn)。由于企業(yè)關(guān)系網(wǎng)絡(luò)一般由許多以制造商為核心的星形網(wǎng)絡(luò)構(gòu)成,交互密切,為了更好地表現(xiàn)企業(yè)與企業(yè)、企業(yè)與員工的關(guān)系,數(shù)據(jù)庫(kù)采用Neo4j圖數(shù)據(jù)庫(kù)。

MEAN框架較為流行,它實(shí)現(xiàn)了MVC模式思想,將界面顯示和業(yè)務(wù)邏輯分離,利用模型化的開發(fā)思路優(yōu)化界面與服務(wù)關(guān)系,實(shí)現(xiàn)服務(wù)的復(fù)用性??赏ㄟ^控制器分發(fā)業(yè)務(wù)邏輯,根據(jù)不同用戶顯示不同界面,實(shí)現(xiàn)不同功能。將界面和業(yè)務(wù)邏輯分離簡(jiǎn)化了系統(tǒng)的后期維護(hù)。

AngularJS是前端開發(fā)JS框架,克服了HTML在構(gòu)建動(dòng)態(tài)網(wǎng)頁應(yīng)用上的不足,方便實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)的顯示和處理[2]?;贛VC模式, HTML是視圖,JS是控制器,通過數(shù)據(jù)視圖雙向綁定方式實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)處理,利用控制器實(shí)現(xiàn)服務(wù)處理。AngularJS通過bower安裝Bootstrap開源插件后,可方便實(shí)現(xiàn)html的前端顯示界面美化。Bootstrap是基于HTML、CSS、Javascript開發(fā)的,可適用多種設(shè)備,是快捷的Web前端開發(fā)框架。

ExpressJS和Node.JS共同實(shí)現(xiàn)Web應(yīng)用服務(wù)器端開發(fā),通過http發(fā)出請(qǐng)求,對(duì)返回的JSON數(shù)據(jù)進(jìn)行分析處理,將結(jié)果傳回前端Angularjs控制器,實(shí)現(xiàn)頁面動(dòng)態(tài)顯示。

為了公開服務(wù)接口,利用JAX-RS簡(jiǎn)化REST應(yīng)用實(shí)現(xiàn)服務(wù)處理?;贘AX-RS實(shí)現(xiàn)的框架應(yīng)用程序可以方便地部署到Tomcat上。

根據(jù)平臺(tái)中用到的數(shù)據(jù)特性,將單一、無關(guān)系連接的信息存于MySQL數(shù)據(jù)庫(kù),對(duì)存在關(guān)系的數(shù)據(jù)采用Neo4j數(shù)據(jù)庫(kù)存儲(chǔ)。Neo4j數(shù)據(jù)庫(kù)是非關(guān)系型數(shù)據(jù)庫(kù),以圖的形式存儲(chǔ)數(shù)據(jù),又稱為節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)具有各自的屬性,節(jié)點(diǎn)和節(jié)點(diǎn)之間可以建立關(guān)系,如職工節(jié)點(diǎn),它的屬性有姓名、地址、電話、郵箱、創(chuàng)建日期等屬性。企業(yè)節(jié)點(diǎn)有企業(yè)名稱、地址、商品、創(chuàng)建日期、郵箱、電話、傳真等,職工與企業(yè)建立歸屬關(guān)系。

2 MEAN架構(gòu)下ENFORCE系統(tǒng)實(shí)現(xiàn)

根據(jù)ENFORCE系統(tǒng)用戶特點(diǎn),考慮軟件代碼重用性,設(shè)計(jì)具有最小冗余的組織結(jié)構(gòu)。MVC模式是MEAN架構(gòu)中各層的主要實(shí)現(xiàn)模式,是基于請(qǐng)求——響應(yīng)模式的應(yīng)用方式。

2.1 視圖層模式

AngularJS框架實(shí)現(xiàn)了視圖層技術(shù),并利用HTML和JS實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。為了解決中文亂碼問題,需要在html頭部加入語句,在對(duì)應(yīng)的js中則通過創(chuàng)建一個(gè)Module對(duì)象實(shí)例來實(shí)現(xiàn)數(shù)據(jù)與模型之間的數(shù)據(jù)綁定。

2.2 業(yè)務(wù)處理層模式

業(yè)務(wù)處理通過MEAN架構(gòu)中的node.js實(shí)現(xiàn),采用Express應(yīng)用框架,其中app.js文件是啟動(dòng)文件,也就是Express執(zhí)行的入口文件,是一個(gè)總的路由接口。在app.js文件中,require用于加載express、path等模塊,以及routes路由文件夾下的所有js文件,通過app.use()實(shí)現(xiàn)路由控制。在具體的路由文件中,router.get(路由名, function(req,res,next){})生成一個(gè)路由實(shí)例來捕獲訪問主頁的GET請(qǐng)求,導(dǎo)出這個(gè)路由并在app.js中通過app.use()加載路由,當(dāng)訪問某個(gè)頁面時(shí)調(diào)用相應(yīng)的路由并將結(jié)果返回到瀏覽器。

服務(wù)定位器:在ENFORCE系統(tǒng)中的routes文件夾下,所有的js文件由該系統(tǒng)的路由實(shí)現(xiàn)。routes文件夾由用戶創(chuàng)建,便于管理路由文件。Express封裝了多種http請(qǐng)求方式[3],常用的是get和post,app.get()和app.post(),一般有兩個(gè)參數(shù):①請(qǐng)求的路徑;②處理請(qǐng)求的回調(diào)函數(shù)?;卣{(diào)函數(shù)中的參數(shù)req和res,代表請(qǐng)求信息和響應(yīng)信息,通過處理req.query或req.params獲得前端傳遞進(jìn)來的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行封裝后通過http.request向后臺(tái)服務(wù)發(fā)出請(qǐng)求。此請(qǐng)求符合超文本傳輸協(xié)議,在回調(diào)函數(shù)中可以通過捕捉狀態(tài)碼,判斷處理返回的內(nèi)容。請(qǐng)求方法一般有GET、POST、PUT、DELETE,分別對(duì)應(yīng)資源中的查詢、修改、增加、刪除4個(gè)操作。HTTP與后臺(tái)交互時(shí)需傳遞URL地址,URL地址用于描述一個(gè)網(wǎng)絡(luò)資源。通過回調(diào)函數(shù)返回JSON格式數(shù)據(jù),并將其返回到前臺(tái)控制端,最終用于前臺(tái)數(shù)據(jù)顯示。

服務(wù)處理:利用JAX-RS簡(jiǎn)化REST服務(wù)開發(fā),REST服務(wù)基于HTTP協(xié)議[4]。通過JAX-RS標(biāo)注來實(shí)現(xiàn)相應(yīng)的Web資源,一個(gè)POJO java類封裝為Web資源,通過http請(qǐng)求中的GET、POST、PUT、DELETE動(dòng)作,對(duì)應(yīng)于REST服務(wù)中的查詢資源、修改資源、增加資源、刪除資源。通過服務(wù)接口實(shí)現(xiàn)服務(wù)的重用性。@Path標(biāo)注資源或者方法的相對(duì)路徑,@Produces、@Consumes標(biāo)注方法支持或返回MIME類型[5]。

2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)

根據(jù)數(shù)據(jù)交互性,系統(tǒng)采用Neo4j圖數(shù)據(jù)庫(kù)和MySQL關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),利用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)獨(dú)立性較強(qiáng)的數(shù)據(jù)。由于關(guān)系型數(shù)據(jù)庫(kù)不支持類似“主機(jī)廠的供應(yīng)商的供應(yīng)商”這種復(fù)雜數(shù)據(jù)庫(kù)查詢,所以對(duì)交互性、復(fù)雜性并且動(dòng)態(tài)變化的數(shù)據(jù)利用圖數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。圖數(shù)據(jù)庫(kù)能夠高效存儲(chǔ)、管理、更新數(shù)據(jù)的內(nèi)在關(guān)系,并可進(jìn)行復(fù)雜的多層操作[6]。圖數(shù)據(jù)庫(kù)的基本要素是節(jié)點(diǎn)、屬性和關(guān)系[7]。節(jié)點(diǎn)代表實(shí)體且包含多個(gè)屬性,關(guān)系連接對(duì)應(yīng)的節(jié)點(diǎn),用于表達(dá)對(duì)象之間的關(guān)系。圖數(shù)據(jù)庫(kù)的連接操作只需要一個(gè)起始節(jié)點(diǎn)就可實(shí)現(xiàn)查詢功能。圖數(shù)據(jù)庫(kù)查詢語言是Cypher,它具有靈活性強(qiáng)、表達(dá)能力強(qiáng)的特點(diǎn),本系統(tǒng)中,企業(yè)與企業(yè)間的供應(yīng)關(guān)系、企業(yè)員工的隸屬關(guān)系、企業(yè)之間的多供應(yīng)商關(guān)系、產(chǎn)品的部件依屬關(guān)系、企業(yè)資質(zhì)等均采用圖數(shù)據(jù)庫(kù)存儲(chǔ)。

如圖2所示,雙格上部為標(biāo)簽,下部為屬性,企業(yè)以名稱作為索引,員工以用戶登錄名為索引,并保證是唯一的。節(jié)點(diǎn)之間的關(guān)系以星形形式顯示。

3 結(jié)語

MEAN架構(gòu)將視圖表現(xiàn)層、控制層和模型層完全分離,利用JS和CSS完美結(jié)合,建立標(biāo)準(zhǔn)化的客戶端界面組件。通過控制層和模型層實(shí)現(xiàn)HTTP協(xié)議數(shù)據(jù)傳輸,將界面和邏輯處理分離,使用戶有更好的體驗(yàn)。通過封裝化的控制器簡(jiǎn)化了程序員設(shè)計(jì)和處理邏輯工作量。

參考文獻(xiàn):

[1] 楊濤.企業(yè)社交網(wǎng)絡(luò)的理論及實(shí)踐研究[J].中國(guó)高新技術(shù)企業(yè),2015(17):162163.

[2] 陳濤.基于AngularJS和Bootstrap聊天室的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2015(9):9192.

[3] [美]ETHAN BROWN.Node與Express開發(fā)[M].北京:人民郵電出版社,2015.

[4] 黃華東.Java環(huán)境下REST風(fēng)格Web服務(wù)的開發(fā)方法[J].科技信息,2008(15):6869.

[5] 謝玉開.基于JAXRS的面向資源架構(gòu)應(yīng)用研究[D].杭州:浙江理工大學(xué),2011.

[6] 王余藍(lán).圖形數(shù)據(jù)庫(kù)NEO4J與關(guān)系數(shù)據(jù)庫(kù)的比較研究[J].現(xiàn)代電子技術(shù),2012(20):7779.

[7] 廖理.基于Neo4j圖數(shù)據(jù)庫(kù)的時(shí)空數(shù)據(jù)存儲(chǔ)[J].信息安全與技術(shù),2015(5):4345.

(責(zé)任編輯:杜能鋼)