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