Jdon框架下一步架构构想
融合IOC + OSGI + REST + 异步HTTP。
这四个架构是当前热点,都是组件构件领域最先设计,如何把它们揉合在一起,形成一个轻量的方便使用框架,以下是我目前想法,欢迎大家讨论:
框架内部:
1. 将资源或服务以URI为名称注册到OSGI中。
2. 注册URI资源之前,首先要注册异步Http服务,可以挑选MINO xHttp等。
3. 注册总类如下,将上述两个组件注册到OSGI中,同时使用IOC依赖注射解决资源类之间的依赖。
|
上述注册在框架被使用时,可以通过XML配置或Annotation实现:
<services>
<service name="/resource" class="xxx.MyResource.class"/>
</services>
@GET
@Resource("/resource")
Class MyResource{
...
}
客户端调用方式:
1.另外一个JVM或远程通过REST方式调用
http://localhost:8080/resource
2.同一个JVM中不同Bundle模块之间使用OSGI方式调用:
ServiceReference ref = bundleContext.getServiceReference("/resource");
try {
MyResource myResource = (MyResource) bundleContext.getService(ref);
...
} finally {
bundleContext.ungetService(ref);
}
3.同一个Bundle模块中以IOC依赖注射调用。
调用方式的粒度是不断从小到大,当然比REST更粗粒度的是SOA Web方式方式。提供各种粒度的对外开放接口,我相信这应该是未来轻量框架的一个目标。