banq
2009-12-21 17:40
如何在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());

<p>

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/

atester
2009-12-22 14:55
顶,这是一个值得关注的话题。

所有计算放入云端,这是美国的战略计划

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

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

tonysong029
2010-12-13 10:48
支持学习中

猜你喜欢
2Go 上一页 1 2