论道WP(三):应用程序栏
作者通过具体翔实的例子介绍了Winodws Phone 7中应用程序栏的使用方式。
该内容已经被标记书签!
标记书签错误,请重试!

作者 吴朱华 发布于 2010年6月18日
在写《剖析云计算》(编者注:InfoQ中文站近期会推出该书电子版)一书的时候,我发现虽然云计算本身有三层之分,也就是SaaS,PaaS和IaaS,但这种分层本身主要是从用户体验的角度来而言,比如,SaaS主要将应用作为服务提供给客户,IaaS是主要是将虚拟机等资源作为服务提供给用户。而本文将从技术角度来分析和总结云计算的架构。
基于对现有的一些云计算产品的分析和我个人的一些经验,总结出一套云计算的架构,具体请看下图:
图1: 云计算的架构
这套架构主要可分为四层,其中有三层是横向的,分别是显示层、中间件层和基础设施层,通过这三层技术能够提供非常丰富的云计算能力和友好的用户界面,还有一层是纵向的,称为管理层,是为了更好地管理和维护横向的三层而存在的。接下来将一个个地给大家介绍每个层次的作用和属于这个层次的主要技术。
这层主要是用于以友好的方式展现用户所需的内容,并会利用到下面中间件层提供的多种服务,主要有五种技术:
在显示层,大多数云计算产品都比较倾向HTML、JavaScript和CSS这对黄金组合,但是Flash和Silverlight等RIA技术也有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技术,而微软的云计算产品肯定会在今后使用到Silverlight。
这层是承上启下的,它在下面的基础设施层所提供资源的基础上提供了多种服务,比如缓存服务和REST服务等,而且这些服务即可用于支撑显示层,也可以直接让用户调用,并主要有五种技术:
对于很多PaaS平台,比如用于部署Ruby应用的Heroku云平台,应用服务器和分布式缓存都是必备的,同时REST技术也常用于对外的接口,多租户技术则主要用于SaaS应用的后台,比如用于支撑Salesforce的Sales Cloud等应用的Force.com多租户内核,而并行处理技术常被作为单独的服务推出,比如Amazon的Elastic MapReduce。
这层作用是为给上面的中间件层或者用户准备其所需的计算和存储等资源,主要有四种技术:
现在大多数的IaaS服务都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技术的vCloud,同时业界也有几个基于关系型数据库的云服务,比如Amazon的RDS(Relational Database Service)和Windows Azure SDS(SQL Data Services)等。关于分布式存储和NoSQL,它们已经被广泛用于云平台的后端,比如Google App Engine的Datastore就是基于BigTable和GFS这两个技术之上的,而Amazon则推出基于NoSQL技术的Simple DB。
这层是为横向的三层服务的,并给这三层提供多种管理和维护等方面的技术,主要有下面这六个方面:
现在的云计算产品在帐号管理,计费管理和负载均衡这三个方面大都表现地不错,在这方面最突出的例子就是Amazon 的EC2,但可惜的是,大多数产品在SLA监控,安全管理和运维管理等方面还有所欠缺。
接下来,将以Salesforce的Sales Cloud和Google的App Engine这两个著名的云计算产品为例,来帮助大家理解本文所提到的云计算架构:
也就是之前的Salesforce CRM(客户关系管理),属于云计算中的SaaS层,主要是通过在云中部署可定制化的CRM应用,来让企业用户在很低初始投入的情况下使用上CRM,并且可根据自身的流程来进行灵活地定制,而且只需接入网络就能使用。下图为其在技术层面上大致的架构:
图2:Salesforce Sales Cloud
采用的主要技术:
App Engine属于云计算中的PaaS层,其主要提供一个平台,来让用户在Google强大的基础设施上部署和运行应用程序,同时App Engine会根据应用所承受的负载来对应用所需的资源进行调整,并免去用户对应用和服务器等的维护工作,而且支持Java和Python这两种语言。由于App Engine属于PaaS平台,所以关于显示层的技术选择由应用的自身需要而定,与App Engine无关,关于App Engine在技术层面上大致的架构,具体请看下图:
图3:Google App Engine
采用的主要技术:
虽然用一张这样简单的图和两个简短的例子来描述庞大的云计算整体架构的确是略显寒酸,但是应该能让大家从技术角度对云计算的架构有一个大致的了解。
关于作者
吴朱华,北大硕士,PMP认证,之前在IBM中国研究院参与过多个云计算产品的开发工作,现在专注于研发下一代云计算系统,并同时撰写《剖析云计算》一书。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。
图1、2、3用的是同一副图,根据内容判断,应该是上传错误所致。
作者的整篇介绍看起来还是可以的,对当前云计算架构的分析也还算正确。
但是看到最后,“现在专注于研发下一代云计算系统”。到现在为止还没人敢说当前的云计算产品能算是完整成熟的一“代”,又何谈下一代呢?
不好意思,已经更正!
呵呵,就是对当然的云计算产品进行完善和强化,提升用户体验和成本!
图还是有一点问题,第一张应该大一点,而下面两张应该小一点,请更正!
由于第一张图的右边有一个相关厂商的内容框,如果图片过大,格式就会乱了。如果希望看到第一张图,可以单击图,在新的窗口中能够看到完整的图片。
为应用特别定制的服务器,具体指什么呢
比如给应用服务器打patch或者添加新的模块,以更好地支持多租户,具体实现他们没有披露。
单从架构图看,没发现云和Web App有什么区别,请指教?
分布式存储就代表了云吗?
SaaS的产品(比如salesforce sales cloud)比较类似Web App
分布式存储主要作为一个云的核心技术,比如用于App Engine的GFS,或者单独作为产品的Amazon S3.
现在对InfoQ越来越失望了,越来越多这种大而空泛,完全没有内涵和思想的东西
呵呵,希望你不要对本文抱有偏见,因为本文就是对云计算的整体架构进行剖析,肯定是以广为主,以高为主,如果你对技术底层感兴趣的话,可以看我的《剖析云计算》一书peopleyun.com/?page_id=174,如果你等不及电子书的话。
只要是BS的都可以视为云计算了,传统的虚拟空间也可以理解为云计算,反正不是本地机器运算,都叫云计算,这个更多的是商业概念,技术上面来说,支持虚拟化和分布式存储,才有点云的味道。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
精益软件开发方法因其对市场和交付的重视和在各种场景下体现出的适应能力正在获得广泛的关注。特别是在精益创业(Lean Startup)渐渐兴起和技术日新月异的今天,其"极端"的思想也变得越来越必要和可行。 InfoQ就此主题对他做了深入的采访。
13 条回复
关注此讨论 回复