Newton项目的目的是建立一个分布式组件模型。要成为一个真正意义上可用的分布式组件框架,要从根本上解决本地计算和分布式计算的不同。
Newton基于以上考虑开发,并将提供分布式计算功能。
关键技术
这个世界是一个高度动态的分布式组件模型,并会随时面对无法预料的失败和不确定的网络状态。分布式系统的管理,如部署或整理系统环境是一项繁重 的工作。它阻碍了我们开发和建立一个可以自治的分布式系统。Newton使用OSGi和Jini来解决这些问题。OSGi是Newton整个构件模型的中 心,而Jini则是其远程基础设施的基石。同时,Newton使用SCA来描述构件装配模型。
OSGI
Osgi为单个JVM提供了一个高度动态和设计良好的服务模型。OSGI的部署单元Bundle, 使用了平级的类加载模型,而不是出传统的层次的类加载模型,这种类加载模型确保了OSGI的运行环境具有高度一致性的类视图,而不会因为层次的类加载模型 而导致类加载错误在不同层级的类加载器之间传递。 Bundle具有一个从安装到卸载的定义良好的生命周期。 此外,OSGI对传统的jar形式封装进行了一些改进,可以将API暴露给用户,而将其余的类作为私有的,确保不被用户访问。Bundle在物理上是具有 一些附加元数据的jar文件,Bundle在运行时靠这些元数据被运行环境解析。OSGI提供了一个内部的服务注册表,不同Bundle中的服务在创建时 可以通过服务注册表查找到其他服务。