基于Android携程结伴系统的设计

2014-11-19 06:31于诗宇侯祝平
科技创新导报 2014年26期
关键词:携程

于诗宇+侯祝平

摘 要:目前,在国内外交互网站领域涌现了许多成功的案例,例如:Facebook、twitter、新浪微博等等。但是,这些交互网站对巨大的用户基数来说有一个共同的缺憾,那就是它们大都仅仅提供了单一的用户交流渠道,而并没有提供与用户息息相关、关乎用户切身需要的活动平台。自2009年,随着Apple IOS、Google Android等智能移动手机平台的发布,移动客户端以其便捷性和及时性大大削弱了普通电脑在人们日常生活中的重要性。携程结伴系统使用Android+Eclipse+MySQL开发,该系统植根于移动端平台的、具有专门交互功能的系统已经成为一种迫切的需求,是为解决以上交互需求问题提出的一种解决方案。

关键词:携程-结伴系统 交互系统 移动开发 java MySQL Android

中图分类号:TP393 文献标识码:A 文章编号:1674-098X(2014)09(b)-0049-02

交互系统是基于网络平台的广泛性、互通性、娱乐性、经济性、安全性等优点,于本世纪初出现在网络交流方式中的互动型服务系统。网络交互较之其它交互方式更加经济、安全、健康。现在的上网条件非常的便利。网上交互大多以开展文字、音频、视频聊天为主,无须现实中产生具体交互。网络交友因其所进行的活动都是通过网络进行,很大程度减少了网络之外的交友开销,因此是种的开销的交友方式。现在也有很多交友网站开始推出一些各自的特色功能,让用户在网上交友的同时能通过更直观的了解到对方,提高了交互网站用户的体验和交友成功率。交互网站的市场竞争已然很激烈,接近白热化,若想有长远的发展必须朝着门户式、多元化方向发展。

1 系统的设计目标

携程-结伴系统是专门针对已有的交互及交友网站的不足而开发的组织线下活动的系统。由于其设计之初就是针对现有交互系统的不足之处开发的,所以,携程-结伴系统能更好的解决用户线上交友、线下活动的需求,本系统设计就是为了方便用户网上联络、方便用户更好的参与活动。本系统补充了用户自主联系他人的单一联系方式,提供了详尽的信息发布平台和便捷的沟通纽带。其中包括用户发布Together、用户浏览其他用户发布的Together由这两个功能实现用户的基本交流。用户发布Together将自己组织的活动公布于众,这是本系统主要的信息公布功能,也是本系统用户展现自己的主要渠道,而与之相对应的就是系统其他用户浏览Together,用户通过浏览他人发布的Together来寻找志同道合的人,基于此两项基本功能用户初步完成了信息的交互。

携程-结伴系统是基于移动客户端的C/S架构系统,由于Android手机性能参差不齐,Android系统本身又碎片化严重,所以这就要求客户端系统占用系统资源少,并且,能适配Android 2.3版本及其以上的较低版本,以服务更广大的用户群。

2 系统功能整体设计

2.1 用户模块

2.1.1 用户注册

在本模块,用户实现注册系统,这是用户实现登录携程-结伴系统的先决条件,只有用户通过注册才能获得系统承认的唯一标识,已进行余后的系统操作和享受系统其他服务。为了防止用户注册时个人敏感信息,如:用户邮箱、用户手机、密码等在网络中明码传送本模块将对用户注册数据进行封装,并通过POST方式上传至网络服务器。在本模块中系统将对用户提交的注册信息进行验证和检查,只用用户提交的信息符合系统的格式和内容要求注册才会成功,系统中将保留用户注册的信息并产生用户对应本系统的唯一标识以备系统其他功能和服务调用。至此用户注册模块完毕。

2.1.2 用户登录

用户在完成注册这个先决条件后才拥有登录携程-结伴系统的资格,登录界面将是用户面对的第一个系统界面,用户需要正确填写系统注册时填写的用户邮箱和密码并选择相对应的用户权限进行登录,同样,本模块也涉及用户的敏感个人信息,如:用户邮箱、用户密码。为了防止用户个人信息在网络中进行明码传送,系统将对本模块产生的数据进行封装并采用POST方式上传数据库进行用户登录验证,网络服务端在验证通过后将数据返回至View层以供手机客户端获取,手机客户端在获取登录返回值后解析返回数据等到用户登录结果,以决定是否允许用户登录,此时系统将保留用户登录的ID以备系统其他服务和功能调用。至此用户登录模块完毕。

2.1.3 修改个人信息

在此模块用户可以修改除了注册时填写的E-mail之外可以修改任何其他个人信息,用户E-mail注册时一经填写将不得再修改,这样才能保证系统的安全与稳定。

2.2 Together模块

2.2.1 Together浏览

这是用户登录携程-结伴系统成功后,与用户进行交互的第一个界面,在这个功能模块上将集合系统所能提供的大部分服务与功能。用户浏览其他系统发布的Together信息并在用户选择某条信息后出示本条信息的详细内容以供用户判断和决策是否是自己需要的交互内容,为用户以后选择是否加入本Together提供判断依据。本模块不涉及用户的隐私内容所以需要做到尽量以最少的数据流量传送更多的有价值的信息,较之于XML格式数据传送,我们选用了JSON格式,它拥有更少的信息流量消耗和解析数据流系统资源消耗,虽然信息未经编码,但是仍能满足安全性需求。这样就在安全性和实用性上做到了平衡。

2.2.2 用户Together发布

Together发布模块是系统用户发布信息与其他用户产生交互的主要途径,在本模块用户需要按照系统约定的Together模式发布自己的Together信息,Together信息一经发布即刻生效,系统将在第一时间将用户发布的Together信息输出到每一个系统用户的手机上,做到随时随地共享Together信息。由于本模块不需要较高的安全性并且要求较高的及时性所以本模块依然采用GET方式请求与解析JSON数据开发,以满足用户对时效的需求。用户在填写完成Together并上传成功后,系统将返回Together发布情况结果以告知用户Together信息发布结果和当前系统状态。至此Together发布模块结束。endprint

2.2.3 加入Together

用户在浏览其他用户发布的Together信息后,已经发现志同道合的Together信息就可以进行加入操作,系统将判断此用户是否有加入的权限并在用户提交加入请求后返回加入结果以告知用户。系统对开放联系方式的Together发布者一并返回此Together发布者的联系方式以便发起者和进行线下交互。Together模块还将将用户的加入信息存入数据库以备其他查询模块调用。至此用户加入Together模块完毕。

2.2.4 Together留言

用户在浏览其他用户发布的Together信息后可以对此Together发布留言询问相关内容等,方便系统用户交流。

2.3 管理员模块

管理员模块分为用户账号管理和Together信息管理。包含了这两个系统信息的基本管理功能。

2.3.1 用户账号管理

主要实现对违规用户的删除。管理员一经发现用户发布的Together涉嫌违反法律法规以及用户服务条款协议的,就有权对该用户账号进行删除并在后台级联删除用户之前发布的一切信息进行删除,实现此功能就保证了系统的和谐与稳定,对用户日常使用本系统带来便利,并有效杜绝虚假和垃圾信息对用户造成的不良影响。

2.3.2 Together信息管理

Together信息管理主要包括对用户发布不合乎规定的信息的删除,管理员在此有权视其发布者违规情节轻重决定:(1)只删除此条Together信息。(2)删除此条Together信息发布者并级联删除此人发布的一切信息。这是在保护用户享有本系统提供的服务的情况下尽可能的保证本系统的干净和用户获取信息时的高效。

2.4 好友模块

好友管理模块分为添加好友、删除好友与特别关注好友Together,这三个主要功能。

2.4.1 添加好友

用户在浏览其他用户发布的Together如果发现其发布者甚合心意确为志同道合之人,这就完成了系统设计的首要需求。这时就可以发起加此人为好友的申请,该申请信息将上传至系统服务器。系统在响应到用户加好友的申请时,将进行审核和逻辑处理,若审核通过就将计入后台数据库完成用户加好友的请求,此时服务器返回对用户该请求的处理结果已告知用户。

2.4.2 删除好友

用户在添加好友后可以随时删除好友,删除好友完全是用户自主行为,其他任何人包括管理员不得干预,系统在响应到用户删除好友的请求后,将在数据库删除其与该用户的好友关系,系统将返回对该请求的处理结果,完成删除好友的功能。

2.4.3 特别关注好友Together

用户一经添加其他用户为好友后,系统将自动为其添加好友Together特别关注,用户只要在特别关注界面查看Together信息,系统将在第一时间进行好友Together的推送,方便用户茫茫人海中更快捷的接收到志同道合的人发送的信息,方便用户的交流。携程-结伴系统的功能模块如图1所示。

3 数据库设计

3.1 数据库表结构

良好的数据库设计会使一个优秀的系统如虎添翼,无论在效率上还是在安全上都会得到巨大的提升,所以在本系统数据库表设计之初我们就考虑到了将数据库规范模式应用到本系统中。携程-结伴系统中的数据库表以按照3NF范式规范建立,数据库表中既不包含传递依赖也不包含部分依赖,做到减少插入异常、删除异常和更新异常,保证数据库安全平稳运行。

3.2 存储过程设计

为了实现更高效的后台数据处理和更安全的数据库操作,我们在后台数据库创建了完善的存储过程机制,利用存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。使用存储过程能够增强对执行计划的重复使用,由此可以通过使用远程过程调用(RPC)处理服务器上的存储过程而提高性能。存储过程可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力并且使代码精简一致,一个存储过程可以用于应用程序代码的不同位置。其次存储过程能增强数据库及系统安全性,

通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;提高代码安全,防止SQL注入。因此我们在携程-结伴系统中大量的使用了存储过程处理数据库数据。

4 结语

该系统客户端平台为面向Android的移动端开发,服务端为基于JavaEE的服务器端开发。其中Android平台运用了Java语言开发并集合了Android所提供的ADK,但系统并不局限于封装层的ADK而是在底层重构了HTTP协议等模块,这样就从根本上使每个模块都恰当的适应本系统的特定需求,大大提高了系统的性能。在服务端实现了MVC架构并运用了工厂模式、单例模式等设计模式实现了良好的程序扩展性和低耦合性,甚至代码不需要做过多修改就可以在不同种类的数据库、服务器上部署,这样的设计达到了易于使用便于修改的目的。

参考文献

[1] 吕海东,张坤.JavaEE企业级应用开发实例教程[M].北京:清华大学出版社,2010:45-167.

[2] 叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社,2006:134.

[3] 王永贵.Java高级框架(Struts2+Spring

+Hibernate)应用开发案例教程[M].北京:清华大学出版社,2012:35-266.

[4] 佘志龙,陈昱勋,郑名杰,等.Google Android SDK开发范例大全[M].3版,北京:清华大学出版社,2012:45-90.

[5] 邓凡平.深入理解Android[M].北京:机械工业出版社,2012:50-126.endprint

2.2.3 加入Together

用户在浏览其他用户发布的Together信息后,已经发现志同道合的Together信息就可以进行加入操作,系统将判断此用户是否有加入的权限并在用户提交加入请求后返回加入结果以告知用户。系统对开放联系方式的Together发布者一并返回此Together发布者的联系方式以便发起者和进行线下交互。Together模块还将将用户的加入信息存入数据库以备其他查询模块调用。至此用户加入Together模块完毕。

2.2.4 Together留言

用户在浏览其他用户发布的Together信息后可以对此Together发布留言询问相关内容等,方便系统用户交流。

2.3 管理员模块

管理员模块分为用户账号管理和Together信息管理。包含了这两个系统信息的基本管理功能。

2.3.1 用户账号管理

主要实现对违规用户的删除。管理员一经发现用户发布的Together涉嫌违反法律法规以及用户服务条款协议的,就有权对该用户账号进行删除并在后台级联删除用户之前发布的一切信息进行删除,实现此功能就保证了系统的和谐与稳定,对用户日常使用本系统带来便利,并有效杜绝虚假和垃圾信息对用户造成的不良影响。

2.3.2 Together信息管理

Together信息管理主要包括对用户发布不合乎规定的信息的删除,管理员在此有权视其发布者违规情节轻重决定:(1)只删除此条Together信息。(2)删除此条Together信息发布者并级联删除此人发布的一切信息。这是在保护用户享有本系统提供的服务的情况下尽可能的保证本系统的干净和用户获取信息时的高效。

2.4 好友模块

好友管理模块分为添加好友、删除好友与特别关注好友Together,这三个主要功能。

2.4.1 添加好友

用户在浏览其他用户发布的Together如果发现其发布者甚合心意确为志同道合之人,这就完成了系统设计的首要需求。这时就可以发起加此人为好友的申请,该申请信息将上传至系统服务器。系统在响应到用户加好友的申请时,将进行审核和逻辑处理,若审核通过就将计入后台数据库完成用户加好友的请求,此时服务器返回对用户该请求的处理结果已告知用户。

2.4.2 删除好友

用户在添加好友后可以随时删除好友,删除好友完全是用户自主行为,其他任何人包括管理员不得干预,系统在响应到用户删除好友的请求后,将在数据库删除其与该用户的好友关系,系统将返回对该请求的处理结果,完成删除好友的功能。

2.4.3 特别关注好友Together

用户一经添加其他用户为好友后,系统将自动为其添加好友Together特别关注,用户只要在特别关注界面查看Together信息,系统将在第一时间进行好友Together的推送,方便用户茫茫人海中更快捷的接收到志同道合的人发送的信息,方便用户的交流。携程-结伴系统的功能模块如图1所示。

3 数据库设计

3.1 数据库表结构

良好的数据库设计会使一个优秀的系统如虎添翼,无论在效率上还是在安全上都会得到巨大的提升,所以在本系统数据库表设计之初我们就考虑到了将数据库规范模式应用到本系统中。携程-结伴系统中的数据库表以按照3NF范式规范建立,数据库表中既不包含传递依赖也不包含部分依赖,做到减少插入异常、删除异常和更新异常,保证数据库安全平稳运行。

3.2 存储过程设计

为了实现更高效的后台数据处理和更安全的数据库操作,我们在后台数据库创建了完善的存储过程机制,利用存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。使用存储过程能够增强对执行计划的重复使用,由此可以通过使用远程过程调用(RPC)处理服务器上的存储过程而提高性能。存储过程可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力并且使代码精简一致,一个存储过程可以用于应用程序代码的不同位置。其次存储过程能增强数据库及系统安全性,

通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;提高代码安全,防止SQL注入。因此我们在携程-结伴系统中大量的使用了存储过程处理数据库数据。

4 结语

该系统客户端平台为面向Android的移动端开发,服务端为基于JavaEE的服务器端开发。其中Android平台运用了Java语言开发并集合了Android所提供的ADK,但系统并不局限于封装层的ADK而是在底层重构了HTTP协议等模块,这样就从根本上使每个模块都恰当的适应本系统的特定需求,大大提高了系统的性能。在服务端实现了MVC架构并运用了工厂模式、单例模式等设计模式实现了良好的程序扩展性和低耦合性,甚至代码不需要做过多修改就可以在不同种类的数据库、服务器上部署,这样的设计达到了易于使用便于修改的目的。

参考文献

[1] 吕海东,张坤.JavaEE企业级应用开发实例教程[M].北京:清华大学出版社,2010:45-167.

[2] 叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社,2006:134.

[3] 王永贵.Java高级框架(Struts2+Spring

+Hibernate)应用开发案例教程[M].北京:清华大学出版社,2012:35-266.

[4] 佘志龙,陈昱勋,郑名杰,等.Google Android SDK开发范例大全[M].3版,北京:清华大学出版社,2012:45-90.

[5] 邓凡平.深入理解Android[M].北京:机械工业出版社,2012:50-126.endprint

2.2.3 加入Together

用户在浏览其他用户发布的Together信息后,已经发现志同道合的Together信息就可以进行加入操作,系统将判断此用户是否有加入的权限并在用户提交加入请求后返回加入结果以告知用户。系统对开放联系方式的Together发布者一并返回此Together发布者的联系方式以便发起者和进行线下交互。Together模块还将将用户的加入信息存入数据库以备其他查询模块调用。至此用户加入Together模块完毕。

2.2.4 Together留言

用户在浏览其他用户发布的Together信息后可以对此Together发布留言询问相关内容等,方便系统用户交流。

2.3 管理员模块

管理员模块分为用户账号管理和Together信息管理。包含了这两个系统信息的基本管理功能。

2.3.1 用户账号管理

主要实现对违规用户的删除。管理员一经发现用户发布的Together涉嫌违反法律法规以及用户服务条款协议的,就有权对该用户账号进行删除并在后台级联删除用户之前发布的一切信息进行删除,实现此功能就保证了系统的和谐与稳定,对用户日常使用本系统带来便利,并有效杜绝虚假和垃圾信息对用户造成的不良影响。

2.3.2 Together信息管理

Together信息管理主要包括对用户发布不合乎规定的信息的删除,管理员在此有权视其发布者违规情节轻重决定:(1)只删除此条Together信息。(2)删除此条Together信息发布者并级联删除此人发布的一切信息。这是在保护用户享有本系统提供的服务的情况下尽可能的保证本系统的干净和用户获取信息时的高效。

2.4 好友模块

好友管理模块分为添加好友、删除好友与特别关注好友Together,这三个主要功能。

2.4.1 添加好友

用户在浏览其他用户发布的Together如果发现其发布者甚合心意确为志同道合之人,这就完成了系统设计的首要需求。这时就可以发起加此人为好友的申请,该申请信息将上传至系统服务器。系统在响应到用户加好友的申请时,将进行审核和逻辑处理,若审核通过就将计入后台数据库完成用户加好友的请求,此时服务器返回对用户该请求的处理结果已告知用户。

2.4.2 删除好友

用户在添加好友后可以随时删除好友,删除好友完全是用户自主行为,其他任何人包括管理员不得干预,系统在响应到用户删除好友的请求后,将在数据库删除其与该用户的好友关系,系统将返回对该请求的处理结果,完成删除好友的功能。

2.4.3 特别关注好友Together

用户一经添加其他用户为好友后,系统将自动为其添加好友Together特别关注,用户只要在特别关注界面查看Together信息,系统将在第一时间进行好友Together的推送,方便用户茫茫人海中更快捷的接收到志同道合的人发送的信息,方便用户的交流。携程-结伴系统的功能模块如图1所示。

3 数据库设计

3.1 数据库表结构

良好的数据库设计会使一个优秀的系统如虎添翼,无论在效率上还是在安全上都会得到巨大的提升,所以在本系统数据库表设计之初我们就考虑到了将数据库规范模式应用到本系统中。携程-结伴系统中的数据库表以按照3NF范式规范建立,数据库表中既不包含传递依赖也不包含部分依赖,做到减少插入异常、删除异常和更新异常,保证数据库安全平稳运行。

3.2 存储过程设计

为了实现更高效的后台数据处理和更安全的数据库操作,我们在后台数据库创建了完善的存储过程机制,利用存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。使用存储过程能够增强对执行计划的重复使用,由此可以通过使用远程过程调用(RPC)处理服务器上的存储过程而提高性能。存储过程可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力并且使代码精简一致,一个存储过程可以用于应用程序代码的不同位置。其次存储过程能增强数据库及系统安全性,

通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;提高代码安全,防止SQL注入。因此我们在携程-结伴系统中大量的使用了存储过程处理数据库数据。

4 结语

该系统客户端平台为面向Android的移动端开发,服务端为基于JavaEE的服务器端开发。其中Android平台运用了Java语言开发并集合了Android所提供的ADK,但系统并不局限于封装层的ADK而是在底层重构了HTTP协议等模块,这样就从根本上使每个模块都恰当的适应本系统的特定需求,大大提高了系统的性能。在服务端实现了MVC架构并运用了工厂模式、单例模式等设计模式实现了良好的程序扩展性和低耦合性,甚至代码不需要做过多修改就可以在不同种类的数据库、服务器上部署,这样的设计达到了易于使用便于修改的目的。

参考文献

[1] 吕海东,张坤.JavaEE企业级应用开发实例教程[M].北京:清华大学出版社,2010:45-167.

[2] 叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社,2006:134.

[3] 王永贵.Java高级框架(Struts2+Spring

+Hibernate)应用开发案例教程[M].北京:清华大学出版社,2012:35-266.

[4] 佘志龙,陈昱勋,郑名杰,等.Google Android SDK开发范例大全[M].3版,北京:清华大学出版社,2012:45-90.

[5] 邓凡平.深入理解Android[M].北京:机械工业出版社,2012:50-126.endprint

猜你喜欢
携程
携程被批“捆绑销售” 公司紧急整改
携程+ 去哪儿= ?