收藏 分销(赏)

本科毕业设计---新浪微博android客户端的实现.docx

上传人:xrp****65 文档编号:8947897 上传时间:2025-03-08 格式:DOCX 页数:57 大小:906.13KB 下载积分:10 金币
下载 相关 举报
本科毕业设计---新浪微博android客户端的实现.docx_第1页
第1页 / 共57页
本科毕业设计---新浪微博android客户端的实现.docx_第2页
第2页 / 共57页


点击查看更多>>
资源描述
编号:( )字 号 本科生毕业设计(论文) 微博客户端的设计开发 计08-3班 题目: 姓名: 学号: 班级: 二〇一二年六月 中 国 矿 业 大 学 本科生毕业设计 姓 名: 学 号: 学 院: 计算机科学与技术 专 业: 计算机科学与技术 设计题目: 微博客户端的设计开发 专 题: 指导教师: 徐慧 职 称: 讲师 2012 年 6月 徐州 中国矿业大学毕业设计任务书 学院计算机科学与技术 专业年级 计08级 学生姓名 任务下达日期:2012年1月10日 毕业设计日期: 2012 年1月4日至2011年6月10日 毕业设计题目:微博客户端的设计开发 毕业设计专题题目: 毕业设计主要内容和要求: 毕业设计的软件内容及要求: 1.        用户界面美观实用,便于各功能页面导航。 2.       系统各功能模块要明确划分。 论文的内容及要求: 1.        论文对系统设计的思想进行详细描述,介绍整个软件开发过程。 2.        进行系统需求分析,概要设计,详细设计,性能测试。 3.        说明开发过程中遇到的问题极其解决方法。 4.        最后写出软件开发的体会及收获。 5.        严格按照软件工程要求的格式编写文档。 院长签字: 指导教师签字: 中国矿业大学毕业设计指导教师评阅书 指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等): 成 绩: 指导教师签字: 年 月 日中国矿业大学毕业设计评阅教师评阅书 指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等): 成 绩: 指导教师签字: 年 月 日 中国矿业大学毕业设计答辩及综合成绩 答 辩 情 况 提 出 问 题 回 答 问 题 正 确 基本 正确 有一般性错误 有原则性错误 没有 回答 答辩委员会评语及建议成绩: 答辩委员会主任签字: 年 月 日 学院领导小组综合评定成绩 学院领导小组负责人: 年 月 日 摘 要 微博即MicroBlog,网上昵称围脖,是一种非正式的迷你型博客,是一个基于用户关系的信息分享、传播及获取平台。用户可以通过WEB、WAP以及各种客户端组件个人社区,以140字左右的文字更新信息,并实现即时分享。它是一种互动及传播性极快的工具,传播速度甚至比媒体还快。 本文阐述了新浪微博客户端的各种相关知识,尤其对Android客户端作了详细的介绍,同时将设计过程中所用到的主要方法及控件进行了详细说明。此次毕业设计以Android操作系统作为开发平台,Eclipse作为开发环境,参照新浪提供的API,进行微博客户端软件的设计与实现。本软件实现了微博首页获取数据、我的资料、好友资料、我的关注、我的粉丝、收藏微博、评论微博、转发微博、发表微博等功能,具备了一般微博所具有的功能,具有较强的实用性。 关键词:Android平台;微博; OAuth认证协议 ABSTRACT Microblogging is a relationship based on user information-sharing, dissemination and access platform. Users can use WEB, WAP individual components and a variety of client communities to inter about 140 words of text updates, and share this instantly . It is an interactive and fast spread tool, spread even faster than the traditional media. This article introduces the development of Android-based microblogging system, the system is divided into server-side and mobile client. Microblogging system uses the MVC design pattern, the three-layer architecture. The development tools is the Eclipse.The developing environment is JDK7.0 and the Android 2.3 and use sina rest API. This sina android microblog implement logining, register, release microblogging, visit the Friends HomePage, upload photos, update status and so on.Except the above functions,in mobile client, the table for discussion and real-time microblogging update reminders are added. Design and Implementation of the table function is to resolve the problem of the microblogging and mobilize the enthusiasm of the users. Keywords: Android; Microblog;OAuth protocol 目 录 1 绪论 1 1.1开发背景及意义 1 1.1.1开发背景 1 1.1.2意义 3 1.2 开发工具及运行环境 3 1.2.1开发工具 3 1.2.2运行环境 4 2 项目所用技术介绍 5 2.1 Andorid简介 5 2.2 Android系统架构 5 2.3 系统组件 5 2.3.1 Activity 6 2.3.2 Service 6 2.3.3 BroadcastReceiver 6 2.3.4 Content Provider 7 3 系统分析 8 3.1 功能需求 8 3.2 系统用例图 9 4 系统设计 10 4.1 程序总体架构 10 4.2 模块功能设计 11 5 详细设计与编码 13 5.1 授权模块 13 5.1.1 OAuth相关的三个URL 13 5.1.2 OAuth相关的参数定义 13 5.1.3 OAuth认证授权流程 14 5.2 微博首页模块 16 5.2 发布微博模块 25 5.2.1 基本功能 25 5.2.2 选择图片上传 28 5.2.3 @好友、添加热点话题和表情 29 6 系统测试 32 6.1 授权模块测试用例 33 6.2 发表微博测试用例 33 6.3 浏览微博测试用例 33 6.4 系统评价 34 6 总结 35 参考文献 36 翻译部分 38 英文原文 38 中文译文 44 致 谢 48 1 绪论 1.1开发背景及意义 1.1.1开发背景 2006年3月,博客技术先驱blogger创始人埃文·威廉姆斯(Evan Williams)创建的新兴公司Twitter推出了微博服务。在最初阶段,这项服务只是用于向好友的手机发送文本信息。Twitter英文原意为小鸟的叽叽喳喳声,用户能用如发手机短信的数百种工具更新信息。Twitter的出现把世人的眼光引入了微博的小小世界里。Twitter是一个社交网络及微博客服务。现在,用户可以经由SMS、即时通信、电邮、Twitter网站或Twitter客户端软件(如Twitterrific)输入最多140字的文字更新,Twitter被Alexa网页流量统计评定为最受欢迎的50个网络应用之一。 在2007年5月,国际间计算总共有111个类似Twitter的网站。然而,最值得注意的仍是Twitter,它于2007年在得克萨斯州奥斯汀举办的南非西南会议赢得了博客类的网站奖。Twitter的主要竞争对手是Plurk和Jaiku。后来微博客的新服务特色持续诞生,例如Plurk有时间轴可以观看整合了视讯和照片的分享,Identi、Pownce整合了微薄客加上档案分享和事件邀请。 Twitter在国外的“大红大紫”,令国内有些人终于坐不住了。2005年从校内网起家的王兴,在2006年把企业卖给千橡互动后,于第二年建立了饭否网。同样擅长技术活的SwiSen也瞄准了这个行业,很快清新、简约的随心微博也开始正式上线。而腾讯作为一个拥有4.1亿QQ用户的企业,看着用户对随时随地发布自己状态的强烈需求后,也忍不住尝试了一把,2007年8月13日腾讯滔滔上线。 但事实证明,Twitter建立的“微型王国”不是在短时间内掘出黄金的浅矿,国内的微博目在当时尚处于慢热的状态。据悉,随心微博、饭否网等目前仅拥有几十万用户,每月处理几千万条信息。国内微博不约而同地将现在的目光放在了产品调整以及服务完善上,在尚无法吸引到风险投资的眼光之前,他们最需要做的可能是如何靠自己的能力继续活下去。 从2007年中国第一家带有微博色彩的饭否网开张,到2009年,微博这个全新的名词,以摧枯拉朽的姿态扫荡世界,打败奥巴马、甲流等等名词,成为全世界最流行的词汇。 伴随而来的,是一场微博世界人气的争夺战,大批量的名人被各大网站招揽,各路名人也以微博为平台,在网络世界里聚集人气,同样,新的传播工具也造就了无数的草根英雄,从默默无闻到新的话语传播者,往往只在一夜之间、寥寥数语。 2009年7月中旬开始,国内大批老牌微博产品(饭否、腾讯滔滔等)停止运营,一些新产品开始进入人们的视野,像1月份开放的大围脖,6月份开放的Follow5,7月份开放的贫嘴,8月份开放的新浪微博。其中Follow5在2009年7月19日孙楠大连演唱会上的亮相, 是国内第一次将微博引入大型演艺活动,与twitter当年的发展颇有几分神似。 2010年国内微博迎来了春天,微博像雨后春笋般崛起。四大门户网站均开设微博。根据相关公开数据,截至2010年1月份,微博类产品在全球已经拥有7500万注册用户。 中国互联网络信息中心(CNNIC)发布的《第28次中国互联网络发展状况统计报告》报告显示,2011年上半年,中国微博用户从6331万增至1.95亿,增长约2倍。该《报告》指出,中国互联网的普及率增至36.2%,较2010年增加1.9%。 2011年上半年,我国微博用户数量从6331万增至1.95亿,半年增幅高达208.9%。微博在网民中的普及率从13.8%增至40.2%。从2010年底至今,手机微博在网民中的使用率比例从15.5%上升到34%。 至今,新浪微博用户数超过1亿,得益于抢占了先机,而且在整体的战略执行上也比较彻底到位,所以获得了现在的地位。仅仅三年时间,新浪微博就为新浪生下了一个价值几十亿美金的‘金蛋’。 开放API(OpenAPI)是SaaS(Software as a Service,软件即服务)模式下常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作OpenAPI(开放API)。   网站提供开放平台的API后,可以吸引一些第三方的开发人员在该平台上开发商业应用,平台提供商可以获得更多的流量与市场份额,第三方开发者不需要庞大的硬件与技术投资就可以轻松快捷的创业,从而达到双赢的目的,开放API是大平台发展、共享的途径,让开发者开发一个有价值应用,付出的成本更少,成功的机会更多。今天,OpenAPI作为互联网在线服务的发展基础,已经成为越来越多互联网企业发展服务的必然选择。 OpenAPI的典型成功范例是Google Maps API和Twitter,Google Maps有Google这样的大公司支持,成功当然并不奇怪,但是Twitter的成功就很能说明问题。事实上,如果Twitter仅仅是一个网页形式的微博客的话,Jaiku就可以轻松的将其打败,Twitter根本不可能取得今天的成就。 Twitter的活力就在于开放API,Twitter的成功和开放API密不可分。Twitter的开放API可以激发个人创作的积极性,引来了大量的第三方应用,这些第三方应用同时又扩大了Twitter原有的功能,让Twitter更好用,从而极大丰富了Twitter平台自身的功用和乐趣,现在,Twitter超过一半的流量都是来自第三方API。 随着Twitter的OpenAPI发布数量不断增加,运营过程中也开始暴露出一些问题。OpenAPI的巨大的访问量引起了Twitter种种性能问题,使得Twitter的稳定性大为降低,为了支持大量的外部API,Twitter宕机频繁,这估计是几乎所有Twitter用户都遇到过的现象。但即使如此,Twitter也没有放弃对OpenAPI的支持。因为开放API是历史的潮流,是必然的趋势,顺之者昌,逆之者亡,Twitter之所以击败众多各式各样的微博客网站,开放API功不可没。 国内的主流微博服务也纷纷开放了api,供广大第三方开发者接入微博提供了途径。本论文就是利用新浪微博的开放api来完成的。 1.1.2意义 微博,有点像聊天室或者说是像茶楼酒肆。是沟通人与人之间思想,交流知识,讨论问题和交换观点的网络交际平台。在这个平台上首先是虚拟的人(性别,年龄,职业,喜好,职务...等?)共同谈论你所感兴趣的任何话题,通过你们之间交流争辩让你对它有更进一步的了解和认知。 微博的传播速度更快,关注的人更多,时效性更强。微博上有许多信息是在传统媒体上看不到的,而公众对公共话题天生有一种关注心态,在微博上企业和客户之间不再是单纯的买卖关系,微博用好了,就能够在企业用户中培养出超越买卖的情感关系,在市场竞争中游刃有余。   传统的企业口碑营销,偏重在认识的人之间的口碑,但现在,越来越多的年轻人相信网络社群上不认识的“亲朋好友”的评价。因此,赢得网友的口碑,对企业而言,几乎跟花钱做广告一样重要。微博客的出现丰富了企业网络营销的手段,帮助企业“赢得”陌生人的口碑。   新浪微博主要用户群体集中在影视明星、企业高管、经济学者、传媒专家、营销策划人、评论员、主持人(主播)、创业者、网络红人,这些人基本上代表着颠覆与变革、创新与时尚。   微博客作为一个新的交流互动平台,正在受到越来越多人的青睐。相比博客而言,微博客使用更加简单,用户所付出的单位成本、精力投入都更少,写作门槛更低,用户扩展更为迅速,为可能实现的媒体信息传播积累了庞大的通讯员队伍。同时,整合各类工具尤其是手机短信的优势,微博客具备了实时传播的特性,在面对突发新闻事件时,微博客的报道速度往往能领先于传统媒体。   随着微博的“客”流量不但呈爆炸式增长,而且其影响力也与日俱增。微博客迅速成为中国企业及时传播信息,增加用户与企业粘性的营销利器。众多中小企业纷纷设立官方微博客,安排专人在新浪微博客开博,与粉丝紧密互动,积极推广企业品牌。微博预示着个体的力量不再孱弱,它在影响和改变这个世界上正发挥越来越大的作用。   企业微博的最大价值在于构建与用户沟通的渠道和平台,高效传达及展现企业产品与服务,实现企业品牌的快速传播。越来越多的传统企业成功借助微博宣传企业品牌与企业文化,通过建立口碑来获得长期利益。 1.2 开发工具及运行环境 1.2.1开发工具 1. 操作系统:Windows 7, SP1 2. 开发工具:Eclipse IDE for Java Developers,Version: Indigo Service Release 2 3. 插件:Android Development Tools (ADT) Plugin for Eclipse 4. 开发语言: Java 1.2.2运行环境 1. 手机型号:摩托罗拉MB525 2. 操作系统:Android Gingerbread( 2.3.7) 3. 硬件参数: a) CPU:德州仪器 OMAP3610,800MHz b) Ram:512MB c) 屏幕:3.7寸,854×480像素 2 项目所用技术介绍 2.1 Andorid简介 Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。 2.2 Android系统架构 Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。   Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。   在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。 而在Android系统底层方面,Android使用C/C++作为开发语言。 2.3 系统组件 Android开发四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。 2.3.1 Activity Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。   一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。 当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,应为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。 2.3.2 Service Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android 浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。 2.3.3 BroadcastReceiver 在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver 进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver 进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的intent broadcasts广播给其他应用程序。   注册BroadcastReceiver有两种方式:   (1)在AndroidManifest.xml进行注册。这种方法有一个特点即使你的应用程序已经关闭了,但这个BroadcastReceiver依然会接受广播出来的对象,也就是说无论你这个应用程序时开还是关都属于活动状态都可以接受到广播的事件;   (2)在代码中注册广播。第一种俗称静态注册,第二种俗称动态注册,这两种注册BroadcastReceiver的区别:   动态注册较静态注册灵活。实验证明:当静态注册一个BroadcastReceiver时,不论应用程序是启动与否。都可以接受对应的广播。 动态注册的时候,如果不执行unregisterReceiver();方法取消注册,跟静态是一样的。但是如果执行该方法,当执行过以后,就不能接受广播了。 2.3.4 Content Provider Content Provider 是Android提供的第三方应用数据的访问方案。 在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不允许其他直接访问的。Andorid当然不会真的把每个应用都做成一座 孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。应用想对外提供的数据,可以通过派生ContentProvider类, 封装成一枚Content Provider,每个Content Provider都用一个uri作为独立的标识,形如:content://com.xxxxx。所有东西看着像REST的样子,但实际上,它比REST 更为灵活。和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给你id的uri你也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。   另外,Content Provider不和REST一样只有uri可用,还可以接受Projection,Selection,OrderBy等参数,这样,就可以像数据库那样进行投影,选择和排序。查询到的结果,以Cursor(参见:reference/android/database/Cursor.html )的形式进行返回,调用者可以移动Cursor来访问各列的数据。   Content Provider屏蔽了内部数据的存储细节,向外提供了上述统一的接口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。Content Provider内部,常用数据库来实现,Android提供了强大的Sqlite支持,但很多时候,你也可以封装文件或其他混合的数据。 在各大组件中,Service和Content Provider都是那种需要持续访问的。Service如果是一个耗时的场景,往往会提供异步访问的接口,而Content Provider不论效率如何,都提供的是约定的同步访问接口。 3 系统分析 3.1 功能需求 此次程序设计任务是Android平台下的新浪微博客户端设计,程序将在真实手机运行调试。 此次程序设计用户界面要求较为友好,由于针对的用户为Android智能手机用户,因此程序的操作全部可以通过触控完成操作。本新浪微博客户端要求设计合理.在设计完成后,要求程序能够实现新浪微博的登录功能。同时,程序还必须能够实现对对新浪微博的首页信息获取,用户资料,好友资料,发表微博,用户的关注,用户的粉丝,转发微博,评论微博,收藏微博,我发表的微博等。最后,新浪微博获取信息要具有较高的执行效率。此次程序设计的操作系统要求为Windows 7或 Linux。此次程序设计需要在Eclipse环境下开发。 本客户端的数据都是通过网络来自于新浪的服务器,产生的数据也是上传到新浪的服务器,在客户端存储的只有OAuth产生的一些省份识别信息,所以本客户端无需使用数据库。 基于系统需求分析,该系统需要实现以下功能: (1)用户登录授权:当用户第一次使用该软件时,会打开新浪微博的授权页面,如果是老用户,则授权登录,若是新用户,则注册新浪微博,然后跳转到微博首页。 (2)发布微博:发布微博是微博的基本功能,用户将自己想要向外界传达的信息进行发布,这是用户向外传播信息的最主要的途径与方法。 (3)修改用户个人信息:用户可以根据个人需要修改自己的信息,包括用户名、email、心情、以及上传头像或者更改为其他头像。 (4)查看微博更新:在微博的首页要显示用户关注的博友的最近微博更新,并能够查看微博的评论,以及查看博友的主页。 3.2 系统用例图 图3-1 系统用例图 4 系统设计 4.1 程序总体架构 在三层结构中(图4-1),解决了客户机/服务器模式面临的许多问题。通过划分客户与服务器之间的功能,分布式计算提供了一种把应用中的用户界面从企业逻辑中分离出来的自然方法。在分布式环境下,企业逻辑提供了一种把应用中的用户界面从企业逻辑中分离出来的自然方法。在分布式环境下,企业逻辑集中地安装在应用服务器上,这样就降低了客户端的负载,同时对敏感信息的访问也可以得到很好的控制。 采用分布式计算有着多方面的技术优势,包括: 1)封装性 2)性能 3)全性管理 在分布式计算模式中,由于所有的商业逻辑都驻留在服务器端,信息管理部就可以十分方便地监控服务器的运行情况,很容易地控制访问服务器以及与服务器应用打交道人员的数量。这可以大大简化管理员对系统的管理,减轻系统维护的工作量,并确保系统的可靠运行。 图4-1三层客户/服务器模型 软件设计时,考虑到整个系统的延续性和可扩充性,我们将系统应用体系分为三部 分:用户表现层、数据访问层、商业逻辑层。 (1)用户表现层:处理用户界面的功能; (2)数据访问层:在通常情况下指数据库; (3)商业逻辑层:指在程序中做出职能决策的那一部分功能。 微博客户端的结构图如下所示: 图4-2 微博客户端结构图 4.2 模块功能设计 本新浪微博客户端大致分为首页、微博详情、用户信息、发布微博、查看评论等模块,分别负责不同的功能: 1. 授权模块:访问用户的信息与数据需要经过用户的授权,所以必须有用户授权的模块本软件才能正常使用。 2. 首页:是用户浏览微博的界面,会将用户所关注的人的微博按照时间先后顺序排列,其中会显示微博的作者、发布时间、内容、转发评论数量、发布方式等。首页是用户使用最多的界面,也是软件初次打开的默认界面。 3. 微博详情:当用户在首页浏览微博的时候,点击某一条微博就会进入到微博详情的界面,这个界面会更详细的展示用户所点击的那条微博,并且提供转发和评论的功能按钮。 4. 用户信息:用户信息是展示用户的界面,何以展示用户本身的信息并修改,也可以查看任何用户感兴趣的用户。 5. 发布微博:用来发布新微博的界面,转发和评论的时候也会用到这个模块。 6. 查看评论:用来浏览某一条微博的评论。 5 详细设计与编码 下面就对每个模块的设计与开发进行详细叙述: 5.1 授权模块 新浪微博采用OAuth授权方式来使第三方应用访问用户的数据,这样的话第三方应用就可以在不知道用户帐号和密码的情况下获取用户数据。 OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。 OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OAuth是开放的。业界提供了OAuth的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAuth是简易的。目前互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAuth认证服务,这些都足以说明OAuth标准逐渐成为开放资源授权的标准。 5.1.1 OAuth相关的三个URL Request Token URL: 获取未授权的Request Token服务地址;   User Authorization URL: 获取用户授权的Request Token服务地址;   Access Token URL: 用授权的Request Token换取Access Token的服务地址。 5.1.2 OAuth相关的参数定义 OAUTH_consumer_key: 使用者的ID,OAuth服务的直接使用者是开发者开发出来的应用。所以该参数值的获取一般是要去OAuth服务提供商处注册一个应用,再获取该应用的OAUTH_consumer_key。   OAUTH_consumer_secret:OAUTH_consumer_key对应的密钥。 OAUTH_token:OAUTH进行到最后一步得到的一个“令牌”,通过此“令牌”请求资源的网站就可以去拥有资源的网站抓取任意有权限可以被抓取的资源。 OAUTH_token_secret:OAUTH_token对应的私钥   OAUTH_signature_method: 请求串的签名方法,应用每次向OAuth三个服务地址发送请求时,必须对请求进行签名。签名的方法有:HMAC-SHA1、RSA-SHA1与PLAINTEXT等三种。   OAUTH_signature: 用上面的签名方法对请求的签名。   OAUTH_timestamp: 发起请求的时间戳,其值是距1970 00:00:00 GMT的秒数,必须是大于0的整数。本次请求的时间戳必须大于或者等于上次的时间戳。   OAUTH_nonce: 随机生成的字符串,用于防止请求的重放,防止外界的非法攻击。   OAUTH_version: OAuth的版本号。 5.1.3 OAuth认证授权流程 OAuth认证授权就三个步骤,三句话可以概括:   1. 获取未授权的Request Token   2. 获取用户授权的Request Token   3. 用授权的Request Token换取Access
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服