ArchSummit全球架构师峰会门票9折倒计时中~ 了解详情
写点什么

Sun 的承诺:可靠的、可移植的、功能强大的 Java Plug-In

  • 2007 年 11 月 23 日
  • 本文字数:1672 字

    阅读完需:约 5 分钟

Java Plug-In 已经有几年的历史了,其目标是在浏览器中运行 Java 程序。不幸的是,它给用户和开发者带来了很多头疼的事情和挫败感。许多消费者都经历过浏览器不兼容的问题,浏览器冻结甚至 JVM 崩溃。然而,几周以前有报道说Sun 正在彻底重写Java plug-in,为开发者和消费者带来期待已久的产品。

InfoQ 最近访谈了 Java SE 的项目经理 Nicolas Lorain,讨论了 Java SE 6 Update N 规划中的重写 Java plug-in 的事项。

当前的 Java Plug-In 的主要问题是什么,以至于需要彻底重写? 可靠性,可移植性和功能。当前的 Java Plug-in 版本是在几年之中“一块一块”的开发的,支持操作系统和浏览器家族的不同组合。现存代码基础的复杂性导致了在不同浏览器家族中不一致的行为。尤其在支持跨浏览器的脚本编程(Java/JavaScript 交互)的方面问题更加严重,这使得开发人员很难编写跨浏览器的与 web 页面交互的 applet。这不单单是对 Java 脚本的支持问题,Sun 对跨平台的交互是非常重视的。在以前的 Java Plug-in 架构中不支持 Java Web Start 应用的某些特征,例如选择 JRE 版本,确定 JVM 命令行参数。只有彻底重写才能让 applet 象 Java Web Start 应用一样强大。

Sun 将为 Solaris,Linux,Windows 这三个 Sun 支持的操作系统提供新的 plug-in。Apple 将与 Sun 紧密合作,为 Mac 操作系统提供 plug-in。在上述操作系统上 Sun 已经测试了新的 plug-in 在 Internet Explorer 6,Internet Explorer 7 和 Firefox 3 Alpha 上的运行情况。InfoQ 询问了新 plug-in 没有支持广泛采用的 Firefox 2 的原因,

为什么没有规划 plug-in 先在被广泛采用的 Firefox 2 上运行? 新 Plug-in 的一个主要变化是我们如何与 Firefox 浏览器接口。由于历史原因,目前的 Plug-in 使用一个复杂的,Java 特有的接口,叫做 OJI。在新的 Plug-in 中我们转而采用了工业标准的 NPAPI 和 NPRuntime 接口,这两者更广泛的被其他浏览器的 Plug-in 使用。我们发现需要为 NPAPI 和 NPRuntime 增加少量 API 来支持可移植的多线程的 Plug-in,支持特定的高级 JavaScript 互操作。这些增加的 API 不是 Java 特有的,而是任何合适的复杂的 Plug-in 都需要它们。Firefox 2 的代码有一些假设是基于 Java Plug-in 是实现了 OJI 接口的,所以需要做一些改变来支持基于 NPRuntime 接口的 Java Plug-in。另外,我们期待 Firefox 3 在 Java SE 6 Update N 发布的几个月之内可用,这意味着绝大多数 Java 和 Firefox 用户将会在一个短的期间内分别升级到 Java 6 Update N 和 Firefox 3。由于这些原因,我们决定开始集中精力让新的 Java Plug-in 支持 Firefox 3,在第二阶段再支持 Firefox 2。

Nicolas 提到了其他的浏览器,例如 Safari 和 Opera,支持它们是相当容易的,

我们这一次没有明确的宣布支持 Safari 和 Opera,但是事实上新的 Plug-in 是很容易移植到它们上面的,尽管由于支持 Mac 操作系统并支持 Safari 的 JRE 的问题,我们不能代表 Apple 做任何承诺,但是我们认为移植不是问题。

新的 plug-in 会与 Java SE 6 Update N (也叫 6uN) 一起发布,然而,新的 plug-in 会被缺省的关掉。因此,最终用户需要配置 plug-in(在 Windows 控制面板或者在 Unix 平台改变一个 symlink)来使用最新的,最酷的 plug-in。

最后,InfoQ 与 Nicolas Lorain 总结了消费者想要采用新的 plug-in 的原因,

  1. 绝对可靠
  2. 更好的用户体验:在 applet 启动或者关闭的时候不会造成浏览器停顿
  3. 鲁棒的支持包括 3D 图形和其他特征的高级 applet 内容

欲得到更多信息请访问下列链接:

查看英文原文 Sun’s Promise: Reliable, Portable, Functional Java Plug-in - - - - - -

译者简介: 曹云飞,西安交通大学计算机软件硕士。现就职于 Ethos ,热衷于新技术的钻研,软件架构与敏捷开发,目前从事 Home Control 方面的工作。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007 年 11 月 23 日 05:18678
用户头像

发布了 47 篇内容, 共 84955 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

网易云信 NERTC 高清画质体验之 H.265的工程实践 | 体验共享技术专题

网易云信

Java 测试 音视频 视频

递推算法与递推套路(算法基础篇)

有道技术团队

算法 大前端 网易有道

【浪潮云说】直播间第九期今晚20:00准时开播

浪潮云

云计算

2021金九银十阿里Java岗7轮技术面经历,险幸上岸

Java 程序员 架构 面试 计算机

这还不够全?阿里P8架构师耗时八年时间才整理出来这“Java核心知识PDF(Java高岗)

Java 程序员 架构 面试 后端

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(下)

EMQ映云科技

RabbitMQ 物联网 IoT mqtt emq

【直播回顾】5步实现精细化用户触达,助力业务增长

极光JIGUANG

消息推送 用户触达

阿里P8手抄本惨遭泄露,并出现病毒式传播,致28人斩获大厂offer

收到请回复

Java 面试 阿里 大厂Offer

网络安全产品之堡垒机应用于金融行业案例讲解

行云管家

云计算 网络安全 等保 堡垒机

Qcon 免费报名 | 融云「实时通信技术专场」议题抢鲜看

融云 RongCloud

开发者 通信云 场景化

Python代码阅读(第36篇):列表偏移

Felix

Python 编程 Code Programing 阅读代码

阿里巨擎耗时六个月整理的这套图解HTTP笔记,在Github上被疯狂转载!

Java 架构 面试 程序人生 编程语言

动态模型之增压暂停【FunTester测试框架】

FunTester

性能测试 接口测试 测试框架 FunTester 动态模型

自定义View:文字的测量与绘制

Changing Lin

10月日更

Zookeeper 集群部署的那些事儿

牧小农

zookeeper

Android 资源溢出崩溃轻松解

字节跳动终端技术

字节跳动 移动开发 Mars 火山引擎 MARS-APMPlus

J2PaaS 低代码平台,正式发布开源版!

J2PaaS低代码平台

低代码 零代码 低代码开发 低代码开发平台 无代码平台

2021云栖大会丨果断收藏!「混合云参会指南」来啦~

阿里云情报局

人工智能 阿里云 互联网 云栖大会 前沿科技

保持高效学习的 7 个方法

Phoenix

学习方法

手把手带你做LiteOS的树莓派移植

华为云开发者联盟

树莓派 系统 LiteOS arm 树莓派移植

英特尔举办第十四届物联网峰会,携手中国生态伙伴迈向融合边缘新时代

科技新消息

惊了!网易架构大牛熬夜手敲千页网络协议笔记,竟在Github上标星百万!

Java 架构 面试 程序人生 编程语言

Linux服务器部署服务

黄敏

拒绝焦虑!Alibaba巨擎随手甩来的一本Java性能优化让我收获满满

Java 架构 面试 程序人生 编程语言

Angular 依赖注入 - 全面解析

PingCode研发中心

angular 依赖注入 对象提供者 注入器 令牌

Java集合核心内容之葵花宝面,搞定90%以上的技术面!建议收藏

程序员小呆

Java 程序员 架构师

智能化如何升级传统厨房烹饪体验?苏泊尔与鸿蒙智联携手交出创新答卷

科技汇

堡垒机提供的运维报表有什么用?怎么简单解释?

行云管家

运维 堡垒机 IT运维

2.两数相加(链表)

黄敏

AI在游戏反外挂中的应用与实践

AI在游戏反外挂中的应用与实践

Sun的承诺:可靠的、可移植的、功能强大的Java Plug-In_Java_Craig Wickesser_InfoQ精选文章