המלחמה על עולם התוכנה
הבחירה בין הטכנולוגיות של SUN ומיקרוסופט אינה שאלה של שפת תכנות אלא פתרון כולל. בשוק יש יותר משני שחקנים, ובתהליך קבלת ההחלטות יש יותר משיקול אחד לבחירה בשחקן זה או אחר. כיצד בוחרים ובמה יבחרו רוב הארגונים? חלק א'
התחרות על עולם התוכנה עתידה להתכנס לשלושה מישורים של עימות:
א. בין הטכנולוגיות של מיקרוסופט ושל SUN.
ב. בין הפתרונות - המוצרים המסחריים שיתבססו על הטכנולוגיות.
ג. בין שירותי רשת מתחרים שיתבססו על הפתרונות.
בכתבה זו נתייחס לפתרונות (ג'): ננתח את השוק ואת אופי התחרות בו, ונצביע על השיקולים הרלוונטיים לצורך קבלת החלטות. נדגים גם כיצד ספקים שונים של פתרונות ניגשים למציאות הטכנולוגית החדשה, ונסביר מדוע לארגונים שונים צריכים להיות שיקולים שונים בדרך לקבלת ההחלטה הגורלית.
פתרון או פלטפורמה?
חשוב, בתור התחלה, לפתור חוסר בהירות אחד שנוגע למושגים. כשאנחנו מדברים על "פתרון" (Solution), כוונתנו לאוסף כלים המאפשר פיתוח, יישום, הטמעה וניהול של מערכת המבוססת על הטכנולוגיות והתקנים של מיקרוסופט או של SUN.
בחלק מהמסמכים המתייחסים לפתרונות כאלה, נוהגים לכנות אותם "פלטפורמות" (Platform). הסיבות לכך היסטוריות - כאשר SUN הציעה לראשונה את תקני ומוצרי J2EE, היא התייחסה אליהם כאל "פלטפורמה לפיתוח יישומים ארגוניים". במסמכים מוקדמים המתייחסים ל-.Net, רווח השימוש במונח פלטפורמה בהתייחסות ל-.Net Framework, המקבילה מבית מיקרוסופט.
כרונולוגית, Net. הופיעה מאוחר יותר מ-J2EE. קונספטואלית, הראשונה מיישמת חזון רחב יותר, שכלל התייחסות להיבטים נוספים של פיתוח יישומים ושם דגש מיוחד על שירותי הרשת.
האבולוציה הטבעית של התקנים והפתרונות בשלושת השנים האחרונות, יצרה מצב שבו מיקרוסופט אינה מתחרה רק ב-SUN אלא בקבוצה של חברות שתומכות בטכנולוגיה של SUN ובתקנים הפתוחים עליהם היא מתבססת. רוב הפתרונות של השחקנים בשוק, הם פתרונות כוללים שמציעים "פלטפורמה" מלאה שמתייחסת לכל מחזור החיים של היישום
היסטורית, מיקרוסופט הציעה פתרון שלם כזה, פחות או יותר, כבר עם משפחת מוצרי DNA שקדמה ל-.Net. אבל גם אז היא לא הייתה היחידה - פתרונות דומים הציעו ומציעות היום גם IBM, אורקל, HP, BEA ואחרות. בשנתיים האחרונות התפתחו כל הפתרונות הללו משמעותית, גם טכנולוגית וגם מבחינת המיצוב שלהם.
SUN, למשל, הכריזה בראשית השנה על SUN ONE) Sun Open Net Environment), חבילת הפתרונות שלה לפיתוח יישומים ארגוניים ושירותי רשת. החידוש שבהכרזה הזו לא היה טכנולוגי כמו קונספטואלי, ובמידה רבה הוא נגזר מהצורך להציג מענה ל-.Net - לא רק אוסף של טכנולוגיות ומוצרים, אלא מסגרת שתעגן אותם כ"חזון", כתפיסה.
מצא את ההבדלים
הפתרון השלם של SUN בעצם מורכב ממוצרים שחלקם אינם שלה (במידה כזו או אחרת בעצם אפשר להגיד את זה על כל הפתרונות, שחלקם כוללים מוצרים ששולבו בחבילות במסגרת שיתופי פעולה שונים) - הוא כולל את חבילת מוצרי iPlanet (הגלגול הנוכחי של חברת Netscape). שיתוף הפעולה בין שתי החברות מאפשר ל-SUN להציג פתרון אטרקטיבי יותר, לא רק בהשוואה למיקרוסופט אלא גם בהשוואה לספקים אחרים של פתרונות שמבוססים גם הם על תקני J2EE.
לדברי ערן דווידוב, CTO במרכז הפיתוח של SUN בישראל, הסיבה העיקרית לשינוי הייתה ש"היו כמה מותגים וזה בלבל את הלקוחות", ומוסיף: "תחת החבילה של Sun ONE זה גם יותר ברור וגם האינטגרציה בין המוצרים טובה יותר".
המעבר מתחרות בין מוצרי תוכנה בודדים וסביבות פיתוח, לתחרות בין חבילות של פתרונות, שינה לא רק את השחקנים ואת הרכב המוצרים, אלא גם את העקרונות המשמשים לקבלת החלטות. במקרה של מיקרוסופט זה מובהק במיוחד - הם בעצם מנסים להציע ללקוחות שלהם את האפשרות לפתח באיזו שפה או כלי פיתוח שירצו, ומבטיחה שקיפות מוחלטת.
הפיתוח, ובוודאי שפת הפיתוח, הופכים לחלק מתמונה רחבה יותר. "עלויות הבעלות" צריכות להביא בחשבון תפעול ותחזוקה של מערכות שכוללת מרכיבים רבים - שרת יישומים, שרת Web, בסיסי נתונים, כלי ניהול תוכן ואבטחה, תשתית להפצה וניהול של שירותי רשת וכן הלאה. פתרון טוב יותר הוא פתרון שכל אחד ממרכיביו טוב יותר ושהאינטגרציה ביניהם טובה יותר. אין פתרון מובהק כזה, שעולה על האחרים.
הפתרון של מיקרוסופט
במהלך החודשים האחרונים חלו הרבה חידושים משמעותיים בפתרון של מיקרוסופט. התפתחות משמעותית אחת היא הופעת .Net Server, שרת יישומים שמציע גם את סביבת הריצה (CLR) וגם את סביבת הפיתוח (Visual Studio). המוצר הזה הוסיף עוד נדבך בתפירה הטובה של יישומי מיקרוסופט ל-Web Services, שניכרת בכל מקום.
דוגמא מעניינת אחת מספק שרת BizTalk 2002.Net. תפקידו של BizTalk אינו לייצר רכיבי תוכנה עבור שימושים עסקיים, אלא לשמש מעין אינטגרטור אוטומטי עבור תהליכים עסקיים. בתוך השרת ניתן למצוא את כל הנדרש על מנת לשלב את התהליך העסקי הקיים עם שירותי תוכנה נוספים: מתאמים לאינטגרציה עם יישומים ארגוניים שונים, כלי עיצוב לתכנון התהליך העסקי, מערכת Messaging להעברת מסמכים ועוד.
BizTalk 2002.Net מביא עמו לסל הכלים של מיקרוסופט כלי תכנון משופרים לאוטומציה של תהליכים עסקיים. במיקרוסופט מכנים זאת אורקסטרציה (orchestration - "תזמור"). הכוונה היא שרכיבי התוכנה שירכיבו את התהליך העסקי (ובדרך-כלל יכללו שירותי רשת) יופעלו באופן אוטומטי לגמרי על-פי תכנון שנקבע מראש. הפיתוח של יישומי BizTalk נעשה באמצעות Visual Studio.
דוגמא נוספת: SQL Server 2000. מאפייני השימוש ב-XML היו קיימים ב-SQL Server כבר בגירסאות קודמות, אך בגירסה הזו הם ניתנים להרחבה באמצעות תוספת בשם SQLXML. הגירסה האחרונה של ההרחבה, SQLXML 3.0, מאפשרת להפוך Stored Procedure (מעין פונקציה הכתובה בSQL-) ל-Web Service.
מיקרוסופט נמצאת בעיצומו של תהליך להחלפת מוצרי השרת שלה בגירסאות .Net, שיציעו פונקציונליות דומה לכל אורך ורוחב חבילת הפתרונות שלה. המטרה, בסופו של דבר, היא להציע שקיפות מקסימלית ואינטגרציה הדוקה מאד בין היישומים. הרעיון, לפחות בתיאוריה, הוא שלא ישנה אם כתבתם את היישום מלכתחילה כיישום רגיל או כשירות רשת. תפקידו של המפתח ב"עידן החדש" הוא להתרכז בלוגיקה העסקית. מיקרוסופט מנסה להקל גם על חייהם של האינטגרטור ומנהל התשתיות - כל מה שצריך לעשות כדי שעלויות התפעול והבעלות יצטמצמו.
פתרונות J2EE
כמובן שהיום השילוב המובנה של תמיכה ב-Web Services איננו עוד נחלתו הבלעדית של הפתרון של מיקרוסופט. גם פתרונות מבוססי J2EE מציעים יותר ויותר בתחום הזה, ולא חסרות דוגמאות. אבל המקום הטבעי לשילוב סכמות XML, הם המוצרים שמיועדים לניהול בסיסי הנתונים הארגוניים, והדוגמא הטובה ביותר היא זו של אורקל.
אורקל הכריזה על תמיכה באסטרטגיית ה-Java של SUN בשלב מוקדם מאד. לכאורה, לא הייתה לה בעצם אפשרות אחרת - ביל גייטס ולארי אליסון אינם בדיוק שותפים לדרך, ומסלול ההתפתחות הטבעי של מוצרי מיקרוסופט עלול היה לדרוס בדרכו את בסיס הנתונים של אורקל.
מצד שני, עבור חברה וותיקה שמציעה קו מוצרים מוצלח ומבוסס, שינוי שפת פיתוח לא היה דבר טריוויאלי.
במשך שנים ארוכות היה לתוכנת בסיס הנתונים (כלומר, לתוכנה שמאפשרת את ההקמה והניהול שלו) משקל מרכזי מאד במחשוב הארגוני. אורקל, בתור חברה ששלטה בתחום כמעט ללא עוררין, נהנתה מיוקרה ומכוח מתאימים. עם הזמן, נעו תשומת הלב והתקציבים הארגוניים בהדרגה לכיוון ארכיטקטורות הפיתוח, מקום שבו אורקל לא הייתה כמעט מוכרת ובוודאי היה לה פחות להציע. אם לא די בכך אז מסתבר שמתחרותיה של אורקל - כולל מיקרוסופט השנואה - הצליחו להציג חלופות כלכליות יותר.
התשובה של אורקל: שרת יישומים משלה
במשך שנים הייתה סביבת הפיתוח של מוצרי אורקל ממוקמת על בסיס הנתונים אותו היא סיפקה. שפת הפיתוח הסטנדרטית לסביבה זו הייתה PL/SQL (Procedural Language extension to SQL), שפה דמויית SQL, שהתבססה על שפת ADA מונחית האובייקטים. היא התאימה לסביבה של אורקל בלבד, אבל הייתה יעילה ונוחה מאד.
אורקל השכילה לאפשר למפתחים להשתמש בקלות בבסיסי הנתונים שלה גם כאשר פיתחו את היישומים בכלים שאינם שלה. לטווח הקצר ובהיעדר אלטרנטיבה, זה חיזק את המעמד של תוכנת בסיס הנתונים שלה. לטווח הארוך, זה פתח אפשרות מסוכנת - שארגונים ישקלו החלפה של כל פלטפורמת המחשוב לטובת מפתח תוכנה אחר, דוגמת מיקרוסופט למשל. זהו סיכון שאורקל אינה יכולה לקחת.
התשובה של אורקל הייתה להציע שרת יישומים משלה, ובכך ממילא נוצרה סיטואציה שבה גם סביבת הפיתוח תהיה שונה מזו ששימשה את מפתחי בסיסי הנתונים הסטנדרטיים. אורקל עשתה את השינוי הזה בשלב מאוחר יחסית, בשנת 2000. האיחור חייב אותה למחוק פער גדול שנפתח בין המוצרים שהייתה רגילה לספק, לבין שרתי יישומים של חברות תוכנה אחרות, שהתרכזו בפיתוח לוגיקה עסקית מלכתחילה.
מצד אחד, אורקל נדרשה להוכיח ללקוחות כי שרת היישומים שלה אינו "בסיס נתונים בתחפושת", אלא מוצר עם המאפיינים המלאים של שרת יישומים. מצד שני, היה עליה להרגיע את הלקוחות הוותיקים, ולהבטיח שהתמיכה המסורתית בPL/SQL- תשתמר ואף תתפתח במוצרים הבאים. זו הסיבה לכך ששרת היישומים הנוכחי של אורקל, Oracle 9iAS) Oracle 9i Application Server), תומך ב-J2EE, אך מאפשר אינטגרציה מלאה גם עם PL/SQL. באותו אופן, גם תוכנת בסיס הנתונים של החברה, מספקת תמיכה ל-PL/SQL ול-Java.