Grid Ops Java-教程
Grid Ops for Java是用Java实现的开源分布式系统工具包。 Grid Ops的目的是使实现不同的分布式系统体系结构变得容易。这种灵活性使我们可以更轻松地尝试不同的体系结构,以便为系统找到合适的体系结构。
Grid Ops由Nanosai开发,后者是Jenkov Aps(此网站背后的公司)与Zaiku Group之间的合资企业。
为了实现我们所追求的灵活性,我们从头开始开发了Grid Ops,并尽可能减少了外部依赖关系(目前为0个依赖关系)。虽然使用外部工具包可能有助于我们更快地使用Grid Ops工具包,但外部工具包可以影响设计选项。工具箱和平台通常包含设计决策,有时这些设计决策可能与决策冲突。为了避免这种情况,我们决定自己开发所有东西。
因为我们自己实现所有事情,所以Grid Ops的发展要比将一组常见的开源工具捆绑在一起的其他框架要慢一些。但是,我们希望所获得的灵活性能够弥补开发时间的缩短。
此外,Grid Ops的不同部分以不同的速度稳定下来。有些零件已经相当稳定并经过了良好的测试,而另一些零件仍处于试验阶段,可能会被删除或者更换。文档(在这些教程中)将提到给定部件是稳定的还是实验的,因此请当心。
IAP
Grid Ops无法通过HTTP进行通信。相反,Grid Ops使用IAP(互联网应用协议),这是我们自己设计的网络协议。我们选择设计自己的网络协议,以避免受到现有协议的限制。
IAP是围绕可用于实现自定义协议的通用消息格式设计的,唯一的要求是这些协议将其通信分解为消息。这些定制协议称为"语义协议",因为正是这些协议定义了交换消息的语义。
我们将设计一组可以使用的标准语义协议。如果这些标准语义协议不符合需求,则可以实现自己的协议。
Grid Ops可以同时支持多种语义协议。传入消息告诉它们它们属于什么语义协议,以及它们代表该协议内的消息类型,并且可以相应地进行路由和处理。因此,我们可以使用Grid Ops实施多协议应用程序。这是设计使然,以增加Grid Ops的灵活性。
ION
IAP使用二进制数据格式对消息进行编码,这称为ION(IAP对象表示法)。 ION与JSON的二进制版本相似,但进行了一些改进,例如能够更优化地承载二进制数据,更紧凑地表示整数,数据,并支持对表格数据进行更优化的编码(例如CSV文件)。
ION也可以用作通用数据格式。我们可以将ION编码的数据存储到文件中,还可以在IAP消息中发送使用ION编码的数据结构。
Maven依赖
注意:目前,Maven依赖项不是最新的。我们希望将来能解决此问题。我们可以从Grid Ops GitHub存储库下载JAR文件,并将其放入本地Maven存储库。当我们再次使Maven部署更新时,它将如下所示:
<dependency> <groupId>com.nanosai</groupId> <artifactId>grid-ops</artifactId> <version>0.4.0</version> </dependency>
切记将版本号替换为我们打算使用的Grid Ops的版本。
GitHub储存库
可以在以下位置找到Grid Ops GitHub存储库:
https://github.com/nanosai/grid-ops-java