BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Gemstrone和Tangosol为分布式数据缓存提供本地.NET客户端

| 作者 Floyd Marinescu 关注 38 他的粉丝 ,译者 霍泰稳 关注 1 他的粉丝 发布于 2007年4月6日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

Gemstrone在上月随其本地C++和.NET缓存客户端一起,发布了它们Gemfire分布数据缓存/网格产品的一个互操作更新。Tangosol上周也发布了Coherence for .NET,它能为在Coherence的数据网格中访问数据提供本地C#客户端实现。这两个公司,以及GigaSpaces都有自己的基于Java的分布式缓存解决方案,在2006年也都发布了对.NET的支持。这些工具的最常应用场景是在前端用.NET客户端,后端用Java实现(特别是在金融企业里)的地方,在这儿.NET代码可以在缓存里和基于Java的底层基础共享对象。

在二月份Gemstone是第一个发布本地C++和.NET客户端的,消除了在.NET应用中部署JVM,或者在C++和Java之间分享数据时使用包装的需要。三月份的时候InfoQ就他们的解决方案采访了Gemstone,关于他们的链接格式,Gemstone回答说:

GemFire使用一个二进制格式代表对象图表。这和将和Class ID信息在一起的对象声明编码到流中的Java对象序列协议有些类似。Class ID(被应用创建或者指定)信息是不同语言在非序列化时对字节互操作时,首选的方法。它为Java、C++和.NET对象之间的映射提供了绝对的映射,并建立了一个跨语言的持久编程模型。序列化框架可以处理负责的对象图表。除了支持基本的类型,序列化框架还增加了对字节数组和XML文档的本地支持。

Gemfire支持Java、C++和任何其他本地.NET语言。为了能相互分享对象,它们必须以能访问那些对象的一种语言实现相同的对象模型。Gemstone描述了大部分客户曾用过的一些方法:

  1. 在.NET、C++或者Java(起始语言并不重要)里创建一个类;
  2. 在目标语言里创建一个相匹配的类;
  3. 在客户端(Java、C++或者.NET)注册这个类;
  4. 在每一个服务器上注册这个类。

最后产生的就是一个可以被所有成员理解和接受的通用序列化结构。在描述使用Java和.NET互操作时的客户使用场景时,Gemstone解释说:

在华尔街,我们能看到对部署在网格里C++和Java客户端的大量需求,所有的这些需求都需要访问企业数据结构。在网格之外,我们在华尔街有为数众多的客户端,用以构建访问EDF的应用。在客户使用.NET作为他们GUI开发的选择时,.NET客户端是非常合适的。

GigaSpaces在从前InfoQ做的采访中也解释了他们的互操作解决方案,以及他们对支持本地.NET的重视。

查看英文原文:Gemstone, Tangosol Offering Native .NET Clients to Distributed Data Caches

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT