定位服务开发的技术环境

LBS英文全称为Location Based Services,是广泛应用于移动互联网领域的一项网络技术,将GIS技术、通信技术、移动定位技术和数据库技术相互融合,它的商业价值体现在两个层面:一是确定移动设备或用户所在的地理位置;二是通过提供的位置查找相关信息服务。我

        LBS英文全称为Location Based Services,是广泛应用于移动互联网领域的一项网络技术,将GIS技术、通信技术、移动定位技术和数据库技术相互融合,它的商业价值体现在两个层面:一是确定移动设备或用户所在的地理位置;二是通过提供的位置查找相关信息服务。我们也可以简称为"定位服务"。
        近年来,随着移动通信技术不断蓬勃发展,3G、4G概念相继提出,移动信息服务正逐渐渗透到人们生活、工作的各个领域中。基于位置的信息服务(LBS)日益成熟。美国科技博客ReadWriteWeb刊文,移动应用市场的3大趋势,分别为HTML5的逐渐成熟、地理位置服务(LBS)的全面兴起,以及开发者服务的发展。据有关数据显示,2012年,中屆移动无线城市门户在全国各地上线,基于位置的便民信息服务己经成为重要亮点,2012年7月,已有19个省的30余项位置类创新应用上线,主要聚焦在交通出行、生活服务、消费购物等领域,服务人数超过5000万,全方位满足民众的衣、食、住、行。基于移动位置的应用和服务,具备點合基于SOLOMO (社交+本地化+移动)概念下多种应用服务的特质,因此会在诸多移动互联网应用中脱颖而出,成为移动互联网时代新的爆发点和推动因素。
        目前国外比较典型的位置服务应用有foursquare,成立于2009年,截至2011年6月已经发展了 1000多万会员,实现日均签到超过300万。国内也出现了较多类似的服务提供商,如街旁、贝多、嘀枯、开开等,一些传统的社交或社区类服务提供商也在寻求各种介入方式,如人人网、新浪微博、开心网等等。现在,基于位置服务的“周边位置应用”正在兴起,例如Highlight、Glancee等,突破了 Foursquare单调的签到模式。不过,这类应用只吸引了一些尝鲜的用户,没有真正推广至大众市场。目前基于移动位置的应用和服务,同质化严重,缺少创新,如何增加自身服务的用户粘性以及用户隐私的保护是急需解决的问题。
        手机地图出行应用的概念经常出差的人以前下飞机或火车的第一件事,就是花一两元钱买一份城市地图,但这己经成为过去,现在流行用智能手机查地图了,手机地图己经渗透到智能手机用户的日常生活中。由于城市建设日新月异,不仅仅是到陌生城市出差或旅游的人需要查地图,即便生活在熟悉城市的人们同样离不开地图的指引。LBS (基于位置的服务)、020 (线上线下服务)等热门的移动互联网业务也都需要手机地图的支撑。
        手机地图,是指用户在手机上利用GPS技术实现精确定位,并使用WAP方式或客户端方式,通过移动通信网络与手机地图应用服务器互联通信,查找自己、好友的位置信息,查询行车路线、查询周边兴趣点信息的一种与地理信息相关的位置服务业务。手机地图为您提供了一种便捷实用的掌上地图,您可以查询食、玩、行全方位城市信息、查找自己和好友的位置、查找道路信息,成为您的随身向导,轻松畅游城市,毫无后顾之忧。
1 B/S结构
        目前,管理类系统开发常用的是B/S(Browser/Server,浏览器/服务器)和C/S(Client/Server,客户端/服务器)这两种结构,B/S结构主要有分布性强、维护方便、开发简单、易共享并且成本低的特点,相比较C/S结构,B/S结构的管理系统在安装、升级、维护等方面都有明显的优势。它对设备及操作系统要求低,只要有浏览器便可随时随地的使用管理系统。
定位服务开发的技术环境
2 开发语言及开发工具
2.2.1 Java开发语言
        Java是一种跨平台,适用于分布式计算环境的面向对象的编程语言。 具体来说,它具有如下一些特性:简单性、分布式、面向对象、继承性、平台无关、可靠、安全、多线程、高性能、动态性、可移植等。
   一、面向对象
        面向对象实质上是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中的任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式可将过程式编程语言表示为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
      所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性与行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
    二、多态性
        具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。
    三、继承性
        继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。
    四、平台无关性
        Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源代码级平台无关,表明用C或C++写的应用程序不用修改只需重新编译就可以在不同平台上运行。
        Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。
        Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个 Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。
    五、分布式
        分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。 Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。
    六、可靠性和安全性
       Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。
      由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
上述几种机制结合起来,使得Java成为安全的编程语言。
2.2 Eclipse开发工具
        Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
        Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。Eclipse项目IBM发起,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red HatSybase等。Eclipse是一个开放源码项目,它其实是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。
2.3  Android Studio开发工具
        Android Studio是Google推出,专门为Android“量身订做”的,它不仅具有速度快、界面美观、智能程度高等优点,同时整合了Gradle构建工具,内置终端,可以方便快速地进行工程及源码的管理。

原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.sbvv.cn/chachong/643.html,文章版权申述

(0)
上一篇 2017年9月18日 上午12:56
下一篇 2017年9月18日 上午1:10

相关推荐

My title page contents