基于Spring-DM实现分布式服务框架(DSF)(二)

在上篇分析完了在V 0.7需要干的活后,开始细化其中的实现细节,由于技术细节和之前想的有点不同,在细化的同时也稍做了调整,系统的架构仍然保持不变,在这篇blog中来看看实现每项任务的技术细节,之后就可以进入编码实现阶段了。
1、服务模型
      采用OSGi的服务模型,在Spring中使用此服务模型时和Spring-DM中的osgi:service、osgi:reference基本一致,示例如下:
      发布服务(将bulletinListAction以jndi的方式发布为dsf服务): 

<dsf:service id="BulletinListCommandService" version="1.0" ref="bulletinListAction" 
  interface
="cn.org.osgi.xwork.action.IAction">
   
<dsf:service-properties>
    
<prop key="command">LIST</prop>
   
</dsf:service-properties>
      
<!--以jndi的方式对外发布--> 
      
<dsf:jndi/>
  
</dsf:service>

     引用服务(引用dsf服务):

<dsf:reference id="extensionRegistry" interface="org.eclipse.core.runtime.IExtensionRegistry" version="[1.0,2,0)" cardinality="1..x" retries="3" timeout="5000">
        
<dsf:service-properties>
         
<prop key="command">LIST</prop>
       
</dsf:service-properties>
           <!--以jndi的方式调用远程服务-->
           <dsf:jndi/>
     
</dsf:reference>

    关于服务模型所支持的所有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)。

4、调用服务
      这个部分之前分析错误,之前忽略了服务应用端是不知道目标服务的地址的,需要通过分布式缓存查询才可得知,因此不是直接采用Spring的JNDIObjectFactoryBean就可以实现的,需要编写自己的DSFObjectFactoryBean,具体实现步骤为:
      提供扩展的spring xml namespace的支持;
      编写DSFObjectFactoryBean class,由这个bean来负责调用分布式缓存,查询目标服务地址,由于目前只有JNDI方式,在获取到目标服务地址后仍然通过Spring的JNDIObjectFactoryBean完成剩余工作。
经过上面四步技术实现细节的分析,可以来编码完成V 0.7的实现了。

posted on 2008-01-29 23:12 BlueDavy 阅读(4896) 评论(0)  编辑  收藏 所属分类: OSGi、SOA、SCA


只有注册用户登录后才能发表评论。


网站导航:
 

公告

 









feedsky
抓虾
google reader
鲜果

导航

<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

随笔分类

随笔档案

文章档案

Blogger's

搜索

最新评论

阅读排行榜

评论排行榜