利用接口技术快速开发“解放助行网”项目

  • 优秀论文奖
  • 文章作者:中国新闻技术工作者联合会 2021/12/30-04:43 阅读: loading...

    郑 琼 王进华

    (解放日报集团)

    [摘 要] 利用定向功能软件接口开发定制软件,可以大大加快软件的开发速度。“解放助行网”就是利用这种方式进行的一次软件开发尝试。[关键词] 定向功能软件接口 地图显示 单点登录 短信 1 项目背景以往我们为满足用户的软件项目需求时,通常有两种解决方法:一种方法是采用直接部署成熟软件产品,优点是时间短、见效快、系统较稳定;缺点是难以完全满足用户需求,一些特定的要求无法实现。另一种方法是完全定制开发项目,优点是理论上能够完全满足用户需求(实际上用户需求也会根据开发情况作出必要的调整),缺点是时间长、见效慢、系统稳定性较差。最近几年,IT业界出现了定向功能软件极大丰富的新趋势,即:软件公司将某一种功能做深做透,然后通过开放调用接口、完善技术文档、甚至公开代码等方式鼓励其他软件开发人员直接调用该软件接口,简化软件开发工作。顺应这一新趋势,根据当前各种软件功能调用接口日益丰富的实际情况,我们感到开发软件项目可以有一种新的方法,即:充分利用各种成熟软件产品的调用接口,在此基础上按照用户需求及特定要求开发定制软件。2011年底,我们即按照这一思路开发了“解放助行网”。2011年9月,解放日报集团搬迁到闵行莘庄地区后为集团员工提供了良好的停车条件,集团内不少员工也购买了私家车。为了节能环保、资源共享,同时也为倡导互帮互助,集团领导考虑在集团内部建立拼车系统。借助这一系统,有车的同事可以在网站上自愿地公布自己的发车时间、行车路线,供其他同事查看,达到拼车合乘的目的。集团领导将这一任务交给了我们信息技术中心,并要求能够尽快建成、为集团员工服务。 2 主要功能接受开发“解放助行网”的任务后,我们首先研究了互联网上已有的一些拼车系统,感到其中比较完善的拼车网站还很少,其主要形式以论坛为主,车主会在论坛上发帖简单说明情况,搭车用户有需求时通过论坛站内信发给车主,再由车主自行联系搭车用户。也就是说,车主必须登录论坛后才有可能知道是否有人需要搭车,然后还要和搭车人进行联系。而且非常重要的一个问题是,这些论坛基本上都没有路线检索功能,路线信息主要依靠论坛的板块进行划分。比如,你想要从人民广场搭车到徐家汇,进入论坛后就只能选择到人民广场的板块下逐一寻找,一条一条地看帖。这样,帖子一多,信息就非常零乱,查找非常不便。我们觉得虽然搭建这样一个论坛比较方便,但是不能满足集团的长远需要,因此我们决定自主系统开发。经过前期调研和需求分析,我们设计的“解放助行网”主要功能和流程如下:

    图1 “解放助行网”主页

    2.1 用户注册注册时需要填写姓名、部门、手机等必要信息。不仅鼓励车主注册成为用户,为大家提供搭车便利;而且要求搭车人注册成为用户,方便他们查找搭车信息、甚至自主发布搭车需求,主动寻求车主帮助。车主主动提供拼车信息以及实际提供搭车便利都可以获得积分奖励。2.2 发布信息用户注册完毕登录系统后,即可自主发布信息。一方面,车主可以发布车辆行驶信息,填写起点和终点后,系统会自动在地图上生成路线图,如果对系统自动生成的路线不满意,可以在路线的关键点上拖曳修改。然后再确认发车时间、可提供座位数等信息,完成信息发布。另一方面,想要搭车的用户在登录系统后,也可以自主发布自己希望搭车前往的目的地、路线及时间等信息。2.3 搭车配对进入“解放助行网”的主页面后,在车主发布的拼车信息下面有“我要拼车”按钮,如果搭车人看到这条线路的基本信息后想要搭乘,只要点击“我要拼车”按钮,系统即会将供需双方配对成功。如果这条拼车信息中的搭车人数已满(达到车主能够提供的搭车座位数),那么“我要拼车”按钮就会自动消失,仅显示已经成功搭车的人员。与此类似,在搭车人发布的拼车需求信息下面也有“我要拼车”按钮,车主看到这条信息后同样可以通过点击这一按钮而配对成功,主动提供帮助。 2.4 短信通知在车主和搭车人的信息在“解放助行网”平台上配对成功后,系统即以短信形式将双方的详细信息分别发给对方,并确认搭车成功的信息。如果情况发生变化,车主取消发车、更改线路或搭车人取消搭车,在网上平台操作后,系统在取消拼车配对的同时,同样会以短信通知双方。3 技术难点在“解放助行网”的实际开发过程中,我们考虑了许多技术点:如何方便车主发布信息,已经发布过的信息如何不再重复填写,经常发布的上下班时间线路是否可以选择按星期、甚至按月份相对固定,后台的管理界面等等。其中,有些功能比较容易实现,我们在开发过程中着重考虑并予以解决的难点主要有以下三个。3.1 基于地图的可视化界面和区域模糊查询功能我们在设计“解放助行网”的时候,首先希望用户能够在地图上直观地点击出发点、目的地和行车路线。与此同时,我们希望能够在一定的地理位置区域内进行模糊查询,例如:如果用户检索“人民广场”(位于上海市中心),那么只要是在人民广场周边一定范围内的拼车线路都会能够被系统检索出来,哪怕该拼车线路实际填写的行车线路经过地点是“上海书城”(位于福州路,距离人民广场不远)。即进行基于地图的具体地理位置查询,并覆盖周边区域,而不是像论坛那样仅仅进行简单的标题检索。3.2 基于单点登录的系统融合性和可扩展性我们在设计“解放助行网”的时候,考虑必须具备相对完善的用户管理系统,能够通过单点登录方式,提供用户名、密码、权限等关键数据接口,以便与集团内部现有的其他软件系统方便地实现融合,特别是和集团内部OA用户系统的集成;同时也要方便以后在“解放助行网”的基础上进行功能扩展,比如增加论坛、博客等模块。与此同时,“解放助行网”的用户管理系统也应该保留自己特有的一些用户信息,比如车牌号、奖励积分等。3.3 基于公共通信网络的便捷联系方式我们在设计“解放助行网”的时候,感到要提高系统的利用率,就必须首先提高系统应用的便捷程度。原有论坛那种发布信息后,还需要车主不断登录查看的方式,是难以忍受的。我们希望“解放助行网”的用户(车主或搭车人)发布信息后,无需再费时费力地查看、关注自己的信息,系统配对成功后能够自动通知用户。在车主和搭车人均确认拼车信息后,也不用再担心情况变化,因为如果情况发生变动,系统也会根据变动的信息自动通知其他相关人。总之,无论是车主还是搭车人都只需花费极少的精力。 4 解决方法我们在解决以上三个难点的时候,并没有采用传统的完全定制开发项目的方法,而是采用了成熟软件产品的调用接口,在此基础上按照需求调用开发,比较顺利地解决了问题。实际开发过程中,我们的精力主要花在根据需求寻找合适的成熟软件产品,研究使用相关的调用接口上。4.1 Google Maps Api技术帮助我们快速实现了基本地图功能通过研究比较,我们选择了Google Maps Api接口实现基本地图功能。Google Maps Api基于Google Maps,能够使用 JavaScript 将 Google Maps 嵌入网页中。Api支持ie、firefox、safari、google chrome等浏览器,提供了大量实用工具用以处理地图,支持通过各种服务向地图添加内容,调用接口也比较方便。Goolge Maps Api的调用帮助我们解决了网页中搭车路线的显示问题,只要输入起点和终点的路名地址,地图就可以自动显示行车路线。如果对路线不满意,还可以通过在路线中添加关键点的方式修改。在此基础上,我们自创了一个网格算法来完成区域模糊查询功能,见图2。

    利用网格算法,我们默认为地图画上网格,每个网格标上唯一的数字编号。例如,根据A点的经纬度,我们可以判断出A点所在的位置是23方格,默认周围的12、13、14、22、24、32、33、34都属于该发车点附近区域。在检索路线的时候,输入地址后,系统利用Google Maps的Api接口先将这个地址转换成地图上的具体位置,然后算出经纬度,再根据经纬度算出该点落在哪个方框中。只要该方框的数值是属于12、13、14、22、23、24、32、33、34这些数值中的任一个,系统就判定该地点在拼车路线附近,相关已有的拼车路线就会被检索出来。通过这种方式,用户检索到的发车路线比原有的论坛方式大幅度增加,明显提高了拼车路线的可选择性,见图3。

    图3 基于地理位置的检索

    4.2利用康盛公司的Ucenter用户中心完成单点登陆、帮助网站功能扩展

    图4 ucenter的用户系统

    搭建一个用户系统并不难,问题是在设计之初,各个系统独立开发,彼此并不相关;在应用一段时间后,再想实现单点登录,就需要改变各个程序的登录代码和接口,可以说,涉及到多个系统的单点登录非常麻烦。因此,我们在设计之初,就考虑利用Ucenter来完成用户的单点登录功能,方便和第三方的用户整合。Ucenter 是康盛公司开发的开放软件,主要用于用户系统管理、单点登录,可以很好地整合其他产品,实现用户的一站式注册、登录、退出及社区数据的交互。该软件提供了java、php、asp等多种程序接口。为了方便以后个性化的用户信息维护、积分管理,我们在“解放助行网”的用户数据库中建立了用户数据表、积分表。用户注册时,先在Ucenter系统中进行注册,同时利用Ucenter的接口将用户名和密码等我们需要的信息传回给“解放助行网”系统的用户数据库并予以保存。用户登录、注销,也都是先由Ucenter系统进行处理,返回成功或者失败的逻辑值,由“解放助行网”用户管理系统根据这些信息来进行相关处理,见图4。这样建立的用户系统有两大好处:一是成功解决了单点登录的需求。今后,如果“解放助行网”需要增加应用模块,只要再分别做好和Ucenter的第三方整合,即可以顺利融入现在的系统。二是成功保留了我们自己用户的相对独立性。由于用户的详细信息同时建在我们自己的数据库中,不受Ucenter用户系统的限制,因此在我们的后续程序开发过程中,用户的登录次数、积分规则、注册信息项目、用户数据统计等,都不受Ucenter的限制,程序开发非常方便。4.3 利用移动企信通接口完成短信实时提醒功能鉴于现在手机几乎成了每个人的随身必带品,短信联系非常方便,因此我们采用短信方式作为“解放助行网”发布通知和实时消息的工具。经比较,我们选择了中国移动的企信通平台。该平台提供了各种编程接口,可以非常方便地和程序互接,还可以实现群发功能。一旦车主撤销发车信息,已经成功配对搭车的多名用户都会收到短信通知,非常方便。 5 实施效果由于我们是在成熟软件产品的接口基础上进行开发,因此我们自己的开发工作重点是数据库的设计、流程的规划、算法的研究,自己直接编码的工作量并不太多。整套“解放助行网”系统的开发非常顺利,仅用时一个月就基本完成并投入了实际试运行。“解放助行网”从2011年9月试运行到现在,已经成功发布了1000多条信息,服务集团职工1000人次,受到了集团员工的欢迎。中共中央政治局委员、上海市委书记俞正声同志来解放日报集团视察时也肯定了“解放助行网”的策划思路和社会意义。目前,我们正在积极考虑进一步拓宽“解放助行网”的功能,初步打算在移动平面介质上进一步开发各项功能,特别是增加用户反馈的模块,以期把它做成一个软件产品,能够在更多的场所、让更多的用户来使用它。时间就是成本、效率就是收益,开发软件项目并非都要从最底层的代码做起。 编辑:中国新闻技术工作者联合会

    评论 点击评论