聂永的博客

记录工作/学习的点点滴滴。

或许,你可以建立另外一个Firebase,也供实时Web数据驱动平台

前言

忙碌的人可以就此略过,有闲的人,可以浪费些空闲,看一看无关痛痒的文字。

实时Web,一般人可以玩得起,只要你具有一些JAVA编程知识,外加一些JS实践,也不是难事。

这里,简单设计一个基于socketio-netty的实时Web数据驱动平台,用以托管实时应用,同时也提供了前后端的设计思路,从中也可以看到多租户架构一些影子。

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

 

设计思路

后端设计

  1. 一个应用实例对应一个IOHandler接口实现
  2. 用户上传实现代码,初始化一个应用实例,产生一个API KEY
  3. API KEY 客户端需要显示引用;API KEY是应用实例一一对应关系
  4. 服务器端提供java class 的hotswap(热部署),应用实例动态添加/删除/替换,做到无缝、平滑
  5. 暂时不考虑文件系统等,功能为先

socketio-netty支持多个namespace(或许称为频道更为合适)的添加,静态加载示范:

 

前端实践

  1. 一个页面,支持多个应用实例,支持多个API KEY
  2. 前端JS须定义
    <script src="http://domain.com/yourfirebase.js"></script>
  3. API KEY使用方式和原生的socket.io客户端使用方式一模一样,无须多言。

 

WEB端管理维护

再来一个用户的系统后台管理就完备了:

  1. 上传JAVA接口实现代码,前期可只允许上传.java代码,以便代码监测使用(私有,则不需要)
  2. 查看应用实例,重新生成API KEY等
  3. 实例维护,暂停/停止/升级/替换/添加等,无缝、平滑等
  4. 其它常规操作

 

设计小结

基础功做好之后,很显然,您已经实现了一个多租户架构的实时WEB数据驱动平台(名头有些大哈),托管第三方实时应用,有点PAAS的味道。虽然针对的应用很窄,但更专业了。

至于计费,安全,权限等,暂时可以歇歇,想太多,走不了多远,太累,反而成就感会降低。系统进化演进的,大而全,不如小而精。

这中间,难免需要对socketio-netty做一些定制工作,以适应应用实例的管理工作。

至于实际应用,需要注意的地方还很多,这里不过是一个简单模型(去掉了非核心的部分)的描述,和Firebase没有半毛钱的关系。

虽然设计了,不知道实际有没有人需要这个东西,希望不是空中楼阁。

 

PS/碎碎语

socketio-netty最近的一些进展(与上面设计不相关):

  1. 增加示范在线演示
    入口地址:http://socketio.yongboy.com/
    在线聊天示范 访问
    在线画板示范 访问

    想了解socket.io或者想了解socketio-netty的,可以点击一下。
    但愿别超出EC2的免费流量限额,可能随时会关闭。
  2. 增加使用者名单
    http://code.google.com/p/socketio-netty/wiki/UsersCollections

    至少,目前已经有一家公司使用于生产环境

posted on 2012-06-11 16:53 nieyong 阅读(3377) 评论(1)  编辑  收藏 所属分类: 容器

评论

# re: 或许,你可以建立另外一个Firebase,也供实时Web数据驱动平台 2012-10-18 09:55 xinqiyang

博主的思想和行动太赞的了,现在也在做这个方面的应用,请多多关照。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

所有文章皆为原创,若转载请标明出处,谢谢~

新浪微博,欢迎关注:

导航

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

统计

常用链接

留言簿(58)

随笔分类(130)

随笔档案(151)

个人收藏

最新随笔

搜索

最新评论

阅读排行榜

评论排行榜