Text Integer Integer Integer Integer Integer Integer Integer <M> userLocation id Latitude Longitude Time Integer Float Float Date 图3 数据库表结构图 2.4 关键技术 平台在开发过程中,服务器端使用了Struts2115 、Spring、Hibernate 框架技术,ssh 集成框 架是现在比较流行的轻量级集成框架,在很大程度上方便了开发人员对项目的开发和管理。 Struts2 是一款优秀的MVC 控制框架,它以WebWork 为核心,采用拦截器的机制来处理用 户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API 完全脱离开;Spring 是一 个开源框架,是为了解决企业应用程序开发复杂性而创建的,使用基本的JavaBean 来完成 120 以前只可能由EJB 完成的事情;而Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来 操纵数据库。[5]这三个框架相互配合,使得表现与数据分离,从而整个项目在结构上层次分 明,一目了然。 网页客户端使用了JSP、JavaScript 以及Ajax 等技术,手机客户端则基于Android 平台。 125 JSP 的使用使系统可以跨平台运行,具有很好的移植性。JavaScript 的运用使网页和用户之 间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的 内容。DIV+CSS 的运用,使得样式的调整更加方便,内容和样式的分离,使页面和样式的 调整变得更加方便。手机客户端的开发则是基于Android 平台,利用Java 语言,采用Http 通信技术开发而成的。 130 3 系统实现 该平台的客户端与服务器端之间的通信主要基于Http 协议,服务器将数据封装成json 格式,通过response 动作将数据写回给客户端。客户端获得服务器响应的json 数据后,将 这些数据进行解析,然后重新组装成实体类对象,供其他函数进行调用。客户端向服务器请 求数据,并解析的核心代码如下: 135 /** * 根据url 向服务器请求,获得返回的json 数据 * @param url * @return */ 140 private static String getServerData(final String url) { final HttpParams httpParameters = new BasicHttpParams(); // 设置连接超时时间为3 秒 HttpConnectionParams.setConnectionTimeout(httpParameters, 3000); 145 HttpConnectionParams.setSoTimeout(httpParameters, 3000); final HttpClient client = new DefaultHttpClient(httpParameters); HttpPost post; try { 150 post = new HttpPost(new URI(url)); final HttpResponse response = client.execute(post); if (response.getStatusLine().getStatusCode() == 200) { // 请求成功 final HttpEntity entity = response.getEntity(); 155 if (entity != null) { final String out = EntityUtils.toString(entity, "UTF-8"); return out; } 160 } } catch (final Exception e) { e.printStackTrace(); 165 } return null; } /** * 客户端将json 数据解析成实体类,供其他函数调用 170 */ public static ArrayList<User> getUserFriends(){ final String url="http://192.168.1.100:8080/ju/getFriends.action"; 175 final String result = HttpUtil.getServerData(url); try { ArrayList<User> friendsList = new ArrayList<User>(); 180 JSONArray jsonArr = new JSONArray(result); for(int i=0;i<jsonArr.length();i++){ 185 JSONObject obj = jsonArr.getJSONObject(i); User u = new User(); u.setId(obj.getInt("id")); 190 u.setName(obj.getString("name")); u.setPhotoUrl(obj.getString("photoUrl")); u.setSex(obj.getInt("sex")); u.setBrief(obj.getString("brief")); 195 friendsList.add(u); } return friendsList; 200 } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } 205 return null; } 客户端通过定时的向服务器发送请求,更新自己的位置信息,从而使得服务器端可以知 道每一个客户端所在的位置。由于客户端移动的范围性较小,即在较短的时间内,一般都处 于一个相对比较小的范围,所以定时的定位操作可以表征一个客户端实时的位置信息。 210 Android 客户端进行定位的核心代码如下: /** * 客户端获得当前位置信息的代码 */ 215 public Location getCurrentLocation(){ //定义位置管理器 LocationManager locationManager; String context = Context.LOCATION_SERVICE; locationManager = (LocationManager) getSystemService(context); 220 //设置服务商信息 Criteria criteria = new Criteria(); //经度要求 criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); 225 criteria.setBearingRequired(false); criteria.setCostAllowed(false); criteria.setPowerRequirement(Criteria.POWER_LOW); //获得效果最好的criteria String provider = locationManager.getBestProvider(criteria, true); 230 //位置信息 Location location = locationManager.getLastKnownLocation(provider); return location; } 该平台数据采用了mysql5.5 来存储,服务器端的应用程序主要是基于ssh(struts2、spring 以及hibernate)235 框架搭建的,利用maven 来进行项目管理,利用eclipse 集成工具进行开发。 调试开发阶段利用jetty 作为server,最终部署在ngix 服务器上。客户端主要分为两种形式: Browser(浏览器)和Mobile(手机)。浏览器客户端主要向管理人员提供服务接口,负责 系统的后台管理工作,利用jsp、css、javascript 等技术来实现,其运行的主要界面如图4 所 示。在图4 中,系统的管理人员可以浏览相关的日志、商品、系统和客户端版本等管理信息, 240 通过系统管理对整个平台的一些信息和功能进行管理和配置。 图4 系统后台管理主界面 客户端主要面向用户,其开发环境除了eclipse 外,还需要安装AndroidSDK2.2 以及 245 Android 开发插件ADT,客户端运行的主要界面如图5-8 所示。其中图5 是客户端应用的主 界面,提供用户所有的功能的导航作用。图6 是团购信息的浏览界面,提供正在进行中的所 有团购信息。图7 是好友列表的界面,提供了好友信息的列表浏览功能,图8 是附件的人的 信息列表界面,提供了当前客户端附近处于活跃状态的人的列表信息。 图250 5 客户端运行主界面 图6 团购信息浏览界面 图7 好友列表界面 图8 附近的人列表界面 255 在该系统的客户端上,用户可以很方便的浏览团购信息,同时查看自己的好友以及利用 位置服务而得到的周围的人。用户从而可以进一步将自己比较喜欢的商品团购信息推荐给自 己的好友或者周围的人。由于好友之间的信任度比较高,兴趣和价值观具有比较高的相似性, 故通过向好友推荐,能更好的促进团购活动的达成。同样,由于很多商品或者服务具有很明 显的本地性,如电影票、KTV 和餐饮服务等,通过向周围的人推荐,可以提高团购活动的 260 命中率。在图9 中,用户可以在浏览团购信息的时候,通过分享操作,可以很方便的将该团 购推荐给自己的好友或者周围的人。 图9 团购详细信息界面 265 4 结语 本系统将LBS 与SNS 两种思想相结合,以新型的网络团购模式作为载体,构造了新型 的电子商务系统,为用户和商家提供了一个更人性化、更有效率的交易平台。该系统采用以 C/S 为主,B/S 为辅的系统模式,初步实现了移动环境下的团购信息浏览、基于位置的查询、 好友的交互、基于位置和SNS 的推荐和分享、签到等功能。在这样的交易平台下,由于用 270 户直接的可交互性增高,本地化的特征明显,所以在一定程度上提高了用户的活跃性。该系 统同时存在一些可以完善的地方,比如可以设立一些激励机制来促进用户之间的交流和商品 互荐等。目前,基于LBS 和SNS 相结合的电子商务系统尚处于探索阶段,还有许多问题和 困难需要去解决和克服。本系统作为一种尝试,提出了比较系统的构建思路和方法,具有一 定的参考和推广价值。 275 [参考文献] (References) [1] 胡佳佳,谭红杨,苏思斯,丁婕.基于LBS 的网络团购发展探究[J].基于LBS 的网络团购发展探 究,2011,8:47-64. [2] 王利娟,马晓.基于LBS 的移动电子商务商业模式探析.企业导报,2012,2:194-195. [3] 蔡学军, 280 仵博. 基于J2ME-J2EE 的移动电子商务平台的研究与开发[J]. 计算机工程与设 计,2006,27(17):3122-3125. [4] 吴林,秦超.LBS 与SNS 下的信息服务平台设计与实现[J].地理空间信息,2012,10(2):82-85. [5] 百度百科.ssh 框架[OL].[2012.10].http://baike.baidu.com/view/2090973.htm 学术论文网Tag:代写硕士论文 代写论文 代写MBA论文 代写博士论文 |