- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
e4 技术白皮书John Arthorne, IBM Canada Inc.Last modified July 29, 2009译者:天马概述Eclipse平台的初衷是构建一个可扩展的IDE组件框架,但它现在已经发展成为一个构建可扩展的任何软件应用的通用平台。目前,Eclipse应用出现在了各种部署环境中,比如Web服务器,Web浏览器,嵌入式客户端,以及传统的富桌面应用。E4平台的设计是为了简化软件组件以及基于组件的应用的开发,以满足当前不断变化的计算场景的需求。本文主要介绍e4的架构和编程模型。什么是e4E4是一组相关技术的集合,这些技术主要用于构建可扩展的、基于组件的应用。E4将一组新的技术融入现有的eclipse平台,而不是对eclipse平台的大规模替换。目的就是使eclipse组件更易于编写,更可配置,并更易于在不同的运行时环境中复用。第一代Eclipse平台(1.0到2.1)主要是一个集成平台,其主要功能是将不同作者开发的插件集成为一个一通用应用,并使最终用户有一个一致、内聚的体验。第二代Eclipse平台(3.x)开始构建于OSGI运行时之上,这使Ecliplse成为一个更加强大的、通用的、基于组件的应用框架。第二代平台可用于很小的嵌入式应用、RCP应用、以及Web服务器。然而,每个组件(插件)通常难以在特定环境(组件的设计和测试环境)以外复用。为系统添加或删除组件很容易,但将一个为某应用或运行时环境设计的组件复用到一个完全不同的应用或环境中,将非常困难。E4的愿景是使开发在多种应用和环境中都可复用和可定制的组件变得更容易。有两种途径达到这个目的:减少组件的外部依赖;增加可无缝集成到Eclipse运行时中的语言和技术。这两种方法都被Eclipse采用了:面向服务的编程模型,基于OSGI,把软件组件更好地从外围环境中分离;GUI被描述为统一的模型,此模型可被查询、操作、做工具、扩展,还可在很少或无需编码的情况下快速的设计和定制用户界面;使用Web样式技术(CSS),无需修改应用代码,即可任意修改UI展现;把Eclipse运行时技术融入到JavaScipt世界,允许JavaScript写的软件在Eclipse运行时上执行;声明式地定义SWT应用的设计和结构,摒除了重复的公式化的SWT代码,这降低了开发成本,提高了UI一致性,并且允许定制应用发布;SWT新的移植,称为“浏览器版本”,允许现有的SWT应用在像ActionScript/Flash一样Web平台上运行;在开发工具方面,更灵活的资源模型为复杂的工程结构提供了更好的支持。本文的后续章节将更详细的介绍这些新技术。编程模型E4编程模型开始于现有的Eclipse编程原则:应用由模块化的,被称为插件或bundle的松耦合的组件组成。Bundle可用Java或其它语言来编写,还可以包括文档和源代码等资源;Bundle可以通过扩展点声明它可被定制或扩展的地方,还可以通过定义扩展来定制或扩展其它bundle;一次可以安装大量bundle,但只有实际使用的bundle才被加载并消耗系统资源。E4区别于这种传统Eclipse编程模型的地方在于,bundle怎样在扩展注册表机制以外彼此交互。Bundle经常以不适于Eclipse扩展注册表的方式为其它bundle提供数据和服务。最常用的实现方式是,bundle通过直接引用API中定义的方法和常量来与其它bundle通信。为了获得服务的单实例,bundle一般会定义入口点(比如Platform,IDE, ResourcesPlugin, JavaCoret等这些类)。这种行为会导致使用服务的bundle和提供服务的bundle间存在紧密偶合,这种单实例访问的流行,将使其它供选择的服务实现很难或不可能被采用,多个实现也很难或不可能在同一时间存在。结果bundle将难以在不同的环境中重新装配或复用,而这些环境可能需要不同的或多个服务实现。服务编程模型定义了三个不同的参与者:服务提供者、服务消费者和一个代理或容器(绑定服务提供者到消费者)。此编程模型的基本实现,比如OSGI服务API或Eclipse扩展注册表,出色地将服务提供者与消费者解耦,但经常需要服务提供者和消费者显式地知道特定容器和服务代理。图1 简单服务架构E4编程模型通过减少或消除服务提供者与消费者显式的对特定服务代理技术的依赖,进一步将这些参与者解耦。这种新的灵活性将在下面的介绍中给出详细解释。上下文(context):服务代理(the service broker)E4引入“上下文”的概念,作为存储查找服务并将这些服务提供给消费者的通用机制。从这个基本功能来说,e4上下文看起来很像存储键值对的Java Map,客户可以向此Map里存值或取值。这个Map还可以存储,在客户请
您可能关注的文档
最近下载
- 金顺电子材料产业园环境影响报告表.docx VIP
- 化工原理练习与答案.doc
- (正式版)D-L∕T 801-2010 大型发电机内冷却水质及系统技术要求.docx VIP
- 《心理危机与日常调适:写给少年们的10封信》随笔.docx VIP
- 〖GB50157-2013〗地铁设计规范.docx VIP
- 2025年中考英语听力技巧与策略教学+课件.pptx VIP
- 辽2015J601 楼梯标准图集.docx
- 景观桥亮化施工方案.docx
- -求数列通项公式的方法总结ppt(11种方法举例)-.docx VIP
- 第7课+全球联系的初步建立与世界格局的演变 高一下学期统编版必修中外历史纲要下.pptx VIP
文档评论(0)