وقتی دانشگاه میشیگان خطوط تلفن قدیمی را حذف کرد تا تلفن های جدید که توانایی برقراری ارتباط از طریق اینترنت را داشتند جایگزین کند، وظیفه ماریوس اریکسن ( Marius Eriksen ) این بود که نرم افزاری طراحی کند تا از طریق آن بتوان مکالمات بین دانشجویان را استراق صمع کرد.

می توان گفت این تازه اول کار بود و مربوط به دورانی می شد که هنوز اریکسن در میشیگان مشغول به تحصیل بود. او در این دانشگاه تحت هدایت پروفسوری دوست داشتنی و کمی عجیب به نام پیتر هانیمن ( Peter Honeyman ) در رشته علوم کامپیوتر به تحصیل می پرداخت. هانیمن که در بین شاگردانش و دانشجویان مرکز ادغام فناوری اطلاعات به نام دکتر هانی مشهور بود، بیشتر به این خاطر شناخته می شد که بدون اینکه تکلیفی برای شاگردانش تایین کند، به آنها تکلیف می داد. اریکسون به یاد می آورد « او یک فکر جالب را به وجود می آورد، چند راهنمایی در موردش ارائه می داد اما هیچ وقت نمی گفت چه کار باید بکنید. در این روش آموزشی کاملا آزاد، بدون تقریبا هیچ راهنمایی خیلی زود سعی می کنید با دیگران به مشورت و همکاری بپردازید تا به نتیجه برسید. »

Twitter engineer named Marius Eriksen. Photo: Ariel Zambelich/Wired

در این مورد، دکتر هانیمن فقط چند راهنمایی کلی در مورد  پروژه ای که در رابطه با تلفن های جدید اینترنتی میشیگان به وجود آمده بود ارائه داد و این همه آن چیزی بود که اریکسن به همراه یک دوست فارغ التحصیل شده به نام نیلز پروس ( Neil Provos ) برای شروع پروژه در اختیار داشتند. ابتدا پروس ابزاری ساخت که می توانست تماس های صوتی دانشگاه را استراق صمع کند، سپس اریکسن تماس های تصویری را هک کرد.

هدف این بود که به مدیریت دانشگاه میشیگان نشان دهند که تلفن های جدید تا چه حد آسیب پذیر هستند. اما همین آزمایش کاملا آزادانه به اریکس نشان داد که آزمایش تا چه حد ارزشمند است – آزمایش برای گسترش مرزهای نرم افزار های مدرن. اریکسن می گوید « طبیعت آزمایشی این چیزها بسیار تاثیرگذار بود – مثلا فهمیدن این که یک پروژه چیزی نبود که روی کاغذ آن را بنویسید. این آزمایش ها به من آموخت که به هیچ برنامه و نقشه ای نیاز ندارم. اگر برای حل یک مشکل به جای اینکه فکر خاصی در ذهنتان داشته باشید، سعی کنید خود مشکل را متوجه بشوید قطعا به نتایج بهتری خواهید رسید. »

این همان فلسفه ای است که اریکسن آن را همراه با خود به توییتر آورد. اریکسن عضوی از گروه کوچکی است که زیرساخت های بنیادی این شبکه اجتماعی و سرویس میکروبلاگینگ محبوب را ساخته اند، با این اعتقاد که این فلسفه می تواند روند دائمی گسترش تعداد کاربران، پیام ها و البته تبیلیغات را فراهم کند. این مهم ترین کار این شرکت ۷ ساله است، اما همچنان ریشه آن به آزمایش هایی باز می گردد که اریکسن در منزلگاه تحقیقاتی CITI دانشگاه میشیگان و زیر نظر پیتر هانیمن آموخت و انجام داد.

در میان بزرگان عرصه وب، این گرایشات آزمایشی بیش از همه به گوگل نسبت داده می شود، جایی که مهندسانش به این تشویق می شوند که با « ۲۰ درصد وقت » خود هر کاری که می خواهند انجام دهند. اما اریکسن که پیش از این یکبار روی زیر ساخت های خودستای گوگل کار کرده بود، باور دارد که حداقل در مرکز داده ها، برای توییتر فضای بس بازتر و گسترده تری برای اینگونه آزمایشات آزاد وجود دارد. بر خلاف گوگل – که سعی می کند بهترین نرم افزارها را بسازد و شدیدا از نرم افزارهایش محافظت کند – توییتر تلاش می کند حتی در ساختن پایه ای ترین سیستم هایش به صورت متن باز یا Open Source عمل کند.

Twitter_Freedom_02

اریکسن می گوید « توییتر آنچنان بزرگ نیست که بخش هایی از نرم افزار یا سیستم هایش طوری ساخته شوند که برخلاف انتظار کار کنند. اینجا عمل کردن به صورت متن باز کاملا قابل قبول است. اگر می خواهید چیز جدید و متفاوتی بسازید و استفاده کنید می توانید این کار را بکنید، اما در گوگل شما مجبور هستید مشکلات را بر اساس زیرساخت هایی حل کنید که تماما توسط گوگل تعیین شده اند. »

یک مثال مناسب در همین رابطه، آخرین پروژه اریکسن یعنی Finagle است. نه فقط به این خاطر که Finagle یک نرم افزار متن باز است، به این معنی که همه می توانند از آن استفاده کنند. بلکه این پروژه در واقع راهی است برای بازنویسی کامل توییتر، یک بازنویسی از آغاز تا پایان. تحت مدیریت این شبکه میکروبلاگینگ، چنین آزمایشی هیچ حد و مرزی را نمی شناسد – حداقل نه در حال حاضر.

درون مغز یک هکر: اریکسن و Finagle

توییتر اساسا با یک زبان برنامه نویسی به نام Ruby ساخته شد. اما کم کم که توییتر رشد کرد، مهندسان آن متوجه شدند که به یک زبان برنامه نویسی دیگر نیاز دارند تا بتوانند تغییرات عمده ای در توییتر ایجاد کنند و به نوعی آن را از نو بسازند. آنها از زبان برنامه نویسی Ruby به یک زبان دیگر به نام Scala روی آوردند – یک زبان برنامه نویسی که به طور اختصاصی طراحی شده بود تا نرم افزار هایی بسازد که بین ارتشی از ماشین ها اجرا می شوند – و حالا با Finagle، ماریوس اریکسن و دیگر مهندسان توییتر راهی طراحی کرده اند که به شکل تاثیر گذاری توییتر را به یک سری سرویس های خود کفا تقسیم کنند که هر کدام با دیگری همکاری می کنند تا به هدفی مشترک برسند: ارائه دسترسی مستقیم به هر صفحه از توییتر به کاربران.

Twitter_Freedom_03

از دید یک هکر، Finagle یک « پروتوکل ناهمزمان سیستم فراخوانی از راه دور » است. حالا این به چه معناست؟ به این معناست که Finagle راهی است برای ساخت تعداد بی شماری سرویس که می توانند با یکدیگر ارتباط برقرار کنند – حتی اگر هر سرویس از یک پروتوکل پیام رسانی متفاوت با دیگران استفاده کند. این پروتوکل به شما اجازه می دهد سرویس هایی بسازید که برترین نمونه اش ماشین مجازی جاوا ( Java Virtual Machine ) نام دارد، یک پلتفرم نرم افزاری که نه تنها قادر است کدهای نوشته شده به زبان برنامه نویسی جاوا را بخواند بلکه توانایی اجرای فرامین دیگر زبان های برنامه نویسی مثل Scala را نیز دارد.

توییتر پیش از این نیز مجموعه ای از خدمات بود که به همین ترتیب با یکدیگر ارتباط برقرار می کردند. هر بار که شما یک صفحه خاص از توییتر را مشاهده می کنید، این وبسایت در واقع از همین خدمات استفاده می کند، خدماتی از جمله سرور های گروهی از پایگاه های داده که شامل هر یک توییت می شوند و همین طور یک سرویس جداگانه که وظیفه بررسی وضعیت شما با دیگر کاربران توییتر را دارد.  Finagle هم راهی است برای ریتوییت کردن این خدمات و سرویس ها تا بتوانند به طرز موثرتری با هم در ارتباط باشند – و همین طور بتوانند روند همواره رو به افزایش تعداد کاربران و پیام های توییتر را به شکل بهتری مدیریت کنند.

برای ساخت Finagle، اریکسن و همکارانش به دنبال نرم افرارهای متن باز گشتند بلکه بتوانند کار را ساده تر کنند ولی در نهایت تصمیم گرفتند خودشان از صفر شروع کنند. اریکسن می گوید « ما دیدیم که چند نرم افزار متن باز وجود دارند که حداقل می توانستیم از بخشی از آنها برای خود استفاده کنیم، اما هیچ مدل برنامه نویسی مرتبطی برای این کار وجود نداشت یا حداقل چیزی نبود که توجه ما را برای به کار بردنش به خود جذب کند. بنابراین به این فکر کردیم که کدام راه مناسب ترین و بهترین راه برنامه نویسی اینگونه سیستم ها است – سیستم هایی که بیشتر به خاطر سر و کار داشتن شان با میزان فراوانی از هم زمانی شناخته می شوند. »

هم زمانی یعنی وقتی که یک نرم افزار بین چندین ماشین در حال اجرا است تا چندین وظیفه را به صورت همزمان انجام دهد. اریکسون در ادامه می گوید « کار کردن در این زمینه بسیار مشکل است چون هیچ قائده معینی برای اینکه بدانیم چطور این پروسه های در جریان را به هم مرتبط کنیم و اینکه چطور آنها با هم ارتباط برقرار می کنند و چطور با مشکل مواجه می شوند وجود ندارد ». اما Finagle دقیقا برای همین کار ساخته شده و موفق هم ظاهر شده است. دیگر کارها به سختی و پیچیدگی قبل نیست.

از نروژ به توییتر:

ماریوس اریکسن در نروژ به دنیا آمده ولی بیشتر سالهای اولیه عمرش را در مجارستان و یونان سپری کرده است. ناپدری اش برای شرکت معادل نروژی AT&T کار می کرد و برای دریافت مجوزهای خدمات تلفنی سلولی در اروپا، مداوما از کشوری به کشور دیگر سفر می کرد. ماریوس در دانشگاه میشیگان مشغول به تحصیل شد نه فقط به این خاطر که پیش از این در مدارس آمریکایی بوداپست و آتن درس خوانده بود، بلکه به این خاطر که دانشگاه میشیگان جزو معدود دانشگاه های بین المللی ای بود که تحت حمایت کشور نروژ بود.

وقتی وارد دانشگاه میشیگان شد CITI به عنوان یکی از برترین مراکز تحقیقاتی علوم کامپیوتری آن کشور شناخته می شد و اریکسن آنقدر خوش شانس بود که نه تنها با دکتر پیتر هانیمن بلکه نیلز پروس نیز آشنایی پیدا کند، کسی که به گوگل پیوست و در میان محققان امنیت کامپیوتر در دنیا زبان زد شد. همین پروس بود که ماریوس را به گوگل معرفی کرد.

در Mountain View، اریکسن تلاش کرد که سرعت ارسال صفحات وب را افزایش بخشد – پروژه ای که باعث می شد پروتوکل استاندارد SPDY مورد توجه همگان قرار بگیرد – و او جزو ابداع کنندگان SF2G بود، یک مسیر عبور و مرور روزانه به وسیله دوچرخه بین سان فرانسیسکو و مرکز گوگل در Mountain View. اما بزرگترین کارش که ممکن است بیشتر به خاطر آن شناخته شود شاید فعالیتش در زمینه پلتفرم هایی با نرم افزار متغیر بود که اساس سلطنت آنلاین این شرکت را به وجود آورد: مخلوق گوگل به نام Borg.

به عنوان یک دانشجوی تحت آموزش در میشیگان، استعداد اریکسن در « نرم افزار سیستم ها » نمایان بود – مثل سیستم عامل ها و دیگر نرم افزار هایی که طرز عملکرد کامپیوتر ها را تعیین می کردند. نیلز پروس می گوید « هر کاری را که او شروع می کرد از همان ابتدا جالب و فوق العاده بود. اگر یک راه حل خوب و یک راه حل عالی وجود داشت او همیشه راه عالی را پیدا می کرد و به کار می برد. » Borg هم نشانگر همین موضوع است – اما در ابعادی بسیار بزرگتر.

Borg یک پلتفرم نرم افزاری بزرگ است که بین صدها هزار سرور به اجرا در می آید، بزرگ تر از آنچه در ذهن می توان گنجاند. محقق حال حاضر شرکت گوگل یعنی جان ویلکس ( John Wilkes ) می گوید که این پلتفرم شرکت گوگل را از صرف هزینه برای پایگاه داده کامل – بله! یک پایگاه داده کامل – حفظ  کرد، اما مثل دیگر نرم افزارهایی که پایگاه های داده گوگل را هدایت می کنند، Borg چیزی است که راه ساخت نرم افزارها و خدمات این شرکت را برای کارکنان آن تعریف می کند. گرچه این بخشی از همان فلسفه « متن بسته » گوگل است که از دید اریکسن، حداقل تا سرحد مشخصی میزان ابداع و اختراع را در پایگاه های داده گوگل محدود می کند.

Twitter_Freedom_04

اما در توییتر او آزادی جدیدی برای تجربه کردن یافت. بد نیست خاطر نشان کنیم که توییتر نسبت به گوگل شرکت بسیار جوان تری است. هنوز هم توییتر سعی دارد جای پای خود را محکم کند و به یک نقطه ثبات برسد. اما با Finagle، توییتر پایش را حتی از فیسبوک هم فراتر گذاشته و در این راه قدم گذاشته که طرز عملکرد وبسایت خود را به طور کامل دچار تغییر و تحول کند.

تاثیر گوگل و فراتر از آن:

فیسبوک مسلما گستره ای است که با آزمایش و تجربه – و نرم افزار متن باز – رشد می کند. این خلاف منطق است اگر زبان برنامه نویسی ای که مارک زاکربرگ در سال ۲۰۰۴ کار خودش را با آن شروع کرد نادیده بگیریم. اما توییتر از همان اول با انتخاب زبان Ruby راهش را جدا کرد و حالا هم متخصصان توییتر قصد دارند همچنان کار خود را ارتقاء دهند.

همانطور که بالاتر ذکر شد، Finagle راهی برای بازسازی توییتر به شکل آرایه ای از سرویس های خود محتوا است که همگی با هم و برای رسیدن به هدفی مشترک همکاری می کنند. این یک چارچوب برنامه نویسی برای ساختن این سرویس ها و تزریق ترافیک در میان آنهاست.

هر زمان که توییتر یک صفحه می سازد، در واقع اطلاعات را از همین سرویس ها فرا می خواند، از سیستم های پایگاه داده MySQL اش تا Social Graph Service اش، که وظیفه بررسی وضعیت یک کاربر با دیگر کاربران توییتر را دارد.  Finagle ابزاری است برای بازسازی چنین سرویس هایی تا بتوانند به صورت همواره فعال اطلاعات را رد و بدل کنند – و آنها را به میزان همواره در حال افزایش تعداد کاربران گسترش دهند.

اریکسن می گوید « ما می خواستیم تناسب نرم افزار خود را کارآمد تر کنیم تا بتواند در سازه آینده ما کارهای بیشتری انجام دهد. هدف ما تا دو یا سه سال آینده چه باید باشد؟ سازه ای که بیشتر بر مبنای سرویس ها باشد و اینکه بتواند مسیر ترافیک http نرم افزار را به صورت کاملا خودکفا هدایت کند. »

این فقط یک راه برای ساختن یک سایت است – و از نظر بسیاری از جمله فیسبوک یک راه متفرقه به حساب می آید. اما توییتر باور دارد که با Finagle توانسته برای چند سال آینده جای پای خود را محکم کند.  بن هیندمن ( Ben Hindman ) یکی از مهندسان توییتر که به توییتر کمک کرد نسخه متن باز Borg، یعنی سرویسی به اسم Mesos را بسازد می گوید « می توانید به صدها یا شاید هزارن عدد از این سرویس ها دسترسی پیدا کنید »

مهم اینجاست که Finagle یک نرم افزار متن باز است. یعنی هر توسعه دهنده یا استارت آپ جدیدی می تواند از آن استفاده کند تا سایتی با مخاطبان در حد و مقیاس مخاطبان توییتر راه اندازی کند.

به گونه ای می توان اریکسن را استعاره ای برای تکامل مدرن وب دانست. گوگل – که بیشتر به عنوان نوآور ترین شرکت در وب شناخته می شود – استعدادهای خود را در وب نشان می دهد و دیگر شرکت ها هم از آن تقلید می کنند. ارکیسن یکی از معدود افراد گروه کوچک مهندسان جدا از گوگل بود که در ساخت و توسعه Mesos  که به نوعی رقیب جدی Borg خوانده می شود فعالیت داشت. اما همین اریکسن بود که نشون داد برخی مهندسان جدا از گوگل وجود دارند که می خواهند پا را از گوگل فراتر بگذارند – به خصوص در عرصه نرم افزار های متن باز.

منبع Wired.com