开始之前
IBM NoSQL Wire Listener for DB2(以下简称为 “有线监听器”)提供了以下特性:
使开发人员能够将他们在使用 JSON 文档存储的过程中获得的技能用于 DB2 中。
同时支持使用 MongoDB 驱动程序编写的应用程序和使用 MongoDB Command shell 命令编写的应用程序。
利用 DB2 JSON API 提供的特性来处理 BSON 文档。
背景信息
现在 Web 用户界面开发的流行方法是 JavaScript for Web 2.0。JavaScript 是移动的、整洁的应用程序的关键,因此许多人将它的数据交换格式 JSON 视为 Web 的语言。JSON 格式的优势是,它实现了模式灵活性和开发,减少了模式设计开销。
在此上下文中,HTTP REST/JSON 通常用于与中间应用程序层进行通信。这已促进原生支持 JSON 的文档存储(比如 MongoFB)的发展,并被越来越多的人接受。MongoDB 等 NoSQL 存储非常适合服务器端 JavaScript(比如 NodeJS),因为二者都使用相同的语言,都理解 JSON 文档。这两种强大概念相结合,使得具有很高的吞吐量和并发性需求的实时应用程序的快速开发成为了可能。
MongoDB
MongoDB(来自 “巨大” 的含义)是一个可伸缩的、高性能的、开源的数据库。MongoDB 是一个文档存储;换言之,每个文档被编写为具有自己的独立结构的单元。MongoDB 的 API 是 JSON 对象和 JavaScript 函数的一种原生组合。开发人员通过一种访问数据存储实例的语言驱动程序(Java、C/C++、Ruby、NodeJS 等),或通过 shell 程序与 MongoDB 交互。这些应用程序通过 MongoDB 有线协议与数据库进行交互。MongoDB 有线协议是一个基于套接字、请求-响应风格的简单协议。客户端通过 TCP/IP 与数据库服务器进行通信。
BSON 格式
MongoDB 支持存储为 BSON 格式的无模式文档。BSON(二进制 JSON)是 JSON 文档的一种二进制编码的序列化形式,它包含的扩展支持 JSON 规范的数据类型表示形式。它包含对 JSON 结构的支持,比如数组和嵌套对象(一个文档包含在其他文档或数组中)。
MongoDB 中的 BSON 文档没有模式,这使得构建包含不同结构的文档的集合成为可能。文档结构的灵活性在一些领域很有用,比如在数据具有不同但类似的属性、稀疏的属性或快速演化的文档结构的领域中。一个经典的示例是,Web 应用程序中的一个图书集合。给定一些图书条目,您将看到它们表示不同的数据:一些条目包含作者和标题,其他条目包含用户的评论、摘要或关于出版公司的信息。数据各不相同,但模型或功能是相同的。
IBM NoSQL Wire Listener
本文将介绍有线监听器,它使 DB2 用户能够利用 MongoDB 社区驱动程序在 DB2 中原生地存储和查询 JSON 数据,进而将 DB2 用作 JSON 文档存储。
有线监听器是一个服务器应用程序,它接受和处理 MongoDB 有线协议。它利用一个 DB2 JSON API 来处理、存储并从 DB2 中检索 BSON 文档。下图显示了使用 MongoDB API 和 DB2 开发的应用程序之间的通信。