理论不懂就实践,实践不会就学理论!
在上篇分析完了在V 0.7需要干的活后,开始细化其中的实现细节,由于技术细节和之前想的有点不同,在细化的同时也稍做了调整,系统的架构仍然保持不变,在这篇blog中来看看实现每项任务的技术细节,之后就可以进入编码实现阶段了。 1、服务模型 采用OSGi的服务模型,在Spring中使用此服务模型时和Spring-DM中的osgi:service、osgi:reference基本一致,示例如下: 发布服务(将bulletinListAction以jndi的方式发布为dsf服务):
引用服务(引用dsf服务):
关于服务模型所支持的所有spring的配置在之后我会公布相应的xsd文件。 2、服务中心 在查询了memcachedb的相关资料后,感觉目前它的java接口好像还不太好用,决定直接采用memcached,自己来实现存储,由于服务模型信息的数据其实非常的小,而且维护改动的频率并不是那么的高,暂时采用文件方式直接存储,服务中心在注册时将文件存储在共享的空间中,之后将文件解析为服务模型对象,放入memcached,当有更新、删除动作时同样做相应的处理,文件存储以及memcached交互都是比较容易的事,将文件解析为服务模型对象采用xstream完成。 服务中心基于Spring-DM、Webwork-OSGi简单实现。 3、发布服务 使用方法已经在上面示例了,具体实现步骤则为: 提供扩展的spring xml namespace的支持; 编写DSFJNDIExporter class,基于Spring的JNDITemplate实现将spring bean注册到JNDI的过程(要求为在本地启动jndi server,默认采用jboss jnp)。
posted on 2008-01-29 23:12 BlueDavy 阅读(5162) 评论(0) 编辑 收藏 所属分类: OSGi、SOA、SCA