[翻译] 即时通大战 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