加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Android平台环境下应用程序架构的设计与实现

Android平台环境下应用程序架构的设计与实现.pdf

Android平台环境下应用程序架构的设计与实现

stonestone
2011-09-27 0人阅读 举报 0 0 暂无简介

简介:本文档为《Android平台环境下应用程序架构的设计与实现pdf》,可适用于IT/计算机领域

华中科技大学硕士学位论文Android平台环境下应用程序架构的设计与实现姓名:罗震申请学位级别:硕士专业:工业工程指导教师:黄金国I华中科技大学硕士学位论文摘要无线通信业和因特网的迅猛发展和融合直接导致了智能手机需求的大幅增长智能手机去年在全球的销量将近亿并且发展势头日益猛烈市场前景一片大好。随着G技术的发展手机的功能越来越强大消费者对智能手机的要求也越来越高这也直接导致了手机软件设计的质量和效率将变得越来越重要。而智能手机软件复杂度与开发周期的矛盾手机系统资源有限与功能众多的矛盾网络下载与安全隐患的矛盾使传统软件开发模式成为智能手机软件开发的严重障碍。为了提高手机软件开发的质量和效率本文提出了在底层平台与上层应用之间设计一个中间架构层建立一个较为稳定的软件开发框架的思想。本文首先对软件架构理论进行了分析在对架构设计的条理性原则和可靠性原则进行了充分权衡之后将该架构分为四层从上到下依次是:应用层安全层业务层和适配层各层相对独立。应用层负责手机应用的初始化、关闭以及相关控件的工作安全层负责保护数据防止病毒木马等恶意攻击业务层负责包装各类手机应用业务并向上提供相关服务给应用层调用适配层则负责与协议栈的数据交互。本文的试验选用Android平台。Android是Google开发的基于Linux平台的开源手机平台为我们提供了一系列的API和开发工具包它包括操作系统、用户界面和应用程序移动电话工作所需的全部软件而且不存在任何以往阻碍移动产业创新的专有权障碍。在本文的最后应用这个架构我们在Android平台上开发出GTalk这款即时聊天软件证实了该架构的可应用性。关键词:Android平台软件架构分层模式消息映射业务代理对象II华中科技大学硕士学位论文AbstractTherapiddevelopmentofwirelesscommunicationandinternettechnology,aswellastheirfusiondirectlyresultintherapiddemandincreaseofsmartphoneInthepastyear,theglobalsalesvolumesofsmartphonereachnearly,,,andthetrendofdevelopmentisincreasinglyevidentandtheforegroundofmarketisbrightWiththedevelopmentofGtechnology,thefunctionsofsmartphonebecomemoreandmorestrong,andcustomers’desiretosmartphonebecomesmoreandmorehigh,whichdirectlyresultinthenecessarythatthequalityandefficiencyofsoftwaredevelopmentonsmartphonesshouldgetmoreimportanceHowever,thecontradictionsbetweensoftwarecomplexityanddevelopmentcycle,betweenlimitationofsystemsourceandthediversificationoffunctionsandbetweendownloadfromnetandsecuritycausethetraditionalmodetobecomeaseriousobstacleofsoftwaredevelopmentonsmartphonesInordertoimprovethedevelopmentqualityandefficiencyofsoftwareonsmartphone,thisthesisproposesawaythatdesignsamiddlearchitecturebetweentheupperapplicationandthelowerplatformsoastoformacomparativelystableframeworkofsoftwaredevelopmentThisarticlefirstmakeaanalysisofthesoftwarearchitecturetheories,thenmakeaseriousconsiderationintheprincipleofcoherenceandthereliability,basedonwhichwedividethewholearchitectureintofourlayers,andtheyareapplicationlayer,securitylayer,businesslayerandadaptivelayerintheorderthatfromuptodown,whicharerespectivelyindependenttootherlayersTheapplicationlayerisresponsiblefortheinitialization,closeofapplicationandthetaskofrelatedcontrollersThesecuritylayerisresponsibleforprotectingdatasoastokeepvirusandtrojanfromattackingthesystemThebusinesslayerisresponsibleforthepackagingofvariousapplicationbusinesses,andprovidestheservicefortheapplicationlayerTheadaptivelayerisresponsibleforthedatainteractionwithprotocolstackInthisthesis,thetestchoosesAndroidplatformAndroidisanopensourcecellphoneplatformbasedonLinuxplatformdevelopedbyGoogle,whichprovidesusaseriesofAPIanddevelopmenttoolkitsItcontainsoperatingsystem,userinterfaceandapplicationsallthesoftwarethecellphoneneedsduringoperation,andthere'snoobstacleinexclusiverightsthatcounteractstheinnovationofmobileindustryIII华中科技大学硕士学位论文Intheendofthisthesis,applyingtoarchitecture,aninstantmessagingsoftwarenamedGtalkisdeveloped,andtheapplicabilityoftheframeworkisconfirmedKeyWords:AndroidplatformsoftwarearchitecturelayeredmodemessagemappingbusinessbrokerobjectIII华中科技大学硕士学位论文独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知除文中已经标明引用的内容外本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本论文属于(请在以上方框内打“√”)学位论文作者签名:指导教师签名:日期:年月日日期:年月日保密□在年解密后适用本授权书。不保密□。华中科技大学硕士学位论文绪论智能手机软件研发现状所谓智能手机是指具有操作系统的手机。从内部来说它支持应用程序的轮转调度和多线程的切换。从外部来看它能够支持第三方软件的安装和应用。从这个意义上来看智能手机完全可以被称为一部小型电脑。乐观的一面在移动市场激烈的争夺中手机的发展已然经过了模拟通讯时代、数字通讯时代、过渡时代、多媒体时代的演变现在已经进入G时代所谓的G超宽频时代也已经初见端倪。人们对智能手机提出越来越新的要求智能手机的功能越来越多现在的移动设备在功能上与PC机的界限已经越来越模糊。实现智能移动已经不仅仅是手机厂商们的梦而是大势所趋人心所向谁也无法阻挡。手机的功能越来越强大消费群体越来越庞大无线因特网也在呈现日新月异的发展两者的结合正是珠联璧合般的完美这正是智能手机产生的良好背景。开源是智能手机发展的一个新趋势目前智能手机厂商和运营商都宣布了自己的开源战略或产品。一年前Google推出了Android开源移动平台计划并于今年月推出了安装Android操作系统的第一款手机G。开源意味着向全世界公布源代码人人都可以对系统进行修改从而使系统变得更加完善。IDC(InternetDataCenter互联网数据中心)每年都会对手机市场的发货量进行报导。根据这几年的报导数据我们可以看出全球手机的发货量呈现飞速增长的趋势而增长最为强劲的是智能手机它的发货量同比增长率每年都会超过。可以预见智能手机发展的势头必将有增无减这充分证明智能手机的研发前途无量。面临的挑战任何事物都有两面性主要表现在:智能手机销量的疯狂增长意味着必须提高开发效率缩短开发周期而消费者对移动设备的功能需求越来越高这意味着手机软件的开发过程将更为复杂和耗时。这正是矛盾的所在。我们必须找到一个途径:在提高产品性能的过程中既可以保证质量又可以缩短开发周期。华中科技大学硕士学位论文要达到这个面的有两个途径:()从硬件上考虑优化手机硬件系统架构。方法之一是将传统的既处理通信协议又实现应用功能的单一高性能内核处理器系统架构和基带处理器应用处理器的系统架构优化为采用多个不同的处理器内核的系统架构。随着集成技术的发展和处理器成本的下降这种架构必将成为一种趋势。()从软件上考虑。方法之一是扬弃传统的面向对象的编程思想采用构件技术。文献中阐述的“和欣”技术就是这样的例子。我们对这两种方案进行权衡得出的结论是:硬件方案行不通。原因是就算我们在手机里面采用多处理器内核让它能处理一切事务但是移动设备不能不考虑功耗方面的问题有哪个用户能忍受每天为手机充电呢?更何况主要的先进芯片技术都掌握在国外几大厂家手中。因此从硬件着手提高手机功能既不明智又不符合中国的国情。我们只能从软件方面着手解决这个矛盾。研究的目的和意义通过对智能手机研发现状的分析我们知道解决智能手机开发问题最有效的途径就是改进软件的开发思路。就如生产关系的发展推动生产力的不断进步一样需求的不断快速增长同样刺激了软件开发方式的不断改良软件开发先后经历了随意编程→函数的使用→结构化→模块化→面向对象→构件化等阶段。到了现在这个时代耦合程度依然较高的面向对象的软件开发技术已经成为快速高涨的软件需求的阻碍因素这样的开发方式有一些固有的问题:()代码重用率很低开发周期长()界面代码与逻辑功能代码混在一起结构不够清晰难于维护()所有代码支付给用户知识产权易受侵犯。这样的软件开发模式在现实中已经引起了很多的问题轻则导致功能异常重则引起频繁死机。另外智能手机的开发是以手机平台为基础的当前存在的大部分手智能手机开发平台允许用户在平台上开发第三方软件创建新的应用充分发挥自己的聪明才智打造属于自己的个性化手机。但是情况并不简单不同手机平台一般拥有不同的规范对于上层应用软件的开发就没有一个统一的设计和架构这样一个百花齐放的环境对于软件业来说是一个严重的阻碍。这种情况造成的后果是开发一套新软件就设计一个开发新架构开发者们将大量的时间花费在对新应用的结构设计上代码复用率极低不利于缩短开发周期和保证软件质量。在这样的情况下我们考虑对软件本身的开发手段进行改进方法之一是对手机软件进行合理的架构设华中科技大学硕士学位论文计使所有的软件开发都基于这样的架构让开发者将更多的精力专注于软件本身性能的研究上来而不用将太多心思花费在整体架构和设计模式上来。基于这样的考虑本文选用Android手机平台作为实验平台在这个平台之上设计了一个中间架构层。对上层软件的开发(GTalk即时聊天软件的开发)进行架构设计建立了一个应用开发框架。程序员的所有的应用开发工作都基于这样一个架构层从而大大的提升开发效率和产品性能。最后我们在Android手机平台上应用该架构实现了Gtalk即时聊天软件的开发验证了该架构的成功性。人机界面管理协议栈安全层业务层应用层适配层上层中间架构层底层图中间架构层的结构本文的研究内容本文的内容主要包括以下几个方面:()课题背景和研究意义()应用程序架构的相关理论和国内外研究现状()平台之上的中间层的设计由四个层次组成应用层、安全层、业务层、适配层华中科技大学硕士学位论文()基于中间层架构的GoogleTalk即时聊天软件的设计和实现()今后工作的展望。论文的组织结构本文后续章节的内容作如下安排:第二章:对应用程序架构理论进行综述包括应用程序架构的模式和目标总结出了软件架构的两个要素和必备的六个组件并对中间架构层的设计给出了大致思路。第三章:阐述本文对中间架构层的设计和各层的功能具体包括应用层、安全层、业务层和适配层。在设计过程中给出了架构层的可靠性估计模型并且给出了一种适合手机应用的消息传递机制。第四章:是架构设计的具体应用实例应用这个架构我们在Android平台上成功的开发出Gtalk这款即时聊天软件。本章对各个模块应用基于架构层的开发进行了详细的描述充分验证了本文设计的中间架构层的成功性。第五章:归纳了本文的研究成果提出了现在仍然存在的不足之处并提出了改进的方法。华中科技大学硕士学位论文应用程序架构理论应用程序架构理论综述应用程序设计的模式从抽象到具体的区分来看应用程序设计一般划分为三种模式:架构模式、设计模式、和代码模式。架构模式是一种高级别的设计它事先定义好子系统并规定它们之间的相互关系。它就好比建筑师对房屋的整体规划是抽象的而不是具体的其好坏可以影响到总体布局和框架性结构。设计模式是中等规模的模式。它们在规模上比架构模式小但又独立于特定编程语言和编程惯例。它好比房屋内各个造型之间的建筑关系例如或附属或相邻它是介于具体和抽象之间的层次其好坏不会影响到系统的总体布局和总体框架但可能对其中的子系统有较大影响。代码模式是特定的范例和与特定语言有关的编程技巧。它好比建筑工人的具体施工比如卧室的油漆应该怎样刷客厅的吊顶如何悬挂它是真正具体实施的层次其好坏会影响到一个中等尺度组件的内部、外部的结构或行为的底层细节但不会影响到一个部件或子系统的中等尺度的结构更不会影响到系统的总体布局和大尺度框架。三个模式各具特色对于一个真正的软件设计师来说它们都是必不可少的。基于本文研究内容这里只对架构模式理论稍作介绍。架构模式描述软件系统里的所有的子系统和组件以及它们之间的协调关系。它也叫做系统模式它是位于抽象层的起到统筹全局作用的模式也是软件设计最重要的一步。架构模式常常划分成如下的几种:()从多用户层面到结构型:包括Layersmode、Blackboardmode、PipesFiltersmode等。其中分层模式已广受程序员的喜爱大家熟悉的服务器客户端(ServerClient)模式就是分层模式的典型代表。()适配系统型:是一种灵活的架构型它的优点在于可以根据应用平台协议栈的不同而自动的调整系统结构能够适应技术和需求的不断变化。包括Reflectionmode、Microkernelmode等。()SOA(面向服务)型:近几年大行其道的SOA架构方法主要是以服务定义为中心,其主要应用方向就是从服务集成角度设计开发企业应用软件,把各种应用转华中科技大学硕士学位论文变为标准服务形成资源共享。典型的SOA实现是通过合理化现有企业应用的层次来实现企业服务,即一种具有多层结构的架构。而这种层次又可分为逻辑层次与物理层次。()人机互动型它在最上层提供界面用来与用户进行交流。包括MVC模式、PAC模式等。MVC(ModelViewController)是一种典型的面向模式的架构方法,MVC架构的软件会通常包含了这样三种组件:Model、View、Controller。本文的中间架构层的设计总体上采取现时流行的分层模式思想从上层应用到底层的数据传输分别用不同级别的各层实现。另外本文的架构设计也吸取了对于适配系统型、面向服务型和人机互动型的优点体现在具体的层次设计中后文将有详细描述。应用程序架构的目标一般而言应用程序架构设计要达到如下的目标:(a)可重用性:为了避免重复劳动为了降低成本我们希望能够重用之前的代码、之前的设计。可重用性是程序员们梦寐以求追求的目标他们已经在架构重用上做了很多的工作工作的成果称为框架比如说Windows的窗口机制、JZEE平台等。(b)高效性:不论是什么系统我们都希望架构是高效的。这一点对于一些特定的系统来说尤其重要。例如嵌入式实时系统、高访问量的网站。(c)可定制性。同样的一套软件可以根据客户群的不同和市场需求的变化进行调整。现在很多软件的安装程序都会配备好几个安装包安装时会让用户自己选择适合自己的版本(例如典型安装完全安装和简单安装)(d)可扩展性。在新技术出现的时候一个软件系统应当允许导入新技术从而对现有系统进行功能和性能的扩展。这要求软件设计师要用长远的眼光来思考问题为软件预先编制空闲的应用程序接口以准备增加以后可能会导入的新功能。(e)可维护性。软件系统的维护包括两方面一是排除现有的错误二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费。(f)可靠性。软件系统对于用户的商业经营和管理来说极为重要因此软件系统必须非常可靠。(g)可移植性。我们希望架构放之四海而皆准即使不能这样也能在尽量大的范围内使用而不是仅仅局限于少数操作系统下的软件开发。(h)安全性。架构设计作为统筹全局的抽象层次安全问题不得不考虑。华中科技大学硕士学位论文应用程序架构设计的研究现状年德国科学家SandraHaseloff认为标准的三层架构模式不能为移动用户服务的发展提供一个充分的基础这些类型应用的特征需要不同的方法去进行应用设计。在这样的形势下有必要继续为移动设备发展特定的应用程序架构。他们的方法是通过为中间层提供一个特定的分层设计和服务这个中间层的宿主可以是移动应用的也可以是被重利用的组件。这篇论文为解决处理多应用和静态应用上的多信息资源提供了一个设计方法那就是创建一个通讯服务层他们通过一个移动文档管理的应用领域范例阐述了自己的结论。他们的通讯服务层架构模型如下:控制系统服务注册服务代理寻找服务注册服务获取服务WAP邮件发送失败控制层通信服务层服务执行单位图通信服务层的架构设计每个服务都应该有一个分布移动应用去执行这些任务:()对可用组件以及他们的服务和内容进行管理。()为用户需求和信息服务进行代理。()动态选择合适的服务。因此每个组件层都必须被重新定义。在这个图中他们阐述了通信服务层的开发方法。当这个应用必须将信息传输给用户时那么下一步就是寻找一个合适的设备去接受数据。为了做到这一点控制子系统利用一个来自通信服务层的服务代理接口。这个控制器随后初始化信息对象传输过程。在这一点上必须强调为一个特定通讯通道的通华中科技大学硕士学位论文信服务除了服务执行单位外不能被其它任何组件。这个服务执行单位的作用是对设备和个人通讯组件的具体协议项目接口进行封装。从通讯层的视角来看有必要设计一个内部不可见的服务注册。这个组件负责持续跟踪可用通讯通道的路径。它为通讯服务的服务执行单位的注册和注销提供接口。这个开发架构是利用了一个叫做DONDE的系统。在这个应用中通讯通道不是必须被动态选择。所以在通讯服务之中不需要代理组件。然而信息资源确是必不可少的。既然DONDE系统是用来为将来的服务而不是文档需求提供支持的那么就必然有一个负责创建合适类型服务的服务代理层。这个在服务执行单位之上的移动文档管理对象是从基类的服务对象继承而来的。它也包含两个子服务。这个相同的管理可用文档系统和传真系统的注册机制支持一个具体的用来提供唯一接口的执行单位和一个具体的用来创建合适类型对象的代理。年北京大学的方娟教授提出了一个多层的网格入口架构她在传统的架构之上增加了一个移动代理层。引入移动代理的目的是监视和获取网格资源信息。它可以减少网络负担并且能够及时的获取网格资源信息。在MultilayerGridProtalArchitectureBasedonMobileAgent这篇论文中她分析了这个多层网格架构提出了相应的安全策略并且介绍了各个移动代理的功能。这篇论文给出的架构模型如图:用户层:最高层是用户层它就是通过Web浏览器与系统进行交互的终端用户。它包含运行Web浏览器的终端工作站。入口层:在入口层他们用GPDK作为开发主要功能的工具。GPDK是一个用来开发网格用户的工具包它提供了进入网格服务的一系列核心组件。这些组件是来自JavaBeans的。GPDKJavaBeans分为五个种类:安全用户模型文件传输工作提交和信息服务。安全层:在信息安全领域三个核心原则是机密性、完整性和可用性。虽然入口安全涉及到许多方面但是在这个架构里对于不同网格实现的安全特征主要考虑四个方面:认证、授权、审查和会话管理。移动代理层:在这个架构里这是一个特殊的层。它在这里实际上负责获取不同动态资源和网格节点的状态。资源层:这些在网格里的资源是按位置分配的并且各隶属于不同的组织各自有自己的资源管理机制。它们可以为需要计算支持的用户收取费用。华中科技大学硕士学位论文用户层安全层移动代理层资源层门户层应用程序用户登录接口工作接口代理SSLHTTPsGSI传感代理信息更新代理注册代理资源存储计算存储信息存储图网格入口体系的五层架构移动代理为支持计算网格的动态服务提供一个重要的模式。一个移动代理是一个软件模块它根据执行的具体任务可以在网络主机之间移动。IBM的Aglet软件包被用作华中科技大学硕士学位论文移动代理的运行时环境在运行过程中它可以创造许多静态的和移动代理实例随后它便可以达到网格环境的节点状态。两种方法可以定义这些代理。第一种方法是将这些代理分成静态代理和移动代理两类。另一种方法是将这些代理按功能划分例如信息代理、计算代理和语义代理。这些主要的代理和它们的系统功能如下:传感代理:监视本地资源的状态信息。消息对象的传输时通过大量传输模式实现的。它没有运行正确的信息命令但是可以调用基类的方法来返回一个结果。传感代理作为一个静态代理处在一个代理运行时环境等待更新代理去调用自己。传感代理包括许多种可以分别获取不同的资源状态信息。更新代理:调用传感代理去更新节点状态信息随后获取所有的实时数据和状态信息。它也可以作为静态代理去处在代理运行时环境从而去运行更新。注册代理:网格节点可以用它去注册和注销。如果节点的静态信息发生改变它可以被注册代理更新。本地节点网络信息可以通过传感代理得到然后实现增加节点信息的工作。注销是实现删除节点信息的工作。信息代理:对应于信息资源这种代理可以获得资源参数和资源领域等等。计算代理:对应于资源计算这种代理可以监视CPU负荷计算速度总内存和可用内存还有一些其他的与主机相关的参数。存储代理:对应于资源存储这种代理可以为大量数据存储系统测量典型的输入输出参数例如读写吞吐量访问时间等。语义代理:对应于语义资源这种代理的目的是在文档集里找到自然语言问题的精确答案。移动代理可以通过位置信息移动到多网格资源。在状态时段系统会聚集这些移动代理带来的网格资源信息并把对应的状态信息交给入口。这个不可逆的移动代理会被收回用户代理最终会被销毁。该论文认为在现有成果的基础上将来的工作可以通过引入多层架构去进一步结合其他领域并根据标准来评估这个系统。年太原重机研究所的GuoyouZhang和YinzhangGuo两位学者在传统的三层架构模式的基础上设计出了一套适应性网格架构系统。模型如下:华中科技大学硕士学位论文适应管理系统和环境监视器分层架构模型运行时网格系统和环境图自适应网格系统的架构模型自适应性软件可以动态的决定和适应它的输出并且根据交互环境停留在相应的状态。Laddaga将自适应软件定义为:“当评价显示它没有完成应该做的任务或者可能有更好的功能性能时评价和改变它自身的行为的软件”自适应系统可以评估它的行为并决定系统状态的变化。对于网格计算它为应用程序提供一个大范围的分布式资源。所以这个适应管理是网格应用程序的一个重要要求。例如网格应用程序应该可以在运行时适应它们自己从而处理诸如资源变化之类和系统错误的问题并且应该可以在最小的人工干预的情况下自动适应。软件架构将系统看作组件组合和结构中的连接件集合。它可以被用来从架构模型中构造系统。许多架构类型被归纳为管道漏斗、黑板和共享信息系统。对于适应系统架构模型的用户可以有很多好处:()一个在系统上的全局视角可以被架构建造且系统可以决定一些全局变化例如增加或改变组件从而达到某些属性。()自适应可以在运行时动态的改变它的行为。架构模型可以阐明限制条件从而帮助确保任何变化的有效性。()使用结构模型并分离系统的适应性管理可以使适应性机构从特定系统中分离从而实现再利用。在这个模型中我们将适应管理从网格应用中分离出来。这个运行时网格系统和环境块包括应用程序在操作环境下本身的集合。这个运行时和环境监视块将对适应有用的信息收集起来。这个信息是经过过滤的并且对适应管理是即时的。分层架构模型与运行时网格系统交互并且能够区分适应和适应管理。适应管理接收从系统和环境监视器到华中科技大学硕士学位论文来的信息并且为架构模型做决定以适应这个系统运行时行为。为说明这个结构模型该论文为适应性实验开发了一个叫做GCWC的绘图编辑器。对于适应性网格应用程序的实验主要聚焦在远程数据储存和传输带宽上。这个绘图编辑器可以从客户系统上绘制基本形状储存到远程服务器或者其它类似系统上。这样的系统可以根据传输带宽改变它的服务器到网络上可用的服务器上这样可使传输数据尽可能的便利和安全。在我们的实验中网格应用程序的安全是被考虑的。用户登录到服务器可以浏览整个组共享网格资源。为了达到这个目标一些额外的操作被引入。对于系统和环境的监控器需要带宽的测量装置和滤波功能。对于分层的结构模型有必要进行应用程序限制的分析和系统的调整。对于适应性管理关于引导分层结构的模型的说明也应该被提示。综上所述笔者认为具体来说一个中间层架构需要具备以下六种组件:()分布式移动应用的基本服务。在这一层中有各种与分布式应用广泛相关的服务例如:(a)系统管理的服务。这些服务负责启动停止和配置组件并且具备错误事件管理功能。(b)分布式系统的监督服务。(c)为用户和组件进行验证和授权的安全服务。()能为一个业务对象提供具体环境的信息服务。一个信息服务组件包装一个具体环境的业务对象。它代表传递给用户的内容同时可以包括选择合适信息的过滤机制。信息服务组件可以是网络内容ERP系统CSCW系统企业信息网格和许多其他的内容。每个信息服务都应该有自己的接口和数据。()一个能掌握应用层所有组件执行并且能优化系统的控制单位。架构需要控制机制去协调所有组件之间的交互。这个组件管理所有应用程序的执行。更重要的是它负责应用程序内部的信息处理的优化。()一个能确定用户和可用程序的本地组件。本地服务提供确定一个用户和当前可执行应用程序的一种方式它还有信息传输功能。()传递和接受数据的通信组件。这个通信组件层直接与用于进行交互。通信服务负责与一个具体设备的双向数据传输这个设备可以是无线连接或者通过局域网连接。()将信息对象转化到精确形式的传输组件。华中科技大学硕士学位论文传输服务将信息对象转化为一个能让接收设备进行处理的格式。在转化过程中传输组件必须提供服务质量参数。图形用户界面定位组件通信组件转换组件控制组件信息服务分布式应用的基本服务协议栈上层中间架构层组件底层图中间架构层组件根据软件开发的具体情况中间架构层的设计方法灵活多变并没有一个统一的模型。但是无论软件工程师如何设计他们的架构都需要保证至少能实现上述六种组件的功能。另外通过对综述的分析本文的架构层设计至少能从以下个方面受到启发:()服务的思想。德国科学家SabdraHaseloff提出了通讯服务层的思想中间层为宿主提供通讯服务宿主可以是不同的应用或者组件也就是说一个服务项可以被多个宿主调用。我们的架构设计可以采纳类似这样的方法分出一个专门提供服务的业务层系统根据应用需要调用相应的服务这样做至少有两个好处:一是可以大大节省系统资源因为一个服务项可以被多个应用调用二是使系统对资源的管理更加条理化因为在启动前系统就能预先知道有多少待调用的服务可以预先为它们创建内存空间而不是等到应用需要的时候再去动态创建。()继承的思想。在DONDE系统中提到移动管理对象是从基类的服务对象继承而来。本文受此启发中间架构层的创建中各个层次的创建思想为:首先设计一个基类不过这个基类是一个完全的抽象类它与DONDE系统的服务机制不同华中科技大学硕士学位论文因为抽象类是不能定义对象的。具体的继承思想是:在基类中定义纯虚函数这些函数代表着各类应用可能要用到的功能。然后开发者通过实现这些纯虚函数就可以设计出需要的派生然后通过派生对象的创建就可以实现不同的应用功能。()代理的思想。北京大学的方娟教授提出在传统的架构之上增加移动代理的思想代理有很多种每个移动代理都能执行一个具体的任务整个系统就通过代理层的运转实现各种各样的功能。手机上的中间架构层不宜设计的如此复杂但是受此启发我们可以为每种服务设置一个代理后面称之为业务代理对象。这样做的目的是为了解决多个应用调用同一种服务的问题后文将有详细描述。本章小结本章对应用程序架构理论进行了详细的综述首先应用程序架构的定义应用程序设计的模式和软件架构的目标并且较详细的分析了架构的国内外研究现状。通过这些理论的理解和分析具体给出了软件架构的必备组件分析了它们的功能并给出了模型图。最后谈到了本文的中间架构层设计所受到的理论启发。华中科技大学硕士学位论文应用程序架构设计分层架构模式分层模式介绍分层是人们认识世界、解决事物复杂性和多样性的一种方法。分层模式是最常见的一种架构模式它描述的是这样一种架构设计过程:从最低级别的抽象开始称为第层。这是系统的基础。通过将第J层放置在第J层的上面逐步向上完成抽象阶梯直到到达功能的最高级别称为第N层。各层之间要能相互移植通用除了接口功能一致以外数据的通讯格式也必须是一致的相应的还应有一组数据格式描述。因而分层模式就可以定义为:将解决方案的组件分割到不同的层中。每一层中的组件应保持内聚性并且应大致在同一抽象级别。每一层都与它下面的各层保持松散耦合。分层模式的关键点在于确定依赖:即通过分层可以限制子系统间的依赖关系使系统以更松散的方式耦合从而更易于维护。典型的分层方式是应用程序专用功能位于上层跨越应用程序领域的功能位于中层而配置环境专用功能位于低层。层的数量与组成取决于问题领域和解决方案的复杂程度。通常而言只有一个应用程序专用层。应当把子系统组织成分层结构架构的上层是应用程序专用子系统架构的低层是硬件和操作专用子系统中间件层是通用服务。分层原则分层模式虽然可以很好的实现功能的划分提高底层的复用率但是它却把系统复杂化化了如果分层过多会直接影响到构件软件的可靠性而保证软件的高可靠性是分层的一个重要原则。根据参考文献的模型原理:在基于构件的软件开发中软件系统由构件与连接件组成。基于构件的软件可以看作一个Markov过程。通过估算构件与连接件在整个系统中的使用次数估算整个系统的可靠性。例如当某个系统由N个构件组成iL的可靠性为iLR使用次数为iU层连接华中科技大学硕士学位论文件,jkL的可靠性为,RjkL使用次数为,jkV系统的可靠性为sR:,,(,(R,)ijkNNNsLiLjkijkRpowRUpowV====×∏∏∏)()其中iL(i=,,⋯N)是软件系统中N个不同构件,jkL表示第jL个构件与第kL个构件之间的连接件。公式前部分的因此表示构件的可靠性后部分的因子表示连接件的可靠性。它把整个系统看作一个串联系统系统的可靠性就是所有串联因子的可靠性的乘积。其模型如下:构件构件N构件连接件构件N连接件在我们所设计的架构分层体系中情况稍有不同不同之处在于:分层模式中有一条可见度原则它规定信息的传递是不管至上而下还是至下而上都要逐层传递。各子系统只能与同一层及其相邻层的子系统存在依赖关系而不会出现跨层访问的情况。因此考虑到架构分层体系的这种特殊性上述公式应稍作修改如下:,,,,,,,,(,(,)(,)(,)(,)(,)(,)iiiiiNNNNNsLiLiiiiNLiiLLiLNLNNRpowRUpowRVpowRVpowRUpowRVpowRUpowRV−−−−==−−=−=××××××∏∏∏)()其中,iiV与,iiV−分别表示第iL层与iL和iL−层的交互次数。公式的前三个部分因子表示出了第一层和第二层之外的系统可靠性因为第一层没有下层第N层没有上层所以单独计算后面四部分的因子表示第一层和最后一层及其中间件的总体可靠性。可靠性参数的值域是~它们作为乘数会使结果值变小。而对于一个架构而言分层越多不仅层的可靠性参数增多而且连接件也越多从而连接件的可靠性参数也越多最终导致可靠性值变小。因此根据计算公式整体可靠性的增强要求分层越少越好。结论:在给架构分层的时候如果分得过少容易造成模块的臃肿和模块内部的华中科技大学硕士学位论文混乱如果分的过多又会降低整个系统的可靠性。因此分层原则必须充分考虑这两方面的因素在保证可靠性的前提下对系统分而治之从而进行有效的组织。架构层设计结构根据的分层原则:条理化原则和可靠性原则作这样的分层考虑:最上层是应用层它对应手机的应用程序主要负责手机应用的启动、初始化、关闭以及相关控件的调用和显示并通过图形界面直接与用户进行交流其次将界面调用和业务功能管理都放在应用层的结果是界面代码与逻辑功能代码混在一起结构不清不易维护因此可以在应用层中划分出一个业务层专门负责包装各类手机应用服务并向上提供相关的服务给应用层调用前面提到的业务代理对象将在这一层产生再次本文的应用软件是用java语言开发的事实上大多数手机应用程序都是基于java技术的而java存在的一些安全缺陷很可能被病毒制造者利用从而对手机进行攻击因此在应用层与业务层之间设计一个安全层最后考虑到应用与底层协议栈的交互可以分出一个适配层负责存储数据与平台进行数据双向传输。综上所述将架构分为四个层次从上到下依次为:应用层(ApplicationLayer)安全层(SecurityLayer)业务层(BusinessLayer)和适配层(AdapterLayer)这个层次相对独立这种松耦合的方式增强了架构的可维护性。如图所示。应用层设计新应用的创建思想为:首先为应用层定义一个基类AndroidApplication开发者通过继承机制可以设计出需要的派生类然后通过派生类对象的创建就可以实现不同的应用功能。()应用的注册在Android系统中除了本身自带的应用外用户可以随意向系统注册新的应用:#defineActivityCamera“mCam”#defineActivityGTalk“mGtalk”人机界面管理底层协议栈应用层业务层适配层安全层中间架构层图中间架构层模型华中科技大学硕士学位论文#defineActivityGEarth“mGEar”#defineActivityMMS“mMMS”*MultiMessageService*⋯接下来只需为应用编写一个类对象然后重新对系统编译即可。()消息传递机制在一般的操作系统中诸如windowslinux系统都有不同的应用程序来处理不同用户的每个不同的操作系统的监视程序捕捉到用户的操作然后利用消息机制将操作以一定的形式发送给应用程序而对应的应用程序再接受到消息后就按照一定的机制来处理消息如果消息队列为空则直接处理用户操作否则就插入等待队列这种应用程序处理用户操作的响应过程就称为消息驱动。类似于一般的操作系统手机对应的操作系统也采用消息驱动的形式不过对于一般的手机而言其操作系统过于简单无法完全实现消息机制无法进行处理机的调度以及相应的时间片轮转。也就是所谓的第一代计算机系统单系统单任务单处理机无法实现应用程序的并行处理。既然大多数手机并不能进行CPU的调度和时间片的轮转那么如果让每个应用程序都对应一个消息队列那么在同一时间只能有一个程序能运行。这显然是不行的。那么如何实现多个任务的同时运行呢?我们的思想是:将手机程序从“勤劳型”变成“懒惰型”即各个程序并不时刻监视自己的消息队列相反的它们呈现完全的“被动”状态等着被调用。为此程序员需要预先为它们创造得以“偷懒”的条件创建消息映射器每个消息映射器都对应一个应用程序这样一旦发生当前消息的映射消息映射器便可以直接触发对应的应用程序。其模型如下:底层平台消息A消息B消息C消息栈消息映射器A消息映射器C消息映射器B应用程序A应用程序B应用程序C图消息传递机制设计图华中科技大学硕士学位论文在平台之上放置一个消息队列当消息队列接受到消息时将消息发送到一个消息栈中栈中按应用的注册顺序排列了多了消息映射器消息从底层平台传到消息栈中后就开始去找对应的消息映射器这里采用责任链的形式将所有的消息映射器排列成链状到来的消息依次流过这条链时每个消息映射器都对该消息进行识别如果是与自己对应的消息就将其截获并进行处理。当消息映射器找到对应的消息时就会调用相应的回调函数通知应用程序采取相应的动作。如果应用程序被删除其对应的消息映射器也会同时被销毁。流程如下:消息映射器消息映射器N消息映射器消息可识别?否可识别?丢弃处理处理是是图消息处理过程华中科技大学硕士学位论文消息链的创建方法是:采用双链表的创建思想即将每个消息映射器作为链表的一个节点每个节点分为三个域:数据域指向下一个节点的指针域和指向对应应用程序的指针域。容易看出这里的消息链与双链表的区别在于将每个节点的回溯指针变成了指向应用程序的指针因此寻找对应的消息映射器的过程就相当于一个单链表的查找过程可以运用相应的算法。插入和删除消息管理器只需调用单链表的插入和删除节点的算法即可而这两种操作在单链表中都是很容易实现的。安全层设计安全层的设计思想也是先定义一个安全基类:AndroidSecurity然后通过继承机制设计出多个派生类通过派生类对象的创建实现不同的安全级别。()安全机制对于手机软件来说一般可以选择实现的安全措施有:①创建安全管理器安全管理器是一个Javalang包中的抽象类可以使用GetSecurityManager()方法返回一个应用程序当前的安全管理器。尽管不能根除病毒但这个方法能在一个潜在的破坏性操作完成之前对其进行控制。②加密技术若采用明文直接保存的方式

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/11

Android平台环境下应用程序架构的设计与实现

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利