两个表格实现面向服务构件模型

        最近打算做一个面向服务构件模型的框架。类似于OSGI中服务构件模型的想法。构件提供服务,其它构件使用服务完成功能。框架支持服务的绑定、替换、升级等操作。
        思考了几天,打算使用两个表格完成。分别是“构件表”和“服务依赖表”。
        先说构件表。表项内容是< 构件名字、构件指针>。构件名字是字符串关键字,表示构件的唯一名字。而构件指针是构件名字所对应的一个构件对象指针。构件表说白了就是注册登记构件对象的表。
        再看服务依赖表。表项内容是< 构件名字/所需服务名字、构件名字、有效位>。表项内容解释如下:“构件名字/所需服务”名字是字符串关键字。含义是某构件需要某服务;第二项“构件名字”表示提供此服务的构件名字;第三项“有效位”表示绑定关系是否有效。
        虽然只有两个表,但已经足够表达所有构件服务依赖的内容了。
        1) 构件服务绑定。容器根据构件的元描述发现构件需要什么服务,建立服务依赖表,但置有效位为假。当构件初始化时,查找构件表获得提供次服务的构件名字,将指针传给使用服务的构件。最后置有效位为真。
        2) 构件替换。只需修改服务依赖表的第二项构件名字即可。比如有A和B两个构件都提供了S服务,A和B都注册在构件表中。有C构件需要S服务,之前是<C/S, A, true>,现在改为<C/S, B, true>即可。
        3) 构件升级。直接修改构件表,某个名字所对应的实例指针。譬如原来A注册在构件表中是<A, ptrA1>,升级后为<A, ptrA2>,对使用A提供服务的C来说,完全是透明的
       以上是框架最基本的数据结构。当然,在升级替换操作时,还要考虑诸如同步互斥、状态保存等复杂操作。这里只是提出一个原型实现。还需要在具体细节上下很多工夫。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值