塗抹ORACLE--第1章ORACLE傳奇(1)

zecaro發表於2010-12-19
與其他知名軟體公司創業者多是技術精湛的開發高手不同,Oracle創始人Larry Ellison並非在技術上有什麼獨特創新或者過人之處,這和微軟的Bill Gates、Google的Larry Page,國內知名公司如百度的李彥宏、網易的丁磊有差異,但這並不影響Oracle成為一家偉大的公司,甚至一度是大型資料庫的代名詞。 1.1 起源 如今Oracle資料庫佔據著整個資料庫軟體領域近一半的市場份額,在大型資料庫領域更是影響力巨大。關於Oracle資料庫的故事要從1970年的6月,IBM公司Edgar F. Codd發表的那篇論文“大型共享資料庫的關係模型”(A Relational Model of Data for Large Shared Data Banks)談起,正是這篇論文拉開了關係型資料庫的大幕。當時在行業中受歡迎的還是層次型資料庫軟體,並且最著名也最典型的層次型資料庫系統就是IBM公司的Information Management System(IMS),有意思的是,當時IBM並沒有預見到職員Edgar F. Codd發表論文後會帶來一股新的潮流,這股潮流雖然不會將其徹底葬送,但是卻直接導致其資料庫領域第一的寶座不保。   話說1977年6月,Larry Ellison跟合夥人Bob Miner和Edward Oates(這兩個人也是Larry一生中最重要的合作伙伴,其中Bob Miner還曾是Larry的老領導,這位仁兄絕對是位技術天才)一起在美國矽谷建立了一家計算機公司——Software Development Laboratories(SDL)。公司創立之初,Bob Miner任總裁(還是Larry Ellison的領導,雖然Larry持有新公司60%的股份),Edward Oates任副總裁,時年已經32歲的Larry依然默默無名(讀了三所大學都沒能畢業),只是一個普通的軟體工程師,並且因為受限於合同問題還在另一家公司上班。   不過,沒過多久他們就招來了第一名員工Bruce Scott,這可是一個重量級人物,擁有著紀念意義的名字,所以必須在這裡提及。接觸過Oracle資料庫的朋友是否還記得Oracle資料庫中的一個預設使用者SCOTT,沒錯,就是這個Bruce Scott,而SCOTT使用者的密碼tiger,是當時Scott養的一隻貓的名字。你看看,誰說程式設計師不懂得生活。Scott那真是相當有藝術、有品味、有激情、有愛心哪,用本山大叔的話講,那是相當有才。   建立初期,他們主要與其他公司合作進行開發(按照今天的流行詞彙,叫外包),哥幾個在三十年前就預見到這行不好乾,費時費力還不一定掙得著錢。他們覺著最省事的方式就是隻開發一套程式,然後在市場上反覆賣、反覆數錢就行了,因此他們決定從事通用軟體的開發。不過,此時他們還沒有想好具體做哪方面軟體,直到他們看到了Edgar F. Codd的那篇論文,以及其他幾篇與關係型資料庫相關的文章。   當然,在後來所有描述Oracle公司發展歷史的文章中,關於這個決定的描述,都一致認為當時Ellison預見到了資料庫軟體的巨大潛力(是否真是如此?我不知道,但是我認為這就是趕上了機遇),於是,他們將開發的方向定為可用於商業應用的“關係型資料庫管理軟體”(簡稱RDBMS,一定要記住這個詞,至今Oracle已經升級到了11g,但是其程式目錄中仍然有一個rdbms目錄)。   此時,另外幾個傳奇公司,微軟已於兩年前,即1975年成立,Bill Gates,這位Larry Ellison視為最強對手的技術天才(與Larry Ellison不同喲,Bill Gates可是個真正的技術高手)還憋在自己家的車庫中琢磨著寫MS-DOS1.0。而蘋果也於一年前,即1976年成立,Steve Jobs跟他的合作伙伴Steven Wozniak也還在自己家的車庫中研製蘋果I號。   這三個如今在業內影響力巨大的公司,雖然產品、理念、文化幾乎完全不同,但卻有著近乎同樣的成功模式,創立者中都有一個技術天才和一個偏執狂一樣的人物,比如微軟的Bill Gates有Paul Allen,蘋果的Steve Jobs有Steven Wozniak(也是個當之無愧的技術奇才),而Larry Ellison有Bob Miner。   再回到SDL,1979年,其更名為Relational Software INC.,簡稱RSI,畢竟一個公司起名叫什麼實驗室還是不太合適,甭管它究竟實驗什麼。為了突出自己的產品,RSI在1983年又再次將公司改名為Oracle(Oracle System Corporation),既是公司名也是產品名,這個名字源自於他們曾為中情局做過的一個專案的名稱,也是他們於1979年推出的第一版產品的名字,字典中對該詞的解釋有“神喻”的含義(看過駭客帝國?對,象徵意義都是一樣的,說明老外起名也要講究吉利,得天時之類寓意)。   如今的Oracle使用者眾多,影響力巨大,但在當時不過是個不知名的小企業和不知名的資料庫軟體,1979年RSI釋出了可用於DEC公司的PDP-11計算機上的商用Oracle產品,雖然推出的產品是第一個版本,但基於市場策略和商業銷售方面的考慮,RSI公司宣稱這是該產品的第二版,但實際上就是第一版,不過這也正是Larry Ellison高明的地方,直接將新推出的產品定義為第二版,打消了使用者認為第一版不夠成熟的顧慮。事實證明,這一策略確實有效(對比看看,現在是2009年,如果說當前釋出的初始軟體版本仍然從1.0開始,並且這還是業內潮流的話——Beta版我們們就不說它,不得不說,1979年時的Larry Ellison在產品營銷上起碼領先國內30年)。不過這個版本基本上就是個玩具,除了做些簡單的關係查詢外,什麼也做不了。   Oracle資料庫最初的兩個使用者是美國中央情報局和海軍情報所,在那個時代不同機構往往同時用多種計算機,而且也沒有軟體可移值性之類的概念,20世紀70年代末期和80年代早期的軟體,一般都設計成在單一作業系統上執行,因此很快就遇到新的需求:Oracle能不能在不同的作業系統上執行?使用者提出的需求,迫使Ellison和Miner作出了重要的決定:Oracle第三版全部用C語言開發。這在當時是有風險的,C語言也是剛剛推出,但最終他們獲得了成功,因為所有機器都能支援C語言,而且C編譯器便宜且有效,還擁有很好的移植性,因此Oracle又擁有了一項關鍵特性,即“可移植性”。   此後,Larry Ellison便向客戶宣稱Oracle能執行在所有的機器上,雖然這到現在都不可能實現(Oracle公司目前宣稱的是能夠在100多種不同的計算機上執行,沒說所有的喲),但必須承認,這也是非常聰明的市場策略,那個年月還沒有PC這個概念,各種大型計算機和作業系統都不一樣,因此大的機構通常更願意購買一種能通用的資料庫(如果有的話)。此時的Larry Ellison絕對算得上大話王,這哥們完全將市場放在第一位,堅信較早佔領大塊的市場份額才是最重要的,因此雖然早期版本的Oracle幾乎無法正常工作,到處是Bug,程式錯誤很多,使用者也抱怨不斷,但有意思的是Oracle公司的早期使用者似乎不在意損失金錢和資料(FBI都沒意見),Larry Ellison也只管持續不斷吹噓,同他們描述產品將能達到的美好功能(雖然現在沒有)。如果Larry Ellison擁有匹諾曹血統的話,美國就不用研製太空梭、宇宙飛船、運載火箭了,想去月球的話順著他的鼻子向上爬就行了。幾年後,Ellison總結了公司早期對待客戶的態度:“喏!這是我們的軟體,拿去用吧!敢不敢?” 1.2 發展   Oracle的第三個版本(實際是第二版,後面再說到版本號就不再強調,大家知道是怎麼回事兒就行了)在1983年3月推出,除了增加了可移值性的特性外,在軟體方面最重要的改進是引入事務的概念,即SQL要麼成功、要麼失敗,取決於事務是否提交;同時還引入了另一關鍵特性——寫不阻塞讀(透過回滾段中的資料實現查詢和回滾事務,避免了讀鎖定),對於大訪問量、高併發的應用,這點非常重要。因為這一特性,想要在Oracle中實現讀鎖是非常麻煩的(即使你主動希望實現這一功能,不過,應該不會有這樣BT需求吧)。   時隔一年多,Oracle於1984年10月推出了第4版。在這一版本,穩定性有不小的提升,用Miner的話說就是達到了“工業強度”,Miner的話還是靠譜的,起碼比Ellison靠譜,不過儘管如此,還不足以達到令人滿意的地步。這一版最重大的改進是增加了讀一致性(Read Consistency)的特性(即一個會話修改資料時,只要不提交,其他的會話就看不到這項修改,要記住這個概念,這是Oracle極重要的特性之一)。雖然說產品始終不夠健壯,但銷售人員表現出色,這一年Oracle公司總收入達到1270萬美元,其中表現最出色的自然是Larry Ellison(確實能吹),比如有一次Ellison聽說其當時最大的競爭對手Ingres發明了一種新技術——分散式查詢,沒過幾天Oracle就刊登廣告發布了SQL之星:第一個分散式查詢資料庫(其實並沒有這樣的產品)。   Ellison就是這樣,想象著產品應該怎麼樣,然後再去實現,因此在宣傳Oracle的時候總是誇大其詞(貌似至今未改),但他就是能把軟體賣出去,而且還賣得不錯,這點實在讓人驚奇。中國有句古話說的是“男怕入錯行”,Larry Ellison大師親身向我們證實了這句中國古老諺語的正確性,比起之前幹軟體開發時的慘淡,他做銷售可謂風生水起。   1985年4月,Oracle釋出了第5版,據稱這也是首批支援Client/Server模式執行的RDBMS產品,而且一年後釋出的5.1升級版,終於新增了分散式查詢功能(還算不錯,最終還是實現了的,雖然晚了兩年),即一次查詢、訪問儲存於多個位置上的資料。當時Oracle主要競爭對手是Ingres資料庫,由Berkeley大學的Michael Stonebraker教授負責設計,當時Ingres資料庫的市場份額增長速度甚至比Oracle還要快。幸運的是,關鍵時刻又是IBM伸手拉了Ellison一把,這回也不是主動的。   鑑於Ingres的高速發展,IBM擔心其把所使用的查詢方式QUEL變成標準,會對自己的SQL形成重大威脅。Ingres使用的QUEL(Query Language,查詢語言)查詢方式和IBM的SQL(Structured Query Language,結構化查詢語言)大不相同。QUEL由Stonebraker教授發明,在某些地方甚至優於SQL。IBM多番思量後,決定把SQL提交給資料庫標準委員會。這就讓Oracle找到了機會,因為Stonebraker教授並不打算把QUEL提交給資料庫標準委員會(教授多是學院派,壓根就不認同這種標準化的行為,反而覺著這種方式將會扼殺新技術的發展)。於是,Ellison藉助這個天賜良機,大力宣揚Oracle與IBM的相容性。   同時,Ingres還犯下了一個致命的錯誤,很晚才開發PC上執行的版本,而Ellison和Bill Gates一樣都看到了PC市場的巨大潛力,因此Oracle在4.0時就有了PC上執行的版本(雖然實際上沒啥用),這讓Ellison再一次掌握了宣傳利器:Oracle能夠執行在PC上,Ingres卻不能(弱化對手優勢,化解自己弱勢是他們最拿手的本領),再加上Oracle公司銷售上的強勢,以及Ingres過分關注技術而不關心市場的學術化運作方式,最終,SQL在1986年正式成為了工業標準。而Ingres……你聽說過這家公司嗎?   1986年3月12日,是Oracle公司歷史上不可忘卻的一天,其股票以每股15美元上市,當日收盤價為20.75美元,公司市值達到2.7億美元。24小時之後,即3月13日,微軟以每股21美元的價格上市,收盤時則上漲到28美元,公司市值達到7億美元,是Oracle的近3倍。Oracle的上市給Ellison帶來了9300萬美元的身家,但第二天微軟上市後,Bill Gates擁有的股票市值超過了3億美元,Oracle和Ellison在短暫的閃亮登場後,就開始長久地籠罩在微軟和Bill Gates的陰影之下,從這一天(這可能也是Ellison敵視微軟的開始)起,這兩家同樣極其成功的公司就難分難解地聯絡在一起。 ================================================= 全書目錄:http://space.itpub.net/7607759/viewspace-622699 樣書預覽:http://space.itpub.net/7607759/viewspace-622515 馬上購買:
連結:http://space.itpub.net/7607759/viewspace-623144

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23650854/viewspace-682096/,如需轉載,請註明出處,否則將追究法律責任。

相關文章