1 / 17

Gaes 项目展示

Gaes 项目展示. Jerrymouse Studio. 一个网站的发展之路. 单服务器(包含所有的内容). 服务器群. 云计算服务器群. 大规模服务器群. 访问量 / 网站规模 / 服务器支持. 前台. Web 后台的 横向比较 在企业不断发展的过程中,每一个阶段都需要大量的重构,而横向比较,功能并没有发生太多的变化, 重构只是为了适应负载的增加 ,可以说,如此多的重构造成了巨大的资源浪费。. 后台. 我们的目标.

ruby
Télécharger la présentation

Gaes 项目展示

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gaes项目展示 Jerrymouse Studio

  2. 一个网站的发展之路 单服务器(包含所有的内容) 服务器群 云计算服务器群 大规模服务器群 访问量/网站规模/服务器支持

  3. 前台 Web后台的 横向比较 在企业不断发展的过程中,每一个阶段都需要大量的重构,而横向比较,功能并没有发生太多的变化,重构只是为了适应负载的增加,可以说,如此多的重构造成了巨大的资源浪费。 后台

  4. 我们的目标 用Gaes实现,用开发普通j2ee程序的方法开发具有复杂后台数据逻辑的程序实现,从简单后台到复杂后台的迁移,为您的软件提供最大限度的可伸缩性。

  5. 我们面临的问题 • 我们的目标就是把不同的java web 应用的后台之间的gap磨平(带斟酌),从而实现迁移 • 普通servelet容器 • Gae& Hadoop& Amazon 图tomcat

  6. Gae & Hadoop介绍(待编辑) GAE(Google App Engine) Google App Engine是一个开发、托管网络应用程序的平台。 Hadoop   一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。 Hadoop有三个核心组件 1、GFS(Google File System)。一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口。。 2、MapReduce。大多数分布式运算可以抽象为MapReduce操 作。Map是把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。这两个函数由程序员提供给 系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。 3、BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格,用来存储结构化的数据。

  7. 他们之间的结构是不同的 分布式结构 Single app结构 图二 图一

  8. 七个子项目,实现解决方案 gaes-framework 为开发Gae程序提供一个便捷的框架。这个框架为程序提供一个统一的接口,为各个运行环境提供不同的实现,(待编辑) gaes-framework-database gaes-framework-database 为程序提供一个统一的数据访问接口,并有各种实现,有jdo和jpa的三种实现单机,分布式,和gae实现。

  9. 实例接口 根据restful思想,提供存取删改四个操作,便于进行restful的设计。package org.jerrymouse.database;import java.util.List;public interface DaoSupport {    // 取一个对象Object get(Object key, Class type);    // 存一个对象void put(Object object);    // 改一个对象void post(Object object);    // 删一个对象void delete(Object object);    List getList(Class type);    List getList(Class type, List keys);}

  10. maven-gaes-plugin 以Maven为构建工具,开发一个Maven插件,为Gae程序提供,Gae安装、测试、部署、eclipse集成,等一系列开发工具支持。 gaes-archetypes 负责从各种模版生成原型,结合Maven可以让用户快速构建项目。

  11. maven-gaes-plugin实现介绍 以往开发Gae程序,用户必须使用Ant来测试,部署。有时用lvy来处理依赖。但对于Maven还没有一个比较好的解决方案。有一个名为maven-gae-plugin的项目,基本实现了要求。但是它在处理gae运行的时候,采用直接调用的方式,产生了一些Bug。更新不勤,没能看到我们提交的能解决这个Bug的补丁。而且功能不全面,没有提供eclipse集成之类的服务,也没提供模板支持。所以我们决定复用一部分maven-gae-plugin代码,使用反射和Ant task为核心,建立一个maven-gaes-plugin的项目。

  12. gaes-patch 针对Gae的服务器沙箱,大量类库无法直接使用,必须加以修改。这个项目主要是为各种插件提供补丁。 Google本身提供的兼容性列表 http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine以上这个链接是google提供的一份关于兼容性说明,有三中标示,兼容,不兼容,部分兼容,下表使我们对他的增量型补充。

  13. 以下为我们自身提供的补丁 Gaevfs提供对Google虚拟文件系统的支持 Structs-gae-patch 修改Structs的安全配置,使之适应Gae Structs2-rome-plugin 提供对rome文件格式的支持,处理一些问题,并协助打包 Structs2-convention-plugin-gae 修改Structs-plugin的安全配置,使之适应Gae

  14. gaes-framework-test 设计 如图,test类继承了个baseTest,一个dataStoretest,而environment可以导入多种环境,对javeeeunit进行结合 gaes-framework-test 因为分布式测试和正常测试不同,而且较为复杂,有的时候本地测试正确,但是在远程测试时错误的,而且gae的测试需要一些预处理的动作,所以测试支持是必要的 解决方法, 利用Catcus中junitee runner接在web容器之中的能力,并在浏览器中观察实现。

  15. 其他 sandbox 该项目为GaeS的其他项目,提供一个实验室,来测试新技术,保证项目稳定。 gaes-templates 提供各种模板,作为实例,也可以作用项目起点 gaes-site 为其他项目提供发布和文档站点。 http://gaes.appspot.com/

  16. 实时展示 用Gae开发类twitter应用

  17. 谢谢

More Related