高效程序框架.doc_第1页
高效程序框架.doc_第2页
高效程序框架.doc_第3页
高效程序框架.doc_第4页
高效程序框架.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式设计欲打印此文章,从您的浏览器菜单中选择“文件”后再选“打印”。采用Eclipse用作框架,创建高效率应用程序上网时间:2006年08月03日作者:Todd E. Williams技术副总裁Genuitec LLC概述软件开发经常是一个不断折衷考虑的过程。目前最热的争论焦点是富有效率的应用程序与基于浏览器的UI之间的权衡。不管当前的媒体报道会导致人们什么样的想法,业界还没有决定为了支持用HTML/XML/XSLT/Javascript表达的基于浏览器的UI而抛弃所有的桌面程序。其理由可以总结成四个字:“用户体验”。“形式遵循功能”是判断可用性的关键标准。实际中,较高的用户交互性或复杂的数据关系使选择的可能性更小,也更多的要求将用户接口以桌面程序的形式提供。在当今的计算环境中,提供在多种平台上运行的用户接口是非常重要的。平台范围要宽,包括小型手持设备和服务器控制台。当用户与他们非常熟悉的视窗管理环境中的程序进行交互时,操作必须让人感觉自然,并且具有可预测性。为了创建高效率的应用程序,首先要求有良好的设计和支撑性架构。由于没有能被广泛接受的应用程序框架,大多数开发人员会开发自己的架构,然后自己组成框架。然而,这种方法的成本相当高,解决问题所花的时间、调试努力、支持和麻烦还只是建立目标程序功能的一些外围性开销。已经有比“开发自己的”程序框架更好的方法,这种方法在满足设计要求的同时可以简化和加速项目开发。这种框架的“希望列表”可包含以下多个方面:.实现清晰、一致和内敛性的架构;.支持包括Windows、Mac OS X、Linux、QNX Photon、Pocket PC、HP-UX、AIX、Solaris在内的所有主要桌面平台上的开发和执行;.“快速”保持平台本地外观和感觉的UI响应;.提供包括标准组件(如按钮、检查框)和扩展组件(如工具条、树状浏览、进程测量)在内的各种窗口组件;.提供包括编辑器、位置/修改管理、基于规则的风格、内容完成、格式化、搜索和强大帮助在内的各种扩展文本处理方式;.必要时支持特殊平台性能(如ActiveX)和传统软件的使用;.为程序设计产品品牌;.包含一体化帮助系统;.管理用户配置和参数;.支持程序更新的远程发现和安装;.让在创建面向对象的框架方面有丰富经验的著名软件公司进行创建和维护;.支持国际和国内语言的互译;.针对灵活性进行设计,可随意增加新的功能;.只为需要的东西“支付”-基础架构可随意精简或扩展,以便针对精确要求进行功能裁剪。只要完成我们的“希望列表”,就可能增加得到多个工业慈善机构使用和支持的、开放源代码团队创建和维护并且免版税和许可的技术,并可向全球重新发布。虽然这些要求听起来象是白日梦,但Java程序开发人员可能已经安装了这种令人难以置信的程序框架。这就是Eclipse。图1:基于“空的”Eclipse的应用程序但Eclipse难道不是Java IDE吗?简短的回答是“是”和“否”。Eclipse项目的常见问题(FAQ)包含以下内容:“Eclipse是一个开放源代码软件开发项目,专门为高集成度工具的开发提供全功能、商业级质量并极具鲁棒性的工业平台。”因此根据上述定义,Eclipse是一种用于工具集成的开放平台,不是IDE。之所以让人疑惑是因为在Eclipse平台中有一个完整的工业性Java IDE,它作为一种插件扩展了Eclipse的基础框架结构。Eclipse框架可以将多个独立的工具集成进单个一体化程序中,并提供无缝用户接口。新工具通过插件的形式集成进Eclipse平台和用户接口,从而扩展了Eclipse的内容,并向用户提供新的功能。另外,Eclipse插件还可以扩展其它插件。基于Eclipse的程序初始化时可以发现和激活环境中已经配置的所有插件。由于Eclipse程序能够执行通过目前包含的插件增加进的任何功能,因此Eclipse程序非常象是各组件的叠加。由于能够写和测试这样的插件对Eclipse成功与否起着举足轻重的作用,因此Eclipse平台捆绑了插件开发环境(PDE)和整套Java开发工具(JDT)。Eclipse开发人员对他们开发的框架能力充满信心。整个开发环境就是使用标准插件技术集成进平台中的另外一套工具。Eclipse平台本身就是开发人员利用基于Eclipse的Java IDE(最初是beta版)自己开发出来的。由于采用了开放源代码的形式,因此任何人都可以检查代码,并非常详细地了解框架将被如何使用。正是将开发工具与平台捆绑在了一起,使得有些人对Eclipse的特性抱有困惑。JDT组件的高效性吸引了所有Java开发人员,而不仅那些编写插件的人。表面上,Eclipse似乎只是一种优秀的Java IDE。但不该认为Eclipse只是Java IDE,而是应该把它看作是一种刚好包含了Java IDE的实用性程序,是将Eclipse基础平台用作程序框架搭建起来的一种程序。Eclipse框架特性概述Eclipse采用了可扩展的设计,作为一种架构平台实现了最大的灵活性。在它的内核,Eclipse平台包含了OSGi R4内核框架规范的高效实现。这种框架规范名为Equinox,可用来引导程序。在该框架上面,Eclipse架构定义了一套层次化子系统,可用作根本就不是IDE的便携式程序(或套件)的框架。由于这种分层架构只在个别的架构接口处进行耦合,程序创建时可以只整合需要的框架,同时删除那些不需要的框架。下面介绍Eclipse的一些主要特点。正是这些特点使得作为一种通用程序框架的Eclipse广受人们欢迎。可扩展模型:因为要求一直在变化,开发人员通常要花很大的力气设计出灵活、可扩展的程序。由于Eclipse采用了高度灵活和可扩展的插件模型,因此可以在平台中增加任何类型的功能。如果程序可以被认为是一个工具或一套工具,那么它的功能很快就能以组件的形式增加进基于Eclipse的框架中,就象Eclipse本身具有的Java IDE功能那样。内容模型:Eclipse提供的内容模型以用于安装工具(功能)的工作台概念为基础。 工具所需的资源在工作区内被组织成项目。项目包含树状结构的资源,这些资源就是包含任何类型内容的文件夹和文件。内核平台提供大量扩充点,允许定制全方位的资源寿命期管理。内容模型的层次化分类特性使得它适用于多种类型的实用性程序。例如,可以在包含了与用户email帐号相关的单一项目的工作区上创建简单的email客户端。用户项目可包含用于收件箱、发件箱和已发送邮件等公共功能型email单元的文件夹。每个文件夹可包含作为项目资源的相应email消息。本地窗口组件:Eclipse平台包含一个标准窗口工具套件(SWT)。SWT是在所有支持的Eclipse平台上本地化实现的。SWT包含大量的事件、版图管理器和窗口组件。当某个支持的平台不包含Eclipse支持的本地窗口时,比如Motif上的工具条,可提供针对该平台的模拟窗口。SWT还与本地的一些桌面功能(如拖放)发生交互。另外,如果某些功能比全平台便携性更理想,SWT也可以使用这些特殊OS组件,如Windows Active/X控制。到目前为止,SWT已经在Windows Win32和PocketPC、Photo、Motif和GNU窗口管理器上得到了验证,覆盖了从高端工作站到嵌入式设备的各种应用平台。虽然Java语言已经包含了两个窗口工具套件AWT和Swing,Eclipse小组仍选择实现他们自己的套件。详细理由可见Eclipse概论白皮书。然而,为了证明这是正确的决定,全部要做的只是比较你选择的Swing或AWT程序的外观与感受与Eclipse的外观与感受。Eclipse的外观、感受和响应就象它在无论什么平台上运行的本地程序一样。用户接口框架:为了建立图形界面,SWT可以直接或通过JFace使用Eclipse平台的用户接口框架。JFace包括对话框、参数选项、进度报告、框架向导以及图像与字体注册等内容,因此用户接口的创建非常直截了当。Eclipse平台支持多窗口、类似MDI的用户接口描述。在JFace和SWT的顶部,Eclipse工作台提供的框架可用于建立透视图、编辑器和浏览窗口,从而实现与用户的交互。编辑器处理资源寿命期的交互,如创建、编辑、保存和删除。浏览窗口用于提供与用户正在交互的对象有关的补充信息。例如外形、挂起的任务和私有窗口等。透视图是浏览窗和编辑器的堆叠、平铺或分离排列。在某一时间窗口中只有一个透视图是可见的,但通过打开多个窗口即可同时浏览多个透视图。Eclipse用户接口框架具有可扩展、灵活和强大的功能。即使它没有做你需要的所有事情,它也可以非常方便地得到扩展,所花的时间和资源要比设计和创建你自己的框架少得多。更新管理器:过去,与程序相关的最大问题是当新版本发布时包装、分发、维护和更新程序所发生的支持成本。当一个大而分散的用户团体使用程序时会增加这种成本。随着产品的成功和普及,售后支持将变得既耗时又昂贵。组件维护和更新功能是从头开始的Eclipse设计的一部分。为了控制上升的成本,排除可能妨碍项目开发和部署的维护问题,Eclipse平台包含灵活的更新管理器。更新管理器经过配置既可执行新组件的初始安装,也可以从远端服务器更新已有的组件。当你发布新版的程序或附加组件时,发布非常容易,只需用Eclipse工具对它们进行包装,然后把它们放在更新服务器上即可。帮助系统:Eclipse的框架式帮助系统提供可搜索和对内容敏感的帮助,通过文档插件能非常方便地加以扩展。因此对于任何建立在Eclipse上的程序而言,无需购买第三方工具即可构建、包装和交付完整的、定制的并且对内容敏感的帮助系统。将Eclipse用作程序框架那么开始时将Java IDE的基础当作程序框架至少听起来是可行的,但为什么会有人这样做呢?Eclipse完全满足上文中提到的功能与工具希望列表要求,同时提供程序开发环境,将项目建成一系列Eclipse插件。最开始程序框架提供空的普通程序,但其架构是可扩展的,非常方便未来的功能增强,而且可从远端进行自我更新。随即主要的问题变成要求Eclipse提供多少功能?简单地说,程序在Eclipse框架上建立时可删除那些不重要的功能,然后再增加重要的一些功能。更具挑战性的问题是从哪里开始?最简单的案例可以非常极端。例如,当建立商用化IDE时,就象我们建立MyEclipse Enterprise工作台那样,先开始完整的Eclipse平台下载和一些其它Eclipse项目,然后在它们的基础上进行创建。而另外一个极端,在为嵌入式设备或大小约束很重要的其它环境建立程序时,Equinox或eRCP将成为更合理的起点。如果配置目标有更多的资源,但仍不要求大多数平台性能,那么将RCP(可从平台下载页面获得)用作主要框架也许才是正确的出发点。只需对基本RCP进行少许的配置即可快速设置好“空”程序,如图1所示,然后集中精力只增加那些能起到增殖作用的功能,而不再增加基础架构。一旦确立了起始平台,剩下的程序开发工作就只是编写插件并在Eclipse基本框架中增加功能,然后针对目标用户设定合适的商标。例如,一个大型程序一般要使用许多插件写成多个定制透视图和支持窗口。而在集成一套小型程序时,也许每个程序可以是自身插件中的单个透视图。在这些产品线中,Eclipse也可用作公司自己开发的程序的集成入口。可能性是无止境的。为了证明这一点,下面介绍一些来自世界各地的各种Eclipse程序。GumTree是一种开放源码的图形化用户接口框架,可用来创建科学仪器控制台,如图2所示。图2:GumTree EclipseTrader是针对Eclipse RCP开发的开放源码插件,专用于建立在线股票交易系统,具有丰富的功能,如股票价格浏览、带技术分析指南的当日和历史图表、等级II/市场深度分析、新闻浏览和系统交易。主窗口如图3所示。图3:Eclipse TraderAzureus通过Eclipse RCP插件实现BitTorrent客户端协议,捆绑了许多对BitRorrent的初级用户和高级用户来说都很有价值的功能。Azureus是SourceForge站点上被下载最多的程序之一,接口在任何平台上看起来都很平易近人,这要归功于SWT,详见图4。图4:Azureus Qanyon World Factbook。Qanyon World Factbook程序用于开发Eclipse RCP在分布式环境中的使用。与CIA World Factbook网站相似的是,即使在庞杂的客户环境中Qanyon World Factbook也应显示?,如图5所示。图5:Qanyon World FactbookEclipse的未来Eclipse还在不断向前发展,从纵向看将进一步深入软件工具领域,从横向看将进入全新的市场领域。有趣的是,向新产业领域的纵向发展具有与Eclipse最初创建时同样的理由。虽然Eclipse最初创建时是向工具提供商搭建集成化平台,但各个可用的RCP使一切都改变了。现在Eclipse不只是工具提供商使用的平台,而且已经成为一种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论