1.1 服务端LAMP开发框架与开发技术
   LAMP框架(Linux-Apache-MySQL-PHP),是目前最主流的服务端WEB框架,是很多运营商都使用其进行WEB架构开发,譬如淘宝。而使它拥有这样主流地位的是它多重复合型的优点:通用性强兼容性好、可支持跨平台操作、性能更高、价格更低,这些都让它从众多架构中脱颖而出。由此可见,从性价比及其他任何一个方面考虑,LAMP框架都是被拿来搭建企业WEB网站的不二之选。
 
   下面我们要解释一下L-A-M-P几个字母的含义:
   L是Linux操作系统。它历史悠久且完全免费,在发展过程中拥有很多不同版本,诸如Red Hat、Ubuntu、SUSE、Linux、CentOS,以及以上这些版本的企业级版。经过很多次的调整,现在的Linux系统具有极强的试用性,非常适合开发WEB。其中,又属centos使用得最多,最适合做服务器操作平台。由于来自红帽公司,因此和红帽系统一样,具有相同的源代码,且均支持免费下载,也可以在线更新,可以说是红帽企业版的简化版。
图1-1是LAMP的服务器端系统开发架构示意图
 
   A是Apache,通俗来讲就是WEB服务器,是一个核心的WEB server。它具有诸多优点:首先源代码完全开发,使得使用它的人非常多,可以根据需求去改动,成功案例多,无形中降低了成本;其次功能模块丰富,功能强大;最后,运行足够稳定,使得产品运行有保证。但金无足赤的是它占用大量内存和CPU,需要在性能较好的硬件和服务器上运行。
 
   M是MySQL,即数据库技术。在众多开源数据库中,MySQL因集合了多功能、高性能、强稳定性而成为最具竞争力的数据库服务软件,是很多开发人员的首选。开发系统时,WEB服务器和数据库服务器要在同一台计算机上搭建,但是到了实际操作中,则往往分开,需要一台新的计算机支持数据库运行,这样做的目的是为了满足访问量。如果访问量实在太大,可以用计算机群进一步增大容量,这样就可以避免使用昂贵的Oracle。
 
   P是PHP开发语言,这是一种常见的计算机脚本语言,是常用的开发语言之一,可以由服务器端程序进行解释并且嵌入在静态页面的代码当中,源代码完全开放,用户极广,功能在应用程序的开发中趋于完美。从1994年诞生以来已经经历过若干版本,当前我们使用的主要是PHP5。它的功能非常全面,兼容性也很高,在WEB开发领域具有重要作用:支持数据库编程、链接以及跟踪处理反馈网页上的内容和会话,相比其他的WEB服务器端开发语言。相比其他的WEB开发工具,PHP能够更好的解决应用开发过程中的各种问题。
 
1.2 Android客户端及其开发架构和技术
   2007年,世界上众多的手机大型制造商、电信业务巨头以及软硬件制造业的巨擘在明显感到技术发展、时代发展之后,决定一起开发一款可以手机平台,可以提供智能手机的发展的沃土,这就是安卓(Android)系统,由此迎来了智能手机时代。[18]为了吸引更多的开发者进入Android开发平台,共同提升Android系统的水平,谷歌公司发布多种主流操作系统Android平台的开发工具以及辅助工具同时提供开发文档,并将向公众发布的内核源代码和Android系统下的驱动程序源一部分代码。Android系统源代码具有开放性,任何组织及个人都可以免费使用,这就比源代码具有开发复杂性和封闭性的其他系统更容易吸引软件开发商。软件开发者能够自由地在Android市场发布自己开发的APP,从而激发了更多人学习Android系统的兴趣。
 
   从技术上讲,Android系统的最大优点在于它是基于java语言开发、以LINUX内核作为底层的,从事java和Linux系统开发的开发者非常多,因此原来的java从业者可以快捷的比较容易的转到安卓应用项目的开发中来。
 
1.2.1 Android系统架构说明
   Andorid系统的架构主要由三个部分组成,如图1-2所示,其中三个部分分别是:
安卓系统内核,又有叫Linux Kernel,其中又包含了一个基于2.6以上版本的linux内核,系统内核和应用服务间提供功能调用的SHELL,各项核心服务以及驱动程序等。安卓系统和普通的linux内核没有区别。
 
   自由库和运行环境:在自由库中,安卓各种开发组件都可以使用C/C++库,经过一定的开发设计,还可以使用各种多媒体库、数据库引擎、WEB引擎。
 
   应用程序和应用程序框架:包括电子邮件和日历、电话、手机联系人、地图、浏览器等其他工具;同时支持提供通过API的核心应用框架对其他应用程序的访问,支持组件的重用。
图2-2 Android 架构图例
 
1.2.2 Android平台的特征与优势
   Android是基于Linux内核的移动应用操作系统,Android 最开始是一家完全独立的公司,Google 在2005年预判到移动应用的到来,收购了成立还还不到2年的 Android公司,后来Google又成立开放手机联盟(Open Handset Alliance),联合运营商、手机制造商及半导体公司和软件等公司,共同参与了迭代完善Android相关技术研发,中国的华为、小米等手机制造公司都陆续成为了OHA会员。
 
   Android系统有许多特点,说明如下:
   1)Android系统更开放
   目前市场上90%的智能终端使用的操作系统为Android和IOS,两者之间最重要的区别在于开放性,IOS系统封闭性较强并不对外开放,手机制造商无法开发基于IOS的智能手机,而Android没有限制具有强的开放性并且开源,支持厂商对Android系统进行深度定制和开发,这也是手机厂商选择Android系统的主要原因。
 
   2)Android平台兼容性更好
Android系统制定了接口规范以和数据传输规范,并且对商家及个人提供永久性免费应用服务,无需授权等。所有厂商在开发应用时只需要遵循标准即可,只要是Android系统即可下载就使用应用程序,而IOS应用只可安装到苹果机上,很明显Android平台兼容性更高。
 
   3)Android平台支持Google应用
Android系统是谷歌公司提出的,集成了Google本身强应用性的软件及功能,并且谷歌公司还开发了很多应用,如地图应用等,这些都可简单方便的使用到Android平台上。
 
   4)结构化的数据存储由SQLite来完成 ,这与SQL标准一致;
 
   5)几乎与所有的Audio、video和图像格式兼容;
 
   6)通过GSM芯片可实现手机通话;
 
   7)通过拥有特定功能的芯片可实现3G(4G)通信、无线通信、蓝牙、导航、速度监控等功能;
 
   8)由于Android系统免费且开放的特性,软件开发者能够很好的通过源代码了解内部细节,从而帮助程序员完善自身技术,开发出与系统更加契合的应用程序;
 
   9)优化Dalvik虚拟机,提升了基于安卓系统设计的应用程序的运行速度,保证即便是大型手机游戏也能平稳流畅的运行。
 
   10)我国电信行业三大运营商都在大力开发安卓系统的应用,广泛推广到手机业务当中,以此获得丰厚的利润,而在国外,几乎所有的运营商也都有着同样的策略;
 
   11)帮助软件开发人员摆脱硬件限制,在开发过程中能够更专注于软件本身的设计与开发,手机开发者的开发潜力被挖掘出来;

1.3 3G/4G技术在管护系统中的作用
   根据本系统而言,出于信息安全和数据保密的考虑,所有的公园管护信息以及工单维护信息都要存放在服务器端,客户端只能通过发送申请来接收和上传数据,这样的模式对带宽是一个挑战。如果仍然采用2G技术和TD-SCDMA,则这样的系统必定不会有受众。因此,必须采用3G和4G技术提供查询、访问等服务。
随着移动互联网的普及,国家也陆续的降低了移动流量的资费,如果在园区或者是施工现场在没有wifi的情况下,就可以通过4G技术与移动通信进行服务器数据交换(截至2015年初,中国联通和中国电信尚未正式发行的4G牌照)。
 
1.4 智慧公园管理系统开发模型及设计工具分析
1.4.1  智慧公园管理系统开发模型
   软件开发阶段,进行建模是帮助设计者深入、全面了解软件系统的重要手段,通过建模可以把抽象的设计思路变成可视化的模型,来考察是否符合实际应用中的诸多需求,以及能否应对可能出现的复杂状况。另外,建模还可以用来指导构建系统的行为,规范系统结构;可以让使用者更加清晰的了解到这个软件将要设计出来功能,让使用者评判其中的优缺点,这样就可以使得开发团队更加明确的指导设计方向,更加详细的认识到客户需求,从而设计出更加精准的功能,节省了后续可能因建模不足导致的翻新、重做等问题,节约成本。可以说,建模使得软件设计开发决策变得档案化了。
 
   在设计完成投入使用之后,建模依然起着重要作用,它可以帮助设计人员更好的进行系统功能升级、维护、修复工作,为用户提供必要的技术支持。
 
   智慧公园管理系统也是一种基于构件的模型设计,通过构件建模,便可以在应用设计开发过程中多次使用其中一个或多个构件完成设计,进而达到设计高效率、高质量的目的。本系统融入吸收了喷泉模型众多优势。
 
   构件开发模型作为信息时代潮流中不可或缺的一部分,在整个大环境突飞猛进的时候,自身也在不断做出调整改进,以适应当前乃至以后的开发需求,比如SUN的DCOM、EJB、CORBA、OMG都是与时俱进的典范。利用构件进行模式开发,事实上就是把合适的构件放在合适的位置,并不需要开发者从零开始,因此工作量并不大。而这些合适的构件只要在原有的构件库中进行搜索,找到后可以直接使用,当然如果没有找到,则必须使用面向对象的开发方式进行开发。当开始搭建构件模型时,所有的构件都可以重复使用,这就使得建模的效率会非常高。
   
   但是要注意,由于每一个构件的组装方式、标准都是可以由系统开发人员自行定义的,那么这样就有可能导致几个构件链接在一起时出现不能相互匹配的情况,在运行中系统就会一直处于高风险的状态,无法正常使用。即便时开发完成,也会因为标准和结构的问题影响构件复现率,给升级、维护带来不小的麻烦。以上这些问题就要求建模人员有比较好的开发技术和相关经验。
 
1.4.2  UML分析及设计工具
   UML诞生与上世纪九十年代,原因是传统的建模、软件开发方式已经不能适应快节奏发展的社会。很多个软件开发巨头在传统面向对象软件开发模型的基础上,将很多建模方式融合到一起,从而创立出这样一种新的软件建模语言。之后又经过了多次的完善、修改,从而形成了计算机软件开发业的标杆作品,即UML建模语言。
 
   为了能够使UML语言更好的发挥建模的作用,微软公司看还提供了一些开发工具,比如Rational Rose就是其中非常著名的一款,它可以满足软件开发人员在建模和WEB开发中的种种需求,且可以支持相关解决方案。在一个开发团队中,每一个开发人员、管理员都能够借助相关工具把模型架构变得可视化,从而以高效率的方式分析出结构模型中的源代码,大幅提高工作效率[31]。该系统在建模开发的过程中就采用了Rational Rose辅助工具,下面我们介绍几个常用的功能:
 
   1)基础绘图功能。该工具提供了UML在建模中必备的绘图功能。绘图功能能够将原本抽象建模变成图像化、可视化的模型,能让开发人员免除开发过程中不断想象的困扰,进而提升工作效率。Rational Rose为UML中的不同图像化元素提供了诸多应用方式,包括安装、定义、关联、选择等,当然也包括正确的UML图像方式,以帮助开发人员完成工作更快捷。
 
   2)模型库。软件开发者在模型建构中创建的每一种模型最终都会收集在这个模型数据库中,这样无论从哪个UML中来得模型,都将被其他开发人员看到,从而达到资源共享的目的,更重要的是这个库会经常被维护。由于这个库的存在使得开发工具可以被重复使用且被存档。由于该功能的支持,Rational Rose工具还能完成以下操作:审查,能够检测出开发人员在设计过程中提出的不合理方案;监测不一致,即能够提示开发人员每个图的使用是否与原使用方式一致,从而避免报错;提供报告,能够向使用者提供模型元素中涉及到的一些UML图、相关元素的数据报告。 
 
   3)导航功能。Rational Rose的快速导航功能帮助开发人员准确定位模型,找到相关构件,避免肉眼查找,以高效率的方式构建模型图。
 
   4)代码生成功能。Rational Rose支持将已经构建好的模型中的静态信息(如声明和属性)生成源代码,代码可以选择多种语言,它们大多是在开发过程中频繁使用的数据库和软件语言,包括Ada、JAVA、Visual Basic、CORBA、C++、Oracle。当然这也就是说,如果不是静态信息还是要开发人员自行输入。
 
   5)逆向工程功能。这个功能刚好与代码生成功能相反,是通过读取代码将其转化为UML图式。与上述情况相同,该功能仅适用于静态信息,而对动态信息和结构则束手无策。
 
   6)模型互换功能。所谓互换就是支持在不同的模型格式之间进行调整切换,有利于不同模型之间的相互融合,不会出现反复制作同一内容模型,只是用的格式不同的情况,是一种提高工作效率的有效途径。
 
1.5 二维码技术 
   二维码技术从上世纪80年代末开始出现,在二维码出现之前我们见到更多的是条形码,经过多年的推广应用,在互联网、移动互联网以及传统行业的信息交换领域发挥了不可磨灭的作用。
 
   二维码本身不是信息的主要载体,也不是存储空间,能够存储的仅有少量的信息,记载的少量的信息以01的机器编码的方式存储,虽然存储的信息很少,但是应用巨大,它能够很好起到桥接的作用,能够很好的把虚拟与实体进行连接,就好比一扇门、一座桥。并且在使用上高效快捷,达到信息表现的可见即可得的效果。
   在智慧公园管理系统中二维码的应用主要体现在以下几个方面:
   
   1)对公园的巡查管护人员的应用主要体现公园的签到上面,即到达公园后扫描二维码可以实现签到打卡的功能,与传统的射频媒介打卡相比不管从性价比还是从操作的便捷性上看都得到了极大的提高。
 
   2)维修管护人员在扫描公园设施的二维码时候,可以实时完善设施的维修信息并同步更新信息到服务器端和客户端。 
 
   3)游客在扫描公园二维码则是理解公园的详情等信息,如果是扫描设施二维码,则可以了解到设施的实时维修管护信息等。
 
1.6 LBS和API 应用
   LBS是Location-Based Service的英文缩写,其含义为基于位置的服务,该服务技术主要使用电信运营商提供的定位方式来实现用户详细地址信息的识别以及传输,如经纬度等,同时将其与GIS系统进行结合,可衍生出许多与位置相关的应用和服务。在目前的网络通信技术,应用较多的定位技术包括全球卫星定位系统以及手机蜂窝定位,这些都能实时识别用户的地理环境。在位置信息识别成功后,可应用到各种场景中,如定位以及导航等,同时可获得用户的历史行为,其只需要联结各个独立的位置点就可获得用户历史轨迹。通过研究用户较长时间的历史轨迹就可以得到用户的行为习惯以及生活特征,从而能为商家以及企业服务,而通过研究某一区域内海量用户的历史数据,则可得到该地区人们的生活习性,如热门旅游路线等。
 
   腾讯公司设计开发了腾讯地图,其可提供地图服务,同时为了方便开发者使用腾讯地图,其开发了相应的接口供调用,从而不需要重复开发。腾讯SDK是免费提供给用户使用的,但是在使用时,必须申请密钥,在调用腾讯SDK时,必须使用正确密钥才可访问。在本系统中采用微信的二次开发接口API调用腾讯地图实现GPS定位功能。
 
1.7 HTTPS通讯协议
   HTTPS(Secure Hypertext Transfer Protocol中文叫安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议。它是一个安全加密通信通道。在本系统中服务器端与APP客户端的交互都采用了https协议,保障了数据传输过程中(主要考虑到维修工单等涉及到金额等敏感信息)数据不被截取而导致不必要的损失。

作者:易龙网络