Posted on 2010-02-03 12:12
赵斌 阅读(2507)
评论(0) 编辑 收藏 所属分类:
1.技术区
Java模块化,OSGi,以及Azure云计算
模块化Java简介
对Java的模块化概念、历史、来龙去脉进行了很好的介绍。了解模块化的重要性,区分编译时和运行时模块化的差别,构建自己的Plugins来扩展系统,JSR 277(现已废止)到JSR 291,Java 7将是模块化的。
模块化Java:静态模块化
使用OSGi来理解模块化的概念,是很好的OSGi入门示例。重点是带版本的依赖,使得多版本同时运行成为可能,为模块进化提供了基础。
模块化Java:动态模块化
精彩的就是这篇动态模块化。
只要servlet引擎没有保持对老版应用的引用,这些类就像其他Java对象一样被垃圾回收器回收了。——可能这是平台支撑热部署的关键。
通过查找和绑定,使得每次动态获得服务的引用,确保不会保持老版本的服务对象。实现的方式可以是context.getService(getServiceReference("java.sql.Driver")),或者用ServiceTracker来实现,使用ServiceTracker来管理服务依赖通常被认为是管理关系的好方法。还可以对服务的属性进行过滤,以便选择所需的服务。
关于Java 7模块系统
通过OSGi实现逻辑分离,通过CXF实现物理分离,再用ASF将OSGi和CXF统一成服务,实现可配置的动态部署。
JSR-294引入了新的可见性关键字“module”,意味着模块化成为语言特性,模块之间的可见性限制将会由编译器来负责检查。
依赖、部署时依赖、可选依赖、依赖冲突,或许模块之间的关系就是相互依赖的关系。
Bundle.update:模块化的一年
感觉整个Java都在向模块化发展,大量的第三方基于OSGi的创新正在不断涌现,新的规范甚至包括WAB,所以,我们的产品内部使用OSGi是完全没有问题的。
同时,要和其他的应用打交道,则要通过WS-*,这是我们表现出完全开放性的一面。
Azure于今日正式商用收费
云计算终于来了,不知道是否真的便宜?
Windows Azure Platform是微软完整的云计算平台,目前包含了如下3大部分:
- Windows Azure:即运行在云中的一个操作系统,对于用户来说是虚拟且透明的,其中提供了一系列底层服务。
- SQL Azure:运行于云中的一个关系数据库,和SQL Server 2008基本一致。
- AppFabric:全名是Windows Azure platform AppFabric,提供了访问控制、服务总线等服务,用于把基础应用连接到云中。
云操作系统 + 云数据库 + 云平台,其实,我们提供的ASF+ORG+AC等,相当于Azure的云平台。
Google 的BigTable则是Google的云数据库,Google还多一个云操作系统GFS。
【
赵斌原创,保留一切权利,转载请保留引用:
www.blogjava.net/zhaobin,注明转载除外,谢谢!】