技术开发 频道

Gemstone和Tangosol开始支持.NET

  【IT168技术新闻】Gemstone, Tangosol为分布数据缓存器提供本地.NET客户端。

   Gemstone上月给他们的Gemfire分布式数据缓存或网格发布了一个可以通用C++和.NET的数据缓存客户端更新。Tangosol上周也同样为.NET发布了Coherence,此版本提供了一个本地C#客户端实现来访问Coherences中的数据网格。以上两个公司与GigaSpaces都有基于java的分布式缓存解决方案,同时它们均在2006年宣布通过在它们的Java缓存客户端上实现自己的对象序列化格式和.NET包装客户端来支持.NET。这些工具最常见的用例是使用.NET客户端作为前台,java作为后台,这一用法在金融行业内部尤为盛行,其中.NET代码可以和一个基于java的框架一起在一个缓存中共用对象。

   Gemstone在二月份第一次发布了本地C++和.NET客户端,这样消除了C++和Java共享数据时, 在.NET应用程序或use wrappers中配置JVM的必要性。InfoQ三月初告诉Gemstone它们的解决方案。就他们的电信格式,Gemstone回复到:

   GemFire使用一种二进制格式来代表对象图。这个类似于java对象序列化协议,在此协议中对象和类ID信息的声明被编码到流中。由应用程序产生或说明的Class ID信息是解决不同语言在反序列化(deserialization)过程中解释字节的首要方法。它提供了Java, C++和 .NET 对象之间的内在映射关系,并且增强了不同语言之间程序设计模型的一致性。序列化框架可以处理复杂的对象图。在支持基本类型的同时,序列化框架也增加了对byte数组和XML文档的本地支持。

   Gemfire一开始就支持Java, C++, 和任何的.NET语言。为了让它们共享对象,它们必须让任何一个需要访问这些对象的语言实现相同的对象模型。Gemstone描述了大多数用户实现如此目的的方法:

   1.在.NET, C++或Java中创建类(什么样的源语言并不重要)
   2.在目标语言中创建一个匹配类
   3.在Java, C++或.NET客户端注册类
   4.在每个服务器上注册类

   最终的结果是实现一个被所有的客户端均理解和同意的通用的序列化结构。Gemstone解释Java和.NET interop客户用例如下:

   在华尔街,我们注意到C++和Java客户端配置到网格来访问企业数据结构的重大需求。除此之外,在华尔街,我们有大量的客户正在建立应用程序来访问EDF。由于大量客户使用.NET作为他们用户界面开发的首选,那么添加.NET客户端就是一件自然而然的事情。

   GigaSpaces在早些的一个InfoQ采访中也解释了他们的interop解决方案,同时表达了在2007年初支持.NET的意愿。

0
相关文章