`
mouer
  • 浏览: 98045 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GAE啊GAE

    博客分类:
  • J2EE
阅读更多

GAE沙盒的官方说明如下:

http://code.google.com/intl/zh-CN/appengine/docs/java/runtime.html#The_Sandbox 。 

 

 

   用过GAE中JAVA版本的都知道,GAE是使用JETTY 作为WEB容器的,并且采用了沙箱安全模型隔离各个应用。现在要探讨的问题就是,这个具体是如何实现的? 
经过鄙人粗略的研究,沙盒不仅仅使用了JAVA内含的基于安全管理器 的沙箱,而且似乎还新建了特别的类加载器(使某些类不能使用),还有其它一些措施(比如无法新增新线程,无法使用JNI等,这个方面目前还在研究中),大概可能还是用自定义的ClassLoader来实现对类的选择过滤,即建立了一个所谓JRE白名单 (http://code.google.com/intl/zh-CN/appengine/docs/java/jrewhitelist.html )


   联想到TOMCAT的自定义ClassLoader模型,我觉得其实GAE所谓的“沙盒”无非其原理也就是类似于TOMCAT这样一个应用服务器中间件, 在继承自通用的JDK特性前提下,进行了更多的功能屏蔽,同时提供了JAVA级别的API来访问其开放的服务功能,比如通过JDO和JPA 两种方式来实现和其“数据存储区” 交互 并借助于其GFS分布式部署的特性以达到巨大的可伸缩性。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics