快速开发引擎中间件 Google App Engine

原文 http://www.jdon.com/jivejdon/thread/36373

 

Google App Engine目标是让每个人都成为程序应用开发者,就像每个人可以写博客一样,要象写博客那样方便发布他们的应用。

Google App Engine挑战传统LAMP架构(Linux, Apache, MySQL/PostgreSQL, Python/Perl/PHP/Ruby),
LAMP虽然开发快,但是维护管理难,Scalable伸缩性更是没有考虑,缺点表现为:
1. Configuration, tuning
2. Backup and recovery, disk space management
3. Hardware failures, system crashes
4. Software updates, security patches
5. Log rotation, cron jobs, and much more
6. Redesign needed once your database exceeds one box

GAP能够自动帮助你的应用扩展伸缩性 ,你不必为每个资源进行配置:
小的应用,每个主机分布多个应用。
大型应用:每个应用可以跨多个主机。
缓存机制是必须提供的。
细节方面:一个CPU能够处理每秒大量请求,应用能够真正的扩展到CPU,每个CPU一个进程处理一个或多个应用,如下:

Google App Engine对业务模型也有规定:每个实体有一个类型 一个主键和属性Entities have a Kind, a Key, and Properties(banq按:你可以在基于Jdon框架的JiveJdon 中找到)。

Google App Engin还提供下列功能:
Large file uploads and downloads大文件上传下载
Datastore import and export for large volumes
Pay-as-you-go billing (for resource usage over free quota)支付管理
More languages (no I’m not telling…) 更多语言
Uptime monitoring site 运行管理。

谷歌应用引擎Google App Engine还是一个功能强大的云计算 平台,旨在帮助开发人员更轻松地创建和管理可扩展的Web应用程序。随着最近增加的Java ™技术的支持,开发者现在可以部署基于标准的Java技术为基础的Web应用软件的谷歌的基础设施。刚刚开始的JavaOne大会有对其演讲介绍。

http://code.google.com/appengine/docs/whatisgoogleappengine.html

Google App Engin for java
http://code.google.com/appengine/docs/java/overview.html
[该贴被banq于2009-06-03 11:21修改过]
[该贴被admin于2009-06-03 11:26修改过]

 

GAE Java开发学习步骤
Google App Engine For Java - Microblogging Case Study

http://tomuse.com/google-app-engine-java-microblog-development-review/

 

如何在google App引擎创建一个Java应用并运行他们:how to create and deploy new Java project on GAE

作为一个云计算 平台,GAE提供了几个比较强的服务:
最明显的是非关系数据库,使用的是key-value存储:BIGTABLE,还提供了memcached缓存,使用以下代码就可以获得一个缓存

import
 static
 java.util.Collections.emptyMap;
import
 javax.cache.*;

CacheFactory cacheFactory = CacheManager.getInstance().getCacheFactory();

Cache cache = cacheFactory.createCache(emptyMap());



GAE还提供以下服务,注意这里服务不是Web服务那种业务服务,而是功能组件服务:
URLFetch – invoking external URLs
实际就是相当于使用httpClient,访问Http资源,http://code.google.com/appengine/docs/java/urlfetch/

Mail – sending mail from your application
http://code.google.com/appengine/docs/java/mail/

Task Queues – for invoking background processes
供后台发送,类似开启新线程,好处是可自动伸缩,扩展到其他机器执行。http://code.google.com/appengine/docs/java/config/queue.html

Images – for image manipulation
http://code.google.com/appengine/docs/java/images/

Cron Jobs – scheduled tasks on defined time
定时任务。http://code.google.com/appengine/docs/java/config/cron.html

User Accounts – using Google accounts for authentication
节省使用者自己开发用户权限系统,通过下列代码就能够获得登录用户的数据:
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
http://code.google.com/appengine/docs/java/users/

 

是一个技术发展趋势,上面GAE提供的服务功能,你可能会在Spring或JavaEE的API找到,GAE与JavaEE区别就是,节省你调试部署的麻烦了,也节省你考虑伸缩性 的 问题了;GAE和DSL之类Scala erlang之类区别是,GAE从功能组件粒度帮助你实现并行计算和并发策略,而你使用scala或erlang或Ruby,你至少需要两个技能:对这些 语言平台熟悉,然后熟悉业务,最重要的是需要知道如何使用语言的哪些特性解决业务的哪些特定问题。

比如某个业务计算很耗CPU,一开始你并不知道,所以,你可能没有用一些并发策略去处理它,结果它成了性能瓶颈,现在就看是函数式动态语言能自动解决这个问题,还是GAE之类云计算 平台,哈哈。拭目以待啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值