您的位置:首页 > 运维架构 > 网站架构

活用框架API,打造云端服务的强龙架构 推荐

2011-02-18 15:50 369 查看

google赢家密码第3章:活用框架API,打造云端服务的强龙架构

第3章:活用框架API,打造云端服务的强龙架构

一、原文目录(全文共50页) 【完整版请见附件】

3.1 前言

3.2 萃取样式:赢家密码之形

3.3 如何看待云(端)服务?

3.4 替云端服务打造「软硬整合终端」

3.5 画龙点睛:以基类API包装服务

3.6 结语

二、关心密码:「芝麻开门」故事的启示

前两章细述了赢家密码,也特别提到,密码就像幸运草或蔷薇般。如果我们能如「猛虎细嗅着蔷薇」般,用心对待密码、领悟密码和活用密码。只要依循密码,就能善用一种神秘的力量,逐步重整我们的(企业的)战略(资源),进而强力(如猛虎般)支援「会赢的战术」(如差异化),让其获利效果极大化。

「芝麻开门」的故事

大家都知道商场如战场,西方兵圣克劳塞维兹(Karl Von Clausewitz)所说的战争之雾(The Fog of War)随时垄罩着整个战场(即商场),为论是战术或战略都必须随时修正,以维持其有效性;当然包括上面所说的:强力调整战略来极大化会赢的战术。所以,用心对待密码、领悟密码和活用密码是天天必须勤练的基本功夫。大家都听过「芝麻开门」的故事。在<<天方夜谭>>(The Arabian Nights)里有个「阿里巴巴和四十大盗」的故事,也就是俗称的「芝麻开门」故事。叙述着,自私而大意的卡森(Kasim),凭借密码去打开山洞的洞门(又自动关起来),进洞后看到堆积如山的金银财宝,却遗忘了开门密码,就被关在里面出不来了。其悲惨的下场,兹详述如下:

在古代的波斯国里,住着两兄弟,哥哥叫卡森(Kasim),弟弟叫阿里巴巴。卡森娶了一个富商的女儿,不久就一跃而成为富豪。阿里巴巴的妻子,是一个出身穷苦的女人。两人过着清苦的日子。阿里巴巴每天赶着三头毛驴去林中砍柴;傍晚时分进城把柴卖掉,然后才回家。

有一天的傍晚,阿里巴巴像往常一样赶着三头毛驴,正准备载着木柴下山时,突然看到远处有一伙约四十个人的强盗马队正朝向他疾驰而来。阿里巴巴很害怕,赶紧把毛驴藏起来,自己爬上了茂密的树梢里,以免被发现。

阿里巴巴看到了,这伙强盗来到近处的一座山前停了下来,其首领面对着一块大石头说了密码:「芝麻开门」,巨石立即分开,露出一个洞来。强盗逐一进入洞里,把抢来的钱财放入洞里,然后又逐一出来。最后,匪盗头目向洞门说了密码:「芝麻关门」,此时洞门就关闭了。随即,匪盗们离开了。

阿里巴已也记住了密码,从树上下来后,也走去向巨石说了密码:「芝麻开门」,石头洞门就开了,阿里巴巴走进去,发现洞里藏着无数的金银币、珍珠、宝石和首饰等。他拿了一些金币就匆匆跑出山洞,向洞门说了密码:「芝麻关门」,洞门关闭了。随即,阿里巴巴赶着三头毛驴下山了。

回家后,阿里巴巴夫妻无意中泄漏了上述的秘密,让哥哥卡森夫妻知道了,哥哥就逼他说出山洞位置和密码。隔天早上,卡森自己赶着十匹驴子上山去找那个山洞。当他到达洞口,面对着大石头说了密码:「芝麻开门」,洞门豁然打开了。他进入山洞后,洞门就自动关起来了。但是,他完全被大批的金银珠宝所吸引而没注意到。他专注于把金银财宝装入十多个袋子里,准备搬到山洞外,由驴子搬运回家。此时,由于他太过兴奋竟忘了开门的密码,却向洞门说了密码:「大麦开门」,洞门依然紧闭没开。继续喊了其它谷类名称,还是无法打开门,在恐惧中,更是想不起来『芝麻』这个名称,无法离开山洞。到了半夜强盗回来了,进了山洞把他抓起来五马分尸了。

密码是个手段,金银财宝才是目的。卡森见到目的,却忘了手段,因而陷入绝境。这个故事给我们一项重要的启示:持续关注手段,才能确保长久的利益。将之对应对本书的Android赢家密码,这项启示的涵义是:调整战略来支援赢家战术,这项手段必须持续运用,才能确保战术的长久有效。

密码之观点(View)

本书所谈的赢家密码是启动神秘力量的源头,但是它本身也是很神秘的,我们只能从多个观点(View)去领悟它、理解它,但却永远无法完全叙述真实的它。所以,在第1章里,我们从9个观点来说明赢家密码,这9个观点为:

1) 幸运草的芳香2) 猛虎般细嗅着3) 框架基类API 4) 做基类去送人5) 情愿者来上钩6) 强龙与地头蛇 7) 没钱就去改版8) 改版就会有钱9) 成为幸运赢家

透过这9个观点,尽可能去领悟和理解真实的它(即密码)。在第2章里,我们就依循上述观点而从「硬体差异化」战术为出发点,逐渐探索如何调整战略资源,例如转而采用Android开放平台,把原来开发AP的人力,转而开发领域框架,提供主动型API,随后开放AP,等等。如此,让战略能充分支援赢的战术,以获取最大的利益。

三、密码之形:样式

样式是专家们面对问题时的惯用伎俩。这种惯用伎俩,让人们在瞬息万变的环境下,面对新情境时,能举一反三,迅速导出有效的新解决方案。例如,三十六计里的「调虎离山」就是大家熟悉的样式。虽然原来是在面对老虎时的重要伎俩,但是有一天遇到盗匪(新的情境)时,我们脑海里,只要闪过「调虎离山」的念头,就能帮助我们想出法子来脱离盗匪的威胁了。因此,样式大多是从专家的经验中萃取的,有助于引导众人的思考,而让众人能依样画葫芦、举一反三,创造出有效的解决方案。

举例来说,虽然在第2章里,依循上述观点,确实能让「赢的战术」引导出最佳战略。但是,有许多人还是觉得上述密码没有造型(形),不易领悟、学习和遵循。因之,本书特别以「样式」(Pattern)概念来叙述密码的「形」,其中包括:过程样式(Process Pattern),以及架构样式(Architecture Pattern)。

密码之形:过程(Process)样式

从战术引导战略资源的调整是一项过程(或称程序),这个过程表面上会因时空情境(如战场、战术、战略资源等)而改变。然而,在这个善变的外表之下,却存在着一些适用于不同情境的共通形式(Form),或称之为样式(Pattern)。之后,在未来面对新时空情境(如新战术或战略资源)时,这些样式能有要引导我们的思维,举一反三、依样画葫芦,迅速创造出新的具体过程,并将会赢的战术顺利转化为最佳战略。

密码之形:架构(Architecture)样式

我们可以从许多角度(或观点)去窥看密码的身影或身形。刚才是从「战术引导战略布署」的运作流程角度去看密码,因而看到了密码的过程之形(样式)。在众多情境下,除了上述「过程」幕后有其共同形式之外,战略布署结构(Structure)也会有共通形式,这通称为架构(Architecture)样式,其表达了战略(布署)之形。

四、云端服务的常见迷思

智慧端,还是傻瓜端?

许多人认为云服务的蓬勃发展,让许许多多简易的设备只要连上互联网,就立即变得有智慧了。意味着,端的智慧都来自云服务,所以端本身会逐渐演变为简易的软、硬体设备,像傻瓜一样,一旦连结到云服务,它立即变得聪明无比。其实这是一项迷思,此迷思误导了从2007到2010年之间的台湾PC产业,大力推展简易的Netbook机种,希望PC成为云、互联网或物联网的「傻瓜端」,结果成为IT市场上的大输家。

在同一时期里,美国的Apple和Google公司正致力于开发端的智慧,采用最新的配备(如SRAM等),以及最先进的系统平台(如iOS、Android等),并搭配十多万支的应用程式,结果成为IT市场上的大赢家。

浏览器(Browser)的迷思

这项迷思,与刚才的傻瓜端迷思是有密切关联的。因为「傻瓜端」就意味着端设备里只要跑一种软体就行了,此种软体就是浏览器,然后透过浏览器上云端,拿云端的智慧来让自己看起来不像傻瓜。

显然地,二十年来,浏览器并没有太多进步,至今仍然凸显太多内容结构(例如Hyperlink),并没有凸显User的目的,以及有效捕捉其心意。也就是说,浏览器并没有完美封装后端服务和内容的复杂性;反而困惑了众多的使用者,这让Netbook难以普及的要因;也是多年来IPTV或WebTV难以投入客厅的怀抱的主因之一。

「单一接口与不管终端」的迷思

当云端服务提供商,在开发软体系统时,常常会掉入的思维陷阱就是:单一接口,不管终端。也就是,对终端采取放任的态度。总是期待自己提供的云端(或网路)服务,只要提供单一接口(例如提供一个浏览器)就可以吸引所有终端开发者。心想:

云端服务最好与终端(的AP)无关,不局限于特定终端群,能够让云端服务能卖得最多。

能够达到云端服务与终端(AP)无关的最佳途径就是:单一接口,不管终端。

这是一项巨大的迷思。例如,刚才所说的「浏览器」的迷思,其实也属于「单一接口,不管终端」的范例之一。就像传统网路服务业者,期待能仅仅提供单一接口:Web Service;就能让全球的终端(如手机、电视机等),透过HTTP通讯协议来取得Web Service。并内心暗自盘算着,这样可以让更多终端来使用,获得更大商机。事实上,这是一项迷思。君不见,Oracle公司的资料库(Database),一定会强烈要求其终端AP必须遵守关联式(Relational)资料库的ER结构,以及采取SQL语言,严格框住终端AP的架构,并不是只提供接口函数,而期待形形色色的终端都来使用其服务。因之,「单一接口、不管终端」是不合潮流的。

「自行开发终端AP」的迷思

这项迷思,与刚才的「单一接口、不管终端」迷思是有密切关联的。因为既能不管终端(的AP)又是单一接口,此种接口必然是被动型接口。在第1章已经说明了,这种被动型接口,其主导权是在终端AP里,云端服务没有制约终端AP的能力,很容易发生终端AP大失控的混乱局面。

由于失控的痛苦,让云端服务提供商,深深感受到「单一接口、不管终端」迷思的危险,于是回头走极端,又掉入另一个迷思里,就是「不开放,自行开发终端AP 」的迷思。由于怕失控,所以就自行开发或聘请「御用开发者」来开发终端AP。

那么,对于云端服务提供商而言,该如何避免上述的陷阱呢? 答案很简单:开发基类,以基类来提供框架API。由于框架API是主动型API,既不是单一接口,又能强力框住终端AP的架构。于是,既开放又不会失控,这就是框架API密码的神秘力量了。

「雲與端是1:N關係」的迷思

這項迷思,與剛才的傻瓜端迷思和自行開發AP迷思是有密切關聯的。因為「傻瓜端」就意味著端的智能是來自雲服務平台。如下圖:



云端服务供应者期待一群「傻瓜终端」来将其服务传送给广大的群众或用户。由于是傻瓜型的终端AP,意味着这些终端AP是简单的,心想自行去开发终端AP,也就掉入「不开放,自行开发终端AP」的迷思了。

于是,众多云端服务供应商(如银行或形形色色的俱乐部等)开始聘请其特约(或称「御用」)的AP开发人员,各自开发其终端AP。如下图所示:



图2、 传统1:N关系的范例

每个云端服务平台都有其专属的一群终端AP;也就是,每一个终端AP都隶属于特定的云端服务平台。形成了云端服务与终端AP之间的1:N关系。这种架构,将带给终端用户极大的困扰:必须费神去操作一群独立的终端AP,如下图:



图3、带给用户极大的困扰

如上图所示,俱乐部会员(即用户)的使用情境如下:

Step-1: 分别下载两支终端AP(到他的手机里):1)银行的「付款」;2)俱乐部的「计算金额」。

Step-2: 启动俱乐部的计算金额AP,计算出金额(AMT)。

Step-3: 将眼睛所看到的金额(数据)记住于脑海里。

Step-4: 启动银行的付款AP,将脑海里的金额(数据),透过手指头,打入到付款AP的画面里,传送到银行云端平台。

这是来自「1:N关系」迷思的古老系统架构。只要活用密码,改为「N:N关系」架构,就能迎刃而解了,如下图:



图4、 理想的N:N关系

俱乐部会员(即用户)只需要启动一支AP:计算金额并付款。就能处理完毕了,不必花脑筋去记忆,也不必担心记错金额或输入错误等等。

只要细心体会本书所叙述的赢家密码,并活用之,就能轻易设计出基类API,实践了N:N的关系,提供了最新潮、最善解人意的架构。如下图



图5、 N:N关系的实践方法:活用密码

其中,关于密码的活用伎俩,就等待下一节才来细谈一番啰。

「非端即云」的迷思

这项迷思,也与傻瓜端迷思有密切关联。因为「傻瓜端」的相反词就是「智慧云平台」了。于是傻瓜端迷思除了延伸到上述的1:N迷思之外,还延伸到本节的「非端即云」迷思,也就是2-Tier迷思。如果在云和端之间,再加一层,就变成3-Tier架构了,这个中间层,可以是「亦端亦云」层。例如,家庭里的智慧型TV可以是中间的「亦端亦云」层,如下图所示。就医疗云服务而言,它是终端。此外,手机却可以成为TV的终端,使得TV具有云平台的功能和角色。

五、本章的内涵

本章的前半段,将说明如何从上一章(即第2章)的经验里,萃取过程及架构样式。此样式的背景环境(Context)是:硬体组件。而其标的问题(Problem)是:如何获得最佳战略布署去让会赢战术极大化。此样式就叙述着,针对上述背景环境和问题的解决方法(Solution)。在本章的后半段,将针对新的背景环境:云与终端。但是针对相同问题:如何获得最佳战略布署去让会赢战术极大化。由于背景环境已经改变了,所以上述的解决方法已经不适用了,于是我们将借助于上述的样式,引导我们的思维,找出适合新环境的解决方法。亦即,在本章里,将会拿上述样式来应用于新的环境:云端服务。然后引导我们找出云端服务的最佳战略布署(即强龙系统架构)。 ~~ END ~~

完整版请下载附件!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息