ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩精品欧美一区二区三区,亚洲精品中文字幕在线,9191在线http://www.aygfsteel.com/yiqi801218/archive/2008/05/01/197668.htmlBlueSunshineBlueSunshineThu, 01 May 2008 11:57:00 GMThttp://www.aygfsteel.com/yiqi801218/archive/2008/05/01/197668.htmlhttp://www.aygfsteel.com/yiqi801218/comments/197668.htmlhttp://www.aygfsteel.com/yiqi801218/archive/2008/05/01/197668.html#Feedback0http://www.aygfsteel.com/yiqi801218/comments/commentRss/197668.htmlhttp://www.aygfsteel.com/yiqi801218/services/trackbacks/197668.html

Welcome, member!

<% } else { %>

Welcome, guest!

<% } %> 修正此类问题通常需要相当丰富的¾~–程¾léªŒã€‚å°½½Ž¡é€šå¸¸ä¼šç”±ååˆ†¾_ùN€šé¡µé¢å¸ƒå±€å’Œå›¾å½¢è®¾è®¡çš„设计人员来开发和¾l´æŠ¤ JSPåQŒä½†æ˜¯åŒä¸€™åµé¢ä¸­çš„脚本¾~–制元素出现问题æ—Óž¼Œéœ€è¦ç¨‹åºå‘˜çš„介入。这¿UçŠ¶å†µå°†å•ä¸ªæ–‡äšg中代码的责ä“Q分担¾l™å¤šäººï¼Œå› è€Œä‹É得开发、调试和增强此类 JSP ™åµé¢æˆäؓ很麻烦的ä»ÕdŠ¡ã€‚é€šè¿‡ž®†å¸¸ç”¨åŠŸèƒ½åŒ…è£…åˆ°å®šåˆ¶æ ‡è®°åº“çš„æ ‡å‡†é›†åˆä¸­ï¼ŒJSTL ä½?JSP 作者可以减ž®‘对¾~–制脚本元素的需求,甚至可以不需要它们,òq‰™¿å…äº†ç›¸å…³çš„维护成本ã€? 回页é¦? JSTL 1.0 JSTL 1.0 发布äº?2002 òq?6 月,由四个定制标记库åQ?core ã€?format ã€?xml å’?sql åQ‰å’Œä¸€å¯šw€šç”¨æ ‡è®°åº“验证器åQ?ScriptFreeTLV å’?PermittedTaglibsTLV åQ‰ç»„成ã€?core 标记库提供了定制操作åQŒé€šè¿‡é™åˆ¶äº†ä½œç”¨åŸŸçš„变量管理数据,以及执行™åµé¢å†…容的è„P代和条äšg操作。它˜q˜æä¾›äº†ç”¨æ¥ç”Ÿæˆå’Œæ“ä½?URL 的标记。顾名思义åQ?format 标记库定义了用来格式化数据(ž®¤å…¶æ˜¯æ•°å­—和日期åQ‰çš„æ“ä½œã€‚它˜q˜æ”¯æŒä‹É用本地化资源束进è¡?JSP ™åµé¢çš„国际化ã€?xml 库包含一些标讎ͼŒ˜q™äº›æ ‡è®°ç”¨æ¥æ“ä½œé€šè¿‡ XML 表示的数据,è€?sql 库定义了用来查询关系数据库的操作ã€? 两个 JSTL 标记库验证器允许开发äh员在å…?JSP 应用½E‹åºä¸­å¼ºåˆ¶ä‹É用编码标准。可以配¾|?ScriptFreeTLV 验证器以åœ?JSP ™åµé¢ä¸­ç¦ç”¨å„¿Uç±»åž‹çš„ JSP 脚本元素 â€?scriptlet、表辑ּå’Œå£°æ˜Žã€‚类似地åQ?PermittedTaglibsTLV 验证器可以用来限制可能由应用½E‹åºçš?JSP ™åµé¢è®‰K—®çš„定制标记库集(包括 JSTL 标记库)ã€? ž®½ç®¡ JSTL 最¾lˆå°†ä¼šæˆä¸?J2EE òq›_°çš„必需¾l„äšgåQŒä½†ç›®å‰åªæœ‰ž®‘数应用½E‹åºæœåŠ¡å™¨åŒ…æ‹¬å®ƒã€‚JSTL 1.0 çš„å‚è€ƒå®žçŽ°å¯ä½œäØ“ Apache 软äšg基金会(Apache Software FoundationåQ‰çš„ Jakarta Taglibs ™å¹ç›®åQˆè¯·å‚阅 参考资料)的一部分而获得。可以将该参考实çŽîC¸­çš„å®šåˆ¶æ ‡è®°åº“åˆåÆˆåˆîC“Q何支æŒ?JSP 1.2 å’?Servlet 2.3 规范的服务器åQŒä»¥æ·ÕdŠ å¯?JSTL 的支持ã€? 回页é¦? 表达式语­a€ åœ?JSP 1.2 中,可以使用静态字½W¦ä¸²æˆ–表辑ּåQˆå¦‚果允许的话)指定 JSP 操作的属性。例如,在清å?2 中,å¯? 操作çš?name å’?property 属性指定了静态å€û|¼Œè€Œç”¨è¡¨è¾¾å¼æŒ‡å®šäº†å…?value 属性。这个操作的效果是将è¯äh±‚å‚æ•°çš„å½“å‰å€ÆDµ‹äºˆå‘½åçš„ bean ç‰ÒŽ€§ã€‚以˜q™ç§å½¢å¼ä½¿ç”¨çš„表辑ּè¢«ç§°ä¸?è¯äh±‚时属性å€û|¼ˆrequest-time attribute valueåQ‰ï¼Œ˜q™æ˜¯æž„徏åˆ?JSP 规范中的用于动态指定属性值的唯一机制ã€? 清单 2. åˆåÆˆè¯äh±‚时属性值的 JSP 操作 因䨓è¯äh±‚时属性值是用表辑ּæŒ‡å®šçš„,所以它们往往有和其它脚本元素一æ ïLš„软äšg¾l´æŠ¤é—®é¢˜ã€‚因此,JSTL 定制标记支持另一¿Uç”¨äºŽæŒ‡å®šåŠ¨æ€å±žæ€§å€¼çš„æœºåˆ¶ã€‚å¯ä»¥ç”¨½Ž€åŒ–çš„ 表达式语­a€åQˆELåQ‰è€Œä¸ä½¿ç”¨å®Œæ•´çš?JSP 表达式来指定 JSTL 操作的属性倹{€‚EL 提供了一些标识符、存取器和运½Ž—符åQŒç”¨æ¥æ£€ç´¢å’Œæ“ä½œé©È•™åœ?JSP 容器中的数据。EL 在某¿Uç¨‹åº¦ä¸Šä»?EcmaScriptåQˆè¯·å‚阅 参考资料)å’?XML 路径语言åQˆXML Path LanguageåQŒXPathåQ‰äؓ基础åQŒå› æ­¤é¡µé¢è®¾è®¡äh员和½E‹åºå‘˜éƒ½åº”该熟悉它的语法。EL æ“…é•¿å¯ÀL‰¾å¯¹è±¡åŠå…¶ç‰ÒŽ€§ï¼Œç„¶åŽå¯¹å®ƒä»¬æ‰§è¡Œç®€å•操作;它不是编½E‹è¯­­a€åQŒç”šè‡³ä¸æ˜¯è„šæœ¬ç¼–åˆ¶è¯­­a€ã€‚但是,ä¸?JSTL 标记一起ä‹É用时åQŒå®ƒž®Þpƒ½ä½¿ç”¨½Ž€å•而又方便的符åäh¥è¡¨ç¤ºå¤æ‚的行为。EL 表达式的格式是这æ ïLš„åQšç”¨¾ŸŽå…ƒ½W¦å·åQ?åQ‰å®šç•Œï¼Œå†…容包括在花括号åQˆ{}åQ‰ä¸­åQŒå¦‚清单 3 所½Cºã€? 清单 3. 说明 EL 表达式定界符çš?JSTL 操作 此外åQŒæ‚¨å¯ä»¥ž®†å¤šä¸ªè¡¨è¾‘Ö¼ä¸Žé™æ€æ–‡æœ¬ç»„åˆåœ¨ä¸€èµ·ä»¥é€šè¿‡å­—ç¬¦ä¸²åÆˆ¾|®æ¥æž„造动态属性å€û|¼Œå¦‚清å?4 所½Cºã€‚单独的表达式由标识½W¦ã€å­˜å–器、文字和˜qç®—½W¦ç»„成。标识符用来引用存储在数据中心中的数据对象。EL æœ?11 个保留标识符åQŒå¯¹åº”于 11 ä¸?EL 隐式对象。假定所有其它标识符都引ç”?限制了作用域的变量。存取器用来‹‚€ç´¢å¯¹è±¡çš„ç‰ÒŽ€§æˆ–集合的元素。文字表½Cºå›ºå®šçš„å€?â€?数字、字½W¦ã€å­—½W¦ä¸²ã€å¸ƒž®”型或空倹{€‚运½Ž—符允许å¯ÒŽ•°æ®å’Œæ–‡å­—˜q›è¡Œ¾l„合以及比较ã€? 清单 4. ¾l„合静态文本和多个 EL 表达式以指定动态属性å€? 回页é¦? 限制了作用域的变é‡? JSP API 通过 操作允许ä»?JSP 容器内的四个不同作用域中存储和检索数据。JSTL 通过提供用于指定和除去这些作用域中的对象的附加操作来扩展˜q™ä¸€èƒ½åŠ›ã€‚æ­¤å¤–ï¼ŒEL 提供ž®†è¿™äº›å¯¹è±¡ä½œä¸ºé™åˆ¶äº†ä½œç”¨åŸŸçš„变量˜q›è¡Œ‹‚€ç´¢çš„内置支持。特别地åQŒä“Q何出现在 EL 表达式中但不对应于ä“Qä½?EL 隐式对象的标识符åQŒéƒ½è¢«è‡ªåŠ¨å‡å®šäØ“å¼•ç”¨å­˜å‚¨åœ¨å››ä¸?JSP 作用域的其中某个中的对象åQŒè¿™å››ä¸ªä½œç”¨åŸŸæ˜¯åQ? ™åµé¢ä½œç”¨åŸ? è¯äh±‚作用åŸ? 会话作用åŸ? 应用½E‹åºä½œç”¨åŸ? 您可能还记得åQŒåªæœ‰åœ¨ä¸ºç‰¹å®šè¯·æ±‚处理页面期间才能检索存储在该页面作用域中的对象。如果对象是存储在请求作用域中的åQŒå¯ä»¥åœ¨å¤„理所有参与处理某è¯äh±‚的页面期间检索这些对象(譬如在对某个è¯äh±‚的处理中遇到了一个或多个 æˆ? 操作åQ‰ã€‚如果对象是存储在会话作用域中的åQŒåˆ™åœ¨ä¸Ž Web 应用½E‹åºçš„交互式会话期间åQŒå¯ä»¥ç”±ç”¨æˆ·è®‰K—®çš„ä“Q何页面检索它åQˆå³åQŒç›´åˆîC¸Žè¯¥ç”¨æˆ·äº¤äº’相兌™”çš?HttpSession 对象无效为止åQ‰ã€‚可以由ä»ÖM½•用户从ä“Q何页面访问存储在应用½E‹åºä½œç”¨åŸŸä¸­çš„对象,直到卸蝲 Web 应用½E‹åºæœ¬èín为止åQˆé€šå¸¸æ˜¯ç”±äºŽå…³é—?JSP 容器所è‡ß_¼‰ã€? 通过ž®†å­—½W¦ä¸²æ˜ å°„为期望作用域中的对象来将对象存储到该作用域。然后,ž®±å¯ä»¥é€šè¿‡æä¾›ç›¸åŒå­—符串来从该作用域检索该对象。在作用域的映射中查扑֭—½W¦ä¸²åQŒåƈ˜q”回被映ž®„的对象。在 Servlet API 中,ž®†æ­¤¾cÕd¯¹è±¡ç§°ä¸ºç›¸åº”作用域çš?属性。但是,åœ?EL 的上下文中,也将与属性相兌™”的字½W¦ä¸²çœ‹ä½œå˜é‡çš„名¿UŽÍ¼Œè¯¥å˜é‡é€šè¿‡å±žæ€§æ˜ ž®„的方式获得特定的倹{€? åœ?EL 中,与隐式对象无兌™”的标识符被认为是存储在四ä¸?JSP 作用域中的名¿U°å¯¹è±¡ã€‚首先对™åµé¢ä½œç”¨åŸŸæ£€æŸ¥æ˜¯å¦å­˜åœ¨è¿™æ ïLš„æ ‡è¯†½W¦ï¼Œå…¶æ¬¡å¯¹è¯·æ±‚作用域、然后对会话作用域、最后对应用½E‹åºä½œç”¨åŸŸä¾‹Æ¡è¿›è¡Œè¿™æ ïLš„‹‚€æŸ¥ï¼Œç„¶åŽ‹¹‹è¯•该标识符的名¿U°æ˜¯å¦ä¸Žå­˜å‚¨åœ¨è¯¥ä½œç”¨åŸŸä¸­çš„æŸä¸ªå¯¹è±¡çš„名称匚w…ã€‚第一个这æ ïLš„匚w…ä½œäØ“ EL 标识½W¦çš„倯D¢«˜q”回。通过˜q™ç§æ–ÒŽ³•åQŒå¯ä»¥å°† EL 标识½W¦çœ‹ä½œå¼•用限制了作用域的变量ã€? 从更技术的斚w¢æ¥è¯´åQŒæ²¡æœ‰æ˜ ž®„到隐式对象的标识符是用 PageContext 实例çš?findAttribute() æ–ÒŽ³•求值的åQŒè¯¥å®žä¾‹è¡¨ç¤ºå¯šw¡µé¢çš„处理åQŒåœ¨è¯¥é¡µé¢ä¸ŠåQŒå½“前正在处理用于请求的表达式。标识符的名¿UîC½œä¸ºå‚æ•îC¼ é€’ç»™˜q™ä¸ªæ–ÒŽ³•åQŒç„¶åŽè¯¥æ–ÒŽ³•依次在四个作用域中搜索具有相同名¿U°çš„å±žæ€§ã€‚åÆˆž®†æ‰€æ‰‘Öˆ°çš„ç¬¬ä¸€ä¸ªåŒ¹é…é¡¹ä½œäØ“ findAttribute() æ–ÒŽ³•çš„å€ÆD¿”回。如果未在这四个作用域中扑ֈ°˜q™æ ·çš„属性,则返å›?null ã€? 最¾lˆï¼Œé™åˆ¶äº†ä½œç”¨åŸŸçš„变量是四个 JSP 作用域的属性,˜q™äº›å±žæ€§å…·æœ‰å¯ä»¥ç”¨ä½?EL 标识½W¦çš„名称。只要对限制了作用域的变量赋予由字母数字¾l„成的名¿UŽÍ¼Œž®±å¯ä»¥é€šè¿‡ JSP 中提供的用于讄¡½®å±žæ€§çš„ä»ÖM½•机制来创建它们。这包括内置çš? 操作åQŒä»¥åŠç”± Servlet API 中的几个¾cÕd®šä¹‰çš„ setAttribute() æ–ÒŽ³•。此外,四个 JSTL 库中定义的许多定制标记本íw«å°±èƒ½å¤Ÿè®„¡½®ä½œäؓ限制了作用域的变量ä‹É用的属性倹{€? 回页é¦? 隐式对象 è¡?1 中列å‡ÞZº† 11 ä¸?EL 隐式对象的标识符。不要将˜q™äº›å¯¹è±¡ä¸?JSP 隐式对象åQˆä¸€å…±åªæœ‰ä¹ä¸ªï¼‰æ·äh·†åQŒå…¶ä¸­åªæœ‰ä¸€ä¸ªå¯¹è±¡æ˜¯å®ƒä»¬æ‰€å…±æœ‰çš„ã€? è¡?1. EL 隐式对象 ¾cÕdˆ« 标识½W?描述 JSPpageContext PageContext 实例对应于当前页面的处理 作用域pageScope 与页面作用域属性的名称和值相兌™”çš?Map ¾c? requestScope 与请求作用域属性的名称和值相兌™”çš?Map ¾c? sessionScope 与会话作用域属性的名称和值相兌™”çš?Map ¾c? applicationScope 与应用程序作用域属性的名称和值相兌™”çš?Map ¾c? è¯äh±‚参数param 按名¿U°å­˜å‚¨è¯·æ±‚参数的主要值的 Map ¾c? paramValues ž®†è¯·æ±‚参数的所有å€ég½œä¸?String 数组存储çš?Map ¾c? è¯äh±‚头header 按名¿U°å­˜å‚¨è¯·æ±‚头主要值的 Map ¾c? headerValues ž®†è¯·æ±‚头的所有å€ég½œä¸?String 数组存储çš?Map ¾c? Cookiecookie 按名¿U°å­˜å‚¨è¯·æ±‚附带的 cookie çš?Map ¾c? 初始化参数initParam 按名¿U°å­˜å‚?Web 应用½E‹åºä¸Šä¸‹æ–‡åˆå§‹åŒ–参数çš?Map ¾c? ž®½ç®¡ JSP å’?EL 隐式对象中只有一个公共对象( pageContext åQ‰ï¼Œä½†é€šè¿‡ EL 也可以访问其å®?JSP 隐式对象。原因是 pageContext 拥有讉K—®æ‰€æœ‰å…¶å®ƒå…«ä¸?JSP 隐式对象的特性。实际上åQŒè¿™æ˜¯å°†å®ƒåŒ…括在 EL 隐式对象中的主要理由ã€? 其余所æœ?EL 隐式对象都是映射åQŒå¯ä»¥ç”¨æ¥æŸ¥æ‰‘Ö¯¹åº”于名称的对象。前四个映射表示先前讨论的各¿Uå±žæ€§ä½œç”¨åŸŸã€‚可以用它们来查扄¡‰¹å®šä½œç”¨åŸŸä¸­çš„æ ‡è¯†½W¦ï¼Œè€Œä¸ç”¨ä¾èµ–于 EL 在缺省情况下使用的顺序查找过½E‹ã€? 接下来的四个映射用来获取è¯äh±‚参数和请求头的倹{€‚å› ä¸?HTTP 协议允许è¯äh±‚参数和请求头å…ähœ‰å¤šä¸ªå€û|¼Œæ‰€ä»¥å®ƒä»¬å„有一å¯ÒŽ˜ ž®„。每对中的第一个映ž®„返回请求参数或头的主要å€û|¼Œé€šå¸¸æ˜¯æ°å·§åœ¨å®žé™…è¯äh±‚中首先指定的那个倹{€‚每对中½W¬äºŒä¸ªæ˜ ž®„允许检索参数或头的所有倹{€‚这些映ž®„中的键是参数或头的名称åQŒä½†˜q™äº›å€¼æ˜¯ String 对象的数¾l„,其中的每个元素都是单一参数值或头倹{€? cookie 隐式对象提供了对ç”Þp¯·æ±‚设¾|®çš„ cookie 名称的访问。这个对象将所有与è¯äh±‚相关联的 cookie 名称映射到表½Cºé‚£äº?cookie ç‰ÒŽ€§çš„ Cookie 对象ã€? 最后一ä¸?EL 隐式对象 initParam 是一个映ž®„,它储存与 Web 应用½E‹åºç›¸å…³è”的所有上下文的初始化参数的名¿U°å’Œå€¹{€‚初始化参数是通过 web.xml 部çÖv描述½W¦æ–‡ä»¶æŒ‡å®šçš„åQŒè¯¥æ–‡äšg位于应用½E‹åºçš?WEB-INF 目录中ã€? 回页é¦? 存取å™? 因䨓 EL 标识½W¦æ˜¯ä½œäؓ隐式对象或限制了作用域的变量åQˆé€šè¿‡å±žæ€§æ¥å®žçްåQ‰è§£æžçš„åQŒå› æ­¤æœ‰å¿…要ž®†å®ƒä»¬è{换成 Java 对象。EL 可以自动包装和解包其相应çš?Java ¾cÖM¸­çš„基本类型(例如åQŒå¯ä»¥åœ¨åŽå°ž®?int 强制转换æˆ?Integer ¾c»ï¼Œåä¹‹äº¦å¯åQ‰ï¼Œä½†å¤§å¤šæ•°çš„æ ‡è¯†ç¬¦ž®†æˆä¸ºæŒ‡å‘完整的 Java 对象的指针ã€? ¾l“果是,对这些对象的ç‰ÒŽ€§æˆ–åQˆåœ¨å¯¹è±¡æ˜¯æ•°¾l„和集合的情况下åQ‰å¯¹å…¶å…ƒç´ çš„讉K—®é€šå¸¸æ˜¯ä×o人满意的。就ä¸ÞZº†å®žçް˜q™ç§ç”¨é€”,EL 提供了两¿Uä¸åŒçš„存取器(点运½Ž—符åQ?. åQ‰å’Œæ–ÒŽ‹¬å¯‚¿½Ž—符åQ?[] åQ‰ï¼‰åQŒä¹Ÿæ”¯æŒé€šè¿‡ EL 操作ç‰ÒŽ€§å’Œå…ƒç´ ã€? 点运½Ž—符通常用于讉K—®å¯¹è±¡çš„特性。例如,在表辑ּ ${user.firstName} 中,使用点运½Ž—符来访é—?user 标识½W¦æ‰€å¼•用对象的名ä¸?firstName 的特性。EL 使用 Java bean ¾U¦å®šè®‰K—®å¯¹è±¡ç‰ÒŽ€§ï¼Œå› æ­¤å¿…须定义˜q™ä¸ªç‰ÒŽ€§çš„ getter æ–ÒŽ³•åQˆé€šå¸¸æ˜¯åä¸?getFirstName() 的方法)åQŒä»¥ä¾¿è¡¨è¾‘Ö¼æ­£ç¡®æ±‚倹{€‚当被访问的ç‰ÒŽ€§æœ¬íw«æ˜¯å¯¹è±¡æ—Óž¼Œå¯ä»¥é€’归地应用点˜qç®—½W¦ã€‚例如,如果我们虚构çš?user 对象有一个实çŽîCØ“ Java 对象çš?address ç‰ÒŽ€§ï¼Œé‚£ä¹ˆä¹Ÿå¯ä»¥ç”¨ç‚¹è¿½Ž—符来访问这个对象的ç‰ÒŽ€§ã€‚例如,表达å¼?${user.address.city} ž®†ä¼š˜q”回˜q™ä¸ªåœ°å€å¯¹è±¡åµŒå¥—çš?city ç‰ÒŽ€§ã€? æ–ÒŽ‹¬å¯‚¿½Ž—符用来‹‚€ç´¢æ•°¾l„和集合的元素。在数组和有序集合(也即åQŒå®žçŽîCº† java.util.List 接口的集合)的情况下åQŒæŠŠè¦æ£€ç´¢çš„元素的下标放在方括号中。例如,表达å¼?${urls[3]} ˜q”回 urls 标识½W¦æ‰€å¼•用的数¾l„或集合的第四个元素åQˆå’Œ Java 语言以及 JavaScript ä¸­ä¸€æ øP¼ŒEL 中的下标是从零开始的åQ‰ã€? 对于实现 java.util.Map 接口的集合,æ–ÒŽ‹¬å¯‚¿½Ž—符使用兌™”的键查找存储在映ž®„中的倹{€‚在æ–ÒŽ‹¬å·ä¸­æŒ‡å®šé”®ï¼Œòq¶å°†ç›¸åº”çš„å€ég½œä¸ø™¡¨è¾‘Ö¼çš„倯D¿”回。例如,表达å¼?${commands["dir"]} ˜q”回ä¸?commands 标识½W¦æ‰€å¼•用çš?Map 中的 "dir" 键相兌™”的倹{€? 对于上述两种情况åQŒéƒ½å¯å…è®¸è¡¨è¾‘Ö¼å‡ºçŽ°åœ¨æ–¹æ‹¬å·ä¸­ã€‚å¯¹åµŒå¥—è¡¨è¾¾å¼æ±‚å€¼çš„¾l“æžœž®†è¢«ä½œäؓ下标或键åQŒç”¨æ¥æ£€ç´¢é›†åˆæˆ–数组的适当元素。和点运½Ž—ç¬¦ä¸€æ øP¼Œæ–ÒŽ‹¬å¯‚¿½Ž—符也可以递归应用。这使得 EL 能够从多¾l´æ•°¾l„、嵌套集合或两者的ä»ÀL„¾l„合中检索元素。此外,点运½Ž—符和方括号˜qç®—½W¦è¿˜å¯ä»¥äº’操作。例如,如果数组的元素本íw«æ˜¯å¯¹è±¡åQŒåˆ™å¯ä»¥ä½¿ç”¨æ–ÒŽ‹¬å¯‚¿½Ž—符来检索该数组的元素,òq¶ç»“合点˜qç®—½W¦æ¥‹‚€ç´¢è¯¥å…ƒç´ çš„一个特性(例如 ${urls[3].protocol} åQ‰ã€? 假定 EL 充当指定动态属性值的½Ž€åŒ–语­a€åQŒEL 存取器有一个有­‘£çš„功能åQˆä¸Ž Java 语言的存取器不同åQ‰ï¼Œé‚£å°±æ˜¯å®ƒä»¬åœ¨åº”用äº?null 时不抛出异常。如果应ç”?EL 存取器的对象åQˆä¾‹å¦‚, ${foo.bar} å’?${foo["bar"]} 中的 foo 标识½W¦ï¼‰æ˜?null åQŒé‚£ä¹ˆåº”用存取器的结果也æ˜?null 。事实证明,在大多数情况下,˜q™æ˜¯ä¸€ä¸ªç›¸å½“æœ‰ç”¨çš„è¡ŒäØ“åQŒä¸ä¹…您ž®×ƒ¼šäº†è§£˜q™ä¸€ç‚V€? 最后,点运½Ž—符和方括号˜qç®—½W¦å¯èƒ½å®žçŽ°æŸ¿Uç¨‹åº¦çš„互换。例如,也可以ä‹Éç”?${user["firstName"]} 来检ç´?user 对象çš?firstName ç‰ÒŽ€§ï¼Œæ­£å¦‚可以ç”?${commands.dir} 获取ä¸?commands 映射中的 "dir" 键相兌™”çš„å€ég¸€æ —÷€? 回页é¦? ˜qç®—½W? EL ˜q˜å¯ä»¥é€šè¿‡ä½¿ç”¨æ ‡è¯†½W¦å’Œå­˜å–器,遍历包含应用½E‹åºæ•°æ®åQˆé€šè¿‡é™åˆ¶äº†ä½œç”¨åŸŸçš„变量公开åQ‰æˆ–关于环境的信息(通过 EL 隐式对象åQ‰çš„对象层次¾l“构。但是,只是讉K—®˜q™äº›æ•°æ®åQŒé€šå¸¸ä¸èƒö以实现许å¤?JSP 应用½E‹åºæ‰€éœ€çš„表½Cºé€»è¾‘ã€? 最¾lˆï¼ŒEL ˜q˜åŒ…括了几个用来操作和比è¾?EL 表达式所讉K—®æ•°æ®çš„运½Ž—符。表 2 中汇æ€ÖMº†˜q™äº›˜qç®—½W¦ã€? è¡?2. EL ˜qç®—½W? ¾cÕdˆ« ˜qç®—½W? ½Ž—术˜qç®—½W? ã€?- ã€?* ã€?/ åQˆæˆ– div åQ‰å’Œ % åQˆæˆ– mod åQ? 关系˜qç®—½W?= åQˆæˆ– eq åQ‰ã€?!= åQˆæˆ– ne åQ‰ã€?< åQˆæˆ– lt åQ‰ã€?> åQˆæˆ– gt åQ‰ã€?<= åQˆæˆ– le åQ‰å’Œ >= åQˆæˆ– ge åQ? 逻辑˜qç®—½W?& åQˆæˆ– and åQ‰ã€?|| åQˆæˆ– or åQ‰å’Œ ! åQˆæˆ– not åQ? 验证˜qç®—½W¦empty ½Ž—术˜qç®—½W¦æ”¯æŒæ•°å€¼çš„加法、减法、乘法和除法。还提供了一个求余运½Ž—符。注åQšé™¤æ³•和求余˜qç®—½W¦éƒ½æœ‰æ›¿ä»£çš„、非½W¦å·çš„名¿UŽÍ¼ˆä¸ºçš„æ˜¯ä¸Ž XPath 保持一è‡ß_¼‰ã€‚清å?5 中显½CÞZº†ä¸€ä¸ªæ¼”½Cºç®—术运½Ž—符用法的示例表辑ּã€‚对几个 EL 表达式应用算术运½Ž—符的结果是ž®†è¯¥½Ž—术˜qç®—½W¦åº”用于˜q™äº›è¡¨è¾¾å¼è¿”回的数值所得的¾l“æžœã€? 清单 5. 利用½Ž—术˜qç®—½W¦çš„ EL 表达å¼? ${item.price * (1 + taxRate[user.address.zipcode])} 关系˜qç®—½W¦å…è®¸æ¯”较数字或文本数据。比较的¾l“æžœä½œäØ“å¸ƒå°”å€ÆD¿”回。逻辑˜qç®—½W¦å…è®¸åˆòq¶å¸ƒž®”å€û|¼Œ˜q”回新的布尔倹{€‚因此,可以ž®?EL 逻辑˜qç®—½W¦åº”用于嵌套的关¾pÀLˆ–逻辑˜qç®—½W¦çš„¾l“æžœåQŒå¦‚清单 6 所½Cºã€? 清单 6. 利用关系和逻辑˜qç®—½W¦çš„ EL 表达å¼? ${(x >= min) && (x <= max)} 最后一¿U?EL ˜qç®—½W¦æ˜¯ empty åQŒå®ƒå¯¹äºŽéªŒè¯æ•°æ®ç‰¹åˆ«æœ‰ç”¨ã€?empty ˜qç®—½W¦é‡‡ç”¨å•个表辑ּä½œäؓ其变量(也即åQ?${empty input} åQ‰ï¼Œòq¶è¿”回一个布ž®”å€û|¼Œè¯¥å¸ƒž®”倯D¡¨½Cºå¯¹è¡¨è¾¾å¼æ±‚值的¾l“果是不æ˜?#8220;½I?#8221;倹{€‚æ±‚å€¼ç»“æžœäØ“ null 的表辑ּè¢«è®¤ä¸ºæ˜¯½Iºï¼ŒåÏx— å…ƒç´ çš„集合或数组。如果参数是寚w•¿åº¦äؓ零的 String 求值所得的¾l“æžœåQŒåˆ™ empty ˜qç®—½W¦ä¹Ÿž®†è¿”å›?true ã€? è¡?3 昄¡¤ºäº?EL ˜qç®—½W¦çš„优先¾U§ã€‚正如清å?5 å’?6 所½Cºï¼Œå¯ä»¥ç”¨åœ†æ‹¬å·å¯¹è¡¨è¾‘Ö¼åˆ†ç»„åQŒé«˜äºŽæ™®é€šçš„优先¾U§è§„则ã€? è¡?3. EL ˜qç®—½W¦ä¼˜å…ˆçñ”åQˆè‡ª™å¶åˆ°åº•,从左到右åQ? [] , . () unary - ã€?not ã€?! ã€?empty * ã€?/ ã€?div ã€?% ã€?mod + 、binary - () < ã€?> ã€?<= ã€?>= ã€?lt ã€?gt ã€?le ã€?ge == ã€?!= ã€?eq ã€?ne && ã€?and || ã€?or 回页é¦? 文字 åœ?EL 表达式中åQŒæ•°å­—、字½W¦ä¸²ã€å¸ƒž®”值和 null 都可以被指定为文字倹{€‚å­—½W¦ä¸²å¯ä»¥ç”¨å•引号或双引号定界。布ž®”倯D¢«æŒ‡å®šä¸?true å’?false ã€? 回页é¦? Taglib 伪指ä»? 正如我们先前讨论的,JSTL 1.0 åŒ…æ‹¬å››ä¸ªå®šåˆ¶æ ‡è®°åº“ã€‚äØ“äº†æ¼”½C?JSTL 标记和表辑ּè¯­è¨€çš„交互,我们ž®†ç ”½I¶å‡ ä¸ªæ¥è‡?JSTL core 库的标记。和使用ä»ÖM½• JSP å®šåˆ¶æ ‡è®°åº“ä¸€æ øP¼Œå¿…须在您惌™¦ä½¿ç”¨˜q™ä¸ªåº“标记的ä»ÖM½•™åµé¢ä¸­åŒ…æ‹?taglib 伪指令。清å?7 昄¡¤ºäº†ç”¨äºŽè¿™ä¸ªç‰¹å®šåº“的伪指ä×oã€? 清单 7. 用于 JSTL core åº?EL 版本çš?taglib 伪指ä»? <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> 实际上,对应äº?JSTL core 库的 taglib 伪指令有两种åQŒå› ä¸ºåœ¨ JSTL 1.0 中,EL 是可选的。所有四ä¸?JSTL 1.0 定制标记库都有ä‹Éç”?JSP 表达式(而不æ˜?ELåQ‰æŒ‡å®šåŠ¨æ€å±žæ€§å€¼çš„å¤‡ç”¨ç‰ˆæœ¬ã€‚å› ä¸ø™¿™äº›å¤‡ç”¨åº“依赖äº?JSP 的更传统的请求时属性å€û|¼Œæ‰€ä»¥å®ƒä»¬è¢«¿UîCØ“ RT库,而那些ä‹É用表辑ּè¯­è¨€çš„则被称ä¸?EL 库。开发äh员用不同çš?taglib 伪指令来区分每个库的˜q™ä¸¤ä¸ªç‰ˆæœ¬ã€‚清å?8 昄¡¤ºäº†ä‹Éç”?core 库的 RT 版本的伪指ä×o。但是,ç”׃ºŽçŽ°åœ¨æˆ‘ä»¬è®¨è®ºçš„é‡ç‚ÒŽ˜¯ ELåQŒæ‰€ä»¥é¦–先需要这些伪指ä×oã€? 清单 8. 用于 JSTL core åº?RT 版本çš?taglib 伪指ä»? <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt" %> 回页é¦? 变量标记 我们首先要考虑çš?JSTL 定制标记æ˜? 操作。正如已¾lè¯´æ˜Žçš„åQŒé™åˆ¶äº†ä½œç”¨åŸŸçš„变量åœ?JSTL 中è“v关键作用åQ? 操作提供åŸÞZºŽæ ‡è®°çš„æœºåˆ¶æ¥åˆ›å¾å’Œè®¾¾|®é™åˆ¶äº†ä½œç”¨åŸŸçš„变量。清å?9 中显½CÞZº†è¯¥æ“ä½œçš„语法åQŒå…¶ä¸?var 属性指定了限制了作用域的变量的名称åQ?scope 属性表明了该变量驻留在哪个作用域中åQ?value 属性指定了分配¾l™è¯¥å˜é‡çš„倹{€‚如果指定变量已¾lå­˜åœ¨ï¼Œåˆ™ç®€å•地ž®†æ‰€æŒ‡æ˜Žçš„倯Dµ‹¾l™å®ƒã€‚如果不存在åQŒåˆ™åˆ›å¾æ–°çš„限制了作用域的变量,òq¶ç”¨è¯¥å€¼åˆå§‹åŒ–˜q™ä¸ªå˜é‡ã€? 清单 9. 操作的语æ³? scope 属性是可选的åQŒå…¶¾~ºçœå€¼æ˜¯ page ã€? 清单 10 中显½CÞZº† 的两个示例。在½W¬ä¸€ä¸ªç¤ºä¾‹ä¸­åQŒå°†ä¼šè¯ä½œç”¨åŸŸå˜é‡è®¾¾|®æˆ String 倹{€‚在½W¬äºŒä¸ªç¤ºä¾‹ä¸­åQŒç”¨è¡¨è¾¾å¼æ¥è®„¡½®æ•°å€û|¼šž®†é¡µé¢ä½œç”¨åŸŸå†…名ä¸?square 的变量赋å€égØ“åäØ“ x 的请求参数的值的òqÏx–¹ã€? 清单 10. 操作½CÞZ¾‹ 您还可以ž®†é™åˆ¶äº†ä½œç”¨åŸŸçš„å˜é‡çš„å€¼æŒ‡å®šäØ“ 操作的主体内容,而不是ä‹É用属性。ä‹É用这¿Uæ–¹æ³•,您可以重新编写清å?10 中的½W¬ä¸€ä¸ªç¤ºä¾‹ï¼Œå¦‚清å?11 所½Cºã€‚此外,正如我们马上可以看到的, 标记的主体内å®ÒŽœ¬íw«ä¹Ÿå¯ä»¥ä½¿ç”¨å®šåˆ¶æ ‡è®°ã€? ä¸ÖM½“内生成的所有内定wƒ½ž®†ä½œä¸ÞZ¸€ä¸?String 倯Dµ‹¾l™æŒ‡å®šå˜é‡ã€? 清单 11. 通过ä¸ÖM½“内容指定 操作的å€? CST JSTL core 库包含第二个用于½Ž¡ç†é™åˆ¶äº†ä½œç”¨åŸŸçš„变量的标记 â€? 。顾名思义åQ? 操作是用来删除限制了作用域的变量的,它获取两个属性ã€?var 属性指定待删除变量的名¿UŽÍ¼Œ scope 属性是可选的åQŒå®ƒè¡¨ç¤ºå¾…删除变量来自哪个作用域åQŒç¼ºçœäØ“ page åQŒå¦‚清单 12 所½Cºã€? 清单 12. 操作½CÞZ¾‹ 回页é¦? 输出 ž®½ç®¡ 操作允许ž®†è¡¨è¾‘Ö¼¾l“果赋给限制了作用域的变量,但开发äh员通常会希望只昄¡¤ºè¡¨è¾¾å¼çš„å€û|¼Œè€Œä¸å­˜å‚¨å®ƒã€‚JSTL 定制标记承担˜q™ä¸€ä»ÕdŠ¡åQŒå…¶è¯­æ³•如清å?13 所½Cºã€‚该标记对由å…?value 属性指定的表达式进行求å€û|¼Œç„¶åŽæ‰“印¾l“果。如果指定了可选属æ€?default åQŒé‚£ä¹ˆï¼Œåœ¨å¯¹ value å±žæ€§çš„è¡¨è¾¾å¼æ±‚å€¼æ‰€å¾—ç»“æžœäØ“ null 或空 String 的情况下åQ? ž®†æ‰“印其倹{€? 清单 13. 操作的语æ³? escapeXml 属性也是可选的。它控制当用 标记输出诸如“<”ã€?#8220;>”å’?#8220;&”之类的字½W¦ï¼ˆåœ?HTML å’?XML 中具有特ŒDŠæ„ä¹‰ï¼‰æ—¶æ˜¯å¦åº”该进行è{义。如果将 escapeXml 讄¡½®ä¸?trueåQŒåˆ™ä¼šè‡ªåЍ将˜q™äº›å­—符转换成相应的 XML 实体åQˆæ­¤å¤„提到的字符分别转换æˆ?< ã€?> å’?& åQ‰ã€? 例如åQŒå‡å®šæœ‰ä¸€ä¸ªåä¸?user 的会话作用域变量åQŒå®ƒæ˜¯ä¸€ä¸ªç±»çš„实例,该类为用户定义了两个ç‰ÒŽ€§ï¼š username å’?company 。每当用戯‚®¿é—®ç«™ç‚ÒŽ—¶åQŒè¿™ä¸ªå¯¹è±¡è¢«è‡ªåŠ¨åˆ†é…¾l™ä¼šè¯ï¼Œä½†ç›´åˆ°ç”¨æˆ·å®žé™…登录后åQŒæ‰ä¼šè®¾¾|®è¿™ä¸¤ä¸ªç‰ÒŽ€§ã€‚假定是˜q™ç§æ–ÒŽ¡ˆåQŒè¯·è€ƒè™‘清单 14 中的 JSP 片段。在用户ç™Õd½•之后åQŒè¿™ä¸ªç‰‡ŒDµå°†æ˜„¡¤ºå•词“Hello”åQŒå…¶åŽæ˜¯ä»–/她的用户名和一个惊叹号。但是,在用æˆïL™»å½•之前,ç”Þp¿™ä¸ªç‰‡ŒD는Ÿæˆçš„内容则是短语“Hello Guest!”。在˜q™ç§æƒ…å†µä¸‹ï¼Œå› äØ“ username ç‰ÒŽ€§è¿˜æœ‰å¾…初始化,所ä»? 标记ž®†è{而打印出 default 属性的å€û|¼ˆå›_­—½W¦ä¸²“Guest”åQ‰ã€? 清单 14. 带缺省内容的 操作½CÞZ¾‹ Hello ! 接下来,考虑清单 15åQŒå®ƒä½¿ç”¨äº? 标记çš?escapeXml 属性。如果在˜q™ç§æƒ…况下已¾lå°† company ç‰ÒŽ€§è®¾¾|®æˆ Java String å€?"Flynn & Sons" åQŒé‚£ä¹ˆï¼Œå®žé™…上该操作生成的内容将æ˜?Flynn & Sons 。如果这个操作是生成 HTML æˆ?XML 内容çš?JSP ™åµé¢çš„一部分åQŒé‚£ä¹ˆï¼Œ˜q™ä¸ªå­—符串中间的“&”½W¦å·æœ€¾lˆå¯èƒ½è¢«è§£é‡Šä¸?HTML æˆ?XML 控制字符åQŒä»Žè€Œå¦¨¼„äº†å¯¹è¯¥å†…容的显½Cºæˆ–解析。但是,如果ž®?escapeXml å±žæ€§å€ÆD®¾¾|®æˆ true åQŒåˆ™æ‰€ç”Ÿæˆçš„内容将æ˜?Flynn & Sons 。浏览器或解析器不会因在解释旉™‡åˆ°è¿™¿Uå†…容而出问题。假å®?HTML å’?XML æ˜?JSP 应用½E‹åºä¸­æœ€å¸¸è§çš„内容类型,所ä»?escapeXml 属性的¾~ºçœå€¼æ˜¯ true ž®×ƒ¸­‘³äؓ奇了ã€? 清单 15. ¼›ç”¨è½¬ä¹‰çš? 操作½CÞZ¾‹ 回页é¦? ç”¨ç¼ºçœå€ÆD®¾¾|®å˜é‡? 除了½Ž€åŒ–动态数据的昄¡¤ºä¹‹å¤–åQŒå½“通过 讄¡½®å˜é‡å€¼æ—¶åQ? 指定¾~ºçœå€¼çš„能力也很有用。正å¦?清单 11 所½Cºï¼Œç”¨æ¥èµ‹ç»™é™åˆ¶äº†ä½œç”¨åŸŸçš„å˜é‡çš„å€¼å¯ä»¥æŒ‡å®šäØ“ 标记的主体内容,也可以通过其值属性来指定。通过ž®? 操作嵌套åœ? 标记的主体内容中åQŒå˜é‡èµ‹å€¼å°±å¯ä»¥åˆ©ç”¨å…¶ç¼ºçœå€ÆDƒ½åŠ›ã€? 清单 16 中说明了˜q™ç§æ–ÒŽ³•。外éƒ? 标记的行为非常简单:它根据其ä¸ÖM½“内容讄¡½®ä¼šè¯ä½œç”¨åŸ?timezone 变量的倹{€‚但是,在这¿Uæƒ…况下åQŒä¸»ä½“内å®ÒŽ˜¯é€šè¿‡ 操作生成的。这个嵌套操作的值属性是表达å¼?${cookie['tzPref'].value} åQŒå®ƒž®è¯•通过 cookie 隐式对象˜q”å›žåäØ“ tzPref çš?cookie 倹{€‚( cookie 隐式对象ž®?cookie 名称映射到相应的 Cookie 实例åQŒè¿™æ„å‘³ç€å¿…须通过对象çš?value ç‰ÒŽ€§ä‹É用点˜qç®—½W¦æ¥‹‚€ç´¢å‚¨å­˜åœ¨ cookie 中的实际数据。) 清单 16. åˆåÆˆ å’? 以提供缺省变量å€? 但是åQŒè¯·è€ƒè™‘以下情况åQŒç”¨æˆäh˜¯½W¬ä¸€‹Æ¡å°è¯•ä‹É用这ŒDµä»£ç çš„ Web 应用½E‹åºã€‚结果是åQŒè¯·æ±‚ä¸­æ²¡æœ‰æä¾›åäØ“ tzPref çš?cookie。这意味着使用隐式对象的查扑ְ†˜q”回 null åQŒåœ¨˜q™ç§æƒ…况下整个表辑ּž®†è¿”å›?null 。因为对 标记çš?value 属性求值的¾l“æžœæ˜?null åQŒæ‰€ä»? 标记会è{而输出对å…?default 属性求值的¾l“果。在˜q™é‡Œæ˜¯å­—½W¦ä¸² CST 。因此,实际的结果是ž®?timezone 限制了作用域的变量设¾|®æˆç”¨æˆ·çš?tzPref cookie 中存储的时区åQŒæˆ–者,如果没有åQŒåˆ™ä½¿ç”¨¾~ºçœæ—¶åŒº CST ã€? EL å’?JSP 2.0 目前åQŒè¡¨è¾‘Ö¼è¯­è¨€ä»…可用于指定 JSTL 定制标记中的动态属性倹{€‚但 JSTL 1.0 表达式语­a€çš„一个扩展已¾lè¢«æå‡ºåQŒä¼šæŠŠå®ƒåŒ…括åˆ?JSP 2.0 中去åQŒçœ¼ä¸‹æ­£åœ¨è¿›è¡Œæœ€åŽè¯„审。这个扩展将允许开发äh员通过自己的定制标记来使用 ELã€‚é¡µé¢ä½œè€…å°†å¯ä»¥åœ¨ç›®å‰å…è®æ€‹Éç”?JSP 表达式的ä»ÖM½•地方使用 EL 表达式,譬如ž®†åŠ¨æ€å€¼æ’å…¥æ¨¡æ¿æ–‡æœ¬ä¸­åQ?

Your preferred time zone is ${timezone}

ã€? ˜q™ä¸ª JSP 2.0 功能åQˆå°±è±?JSTL 本èínä¸€æ øP¼‰ž®†æ”¯æŒé¡µé¢ä½œè€…进一步减ž®‘对 JSP ¾~–制脚本元素的依赖,从而改˜q?JSP 应用½E‹åºçš„可¾l´æŠ¤æ€§ã€? 回页é¦? ¾l“束è¯? ELåQˆä¸Žå››ä¸ª JSTL 定制标记库提供的操作¾l“合èµäh¥åQ‰å…è®”R¡µé¢ä½œè€…不使用脚本元素卛_¯å®žçŽ°è¡¨ç¤ºå±‚é€»è¾‘ã€‚ä¾‹å¦‚ï¼Œå¯Òޝ”本文开å¤?清单 1 中的 JSP 代码和清å?17 中显½Cºçš„通过 JSTL 实现的同样功能。(JSTL core 库中其余的标讎ͼŒåŒ…括 及其子标讎ͼŒž®†åœ¨æœ¬ç³»åˆ—的下一½‹‡æ–‡ç« ä¸­è®¨è®ºã€‚)ž®½ç®¡æ˜„¡„¶æ‰§è¡Œäº†æ¡ä»‰™€»è¾‘åQŒä½†æ˜?JSTL 版本中没æœ?Java 语言源代码,òq¶ä¸”标记之间的关¾p»ï¼ˆž®¤å…¶æ˜¯å…³äºŽåµŒå¥—需求)对于ä»ÖM½•¾_ùN€?HTML 语法的äh都应该是熟悉的ã€? 清单 17. åˆåÆˆ å’? 以提供缺省变量å€?

Welcome, member!

Welcome, guest!

通过提供大多æ•?Web 应用½E‹åºå¸¸ç”¨åŠŸèƒ½çš„æ ‡å‡†å®žçŽŽÍ¼ŒJSTL 有助于加速开发周期。与 EL ¾l“合èµäh¥åQŒJSTL 可以不需要对表示层程序编写代码,˜q™æžå¤§åœ°½Ž€åŒ–了 JSP 应用½E‹åºçš„维护ã€? 参考资æ–? 您可以参阅本文在 developerWorks 全球站点上的 英文原文. Sun çš?JSP 标准标记库主™å‰|˜¯äº†è§£å…³äºŽ JSTL 的更多信息的良好èµïL‚¹ã€? JSTL 1.0 规范是关äº?EL 和四ä¸?JSTL 标记库的最¾lˆæƒå¨æ–‡æœ¬ã€? Jakarta Taglibs™å¹ç›®æ˜?JSTL 1.0 参考实现的èµähºã€? Shawn Bayern 所著的 JSTL in Action åQˆManning Publications Co.åQ?002 òqß_¼‰æä¾›äº†å¯¹æ‰€æœ?JSTL 功能的精彩论˜qŽÍ¼Œä½œè€…是该参考实现的领导ã€? David Geary æ˜?Java 技术方面很受欢˜qŽçš„作者,他也写了一本关äº?JSTL 的书åQŒä¹¦åæ˜¯ Core JSTL ã€? JSPTags.comæ˜?JSP 技术参考资料的目录åQŒå®ƒž®¤å…¶ä¸“注于定制标记库ã€? Sun çš?Java Web Services Tutorial中包含了å¯?JSTL 的讨论ã€? “ Using JSPs and custom tags within VisualAge for Java and WebSphere Studio”åQ?WebSphere 开发者园圎ͼ‰æ˜¯ä¸€½‹?WBOnline 实用论文åQŒå®ƒæ¼”示äº?servlet、JSP 和定制标记库的ä‹É用ã€? 通过 Jeff Wilson ¾_‘Ö½©çš„æ–‡ç«?#8220; 使用定制标记控制 JSP ™åµé¢”åQ?developerWorksåQ?002 òq?1 月)了解关于定制标记库的一切ã€? Noel Bergman 的文ç«?#8220; JSP 标记库:着意设计的更好的可用æ€?#8221;åQ?developerWorksåQ?001 òq?12 月)向您展示了声明性标记是如何帮助提高 JSP ™åµé¢çš„可用性的ã€? 有关 EcmaScript 的更多详¾l†ä¿¡æ¯ï¼Œè¯·å‚é˜?Sing Li çš?#8220; 快速上æ‰?Java ¾~–程”åQ?developerWorksåQ?001 òq?7 月)ã€? åœ?developerWorksJava 技术专åŒ?可以扑ֈ°å¤šè¾¾æ•°ç™¾½‹‡çš„ Java 技术参考资料ã€? 关于作è€? Mark Kolb 是一名在德克萨斯州奥斯汀工作的èÊYä»¶å·¥½E‹å¸ˆã€‚ä»–¾lå¸¸ž®±æœåС噍ç«?Java 主题在业界发表演è®ÔŒ¼Œòq¶ä¸”与äh合著äº?Web Development with JavaServer PagesåQŒç¬¬äºŒç‰ˆ 一书。可通过 mak@taglib.comä¸?Mark 联系ã€?

]]>
O’Reilly总裁提姆-奥莱理:什么是Web 2.0http://www.aygfsteel.com/yiqi801218/archive/2008/03/05/183878.htmlBlueSunshineBlueSunshineWed, 05 Mar 2008 02:50:00 GMThttp://www.aygfsteel.com/yiqi801218/archive/2008/03/05/183878.htmlhttp://www.aygfsteel.com/yiqi801218/comments/183878.htmlhttp://www.aygfsteel.com/yiqi801218/archive/2008/03/05/183878.html#Feedback0http://www.aygfsteel.com/yiqi801218/comments/commentRss/183878.htmlhttp://www.aygfsteel.com/yiqi801218/services/trackbacks/183878.html 

O’Reilly总裁提姆-奥莱理:什么是Web 2.0

译者序åQšWeb 2.0˜q™ä¸€æ¦‚念åQŒç”±O’Reilly媒体公司总裁兼CEO提姆·å¥¥èŽ±ç†æå‡ºã€‚ä»–æ˜¯ç¾Žå›½IT业界公认的传奇式人物åQŒæ˜¯”开放源ç ?#8221;概念的缔造者,一直倡导开放标准,òq¶æ´»è·ƒåœ¨å¼€æ”¾æºç è¿åŠ¨çš„æœ€å‰æ²¿ã€?/p>

˜q™ç¯‡ç”±æå§?#183;奥莱理亲自执½W”、创作于上个月由他主办的Web 2.0会议前夕的文章,一¾lå‘出就引发了热烈的讨论åQŒè¢«è§†äØ“Web 2.0˜q„ä»Šä¸ºæ­¢çš„ç»å…æ€¹‹ä½œã€?/p>

Web2.0的一个关键原则是用户­‘Šå¤šåQŒæœåŠ¡è¶Šå¥?/strong>

作者|提姆·å¥¥èޱç?Tim O’Reilly) ¾˜»è¯‘作者|玄伟å‰?/p>

2001òq´ç§‹å¤©äº’联网公司åQˆdot-com)泡沫的破灭标志着互联¾|‘的一个è{折点。许多äh断定互联¾|‘被˜q‡åˆ†ç‚’作åQŒäº‹å®žä¸Š¾|‘络泡沫和相¾l§è€Œæ¥çš„股市大衰退看è“v来像是所有技术革命的共同特征。股市大衰退通常标志着蒸蒸日上的技术已¾lå¼€å§‹å é¢†ä¸­å¤®èˆžå°ã€‚假冒者被驱逐,而真正成功的故事展示了它们的力量åQŒåŒæ—¶äh们开始理解了是什么将一个故事同另外一个区分开来ã€?/p>

“Web 2.0″的概念开始于一个会议中åQŒå±•开于O’Reilly公司和MediaLive国际公司之间的头脑风暴部分。所谓互联网先驱和O’Reilly公司副总裁的戴ž®?#183;多尔è’?Dale Dougherty)注意刎ͼŒåŒæ‰€è°“çš„”崩溃”˜q¥ç„¶ä¸åŒåQŒäº’联网比其他ä“Q何时候都更重要,令äh‹È€åŠ¨çš„æ–°åº”ç”¨ç¨‹åºå’Œ¾|‘站正在以ä×o人惊讶的规律性涌现出来。更重要的是åQŒé‚£äº›å¹¸å…äºŽå½“初¾|‘络泡沫的公司,看è“v来有一些共同之处。那么会不会是互联网公司那场泡沫的破灭标志了互联¾|‘的一¿Uè{折,以至于呼å?#8221;Web 2.0″的行动有了意义?我们都认同这¿Uè§‚点,Web 2.0会议由此诞生ã€?/p>

在那个会议之后的一òq´åŠçš„æ—¶é—´é‡ŒåQ?#8221;Web 2.0″一词已¾læ·±å…¥äh心,从Google上可以搜索到950万以上的链接。但是,至今关于Web 2.0的含义仍存在极大的分歧,一些ähž®†Web 2.0贬低为毫无疑义的一个行销炒作口号åQŒè€Œå…¶ä»–一些ähåˆ™å°†ä¹‹ç†è§£äØ“ä¸€¿Uæ–°çš„ä¼ ¾lŸç†å¿üc€?/p>

本文ž®±æ˜¯æ¥å°è¯•澄清Web 2.0本来意义ã€?/p>

在我们当初的头脑风暴中,我们已经用一些例子,公式化地表达了我们对Web 2.0的理�/p>
Web 1.0 Web 2.0
DoubleClick Google AdSense
Ofoto Flickr
Akamai BitTorrent
mp3.com Napster
大英癄¡§‘全书在线åQˆBritannica OnlineåQ?/td> ¾l´åŸºç™„¡§‘全书åQˆWikipediaåQ?/td>
个äh¾|‘ç«™ 博客(blogging)
evite upcoming.orgå’ŒEVDB
域名投机 搜烦引擎优化
™åµé¢‹¹è§ˆæ•?/td> 每次点击成本
屏幕抓取åQˆscreen scrapingåQ?/td> ¾|‘络服务åQˆweb servicesåQ?/td>
发布 参与
内容½Ž¡ç†¾pȝ»Ÿ ¾l´åŸº
目录åQˆåˆ†¾c? 标签åQ?#8221;分众分类”åQŒfolksonomyåQ?/td>
¾_˜æ€?/td> 聚合

˜q™ä¸ªåˆ—表˜q˜ä¼šä¸æ–­¾l§ç®‹ä¸‹åŽ»ã€‚ä½†æ˜¯åˆ°åº•æ˜¯ä»€ä¹ˆï¼Œä½¿å¾—æˆ‘ä»¬è®¤å®šä¸€ä¸ªåº”ç”¨ç¨‹åºæˆ–ä¸€¿Uæ–¹å¼äؓ作所è°?#8221;Web 1.0″åQŒè€ŒæŠŠå¦å¤–一个叫å?#8221;Web 2.0″呢?åQˆè¿™ä¸ªé—®é¢˜å°¤ä¸ºç´§˜q«ï¼Œå› äØ“Web 2.0的观念已¾lä¼ æ’­çš„如此òq¿æ³›åQŒä»¥è‡³äºŽå¾ˆå¤šå…¬å¸æ­£åœ¨ž®†è¿™ä¸ªè¯åŠ åˆ°ä»–ä»¬çš„è¡Œé”€ç‚’ä½œä¸­ï¼Œä½†å´æ²¡æœ‰çœŸæ­£ç†è§£å…¶å«ä¹‰ã€‚åŒæ—¶è¿™ä¸ªé—®é¢˜ä¹Ÿž®¤äؓ困难åQŒå› ä¸ø™®¸å¤šå—œå¥½å£åïLš„创业公司昄¡„¶ä¸æ˜¯Web 2.0åQŒè€Œä¸€äº›æˆ‘们认为是Web 2.0的应用程序,例如Napsterå’ŒBitTorrentåQŒç”šè‡³ä¸æ˜¯çœŸæ­£é€‚当的网¾lœç¨‹åºï¼åQ‰æˆ‘们首先来探讨一些原则,˜q™äº›åŽŸåˆ™æ˜¯é€šè¿‡Web 1.0的一些成功案例,以及一些最为有­‘£çš„æ–°åž‹åº”用½E‹åºæ¥ä½“现的ã€?/p>

1. 互联¾|‘作为åã^å?/strong>

æ­£å¦‚è®¸å¤šé‡è¦çš„ç†å¿µä¸€æ øP¼ŒWeb 2.0没有一个明¼‹®çš„界限åQŒè€Œæ˜¯ä¸€ä¸ªé‡åŠ›æ ¸å¿ƒã€‚ä¸å¦¨å°†Web 2.0视作一¾l„原则和实践åQŒç”±æ­¤æ¥æŠŠè·¼›ÀL ¸å¿ƒæˆ–˜qœæˆ–˜q‘çš„¾|‘ç«™¾l„成ä¸ÞZ¸€ä¸ªç±»ä¼¼å¤ªé˜³ç³»çš„网¾lœç³»¾lŸï¼Œ˜q™äº›¾|‘站或多或少åœîC½“现着Web 2.0的原则ã€?/p>

å›?为Web 2.0çš?#8221;模拟å›?#8221;åQŒè¯¥å›¾æ˜¯åœ¨åä¸?#8221;O’Reilly的朋å?#8221;åQˆFriend Of O’Reilly, FOOåQ‰çš„会议的一个研讨会上äñ”生的。这个图基本上仍处于演化阶段åQŒä½†å·²ç»æç»˜å‡ÞZº† 从Web 2.0核心理念中衍生出的许多概å¿üc€?/p>

例如åQŒåœ¨2004òq?0月的½W¬ä¸€‹Æ¡Web 2.0的会议上åQŒçº¦¾˜?#183;巴特利(John BattelleåQ‰å’Œæˆ‘在我们各自的开场白中列举了一¾l„初步的原则ã€?/p>

˜q™äº›åŽŸåˆ™ä¸­çš„½W¬ä¸€æ¡å°±æ˜?#8221;互联¾|‘作为åã^å?#8221;。这也曾是Web 1.0的宠儿网景公司(Netscape)çš„æˆ˜æ–—å£åøP¼Œè€Œç½‘景在同微软的大战中陨落了。此外,我们早先的Web 1.0的楷模中的两个,DoubleClickå’ŒAkamai公司åQŒçš†æ˜¯å°†¾|‘络当作òq›_°çš„先驱。ähä»¬å¾€å¾€ä¸è®¤ä¸ø™¿™æ˜¯ä¸€¿Uç½‘¾lœæœåŠ¡ï¼Œä½†äº‹å®žä¸ŠåQŒå¹¿å‘ŠæœåŠ¡æ˜¯½W¬ä¸€ä¸ªè¢«òq¿æ³›åº”用的网¾lœæœåŠ¡ï¼ŒåŒæ—¶ä¹Ÿæ˜¯½W¬ä¸€ä¸ªè¢«òq¿æ³›åº”ç”¨çš„æØœåˆå¤„ç†ï¼ˆmashupåQ‰ï¼Œå¦‚果用另一个近来流行的词来说的话。每个旗帜广告(banner ad)都是用来在两个网站之前无¾~åˆä½œï¼Œå‘位于另外一台计½Ž—机上的读者传递一个整合好的页面ã€?/p>

Akamai也将¾|‘络看作òq›_°åQŒåƈ且在一个更深入的层‹Æ¡ä¸ŠåQŒæ¥æ­å¾ä¸€ä¸ªé€æ˜Žçš„缓存和内容分发¾|‘络åQŒä»¥ä¾‰K™ä½Žå®½å¸¦çš„æ‹¥å¡ž½E‹åº¦ã€?/p>

虽然如此åQŒè¿™äº›å…ˆé©±æä¾›äº†æœ‰ç›Šçš„å¯¹æ¯”ï¼Œå› äØ“åŽæ¥è€…é‡åˆ°åŒæ ·é—®é¢˜çš„æ—¶å€™ï¼Œå¯ä»¥ž®†å…ˆé©×ƒ»¬çš„è§£å†Ïx–¹æ¡ˆè¿›ä¸€æ­¥åšg伸,从而对新åã^台本质的理解也更为深åˆÖMº†ã€?DoubleClickå’ŒAkamai都是Web 2.0的先驱,同时我们也可以看刎ͼŒå¯ä»¥é€šè¿‡å¼•入更多Web 2.0的设计模式,来实现更多的应用ã€?/p>

让我们对˜q™ä¸‰ä¸ªæ¡ˆä¾‹ä¸­çš„æ¯ä¸€ä¸ªéƒ½ä½œä¸€ç•ªæ·±½IÓž¼Œæ¥æŽ¢è®¨å…¶é—´çš„一些本质性的差别ã€?/p>

Netscape �Google

如果Netscape可以¿UîCØ“Web 1.0的旗手,那么Google几乎可以肯定是Web 2.0的旗手,只要看看他们的首‹Æ¡å…¬å¼€ä¸Šå¸‚åQˆIPO)是如何地揭示了各自的时代ž®±æ¸…楚了。所以我们就从这两个公司和其定位的差别入手ã€?/p>

Netscape以传¾lŸçš„软äšgæ‘ÒŽœ¬æ¥å‹¾å‹’其所è°?#8221;互联¾|‘作为åã^å?#8221;åQšä»–们的旗舰产品是互联网‹¹è§ˆå™¨ï¼Œä¸€ä¸ªæ¡Œé¢åº”用程序。同æ—Óž¼Œä»–们的战略是利用他们在浏览器市场的统æ²Õdœ°ä½ï¼Œæ¥äؓ其昂è´ëŠš„服务器äñ”品徏立è“v市场。从理论上讲åQŒåœ¨‹¹è§ˆå™¨ä¸­æŽ§åˆ¶æ˜„¡¤ºå†…容和程序的标准åQŒèµ‹äºˆäº†Netscape一¿Uå¸‚场支配力åQŒå¦‚同微软公司在个äh计算机市åœÞZ¸Šæ‰€äº«å—的一栗÷€‚很像当åˆ?#8221;自行的马è½?#8221;åQˆhorseless carriageåQ‰å°†æ±½èžR描绘ä¸ÞZ¸€¿Uç†ŸçŸ¥äº‹ç‰©çš„å»¶äŽ×åQŒNetscape曾推销一¿Uç½‘¾lœæ¡Œé¢ï¼ˆwebtopåQ‰æ¥æ›¿ä»£ä¼ ç»Ÿçš„æ¡Œé¢ï¼ˆdesktopåQ‰ï¼Œòq¶ä¸”计划借助信息更新åQŒä»¥åŠç”±è´­ä¹°äº†Netscape服务器的信息提供者来推送的各种ž®ç¨‹åºï¼Œæ¥å¼€å‘推òq¿è¿™¿Uç½‘¾lœæ¡Œé¢ã€?/p>

最¾lˆï¼Œ‹¹è§ˆå™¨å’Œ¾|‘络服务器都变成äº?#8221;日用å“?#8221;åQŒåŒæ—¶ä­h值链条也向上¿UÕdЍåˆîCº†åœ¨äº’联网òq›_°ä¸Šä¼ é€’的服务ã€?/p>

ä½œäØ“å¯Òޝ”åQŒGoogle则以天生的网¾lœåº”用程序的角色问世åQŒå®ƒä»Žä¸å‡ºå”®æˆ–者打包其½E‹åºåQŒè€Œæ˜¯ä»¥æœåŠ¡çš„æ–¹å¼æ¥ä¼ é€’ã€‚å®¢æˆ·ä»¬ç›´æŽ¥æˆ–é—´æŽ¥åœ°ä¸ºå…¶æ‰€ä½¿ç”¨çš„æœåŠ¡å‘ Google付费。原有èÊY件工业缺陯‚¡ç„¶æ— å­˜ã€‚没有了定期的èÊY件发布,只需要持¾l­çš„æ”¹å–„。没有了许可证或销售,只需要ä‹É用。没有了ä¸ÞZº†è®©ç”¨æˆ·åœ¨å…¶è®¾å¤‡ä¸Š˜qè¡Œè½¯äšg而不得不˜q›è¡Œçš„åã^台迁¿U»ï¼Œåªéœ€è¦æ­å»ºå®å¤§çš„、由众多个äh计算机组成的、可伸羃的网¾lœï¼Œå…¶ä¸Š˜qè¡Œå¼€æºæ“ä½œç³»¾lŸï¼ŒåŠå…¶åŠè‡ªè¡Œç ”制的应用½E‹åºå’Œå·¥å…øP¼Œè€Œå…¬åæ€¹‹å¤–çš„ä»ÖM½•人则永远无法接触到这些东è¥Ñ€?/p>

在其底层åQŒGoogle需要一¿UNetscape从未需要过的能力:数据库管理。Google˜qœè¿œä¸åªæ˜¯ä¸€ä¸ªèÊYä»¶å·¥å…ïLš„集合åQŒå®ƒæ˜¯ä¸€ä¸ªä¸“业化的数据库。没有这些数据,那些工具ž®†æ¯«æ— ç”¨æ­¦ä¹‹åœŽÍ¼›æ²¡æœ‰˜q™äº›è½¯äšgåQŒæ•°æ®ä¹Ÿž®†æ— å¯æŽ§åˆ¶ã€‚èÊY件许可证制度和对应用½E‹åºæŽ¥å£åQˆAPIåQ‰çš„æŽ§åˆ¶–上一个时代的法宝–å·²ç»æ¯«ä¸ç›¸å…³äº†ï¼Œå› äØ“Googleçš„èÊY件只需要执行而从不需要分发,也因为如果不具备攉™›†å’Œç®¡ç†æ•°æ®çš„能力åQŒèÊY件本íw«å°±æ²¡æœ‰ä»€ä¹ˆç”¨å¤„了。事实上åQŒèÊY件的价值是同它所协助½Ž¡ç†çš„æ•°æ®çš„规模和活性成正比的ã€?/p>

Google的服务不是一个简单的服务器,虽然其服务是通过大规模的互联¾|‘服务器集合来传递的åQ›å…¶æœåŠ¡ä¹Ÿä¸æ˜¯ä¸€ä¸ªæµè§ˆå™¨åQŒè™½ç„¶è¿™¿UæœåŠ¡æ˜¯è¢«ç”¨æˆ·åœ¨‹¹è§ˆå™¨ä¸­ä½“验到的。Google的旗èˆîCñ”å“?#8211;搜烦服务åQŒç”šè‡³ä¸æ‰˜ç®¡å®ƒè®©ç”¨æˆ·æ¥æœå¯Èš„内容。很像一个电话通话˜q‡ç¨‹åQŒä¸ä»…发生在通话的两端,而且发生在中间的¾|‘络上。作为用户和其在¾U¿ä½“验的一个中介,Google作用于浏览器、搜索引擎和最¾lˆçš„内容服务器之间的½Iºé—´ä¸­ã€?/p>

虽然 Netscapeå’ŒGoogleéƒ½å¯ä»¥è¢«æè¿°ä¸ø™ÊY件公司,但显然Netscape可以归到LotusåQŒMicrosoftåQŒOracleåQŒSAPåQŒä»¥åŠå…¶ä»–发源于上个世纪八十òq´ä»£è½¯äšg革命的那些公司所¾l„成的èÊY件世界。而Google的同伴们åQŒåˆ™æ˜¯åƒeBayåQŒAmazonåQŒNapsteråQŒåŠè‡?DoubleClickå’ŒAkamai˜q™æ ·çš„互联网公司ã€?/p>

DoubleClick对Overture和AdSense

同Google¾cÖM¼¼åQŒDoubleClick是一个名副其实的互联¾|‘时代的孩子。它把èÊY件作ä¸ÞZ¸€¿UæœåŠ¡ï¼Œåœ¨æ•°æ®ç®¡ç†æ–¹é¢å…·æœ‰æ ¸å¿ƒç«žäº‰åŠ›åQŒåƈ且正如上文所˜qŽÍ¼Œå®ƒæ˜¯ä¸€ä¸ªæ—©åœ¨è¿ž¾|‘络服务的名字还不曾有的时候,ž®±å·²ç„¶å¼€å§‹å…¶æœåŠ¡çš„å…ˆé©±ã€‚ç„¶è€Œï¼ŒDoubleClick最¾lˆè¿˜æ˜¯è¢«å…¶å•†ä¸šæ¨¡å¼å±€é™ä½äº†ã€‚它所贯彻的是九十òq´ä»£çš„互联网观念。这¿Uè§‚念围¾l•着出版åQŒè€Œä¸æ˜¯å‚与;围绕着òq¿å‘Šå®¢æˆ·åQŒè€Œä¸æ˜¯æ¶ˆè´¹è€…,来进行操¾Uµï¼›å›´ç»•着规模åQŒè®¤ä¸ÞZº’联网会被如MediaMetrix ½{‰ç½‘¾lœå¹¿å‘Šè¯„‹¹‹å…¬å¸å°ºåº¦ä¸‹çš„æ‰€è°“é¡¶¾U§ç½‘站所¾lŸæ²»ã€?/p>

¾l“果是,DoubleClick得意地在其网站上引用道:”­‘…过2000¿Uçš„æˆåŠŸåº”ç”¨”。而相å¯Òޝ”的是åQŒYahoo!公司的搜索市场(从前的OvertureåQ‰å’ŒGoogleçš„AdSense产品åQŒå·²¾låœ¨ä¸ºå‡ åä¸‡çš„广告客æˆähœåŠ¡ã€?/p>

Overtureå’ŒGoogle的成功源自于对克里斯·å®‰å¯d‹‚®ï¼ˆChris AndersonåQ‰æåˆ°çš„æ‰€è°?#8221;é•¿å°¾”的领悟,即众多小¾|‘站集体的力量提供了互联¾|‘的大多数内宏V€‚DoubleClickçš„äñ”品要求一¿Uç­¾è®¢æ­£å¼çš„销售合同,òq¶å°†å…¶å¸‚场局限于很少的几千个大型¾|‘站。Overtureå’ŒGoogle则领会到如何ž®†å¹¿å‘Šæ”¾¾|®åˆ°å‡ ä¹Žæ‰€æœ‰ç½‘™åµä¸Šã€‚æ›´˜q›ä¸€æ­¥åœ°åQŒå®ƒä»¬å›žé¿äº†å‘行商和òq¿å‘Šä»£ç†ä»¬æ‰€å–œçˆ±çš„广告åŞ式,例如旗帜òq¿å‘Šå’Œå¼¹å‡ºå¼òq¿å‘ŠåQŒè€Œé‡‡ç”¨äº†òq²æ‰°æœ€ž®çš„、上下文敏感的、对用户友好的文字广告åŞ式ã€?/p>

Web 2.0的经验是åQšæœ‰æ•ˆåˆ©ç”¨æ¶ˆè´¹è€…çš„è‡ªåŠ©æœåŠ¡å’Œç®—æ³•ä¸Šçš„æ•°æ®ç®¡ç†ï¼Œä»¥ä¾¿èƒ½å¤Ÿž®†è§¦è§’åšg伸至整个互联¾|‘,延äŽ×臛_„个边¾~˜è€Œä¸ä»…仅是中心,延äŽ×至长ž®¾è€Œä¸ä»…仅是头部ã€?/p>

毫不奇怪,其他Web 2.0的成功故事也昄¡¤ºç€åŒæ ·çš„轨˜qV€‚eBay扮演着一个自动的中间媒介的角è‰ÔŒ¼Œä½¿ä¸ªä½“之间发生的几个¾ŸŽå…ƒçš„å¶ç„¶æ€§çš„äº¤æ˜“æˆäØ“å¯èƒ½ã€‚NapsteråQˆè™½ç„¶å·²¾lå‡ºäºŽæ³•律原因而关闭)ž®†å…¶¾|‘ç»œå»ºç«‹åœ¨ä¸€ä¸ªé›†ä¸­çš„æ­Œæ›²æ•°æ®åº“ä¹‹ä¸Šï¼Œä½†æ˜¯å®ƒè®©æ¯ä¸€ä¸ªä¸‹è½½è€…éƒ½æˆäØ“ä¸€å°æœåŠ¡å™¨åQŒä»Žè€Œä‹É其网¾lœé€æ¸æ‰©å¤§ã€?/p>

Akamai �BitTorrent

同DoubleClick¾cÖM¼¼åQŒAkamai的业务重炚w¢å‘网¾lœçš„头部åQŒè€Œä¸æ˜¯å°¾éƒ¨ï¼›é¢å‘中心åQŒè€Œä¸æ˜¯è¾¹¾~˜ã€‚虽然它服务于那些处于网¾lœè¾¹¾~˜çš„个体的利益,ä¸ÞZ»–们访问位于互联网中心的高需求的¾|‘站铺åã^了道路,但它的收入仍然来自从那些位于中心的网站ã€?/p>

BitTorrentåQŒåƒP2Pé£Žæ½®ä¸­çš„å…¶ä»–å€¡å¯¼è€…ä¸€æ øP¼Œé‡‡ç”¨äº†ä¸€¿Uæ¿€˜q›çš„æ–¹å¼æ¥è¾¾åˆîCº’联网åŽÖM¸­å¿ƒåŒ–åQˆinternet decentralizationåQ‰çš„目的。每个客æˆïL«¯åŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªæœåС噍åQ›æ–‡ä»¶è¢«åˆ†å‰²æˆè®¸å¤šç‰‡ŒDµï¼Œä»Žè€Œå¯ä»¥ç”±¾|‘络上的多个地方提供åQŒé€æ˜Žåœ°åˆ©ç”¨äº†¾|‘络的下载者来为其他下载者提供带宽和数据。事实上åQŒæ–‡ä»¶è¶Š‹¹è¡Œä¸‹è²å¾—è¶Šå¿«ï¼Œå› äØ“æœ‰æ›´å¤šçš„ç”¨æˆ·åœ¨äØ“˜q™ä¸ªæ–‡äšg提供带宽和各个片ŒDüc€?/p>

BitTorrent由此昄¡¤ºå‡ºWeb 2.0的一个关键原则:用户­‘Šå¤šåQŒæœåŠ¡è¶Šå¥½ã€‚ä¸€è¾ÒŽ˜¯Akamai必须增加服务器来改善服务åQŒå¦ä¸€è¾ÒŽ˜¯BitTorrent用户ž®†å„自的资源贡献¾l™å¤§å®¶ã€‚可以说åQŒæœ‰ä¸€¿Ué𐿀§çš„”参与体系”内置在合作准则中。在˜q™ç§å‚与体系中,服务主要扮演着一个智能代理的作用åQŒå°†¾|‘络上的各个边缘˜qžæŽ¥èµäh¥åQŒåŒæ—¶å……分利用了用户自èín的力量ã€?/p>

2. 利用集体智慧

在诞生于Web 1.0时代òq¶ä¸”存活了下来,而且要ç‘ô¾l­é¢†å¯¼Web 2.0时代的那些巨人的成功故事的背后,有一个核心原则,ž®±æ˜¯ä»–们借助了网¾lœçš„力量来利用集体智慧:

  • ­‘…çñ”链接是互联网的基¼‹€ã€‚当用户æ·ÕdŠ æ–°çš„å†…å®¹å’Œæ–°çš„ç½‘ç«™çš„æ—¶å€™ï¼Œž®†è¢«é™å®šåœ¨ä¸€¿Uç‰¹å®šçš„¾|‘络¾l“构中,˜q™ç§¾|‘络¾l“构是由其他用户发现内容òq¶å¾ç«‹é“¾æŽ¥çš„。如同大脑中的神¾lçªè§¦ï¼Œéšç€å½¼æ­¤çš„联¾p»é€šè¿‡å¤åˆ¶å’Œå¼ºåŒ–变得越来越强,而作为所有网¾lœç”¨æˆïLš„æ‰€æœ‰æ´»åŠ¨çš„ç›´æŽ¥¾l“æžœåQŒäº’联的¾|‘络ž®†æœ‰æœºåœ°æˆé•¿ã€?
  • Yahoo!是第首例伟大的成功故事,诞生于一个分¾cȝ›®å½•,或者说是链接目录,一个对æ•îC¸‡ç”šè‡³æ•°ç™¾ä¸‡ç½‘¾lœç”¨æˆïLš„æœ€¾_‘Ö½©ä½œå“çš„æ±‡æ€…R€‚虽然后来Yahoo!˜q›å…¥äº†åˆ›å»ÞZº”èŠ±å…«é—¨çš„å†…å®¹çš„ä¸šåŠ¡ï¼Œä½†å…¶ä½œäØ“ä¸€ä¸ªé—¨æˆäh¥æ”‰™›†¾|‘络用户们集体作品的角色åQŒä¾ç„¶æ˜¯å…¶ä­h值核心ã€?
  • Google在搜索方面的½Hç ´åœ¨äºŽPageRank技术,该技术ä×o其迅速成为搜索市åœÞZ¸Šæ¯«æ— äº‰è®®çš„领坯D€…。PageRank是一¿Uåˆ©ç”¨äº†¾|‘络的链接结构,而不是仅仅是使用文档的属性,来实现更好的搜烦效果的方法ã€?
  • – eBayçš„äñ”品是其全部用æˆïLš„集体‹zÕdЍåQŒå°±å‘网¾lœè‡ªíw«ä¸€æ øP¼ŒeBay随着用户的活动而有机地成长åQŒè€Œä¸”该公司的角色是作ä¸ÞZ¸€ä¸ªç‰¹å®šçŽ¯å¢ƒçš„ä¿ƒæˆè€…ï¼Œè€Œç”¨æˆïLš„行动ž®±å‘生在˜q™ç§çŽ¯å¢ƒä¹‹ä¸­ã€‚æ›´é‡è¦çš„æ˜¯åQŒeBay的竞争优势几乎都来自于关键性的大量的买家和卖家双方åQŒè€Œè¿™æ­£æ˜¯˜q™ä¸€ç‚¹ä‹É得后面许多竞争者的产品的吸引力显著减低ã€?
  • Amazon销售同Barnesandnoble.com½{‰ç«žäº‰è€…相同的产品åQŒåŒæ—¶è¿™äº›å…¬åæ€»Žå–方获得的是同样的äñ”品描˜q°ã€å°é¢å›¾ç‰‡å’Œç›®å½•。所不同的是åQŒAmazon已然¾~”造出了一门关于激发用户参与的¿U‘学。Amazon拥有比其竞争者高å‡ÞZ¸€ä¸ªæ•°é‡çñ”以上的用戯‚¯„仸P¼Œä»¥åŠæ›´å¤šçš„é‚€è¯äh¥è®©ç”¨æˆ·ä»¥äº”花八门的方式,在近乎所有的™åµé¢ä¸Šè¿›è¡Œå‚与,而更为重要的是,他们利用用户的活动来产生更好的搜索结果ã€?Barnesandnoble.com的搜索结果很可能指向该公司自å·Þqš„产品åQŒæˆ–者是赞助商的¾l“æžœåQŒè€ŒAmazon则始¾lˆä»¥æ‰€è°?#8221;最‹¹è¡Œçš?#8221;打头åQŒè¿™æ˜¯ä¸€¿Uå®žæ—¶è®¡½Ž—,不仅åŸÞZºŽé”€å”®ï¼Œè€Œä¸”åŸÞZºŽå…¶ä»–一些被Amazon内部人士¿UîCؓ围绕着产品”‹¹åЍ”åQˆflowåQ‰çš„因素。由于拥有高出对手一个数量çñ”的用户参与, Amazon销售额­‘…出竞争å¯Òމ‹ä¹Ÿå°±ä¸èƒö为奇了ã€?

现在åQŒå…·å¤‡äº†˜q™ç§‹zžå¯ŸåŠ›ï¼Œòq¶ä¸”可能会将之åšg伸开来的那些创新型的公司åQŒæ­£åœ¨äº’联网上留下他们的印迹ã€?/p>

¾l´åŸºç™„¡§‘全书åQˆWikipediaåQ‰æ˜¯ä¸€¿Uåœ¨¾U¿ç™¾¿U‘全书,其实现基于一¿Uçœ‹ä¼ég¸å¯èƒ½çš„è§‚å¿üc€‚è¯¥è§‚å¿µè®¤äØ“ä¸€ä¸ªæ¡ç›®å¯ä»¥è¢«ä»ÖM½•互联¾|‘用æˆäh‰€æ·ÕdŠ åQŒåŒæ—¶å¯ä»¥è¢« å…¶ä»–ä»ÖM½•人编辑。无疑,˜q™æ˜¯å¯¹ä¿¡ä»Èš„一¿Uæžç«¯çš„实验åQŒå°†åŸƒé‡Œå…?#183;雯‚’™å¾øP¼ˆEric RaymondåQ‰çš„æ ÆD¨€åQˆæºè‡ªå¼€æ”¾æºç èÊY件的背景之下åQ‰ï¼š”有èƒö够的眼球åQŒæ‰€æœ‰çš„½E‹åº¾~ºé™·éƒ½æ˜¯è‚¤æµ…çš?#8221;åQˆwith enough eyeballs, all bugs are shallowåQ‰è¿ç”¨åˆ°äº†å†…容的创徏之中。维基百¿U‘全书已焉™«˜å±…世界网站百å¼ÞZ¹‹åˆ—,òq¶ä¸”è®¸å¤šäºø™®¤ä¸ºå®ƒä¸ä¹…ž®±å°†ä½åˆ—十强。这在内容创建方面是一¿Uæ·±˜qœçš„变革ã€?/p>

像del.icio.usåQˆç¾Žå‘³ä¹¦½{¾ï¼‰å’ŒFlickr˜q™æ ·çš„网站,其公司已¾låœ¨˜q‘期获得了广泛的å…Ïx³¨åQŒåƈ且已¾låœ¨ä¸€¿Uè¢«äºÞZ»¬æˆäØ“”分众分类”åQˆfolksonomyåQŒæœ‰åˆ«äºŽä¼ ç»Ÿåˆ†ç±»æ³•ï¼‰çš„æ¦‚å¿µä¸ŠæˆäØ“å…ˆè¡Œè€…ã€?#8221;分众分类”是一¿Uä‹É用用戯‚‡ªç”±é€‰æ‹©çš„关键词对网站进行协作分¾cÈš„æ–¹å¼åQŒè€Œè¿™äº›å…³é”®è¯ä¸€èˆ¬ç§°ä¸ºæ ‡½{¾ï¼ˆtags)。标½{‘ÖŒ–˜qç”¨äº†åƒå¤§è„‘本èín所使用的那¿Uå¤šé‡çš„、重叠的兌™”åQŒè€Œä¸æ˜¯æ­»æ¿çš„分类。ä‹D一个经典的例子åQŒåœ¨ Flickr¾|‘站上,一òq…小狗照片可能被加上”ž®ç‹—”å’?#8221;可爱”˜q™æ ·çš„æ ‡½{¾ï¼Œä»Žè€Œå…è®¸ç³»¾lŸä¾ç…§ç”¨æˆ¯‚¡Œä¸ºæ‰€äº§ç”Ÿçš„自然的方式来进行检索ã€?/p>

协作式垃圾信息过滤äñ”品,例如CloudmarkåQŒå°±èšé›†äº†ç”µå­é‚®ä»¶ç”¨æˆ·ä»¬å¯¹äºŽ”一ž®é‚®ä»¶æ˜¯æˆ–者不是垃åœùN‚®ä»?#8221;的众多相互独立的决策åQŒä»Žè€Œèƒœ˜q‡äº†ä¾èµ–于分析邮件本íw«çš„那些¾pȝ»Ÿã€?/p>

ä¼Ÿå¤§çš„äº’è”ç½‘æˆåŠŸè€…åÆˆä¸ä¸»åŠ¨åœ°åˆ°å¤„æŽ¨é”€å…¶äñ”品,˜q™å‡ ä¹Žæˆä¸ºå…¬ç†ã€‚他们采ç”?#8221;病毒式营销”åQˆviral marketingåQ‰çš„æ–¹å¼åQŒä¹Ÿž®±æ˜¯è¯ß_¼Œä¸€äº›æŽ¨ä»‹ä¼šç›´æŽ¥ä»Žä¸€ä¸ªç”¨æˆ·ä¼ æ’­åˆ°å¦å¤–一个用戗÷€‚如何一个网站或产品依赖òq¿å‘Šæ¥è¿›è¡Œå®£ä¼ ï¼Œä½ å‡ ä¹Žå¯ä»¥æ–­å®šå®ƒä¸æ˜¯Web 2.0ã€?/p>

即便许多互联¾|‘基¼‹€è®¾æ–½æœ¬èínåQŒåŒ…括在大多数网¾lœæœåŠ¡å™¨ä¸­ç”¨åˆ°çš„LinuxåQŒApacheåQŒMySQLåQŒä»¥åŠPerlåQŒPHP或Python代码åQŒä¹Ÿéƒ½ä¾é å¼€æ”¾æºç çš„对等生äñ”åQˆpeer-productionåQ‰çš„æ–¹å¼ã€‚其中包含了一¿Ué›†ä½“的、网¾lœèµ‹äºˆçš„æ™ºæ…§ã€‚在SourceForge.net¾|‘站上列有至ž®?0万种开放源码èÊY仉™¡¹ç›®ã€‚ä“Q何äh都可以添加一个项目,ä»ÖM½•人都可以下蝲òq¶ä‹É用项目代码ã€?/p>

同时åQŒç”±äºŽä½œä¸ºç”¨æˆ·ä‹É用的¾l“æžœåQŒæ–°çš„项目从边缘˜qç§»åˆîC¸­å¿ƒã€‚一个对软äšg的有机的接受˜q‡ç¨‹å‡ ä¹Žå®Œå…¨ä¾é ç—…毒式营销。同æ—Óž¼Œä½œäؓ用户应用的结果,新的™å¹ç›®ä»Žè¾¹¾~˜è¿¿UÕdˆ°ä¸­å¿ƒåQŒè¿™æ˜¯ä¸€¿Uå‡ ä¹Žå®Œå…¨ä¾é ç—…毒式营销的,有机的èÊY仉™‡‡ç”¨è¿‡½E‹ï¼Œã€?/p>

¾léªŒæ˜¯ï¼šæºäºŽç”¨æˆ·è´¡çŒ®çš„网¾lœæ•ˆåº”,是在Web 2.0时代中统æ²Õd¸‚场的关键ã€?/p>

òq›_°æ€ÀL˜¯æ‰“èÓ|应用½E‹åº

在过åŽÀL¯‹Æ¡åŒå¯Òމ‹çš„竞争中åQŒå¾®è½¯éƒ½æˆåŠŸåœ°æ‰“ç”¨äº†òq›_°˜q™å¼ ç‰Œï¼Œæ‰“èÓ|了即便是最占主导地位的应用½E‹åºã€‚Windowsòq›_°è®©å¾®è½¯ä»¥Excel取代äº?Lotus 1-2-3åQŒä»¥Word取代了WordPerfect,åQŒä»¥Internet Explorer取代了Netscape‹¹è§ˆå™¨ã€?/p>

不过˜q™æ¬¡åQŒå†²½Hä¸æ˜¯åœ¨òq›_°å’Œåº”用程序之é—ß_¼Œè€Œæ˜¯åœ¨ä¸¤¿Uåã^åîC¹‹é—´ã€‚每个åã^台皆有一¿Uæˆªç„¶ä¸åŒçš„商业模式åQšä¸€æ–šw¢åQŒä¸€ä¸ªç‹¬ç«‹èÊY件商å…ähœ‰òq¿æ³›çš„用户基¼‹€òq¶ä¸”ž®†åº”用程序接口和操作¾pȝ»Ÿç´§å¯†é›†æˆåQŒä»Žè€Œå¯¹½E‹åºè®¾è®¡æ¨¡å¼äºˆä»¥æŽ§åˆ¶åQ›å¦ä¸€æ–šw¢åQŒæ˜¯ä¸€ä¸ªæ²¡æœ‰æ‰€æœ‰è€…çš„¾pȝ»ŸåQŒç”±ä¸€¾l„协议、开放标准和对合作的å…Þp¯†æ¥è¿ž¾l“到一赗÷€?/p>

Windows¾pȝ»Ÿä»£è¡¨äº†ç”±è½¯äšg½E‹åºæŽ¥å£æ¥è¿›è¡Œä¸“有控制的高峰。Netscape曑ְè¯•用微èÊY当初对付其对手所使用的手ŒDµï¼Œæ¥åŒå¾®èÊY˜q›è¡Œäº‰å¤ºåQŒä½†æ˜¯å¤±è´¥äº†ã€‚然而拥有互联网开放标准的Apache却已¾lç¹è£äº†èµäh¥ã€‚此番上演的战局åQŒå·²¾lä¸å†æ˜¯å®žåŠ›æ‚¬æ®Šçš„åã^台对军_­¤ç«‹çš„软äšg了,而是变成了åã^台对军_ã^台。问题在于,哪个òq›_°åQŒæˆ–者更æ·Þp¿œåœ°æ¥è¯´å“ªä¸ªä½“¾p»ï¼Œä»¥åŠå“ªä¸ªå•†ä¸šæ¨¡å¼åQŒæœ€èƒ½é€‚应未来的机遇ã€?/p>

Windows对于早期的PC时代的问题是一¿Uå“­‘Šçš„解决æ–ÒŽ¡ˆã€‚它¾lŸä¸€äº†ç¨‹åºå¼€å‘者的竞技场,解决了很多困扰这个领域的问题。但˜q™ç§ç”±å•一供方控制的一刀切的æ–ÒŽ³•åQŒå·²¾lä¸å†æ˜¯é€‚宜的解å†Ïx–¹æ¡ˆï¼Œè€Œæˆä¸ÞZº†ä¸€¿Ué—®é¢˜ã€‚面向交‹¹çš„¾pȝ»Ÿéœ€è¦ååŒæ€§ï¼Œäº’联¾|‘作ä¸ÞZ¸€ä¸ªåã^台当然也是如此。除非供方可以控制每一例交互的两个¾lˆç«¯åQŒè¿™¿Ué€šè¿‡è½¯äšg的程序接口来锁定用户的可能性微乎其微ã€?/p>

ä»ÖM½•企图通过控制òq›_°æ¥æŽ¨é”€åº”用½E‹åºçš„Web 2.0提供商,从定义上è®ÔŒ¼Œå·²ç»ä¸§å¤±äº†è¿™ä¸ªåã^台的优越性ã€?/p>

˜q™åƈ不是说锁定和竞争优势的机会不复存在了åQŒè€Œæ˜¯è¯´æˆ‘们相信这¿Uæœºä¼šä¸æ˜¯é€šè¿‡æŽ§åˆ¶è½¯äšg½E‹åºæŽ¥å£å’Œåè®®æ¥å–得的。新的游戏规则正在æÕQ现。那些能够理解这些新的游戏规则,而不是企囑֛žåˆ°PC软äšg时代旧有规则的公司,才有可能在Web 2.0时代获得成功ã€?/p>

博客和大众智�/strong>

Web 2.0时代一™åÒŽœ€å—追捧的ç‰ÒŽ€§å°±æ˜¯åšå®¢çš„å…´è“v。个äºÞZ¸»™åµä»Žäº’联¾|‘早期就已经存在了,而个人日记和每日发表观点的专栏就更渊源久˜qœäº†åQŒé‚£ä¹ˆåˆ°åº•有什么让人大惊小怪的呢?

归根底地åQŒåšå®¢åªæ˜¯ä¸€¿Uæ—¥è®°åŞ式个人网™åüc€‚但正如里奇·æ–¯æ ¼ä»å¡”åQˆRich SkrentaåQ‰æŒ‡å‡ºçš„åQŒåšå®¢çš„æŒ‰æ—¶é—´é¡ºåºæ¥æŽ’列的结æž?#8221;看è“v来像是一个微不èƒö道的变化åQŒä½†å´æŽ¨åŠ¨ç€ä¸€ä¸ªèòE然不同的分发、广告和价值链ã€?#8221;

其中一大变化就是一™å¹ç§°ä¸ºRSS的技术。RSS是自早期计算机高手们认识到CGIåQˆå…¬å…Þq½‘å…ÏxŽ¥å£ï¼‰å¯ç”¨æ¥åˆ›å»ÞZ»¥æ•°æ®åº“äØ“åŸºç¡€çš„ç½‘ç«™ä»¥æ¥ï¼Œåœ¨äº’è”ç½‘æ ÒŽœ¬¾l“构斚w¢æœ€é‡è¦çš„进步。RSS使äh们不仅仅链接åˆîC¸€ä¸ªç½‘™åµï¼Œè€Œä¸”可以订阅˜q™ä¸ª¾|‘页åQŒä»Žè€Œæ¯å½“该™åµé¢äº§ç”Ÿäº†å˜åŒ–时都会得到通知。斯æ ég»å¡”将之称ä¸?#8221;增量的互联网”åQˆincremental webåQ‰ã€‚å…¶ä»–ähåˆ™ç§°ä¹‹äØ“”鲜活的互联网”åQˆlive webåQ‰ã€?/p>

当然åQŒçŽ°åœ¨æ‰€è°?#8221;动态网ç«?#8221;åQˆå³å…ähœ‰åŠ¨æ€äñ”生的内容的、由数据库驱动的¾|‘ç«™åQ‰å–代了十年前的静态网站。而动态网站的‹zÕdŠ›ä¸ä»…åœ¨äºŽ¾|‘页åQŒè€Œä¸”在链接方面。一个指向网¾lœåšå®¢çš„链接实际上是指向一个不断更新的¾|‘页åQŒåŒ…括指向其中ä“Q何一½‹‡æ–‡ç« çš„”固定链接”åQˆpermalinksåQ‰ï¼Œä»¥åŠæ¯ä¸€‹Æ¡æ›´æ–°çš„通知。因此,一个RSS是比书签或者指向一个单独网™å늚„链接要强大得多ã€?/p>

RSS同时也意味着¾|‘页‹¹è§ˆå™¨ä¸å†åªæ˜¯é™äºŽæµè§ˆç½‘™å늚„工具。尽½Ž¡è¯¸å¦‚Bloglines之类的RSS聚合器(RSS aggregatorsåQ‰æ˜¯åŸÞZºŽ¾|‘络的,但其他的则是桌面½E‹åºåQŒæ­¤å¤–还有一些则可以用在便携讑֤‡ä¸Šæ¥æŽ¥å—定期更新的内宏V€?/p>

RSS现在不仅用于推送新的博客文章的通知åQŒè¿˜å¯ä»¥ç”¨äºŽå…¶ä»–各种各样的数据更斎ͼŒåŒ…括股票报ä­h、天气情å†üc€ä»¥åŠå›¾ç‰‡ã€‚è¿™¾cÕdº”用实际上是对RSS本源的一 ¿Uå›žå½’:RSS诞生äº?997òqß_¼Œæ˜¯å¦‚下两¿UæŠ€æœ¯çš„æ±‡åˆåQšä¸€¿Uæ˜¯æˆ´å¤«·æ¸©çº³åQˆDave WineråQ‰çš„”真正½Ž€å•的聚合”åQˆReally Simple SyndicationåQ‰æŠ€æœ¯ï¼Œç”¨äºŽé€šçŸ¥åšå®¢çš„æ›´æ–°æƒ…况;另一¿Uæ˜¯Netscape公司提供çš?#8221;丰富站点摘要”åQˆRich Site SummaryåQ‰æŠ€æœ¯ï¼Œè¯¥æŠ€æœ¯å…è®¸ç”¨æˆïL”¨å®šæœŸæ›´æ–°çš„æ•°æ®æµæ¥å®šåˆ¶Netscape主页。后来Netscape公司失去了兴­‘£ï¼Œ˜q™ç§æŠ€æœ¯ä¾¿ç”±æ¸©¾U³çš„一个博客先驱公司Userland承接下来。不˜q‡ï¼Œåœ¨çŽ°åœ¨çš„åº”ç”¨½E‹åºå®žçŽ°ä¸­ï¼Œæˆ‘å¯ä»¥çœ‹å‡ÞZ¸¤è€…共同的作用ã€?/p>

但是åQŒRSS只是令博客区别于同普通网™å늚„一部分原因。汤å§?#183;¿U‘特斯(Tom CoatesåQ‰è¿™æ ¯‚¯„论固定链接的重要性:

“现在它可能看上去像是一™åÒŽ™®æ™®é€šé€šçš„功能åQŒä½†å®ƒå´æœ‰æ•ˆåœ°å°†åšå®¢ä»Žä¸€ä¸ªæ˜“于发布(ease-of-publishingåQ‰çš„现象åQŒè¿›ä¸€æ­¥è{å˜äØ“äº’ç›¸äº¤å‰çš„ç¤¾åŒºçš„ä¸€¿Uå¯¹è¯å¼çš„参与。这是首‹Æ¡ä‹É得对其他人的¾|‘站上的很特定的帖子表态和谈论变得如此地容易。讨论出çŽîCº†åQŒèŠå¤©ä¹Ÿå‡ºçŽ°ã€‚åŒæ—Óž¼Œå…¶ç»“果是出现了友谊或者友谊更加坚定了。固定链接是½W¬ä¸€‹Æ¡ä¹Ÿæ˜¯æœ€ä¸ºæˆåŠŸçš„ä¸€‹Æ¡åœ¨åšå®¢ä¹‹é—´æ­å¾æ¡¥æ¢çš„尝试ã€?#8221;

在许多方面,RSS同固定链接的¾l“合åQŒäØ“HTPPåQˆäº’联网协议åQ‰å¢žæ·ÖMº†NNTPåQˆæ–°é—ȝ»„的网¾lœæ–°é—Õdè®®ï¼‰çš„许多特性。所è°?#8221;博客åœ?#8221;åQˆblogosphereåQ‰ï¼Œå¯ä»¥ž®†å…¶è§†ä½œä¸€¿UåŒäº’联¾|‘早期的、以对话方式来灌水的新闻¾l„和公告牌相比来è¯ß_¼Œæ–°åž‹çš„对½{‰ï¼ˆpeer-to-peeråQ‰æ„ä¹‰ä¸Šçš„ç­‰ä»ïLŽ°è±¡ã€‚ähä»¬ä¸ä»…å¯ä»¥ç›¸äº’è®¢é˜…ç½‘ç«™åÆˆæ–¹ä¾¿åœ°é“¾æŽ¥åˆ°ä¸€ä¸ªé¡µé¢ä¸Šçš„ç‰¹å®šè¯„è®ºï¼Œè€Œä¸”é€šè¿‡ä¸€¿Uç§°ä¸ºå¼•用通告åQˆtrackbacksåQ‰çš„æœºåˆ¶åQŒå¯ä»¥å¾—知其他ä“Q何äh链接åˆîCº†ä»–们的页面,òq¶ä¸”可以用相互链接或者添加评论的方式来做出回应ã€?/p>

有趣的是åQŒè¿™¿UåŒå‘链接(two-way linksåQ‰æ›¾æ˜¯è±¡Xanadu之类的早期超文本¾pȝ»Ÿçš„目标。超文本¾U¯çÑaè®ø™€…已然将引用通告颂扬为向双向链接˜qˆè¿›äº†ä¸€æ­¥ã€‚但需要注意的是,引用通告不是一个真正的双向链接åQŒç¡®åˆ‡åœ°è®²æ˜¯ä¸€¿Uï¼ˆæ½œåœ¨åœŽÍ¼‰å®žçŽ°äº†åŒå‘é“¾æŽ¥æ•ˆæžœçš„å¯¹ç§°å¼å•å‘é“¾æŽ¥ã€‚å…¶é—´çš„åŒºåˆ«çœ‹è“v来可能很¾l†å¾®åQŒä½†å®žé™…上却是巨大的。诸å¦?Friendster, Orkutå’ŒLinkedIn那样的社交网¾lœç³»¾lŸï¼ˆsocial networking systemsåQ‰ï¼Œéœ€è¦æŽ¥å—方做出¼‹®è®¤ä»¥ä¾¿å»ºç«‹æŸç§˜qžæŽ¥åQŒä»Žè€Œç¼ºž®‘像互联¾|‘架构本íw«é‚£æ ïLš„可äŽ×¾~©æ€§ã€‚正如照片共享服务Flickr¾|‘站的创始äh之一卡特里纳·è´¹å…‹åQˆCaterina FakeåQ‰æ‰€æŒ‡å‡ºçš„,注意力仅在碰巧时才礼ž®šå¾€æ¥ã€‚(Flickr因此允许用户讄¡½®è§‚察列表åQŒå³ä»ÖM½•用户都可以通过RSS来订阅其他所有用æˆïLš„照片‹¹ã€‚注意的对象ž®†ä¼šè¢«é€šçŸ¥åQŒä½†òq¶ä¸ä¸€å®šè¦è®¤å¯˜q™ç§˜qžæŽ¥ã€‚)

如果Web 2.0的一个本质是利用集体智慧åQŒæ¥ž®†äº’联网调试ä¸ÞZ¸€¿Uæ‰€è°“的全球的大脑,那么博客圈就是前脑中喋喋不休的呓语,那种我们整个头脑中都能听到的声音。这可能òq¶ä¸åæ˜ å‡ºå¤§è„‘的往往是无意识的深层结构,但却是一¿Uæœ‰æ„è¯†çš„æ€è€ƒçš„½{‰ä­h物。作ä¸ÞZ¸€¿Uæœ‰æ„è¯†çš„æ€è€ƒå’Œæ³¨æ„åŠ›çš„åæ˜ åQŒåšå®¢åœˆå·²ç»å¼€å§‹å…·æœ‰å¼ºæœ‰åŠ›çš„åª„å“ã€?/p>

首先åQŒå› ä¸ºæœç´¢å¼•擎ä‹Éç”¨é“¾æŽ¥ç»“æž„æ¥è¾…åŠ©é¢„æµ‹æœ‰ç”¨çš„é¡µé¢ï¼Œä½œäØ“æœ€å¤šäñ”和最及时的链接者,博客们在修整搜烦引擎¾l“果斚w¢å……当着一¿Uä¸æˆæ¯”例的角色。其‹Æ¡ï¼Œå›?为博客社区是如此多地自相引用åQŒå…³æ³¨å…¶ä»–博客的博客们开阔了他们的视野和能力。此外,评论家们所批判çš?#8221;回音å®?#8221;åQˆecho chamberåQ‰ä¹Ÿæ˜¯ä¸€¿Uæ”¾å¤§å™¨ã€?/p>

如果只是一¿Uæ”¾å¤§å™¨åQŒé‚£ä¹ˆæ’°å†™åšå®¢å°†ä¼šå˜å¾—æ— ­‘£ã€‚但是像¾l´åŸºç™„¡§‘å…¨ä¹¦ä¸€æ øP¼Œåšå®¢ž®†é›†ä½?智慧用作一¿Uè¿‡æ»¤å™¨ã€‚被詹姆å£?#183;苏瑞奥维奇(James SurioweckiåQ‰ç§°ä¸?#8221;大众智慧”åQˆthe wisdom of crowdsåQ‰çš„规律起了作用åQŒåƈ且就像PageRank技术所产生的结果胜˜q‡åˆ†æžä“Qä½•å•ä¸€æ–‡æ¡£ä¸€æ øP¼Œåšå®¢åœˆçš„集体å…Ïx³¨ä¼šç­›é€‰å‡ºæœ‰ä­h值的东西ã€?/p>

虽然ä¸ÀLµåª’体可能ž®†ä¸ªåˆ«çš„åšå®¢è§†äØ“ç«žäº‰è€…ï¼Œä½†çœŸæ­£ä‹Éå…¶ç´§å¼ çš„ž®†æ˜¯åŒä½œä¸ÞZ¸€ä¸ªæ•´ä½“的博客圈的竞争。这不仅是网站之间的竞争åQŒè€Œä¸”是一¿Uå•†ä¸šæ¨¡å¼ä¹‹é—´çš„ç«?争。Web 2.0的世界也正是ä¸?#183;吉尔默(Dan GillmoråQ‰çš„æ‰€è°?#8221;个äh媒体”åQˆWeåQŒthe media)的世界。在˜q™ä¸ªä¸–界中,是所è°?#8221;原本的听ä¼?#8221;åQŒè€Œä¸æ˜¯å¯†å®žé‡Œçš„少数几个ähåQŒæ¥å†›_®šç€ä»€ä¹ˆæ˜¯é‡è¦çš„ã€?/p>

3. 数据是下一个Intel Inside

现在每一个重要的互联¾|‘应用程序都ç”׃¸€ä¸ªä¸“门的数据库驱动:Google的网¾lœçˆ¬è™? Yahoo!的目录(和网¾lœçˆ¬è™«ï¼‰åQŒAmazonçš„äñ”品数据库åQŒeBayçš„äñ”品数据库和销售商åQŒMapQuest的地图数据库åQŒNapster的分布式歌曲库。正如哈ž®?#183;瓦里安(Hal VarianåQ‰åœ¨åŽÕd¹´çš„私人对话中谈到的,”SQL是新的HTML”。数据库½Ž¡ç†æ˜¯Web 2.0公司的核心竞争力åQŒå…¶é‡è¦æ€§ä‹É得我们有时候称˜q™äº›½E‹åºä¸?#8221;讯äšg”åQˆinfowareåQ‰è€Œä¸ä»…仅是èÊYä»¶ã€?/p>

该事实也引出了一个关键问题:谁拥有数据?

在互联网时代åQŒæˆ‘们可能已¾lè§åˆîCº†˜q™æ ·ä¸€äº›æ¡ˆä¾‹ï¼Œå…¶ä¸­å¯ÒŽ•°æ®åº“的掌控导致了对市场的支配和巨大的¾læµŽå›žæŠ¥ã€‚当初由¾ŸŽå›½æ”¿åºœçš„æ³•令授权给 Network Solutions公司åQˆåŽè¢«Verisign公司收购åQ‰çš„对域名注册的垄断åQŒæ›¾¾læ˜¯äº’联¾|‘上的第一个摇钱树。虽然我们在争论通过控制软äšgçš„API来åŞ成商业优势在互联¾|‘时代会变得困难得多åQŒä½†æ˜¯å¯¹å…³é”®æ•°æ®èµ„源的控制则不同åQŒç‰¹åˆ«æ˜¯å½“要创徏˜q™äº›æ•°æ®èµ„源非常昂贵åQŒæˆ–者经ç”Þq½‘¾lœæ•ˆåº”容易增加回报的时候ã€?/p>

注意一下由MapQuest, maps.yahoo.comåQŒmaps.msn.comåQŒæˆ–者maps.google.com½{‰ç½‘站提供的每张地图下面的版权声明,你会发现˜q™æ ·ä¸€è¡Œå­— “地图版权NavTeqåQŒTeleAtlas”åQŒæˆ–者如果ä‹É用的是新的卫星图像服务,则会看到”囑փç‰ˆæƒDigital Globe”的字栗÷€‚这些公司对其数据库˜q›è¡Œäº†å¤§é‡çš„æŠ•资。(仅NavTeq一å®Óž¼Œž®±å…¬å¸ƒæŠ•èµ?.5亿美元用于创建其街道地址和èµ\¾U¿æ•°æ®åº“ã€?Digital Globe则投èµ?亿美元来启动其自有卫星,来对政府提供的图像进行改˜q›ã€‚)NavTeq竟然已做了很多模仿Intel的耳熟能详的Intel Inside标识的事åQšä¾‹å¦‚带有导航系¾lŸçš„æ±½èžRž®±å¸¦æœ?#8221;NavTeq Onboard”的印记。数据是许多此类½E‹åºäº‹å®žä¸Šçš„Intel InsideåQŒæ˜¯ä¸€äº›ç³»¾lŸçš„唯一的信息源¾l„äšgåQŒè¿™äº›ç³»¾lŸçš„软äšg体系多数是开放源码的åQŒä¹Ÿæœ‰å•†ä¸šåŒ–çš„ã€?/p>

当前竞争火热的网¾l?地图åQˆweb mappingåQ‰é¢†åŸŸæ˜¾½Cºç€åQŒå¯¹æ‹¥æœ‰è½¯äšg核心数据的重要性的疏忽大意åQŒå°†æœ€¾lˆå‰Šå¼±å…¶ç«žäº‰åœîC½ã€‚MapQueståœ?995òq´çŽ‡å…ˆè¿›å…¥åœ°å›ùN¢†åŸŸï¼ŒéšåŽæ˜?Yahoo!åQŒå†åŽæ¥æ˜¯MicrosoftåQŒè€Œæœ€˜q‘Google也决定挺˜q›è¿™ä¸€å¸‚场åQŒä»–们可以轻村֜°é€šè¿‡å¯¹åŒä¸€æ•°æ®çš„æŽˆæƒæ¥æä¾›ä¸€ä¸ªå…·æœ‰ç«žäº‰åŠ›çš„ç¨‹åºã€?/p>

ç„¶è€Œï¼Œä½œäØ“å¯Òޝ”的是Amazon.com的竞争地位。像Barnesandnoble.com˜q™æ ·çš„ç«žäº‰è€…ä¸€æ øP¼Œå…¶åŽŸå§‹æ•°æ®åº“æ¥è‡ªäºŽISBN注册å•? R. Bowker。但是同MapQuest不同åQŒAmazon大力增强其数据,增加出版商提供的数据åQŒä¾‹å¦‚封面图片,目录åQŒçƒ¦å¼•,和样张材料。更重要的是åQŒä»–们利用了其用æˆäh¥è¯„注数据åQŒä»¥è‡³äºŽåå¹´ä¹‹åŽåQŒæ˜¯Amazon而不是BowkeråQŒæˆä¸ºå›¾ä¹¦æ–‡çŒ®ä¿¡æ¯çš„主要来源åQŒä¸€ä¸ªå­¦è€…、图书管理员和消费者的参考书目来源。Amazon˜q˜å¼•入了其专有的标识½W¦ï¼Œå³ASINåQŒè¯¥æ ‡è¯†½W¦åœ¨ISBN存在时与之对应,而当产品不带有ISBNæ—Óž¼Œž®±åˆ›å»ºå‡ºä¸€ä¸ªç­‰ä»ïLš„命名½Iºé—´ã€?Amazon从而有效地”吸收和拓展了”其数据提供商ã€?/p>

设想如果MapQuest也已做了同样的事情,利用他们的用æˆäh¥è¯„注地图和èµ\¾U¿ï¼Œæ·ÕdŠ æ–°çš„ä»·å€¼å±‚é¢ã€‚é‚£ä¹ˆå¯¹ä»…ä»…é€šè¿‡æŽˆæƒä½¿ç”¨åŸºç¡€æ•°æ®æ¥è¿›å…¥è¿™ä¸€å¸‚åœºçš„å…¶ä»–ç«žäº‰è€…ï¼Œž®†é€ æˆ˜qœè¿œå¤§å¾—多的困难ã€?/p>

˜q‘期Google地图的引入,为应用程序销售商和其数据提供商之间的竞争åQŒæä¾›äº†ä¸€ä¸ªæ´»ç”Ÿç”Ÿçš„实验室。Google的轻量型¾~–程模型已经引发了不计其æ•?的增值服务的出现åQŒè¿™äº›æœåŠ¡ä»¥æ•°æ®æ··åˆçš„æ–¹å¼ï¼Œž®†Google的地囑֐Œå…¶ä»–可以通过互联¾|‘访问的数据源相¾l“合。保¾|?#183;拉特马赫åQˆPaul RademacheråQ‰çš„housingmaps.com是这¿UæØœåˆçš„一个上佌™Œƒä¾‹ï¼Œå…¶ç½‘站将Google的地囑֐ŒCraigslist的公寓出¿UŸï¼Œä»¥åŠä½å®…购买数据相结合,来创å»ÞZ¸€¿Uäº¤äº’式的房屋搜索工兗÷€?/p>

目前åQŒè¿™äº›æØœåˆå¤§å¤šæ˜¯ç”Þq¨‹åºé«˜æ‰‹ä»¬å®žçŽ°çš„åˆ›æ–°æ€§çš„å®žéªŒäº§å“ã€‚ä½†æ˜¯ä¼ä¸šè¡ŒåŠ¨å°†ç´§éšå…¶åŽã€‚åÆˆä¸”ï¼ŒäºÞZ»¬å·²ç»å¯ä»¥ä»Žè‡³ž®‘一¾cÕd¼€å‘者中发现˜q™ä¸€ç‚V€‚Google已经ž®†æ•°æ®æºæä¾›è€…的角色从Navteqé‚£é‡Œå¤ø™µ°åQŒåƈ且将自己定位ä¸ÞZ¸€ä¸ªä×o人喜çˆÞqš„中介者。在以后几年里,我们ž®†ä¼šçœ‹åˆ°æ•°æ®æä¾›å•†å’Œ½E‹åºé”€å”®å•†ä¹‹é—´çš„æ–—äº‰ï¼Œå› äØ“ä¸¤å¤§é˜µè¥éƒ½è®¤è¯†åˆ°äº†ï¼Œç‰¹å®šçš„æ•°æ®ç±»åˆ«åœ¨ä½œäØ“æ­å¾Web 2.0½E‹åºçš„积木时是多么的重要ã€?/p>

˜q™åœºç«žèµ›å·²ç»æ¶‰åŠåˆ°æ‹¥æœ‰ç‰¹å®šç±»åˆ«çš„æ ¸å¿ƒæ•°æ®åQšä½¾|®ã€èín份、公å…׃º‹ä»¶æ—¥åŽ†ã€äñ”品标识和命名½Iºé—´½{‰ã€‚在许多情况下,在那些创建数据需要巨额成本的地方åQŒä¹Ÿå¯èƒ½å­˜åœ¨ä¸€¿Uå¦‚同Intel Inside方式一样凭借单一数据源来所有作为的机遇。其他情况下åQŒèƒœè€…将是那些通过用户聚合来达åˆîCÍ界规模,òq¶ä¸”ž®†èšåˆçš„æ•°æ®èžå…¥¾pȝ»ŸæœåŠ¡ä¸­çš„å…¬å¸ã€?/p>

比如åQŒåœ¨íw«ä†¾æ ‡è¯†é¢†åŸŸåQŒPayPalåQŒAmazon的一键式åQŒä»¥åŠæ‹¥æœ‰æ•°ç™¾ä¸‡ç”¨æˆ·çš„交‹¹ç³»¾lŸï¼Œéƒ½æœ‰å¯èƒ½æˆäؓ创徏整个¾|‘络范围的èín份标识数据库的正当竞争者。(关于此,Google最˜q‘ä‹É用手机号码作为Gmail账号标识的尝试,可能ž®±æ˜¯æœå€Ÿé‰´å’Œæ‹“展电话系¾lŸæ‰€˜qˆå‡ºçš„一步。)同时åQŒåƒSxip˜q™æ ·çš„创业公司,正在探烦联合íw«ä†¾æ ‡è¯†çš„可能性,以寻求一¿U?#8221;分布一键式”åQŒä»Žè€Œæä¾›ä¸€ä¸ªæ— ¾~çš„Web 2.0标识子系¾lŸã€‚在日历领域åQŒEVDB则是通过¾l´åŸºå¼å‚与体¾pÀL¥æ­å¾ä¸–界上最大的å…׃ín日历的一¿Uå°è¯•。虽然评判者尚在观望着ä»ÖM½•一个特定创业公司或方式的成功是否,但很昄¡„¶åQŒè¿™äº›é¢†åŸŸçš„æ ‡å‡†å’Œè§£å†Ïx–¹æ¡ˆï¼Œæœ‰æ•ˆåœ°å°†æŸäº›æ•°æ®è½¬å˜ä¸?#8221;互联¾|‘操作系¾l?#8221;åQˆinternet operating systemåQ‰çš„可靠的子¾pȝ»ŸåQŒåƈž®†ä¿ƒæˆä¸‹ä¸€ä»£çš„应用½E‹åºã€?/p>

关于数据åQŒå¿…™åÀL³¨æ„ä¸€ä¸ªè¿›ä¸€æ­¥çš„æ–šw¢åQŒé‚£ž®±æ˜¯ç”¨æˆ·å…›_¿ƒå…‰™š¿Uå’Œå¯¹è‡ªå·Þqš„æ•°æ®çš„æƒé™ã€‚在许多早期的网¾lœç¨‹åºä¸­åQŒç‰ˆæƒåªè¢«æ¾æ•£åœ°æ‰§è¡Œã€‚例如,Amazon宣称对ä“Q何提交到其网站的评论的所有权åQŒä½†å´ç¼ºž®‘强制性,äºÞZ»¬å¯ä»¥ž®†åŒæ ïLš„评论转脓到其他ä“Q何地斏V€‚然而,随着很多公司开始认识到åQŒå¯¹æ•°æ®çš„æŽŒæŽ§æœ‰å¯èƒ½æˆäؓ他们首要的竞争优势来源,我们ž®†ä¼šçœ‹åˆ°åœ¨æ­¤¾cÀLŽ§åˆ¶æ–¹é¢å¼ºåº¦æ›´å¤§çš„ž®è¯•ã€?/p>

正如专有软äšg的增长而导致自ç”ÞpÊYä»¶è¿åŠ¨ä¸€æ øP¼Œåœ¨ä¸‹ä¸€ä¸?0òq´ä¸­æˆ‘们会看åˆîC¸“æœ‰æ•°æ®åº“çš„å¢žé•¿å°†å¯ÆD‡´è‡ªç”±æ•°æ®˜qåŠ¨ã€‚åœ¨åƒç»´åŸºç™¾¿U‘全书这æ ïLš„开放数据项目、创作共用(Creative CommonsåQ‰ã€ä»¥åŠåƒGreasemonkeyåQˆè®©ç”¨æˆ·å†›_®šå¦‚何在其计算æœÞZ¸Šæ˜„¡¤ºæ•°æ®åQ‰è¿™æ ïLš„软äšg™å¹ç›®ä¸­ï¼Œæˆ‘们可以看到˜q™ç§å¯ÒŽŠ—势头的前兆ã€?/p>

参与的体¾p?/strong>

一些系¾lŸè¢«è®¾è®¡ä¸ºé¼“励参与。在ä¸?#183;布莱克林åQˆDan BricklinåQ‰çš„论文”å…Þq”¨çš„丰é¥?#8221;åQˆThe Cornucopia of the CommonsåQ‰ä¸­åQŒä»–指出有三¿Uåˆ›å»ºå¤§åž‹æ•°æ®åº“的方式。第一¿Uï¼Œå·²ç»ç”±Yahoo!来体çŽîCº†åQŒå°±æ˜¯ä»˜è´¹ç»™äºÞZ»¬æ¥å®žçŽ°ã€‚ç¬¬äºŒç§åQŒç”±å¼€æ”¾æºç ç¤¾åŒºçš„¾léªŒå¯å‘而来åQŒå°±æ˜¯è®©å¿—愿者来完成同样的ä“Q务。开攄¡›®å½•项目(Open Directory ProjectåQ‰ï¼Œä¸€ä¸ªYahoo的开放源码竞争者,ž®±æ˜¯è¯¥æ–¹å¼çš„产物。但是Napster体现了第三种方式。因为Napsterž®†å…¶é»˜è®¤è®„¡½®ä¸ø™‡ªåЍ䨓ä»ÖM½•已经下蝲的音乐服务,ä»ÖM½•用户都自动地帮助建立å…׃ín数据库的价倹{€‚同æ ïLš„æ–¹å¼å·²ç»è¢«å…¶ä»–所有P2Pæ–‡äšgå…׃ín服务所采用。Web 2.0时代的一个关键经验在于:用户增加价倹{€‚但是只有很ž®ä¸€éƒ¨åˆ†ç”¨æˆ·ä¼šæœ‰æ„æ¥ä¸ÞZ½ çš„程序增加ä­hå€û|¼Œè€Œä¸æ€•麻烦。因而,Web 2.0公司均进行了˜q™æ ·çš„默认设¾|®ï¼Œå³ä½œä¸ºç¨‹åºé€šå¸¸ä½¿ç”¨æ–¹å¼çš„副产品åQŒæ¥èšåˆç”¨æˆ·æ•°æ®òq¶åˆ›é€ ä­h倹{€‚正如上面所指出的,他们在搭建那¿Uç”¨æˆ¯‚¶Šå¤šåˆ™æ•ˆæžœ­‘Šå¥½çš„ç³»¾lŸã€?/p>

¾c›_ˆ‡ž®?#183;卡普ž®”(Mitch KaporåQ‰æ›¾¾læŒ‡å‡?#8221;体系是策ç•?#8221;。参与是Napster的本质,其根本体¾pȝš„一部分ã€?/p>

同更¾lå¸¸è¢«å¼•用的所è°?#8221;吸引志愿¾_„¡¥ž”的原因相比,˜q™ç§ä½“ç³»¾l“构上的‹zžå¯ŸåŠ›å¯èƒ½æ›´èƒ½æŠ“ä½å¯¹å¼€æ”¾æºç èÊY件成功的本质。互联网、万¾l´ç½‘åQˆWorld Wide WebåQ‰ã€ä»¥åŠåƒLinux、Apacheå’ŒPerl˜q™æ ·çš„开放源码èÊY仉™¡¹ç›®çš„体系¾l“æž„åQŒå‡æ˜¯è¿™æ ·ä¸€¿Uè®¾è®¡ï¼Œä½¿å¾—ä½œäØ“ä¸€¿Uè‡ªåЍäñ”生的副äñ”品,谋求其自íw«åˆ©ç›Šçš„用户们创建着集体的ä­h倹{€‚这些项目中的ä“Q何一个都有一个很ž®çš„æ ¸å¿ƒã€ä¸€¿Uè®¾è®¡è‰¯å¥½çš„æ‰©å±•机制、和一¿Uè®©ä»ÖM½•人来æ·ÕdŠ ä»ÖM½•合乎规定的组件的方式åQŒä¸æ–­å¢žé•¿ç€è¢«Perl语言的创始äh拉里·æ²ƒå°”åQˆLarry WallåQ‰ç§°ä¸?#8221;‹z‹è‘±å¤?#8221;åQˆthe onionåQ‰çš„外部层面。换句话è¯ß_¼Œ˜q™äº›æŠ€æœ¯é€šè¿‡ä»–们本来的设计方式,体现着¾|‘络的效应ã€?/p>

4. 软äšg发布周期的终¾l?/strong>

如上文在对Googleå’ŒNetscape的比较中谈到的,互联¾|‘时代èÊY件的代表性特征就是它应该被作为服务来交付。这¿Uäº‹å®žå¯¼è‡´è¿™¾cÕd…¬å¸çš„商业模式上很多根本性的变化ã€?/p>

1. ˜qè¥å¿…é¡»æˆäØ“ä¸€¿Uæ ¸å¿ƒç«žäº‰åŠ›ã€‚Google或者Yahoo!在äñ”品开发方面的专门技术,必须同日常运营方面的专门技术相匚w…ã€‚从软äšgä½œäØ“åˆ‰™€ å“åˆ°èÊY件作为服务的变化是如此地æ ÒŽœ¬åQŒä»¥è‡³äºŽè½¯äšgž®†ä¸å†èƒ½å®Œæˆä»ÕdŠ¡åQŒé™¤éžæ¯æ—¥åŠ ä»¥ç»´æŠ¤ã€‚Google必须持箋抓取互联¾|‘åÆˆæ›´æ–°å…¶çƒ¦å¼•ï¼ŒæŒç®‹æ»¤æŽ‰é“¾æŽ¥åžƒåœ¾å’Œå…¶ä»–åª„å“å…¶¾l“果的东西,持箋òq¶ä¸”动态地响应数千万异步的用户查询åQŒåƈ同步地将˜q™äº›æŸ¥è¯¢åŒä¸Šä¸‹æ–‡ç›¸å…³çš„广告相匚w…ã€?/p>

所以,Google的系¾lŸç®¡ç†ã€ç½‘¾lœã€å’Œè´Ÿè²å‡è¡¡æŠ€æœ¯ï¼Œå¯èƒ½æ¯”其搜烦½Ž—法更被严加看管åQŒä¹Ÿž®×ƒ¸­‘³äؓ奇了。Google在自动化˜q™äº›æ­¥éª¤ä¸Šçš„æˆåŠŸæ˜¯å…¶åŒç«žäº‰è€…ç›¸æ¯”æ›´æœ‰æˆæœ¬ä¼˜åŠ¿çš„ä¸€ä¸ªå…³é”®æ–¹é¢ã€?/p>

同样也不­‘³äؓ奇的是,像Perl、Python、PHP、和当前的Ruby˜q™æ ·çš„脚本语­a€åœ¨Web 2.0公司中扮演着重要角色。Sun公司的第一个网½Ž¡å“ˆæ¡?#183;æ–½ç½—å¾øP¼ˆHassan SchroederåQ‰æ›¾å¯¹Perl有一个著名的形容åQ?#8221;互联¾|‘çš„½Ž¡é“胶带”åQˆthe duct tape of the internetåQ‰ã€‚事实上åQŒåŠ¨æ€è¯­­a€åQˆå¸¸å¸¸è¢«¿UîCؓ脚本语言åQŒåƈ被èÊY件制品时代的软äšg工程师所贬低åQ‰ï¼Œæ˜¯ç³»¾lŸå’Œ¾|‘络½Ž¡ç†å‘˜ï¼Œä»¥åŠåˆ›å¾å¯ç»å¸¸æ›´æ–°çš„动态系¾lŸçš„½E‹åºå¼€å‘者们所喜爱的工兗÷€?/p>

2. 用户必须被作为共同开发者来对待åQŒè¿™æ˜¯ä»Žå¯¹å¼€æ”¾æºç å¼€å‘实è·ëŠš„一¿Uåæ€ä¸­å¾—出的(即便所涉及的èÊY件不太可能以开放源码授权方式来发行åQ‰ã€‚å¼€æ”¾æºç çš„æ ÆD¨€ “æ—©å‘å¸ƒåÆˆå¸¸å‘å¸?#8221;åQˆrelease early and release oftenåQ‰äº‹å®žä¸Šå·²ç»æ¼”变成一¿Uæ›´ä¸ºæžç«¯çš„定位”永远的测试版”åQˆthe perpetual betaåQ‰ã€‚其中äñ”品在开攄¡Š¶æ€ä¸‹å¼€å‘,新的功能以每月、每周、甚è‡Ïx¯å¤©çš„速度被加入进来。Gmail、Google Maps、Flickr、del.icio.usåQŒå’Œå…¶ä»–¾cÖM¼¼çš„æœåŠ¡ï¼Œå¯èƒ½ä¼šåœ¨æŸä¸ªé˜¶æ®µæ‰“ç€‹¹‹è¯•版的标识多年ã€?/p>

æ•…æ­¤åQŒå®žæ—¶åœ°ç›‘æµ‹ç”¨æˆ·è¡ŒäØ“åQŒæ¥è€ƒå¯Ÿå“ªäº›æ–°ç‰¹æ€§è¢«ä½¿ç”¨äº†ï¼Œä»¥åŠå¦‚何被ä‹É用的åQŒå°†æˆäؓ另外一¿Uå¿…™åÈš„æ ¸å¿ƒç«žäº‰åŠ›ã€‚ä¸€ä½å·¥ä½œäºŽä¸€ä¸ªä¸»è¦åœ¨¾U¿æœåŠ¡ç½‘¾lœå•†çš„开发者评论道åQ?“我们每天在网站的某些部分提供两到三个新的ç‰ÒŽ€§ï¼Œè€Œä¸”如果用户不采用它们,我们ž®±å°†å…¶æ’¤æŽ‰ã€‚如果用户喜‹Æ¢å®ƒä»¬ï¼Œæˆ‘们ž®±å°†å…¶æŽ¨òq¿åˆ°æ•´ä¸ª¾|‘ç«™ã€?#8221;

Flickrçš„æ€Õd¼€å‘师卡尔·äº¨å¯d‹‚®ï¼ˆCal HendersonåQ‰ï¼Œ˜q‘来透露了他们是如何在短è‡Ïx¯åŠä¸ªž®æ—¶ž®±éƒ¨¾|²ä¸€ä¸ªæ–°ç‰ˆæœ¬çš„。显而易见,˜q™æ˜¯åŒä¼ ¾lŸæ–¹å¼æœ‰å¤©å£¤ä¹‹åˆ«çš„开发模式。虽然不是所有的¾|‘络½E‹åºéƒ½ä»¥åƒFlickr˜q™æ ·çš„æžç«¯æ–¹å¼æ¥å¼€å‘,但几乎所有网¾lœç¨‹åºéƒ½æœ‰ä¸€ä¸ªåŒä»ÖM½•PC或者客æˆ?服务器时代截然不同的开发周期。正因如此,ZDnet杂志才论断Microsoft不会打èÓ|GoogleåQ?#8221;Microsoft的商业模式依赖于每个人在每两åˆîC¸‰òq´éƒ½å‡çñ”他们的计½Ž—环境。Google的模式则依靠ä»ÖM½•人每天在其计½Ž—环境中自行探烦æ–îC¸œè¥Ñ€?#8221;

虽然Microsoftå·²ç»ä½“çŽ°äº†ä»Žç«žäº‰ä¸­å­¦ä¹ åÆˆæœ€¾lˆåšå¾—最好的强大能力åQŒä½†æ˜¯æ¯«æ— ç–‘问这一‹Æ¡çš„竞争要求MicrosoftåQˆå¯ä»¥æ‰©å±•到ä»ÖM½•现存的èÊY件公司)来成ä¸ÞZ¸€¿Uåœ¨æ·±å…¥å±‚面上显著有别的公司。天生的Web 2.0公司在äínå—è‡ªç„¶è€Œç„¶çš„ä¼˜åŠ¿ï¼Œå› äØ“å®ƒä»¬ä¸éœ€è¦åŽ»æ‘†è„±é™ˆæ—§çš„æ¨¡å¼ï¼ˆåŠå…¶ç›¸åº”çš„å•†ä¸šæ¨¡å¼å’Œè¥æ”¶æ¥æºåQ‰ã€?/p>

5. 轻量型编½E‹æ¨¡åž?/strong>

一旦网¾lœæœåŠ¡çš„è§‚å¿µæ·±å…¥äººå¿ƒåQŒå¤§åž‹å…¬å¸å°†ä»¥å¤æ‚çš„¾|‘络服务堆栈来加入到¾U·äº‰ä¹‹ä¸­ã€‚è¿™¿Uç½‘¾lœæœåŠ¡å †æ ˆè¢«è®¾è®¡ç”¨æ¥ä¸ºåˆ†å¸ƒå¼½E‹åºå»ºç«‹æ›´å¯é æ€§çš„¾~–程环境ã€?/p>

但是åQŒå°±åƒäº’è”ç½‘æˆåŠŸæ­£æ˜¯å› äØ“å®ƒæŽ¨¾˜ÖMº†è®¸å¤š­‘…文本理è®ÞZ¸€æ øP¼ŒRSS以完¾ŸŽçš„设计来取代简单的实用ä¸ÖM¹‰åQŒå·²¾lå› å…¶ç®€å•性而成为大概是应用最òq¿æ³›çš„网¾lœæœåŠ¡ï¼Œè€Œé‚£äº›å¤æ‚çš„ä¼ä¸š¾|‘络服务ž®šæœªèƒ½å®žçŽ°å¹¿æ³›çš„åº”ç”¨ã€?/p>

¾cÖM¼¼åœŽÍ¼ŒAmazon.com的网¾lœæœåŠ¡æœ‰ä¸¤ç§å½¢å¼åQšä¸€¿UåšæŒSOAP(Simple Object Access ProtocolåQŒç®€å•对象访问协议)¾|‘络服务堆栈的åŞ式主义;另一¿Uåˆ™½Ž€å•地在HTTP协议之外提供XML数据åQŒè¿™åœ¨è½»é‡åž‹æ–¹å¼ä¸­æœ‰æ—¶è¢«¿UîCØ“REST åQˆRepresentational State TransferåQŒä»£è¡¨æ€§çŠ¶æ€ä¼ è¾“ï¼‰ã€‚è™½ç„¶å•†ä¸šä­h值更高的B2B˜qžæŽ¥åQˆä¾‹å¦‚那些在Amazon和一些像ToysRUs˜q™æ ·çš„零售伙伴之间的˜qžæŽ¥åQ‰ä‹Éç”?SOAP堆栈åQŒä½†æ˜¯æ ¹æ®Amazon的报道,95%çš„ä‹É用来自于轻量型REST服务ã€?/p>

同样的对½Ž€æ˜“性的要求åQŒå¯ä»¥ä»Žå…¶ä»–”朴实çš?#8221;¾|‘络服务中见到。Google˜q‘来的Google地图的推出就是一个例子。Google地图的简单AJAXåQˆJavascriptå’ŒXML的结合)接口˜q…速被½E‹åºé«˜æ‰‹ä»¬ç ´è¯‘,被随卌™¿›ä¸€æ­¥å°†å…¶æ•°æ®æØœåˆåˆ°æ–°çš„æœåС之䏭ã€?/p>

地图相关¾|‘络服务已经存在了一ŒD‰|—¶é—ß_¼Œä¾‹å¦‚像ESRI那样的GISåQˆåœ°ç†ä¿¡æ¯ç³»¾lŸï¼‰åQŒä»¥åŠä»ŽMapQuestå’ŒMicrosoftçš?MapPoint。但是Google地图以其½Ž€‹zæ€§è€Œè®©ä¸–界兴奋èµäh¥ã€‚虽然从前销售商所支持的网¾lœæœåŠ¡éƒ½è¦æ±‚å„æ–¹ä¹‹é—´çš„æ­£å¼çº¦å®šï¼Œä½†Google地图的实现方式ä‹Éæ•°æ®å¯ä»¥è¢«æ•èŽøP¼ŒäºŽæ˜¯½E‹åºé«˜æ‰‹ä»¬å¾ˆå¿«å°±å‘现了创造性地重用˜q™äº›æ•°æ®çš„æ–¹æ³•ã€?/p>

˜q™é‡Œæœ‰å‡ æ¡é‡è¦çš„¾léªŒåQ?/p>

  1. 支持允许松散¾l“合¾pȝ»Ÿçš„轻量型的编½E‹æ¨¡åž‹ã€‚由企业开发的¾|‘络服务堆栈的复杂设计是用来促成紧密¾l“合的。虽然这在许多情况下是必™åÀL˜¯åQŒä½†æ˜¯è®¸å¤šæœ€é‡è¦çš„应用程序可以事实上保持松散¾l“合åQŒç”šè‡Ïx˜¯è„†å¼±çš„结合。Web 2.0的理念同传统的IT的理念èòE然不同ã€?
  2. 考虑聚合åQˆsyndicationåQ‰è€Œä¸æ˜¯åè°ƒï¼ˆcoordinationåQ‰ã€‚简单的¾|‘络服务åQŒä¾‹å¦‚RSS和基于REST的网¾lœæœåŠ¡ï¼Œæ˜¯ç”¨æ¥å‘å¤–èšåˆæ•°æ®ï¼Œä½†åÆˆä¸æŽ§åˆ¶å…¶è¾‘Öˆ°˜qžæŽ¥çš„另外一端时发生的事情。这¿Uæƒ³æ³•是互联¾|‘本íw«çš„基础åQŒä¸€¿Uå¯¹æ‰€è°“端到端原则的反映ã€?
  3. 可编½E‹æ€§å’Œå¯æØœåˆæ€§è®¾è®¡ã€‚像最初的互联¾|‘ä¸€æ øP¼ŒRSSå’ŒAJAX˜q™æ ·çš„ç³»¾lŸï¼Œéƒ½æœ‰æ­¤å…±åŒç‚¹åQšé‡ç”¨çš„障碍非常低。许多有用的软äšg事实上是开放源码的åQŒè€Œå³ä¾¿å®ƒä¸æ˜¯åQŒä¹Ÿæ²¡æœ‰è®¸å¤šä¸œè¥¿æ¥ä¿æŠ¤å…¶çŸ¥è¯†äº§æƒã€‚互联网‹¹è§ˆå™¨çš„”æŸ¥çœ‹æºæ–‡ä»?#8221;选项åQŒä‹É得许多用户可以复制其他ä“Q何用æˆïLš„¾|‘页åQ›RSS被设计得使用戯‚ƒ½å¤Ÿåœ¨éœ€è¦çš„æ—¶å€™æŸ¥çœ‹æ‰€éœ€è¦çš„内容åQŒè€Œä¸æ˜¯æŒ‰ç…§ä¿¡æ¯æä¾›è€…的要求åQ›æœ€æˆåŠŸçš„ç½‘¾lœæœåŠ¡ï¼Œæ˜¯é‚£äº›æœ€å®ÒŽ˜“采纳未被服务创徏者想到的新的方向。同更普遍的”保留所有权åˆ?#8221; åQˆall rights reservedåQ‰ç›¸æ¯”,随着创作å…Þq”¨¾U¦å®šè€Œæ™®åŠçš„”保留部分权利”åQˆSome Rights ReservedåQ‰ä¸€è¯æˆä¸ÞZ¸€ä¸ªæœ‰ç›Šçš„æŒ‡èµ\牌ã€?

装配中的创新

轻量型商业模型是对轻量型¾~–程和轻量型¾l“合的一¿Uè‡ªç„¶äñ”物。Web 2.0的理念善于重用。一¿Uåƒhousingmaps.com˜q™æ ·çš„æ–°æœåŠ¡åQŒæ˜¯é€šè¿‡ž®†ä¸¤ä¸ªçŽ°å­˜æœåŠ¡æŠ“å–åˆ°ä¸€èµäh¥½Ž€å•地创徏èµäh¥çš„ã€?Housingmaps.com˜q˜æ²¡æœ‰å•†ä¸šæ¨¡å¼ï¼ˆç›®å‰ä¸ºæ­¢åQ‰ï¼Œä½†å¯¹äºŽè®¸å¤šå°è§„模的服务,Googleçš„AdSenseåQˆæˆ–Amazonçš?associates fees计划åQŒæˆ–者两者都是)为同¾cÀLœåŠ¡æä¾›äº†è¥æ”¶æ¨¡å¼ã€?/p>

˜q™äº›æ¡ˆä¾‹ä¸ºWeb 2.0的另外一个关键原则提供了启发åQŒæˆ‘们将之称ä¸?#8221;装配中的创新”。当商品¾l„äšg充裕æ—Óž¼Œä½ å¯ä»¥é€šè¿‡ä»¥æ–°é¢–的或者有效的方式来装配这些组件来创徏价倹{€‚很像PC革命为硬件商品装配提供了许多创新的机会,其中像Dell˜q™æ ·çš„公司创造了˜q™ç§è£…配的科学,òq¶ä»Žè€Œæ‰“败了那些商业模式上要求äñ”å“å¼€å‘æ–¹é¢çš„åˆ›æ–°çš„å…¬å¸ï¼Œæˆ‘ä»¬ç›æ€¿¡Web 2.0为各个公司提供了åQŒé€šè¿‡åœ¨åˆ©ç”¨å’Œæ•´åˆç”±å…¶ä»–äh提供的服务方面逐渐完善åQŒæ¥èµ¢å¾—竞争的机会ã€?/p>

6. 软äšg­‘…越单一讑֤‡

另外一个值得一提的Web 2.0ç‰ÒŽ€§æ˜¯Web 2.0已经不再局限于PCòq›_°˜q™æ ·ä¸€ä¸ªäº‹å®žã€‚在对Microsoft的告别徏议中åQŒé•¿æœŸçš„Microsoft开发者戴å¤?#183;斯塔兹(Dave StutzåQ‰æŒ‡å‡ºï¼š”­‘…越单一讑֤‡è€Œç¼–写的有用软äšgž®†åœ¨æœªæ¥å¾ˆé•¿ä¸€ŒD‰|—¶é—´é‡ŒèŽ·å¾—æ›´é«˜çš„åˆ©æ¶?#8221;ã€?/p>

当然åQŒä“Q何的¾|‘络½E‹åºéƒ½å¯è¢«è§†ä¸ø™¶…­‘Šå•一讑֤‡çš„èÊY件。毕竟,即便是最½Ž€å•的互联¾|‘程序也涉及臛_°‘两台计算机:一个负责网¾lœæœåС噍åQŒè€Œå¦ä¸€ä¸ªè´Ÿè´£æµè§ˆå™¨ã€‚而且ž®±å¦‚我们已经探讨˜q‡çš„åQŒåœ¨ž®†ç½‘¾lœä½œä¸ºåã^台的开发中åQŒæŠŠ˜q™ä¸ªæ¦‚念拓展到由多台计算机提供的服务而组成的合成应用½E‹åºä¸­ã€?/p>

但是如同Web 2.0çš„è®¸å¤šé¢†åŸŸä¸€æ øP¼Œåœ¨é‚£äº›é¢†åŸŸä¸­”2.0版的事物”åQ?.0-nessåQ‰åƈ不是全新的,而是对互联网òq›_°çœŸæ­£æ½œèƒ½çš„一¿Uæ›´å®Œç¾Žçš„实玎ͼŒè½¯äšg­‘…越单一讑֤‡˜q™ä¸€è¯´æ³•赋予我们为新òq›_°è®¾è®¡½E‹åºå’ŒæœåŠ¡çš„å…³é”®æ€§çš„‹zžå¯ŸåŠ›ã€?/p>

˜q„今为止åQŒiTunes是这一原则的最佌™Œƒä¾‹ã€‚该½E‹åºæ— ç¼åœîC»ŽæŽŒä¸Šè®‘Ö¤‡å»¶äŽ×到巨大的互联¾|‘后収ͼŒå…¶ä¸­PC扮演着一个本地缓存和控制站点的角艌Ӏ‚之前已¾læœ‰è®¸å¤šž®†äº’联网的内容带åˆîC¾¿æø™®¾å¤‡çš„ž®è¯•åQŒä½†æ˜¯iPod/iTunes¾l„合却是˜q™ç±»åº”用中第一个从开始就被设计用于跨­‘Šå¤š¿Uè®¾å¤‡çš„。TiVo则是另外一个不错的例子ã€?/p>

iTuneså’ŒTiVo也体çŽîCº†Web 2.0的其他一些核心原则。它们本íw«éƒ½ä¸æ˜¯¾|‘络½E‹åºåQŒä½†éƒ½åˆ©ç”¨äº†äº’联¾|‘åã^台的力量åQŒä‹É¾|‘ç»œæˆäØ“å…¶ä½“¾pÖM¸­æ— ç¼˜qžæŽ¥çš„、几乎不可察觉的一部分。数据管理显然是它们所提供的ä­h值的核心。它们也是服务,而非打包的程序(虽然对于iTunes来说åQŒå®ƒå¯ä»¥è¢«ç”¨ä½œä¸€ä¸ªæ‰“包的½E‹åºæ¥ä»…仅管理用æˆähœ¬åœ°çš„æ•°æ®åQ‰ã€‚不仅如此, TiVoå’ŒiTunes都展½CÞZº†ä¸€äº›é›†ä½“智慧的方兴未艾的应用。虽然对于每个情况,其实验都是同¾|‘络IP入口的周旋。iTunes中只有有限的参与体系åQŒè™½ç„¶è¿‘来增加的播客åQˆpodcastingåQ‰å°†˜q™ä¸€è§„则规律性了不少ã€?/p>

˜q™æ­£æ˜¯æˆ‘们希望看åˆîC¼Ÿå¤§å˜é©çš„Web 2.0领域中的一个,随着­‘Šæ¥­‘Šå¤šçš„设备正˜qžæŽ¥åˆ°è¿™ä¸ªæ–°çš„åã^åîC¸­æ¥ã€‚当我们的电话和汽èžR虽不消费数据但却报告数据æ—Óž¼Œå¯èƒ½ä¼šå‡ºçŽîC»€ä¹ˆæ ·çš„程序呢åQŸå®žæ—¶çš„交通监‹¹‹ã€å¿«é—ªæš´èµ°æ—åQˆflash mobsåQ‰ã€ä»¥åŠå…¬æ°‘媒体,只不˜q‡æ˜¯æ–°åã^台的能力的几个早期警½Cºã€?/p>

一½‹‡Web 2.0的投资论æ–?/strong>

风险投资家保¾|?#183;¿U‘å¯d¾|—斯基(Paul Kedrosky åQ‰å†™é“:”关键在于åŽÕd¯»æ‰¾ä¸€¿Uä½ å…Þp¯†ç›¸å·¦çš„,å…ähœ‰å¯æ“ä½œæ€§çš„æŠ•资”。有­‘£çš„æ˜¯ï¼Œæˆ‘们注意到Web 2.0的每个方面都涉及到同å…Þp¯†çš„分歧:每个人都在强调保持数据隐¿Uçš„重要性,而Flickr/Napster½{‰ç­‰åQŒå´ä½¿å…¶å…¬å¼€åŒ–。这òq‰™žåªæ˜¯ä¸ÞZº†åˆ†æ­§è€Œåˆ†æ­§ï¼ˆæ¯”如˜q½æ±‚宠物食在¾U¿ï¼‰åQŒè€Œæ˜¯åœ¨å¯ä»¥ä»Žä¸­åˆ›å»ºå‡ºä¸€äº›ä¸œè¥¿çš„地方发生分歧。Flickr¾~”造了½C‘ÖŒºåQŒNapster创造了收藏的广度ã€?/p>

另外一¿Uçœ‹å¾…è¿™¿UçŽ°è±¡çš„æ–¹å¼åQŒå°±æ˜¯æˆåŠŸçš„å…¬å¸éƒ½æ”¾å¼ƒäº†ä¸€äº›æ˜‚è´µä½†è¢«è®¤ä¸ºé‡è¦çš„ä¸œè¥¿åQŒä»¥ä¾¿å…è´¹èŽ·å¾—ä¸€äº›æœ‰ä»·å€¼çš„æ›„¡»æ˜‚è´µ˜q‡çš„东西。例如,¾l´åŸºç™„¡§‘全书攑ּƒäº†é›†ä¸­çš„¾~–审控制åQŒä»¥ä½œäؓ寚w€Ÿåº¦å’Œå¹¿åº¦çš„回报。Napster攑ּƒäº?#8221;目录å†?#8221;的想法(列出所有销售商正在销售的歌曲åQ‰ï¼Œòq¶å› æ­¤èŽ·å¾—äº†òq¿åº¦ã€‚Amazon 攑ּƒäº†ç”¨äºŽä¸€ä¸ªå®žä½“店面的æƒÏx³•åQŒå´ä»Žè€ŒæœåŠ¡äºŽæ•´ä¸ªä¸–ç•Œã€‚Google攑ּƒäº†å¤§å®—ç”¨æˆøP¼ˆå¼€å§‹çš„æ—¶å€™ï¼‰åQŒå´å¾—到äº?0%的,其要求从前未被满­‘³çš„用户。下面的说法很有一些合气道åQˆå€ŸåŠ›æ‰“åŠ›åQ‰çš„¾_„¡¥žåQ?#8221;你知道,你是对的–整个世界的äh都绝对可以更新这½‹‡æ–‡ç« ã€‚而且你猜怎么着åQŒè¿™å¯¹ä½ æ˜¯ä¸ªåæ¶ˆæ?#8221;ã€?/p>

–内森·æ‰˜å…‹è‹±é¡¿åQˆNat TorkingtonåQ?/p>

7. 丰富的用户体�/strong>

最早可以追溯到1992òq´é­è£ß_¼ˆPei WeiåQ‰å¼€å‘çš„Viola‹¹è§ˆå™¨ï¼Œäº’联¾|‘就被用来在¾|‘页‹¹è§ˆå™¨ä¸­ä¼ é€?#8221;ž®ç¨‹åº?#8221;åQˆappletåQ‰å’Œå…¶ä»–一些活动内宏V€?995òq´Java的引入就是围¾l•着˜q™æ ·çš„小½E‹åºçš„传送。JavaScript和后来的DHTMLéƒ½è¢«ä½œäØ“è½»é‡åž‹æ–¹å¼å¼•å…¥ï¼Œæ¥äØ“å®¢æˆ·ç«¯æä¾›å¯¾~–程性和丰富的用户体验。几òq´ä»¥å‰ï¼Œ Macromedia¾~”造出”丰富的互联网应用½E‹åº”åQˆRich Internet ApplicationsåQ‰ä¸€è¯ï¼ˆè¯¥è¯ä¹Ÿè¢«Flash的竞争者开放源码的Laszlo¾pȝ»Ÿä½¿ç”¨åQ‰ï¼Œä»¥ä¾¿å‡¸æ˜¾Flash不仅可传送多媒体内容åQŒè€Œä¸”可以æ˜?GUIåQˆå›¾å½¢ç”¨æˆïL•Œé¢ï¼‰æ–¹å¼çš„应用程序体验ã€?/p>

然而,互联¾|‘传递整个应用程序的潜能在Google引入Gmail之前åQŒä¸€ç›´æ²¡æœ‰æˆä¸ÞZ¸»‹¹ï¼Œç´§æŽ¥ç€ž®±æ˜¯Google地图½E‹åºåQŒä¸€äº›åŸºäºŽäº’联网的带有丰富用æˆïL•Œé¢ä»¥åŠPC½E‹åº½{‰åŒçš„交互性的应用½E‹åºã€‚在¾|‘络设计公司 Adaptive Path的耶希?詹姆æ–?加莱特(Jesse James GarrettåQ‰çš„一个讨è®ÞZ¼šè®ºæ–‡ä¸­ï¼ŒGoogle所使用的这¾l„技术被命名为AJAX。他写道åQ?/p>

Ajax不是一™åÒŽŠ€æœ¯ã€‚å®ƒå…¶å®žæ˜¯å‡ ™åÒŽŠ€æœ¯ï¼Œæ¯é¡¹æŠ€æœ¯è‡ªíw«éƒ½å¾ˆç¹è£ï¼Œå®ƒä»¬ä»¥å¼ºæœ‰åŠ›çš„å…¨æ–°æ–¹å¼ç»“åˆè“v来。Ajaxæ¶ëŠ›–åQ?/p>

  • ˜qç”¨XHTMLå’ŒCSS实现åŸÞZºŽå„种标准的展½Cºã€?
  • ˜qç”¨æ–‡æ¡£å¯¹è±¡æ¨¡åž‹åQˆDocument Object ModelåQ‰å®žçŽ°åŠ¨æ€æ˜¾½Cºå’Œäº¤äº’ã€?
  • ˜qç”¨XMLå’ŒXSLT实现数据交换和操作ã€?
  • ˜qç”¨XMLHttpRequest实现异步数据‹‚€ç´¢ã€?
  • JavaScriptž®†æ‰€æœ‰è¿™äº›ç»‘定到一赗÷€?

AJAX也是Web 2.0½E‹åºçš„一个关键组ä»Óž¼Œä¾‹å¦‚现在归属Yahoo!çš„FlickråQ?7signals的程序basecampå’ŒbackpackåQŒä»¥åŠå…¶ä»?Google½E‹åºåQŒä¾‹å¦‚Gmailå’ŒOrkut。我们正在步入一个史无前例的用户界面创新阶段åQŒå› ä¸ÞZº’联网开发者们¾lˆäºŽå¯ä»¥åˆ›å¾åQŒåƒæœ¬åœ°åŸÞZºŽPC的应用程序一样丰富的¾|‘络½E‹åºäº†ã€?/p>

有趣的是åQŒè®¸å¤šçŽ°åœ¨æ­£è¢«æŽ¢ç´¢çš„åŠŸèƒ½å·²ç»å­˜åœ¨äº†å¾ˆå¤šå¹´äº†ã€?0òq´ä»£åŽæœŸåQŒMicrosoftå’?NetscapeåQŒéƒ½å¯¹çŽ°åœ¨ç»ˆäºŽè¢«è®¤è¯†åˆ°çš„é‚£äº›åŠŸèƒ½æœ‰æ‰€‹zžå¯ŸåQŒä½†æ˜¯å®ƒä»¬å¯¹äºŽæ‰€è¦é‡‡ç”¨çš„æ ‡å‡†çš„争斗,使得实现跨浏览器的应用程序变得困难。仅在当åˆ?Microsoft¼‹®å®šæ— ç–‘地赢得了‹¹è§ˆå™¨ä¹‹æˆ˜çš„æ—¶å€™ï¼Œè€Œä¸”那时事实上只需要针对一个浏览器标准åQŒç¼–写这¿Uç¨‹åºæ‰æˆäؓ可能。同æ—Óž¼Œè™½ç„¶Firefox在浏览器市场中重新引入了竞争åQŒä½†è‡›_°‘在目前我们还没有看到对互联网标准的破坏性的争夺以至于我们倒退åˆ?0òq´ä»£ã€?/p>

在接下来的几òq´ä¸­åQŒæˆ‘们会看到许多新的¾|‘络½E‹åºåQŒä¸ä»…确实是新颖的程序,而且是对PC½E‹åºä¸°å¯Œçš„网¾lœå†çŽ°ã€‚åˆ°ç›®å‰ä¸ºæ­¢åQŒæ¯ä¸ªåã^台的变革也都为改变那些在旧åã^åîC¸­å ä¸»å¯¼åœ°ä½çš„½E‹åºçš„领导地位创造了æœÞZ¼šã€?/p>

Gmail已经在电子邮件中提供了一些有意思的创新åQŒå°†äº’联¾|‘的力量åQˆéšå¤„可讉K—®ã€æ·±å±‚的数据库能力、可搜烦性)与在易用性方面同PC界面接近的用æˆïL•Œ 面相¾l“合。同æ—Óž¼Œ PCòq›_°ä¸Šçš„å…¶ä»–é‚®äšg½E‹åºåQŒæ­£åœ¨ä»Žå¦ä¸€ç«¯é€šè¿‡å¢žæ·»IM和呈现能力,来蚕食着˜q™ä¸€é¢†åŸŸã€‚我们离集成通信客户端有多少˜qœå‘¢åQŸè¿™äº›é›†æˆé€šä¿¡å®¢æˆ·ç«¯åº”是整合了电子邮äšg、即旉™€šä¿¡å’Œæ‰‹æœºï¼Œòq¶ä¸”应ä‹É用VoIP以便向网¾lœç¨‹åºçš„丰富功能中添加语韌™ƒ½åŠ›ã€‚è¿™¿Uç«žèµ›å·²¾lå¼€å§‹ã€?/p>

我们也很å®ÒŽ˜“çœ?到Web 2.0是如何重新打造地址½¿çš„。一个Web 2.0风格的地址薄将把PC或电话上的本地地址½¿ï¼Œä»…仅当作一¿Uä½ æ˜‘Ö¼è¦æ±‚¾pȝ»Ÿè®°å¿†çš„联¾pÖMh的缓存。同æ—Óž¼Œä¸€ä¸ªåŸºäºŽäº’联网的Gmail风格的异步代理,ž®†ä¿å­˜å‘送或者接收的每个消息åQŒæ¯ä¸ªç”µå­é‚®ä»¶åœ°å€å’Œæ¯ä¸ªä‹É用过的电话号码,òq¶ä¸”创造出½C¾äº¤¾|‘络的启发性算法,来决定当一个答案不能在本地¾~“存中找到时åQŒåº”该提供哪个作为替代。在¾~ºå°‘½{”案的情况下åQŒè¯¥¾pȝ»Ÿä¼šæŸ¥è¯¢æ›´òq‰K˜”的社交网¾lœã€?/p>

一个Web 2.0的字处理½E‹åºž®†ä¼šæ”¯æŒ¾l´åŸºé£Žæ ¼çš„协作编辑,而不仅仅是处理独立的文档。但是该½E‹åºä¹Ÿä¼šæ”¯æŒæˆ‘们期望在基于PC的字处理器中得到的那¿Uä¸°å¯Œæ ¼å¼ã€‚Writely是这¿Uç¨‹åºçš„一个优¿U€èŒƒä¾‹åQŒè™½ç„¶å®ƒž®šæœªå¼•è“vòq¿æ³›å…Ïx³¨ã€?/p>

此外åQŒWeb 2.0革命不会局限于PC½E‹åºã€‚例如,在CRM˜q™æ ·çš„企业çñ”应用½E‹åºä¸­ï¼ŒSalesforce.com展示了网¾lœæ˜¯å¦‚何被用来以服务的方式来传递èÊYä»¶çš„ã€?/p>

å¯ÒŽ–°çš„进入者来è¯ß_¼Œç«žäº‰æœÞZ¼šåœ¨äºŽå……分开发Web 2.0的潜能。成功的公司ž®†åˆ›å»ºå¯ä»¥å‘其用户学习的½E‹åºåQŒåˆ©ç”¨å¯ä¾›å‚与的体系来徏立一¿Uå†³å®šæ€§çš„优势åQŒä¸ä»…在软äšg的界面方面,而且在共享数据的丰富½E‹åº¦æ–šw¢ã€?/p>

Web 2.0公司的核心竞争力

在探索上˜qîC¸ƒå¤§åŽŸåˆ™çš„˜q‡ç¨‹ä¸­ï¼Œæˆ‘ä»¬å·²ç»å¼ø™°ƒäº†Web 2.0的一些主要特性。我们探讨的每一个例子都体现着˜q™äº›åŽŸåˆ™ä¸­çš„ä¸€ä¸ªæˆ–å¤šä¸ªåQŒä½†æ˜¯å¯èƒ½ä¸æ»¡èƒö其他的原则。因此,让我们通过æ€È»“æˆ‘ä»¬è®¤äØ“æ˜¯Web 2.0公司核心竞争力的一些方面,来结束本文ã€?/p>

  • 服务åQŒè€Œä¸æ˜¯æ‰“包的软äšgåQŒå…·æœ‰é«˜æˆæœ¬æ•ˆç›Šçš„可伸羃性ã€?
  • 控制独特的、难以再造的数据源,òq¶ä¸”用户­‘Šå¤šå†…容­‘Šä¸°å¯Œã€?
  • 把用户作为共同开发者来信ä“Qã€?
  • 利用集体智慧ã€?
  • 通过客户的自服务来发挥长ž®„¡š„力量ã€?
  • 软äšg­‘…越单一讑֤‡ã€?
  • 轻量型用æˆïL•Œé¢ã€å¼€å‘模式、和商业模式ã€?

今后一个公司要宣称æ˜?#8221;Web 2.0″åQŒå°±è¦å°†å…¶ç‰¹æ€§åŒä¸Šè¿°åˆ—表相测试。越½W¦åˆž®Þp¶Šåå‰¯å…¶å®žã€‚不˜q‡è¦è®îC½åQŒåœ¨æŸä¸€ä¸ªé¢†åŸŸçš„卓越表现åQŒå¯èƒ½ä¼šæ¯”对七大原则中的每个都浅ž®åˆ™æ­¢ï¼Œè¦æ›´ä¸ºæœ‰æ•ˆã€?/p>

Web 2.0的设计模�/strong>

åœ?#8221;模式语言”åQˆA Pattern LanguageåQ‰ä¸€ä¹¦ä¸­åQŒå…‹é‡Œæ–¯å¤šå¤«?亚历山大åQˆChristopher AlexanderåQ‰äØ“¾_„¡‚¼æè¿°å¯¹äºŽä½“ç³»¾l“构问题的解å†Ïx–¹æ¡ˆï¼Œå¼€äº†ä¸€¿Uæ ¼å¼ä¸Šçš„处斏V€‚他写道åQ?#8221;每个模式都描˜q°ç€ä¸€¿Uåœ¨æˆ‘们的环境中一遍又一遍地出现的问题,òq¶å› æ­¤æ˜qîCº†å¯¹è¯¥é—®é¢˜çš„æ ¸å¿ƒè§£å†Ïx–¹æ¡ˆã€‚以此方式你可以使用该方案上百万‹Æ¡ï¼Œè€Œä»Žä¸éœ€è¦é‡å¤ä½œåŒæ ·çš„事情ã€?#8221;

1. é•¿å°¾

ž®åž‹¾|‘站构成了互联网内容的大部分内容åQ›ç»†åˆ†å¸‚场构成了互联¾|‘的大部分可能的应用½E‹åºã€‚所以,利用客户的自服务和算法上的数据管理来延äŽ×到整个互联网åQŒåˆ°è¾¾è¾¹¾~˜è€Œä¸ä»…仅是中心,到达长尾而不仅仅是头部ã€?/p>

2. 数据是下一个Intel Inside

应用½E‹åº­‘Šæ¥­‘Šå¤šåœ°ç”±æ•°æ®é©±åŠ¨ã€‚å› æ­¤ï¼šä¸ø™Ž·å¾—竞争优势,应设法拥有一个独特的åQŒéš¾äºŽå†é€ çš„æ•°æ®èµ„源ã€?/p>

3. 用户增添价�/p>

对互联网½E‹åºæ¥è¯´åQŒç«žäº‰ä¼˜åŠ¿çš„å…³é”®åœ¨äºŽåQŒç”¨æˆ·å¤šå¤§ç¨‹åº¦ä¸Šä¼šåœ¨ä½ æä¾›çš„æ•°æ®ä¸­ï¼Œæ·ÕdŠ ä»–ä»¬è‡ªå·±çš„æ•°æ®ã€‚å› è€Œï¼Œä¸è¦ž®†ä½ çš?#8221;参与的体¾p?#8221;局限于软äšg开发。要让你的用户们隐式和显式地ä¸ÞZ½ çš„程序增æ·ÖM­h倹{€?/p>

4. 默认的网¾lœæ•ˆåº?/p>

只有很小一部分用户会不嫌麻烦地ä¸ÞZ½ çš„程序增æ·ÖM­h倹{€‚因此:要将默认讄¡½®å¾—ä‹Éèšåˆç”¨æˆ·çš„æ•°æ®ï¼ŒæˆäØ“ç”¨æˆ·ä½¿ç”¨½E‹åºçš„副产品ã€?/p>

5. 一些权力保�/p>

知识产权保护限制了重用也é˜È¢äº†å®žéªŒã€‚因而,在好处来自于集体智慧而不是私有约束的时候,应确认采用的门槛要低。遵循现存准则,òq¶ä»¥ž®½å¯èƒ½å°‘的限制来授权。设计程序ä‹É之具备可¾~–ç¨‹æ€§å’Œå¯æØœåˆæ€§ã€?/p>

6. 永远的测试版

当设备和½E‹åº˜qžæŽ¥åˆîCº’联网æ—Óž¼Œ½E‹åºå·²ç»ä¸æ˜¯è½¯äšg作品了,它们是正在展开的服务。因此,不要ž®†å„¿Uæ–°ç‰ÒŽ€§éƒ½æ‰“包到集大成的发布版本中åQŒè€Œåº”ä½œäØ“æ™®é€šç”¨æˆ·ä½“ 验的一部分来经常添加这些特性。吸引你的用æˆäh¥å……当实时的测试者,òq¶ä¸”记录˜q™äº›æœåŠ¡ä»¥ä¾¿äº†è§£äºÞZ»¬æ˜¯å¦‚何ä‹É用这些新ç‰ÒŽ€§çš„ã€?/p>

7. 合作åQŒè€ŒéžæŽ§åˆ¶

Web 2.0的程序是建立在合作性的数据服务¾|‘络之上的。因此:提供¾|‘络服务界面和内容聚合,òq‰™‡ç”¨å…¶ä»–äh的数据服务。支持允许松散结合系¾lŸçš„轻量型编½E‹æ¨¡åž‹ã€?/p>

8. 软äšg­‘…越单一讑֤‡

PC不再是互联网应用½E‹åºçš„唯一讉K—®è®‘Ö¤‡åQŒè€Œä¸”局限于单一讑֤‡çš„程序的价值小于那些相˜qžæŽ¥çš„程序。因此:从一开始就设计你的应用½E‹åºåQŒä‹Éå…‰™›†æˆè·¨­‘Šæ‰‹æŒè®¾å¤‡ï¼ŒPC机,和互联网服务器的多种服务ã€?/p>

奥莱理媒体公司(O’Reilly Media Inc.) ä¸Õd¸­å…¼CEO 提姆·å¥¥èŽ±ç†ï¼ˆTim O’ReillyåQ‰æŽˆæƒåˆŠç™?¾ŸŽå›½å¯†è¥¿æ ¹å¤§å­¦èµ„æ·ÞpÊY件分析师玄伟剑提供全文翻译ã€?/strong>

节略版请参见1121期杂�/strong>



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º Ñ®ÒØÏØ| ãëÉÏÏØ| ÕżҴ¨| ¶«Ì¨ÊÐ| ³¤¸ðÊÐ| À³ÎßÊÐ| Õê·áÏØ| ÇåºÓÏØ| èÈÑôÏØ| ¸Á¶ûÏØ| ³à·åÊÐ| ¿µ¶¨ÏØ| ÂÞÆ½ÏØ| ±Ï½ÚÊÐ| ÄÇÇúÏØ| ɳƺ°ÓÇø| ÓñϪÊÐ| èµÉ½ÏØ| Ê®ÑßÊÐ| ¾²°²Çø| Ðì»ãÇø| Ç­ÄÏ| ÏæÌ¶ÏØ| À¼ÏªÊÐ| ÔÞ»ÊÏØ| ÉñÅ©¼ÜÁÖÇø| ¾«ºÓÏØ| ³ÉÎäÏØ| µÆËþÊÐ| ̽Ë÷| Çå·áÏØ| ÇåË®ÏØ| ÁÙâ¢ÏØ| ¡°²ÏØ| ÃñÀÖÏØ| ÏãºÓÏØ| ¹ÌÑôÏØ| À¼Î÷ÏØ| ÓÑÒêÏØ| ÓÈÏªÏØ| Т¸ÐÊÐ|