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

作者 阮志敏 发布于 2011年4月29日
InfoQ于4月23日在北京组织了主题为“企业架构在互联网环境下的挑战”的Oracle技术沙龙。“云计算与SOA有什么区别?”这是Oracle讲师做完企业私有云PaaS解决方案的讲演后,提问环节中观众提出的第一个问题。回答这样的问题是颇具挑战性的,不同背景的人会有不同的理解,也不是一两句话能够解释清楚的。我个人的职业经历正好和SOA、云计算有很大的关系,因此希望和大家分享下我个人对这两者及企业软件领域的一些看法和理解。
云计算起源于大型互联网企业,成本和指数级的业务增长压力使他们非常关注于IT资源的利用率和应用的可扩展性。云计算动态的、可伸缩的、基于互联网的IT服务交付模式很快产生共鸣,得到政府、企业和IT软硬件厂商等的一致认同。大家一致认为云计算将是继PC革命、互联网革命之后的第三次IT革命。
然而,在Gartner 2010 Hype Cycle(下图)上,云计算位于炒作期的顶峰,而SOA早在2009年就已经位于成熟期,更不在2010的图上。对于SOA来说,人们已经不再谈SOA是什么、能做什么、怎么落地,而是谈论SOA的最佳实践。对于经历过SOA潮流的人来说,应该会有非常深的体会。

图片来源:Gartner 2010 Hype Cycle (如果看不懂Hype Cycle这个图,请看这篇文章)
面向企业的云计算解决方案,特别面向企业的私有云PaaS产品和解决方案,仍处于创新(研发)和市场整固阶段,离进入主流应用阶段仍有相当的距离。Oracle的现有私有云PaaS解决方案本质上是对已有产品如Fusion中间件及Oracle数据库等的重新包装,宣传和抢占市场的意义更大一些。这一套东西同样也是构成Oracle SOA解决方案的根基。这就不难理解为什么人们听完讲演后会提出“Oracle的云计算和SOA有什么区别?”这样的问题。
如果想更深入理解SOA和云计算的区别和共同点的话,需要深入分析企业IT问题的根源,以及SOA和云计算所要去解决的问题和所能带来的价值。
企业软件和互联网有很多差异,本质的区别在于企业必须直面其“遗留系统(Legacy Apps)”,企业必须保证其核心应用系统的稳定,导致其核心应用系统的生命周期会很长。所以,企业面临的核心问题如何解决长期以来形成的“烟囱式(Silo)的企业计算环境”,如下图所示:

烟囱式的企业计算环境和IT建设存在如下问题:
在云计算概念普及之前,企业已经在尝试解决这个问题,解决的思路是:
我们来分析一下SOA化。SOA之前,企业应用集成的方式是EAI,但是由于EAI缺乏统一的标准,集成完后又产生了新的孤岛。我们来看看围绕SOA的一些关键字,就不难看出SOA与传统EAI的区别,这些关键字是SOAP、Web Service、服务、互操作、重用、ESB、服务编排、BPM、复合应用、业务敏捷等。因此SOA的目标是使IT基础架构更加灵活并且可重用,以最终实现业务敏捷性。
我们再看看围绕云计算的一些关键字,这些关键字是多租户、共享的资源池、弹性、动态伸缩、自服务、按需使用、基于Internet、快速供应、IT资源利用率等。企业利用云计算进一步地去解决它所面临的核心问题,但主要目标是提升IT资源的利用率、降低IT成本,促进企业IT建设从粗旷型方式到集约型方式的转变。云计算出现后,企业解决烟囱式问题的思路是:
PaaS就是云环境中的应用基础设施,也就是中间件,因此PaaS也可以说是中间件即服务,Middleware as a service。中间件的类型非常多,事务型中间件、消息中间件、远程过程/对象调用中间件、应用服务器、数据库服务器、ESB、BPM等等。在传统On-premise部署方式下用到的中间件在云部署下也是要用到的。Gartner把PaaS分成两类,APaaS(application platform as a service)和IPaaS(integration platform as a service)。APaaS主要为应用提供运行环境和数据存储,能够将On-premise下部署的简单三层架构的应用直接部署到APaaS;IPaaS主要用于集成和构建复合应用。
鉴于企业现有IT的复杂性及目前PaaS平台的能力,是不可能将所有On-premise方式部署的应用一次性部署到云端的,因此On-premise、私有云、公有云将在很长时间内共存。在这种情况下,SOA架构风格能够非常好的支持On-premise、私有云、公有云的共存,如下图所示:

本文并不想直接去回答云计算、PaaS和SOA的关系和区别。我想用下面的这面这张企业架构演进图来作为这篇文章的总结,希望以此来给大家的一些启发,使得大家等够更多地从技术演进的历史来理解新事物。

从图中我们可以清楚看到企业架构在大型机时代、客户机-服务器时代、互联网时代和云计算时代的演进过程,以及每次演进的业务驱动力和技术驱动力。
从大型机时代物理上的集中,到云计算时代云端的集中,似乎是一个轮回……
关于作者
阮志敏,企业级PaaS平台CloudTao创始人,长期专注于企业软件领域,同时深受互联网技术影响,曾在CORDYS中国,摩托罗拉和惠普中国任职。他的个人博客是:http://www.cloudtao.org/external/blog/taoofcloud;新浪微博是:http://weibo.com/taoofcloud。
感谢张凯峰对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。
感谢作者的贡献!
了解一下
作为一套架构理念和方法论,SOA帮助企业实现了IT服务的高内聚和低耦合; 在刚刚进入云计算的时代, 如作者所言, 大部分企业即使采纳了云方案, 也不可能抛弃原来的IT设施与应用, 正好可以借助于SOA的方法, 将本地原生应用, 私有云和公有云中的应用"粘合"起来,形成灵活的混合云方案。理想情况下,资源还可以在这三者之间迁移,从而应对不同时期的负载,或者进行故障恢复。
同意你的观点。
SOA和云计算试图解决的问题是不同的:SOA试图解决的问题是架构设计问题(包括业务和技术),云计算试图解决的是成本问题。当然,随着云计算的发展,已经开始影响架构设计了。另外,经常看到有人用Gartner的预测来证明问题,这个有点过了,预测用来参考一下就行了,不能奉为圭臬。
确如上位所说,若从IaaS的基础设施云化角度看,云计算确实首要想解决的问题是不降低性能的同时如何降低成本。但从PaaS、SaaS开始,已不仅仅关注成本,弹性等特性,未来必将形成主流的自有架构,只是现在的发展还未清晰明朗,也是大有作为的领域。
在多线程并发编程中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就此主题对他做了深入的采访。
6 条回复
关注此讨论 回复