网络技术

探索Google App Engine背后的奥秘(3)- Google App Engine的简介

按:此为客座博文系列。投稿人吴朱华曾在IBM中国研究院从事与云计算相关的研究,现在则致力于云计算技术。 通过前面两篇介绍,大家应该对Google强大的基础设施有一定的了解。本篇开始介绍构筑在这强大基础设施之上的Google App Engine。 Google App Engine的介绍 由于发布S3和EC2这两个优秀的云服务,使得Amazon已经率先在云计算市场站稳了脚跟,而身为云计算这个浪潮的发起者之一的Google肯定不甘示弱,并在2008年四月份推出了Google App Engine这项PaaS服务,虽然现在无法称其为一个革命性的产品,但肯定是现在市面上最成熟,并且功能最全面的PaaS平台。 Google App Engine 提供一整套开发组件来让用户轻松地在本地构建和调试网络应用,之后能让用户在Google强大的基础设施上部署和运行网络应用程序,并自动根据应用所承受的负载来对应用进行扩展,并免去用户对应用和服务器等的维护工作。同时提供大量的免费额度和灵活的资费标准。在开发语言方面,现支持Java和Python这两种语言,并为这两种语言提供基本相同的功能和API。 功能 在功能上,主要有六个方面: 动态网络服务,并提供对常用网络技术的支持,比如SSL等 。 持久存储空间,并支持简单的查询和本地事务。 能对应用进行自动扩展和负载平衡。 一套功能完整的本地开发环境,可以让用户在本机上对App Engine进行开发和调试。 支持包括Email和用户认证等多种服务。 提供能在指定时间和定期触发事件的计划任务和能实现后台处理的任务队列。 使用流程 整个使用流程主要包括五个步骤: 下载SDK和IDE,并在本地搭建开发环境。 在本地对应用进行开发和调试。 使用GAE自带上传工具来将应用部署到平台上。 在管理界面中启动这个应用。 利用管理界面来监控整个应用的运行状态和资费。 由于本系列是专注于GAE的实现和设计两方面,所以不会对GAE的使用有非常深入地介绍,如果希望大家对GAE的使用方面有更深的理解,具体可以参看一下GAE的官方文档。 Google App Engine的主要组成部分 主要可分为五部分: 应用服务器:主要是用于接收来自于外部的Web请求。 Datastore:主要用于对信息进行持久化,并基于Google著名的BigTable技术。 服务:除了必备的应用服务器和Datastore之外,GAE还自带很多服务来帮助开发者,比如:Memcache,邮件,网页抓取,任务队列,XMPP等。 管理界面:主要用于管理应用并监控应用的运行状态,比如,消耗了多少资源,发送了多少邮件和应用运行的日志等。 本地开发环境:主要是帮助用户在本地开发和调试基于GAE的应用,包括用于安全调试的沙盒,SDK和IDE插件等工具。 应用服务器 应用服务器依据其支持语言的不同而有不同的实现。 Python的实现 Python版应用服务器的基础就是普通的Python 2.5.2版的Runtime,并考虑在在未来版本中添加对Python 3的支持,但是因为Python 3对Python而言,就好比Java2之于Java1,跨度非常大,所以引入Python3的难度很大。在Web技术方面,支持诸如Django,CherryPy,Pylons和Web2py等Python Web框架,并自带名为”WSGI”的CGI框架。虽然Python版应用服务器是基于标准的Python Runtime,但是为了安全并更好地适应App Engine的整体架构,对运行在应用服务器内的代码设置了很多方面的限制,比如不能加载用C编写Python模块和无法创建Socket等。 Java的实现 在实现方面,Java版应用服务器和Python版基本一致,也是基于标准的Java Web容器,而且选用了轻量级的Jetty技术,并跑在Java 6上。通过这个Web容器不仅能运行常见的Java Web 技术,包括Servlet,JSP,JSTL和GWT等,而且还能跑大多数常用的Java API(App Engine有一个The JRE Class White List来定义那些Java API能在App Engine的环境中被使用)和一些基于JVM的脚本语言,例如JavaScript,Ruby或Scala等,但同样无法创建Socket和Thread,或者对文件进行读写,也不支持一些比较高阶的API和框架,包括JDBC,JSF,Struts 2,RMI,JAX-RPC和Hibernate等。 Datastore Datastore提供了一整套强大的分布式数据存储和查询服务,并能通过水平扩展来支撑海量的数据。但Datastore并不是传统的关系型数据库,它主要以”Entity”的形式存储数据,一个Entity包括一个Kind(在概念上和数据库的Table比较类似)和一系列属性。 Datastore提供强一致性和乐观(optimistic)同步控制,而在事务方面,则支持本地事务,也就是在只能同一个Entity Group内执行事务。 在接口方面,Python版提供了非常丰富的接口,而且还包括名为GQL的查询语言,而Java版则提供了标准的JDO和JPA这两套API。 而且Google已经在今年的Google I/O大会上宣布将在未来的App Engine for Business套件中包含标准的SQL数据库服务,但现在还不确定这个SQL数据库的实现方式,是基于开源的MySQL技术,还是基于其私有的实现,这是一个问题。 服务 Memcache Memcache是大中型网站所备的服务,主要用来在内存中存储常用的数据,而App Engine也包含了这个服务。有趣的是App …

阅读更多

月光博客:回忆今非昔比的十年互联网站长之路

站长之路掐指一算已走过十年,回忆那个年代的互联网,那个年代的计算机,那个年代的软件,不仅感慨万千。   1、modem拨号上网。当年大多数计算机的上网方式都是拨号上网,连最初成立的几家网吧都是。想上网了,先把电话线拔下来,插在机箱后的modem接口上,然后打开IE,输入网址。由于拨号上网价格不菲,甚至在准备拨号之前都已经准备好了需要浏览的内容。然后就听见吱吱嘎嘎的拨号声,大概持续半分钟,通讯完毕,可以上网了。速度当然是满如蜗牛,所以那时候的计算机杂志上才会有铺天盖地的“教程”教你如何提高网速,比如修改注册表、加大缓存等等;   2、那时候建立一个网站几乎是没有备案一说的,只要不是BBS,找个可靠一点的IDC,就可以上传网站了。那时候没有那么多的CMS系统,大多数网站都是一群狂热的技术爱好分子手动写的HTML.那时候还是1.0时代,网站的互动几乎没有,想添加一个页面还得重新写页面代码,然后逐个加入链接;建立好了网站,即便是一个人访问,也会让你心头兴奋不已。那时候没有SEO之说,疯狂的寻找认识的人,然后告诉他自己的“烘焙机”(homepage),然后放上一个链接。纯粹的友情链接,多么纯粹;   3、还记得那时候,通过telnet上浙大的BBS,每一次交流都得通过命令来完成,首先输入username,然后password登录。估计现在还发生这场景,别人一定认为你是黑客;   4、那时候是html与asp的天下,漫天遍野的网站都是“真静态”的html,或者高级一点的用asp.现在想想那个ASP漏洞满天飞的互联网现状,不仅胆战心惊;   5、疯狂的研究“Netants”(网络蚂蚁)与网际快车。在那样一个纯技术的年代,每个上网的人都异常关注网速。于是乎这样的加速下载软件也非常常见;还记得那年颇有争议的“多线程下载”技术,让中国的互联网界展开了一次宏伟的大辩论。   6、那时候是没有流氓软件之说的,有的只是《超级解霸》、《Norton》、《KV3000》……关注网络安全的你一定还对手动输入病毒定义的窗口印象颇深。   7、QBASIC,最初的编程工具。虽然功能简单,但作用强大;在那个年代,我们学校就有老师用其来统计学生成绩了,引得其他老师一整仰慕;WPS,那时候是国产软件的骄傲,能让万恶的DOS下面出现我们伟大的汉语了……   8、随时出现的无法预测的蓝屏永远是心中的一片阴影。尤其在windows98下,Microsoft更是将蓝屏的伟大作用发挥到了极致:在编写WPS文档的时候,冷不防蓝屏了,但好在WPS也是有自动存盘功能的;在下载文件的时候,冷不防蓝屏了,心理暗骂机器怎么这么不争气……   9、软盘永远是万恶的病毒之源。老师会一遍一遍教我们,千万不能使用不明来路的软盘,否则机器就会中病毒!可是现在,想找一张软盘还得跑遍整个电脑城,也许更多的人只知道软盘就是一个方形块。大家也一定有为了拷贝游戏,把桌面上的快捷方式拖进软盘的经历,等到兴冲冲跑回自己的电脑,却发现游戏都不能用了。   10、五笔指法练习,大多数那时候接触电脑的人现在都能流畅的使用五笔输入法打字,而现在的90后,基本上不用指望了。但实际情况已经证明,在人工智能如此发达的今天,拼音输入法一点也不会比五笔输入法慢。   弹指一挥间,十五年过去了,互联网已翻天覆地。   来源:网趣在线投稿, 来源网址 ,转载保留链接。   附录: 用户眼中已经消亡的十大IT技术 (来源CNBETA)   过去十年,科学和技术,尤其是计算机技术和远程通讯技术都获得了史无前例的巨大发展。网络,用它每天24小时、每周7天不间断沟通的魔力将世界变成了 一个统一的平台。可以说,网络的普及引发了深刻的社会变革。   然而,正如罗马不是一天建成的,如今的网络,也并非一蹴而就。几十年的风风雨雨,将当年那只能各自为政的计算机们变成了一个个互联互通的终端。这其中,从 2000年到2009年的十年光阴里,无数的技术如雨后春笋般层出不穷,也有为数不少的技术如昙花一现,绽放过后即被打入冷宫。   不过,不论是顽强活下来的,还是日渐式微甚至已经消失的,每一种技术都为我们的网络技术发展贡献出了自己的全部力量。从这个角度来说,它们,都是这个大网络时代的英雄。   为了纪念那些在21世纪第一个十年中已经消失或者即将消失的“英雄”,我们列举了13个已经消失或者淡出人们视线的技术,经过网友朋友们历时3周的票选,至发稿时为止共获得9282张选票,得票数前十名的技术即为我们本次评选出来的网友公认的“十大消失技术”。   第一名modem拨号上网1353票   modem拨号上网的历史意义毋庸置疑,在那个互联网尚为新生事物的时代,一个小小的modem承载了多少人的梦想和事业。然而,随着网络技术应用的快速发展,54K的传输速度迅速磨去了人们的耐心,愈发复杂的需求导致了宽带时代的全面到来,自此,modem拨号上网逐渐淡出了历史舞台。   第二名集线器/Hub 1241票   尽管集线器技术也在不断改进,但实质上就是加入了一些交换机(SWITCH)技术,发展到了今天的具有堆叠技术的堆叠式集线器,有的集线器还具有智能交换机功能。可以说集线器产品已在技术上向交换机技术进行了过渡,具备了一定的智能性和数据交换能力。但随着交换机价格的不断下降,仅有的价格优势已不再明显,集线器的市场越来越小,处于淘汰的边缘。   第三名Novell netware 1079票   在Windows系统盛行之前,个人电脑是运作在Command Line的环境,此时的网络架构,都是以Novell Netware来建构而成。现如今,它的辉煌已不再,Windows操作系统的成功不仅将Netware市场蚕食殆尽,基于Windows平台的应用也越来越多。好不夸张的说,Netware在过去十年中,已经逐渐淡出了人们的视线。   第四名同轴电缆989票   同轴电缆的优势非常明显,优秀的屏蔽性能、传输速度和传输距离曾让同轴电缆风光一时。但随着RJ45双绞线技术的发展,同轴电缆除屏蔽性以外的各项优势逐渐不再明显,而其复杂的架设和较高的成本更是让人们对其的热情大打折扣。如今,除有线电视等领域以外,同轴电缆的身影已经越来越难以看到。   第五名IPX协议831票   随着互联网的革命性发展以及网络游戏的出现,IPX协议已渐渐得被淘汰。很多操作系统已经默认不再支持IPX.   第六名电力线上网825票   曾经的电力线上网技术,风头一时无两。试想一下,无需任何多余线路铺设,只需要通过家里的电源插座就可以连入互联网,这是多么令人高兴的一件事?可惜,电力线的先天“残疾”让电力线上网最终变成了镜花水月——数据通信稳定性难以保证、用电负荷不断变化导致的干扰、影响短波通讯、家电的电磁波影响信号传输等等一些列的问题让电力线上网所有的优势都变成了实验室里的笼中鸟,在商用了很短的时间之后,便默默地退出了市场。   第七名telnet 578票   随着安全问题的日益严峻,不带加密功能的Telnet渐渐远离了大家的视线,转而采用了更安全的SSH等远程访问工具。   第八名2G网络566票   NTT DoCoMo计划于2011年3月停止2G移动网络服务,因为届时大多数用户都已使用3G网络。此前,NTT DoCoMo曾表示停止2G网络服务的时间是2012年12月。Ryuji Yamada在2009年亚洲移动通信大会上表示,NTT DoCoMo停止2G网络服务的部分原因是要停止一种过时的网络,另外也是为了向用户提供下一代无线宽带LTE服务。他说:“大多数NTT DoCoMo用户已经开始使用3G网络。”而芬兰则准备在2010年之后就关闭2G网络。   第九名包过滤防火墙433票   一些包过滤网关不支持有效的用户认证。规则表很快会变得很大而且复杂,规则很难测试。随着表的增大和复杂性的增加,规则结构出现漏洞的可能 性也会增加。这种防火墙最大的缺陷是它依赖一个单一的部件来保护系统。如果这个部件出现了问题,会使得网络大门敞开,而用户其至可能还不知道。在一般情况下,如果外部用户被允许访问内部主机,则它就可以访问内部网上的任何主机。包过滤防火墙只能阻止一种类型的IP欺骗,即外部主机伪装内部主机的IP,对于外部主机伪装外部主机的IP欺骗却不可能阻止,而且它不能防止DNS欺骗。   第十名UNIX 391票   1990年,Linus Torvalds决定编写一个自己的Minix内核,初名为Linus’ Minix,意为Linus的Minix内核,后来改名为Linux,此内核于1991年正式发布,并逐渐引起人们的注意。当GNU软件与Linux内核结合后,GNU软件构成了这个POSIX兼容操作系统GNU/Linux的基础。今天GNU/Linux已经成为发展最为活跃的自由/开放源码的类Unix操作系统。大量的Unix市场份额被Linux所侵蚀。2009年,红帽有高管发表言论称以后世界上只会有两种操作系统,一是windows,二是linux.   总结:   从最终的结果我们可以看到,802.11a/b/g,VoIP,百兆以太网三项技术最终落选榜单,而modem拨号上网,集线器/Hub和Novell netware三项则位列三甲。   出现这样的结果并不非常出人意料,例如,自从以ADSL为代表的宽带技术开始普及之后,modem拨号上网(即最初的56K“窄带”)的应用便不断减少,以至于现在很多新IT人甚至都没听过那种modem拨号上网独有的拨号音,这样的“失宠”技术名列前茅实在是“实至名归”;而作为无线网络技术代表的802.11a/b/g,其继任者802.11n的普及时日尚短,802.11a/b/g尤其是802.11g设备仍然是当下企业内部无线网络设备的中坚力量,在09年虽然遭遇了一次巨大的市场挫折,但由于技术设备换代仍需不短的时间,所以人们也并不会认为在前面的10年中,802.11a/b/g真正的消失了。   十大消失技术评选已经暂告了一个段落,从这个评选中,我们可以看到一种近似于王朝更迭的残酷竞争,更可以看到网络技术迅速更新换代所带给我们的一个美好前景。让我们存有一种敬畏,对技术,更是对这些技术背后那几代技术人的心血。   最后,让我们向这些已经成为历时阶梯的技术致以崇高的敬意。 评论《回忆今非昔比的十年互联网站长之路》的内容..

阅读更多

CDT/CDS今日重点

三月之声(2024)

【网络民议】顶端新闻|反对调休的声音,不能装作听不到

更多文章总汇……

支持中国数字时代

蓝灯·无界浏览器计划

现在,你可以用一种新的方式对抗互联网审查:在浏览中国数字时代网站时,按下下面这个开关按钮,为全世界想要自由获取信息的人提供一个安全的“桥梁”。这个开源项目由蓝灯(lantern)提供,了解详情

CDT 新闻简报

读者投稿