SCA Domain 概念的理解

 域

(Domain)

域,对于分布式部署,是最重要的概念之一;

逻辑上,它是一个很模糊的概念,

理论:SCA Domain描述一个完整的运行时配置,潜在地可以被部署到一系列内连的运行时节点上;

应用:它是一个容器,更是一个系统边界,决定域与域的交互;

官方的说法:

SCA域非常灵活,可以很小也可以很大:

一个很小的域,可能是一个在测试环境内;

中型域可能是一个单一的服务器还是小型集群,支持单一应用;

大型的域可以描述一个部门或公司的全部服务;

- 这个概念在各个方面内都有出现,如ESB中有企业域,部门域等概念,SSO有跨域访问的概念,SOA有域库存的概念;

域来讲是对外是一个整体,对内由不同的应用组件而成;

SCADomain,域的大小是由我们自由定义,一般来讲会定义层较大的域,因为同一域内可以使用引用的方式,域外是绑定;

不过具体还要看业务上决定,从效率上,个人更倾向于企业域;

代码:

创建域:

SCADomain domain = SCADomain.newInstance("com/config/simple/echo.composite");
  

SCADomain初始化:

 1.创建需要使用的创建classLoader; 如 -  

final ClassLoader runtimeClassLoader = SCADomain.class.getClassLoader();
  

2.  查找扩展配置文件,并获取扩展SCADomain实现类 -

Class<?> implClass = ServiceDiscovery.getInstance().loadFirstServiceClass(SCADomain.class);
  

3. 创建SCADomain实例;

3.1 没有扩展SCADomain实现时,创建默认SCA域实现;

new DefaultSCADomain(runtimeClassLoader, applicationClassLoader, domainURI, contributionLocation,composites);
 

  

3.2  拥有扩展SCADomain实现时,创建扩展SCA域实现;

constructor = implClass.getConstructor(ClassLoader.class, String.class); 
domain = (SCADomain)constructor.newInstance(runtimeClassLoader, domainURI);
  

4.返回SCADomain实例;

相关推荐