=Terms= * Server: 指的我们服务器 * Client: 终端和网页页面等。 =一些默认数据= * 系统里面(包括主机和终端)都有可能会出现一些默认值,而这些默认值很多都可以被修改,但是还会有一个reset按钮,可以将它们reset到出厂设计里面。这里面的默认数值,我们考虑可以使用备份的方式。就是我们默认保留一个出厂备份,他把安放在系统的某一个地方,需要reset的时候,直接就行restore.但是问题在于,这个需要支持不同功能区的备份和还原。需要考虑一下,是否有别的方式。 * 一些数据可能是在db里面的,所以也需要考虑是否使用备份方式 =database= client/Server都需要保存和存储数据,所以建议使用db的方式。client端估计会使用litesql,而server段使用mysql.所以,希望有一个middle layer,可以处理这个部分。 =Realtime双向 data/command= 对于client/server需要一种可以方便的沟通和信息传递的方式,比如说一个执行命令,一个新的配置项。这个需要考虑的是兼容javascript/ruby software。在webBrowser里面也可以直接进行使用。 可能会使用的功能部件有: * 日志:终端的日志上传。 * 执行命令的同步:主机需要向终端发布一个及时施行的命令,非freeswitch,sip,rtp等命令,所以不能走他们的协议。比如说:让终端开始接听某一个广播频道。 * 同步配置数据。(有可能,终端配置播放音乐,然后上传到服务器同步) * 终端半托管,全托管:通过终端b/s界面比如说创建会议,邀请加入会议,或者收到incoming call等。 如果这个部分的同步性很好,可以实现及时性和大数据量的同步,我们可以考虑把基本上所有需要交互信息(除了普通http,https,ajax)外的信息都通过这个来同步。
备注:当然可以考虑只是用http/https/ajax等方式,不过希望可以进一步提高同步性(希望可以实现减低延迟)。 [[File:Whiteboard Luna structure of functionality Photo.JPG]] =用户的在线状态= client是不是一直需要open一个connection到server,还是使用别的方式,比如long polling.这里,可以考虑是否和sync data合并 =Module性好一点= 再编写的过程中,需要把module性写的灵活一些,有助于分开,为cluster框架做准备。 =管理权限管理= 希望有一个类似role-based-permission-control system.主要用于限制用户的权限管理等方式。希望使用一个framework,最好可以直接兼容在controller。如果支持用户组或者多层级管理更好。比如可以细分一个管理权限为:添加,删除,编辑,如果用户有管理权限,就说有这三个,如果只有添加,这个用户则不可以删除。 =网络速度ping= 需要一部分的功能模块,可以让我们发现一些网络相关数据,比如说:终端到主机的贷款,延迟等。希望可以做精准测量