JAVA将继续保持它的特点:跨平台的服务器端应用,如WAP服务器,或者是电信领域的如JAIN(Java API for Intelligent Networks,同时它在嵌入式系统中将继续保持它的优势,象智能卡、移动电话、PDA等。而我们还将看到.NET的成熟,当然这种成熟需要时间,可能是相当长的一段时间,就好象当年JAVA成长那样。
非微软产品,包括服务器,桌面或是便携式设备的操作系统如Solaris, Linux和Palm OS的.NET接口。与JAVA核心的整合。比如说,针对CLI(Common Language Infrastructure)的JAVA编译器,针对JAVA虚拟机的C#编译器。SQL SERVER 或是 ORACLE 等数据库产品中整合的VES 引擎。由中立的第三方开发的开放源码的,完善的.NET平台。
JAVA的一个主要目标是通信设备提供商,如NOKIA就在它的WAP SERVER 应用了JAVA。类似于70年代和80年代初,PC销售时硬件供应商将最终的应用程序绑定在操作系统中一起销售,JAVA现在也被绑定于通信设备中被销售。
它的另一个主要方向是JAIN(Java API for Advanced Intelligent Network),它主要是定义一套与协议(如CDMA,GSM,IMT2000)无关的API,以便于基于开放市场的组件开发。这使得ISV(独立软件供应商)可以以插件的形式提供通信服务,如可自动转接至最近的可拨通的国际呼叫中心的800免费电话。当然,JAIN也遇到了对手,想微软和不列颠通信提出的Parlay计划——它也被业界所支持。
在这里,JAVA API 与每一个相应 .NET API之间将建立一个映射,比如Java API中的java.io.File将被映射到 .NET的System.IO.File 类。相对于比较简单的IO类的映射,还有一些映射比较复杂,比如java.net包到.NET 的SYSTEM.NET的映射。这里存在的一个问题是:该项工作如果在C#中进行开发会比较方便。而假如在JAVA中实现,则需要有一个直接指向CLI(Common Language Interface)的编译器,它能生成符合CLS(Common Language Specification)标准的CIL(Common Intermediate Language)代码。
可以通过编写一个向导式的工具来避免一些烦琐的工作,例如,可以利用C# 或JAVA来编写一个基于XML格式的对象描述,用它生成一个框架代码,然后根据需要向其中手写添加其他代码。如果你确实打算进行这样的操作,在http://xml.apache.org站点你可以找到很多有用的资料。微软的过时的JAVA SDK中也有类似的工具可供参考——一个用来生成Jdirect(JDirect was the Microsoft's hack for implementing native interfaces)代码的工具,利用它可以实现访问本地WIN32 API。SDK中有该工具的源代码。顺便提一句,由于这里涉及到微软的一套独特的JAVA扩展标记,因此SUN和微软一直就此问题打着官司。
这个.NET API bridge 应该以一种优化的方式被映射到PALM OS API上。连接器和装载设备的映射表驻留在PC 的网关上。通过数据线或蓝牙传输PALM OS 的可执行代码。它的实现将依赖于PALM OS 的驻留虚拟机 KVM(the Java 2 Micro edition)运行时,同时它还应该避免KVM设计中JAVA运行程序载入过慢的缺陷。另外这一套API 与 为WINDWOS CE 的 设计的不同,它不应舍弃那些资源占用较大的API 象System.Xml。.NET依赖于SOAP进行远程的方法调用。SOAP 基于 XML格式,因此它需要System.Xml的支持。如果没有,基于SOAP的分布式应用将无法工作。通过调用System.Xml API 的方法可以实现对PDA诸如WINDOWS CE 和 PALM OS上的应用程序或是一些服务器端的应用的远程操作。甚至可以在SOAP的基础上利用为WAP (Wireless Access Protocol)设计的WBXML (Wap Binary XML)标准与WAP 网关进行通信。
.NET API and lib. bridge for POSIX.
这部分将对.NET API 和UNIX API进行映射,大量的 C 的编程工作将是一个困难,但更大的困难将来自于GUI 元素的处理上。这些UNIX平台会有很多GUI框架,比较安全的做法是给它们提供一个WIN32 API 的端口作为媒介。如果能以前文所述的MICROSOFT JAVA SDK的方法来进行映射的操作,那么将节省大量的编程工作。