Java开辟2.0 - 通过CouchDB和Groovy的RESTClient实现REST[Java编程]
本文“Java开辟2.0 - 通过CouchDB和Groovy的RESTClient实现REST[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
目前为止,本专栏 系列 已经根究了 Google 和 Amazon 平台中的云计算. 固然它们在实现和构造上存在差别,但两种平台都支持快速和可扩大的布置方法 .它们可以快速经济地组装、测试、运行和保护 Java 利用程序,这无疑是前所 未有的.但是,云并非影响目前 Java 开辟速度的唯一因素.开源办理筹划还 可以帮忙您疾速组装软件利用程序,因为您不再需求编写大量代码.手动编写对 象关系映射(ORM)、日记或测试框架的时代已经一去不复返.这些问题已经随 时间渐渐得到了办理,然后又再次呈目前了开源范畴中 — 再次面对这些问题 — 但这些办理筹划几近始终要比您自己的好.
关于本系列
从 Java 技术初次亮相以来,Java 开辟的格局已经发生了宏大的改变.得益 于成熟的开源框架和坚固的租用式布置底子设备,目前已经可以疾速经济地装配 、测试、运行和保护 Java 利用程序了.在本系列中,Andrew Glover 将摸索使 这种全新开辟典范成为大概的各种技术和工具.
在 Java 开辟的整个历程中,开源创新简化了利用程序的装配历程.全新的 开源数据库 Apache CouchDB(终止撰写本文时的发行版为 0.10.0) 也不例外 .搭建好 CouchDB 环境之后可以轻松地利用它.您只需求操作它的 HTTP 衔接 便可;既不需求 JDBC 驱动程序,也不需求第三方掌握管理平台.在本文中,我 将向您介绍 CouchDB 并展示若何利用它晋升开辟速度.考虑到安装的简便性, 您将利用 Amazon 的 EC2 平台.并且,您将通过一个便利易用的 Groovy 模块 来与它通信.
面对文档的数据库
关系数据库基本上主导了数据库市场.但其他近似的数据库 — 包含 面向对 象 和 面向文档 数据库,二者在面向关系的世界中极其差别 — 也不时施展着 举足轻重的作用.CouchDB 是一种面向文档的数据库.它是无情势的,并且答应 您以 JavaScript Object Notation (JSON) 字符串的情势来存储文档.
JSON
JSON 是一种轻量级的数据交换格局,同时也是 Web 利用程序的替换格局. 它近似于 XML,但远没有它那么具体.得益于其轻量级特点,它正成为 Web 的 通用语.
试想一个违规停车罚单.该罚单将涵盖以下项目:
违规的日期
时间
位置
车辆的描写
牌照信息
违规情形
罚单上汇集的格局和数据因管辖权而异.即便关于单一管辖权限内的尺度停 车罚单来说,它们的内容也很有大概存在差别.举例来说,警官在开罚单时可以 不填写时间,大概可以省略车型,而只填写牌照的具体信息.地址可以是两条街 道的组合(比方 Fourth 和 Lexington 的交汇处),大概是某个固定地址(比 如说 19993 Main Street).但所采集信息的语义大概类似.
罚单的数据点可以在关系数据库中建模,但具体信息却有点麻烦.举例来说 ,若何有效在关系数据库中捕捉某个交汇点呢?并且在没有街道交汇的情形下, 数据库能否会利用空字段来表示第二个地址呢(假定建模方法为在各列中捕捉不 同的街道名)?
在这些情形下,关系数据库的抽象化程度大概 会稍高一些.所需的信息已经 采取了文档(罚单)的情势.为什么不将数据建模为文档呢?这样可以不用死守 严峻的关系情势,而只需求大致遵守高级情势的语义.这恰是 CouchDB 的用武 之地.它答应您以机动的方法来对这些域范例举行建模 — 成果是一个完备的文 档,它没有情势,而是利用与其他文档大致类似的蓝图.
MapReduce
Google 创始的 MapReduce 是一个用于处理海量数据集的概念框架.它是一 种高度优化的利用大量计算机的分布式问题办理机制.MapReduce 包含两个函数 :map 和 reduce.map 函数用于承受大量输入,并将它们分割为较小的部份( 同时将这些数据传送给其他进程).reduce 函数的作用是将来自 map 的全部单 独输出整合为一个终究的输出.
借助 CouchDB,您可以搜索文档、文档属性乃至在关系世界中关联文档.您 的实现方法是利用视图,而不是 SQL.从本质上说,视图是您采取 MapReduce 款式(在 JavaScript 中)编写的函数;也就是说,您终究只需求编写一个 map 函数和一个 reduce 函数.这些函数将共同过滤或提取文档数据,大概有效操纵 它们之间的关系.事实上,CouchDB 具有充足的机动性,只要底层文档没有发生 发化,它就只需求运行这些函数一次,从而加快视图处理历程.
CouchDB 最有意思的地方是它的计划方法.CouchDB 表现了 Web 本身的基本 (也是极其成功的)概念.它公开了一组全面的 REST 式 API,答应成立、查询 、更新和删除文档、视图和数据库.这使得 CouchDB 的利用变得非常简单.您 不需求借助其他驱动程序或平台来开始开辟:一个浏览器便能完成全部工作.也 就是说,丰富的库使 CouchDB 的利用变得非常简单 — 但从内部来看,它们仅 仅是通过 HTTP 来操纵 REST 式概念.
与 Web 的本质特点相近似,CouchDB 在计划时融入了大量可扩大因素.它是 利用并发编程语言 Erlang 编写的,它支持绑定分布式、容错、不中止利用程序 .该语言(现已开源可用)是由 Ericsson 开辟的,并在电信环境中得到了遍及 利用.
以上是“Java开辟2.0 - 通过CouchDB和Groovy的RESTClient实现REST[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |