无处不在的Java技术
2009-01-08
作者:李涓子,王克宏
1.引言
Java技术已经遍布世界各个角落,从智能卡、Java手机和电话,到汽车生产以至于控制“火星漫游者”号的临界任务系统都能看到它的作用,Java已经成为一种普遍深入的技术。在2004年旧金山的第八届JavaOne开发者大会上,Sun的总裁兼首席运营长乔纳森-舒瓦茨(Jonathan Schwartz)这样描绘了现今日益繁荣的Java技术。
他指出Java技术之所以如此成功,关键在于它能够将四个互补因素有机地结合起来。这四个互补因素是:兼容性(Compatibility)、创造力(Creativity)、商业(Commerce)和社团(Cmmunity)。兼容性促进了4A(anywhere, any when, any device and any person)技术的发展,4A技术的广泛应用又有助于开发者发挥其巨大的创造性,同时有助于工业界建立良好的商业模式,由此建立Java技术的社团。因此可以说,Java技术的不断普及给全世界带来了日益增长的市场机遇。
以下统计数字有力说明Java技术在近几年的发展和普及:
.现在全世界有大约4百万Java开发者;Java开发者在一年中增长了近百万人。
.下载Java Developers Kit的次数达到1亿次;
.下载Java桌面系统的次数达到了6500万次;
.6.5亿台PC都装有Java技术的系统;
.3.5亿台移动电话使用了Java技术;
.一个采用Java技术开发的游戏在2006年估计价值会达到1.9亿美元。
这些统计数据充分表明Java技术正在向最初提出的“使每一件事和每一人都能与网络连接”的目标靠近。而今这一目标也早已成为了全世界的目标。
2. Java技术的新发展
在过去的一年中,Java技术在许多应用平台和软件上都有了长足的发展。这其中包括Java的核心技术、Java的Web服务技术、移动技术以及企业系统的解决方案。
2. 1 核心技术的增强J2SE 1.5
J2SE是Java技术中一个重要开发和部署平台,它既提供了编写桌面/工作站应用程序所有必需的功能,而且也是J2ME的基石和J2EE执行程序的推动力。Sun即将推出J2SE的1.5版本,并将其命名为“Tiger”。该版本在Java程序的简易开发、可扩展性及性能、监视及管理和桌面客户端等几个重要性能方面都有了大幅提高。
在面向程序的简易开发的研究中,J2SE1.5增加的包括对泛型、元数据和自动装箱等新特性技术的支持,使用户在Java程序的在应用开发上更加方便。在可扩展性和性能方面,J2SE 1.5对原有版本的一个显著更新是实现了类数据在Hotspot JVM中的分享。这一技术使得多个运行的JVM之间可以分享只读数据,而且还改善了它们的启动时间。程序的监控和管理是J2SE平台上RAS(Reliability, Availability, Serviceability)中的一个关键组件,JVM的监控和管理API详细说明了一套非常容易理解的JVM内部机制。此外,在J2SE的1.5版本中,其改善的安全特性使得基于J2SE 平台的应用能够使用新的安全提供者来存取智能卡。
2.2 基于Java的Web服务和XML技术
XML作为网络上数据的通用置标语言,可以更好的表示网络资源信息,XML增强了网络中数据的表示、组织和交换。XML与Java结合,使互联网的数据集成程度获得大幅度提高,可以远远超过单独使用Java时的集成程度。如果说XML的提出解决的是网络上信息表示问题,Web services的提出则是基于XML对Web上的各种应用和服务进行统一管理和调度的又一新技术。因此可以说,Java、XML和Web services是网络应用开发的三个不同层次,三者的有机结合主要体现在它们都是网络的开发语言和标准,基于三者开发的应用都具有开放型和跨平台特性。这也是为什么业界利用这三者作为网络开发平台的主要原因。
J2EE提供了对Web服务的支持,标准Java技术API给出了对web Services的编程处理,包括对Web服务的注册、配置和调用的RPC方式。他们分别是基于RPC调用方式的Web Services API (JAXRPC),SOAP Attachment APIs for Java technology (SAAJ)以及Java API for XML Registries (JAXR)。
2.3 Java的小型设备编程技术
Sun将J2ME 定义为一种以广泛的消费性产品为目标的高度优化的 Java 运行时环境,包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导航系统。目前已经超过6.5亿台电话嵌入了J2ME运行时环境。
在连接受限设备上J2ME实现了在虚拟机层次上的多任务控制,在同一个物理Java虚拟机上同时构造多个逻辑的虚拟机,使得多个Java应用程序(MIDlets)可以同时运行。为了扩大用户群,现在的J2ME使用户能够在一个小型设备上更方便和直观地处理多个Java应用。另外,在J2ME应用程序的性能和内存的使用上也有了很大的改善。
2.4 Java企业系统解决方案
J2EE已经成为企业应用开发的标准。平台为创建、部署和管理企业级类应用以及代码的可移植性及重用提供了一个安全的、鲁棒的和可扩展的环境。Java企业系统软件套件被认为是当今最为完整、技术最先进的企业应用软件之一。基于Java技术的跨平台特性,使这套应用软件在全球广受欢迎,拥有许多成功案例。
在新的J2EE 1.4版本增强和完善了许多新的功能,同时对加大了对中小企业的应用系统开发的支持。Java Studio Creator提供了基于Java和J2EE的解决方案,使用它可以降低开发应用系统的复杂性和时间,Java Studio Creator 采用了可视化界面,适合初学者用来开发简单应用。使用其中的JavaServer Face工具就可以方便地开发基于MVC模式的应用。这样使得J2EE不仅仅可以应用于象“波音”和“通用电器“这样大的”航空母舰,同时使中小企业用较小的费用就可以在其上架构自己的系统,从而扩大了其用户群。
3.Java技术带来新的机遇和挑战
Java作为一种网络编程语言诞生,经过九年的不断发展和完善,已经逐渐成为网络编程语言的标准,Java技术在对各类型网络设备支持的不断增强,和各种易用开发工具的不断推出,必然使得基于Java的应用不断普及。今年SunOne的开发者大会上,Schwartz用大量实例说明了Java技术可能出现在你看到的任何地方,特别是在巨大的、重新显现的桌面市场。他认为:“当你选择了Java,你就具有了最广泛市场”。如何能抓住这一机遇,推进Java在中国的发展,使我们的技术能与世界接轨,是我们当前应该明确的问题。
在今年的SunOne的开发者大会上,Schwartz在他的报告“机遇无处不在”中给我们描绘了Java技术应用各种场景。
3.1 客户是Java应用的基础
要使一项技术能够得以普及,就必须不断扩大用户群,满足各种类型用户对不同应用的需求。而Java技术正是迎合了这一发展规律,其技术的普适性给各个行业市场带来巨大的开发潜力。
许多大的软件厂商包括IBM、Oracle和BEA都在应用服务器层次上对Java进行了支持,并从中取得了丰厚的利益。而在具体应用领域中,Java技术的应用已遍及全球几乎所有Internet所及之处,涉及电子政务、电子商务、远程医疗、远程教学、科学研究、日常生活等方方面面。
除此之外,Schwartz在SunOne 2004开发者大会上以若干鲜活的实验说明了了Java的更广泛的应用。在人带的手表上安装一个拇指大小的设备,就可以将他的脉搏跳动情况传送到他的移动电话上。这两个设备之间的连接为病人、医院和医生之间的有机连接奠定了技术基础。
Schwartz认为对于Java的开发者来说,Java的一个大的应用市场是汽车工业。为了显示Java在其中软件和服务上的潜在应用,他将一辆充满个性的跑车开到会议大厅,一个中央显示器来显示通信、汽车室温控制、导航和娱乐信息,可以说网络在驾驶者这辆汽车。如果每个汽车消费者每月将220美元用在他们的汽车网络服务上,汽车公司可能将免费送给他汽车后,仍将赚更多的钱。
3.2 Java的实时控制技术
今年的Java开发者大会上,Sun实验室的 Bollella 向与会者展示了Java实时应用的一个示例。该实例使用Java实时规范,研究对钟摆的实时控制。该项目代号为“Macinaw”,使用一个经典的被称为“逆向钟摆”的实验来说明对发动机的控制问题。RTSJ是一段用Java编写的代码,它每5毫秒检测一下钟摆摆动的位置。钟摆有两种状态:摇摆和平衡。平衡一个钟摆就像是平衡你手中的尺子。开始,他启动一个设备,这个设备是一个小的载体,上面有个钟摆,它可以带着钟摆在轨道上行进。设备在轨道上的前后移动,可以使钟摆来回晃动。设备可以通过精确控制,将钟摆摆成垂直方向,并保持钟摆始终处于垂直状态。随后,Gosling几次用手指推钟摆,想使它失去平衡,每次发动机和两个传感器都能够及时矫正钟摆使它保持平衡。这个实验表明系统能够以足够快的速度来进行切换,以保证钟摆的平衡。
Gosling认为在一个大的实时控制系统中,最重要的事情是可预测性。
此外,Sun的实验室和NASA喷气推进实验室目前正在合力研发一个基于Java技术的控制系统,它将使未来的宇宙探测器在探测这个红色星球之时能够具有智能化的、独立进行决策的能力。尽管目前尚处于实验室研究阶段,但“Java之父”——James Gosling仍对与喷气推进实验室、Carnegie Mello University合作的这项充满了冒险和挑战的实验项目充满了信心和热切的向往——向往着其中的实验结果有朝一日会成为未来太空船的一部分。
3.3 简单的Java应用开发过程带来的生机
Java技术的经济就是以Java先进技术应用为中心的社团、创新和机遇。Java技术要进行普及,Java开发者的队伍要扩大到1000万,就必须使开发者能够方便地来使用Java。Java技术以其可视化、简单、快速和随意性很好地符合了开发者的需求。而Sun Java Studio Creator应用开发工具就是这样一个开发工具,它是建筑在Netbeans集成开发环境上的一个可视化设计工具,可以通过简单的鼠标拖拽功能进行快速的Java应用开发,同时它也是一个采用100%纯Java技术的完整的解决方案。
这一技术的推出使得基于Java应用系统的开发降低了对Java编程的工作人员的要求,使Java开发队伍的扩大至1000万这一说法,不再是空谈,而必定将由于其简单易用性而付诸实现。
同时Sun在Sun Java Studio Creator的销售在价格也采取了许多优惠措施,使中小企业也能够很快地开发其应用系统。这无疑给Java技术的广泛应用带来的巨大的商机。
3.4 Java企业系统促进中小企业的发展
今年2月16日,Sun公司的总裁Jonathan Schwartz在中国举办的媒体交流会上宣布,Sun公司将向中国的中小企业免费提供Java Enterprise System(Java企业系统)软件套件。这一举动为中国的中小企业的信息化建设提供了一个较高的起点。Java Enterprise System套件中包含了目录服务器、身份识别服务器、应用服务器、信息队列服务器、网络服务器、日程服务器、短信服务器、门户服务器、门户安全遥控和移动登录、集成服务器等软件,适用于各种平台。不仅如此,Sun还联手国内公司广泛开展对Java企业系统的培训,目的是这些企业更好的掌握Java技术,推进中国中小型企业的信息化进程。
Sun公司这样做就是想说明:Java不仅仅适合大型企业级用户,中小企业同样需要Java;Java除了可以运行在Unix、Linux平台,也能够在Windows平台上运行。
4.我们的工作
Internet作为信息基础设施之一,已经深入到人类社会的各个领域,而world wide web(WWW)在Internet之上为人们提供了一个广泛进行各种数据和信息共享及利用的空间。Web技术已经成为现在信息技术的一个重要领域,并在国民经济建设中发挥着巨大的作用。清华大学计算机系软件所知识工程研究室以网络计算模式下知识处理为研究方向,以Java、XML和构件为技术基础,对Web技术的基础理论和关键技术进行研究。
4.1 语义Web和Web服务
给Web赋予语义信息,将Web做为基于知识的资源共享平台,是Web发展趋势。该方向的主要研究内容包括:
(1)语义互联网中的基础软件的体系结构的研究,建立语义web整体架构;以本体构件为单位,研究建立能对本体进行有效存储、访问和处理的机制;
(2)web环境下大规模知识处理机制和方法的研究。
语义web中分布式本体的理论和关键技术研究。运用数据挖掘和机器学习算法,建立领域本体的概念网络,实现大规模的领域知识库,为实现语义web提供重要的知识来源。研究语义Web中分布式本体内容生成的关键技术,语义Web得以实现的重要研究课题,重要研究内容包括分布式本体标注和映射机制。
(3)智能Web 服务研究。
解决目前Web上广泛存在的信息格式的异构性、信息语义的多重性以及信息关系的匮乏和非统一,实现Web更自动化地、更智能化地交互。将本体引入Web Services,使之成为Intelligent Web Services,使Web实现从自动化到智能化的转变成为可能。主要研究内容包括Web服务的管理机制和语义Web服务的实现机制。
目前我们已经利用Java技术建立了一个基于本体的语义Web的基础软件,并将其应用于Web services的自动发现中。
4.2 基于Java和XML的Web信息处理
涉及web下异构信息源的集成、web环境下基于内容的资源自动获取理论和方法,以及基于内容的知识查询和处理。主要研究内容包括:
(1)基于Java的XML关键技术
XML作为更好实现网络互操作和数据交换的标记语言,已经得到的极大发展。XML提供了一个数据共享和交换的信息平台,为信息有效管理和数据集成提供了强大地功能。清华大学知识工程研究室在XML的客户化工具进行了深入的研究和开发,并初步具有一些拥有自主知识产权的XML的客户化开发工具,包括:
.XML数据管理的可视化开发关键技术
.异构XML的数据集成
(2)基于XML的Web挖掘和知识发现
.在基于XML的Web信息处理中,提出基于XML的半结构化数据智能处理模型,通过定义半结构化文档的逻辑、语义和表示视图,充分利用数据挖掘和机器学习方法,挖掘半结构数据的内容信息,实现真正意义上对半结构化文档的内容管理。
.基于XML自适应的文档管理关键技术研究,包括自动按照分类体系管理文档,建立方便用户信息浏览的导航方式,建立有效的文档索引和搜索技术,和能够有效抽取用户关心信息的信息抽取技术。
4.3 电子政务和电子商务的关键技术
电子商务和电子政务的发展正在成为当代信息化的最重要的领域。作为Web技术应用的主战场,我们以电子商务和电子政务技术作为以上Web技术理论研究的应用平台,为电子商务和电子政务的研究提供先进的理论和方法,使我们基于Web技术的研究在理论和实践上都处于先进水平。
运用J2EE、XML和Web services的先进技术,清华大学知识工程研究室在电子政务和电子商务的关键技术拥有了一定的研发经验。我们承担并实现了旅游电子商务平台(http://www.luopan.com),并在该平台上实现了基于页面和功能级的Web服务。此项技术在国内处于领先地位。在电子政务建设方面,我们承担了赤峰市电子政务系统中公文流转系统的设计与开发项目。该项目目前正在进行之中。
Java 技术正在不断的完善,Java应用领域正在不断的扩大,Java正在朝着“无处不在的Java”健康地迈进,Java正在成为IT应用的首选平台。对于13亿人口的巨大市场,全国都在实施“用信息化促进现代化”的战略行动,各地正在掀起电子政务和电子商务建设的热潮,具有强大生命力的Java 技术的推广与应用是大势所趋,尤其是SUN与 MicroSoft两巨头的和解,对于.NET 和 Java/J2EE的两大核心技术的融合受到广大技术人员的欢迎,有利于网络应用与软件开发的进展。我们更是应该抓住机遇,利用无处不在的Java技术为我国的信息化建设服务。