Web服务如何使用JavaSpaces

 
   | |

导读:Web服务使用JavaSpaces,在Web服务的内容当中,服务将会接受需要大量运算资源或者其他资源的请求,并建立一个代表业务的对象。这个对象将被写入一个空间。

关键词:Web服务 JavaSpaces 网格计算 松散耦合

 
正在加载数据... 【TechTarget中国原创】本文详细描述间隔类型的网格计算是如何工作的,以JavaSpaces为例说明……

  先来概述一下,间隔类型的分布式计算的特点在于松散的耦合系统,通过为数据容器对象提供类似相联存储器功能的但以服务,分布式计算是协调作用的。在Web服务的内容当中,服务将会接受需要大量运算资源或者其他资源的请求,并建立一个代表业务的对象。这个对象将被写入一个空间。在这个空间里,工作流程作表现为进行详细类型的工作的能力。在工作完成的时候,Web服务将收回一个包含结果的对象,并给请求系统一个格式化的回复……

【TechTarget中国原创】本文详细描述间隔类型的网格计算是如何工作的,以JavaSpaces为例说明……

  先来概述一下,间隔类型的分布式计算的特点在于松散的耦合系统,通过为数据容器对象提供类似相联存储器功能的但以服务,分布式计算是协调作用的。在Web服务的内容当中,服务将会接受需要大量运算资源或者其他资源的请求,并建立一个代表业务的对象。这个对象将被写入一个空间。在这个空间里,工作流程作表现为进行详细类型的工作的能力。在工作完成的时候,Web服务将收回一个包含结果的对象,并给请求系统一个格式化的回复。

  例子的问题

  我将通过一个拥有通用信息的简单形式的例子来寻找问题:做出一个部分的描述,查找出所有的和这个描述相符合的实体。在这个例子中,我们将有一些拼写正确或者拼写不正确的词语。这也许来自法院书记官试图代表证人按语音说的话的引用。我们做了一些拼写单词以及单词使用背景的尝试。我们需要发现一个有意的单词表。这将通过一个包含我们拥有的信息的对象的建立以及寻找试图配合的工人来实现。

  JavaSpace持有些什么

  为了将对象放入JavaSpace,你必须有一个执行进入接口的类(也是拓展了连续的接口的类)。此外,每个域都要拥有一个公共的对象引用——而不是私有的。下面是一个我用的类——“元电话”是语音编码运算法则的名字。使用的实体既代表着工作又成为工人们申报他们想要实体拥有相关特征的空间的模板。

    public class MetaphoneLookupEntry implements
  net.jini.core.entry.Entry {
  public String word ; // the starting point word
  public String domain ; // ie names, places, companies, etc
  public Boolean filled = Boolean.FALSE ;
  public String code ; // metaphone code
  public String worker ; // so we can track who does what public String[] matching ;
  public MetaphoneLookupEntry() {
  }
  public MetaphoneLookupEntry(String wd, String type ){ word = wd ; domain = type ;
  }
  }

  工人将Metaphone编码考虑成一个命令,并使用它寻找和具体的域相匹配的可能的名单。匹配的将被加入匹配字符串的数组当中,填充域也将被设为真的状态。如果没有任何匹配的话,字符串数组将为空。

  基本的JavaSpaces操作

  JavaSpaces支持四种基本的能够提供极大的组织分布式计算能力的操作。需要注意的是,一个间隔并不修饰进入的对象,它仅仅是持有对象并和其他的程序进行交流。这些基本的操作是写,取,读以及通报。在这些服务当中,我们仅需要他们的最基本的版本。

  写的操作是将对象放入间隔,并指定进入实体的时间长度是合法的,即我们所知道的持续时间。对一个Web服务而言,持续时间可以很短以至于错误会看上去很快。例如一个需要查询的服务也许会将MetaphoneLookupEntry的参数设为name="pittsburgh", type="place",并且在10秒的持续时间内将填充域设为假。

  取的操作使用入口作为模板,像空的数据行为一样,原始卡片和拥有值的数据域必须匹配。一个了解如何查找恰当名字的工人将会建立一个domain="place," filled=FALSE其他的域保持空的MetaphoneLookupEntry对象,因此,所有的事物都会匹配并在取的过程中得到使用。取的操作也详细列出了等待时间的数量。取的操作或者返回一个带有工作的入口或者返回空值,代表没有可以获得的工作。

  读的操作和取的操作是相似的,但是仅仅是得到了一个拷贝,原始的入口依然在间隔当中。而通告的操作建立了一个可以回馈的链接,通过它间隔服务就可以在匹配的入口被写入间隔之后提醒工人。

  事情发展的例子

  下面是个Web服务如何使用JavaSpaces服务的例子。我们假设一个或者多个工人的处理使用了取的操作,设置的模板参数是ype="place" , filled=FALSE。注意的是工人的处理线索直到取的服务返回或者持续时间超时才会停止。任何数量的工人处理线索都可能在这个状态之中。

  Web服务将入口的参数设置为type="place," name="pittsburgh" , filled=FALSE并进行了写的操作。直接的,他使用了和去操作相同的参数,只不过将filled设置为TRUE。这将在工人将其写回间隔的时候得到入口。

  工人之一成功的进行了取的操作,成功的得到了查询需要的入口。工人将其填充进匹配的字符串数组,将filled设置为真,并将入口回写到间隔之中、

  带有参数filled为真的Web服务“取”成功了,用查找到的被可能的匹配填充的结果修改了入口。在我使用的单词表中,"Pitsburg", "Pittsboro", "Pittsburg" 以及"Pottsboro"都是语音匹配的。

  优点和缺点

  尽管JavaSpaces服务器建立起来并不是一件微不足道的事情,但是和其他类型的网格计算服务器相比是简单的多的。此外,接口的简单性使得学习曲线更加容易。JavaSpaces方法最大的好处在于减轻了额外的加入表格的工人的数量。

  不过,从例子中可以清楚的看出。在一个JavaSpaces的解决方案当中有很多的额外的信息交易。因此使用JavaSpaces或者任何一种网格计算来支持Web服务的唯一原因就是对计算能力的要求或者具体的不能直接可行的支持服务器的资源。

 
查看全文
 
 
 
 
 

Java Web服务

 
长期以来应用开发最通用的语言之一,Java已经开始获得云计算平台的支撑。但是由于新的和分布式架构平台,像Google App Engine……
 
大约15年的时间了,Java继续增加作为现代中间件的影响力。不论今后是否成功,显然Java已经为计算带来了新的同质性。Java最大的中间层价值……
 
今年当Oracle准备收购Sun以及VMware收购SpringSource之时,Java的世界有些动摇。Sun控制着Java Community Process(JCP),JCP支配着语言……
 
这一整年,我们发布了许多技巧来协助您创建更好的面向服务架构。为此我们认真筛选推荐一下5条技巧给您。希望可以起到查漏补缺的作用。
 
UML从一开始就收到了很多批评。有些观察员认为UML语言有些臃肿,因为许多关系图很少使用,而有些关系图的功能又相互重叠……
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录