Java 自出世以来一直受到开发人员、业界、商业公司以及组织的高度关注。同时随着各方面的努力和建设,Java 世界形成了一个丰富的生态系统,涉及开发人员、以及(最为重要的)应用程序等各种角色,其中大部分内容在过去十年里已经发展成熟。全球 Java 社区在 Java 平台上投入了巨大的金钱、时间和脑力劳动,这些贡献造就了一个包含成功的开源商业工具、框架以及解决方案的巨大宝库。
在 Java 平台方面的各种投入使 Java 开发的方式产生了微妙的变化。两个重要的趋势正在快速改变 Java 开发的特征:利用开源框架和技术以及租用各种应用程序基础平台设施来管理生命周期,如云计算。针对这种改变,本系列的作者 Andrew Glover 向您集中地介绍和讲解了现在主流且十分成熟的框架、技术以及云计算基础设施,例如 Amazon EC2、Google App Engine、CouchDB、MongoDB、Hibernate 等。
本系列文章的主旨在于让您了解整个 Java 社区都在向哪些方面发展,新兴了那些技术、概念、趋势,同时会涉及一些比较细节的架构、设计和开发的内容。让您既可以十分全面地了解这些新技术和新概念的特性,同时又能以开发人员的角度更细节地了解到编码级别的实现过程。
系列文章
-
现实世界中的 Redis
Redis 是一个具有高速缓存功能的 NoSQL 数据库。作为高速缓存,它比 memcached 拥有更加丰富的功能;作为 NoSQL 数据库,它又拥有强大的分布式架构。本文将会利用 Redis 的 Java 变体-Jedis 为系列前几部分文章中创建的应用添加缓存功能,同时利用 Node.js 提供的 ORM 功能实现更加高效的数据存储。 -
通过 Heroku 的 PaaS 用 Git 提交 Java 应用程序
本文首先介绍了 Heroku,将它与 Amazon Beanstalk 和 Google App Engine 进行了比较。随后讲解了如何构建一个 Java 应用,并使用 Git 将其部署到 Heroku 的云计算环境中。 -
使用 Gretty 的超轻量级 Java web 服务
Gretty 是构建 web 服务的超轻量级框架。本文介绍如何使用 Gretty 来构建和部署 Java web 服务应用程序,其中包括 Gretty 的使用方法以及如何与 Grape 进行集成等内容。 -
Play 框架在 Amazon RDS 中的应用
Amazon Relational Database Service(RDS)是 Amazon Web Services PaaS 家族的成员,通过它您只需几步简单的操作就可以获得易于访问且具有高可靠性的关系数据库实例。本文将向您介绍 Amazon RDS 的基本使用方法,并使用 Play 框架创建一个使用 RDS 为后台数据库的应用。 -
面向 Java 开发人员的 JavaScript
本文首先解释了为何 JavaScript 是现今重要的开发语言,并与 Java 和其他一些动态语言进行比较。然后介绍了一些非常有用的 JavaScript 的基本语法,包括变量、类型、函数和类。 -
使用 Amazon SQS 进行基于云计算的消息传送
Amazon Simple Queue Service(SQS)可以让使用者无需另行购买、部署和维护消息中间件系统,而实现了灵活且经济的按需付费的使用方式。本文将向您介绍如何使用 Amazon SQS 实现消息队列系统的功能,同时演示如何使用它在由不同语言开发的系统之间进行消息的传递。 -
攀登 Elastic Beanstalk
Amazon Beanstalk 是 Google App Engine 的一个很不错的替代品,它能提供更多的功能和控制权。本文将向您介绍 Beanstalk 的主要功能,并演示将一个本地开发的 Java 应用迁移到 Beanstalk 环境上。 -
用 Hadoop MapReduce 进行大数据分析
Google 提出的 MapReduce 十分适合解决大数据挖掘的问题,这已经被像 Google、Yahoo 这样的企业中的实际应用证实了。Apache Hadoop 就是一个优秀的 MapReduce Java 实现,它可以让开发人员通过简单的 API 就可以实现对大数据的分布式处理。本文就将向您相信介绍 Hadoop 这个框架,以及如何编码实现数据的处理。 -
使用 Objectify-Appengine 进行 Twitter 挖掘,第 1 部分
Objectify-Appengine 通过在应用程序与 GAE 数据存储之间提供一个 Hibernate 式的映射层来实现 NoSQL 的数据访问方式。本文将介绍如何使用 Objectify 提供的便捷、JPA 友好的 API,其中会涉及如何将 Twitter retweets 映射到 Bigtable 等内容。 -
使用 Objectify-Appengine 进行 Twitter 挖掘,第 2 部分
本文继续向您介绍如何通过 Objectify-Appengine 构建 Twitter 挖掘应用,其中涉及了 Google App Engine 的索引和缓存的使用和设置、Twitter OAuth API 的使用以及 Google I/O 性能的问题,最后向您讲解了如何使用 jQuery 实现的 Ajax 功能将应用的各个组件连接起来。 -
MongoDB:拥有 RDBMS 特性的 NoSQL 数据存储
MongoDB 作为一种 NoSQL 数据库,不仅支持非模式的架构等特性,同时可以为熟悉 RDBMS 的开发人员提供类似 SQL 的访问接口。本文将向您介绍有关 MongoDB 的自定义 API、交互式 shell、RDBMS 类型动态查询的支持,以及快速容易的 MapReduce 实现等内容。 -
使用 Hibernate Shards 进行切分
切分并不是万能的,但是它是关系型数据库满足大型数据要求的一种方法。对于一些大数据量应用来说,切分意味着可以保持一个受信任的 RDBMS,同时不牺牲数据可伸缩性和系统性能。在本文中,您将了解到切分何时起作用,以及何时不起作用,然后开始着手对一个可以处理数 TB 数据的简单应用程序进行切分。 -
使用 Amazon SimpleDB 实现云存储,第 1 部分
通过本文,您将了解如何使用 Amazon SimpleDB 存储和查询数据。SimpleDB 是一个基于云的键/值数据存储服务,集合了 Amazon 的大量 Web Services 基础设施。 -
使用 Amazon SimpleDB 实现云存储,第 2 部分
本文中,作者向您介绍了如何使用 SimpleJPA,而非 Amazon SDK,以在 SimpleDB 的云存储中实现对象持久化。您将了解到 SimpleJPA 除了使您能够使用简单 Java 对象进行域建模(通过 JPA)之外,还能够自动地将基本数据类型转换成兼容 Amazon 的字符串。 -
NoSQL
在 Web 2.0 时代,NoSQL 数据存储(比如 Bigtable 和 CouchDB)从边缘进入主流,因为它们能够解决大规模数据的伸缩性问题。在本文中,作者将向您介绍无架构数据建模,帮助习惯了关系数据库思维方式的开发人员更加容易地转向使用 NoSQL 数据存储技术。 -
Kilim 简介
并发编程是 Java 开发 2.0 的核心概念,但这可能并不是基于线程的并发性。本文中,作者解释了为什么在多核系统中进行并发编程时,角色要优于线程。然后,他介绍了 Kilim —— 一种基于角色的消息传递框架。 -
针对 Google App Engine 的 Gaelyk
在 Google App Engine 推出后,各类加速该引擎上应用程序开发的框架随之涌现。使用 Groovy 编写的 Gaelyk 框架就属于其中之一,它的作用是简化利用 Google App Engine 数据存储的轻量级应用程序的开发。本文将介绍此框架。 -
通过 CouchDB 和 Groovy 的 RESTClient 实现 REST
开源的 Apache CouchDB 被认为是非常有潜力的 Web 2.0 数据库。本文将介绍 Apache CouchDB,并向您展示如何使用 Groovy 的 RESTClient 来访问该数据库。 -
使用方便的 EC2
Amazon 的 Elastic Compute Cloud (EC2) 是用于托管虚拟机的通用基础设施服务,您可以在这些虚拟机上运行任何程序。本文中,我们将快速构建一个利用 Groovy、Spring 和 Hibernate(通过 Grails 框架)的 Web 应用程序并将其部署到一个 EC2 实例(您创建或借用的一个虚拟机)中。您将看到借用 EC2 实例来托管 Java Web 应用程序非常简单。 -
您也可以租用 EC2
在本文中,作者介绍了如何针对 Amazon Elastic Compute Cloud (EC2) 进行开发和部署。您将了解 EC2 与 Google App Engine 的差异,以及如何使用 Eclipse 插件和简洁的 Groovy 语言在 EC2 上快速地建立和运行简单的 Web 应用程序。 -
使用 Google App Engine
开源和云计算改变了 Java 开发,使您能够以更低的成本、更快的速度交付更好的软件。在本系列文章中,作者将这种强大的力量概括为术语“Java 开发 2.0”,并主要介绍有关 Java 开发 2.0 的工具和技术。在第一期文章中,他宣布了 Java 开发 2.0 的到来,并解释了如何使用 Google 的 App Engine for Java 迅速实现这些概念。