我的评论

说白了IoC其实就是用来管理程序之间的依赖关系
SCA中component之间的依赖关系也是由容器通过配置文件在运行时注入
也就是说IoC其实并不是SCA的一个很大的特点
SCA宣称它是SOA 的programming model
也就是依照SCA规范,就可以很好的创建SOA的服务
但从目前看
SCA做的还不够,目前的特点仅仅在于提出了一个组件模型,可以调用和提供服务,可以支持多种语言的实现,可以解决不同协议之间的消息传输等(貌似对解决遗留系统集成有不小的帮助),当然这都需要中间件的支持
但依然是component oriented
而不是service oriented
re: 思考插件架构体系 guangqing 2006-08-31 09:35  
OSGi core framework不也可以说是一个插件框架么?还有,对于一般的应用而言,比如J2EE应用,有没有这种必要性为这些应用提供可扩展机制呢?听说WAS 6.1利用Eclipse extension机制已经可以为J2EE应用提供可扩展功能,但我还不知道具体的表现形式,因为没有找到sample看
re: 思考插件架构体系 guangqing 2006-08-30 10:18  
为什么说,extension对于eclipse那么重要,而osgi却不提供bundle的扩展机制吗,然后就是因为它提倡通过service来交互,而eclipse却一些自己的需求,比如它是一个open的平台,这样可以方便大家做contribution?
re: 基于Eclipse Equinox的插件框架:TPF guangqing 2006-08-24 22:06  
我的理解是这样,TPF是一个web化的增强的Equinox的console,同时提供了对对于console的远程管理。那么我想问,console中管理的是不是都是在同一个JVM中运行的bundle,远程节点之间的bundle又可不可以交互呢?
我对OSGi了解不多,总感觉它讲的都是在同一个JVM的情况(也许是由于它的原始需求决定的),我不知道它可不可以解决远程服务相互交互的情况,解决这个问题好像并不是一件难事?
针对你公开多个服务的情况,我写了一个component的impl,不知道你的容器会不会报错
@Service(TestService1.class)
public class TestService3 implements TestService1 {

private TestService2 testService2;

public void setTestService2(TestService2 testService2) {
this.testService2 = testService2;
}

public void print(String printString) {
this.testService2.invoke();
}

}
Apache tuscany是SCA/SDO的runtime的开源实现,楼主的容器可以参考下它啊