|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
今朝为止,本专栏系列已探求了Google和Amazon平台中的云盘算。固然它们在完成和布局上存在分歧,但两种平台都撑持疾速和可扩大的部署体例。它们能够疾速经济地组装、测试、运转和保护Java使用程序,这无疑是前所未有的。可是,云并非影响现在Java开辟速率的独一要素。开源办理计划还能够匡助您敏捷组装软件使用程序,由于您不再必要编写大批代码。手动编写对象干系映照(ORM)、日记或测试框架的时期已一往不复返。这些成绩已随工夫渐渐失掉懂得决,然后又再次呈现在了开源范畴中—再次面对这些成绩—但这些办理计划几近一直要比您本人的好。
关于本系列
从Java手艺初次表态以来,Java开辟的格式已产生了伟大的变更。得益于成熟的开源框架和牢靠的租用式部署基本举措措施,如今已能够敏捷经济地拆卸、测试、运转和保护Java使用程序了。在本系列中,AndrewGlover将探究使这类全新开辟典范成为大概的各类手艺和工具。
在Java开辟的全部过程当中,开源立异简化了使用程序的拆卸历程。全新的开源数据库ApacheCouchDB(停止撰写本文时的刊行版为0.10.0)也不破例。搭建好CouchDB情况以后能够轻松地利用它。您只必要操纵它的HTTP毗连便可;既不必要JDBC驱动程序,也不必要第三方把持办理平台。在本文中,我将向您先容CouchDB并展现怎样利用它提拔开辟速率。思索到安装的烦琐性,您将利用Amazon的EC2平台。而且,您将经由过程一个便利易用的Groovy模块来与它通讯。
面临文档的数据库
干系数据库基础上主导了数据库市场。但其他相似的数据库—包含面向对象和面向文档数据库,二者在面向干系的天下中极其分歧—也不时发扬着无足轻重的感化。CouchDB是一种面向文档的数据库。它是无形式的,而且同意您以JavaScriptObjectNotation(JSON)字符串的情势来存储文档。
JSON
JSON是一种轻量级的数据互换格局,同时也是Web使用程序的替换格局。它相似于XML,但远没有它那末具体。得益于其轻量级特征,它正成为Web的通用语。
试想一个背规泊车罚单。该罚单将涵盖以下项目:
背规的日期
工夫
地位
车辆的形貌
派司信息
背规情形
罚单上搜集的格局和数据因统领权而异。即便关于单一统领权限内的尺度停车罚单来讲,它们的内容也很有大概存在分歧。举例来讲,警官在开罚单时能够不填写工夫,大概能够省略车型,而只填写派司的具体信息。地址能够是两条街道的组合(好比Fourth和Lexington的交汇处),大概是某个流动地点(比如说19993MainStreet)。但所收罗信息的语义大略类似。
罚单的数据点能够在干系数据库中建模,但具体信息却有点贫苦。举例来讲,怎样无效在干系数据库中捕捉某个交汇点呢?而且在没有街道交汇的情形下,数据库是不是会利用空字段来暗示第二个地点呢(假定建模体例为在各列中捕捉不同的街道名)?
在这些情形下,干系数据库的笼统化水平大概会稍高一些。所需的信息已接纳了文档(罚单)的情势。为何不将数据建模为文档呢?如许能够不必逝世守严厉的干系形式,而只必要大抵遵守初级形式的语义。这恰是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开辟的,并在电信情况中失掉了普遍使用。
<p>
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。 |
|