Tuscany Home
 

Tuscany的分布式思想介绍

From Tuscany中文社区

Jump to: navigation, search

本文借助Tuscany提供的一个例子:calculator-distributed来介绍在Tuscany中,这个distributed是如何被诠释的。

首先,SCA1.0标准并没有提出一个明确的分布式模型,这个分布式完全是Tuscany自己的实现:

运行这个例子,可以直接在这个目录下运行mvn,至于本目录下的README,我没有试过。

首先来分析一下本例的TestCase,见下图:

Image:distributed001.png

图中:TestCase首先实例化一个SCADomain,然后分别实例化3个SCANode,并将每个SCANode“注册”到前面创建的那个SCADomain上,最后,可以通过SCADomain的getService方法获得构件实例,并访问其方法。

TestCase中还有一个SCADomainFinder对象,他提供了一个工具方法,帮助开发者可以在任何位置,通过一个id(一个URL)获得对应的SCADomain。

下面,让我们来看看API的后面,Tuscany都作了些什么。

当我们运行这个例子的时候,会发现,速度很慢,并且内存使用量也很大,大约100M。这是因为在这里面包含了一个http提供者,也就是一个tomcat(也可以是jetty等),还有多达三个axis2引擎实例。

Image:distributed002.gif

图中:SCADomain包含了一个tomcat实例,并以此提供http服务,而每个SCANode均包含一个axis2实例,并以此提供WS,每个构件均通过axis2的java2wsdl工具类,自动映射出wsdl。图中的红色虚线,表示每个构件都被“注册”到相同的地方,SCADomain可以被理解为一个服务注册机制。

该模型最大的问题,就是效率,而这个问题几乎是它成为了一个完全不可用的模型。

Personal tools