רוי פילדינג

רוי פילדינג (Roy Fielding): האדריכל של האינטרנט המודרני

בין השנים 1994 ל-2000, סטודנט לתואר מתקדם באירווין, קליפורניה, עשה שני דברים שכמעט לעולם לא קורים יחד. הוא עזר לבנות את התוכנה שהריצה את רוב שרתי האינטרנט בעולם, וכתב את התיאוריה שהסבירה מדוע האינטרנט עובד בכלל. הדבר הראשון הפך אותו לאחד ממייסדי קרן התוכנה אפאצ'י (Apache Software Foundation). הדבר השני היה עבודת דוקטורט שהפרק החמישי שלה הגדיר סגנון ארכיטקטוני בשם REST — ארבע אותיות שמופיעות כעת בתיאורי משרות רבים יותר מכל רעיון אחר שיצא ממחלקה למדעי המחשב בשלושים השנים האחרונות, ושכמעט אף אחד מאלה שמקלידים אותן לא קרא את הגדרתן המקורית.

לגונה ביץ'

רוי תומאס פילדינג נולד בספטמבר 1965 בלגונה ביץ', קליפורניה. הוא תיאר את עצמו, בניסוח המתאים לאדם שהקדיש את הקריירה שלו ליכולת פעולה הדדית (interoperability), כ"חלק מאורי, קיווי, יאנקי, אירי, סקוטי, בריטי, ונווד חופים מקליפורניה". הוא מעולם לא עזב את הבית מבחינה אקדמית: כל שלושת תאריו במדעי המידע והמחשב הגיעו מאוניברסיטת קליפורניה, אירווין — תואר ראשון ב-1988, תואר שני ב-1993, ודוקטורט בשנת 2000.

ראוי לעצור על טווח שנים זה של שתים-עשרה שנה. רוב מה שהפך את פילדינג למשמעותי קרה במהלכו, במקביל ללימודיו ולא אחריהם. הוא לא היה חוקר שהצטרף מאוחר יותר לתעשייה, וגם לא מהנדס שאסף תעודות מאוחר יותר. הוא עשה את שניהם בו-זמנית, על אותו אובייקט, בדיוק בשנים שבהן האובייקט הזה הומצא.

השרת שאכל את האינטרנט

פילדינג היה שותף להקמת פרויקט שרת ה-HTTP של אפאצ'י, שרת האינטרנט בקוד פתוח שהפך לתשתית ברירת המחדל של האינטרנט המסחרי המוקדם. לאחר מכן הוא ביצע את העבודה המוסדית הלא-נוצצת שרוב המייסדים הטכניים נמנעים ממנה: הוא שימש כסגן נשיא פרויקט שרת ה-HTTP, כדירקטור בקרן התוכנה אפאצ'י בין השנים 1999–2003, וכיו"ר שלה בשלוש השנים הראשונות, מ-1999 עד 2002, כשהוא נשאר בחבר המנהלים עד מאי 2014. מודל הקרן שהוא עזר להקים — מעטפת משפטית וניהולית המאפשרת לחברות מתחרות לתרום לקוד משותף מבלי שאף אחת מהן תהיה הבעלים שלו — הועתק מאז ברחבי התעשייה.

ההכרה הגיעה במהירות. שרת ה-HTTP של אפאצ'י זכה בפרס מערכות התוכנה של ה-ACM בשנת 1999. באותה שנה, ה-MIT Technology Review הכניס אותו לרשימת ה-TR100 של החדשנים המובילים מתחת לגיל שלושים וחמש, ובשנת 2000 העניקה לו חברת O'Reilly את פרס ה-Open Source Appaloosa על חזון.

THE FREE TEST
How high is yours?

Twenty questions, eight minutes on the clock, and a percentile measured against everyone who has taken it. No sign-up.

Take the IQ test →

כתיבת הפרוטוקול

התרומה העמוקה יותר הייתה במפרטים. פילדינג היה הכותב העיקרי של מפרט ה-HTTP, ושמו מופיע על המסמכים המגדירים כיצד כמעט כל יישום מרושת פועל כיום. הוא כתב או היה שותף לכתיבת RFC 1808 על כתובות URL יחסיות, RFC 1945 על HTTP/1.0, RFC 2068 ואז RFC 2616 על HTTP/1.1, ו-RFC 2396 ו-RFC 3986 על התחביר הכללי של מזהי משאבים אחידים (URI). הוא היה מעורב מאוד גם בפיתוח של HTML.

מסמך RFC 2616 בפרט שלט באינטרנט במשך למעלה מעשור, ו-RFC 3986 נותר המסמך שעונה על השאלה מהו בעצם URL. כתיבת מפרט מסוג זה היא משמעת מוזרה: אין מדובר בהמצאה אלא בחקיקה, המתארת משהו שכבר קיים בעולם בצורה מדויקת מספיק כדי שאלף יישומים עצמאיים יסכימו זה עם זה. פילדינג עשה זאת עבור הפרוטוקול הנפוץ ביותר שאי פעם הופעל.

REST

עבודת הדוקטורט משנת 2000, סגנונות ארכיטקטוניים ועיצוב של ארכיטקטורות תוכנה מבוססות רשת, היא התיאור התיאורטי של כל זה. הטיעון שלה פועל בכיוון הפוך מהכיוון הרגיל של עיצוב תוכנה. במקום להציע מערכת, פילדינג הציע אוצר מילים של סגנונות ארכיטקטוניים — קבוצות של אילוצים — ושאל איזו קבוצה של אילוצים מייצרת את התכונות שרשת גלובלית, מבוזרת וניתנת להרחבה צריכה. התשובה שהוא גזר וכינה הייתה Representational State Transfer (העברת מצב ייצוגית): סגנון של לקוח-שרת, חסר-מצב (stateless), ניתן למטמון, בעל ממשק אחיד ושכבתי, שבו החלקים הם משאבים, והלקוחות נעים דרך היישום על ידי מעקב אחר היפר-מדיה שהשרת מספק להם. בשנת 2000 הוא טבע את המונח HATEOAS — Hypermedia As The Engine Of Application State — עבור אותו אילוץ אחרון.

עבודת הדוקטורט הייתה, למעשה, הסבר רטרואקטיבי לכך שהאינטרנט שרד את הצמיחה הנפיצה שלו כאשר מערכות מבוזרות מתוכננות טוב יותר לא עשו זאת. היא הפכה למסמך הארכיטקטוני המצוטט ביותר בתעשייה.

Waka

הוא גם ניסה להתקדם מעבר לזה. בין השנים 2001 ל-2006 עבד פילדינג על Waka, תחליף בינארי מבוסס אסימונים ל-HTTP שנועד להתאים לסגנון ה-REST בצורה יעילה יותר מאשר פרוטוקול הטקסט שהוא עצמו הגדיר. הוא מעולם לא הושלם ומעולם לא הוטמע. האינטרנט המשיך לרוץ על HTTP.

מדוע רוי מכונה גאון

היכולת הספציפית כאן היא הפשטה ארכיטקטונית: היכולת להסתכל על מערכת עובדת, מבולגנת ומקרית היסטורית, ולחלץ ממנה את קבוצת האילוצים הקטנה שאחראית למעשה על תכונותיה. פילדינג פיצח מדוע האינטרנט עובד — מדוע חוסר-מצב קונה יכולת הרחבה, מדוע ממשק אחיד קונה התפתחות עצמאית, מדוע מטמון ושכבות מאפשרים להכניס גורמי ביניים על ידי גורמים שהמתכננים המקוריים מעולם לא פגשו. לאחר שגזר זאת, הוא השתמש בכך כמשמעת עיצובית, תוך שהוא מנווט את HTTP/1.1 ואת תקני ה-URI כך שהצמיחה של האינטרנט לא תהרוס את התכונות שהניתוח שלו קבע שהן נושאות עומס. ביצוע התיאוריה, כתיבת התקנים ומימוש הייחוס בו-זמנית, על תשתית שמשמשת מיליוני אנשים בזמן שהוא עובד, הוא החלק הבלתי רגיל באמת.

טיעון הנגד הוגן. המוניטין שלו נשען במידה רבה על רעיון אחד והמסמכים שמקודדים אותו. הפרס המרכזי שלו, פרס מערכות התוכנה של ה-ACM לשנת 1999, הוענק לשרת אפאצ'י — מוצר שיתופי — ושום מקור שהתייעצנו בו לא מתעד סמכות כלשהי המכנה אותו גאון. הניסיון שלו להתקדם מעבר לפרוטוקול שלו, Waka, נמשך חמש שנים ולא הגיע לשום מקום. וגורלו של REST הוא סוג של כתב אישום על בהירות: רעיון ששמו מיושם כעת ללא הבחנה על כל ממשק שמחזיר JSON מעל HTTP, כאשר רובם מתעלמים מאילוץ ההיפר-מדיה שהוא ראה כחיוני. זו השפעה, אבל זה לא זהה להיות מובן.

מורשת

פילדינג עבר בתעשייה מבלי לעזוב מעולם את הנושא: מדען ראשי ב-eBuilt מ-1999 עד 2002, מדען ראשי ב-Day Software ואחר כך ב-Adobe מ-2002 עד 2010, ומדען ראשי בכיר ב-Adobe בסן חוזה מאז. הוא מפרט את תחומי המחקר שלו בצורה ברורה — ה-World Wide Web, ארכיטקטורת תוכנה ליישומים מבוססי רשת, פרוטוקולי רשת בשכבת היישום, שיטות פיתוח תוכנה שיתופיות, וסביבות הנדסת תוכנה גלובליות — והקדיש שלושים שנה בדיוק להם.

מדד עבודתו הוא בכך שהיא בלתי נראית. כל בקשת אינטרנט מצייתת לכללים שהוא רשם; כל URL הוא חוקי מכיוון שמסמך הנושא את שמו מגדיר מה המשמעות של חוקי; כל מהנדס שאומר "REST API" מעלה באוב, בדרך כלל בצורה לא מדויקת, פרק מתוך עבודת דוקטורט מאירווין. תשתית היא צורת המחברות היחידה שמצליחה בכך שהיא נשכחת, ופילדינג נשכח בצורה יסודית יותר מרוב האנשים.