[翻譯] 即時通大戰 Chat Wars(上篇)

作者: Killercat (殺人貓™)   2014-04-26 05:25:50
http://blog.rayer.idv.tw/posts/195203-translation-chat-wars-1
本文以Markdown格式書寫
寫在前面 : 這篇文章主要是在談早期MSN vs AOL的大戰。這場大戰其實結果還滿清楚的,MSN打倒了AOL Instant Messenger(AIM),成為未來十年內最成功的IM(Instant Messenger)。這篇文章提到的不止是商場策略,而且還提到了許多技術方面的東西,尤其是Microsoft怎麼「破解」AOL Service Server
David Auerbach,早期的MSN主要開發工程師之一。
原文網址 : [n+1 Magazine - Issue 19](https://nplusonemag.com/issue-19/essays/chat-wars/)
#Chat Wars - 即時通大戰 - David Auerbach
在1998年那年的夏天,我從學校畢業加入了微軟在華盛頓州,雷蒙德市的辦公室。我一進去就被分配到草創時期的MSN Messenger Service的即時通訊軟體開發的行列。老實講,這來自於行銷部門名字真是糟透了,極端的笨拙,杯底朝天的創意,大概就是他們以後常常被嘲笑的形容詞。Buddy List? CUC Me? MSN Messenger?不,我們叫他MSN Messneger Service吧。在之後的文章我們會簡稱這東西為Messenger。
**(譯註 : 其實台灣多半還是叫他MSN,這名字單看縮寫其實是還好啦....)**
在當時即時通三大巨頭是AOL Instant Messenger(AIM),Yahoo跟ICQ。讓我們看看當年的情勢:AOL當年(1990年代)靠著大量發送,幾乎是把光碟當傳單塞到你信箱的宣傳攻勢,成為了全國最大的撥接服務提供者。而重點是:所有AOL的用戶都自動的成為了AIM的客戶,這數量可是達到了一千萬註冊量。而緊追在後的Yahoo跟ICQ則各有數百萬的客群,哇,這在90年代真的是一個相當巨大的數字概念。
我隨即意識到了這將會是一個相當龐大的計劃:在用戶端,我們要做一個漂亮美觀的界面,讓使用者能夠看到他們的朋友上下線,讓他們能夠自由更換整個UI上的字形字體顏色,看起來要很酷...等等的功能。這代表著,我們要弄出一個用戶端程式不止要有著其他競爭對手的功能,還要比他們更酷一點!而Server端的開發者則需要弄出一套機制來跟各個用戶端溝通,包含著告訴這些用戶端說你的朋友上下線訊息,這樣你的用戶端才能在適當時間通知你「Gordon上線啦」的視覺效果。Server端要做的事情不止於此,微軟後來為此買下了一家叫做Hotmail的公司(對,就是我們以ꬊ廒籅儐慵otmail),Server端還得負責把整個Messenger系統跟Hotmail整合起來,而Hotmail本身就擁有數千萬的用戶**(譯註 : 原文是Tens of Millions,不過據我所知當年Hotmail客戶並沒有那麼多,這邊應該有點誇飾了)**,而最迫切最關鍵的地方在於必須把hotmail用戶資料跟Messenger整合起來讓他們可以用email登入。恩,這是一個很不簡單的工作,真的。
這個Team最早只有十個人,慢慢地這個team成長到了好幾倍的大小。我們在做用戶端的時候總是在討論著哪些功能是一定要做的,哪些功能是我們想要的,哪些功能是我們目前實在是搞不定的。我當年是組裡面最年輕的一個,只有20歲,以當時的講法就是青澀毫無經驗。我一開始被分配去做一個小功能,慢慢的越來越大的責任就落在我身上了。我當時在做的就是那個輸入訊息的視窗,就是夠老的人應該都記得的「在此輸入訊息...」的那個部分。這東西可沒直覺上那麼單純簡單,我在上面花了很大的苦工,我翻修了字體控制的代碼,而且還得讓他相容於非拉丁語系的那些奇ꤊギ漲r元 : 中文,日文,韓文,印度文,還有左右順序跟普通文字相反的希伯來文以及阿拉伯文。處理著好友上線產生的popup視窗,讓它甚至能四處被拖拉,還有在上面植入惡名昭彰充滿著bug的online-only bars **(譯註:老實講我也不知道什麼是online-only bar,有誰能補充一下嗎?)** 。處理「關閉程式」這段也是個很棘手的工作,要讓每個視窗整齊劃一利落的關閉,能正確的回收占用的系統資源,在這些前提下還得讓程式不當掉 **(譯註:寫過的大概才知道當年的Win16 API在這方面真的是既麻煩且棘手,不是現代人能想像的 =P)** 。
搞定了客戶端以後,我們可以喘一口氣等Server
Team搞定跟Hotmail整合的屎缺。我們除了修好了所有看得到的bug以外,還加上了一些純粹是為了好玩而加上去的小功能。不過,這產品還沒推出以前,微軟其實已經預見到要吸引新用戶的其中一個最大的困難點就是:各種即時通其實彼此是不互通的。AIM跟Yahoo是無法通話的,當然也無法跟ICQ通,所以,自然他們都沒辦法跟Messenger的用戶互相彼此通訊,這對吸引用戶來使用Messenger來講可不是好事,誰想login以後看到上面只有自己孤單一個人?AOL擁有著目前最大的客戶數量,自然我們就會先把腦子動到這上面去:如何讓Messenger的用戶可以同時Login到Messenger
跟AOL的Server,用Messenger的客戶端就能跟兩種服務的使用者聊天。這個計劃我們稱之為「橋接」(Interop)
這真的要幹下去,老實講手法還挺粗暴的,但原理也意外的簡單。一個程式是靠一個預先定義好的Protocol(協定)去跟Server溝通,這個協定就是一種對話的模板,定義著來回「對話」的解釋方法。當年最廣泛被使用的是用於www webpage上的HTTP protocol,這個是架構在TCP/IP(一種Internet最基礎的底層通訊協定)之上的一種通訊協定。網路提供者使用者這些通訊協定來當作互相傳遞訊息的主要工具。有些通訊協定是公開的,有著完整的定義文件的,每個人都在使用的,最著名的例子就是前面提到的HTTP,
TCP/IP等等的通訊協定。然而也有些是私有的,有著智慧財產權的,文件不公開的通訊協定,比方說AIM使用的通訊協定"OSCAR"(Open System for CommunicAtion in Realtime, **譯註:說來諷刺,名字有個Open呢** )。這並不是公開的通訊協定,所以事實上我並不知道該怎麼去解讀它。不過,解讀最好的方法就是收集足夠量的資訊。我跟我老闆就註冊了個AIM的帳號,安裝他們的用戶端,然後攔截跟觀察這個用戶端跟AIM的Server怎麼對話的。一個簡單的例子就像下面這樣
2A 02 EE FA 00 B0 00 0E 00 06 00 00 9B 7D BD 28 *............}.(
33 41 35 36 35 43 38 37 00 03 00 03 00 28 0D 52 3A565C87.....(.R
45 41 4C 52 65 67 72 65 73 73 6F 72 00 00 00 03 EALRegressor....
00 01 00 02 00 10 00 0F 00 04 00 00 00 18 00 03 ................
00 04 3E 4C BE 8C 00 01 00 00 00 05 00 68 00 02 ..>L.........h..
00 08 75 73 2D 61 73 63 69 69 00 03 00 02 65 6E ..us-ascii....en
00 01 00 48 69 2E 2E 20 41 6E 79 62 6F 64 79 3F ...Hi.. Anybody?
大多數的訊息其實都是難以解讀的,不過封包中間倒是有著我們聊天的明碼訊息。"Hi... Anybody?"
當我透過打進這行字的時候,我經由從我的網路封包截取到一段內容,包含著同樣的字串。這通訊協定的封包裡面,某些部分看起來在每次傳送的時候都不太一樣,但是有些地方卻是很明顯的每次都相同。我們嘗試著用開發中的client,把抓取到的封包中間明碼的部分替代為其他的對話,然後把它送回AOL的Server。恩...AOL會發現有些奇怪的Message來自於雷蒙德市?不不不,這不太可能,他們可是有著數以百萬的使用者呢,而我們卻是實實在在的偷用他們的通訊協定在跟他們Server「對話」。我們第一次的簡單嘗試中,我們並沒有發送太多的訊息。老實說,我跟我的主管
其實並不認為這個「小花招」會被採用,這功能看起來可疑性真是爆表啊!這功能大概在正式Release以前就會被拿掉吧。但是,我們錯了,上頭還滿喜歡這功能的。所以,就在1999年7月22號,Microsoft正式推出了MSN Messenger Service,也正式宣告加入即時通市場的戰局
作者: tiefblau (tiefblau)   2014-04-26 14:58:00
我好喜歡這種非純技術帶點講故事的文章,尤其攻防戰xd
作者: tiefblau (tiefblau)   2014-04-26 14:59:00
clippy除非你超年輕,不然一定碰過以前word那個小幫手阿
作者: tiefblau (tiefblau)   2014-04-26 15:01:00
迴紋針型,除了看他跳舞沒有啥功能的鬼東西,還有海豚型
作者: PsMonkey (痞子軍團團長)   2014-04-26 15:29:00
迴紋針已經很後來了 [自爆]
作者: GoalBased (Artificail Intelligence)   2014-04-27 00:38:00
排版有點怪怪的
作者: Killercat (殺人貓™)   2014-04-27 13:15:00
那是因為用硬貼上BBS的關係 會被255字元截斷
作者: tiefblau (tiefblau)   2014-04-27 19:16:00
這個嘛... 小弟現在大學生 原來迴紋針還是很後來 =口=
作者: PsMonkey (痞子軍團團長)   2014-04-27 22:45:00
Office 97 是一隻小黃狗 XD (版主帶頭岔題 [逃])
作者: KAOKAOKAO (鬼斗)   2014-07-27 06:48:00
推office97是狗,不過也可以改啦

Links booklink

Contact Us: admin [ a t ] ucptt.com