聶永的博客

          記錄工作/學(xué)習(xí)的點(diǎn)點(diǎn)滴滴。

          或許,你可以建立另外一個(gè)Firebase,也供實(shí)時(shí)Web數(shù)據(jù)驅(qū)動(dòng)平臺(tái)

          前言

          忙碌的人可以就此略過(guò),有閑的人,可以浪費(fèi)些空閑,看一看無(wú)關(guān)痛癢的文字。

          實(shí)時(shí)Web,一般人可以玩得起,只要你具有一些JAVA編程知識(shí),外加一些JS實(shí)踐,也不是難事。

          這里,簡(jiǎn)單設(shè)計(jì)一個(gè)基于socketio-netty的實(shí)時(shí)Web數(shù)據(jù)驅(qū)動(dòng)平臺(tái),用以托管實(shí)時(shí)應(yīng)用,同時(shí)也提供了前后端的設(shè)計(jì)思路,從中也可以看到多租戶架構(gòu)一些影子。

          至于什么是Firebase,什么是socketio-netty,那就只有自行google。

           

          設(shè)計(jì)思路

          后端設(shè)計(jì)

          1. 一個(gè)應(yīng)用實(shí)例對(duì)應(yīng)一個(gè)IOHandler接口實(shí)現(xiàn)
          2. 用戶上傳實(shí)現(xiàn)代碼,初始化一個(gè)應(yīng)用實(shí)例,產(chǎn)生一個(gè)API KEY
          3. API KEY 客戶端需要顯示引用;API KEY是應(yīng)用實(shí)例一一對(duì)應(yīng)關(guān)系
          4. 服務(wù)器端提供java class 的hotswap(熱部署),應(yīng)用實(shí)例動(dòng)態(tài)添加/刪除/替換,做到無(wú)縫、平滑
          5. 暫時(shí)不考慮文件系統(tǒng)等,功能為先

          socketio-netty支持多個(gè)namespace(或許稱為頻道更為合適)的添加,靜態(tài)加載示范:

           

          前端實(shí)踐

          1. 一個(gè)頁(yè)面,支持多個(gè)應(yīng)用實(shí)例,支持多個(gè)API KEY
          2. 前端JS須定義
            <script src="></script>
          3. API KEY使用方式和原生的socket.io客戶端使用方式一模一樣,無(wú)須多言。

           

          WEB端管理維護(hù)

          再來(lái)一個(gè)用戶的系統(tǒng)后臺(tái)管理就完備了:

          1. 上傳JAVA接口實(shí)現(xiàn)代碼,前期可只允許上傳.java代碼,以便代碼監(jiān)測(cè)使用(私有,則不需要)
          2. 查看應(yīng)用實(shí)例,重新生成API KEY等
          3. 實(shí)例維護(hù),暫停/停止/升級(jí)/替換/添加等,無(wú)縫、平滑等
          4. 其它常規(guī)操作

           

          設(shè)計(jì)小結(jié)

          基礎(chǔ)功做好之后,很顯然,您已經(jīng)實(shí)現(xiàn)了一個(gè)多租戶架構(gòu)的實(shí)時(shí)WEB數(shù)據(jù)驅(qū)動(dòng)平臺(tái)(名頭有些大哈),托管第三方實(shí)時(shí)應(yīng)用,有點(diǎn)PAAS的味道。雖然針對(duì)的應(yīng)用很窄,但更專業(yè)了。

          至于計(jì)費(fèi),安全,權(quán)限等,暫時(shí)可以歇歇,想太多,走不了多遠(yuǎn),太累,反而成就感會(huì)降低。系統(tǒng)進(jìn)化演進(jìn)的,大而全,不如小而精。

          這中間,難免需要對(duì)socketio-netty做一些定制工作,以適應(yīng)應(yīng)用實(shí)例的管理工作。

          至于實(shí)際應(yīng)用,需要注意的地方還很多,這里不過(guò)是一個(gè)簡(jiǎn)單模型(去掉了非核心的部分)的描述,和Firebase沒(méi)有半毛錢的關(guān)系。

          雖然設(shè)計(jì)了,不知道實(shí)際有沒(méi)有人需要這個(gè)東西,希望不是空中樓閣。

           

          PS/碎碎語(yǔ)

          socketio-netty最近的一些進(jìn)展(與上面設(shè)計(jì)不相關(guān)):

          1. 增加示范在線演示
            入口地址:http://socketio.yongboy.com/
            在線聊天示范 訪問(wèn)
            在線畫板示范 訪問(wèn)

            想了解socket.io或者想了解socketio-netty的,可以點(diǎn)擊一下。
            但愿別超出EC2的免費(fèi)流量限額,可能隨時(shí)會(huì)關(guān)閉。
          2. 增加使用者名單
            http://code.google.com/p/socketio-netty/wiki/UsersCollections

            至少,目前已經(jīng)有一家公司使用于生產(chǎn)環(huán)境

          posted on 2012-06-11 16:53 nieyong 閱讀(3394) 評(píng)論(1)  編輯  收藏 所屬分類: 容器

          評(píng)論

          # re: 或許,你可以建立另外一個(gè)Firebase,也供實(shí)時(shí)Web數(shù)據(jù)驅(qū)動(dòng)平臺(tái) 2012-10-18 09:55 xinqiyang

          博主的思想和行動(dòng)太贊的了,現(xiàn)在也在做這個(gè)方面的應(yīng)用,請(qǐng)多多關(guān)照。  回復(fù)  更多評(píng)論   

          公告

          所有文章皆為原創(chuàng),若轉(zhuǎn)載請(qǐng)標(biāo)明出處,謝謝~

          新浪微博,歡迎關(guān)注:

          導(dǎo)航

          <2012年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統(tǒng)計(jì)

          常用鏈接

          留言簿(58)

          隨筆分類(130)

          隨筆檔案(151)

          個(gè)人收藏

          最新隨筆

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 肇东市| 永顺县| 闻喜县| 安仁县| 交城县| 正定县| 长泰县| 夏河县| 福鼎市| 洛隆县| 卓尼县| 双辽市| 桐柏县| 五大连池市| 禄丰县| 金阳县| 白玉县| 兴业县| 崇仁县| 东山县| 栖霞市| 隆尧县| 南江县| 会昌县| 洮南市| 姚安县| 济阳县| 斗六市| 宾阳县| 报价| 博白县| 高淳县| 四川省| 盖州市| 什邡市| 西贡区| 冀州市| 繁昌县| 曲阜市| 德庆县| 大方县|