摘 要:隨著Facebook、Twitter等社交服務(wù)在全球范圍內(nèi)的興起,社交網(wǎng)絡(luò)服務(wù)進(jìn)入了急速發(fā)展的階段。互聯(lián)網(wǎng)的社交服務(wù)的發(fā)展與時俱進(jìn),發(fā)展迅速。通知是一個具有高度社會化屬性的事物,是人與人之間傳達(dá)消息的一個重要手段,其本身就含有了社交屬性。為了更好的管理通知,以及通過通知包含的社交屬性達(dá)到社交目的,通知領(lǐng)域的垂直型社交網(wǎng)絡(luò)的出現(xiàn)顯得尤為必要。
關(guān)鍵詞:社會化網(wǎng)絡(luò)服務(wù);通知;垂直型社交網(wǎng)絡(luò)
中圖分類號:TP393.09
本項目是一個通知領(lǐng)域的垂直型社交網(wǎng)絡(luò)服務(wù)。利用灰斗篷,用戶可以一站式的管理自己收到與發(fā)出的通知,并能通過用戶間的關(guān)系,進(jìn)行在線交流。作為通知的發(fā)送者,用戶可以發(fā)送普通文本、會議以及聚會三種類型的通知給其特定的聯(lián)系人或聯(lián)系人組;作為通知的接收者,用戶可以對通知進(jìn)行瀏覽、評論以及標(biāo)記已讀,幫助發(fā)送者及時了解通知的傳達(dá)效果。系統(tǒng)會通過站內(nèi)通知與郵件通知等方式提醒用戶最近的通知動態(tài),讓用戶不錯過關(guān)于其通知的任何信息。用戶可以對其聯(lián)系人進(jìn)行管理,例如添加、刪除、分組,這樣形成的各種社交圈,可以將信息有效的區(qū)隔開來。
1 相關(guān)技術(shù)
本系統(tǒng)使用了幾種當(dāng)下非常流行且成熟的技術(shù),并將這些技術(shù)有機(jī)地結(jié)合在了一起。
1.1 MySQL正如MySQL官方網(wǎng)站所宣傳的那樣,MySQL是當(dāng)今世界上最流行的開源數(shù)據(jù)庫。MySQL一開始以成本低,穩(wěn)定性高,性能好在中小型應(yīng)用中廣泛流行,目前,很多大型應(yīng)用也選擇了MySQL,Google,F(xiàn)acebook,百度等公司均使用了MySQL[1]。本系統(tǒng)使用MySQL作為關(guān)系數(shù)據(jù)庫,負(fù)責(zé)數(shù)據(jù)的持久化工作。
1.2 JavaScript和jQuery。JavaScript最初是一種運(yùn)行在客戶端的腳本語言,常用在操作HTML DOM(文檔對象模型)上,現(xiàn)在,JavaScript也可以運(yùn)行在服務(wù)端了,Node.js就是一種流行的服務(wù)器端JavaScript環(huán)境[2]。
jQuery是當(dāng)下最流行的JavaScript框架之一。它是一套跨瀏覽器的庫,簡化了開發(fā)人員對HTML DOM的操作和跨瀏覽器的工作。本系統(tǒng)大量使用了jQuery,以增加網(wǎng)頁的交互性。
1.3 Spring framework 3。Spring是Java平臺的一個開源的全功能棧的框架。Spring提供了這樣一些特性:使用依賴注入實現(xiàn)了控制反轉(zhuǎn)(IoC)[3]。使得應(yīng)用程序中的各個組件間的耦合度大大降低;提供了優(yōu)秀的,支持聲明式(Declarative)的事務(wù)管理器;以資源容器的方式和其他框架(如Hibernate)集成;優(yōu)秀的面向切面編程(AOP)框架;本系統(tǒng)使用Spring構(gòu)建,使得系統(tǒng)的各個層級耦合度更低,并且大大降低了開發(fā)成本。
2 需求分析
2.1功能需求分析。本項目的初衷是幫助人們更好地管理通知并且圍繞通知中產(chǎn)生的互動而進(jìn)行社交活動,因此,系統(tǒng)的主要模塊是為通知和社交兩大功能而服務(wù)的。經(jīng)分析,用戶模塊的功能有:搜索:可以根據(jù)用戶的姓名或者注冊郵箱搜索用戶、修改個人資料:修改賬戶密碼以及姓名等資料。通知模塊應(yīng)有以下功能:瀏覽通知:瀏覽收到的通知,并可將已讀狀態(tài)反饋給發(fā)送者;發(fā)送通知:發(fā)送通知給指定的聯(lián)系人或聯(lián)系人組,通知類型有普通文本、會議以及聚會三種。其中會議通知包含時間、地點(diǎn)屬性,聚會通知包含時間、地點(diǎn)、活動、經(jīng)費(fèi)屬性,會議和聚會通知的地點(diǎn)可以在地圖上標(biāo)記。另外,所有通知都可以選擇隱藏接受者名單;評論通知:用戶可以對某個通知進(jìn)行評論,也可以對其他用戶的評論進(jìn)行回復(fù)。所有的評論可以被設(shè)定為「悄悄話」,被設(shè)定為悄悄話的評論只能被通知的發(fā)送者或回復(fù)的對象所見;刪除通知:用戶可以刪除自己發(fā)送的通知。聯(lián)系人模塊應(yīng)有以下功能:添加聯(lián)系人:添加其他用戶為自己的聯(lián)系人;刪除聯(lián)系人:刪除已有的聯(lián)系人;聯(lián)系人分組:將聯(lián)系人分組。首頁時間線(Timeline)模塊應(yīng)有以下功能:瀏覽時間線:首頁時間線包含了用戶關(guān)注的所有動態(tài),包括用戶收到的所有通知,以及隨這些通知產(chǎn)生的所有動態(tài);提醒模塊可以讓用戶不錯過重要的信息,應(yīng)有以下功能:站內(nèi)提醒:站內(nèi)提醒將會在站內(nèi)頁面的顯著位置提醒用戶未處理的聯(lián)系人等信息;郵件提醒:郵件提醒將會以Email的形式提醒用戶有未讀通知等信息。以上模塊全部屬于前臺模塊,即普通用戶可以訪問的模塊。為了使得整個系統(tǒng)內(nèi)的信息可控,管理后臺是必不可少的一部分。后臺應(yīng)擁有用戶管理、通知管理、評論管理三大模塊。
2.2 可行性分析。SS2H(Spring、Struts 2與Hibernate的組合)是一種Java企業(yè)級開發(fā)的解決方案[4]。相對企業(yè)級應(yīng)用,灰斗篷這種互聯(lián)網(wǎng)應(yīng)用的業(yè)務(wù)邏輯相對簡單,所以,使用SS2H可以很好的處理系統(tǒng)的業(yè)務(wù)邏輯方面的工作。而想對于企業(yè)級應(yīng)用來說,互聯(lián)網(wǎng)應(yīng)用的特點(diǎn)是數(shù)據(jù)量大,并發(fā)高。MySQL是一種流行的開源關(guān)系型數(shù)據(jù)庫,很多成功的互聯(lián)網(wǎng)應(yīng)用,例如百度貼吧,F(xiàn)acebook等等,因此選擇了MySQL作為主要的關(guān)系數(shù)據(jù)庫,解決了大數(shù)據(jù)量儲存的問題。高并發(fā)帶來的性能問題可以用反向代理(Reverse Proxy)技術(shù)來解決,在nginx后啟動多個Web服務(wù)器實例。當(dāng)訪問量增大之后,還可以使用redis等工具提高網(wǎng)站的整體性能。
3 總體設(shè)計
3.1 設(shè)計實現(xiàn)的主要目標(biāo)。本系統(tǒng)設(shè)計的主要目標(biāo)是利用互聯(lián)網(wǎng)給用戶提供更好的通知管理體驗,并圍繞通知進(jìn)行在線社交。
3.2 功能框架。普通用戶的功能如圖1所示。
管理員用戶除了擁有普通用戶的全部功能以外,還有一些后臺管理的功能。
3.3 功能模塊設(shè)計。根據(jù)需求分析,系統(tǒng)前臺可以分為用戶模塊、通知模塊、聯(lián)系人模塊、時間線模塊和提醒模塊;系統(tǒng)后臺可以分為用戶管理模塊、通知管理模塊和評論管理模塊。
用戶模塊:搜索:可以根據(jù)用戶的姓名或者注冊郵箱搜索用戶;修改個人資料:修改賬戶密碼以及姓名等資料。通知模塊:瀏覽通知:瀏覽收到的通知,并可將已讀狀態(tài)反饋給發(fā)送者;發(fā)送通知:發(fā)送通知給指定的聯(lián)系人或聯(lián)系人組,通知類型有普通文本、會議以及聚會三種。其中會議通知包含時間、地點(diǎn)屬性,聚會通知包含時間、地點(diǎn)、活動、經(jīng)費(fèi)屬性,會議和聚會通知的地點(diǎn)可以在地圖上標(biāo)記。另外,所有通知都可以選擇隱藏接受者名單;評論通知:用戶可以對某個通知進(jìn)行評論,也可以對其他用戶的評論進(jìn)行回復(fù)。所有的評論可以被設(shè)定為「悄悄話」,被設(shè)定為悄悄話的評論只能被通知的發(fā)送者或回復(fù)的對象所見;刪除通知:用戶可以刪除自己發(fā)送的通知。聯(lián)系人模塊:添加聯(lián)系人:添加其他用戶為自己的聯(lián)系人;刪除聯(lián)系人:刪除已有的聯(lián)系人;聯(lián)系人分組:將聯(lián)系人分組。首頁時間線模塊:瀏覽時間線:首頁時間線包含了用戶關(guān)注的所有動態(tài),包括用戶收到的所有通知,以及隨這些通知產(chǎn)生的所有動態(tài);除了這幾個主要的模塊之外,還有一些小模塊可以幫助用戶獲得更好的體驗。提醒模塊:站內(nèi)提醒:站內(nèi)提醒將會在站內(nèi)頁面的顯著位置提醒用戶未處理的聯(lián)系人等信息;郵件提醒:郵件提醒將會以Email的形式提醒用戶有未讀通知等信息。用戶管理模塊:修改用戶資料:修改用戶的密碼、姓名等資料;鎖定用戶:鎖定指定用戶,被鎖定的用戶不能做任何操作。通知管理模塊:刪除通知:刪除指定的通知。評論管理模塊:刪除評論:刪除指定的評論。
4 系統(tǒng)實現(xiàn)的流程圖
系統(tǒng)前臺的流程圖如圖2所示。
5 結(jié)束語
對于基于Java的通知領(lǐng)域垂直型社交網(wǎng)絡(luò)的設(shè)計與實現(xiàn)的過程中,閱讀了很多相關(guān)資料,了解到了社交網(wǎng)絡(luò)和垂直型社交網(wǎng)絡(luò)的歷史、現(xiàn)狀和發(fā)展趨勢。在為整個系統(tǒng)編碼時,對Struts 2、Spring、Hibernate這些常用框架有了新的理解,還收獲了一些非常優(yōu)秀的繪圖和排版工具。成功的互聯(lián)網(wǎng)產(chǎn)品除了要有技術(shù)基礎(chǔ)之外,還需要擁有良好的設(shè)計和運(yùn)營,要做好一個互聯(lián)網(wǎng)產(chǎn)品必須要有多方面的知識和技能。
參考文獻(xiàn):
[1]danah boyd,Nicole B.Ellison.Social Network Sites:Definition,History,and Scholarship[A].Journal of Computer-Mediated Communication[C],2007.
[2]Ching-man Au Yeung,Ilaria Liccardi, Kanghao Lu.Decentralization:The Future of Online Social Networking[R].In W3C Workshop on the Future of Social Networking Position Pages,2009.
[3]Martin Fowler.Inversion of Control Containers and the Dependency Injection pattern[J/OL],2004.
[4]Rod Johnson,Juergen Hoeller,Keith Donald.The Spring framework Reference Manual[J/OL],2004.
作者簡介:姜新(1981-),女,遼寧營口人,講師,學(xué)士學(xué)位,研究方向:計算機(jī)教育。
作者單位:營口職業(yè)技術(shù)學(xué)院,遼寧營口 115000