附表1
南京邮电大学
大学生创新训练计划立项申请表 项目名称 项目所属 一级专业门 项目来源 项目类别 项目实施时间 二级专业类 □科研 □自拟课题 □招标课题 □其他 □A.工学硬件(含软硬结合)类 □B.软件及其他类 起始时间: 年 月 完成时间: 年 月 所在院系、 姓名 学号 年级 专业 电话 联系E-mail 移动终端新型交互通信平台研究与实现 项目所属 申请人 主持人 成 员 年龄 行政职务/专姓名 指导教师信息
单位 业技术职务 手机 电子邮件 ─ 1 ─
一、 申请理由(包括自身具备的知识条件、自己的特长、兴趣、已有的实践创新成果等) 我们小组三人都是在校的本科学生。所学的主要专业课知识包括C语言、C++、java、数据结构、数值分析等课程,具有足够的计算机基础技术,对编程有着自己独到的理解与看法,喜好钻研信息技术,并且均希望在计算机编程技术上可以更进一步,弥补各自技术方面的缺陷,交流学习共同提高。 我们热爱科技创新活动,有开阔的思维和较强的动手能力,对信息及计算机程序开发方面很感兴趣,做事较为认真有责任心,善于利用课业业余时间学习课外专业知识,并积极向高年级学生请教,开展专业学习与讨论,参与了高年级学生的一些专业实践创新活动。 我们的组员都对于程序开发有着较浓的兴趣,有着各自擅长的领域与兴趣,组中xxx同学更是自学了java网页制作技术,独自建立了基于Apache6.x+Spring4.0+Hibernate4.0+struts2.0的个人主页网站,实现了留言板、音乐播放、图库、视频播放等功能,现在则在学习lucene3.0搜索引擎架构。xxx同学也在图形处理方面拥有很多的经验,并跟从高年级同学做过相关项目研究,有较好的英文基础,在大一时就在英语六级考试中高分通过。xxx同学则是自学了数据库MySQL相关知识,拥有较强的动手能力,同时在文字书面总结方面有着较强的能力。跨学院跨专业的组合使我们有着天然的互补优势,和更加合理的工作分配,我相信作为有着共同爱好并且共同热爱编程的我们,有这个能力也有这个信心可以合理运用自己的知识,明确分工,通力合作,完成这个项目。 ─ 2 ─ 二、项目方案 具体内容包括: 1、项目研究背景(国内外的研究现状及研究意义、项目已有的基础,与本项目有关的研究积累和已取得的成绩,已具备的条件,尚缺少的条件及方法等) 随着近年来移动智能终端和网络接入的迅速普及,移动智能终端性能及网络接入质量的迅速提高,以电话、短信为代表的传统手段已经无法满足用户在新网络环境中的通信需求。如何利用手机、平板等大量普及的智能终端为人们传递更多的有用信息,已成为各界研究的热点。 现有移动终端交互平台如果沿用传统短信体系,用户往往只能被动接收,也不利于实现用户利用互信平台寻找和开创其他人际关系的需求;而如果采用微博形式的交互方式,虽然通过设定关注可以向用户传递感兴趣的内容,但往往由于信息过度的公开性,可能会导致一些争议性问题,因此新型互信交互平台主要需要在信息的公开程度、信息对用户的有效性等问题上进行一定幅度的改进。除此之外互信平台还应具备一定的用户人际关系拓展能力,但现有人际关系搜索往往只能基于地域或时间开展,尚未满足用户真正的需要。 鉴于以上问题,本项目拟设计一种新型的移动终端交互通信平台系统,在实现传统文字、语音以及图片传输的基础上,设计新型用户人际关系拓展方式,并完成其原型系统开发工作。 2、项目研究目标及主要内容 本项目主要实现一种移动终端新型交互通信平台(友信平台)原型系统,具体项目目标包括: ─ 3 ─ 1) 现有平台融合 友信平台实现对现有即时通信、社交分享平台融合,完成利用单一平台实现多平台复合功能,方便用户使用。 2) 实现新型用户发现方案 友信平台旨在创建一个高效的资源发现平台,解决目前朋友间和间接朋友间信息不对称,无法在各自资源有效期内找到可信、真实的合作方,从而丧失发展、创业合作机会。同时创建一个更高效现实社交平台,为用户梳理自己的社交圈,对新认识或感兴趣的人,可发现是否与自己已存在其它最短的脉络关系,有助用户最快建立更紧密社交关系。 3) 新型信息交互与社交分享模式 友信平台对现有信息交互和社交分享功能进行改进,着重实现基于可信度的用户信息可见性控制,基于用户兴趣与地点的信息分享与推送模式,面向商业活动角色的信息发布方式,从而探索虚拟和现实有机联系,构建用户社交新形态,使用户更有效互动。 具体研究内容包括: 1) 移动终端互信平台架构与功能设计 2) 移动终端互信平台关键功能实现 允许用户在互信平台注册,支持用户定义一些信息作为个性化标签。 支持文字、图片与语音信息等传统通信方式,支持用户点对点及用户组群聊天功能。 支持好友添加并基于用户现有通信录信息实现好友发现功能。 支持好友基于信任度分组并可以基于用户个性化标签进行用户搜索以及 ─ 4 ─ 针对某个特定用户搜索自身与之通过好友联系途径。 支持基于用户的个性化标签实现信息推送,实现包括用户基于自身需求接收推送信息和用户通过平台自主向其他用户推送信息功能。 3) 移动终端新型交互通信平台原型系统编码开发 3、项目创新特色概述 友信平台对现有信息交互和社交分享功能进行改进,友信支持好友基于信任度分组,可以基于用户个性化标签进行用户搜索以及针对某个特定用户搜索自身与之通过好友联系途径,构建用户社交新形态,使用户更有效互动。友信着重实现基于可信度的用户信息可见性控制,基于用户兴趣与地点的信息分享与推送模式,面向商业活动角色的信息发布方式,从而探索虚拟和现实有机联系。 4、项目研究技术路线 总体构架 本项目设计实现的移动终端新型交互通信平台原型系统主要以C/S构架为主要系统构架模式。手机端连接服务器实现用户所需的服务内容,所有用户之间交互所需的数据(包括聊天信息等)由服务器进行统一转发,通信过程在应用层主要基于HTTP协议,传输层利用TCP协议完成通信。服务器端会进行一定的存储工作,从构架上分为手机客户端构架设计、服务器端构架设计(包括数据库设计)2个部分。 考虑到用户所处环境的不确定性及手机的功能,通信模式上用户所有请求以调用HTTP协议中Post方法的方式发向服务器,服务器响应用户操作反馈用户所需信息,用户操作类型通过Post方法的参数予以指定。 ─ 5 ─ 用户服务器Http-PostTCPHttp反馈TCP图1 用户服务器交互示意图 实际交互过程中,客户端需要定期向服务器端通过Pull操作获取可能需要传递给客户端的信息,考虑到手机特点及能源消耗,需要一种有效的定时获取机制,该方法将在客户端网络通信模块进行说明。 客户端构架 友信平台客户端应用平台为利用Android 4.1操作系统的手机/移动终端设备,所有模块分为前台显示与功能模块和后台支撑模块2个大类,前者主要负责用户界面显示与响应用户操作,后者主要完成客户端与服务器端通信、本机信息获取等功能,详细模块划分如下图所示: ─ 6 ─ 登陆/注册模块个人信息设置模块好友发现/添加模块移动终端新型互信平台好友筛选/关系查询模块好友管理模块好友圈管理模块聊天信息发送与显示模块目的位置标识\\导航显示模块推送消息发送与显示模块微博消息显示模块微博消息编写与发送模块周边微博消息显示模块商铺微博消息显示模块公共话题消息显示\\编写模块前台显示与功能模块本机信息获取模块聊天/推送信息本地存储模块网络通信模块后台支撑模块手机客户端A. 前台显示与功能模块设计 前台显示与功能模块主要以Android中Activity类的派生类实现用户界面,按其实现功能,主要涉及3个大类:用户管理、即时通讯、社交通信。按功能、模块以及Activity划分如下表所示: 表1 前台显示与功能模块界面划分 功能分类 Android 图2 客户端模块划分示意图 功能模块 包含界面(Activity) 用户登陆界面 用户信息输入界面 登陆\\注册模块 ─ 7 ─ 用户管理 个人信息设臵模块 好友发现\\添加模块 好友筛选\\关系查询模块 好友管理模块 友信平台主界面 用户个人信息显示界面 好友搜索界面 好友人脉查询界面 好友列表界面 好友分组管理界面 好友信息显示界面 好友圈管理模块 好友圈列表界面 好友圈管理界面 好友圈信息界面 好友圈搜索界面 即时通讯 聊天信息发送与显示模块 会话界面 聊天界面 好友界面 好友圈界面 目的位臵标识\\导航显示模块 目的位臵标识界面 目的地导航界面 推送消息发送与显示模块 微博消息显示模块 推送消息发送与显示界面 用户个人主页界面 其他用户主页界面 用户信息界面 ─ 8 ─ 社交通信 微博消息编写与发送模块 周边微博消息显示模块 用户列表界面 个人管理界面 微博详情界面 搜索界面 我的消息界面 微博编辑界面 微博详情界面 用户列表界面 商铺微博消息显示模块 商户评价界面 优惠券兑换界面 商品展示界面 商户优惠券操作界面 公共话题消息显示\\编写模块 公共话题界面 B. 后台支撑模块设计 a) 本机信息获取模块 获取本机GPS位臵与网络连接情况,并将这些信息用于网络通信模块实现与服务器交互的相关过程之中。 主要功能包括: i. ii. 网络状况检测:监控本机网络是否连通。 地理位臵获取:反馈本机地理位臵坐标,提供接口-本机地理位臵获取。 b) 聊天/推送信息本地存储模块 ─ 9 ─ 本模块主要存储由服务器接收的聊天信息,包含用户与用户,用户与好友圈,用户与多用户的聊天信息,信息包括已读信息,未读信息和发送失败信息。 主要功能包括: i. 用户从服务器获取到未读信息之后,将信息存储到本地数据库,信息包括文字,图片与语音,并标识为未读,聊天信息中的文字直接保存在数据库中,图片与语音以文件的形式保存在内存卡中。 ii. 用户读取信息之后,用户可对聊天记录进行清空操作。用户聊天时,如果信息没有发送成功,则将信息标识为发送失败。 c) 网络通信模块 完成手机客户端与服务器端网络通信工作。通信过程在应用层主要基于HTTP协议,手机端以Client角色与服务器在传输层利用TCP协议完成通信。 主要功能包括: i. Http连接建立与维护:客户端以Http-Client身份与服务器建立连接并维持连接的有效性。 ii. 向服务器获取信息:客户端以Pull形式向服务器获取信息,考虑到客户端电能消耗情况,采取如下获取方式:默认以10秒为间隔向服务器发出申请检测是否有新数据要接收,如果检测无数据要接收,则以2秒为单位增加检测间隔,最大间隔为30秒,如果有需要接收的数据,则以2秒为单位缩短检测间隔,最短间隔为4秒。 iii. 在线心跳维持:客户端定期向服务器发送信息标识客户端在线,本系统设计采用服务器向服务器获取信息的请求作为该心跳标识。 iv. 向前台提供服务接口并以Http-Post方法与服务器通信:网络通信模块向前─ 10 ─ 台界面提供服务接口(具体接口定义参见前台界面功能调用接口定义),并封装与服务器通信。 服务器端构架 服务器组织构架与结构 为了提高整个系统的并发性能和实时性能,在服务器端的架构方面可考虑采用负载均衡和服务器集群的技术方案。 负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。 服务器集群每个服务器节点运行一个所需服务器程序的拷贝,网络负载则将工作负载在这些主机间进行分配。在某一主机发生故障时,可将通信量转发至其他主机,保证了系统的稳定性。 对于本系统可采用基于请求分配器的集群结构。 基于请求分配器(Dispatcher)的Web服务器集群能够完全控制所有到来的请求并且实现精细粒度的负载均衡,如下图所示。在基于请求分配器的集群系统中,前端的请求分配器作为到达请求的代理,负责集中地接收所有到达的HTTP请求,并且按照特定的负载均衡策略将客户的请求均衡、透明地分配给集群中的后端服务器。整个集群系统具有一个单一的虚拟IP地址,即集群地址,因此集群中的服务器对用户端是透明的。实际上,集群地址就是请求分配器的IP地址,即请求分配器为集群系统提供了一个单一的虚拟接口,使得整个集群对外部而言犹如一台单一的主机。 在这种体系结构中,早期的研究或产品典型地采用第四层交换机(仅处理到达的请求分组)或TCP路由器(处理到达的请求分组和返回的应答分组)作为请求分配器,能够根据后端服务器的私有IP地址或MAC地址对之进行独一无二的识别, ─ 11 ─ 并在TCP层执行请求分配(即第四层处理)。所采用的典型的请求分配机制包括分组重写、分组转发、HTTP重定向等。最近的研究和产品已经开始使用第七层交换机(也称Web交换机或内容交换机)作为请求分配器,实现Content-aware(基于请求内容)的请求分配。 图3 基于请求分配器的集群结构 对于本系统可采用apache + tomcat分工协作服务器架构,apache负责静态内容的分发,tomcat作为web应用服务器在后台处理动态请求,这种架构是一种良好的分工协作服务器架构的方式。用这种架构的方式下, 可构建出apache负载均衡与tomcat集群的服务器架构,这也是目前可提高并发性能和实时性能的主流服务器架构方案之一。将apache作为负载均衡器,在所有的集群服务器上开启tomcat的集群功能,使这些服务器具有集群的功能。所有的动态请求转发给apache的负载均衡器,再由负载均衡器根据负载的分配 策略分发给tomcat集群成员。通过这种架构可大大提高系统的稳定性,并发性,实时性等性能。 数据库方面的架构可采用主从结构的Oracle数据库集群的方式,主从结构的 ─ 12 ─ Oracle数据库集群有两个好处,首先是实现了数据的备份,当主Oracle数据库服务器出现故障时,可进行快速的切换,确保应用的正常运行。其次,就是利用代理组件,可轻易实现数据的读写分离,主服务器专门负责写操作,从服务器则负责数据的查询操作,这样最大程序地缓减数据库服务的并发压力。 服务器通信与交互接口 后台服务器端主要负责接受手机客户端的请求和响应手机客户端的请求。 后台服务器端从整体架构上来讲分为两大部分:1.用于接受和响应手机端的请求的通信部分;2.用于对手机端的相应请求提供对应的业务逻辑处理部分。 后台服务器端整体的架构图示如下: 负责与手机端进行通信的部分用户请求负责手机端请求的相应业务逻辑部分响应用户请求 图4 服务器构架模式示意图 后台服务器端两大部分的实现与功能: ① 用于接受和响应手机端的请求的通信部分: 本方案中设计使用apache+tomcat服务器用于负责实现接受和响应手机端的请求的通信部分,通过这种方式来实现服务器端的通信部分是比较成熟,性能稳定可靠的技术,可实现稳定高并发的通信连接。 ② 用于对手机端的相应请求提供对应的业务逻辑处理部分: ─ 13 ─ 该部分采用标准的JAVA EE的应用架构进行实现,架构图示如下: 表现层显示MVC控制器层提供业务逻辑实现业务逻辑层提供数据访问服务DAO层封装数据库操作DOMAIN OBJECT层提供持久化服务数据库层 图2-4 服务器分层服务模式示意图 5、研究进度安排 第一阶段:对现有移动终端交互通信平台特点进行分析,设计新互信平台构架、模块划分、主要功能,制定详细开发计划。 第二阶段:设计好友搜索、信息推送所需算法,分模块进行功能开发,实现用户端及服务器端代码编写。完成各模块功能测试。 ─ 14 ─ 第三阶段:移动终端交互通信平台原型系统集成与测试。 6、项目组成员分工 序号 1 2 3 姓名 在项目中的职责 互信平台系统构架设计 用户人际关系搜索与拓展算法设计、编码与测试 信息推送相关筛选算法设计、编码与测试 ─ 15 ─ 三、学校提供条件(包括项目开展所需的实验实训情况、配套经费、相关扶持等) 1.学校拥有大量的纸质和电子类专业书籍、期刊、报纸等可供多方面参阅。 2.学校各个实验室的开放以及现有的软件和硬件等实验实训场地和仪器设备。 3.学校的各级老师可以提供大量的建议与实际帮助。 4.学校给予一定的开发资金并且有完善的配套扶持。 四、预期成果与特色 本项目的主要预期成果为: 1. 完成移动终端新型交互通信平台原型系统的开发:设计移动终端新型交互通信平台系统架构,系统结构完整,脉络清晰,功能完备。 2. 申请并获得软件著作权。 五、经费预算 实验器材(服务器、测试手机、实验用电脑维护等):1500元 加工材料消耗费: 0元 服务器、资料、网费等其他费用: 300元 总计: 1800元
─ 16 ─
六、导师推荐意见 签名: 年 月 日 七、学院推荐意见 (明确推荐等级:国家级、省级一般、省级指导、校级重点、校级一般) 学院负责人签名: 盖章: 年 月 日 八、学校意见 □同意立项: □推荐国家级 □推荐省级一般 □推荐省级指导 □校级重点 □校级一般 □不予立项 学校负责人签名: 公章: 年 月 日
─ 17 ─