5. Business Application
Metadata repository (XML)
Magic Software Platform Engine
Indigo SCO Solaris DOS AIX Linux .NET VMS Vista iSeries
Windows HP-UX
GUI Web Browser RIA Character-Based Terminal
DB/2 Pervasive MySQL ODBC Btrieve MS-SQL Oracle Informix
6.
7. Dan Read
IT Director, CBS Outdoor
“…I do not believe there is any
other technology that could
have helped us achieve this in
such a short period of time.”
8. “Allstate Life Insurance Company's
use of Magic is truly impressive. With
50 developers and an army of users
they manage around 1500 financial
products representing nearly a
million contracts exceeding 20 billion
dollars in business.”
16. uniPaaS ASP.NET JSP (Java) Adobe Silverlight
RIA Flex
Server
Development
Rich Client
Development
Single
Paradigm
Automatic
Web Services
Server Many Windows Many
Platforms
שמי איל פייפל ואני רוצה לדבר היום על מג'יק. זה שאתם כאן אומר שאתם כנראה יודעים משהו על מג'יק, אבל היום אני מתכונן להראות כמה מהטכנולוגיות החדשות שהצגנו לא מזמן ושאני מאמין שתמצאו שהן מעניינות ביותר. באותה הזדמנות, תרשו לי להזכיר כמה דברים חשובים על מג'יק שיכול להיות שכבר שכחתם.
אז, לפני הכל, בואו נשאל את עצמנו לרגע, מה זה מג'יק?מהי הטכנולוגיה הזאת שעל בסיסה קמה חברה שקיימת שורדת ומצליחה מאז 1983?מהו הבסיס הזה עליו נבנו עשרות אלפי יישומים בכל העולם ובכל תחום אפשרי, כולל בנקאות, מסחר, ביטוח, כספים וכדומה.
דבר אחד בטוח. אנחנו לא כמו כולם. במובן החיובי של המילה.במקרה אני הייתי בחברה בימיה הראשונים, כשהתחרינו בענקים של אז: dbase, paradox and clipper. כולם טענו שאין לנו סיכוי, ואין לנו brand, ומי אנחנו בכלל, חברה קטנה ללא שם מרמת-גן. ובכל זאת, אנחנו שרדנו והם לא.לי נראה שאנחנו כנראה עושים משהו מאוד מאוד נכון. משהו ששורד את מבחן הזמן. משהו שמשרת צורך אמיתי ועושה את זה בצורה ייחודית.כשבאים לבחון מה מייחד אותנו מאחרים, אחד הדברים הראשונים שמגלים הוא שלנו אין בכלל כזה:
קוד. שורות קוד. מיליונים של שורות קוד. הדרך הרווחת להגדיר לוגיקה אפליקטיבית היא בעזרת הרבה שורות של קוד.יש הרבה סוגים של קוד: יש קוד קובול, קוד פורטרן, קוד VB, קוד Java, קוד C#, קוד C++. אפשר לקבל את זה בירוק, או במגוון צבעים. אפשר לבחור באיזה פונט זה כתוב. על איזה רקע. אבל בסופו של דבר, לכולם, חוץ מאיתנו, יש קוד. ואיפה שיש קוד, יש גם קומפיילר, וצריך להגדיר coding conventions, ויש סטנדרטים של כתיבת קוד, ויש אפילו ארכיטקטים של קוד, וצריך לתחזק את הקוד, וללמוד את הקוד, ולהבין את הקוד. בקיצור, הרבה לפני שאפשר להתחיל בכלל לפתח אפליקציה, כבר יש הר של דברים שצריך לדעת וללמוד. במקום שהמחשב ידבר בשפה שלנו, אנחנו נאלצים לדבר בשפה שלו. הפכנו לעבדים של הקוד.ואחרי שכתבנו את האפליקציה, וקימפלנו, ודיבגנו ויש כבר משתמשים ואפשר להתחיל להינות מהתוצאות, עבר כבר כל-כך הרבה זמן (כי לכתוב קוד לוקח המון זמן), אז יש כבר סוג חדש של קוד, כי הסוג הקודם לא היה מספיק טוב. פעם VB6 היה הכי טוב? עזוב, היום VB.NET הכי הכי חדש. ומה עם הקוד שכבר כתבנו? באמת חבל.אבל, יש גם דרך אחרת לפתח אפליקציות.
מה שאנחנו מספקים זו פלטפורמה לפתרונות עסקיים. לא שפה לפיתוח משחקים, לא כלי לאנימציות, ולא מעבד תמלילים. פלטפורמה לפיתוח פתרונות תוכנה עסקיים.ובלב הפלטפורמה שלנו נמצא המנוע, הידוע גם בכינויו ה "magic runtime engine". המנוע הזה יודע לקרוא ולבצע הוראות שמגדירות ומתארות את האפליקציה העסקית. אפשר לדמות את המנוע למקרן סרטים בקולנוע. כל פעם הוא מקרין סרט אחר, רק מחליפים לו את הגלגל של הסרט. המנוע שלנו לא יודע להקרין סרטים, אבל הוא יודע לנגן אפליקציות עסקיות.אחד היתרונות המשמעותיים של שיטת ה"מנוע" הוא שהיא מאפשרת לנו להחליף את התשתית הטכנולוגית עליה רץ המנוע, מבלי לשנות את האפליקציה העסקית שרצה מעליו. וכך, אפשרנו לבתי תוכנה להעביר את היישומים העסקיים שלהם מסביבות ישנות לחדשות בהשקעה יחסית מועטה, בלי לשנות את הלוגיקה העסקית הבסיסית.אז, אחד העקרונות המרכזיים בטכנולוגיה שלנו הוא גישת הפלטפורמה, ומנוע הרצת האפליקציות.
גישת הפלטפורמה מאפשרת לנו להציע יכולות פיתוח שקרובות יותר ללוגיקה עסקית, בלי להתעסק עם הפרטים הקטנים של מערכת ההפעלה או בסיס הנתונים. המפתח פנוי להתמקד באפליקציה ולא בטכנולוגיה שמיישמת אותה.וזה מביא אותנו אל אחד היתרונות המשמעותיים בטכנולוגיה שלנו: פיתוח מהיר. בעזרת הכלים שלנו, ניתן לפתח יישומים עסקיים בחלקיק מהזמן ומהעלות של כל כלי אחר. ולא רק יישומים קטנים או פרוטוטייפים. להיפך. ככל שהיישום גדול יותר, השיפור בפרודוקטיביות גדל.אבל, כידוע, אין הנחתום מעיד על עיסתו. אספתי כאן עדויות ממספר לקוחות המספרים על הניסיון שלהם עם הטכנולוגיות שלנו. ואני יכול להבטיח לכם שהדוגמה שלהם אינו ייחודית. באופן קונסיסטנטי, הטכנולוגיה שלנו מאפשרת פיתוח יישומים עסקיים במהירות רבה יותר מכל כלי אחר, ומאפשרת לתחזק את היישומים בצוותים קטנים בהרבה מבכל כלי אחר.
CBSOUTDOOR היא חברה מובילה בתחום הפירסום באנגליה. החברה מתמחה בפירסום חוצות על משאיות ורכבות.
All state life insurance היא אחת מחברות הביטוח הגדולות בעולם. המערכת המרכזית שלהם לניהול ביטוח חיים מפותחת במג'יק ומנהלת נכסים בשווי 20 ביליון דולר. רץ על סולאריס ואורקל.
אם שואלים היום מישהו בארץ מה זה מג'יק, אז בדר"כ מי ששואלים זוכר משהו מהעבר, כמו: מג'יק? זה לא התוכנה הזו שהייתה פעם? שהתחילה בצבא? פעם זה היה מאוד פופולארי.
במציאות, זה עדיין הרבה יותר פופולארי ממה שאנשים חושבים. למעשה, בארץ, ובמדינות אחרות בעולם, יותר אנשים משתמשים במג'יק, אפילו עם הם לא מודעים לזה. למשל, באולם הזה, אני בטוח שכל האנשים, אפילו אלה שלא מפתחים במג'יק, הם משתמשים שלנו.חברים בנוסע המתמיד של אל-על? משתמשים במג'יק.חשבון בנק בבנק הפועלים? משתמשים. דיסקונט? משתמשים. לאומי? משתמשים.פוליסת ביטוח? משתמשים.למעשה, כל אזרח במדינה הוא משתמש של מג'יק.מג'יק עדיין נמצא בכל מקום. ולא רק בארץ. נסעתם ברכבת התחתית בלונדון? השתמשתם. שתיתם קפה בצרפת? השתמשתם. וכן הלאה, וכן הלאה. מליוני אנשים בעולם משתמשים במג'יק יום-יום.
טוב, אחרי שדיברנו קצת על מג'יק, והעקרונות הטכנולוגיים שעומדים בבסיסו, בואו נתקדם קצת ונדבר על סוגים מתקדמים של אפליקציות.האפליקציות הפשוטות ביותר, מבחינת ארכיטקטורה, הן אפליקציות client/server. באפליקציות כאלה, התוכנה רצה על מחשבים ברשת שמחוברים לדטהבייס מרכזי. יישומים כאלה יכולים להיות מורכבים מאוד, כיון שלתוכנה יש את כל יכולות המחשב לרוץ, ויש חיבור מהיר מאוד בין המחשב לדטהבייס. החיסרון המרכזי בארכיטקטורה זו הוא שהיא מחייבת התקנה מסובכת של התוכנה על כל מחשב, ומחייבת ריצה ברשת מקומית, באתר אחד.
וכשצריך להריץ אפליקציות על פני האינטרנט, client/server כבר לא עובד. אז אפליקציות אינטרנט דור ראשון השתמשו ב web browser בתור ממשק המשתמש. אז מצד אחד, אפשר להריץ אפליקציות על פני האינטרנט, וזה עובר דרך הפיירוול בלי בעיה, ולא צריך להתקין תוכנה על המחשב (כי בכל מחשב מותקן כבר דפדפן).אבל, מה עם ממשק המשתמש? מה עם האינטראקטיביות של אפליקציות דסקטופ? התגובה המהירה? ריבוי החלונות? חייבים לאבד את כל זה כשמפתחים לאינטרנט? כמובן שיש יישומים שבהם זה לא מאוד חשוב ואז web browser זה בחירה טובה. אבל בשביל להינות מכל העולמות, פיתחנו חלופה חדשה. אפליקציות RIA.אפליקציות RIA מספקות חווית משתמש עשירה, כמו אפליקציות client/server, אבל, הן לא דורשות התקנה (כמו web browser), והן עובדות על פני האינטרנט.
אפליקציות RIA מספקות חווית משתמש עשירה, כמו אפליקציות client/server, אבל, הן לא דורשות התקנה (כמו web browser), והן עובדות על פני האינטרנט.
וזה אחד החידושים המרכזיים במג'יק uniPaaS. היכולת לפתח אפליקציות RIA, שעובדות באינטרנט, לא דורשות התקנה, מספקות ממשק משתמש עשיר ואינטראקטיבי. ואת כל זה, באותה סביבת פיתוח, ועם אותה פרדיגמת פיתוח המשמשת לפיתוח אפליקציות client/server או אפליקציות web.
אז, עכשיו כשאנחנו מבינים למה אנחנו רוצים לפתח אפליקציותRIA, בוא נבין קצת יותר לעומק, איך מפתחים אפליקציות כאלה, ומה הם האתגרים העומדים בפנינו.
בואו נבחן לרגע מה היכולות של חלק מהפלטפורמות הקיימות בשוק לפיתוח אפליקציות RIA. יש לנו כמובן את uniPaaS, נבחן את שרת היישומים של מיקרוסופט, את Javaעל השרת, את אדובי פלקס ואת סילברלייט, שניהם ידועים בתור כלים לפיתוח אפליקציות אינטרנט עשירות.כמו שניתן לראות, חלק מהפלטפורמות משמות לפיתוח שרת בלבד, וחלק לפיתוח קליינט בלבד. רק יוניפס משמש לפיתוח שרת ולקוח באותה פלטפורמה. ולכן, רק ליוניפס יש פרדיגמת פיתוח אחת גם לשרת וגם ללקוח. בכלים האחרים צריך ללמוד טכנולוגיות שונות בשביל לפתח אפליקציה מלאה.בנוסף, נראה שרק יוניפס מייצר באופן אוטומאטי את כל מה שדרוש בשביל לעבוד בסביבת אינטרנט, גם בצד השרת, וגם בצד הקליינט. בשאר הכלים, צריך לפתח את זה ידנית, בכל צד בנפרד.ולסיום, ליוניפס יש גם תמיכת פלטפורמות נרחבת. נראה כמו תחרות מעניינת.
אז בואו נראה את הפלא במו עינינו. אני אעבור מהפרזנטציה, ואדגים פיתוח של אפליקציית RIA פשוטה בעזרת יוניפס.
אז מה ראיתם כרגע? זה נראה מאוד פשוט, לא? אפליקציית RIA בשתי דקות.ובכן, את מה שעשיתי עכשיו בשתי דקות, אין שום כלי בעולם שיכול לעשות כל-כך בקלות.תראו את חלק מהדברים שהישגתי עד אתה:פיתחתי את ממשק המשתמש, פיתחתי קישוריות לדטהבייס, כולל תמיכה בטרנזאקציות, פיתחתי ממשק web services בשרת, וגם את המקבילה שלו בקליינט. באופן שקוף חילקתי את הלוגיקה בין השרת והקליינט, כבר יש לי תמיכה מובנית ב caching בקליינט, וגם אוונטים עוברים באופן שקוף מהשרת לקליינט וחזרה.והאמת שקרו עוד דברים רבים שלא הזכרתי, הכל ללא מגע יד אדם.
יפה. בואו נלמד קצת על יוניפס, ועל מה שהוא יכול לעשות בשבילנו. בעזרת יוניפס, אפשר לפתח כמעט כל סוג של אפליקציה עסקית.אפשר לפתח אפליקציות client/server פשוטות שרצות ברשת מקומית. אפשר לפתח אפליקציות אינטרנט מבוססות Browser. למעשה, חלק מאפליקציות היוניפס הגדולות בעולם הן מבוססות browser, ומשרתות מליוני משתמשים.אפשר לפתח אפליקציות RIA, גם לדסקטופ, וגם לטלפונים ניידים.יוניפס טוב גם בסביבות שרת בלבד, כשצריך עיבוד נתונים מורכב בסביבת batch. אפשר להשתמש ביוניפס גם כשרת בארכיטקטורת SOA ולשרת soap web services עבור קליינטים אחרים.יוניפס תומך בסביבות שרת רבות כגון linux, as/400, AIX ו solaris, וגם בדטהבייסים רבים, כולל Oracle ו Microsoft SQL Server.
מה לגבי יכולות פיתוח? יש ליוניפס כל מה שצריך בשביל לפתח אפליקציות גדולות ומורכבות?אז יש סביבת פיתוח מקיפה, שמספקת כל מה שצריך בשביל לפתח את האפליקציות המורכבות ביותר והגדולות ביותר, הכל במקום אחד.יש כמובן דיבגר, שיודע לדבג את השרת ואת הלקוח ביחד, באופן שקוף לחלוטין.יש אינטגרציה מובנית בסביבת הפיתוח עם כל מערכות ה source control הנפוצות.ואפשר (ואפילו מומלץ) לפתח ב offline. מכיון שכל מה שצריך לפיתוח נמצא בתוך הסטודיו, ניתן לפתח הכל מקומית, ואח"כ להעביר לסביבת ה deployment. ומכיון שהכל ביוניפס הוא metadata, אפשר למצוא בקלות הפניות מכל מקום לכל מקום בעזרת כלי ה cross reference.
הזכרנו קודם שכל מה שצריך בשביל לפתח אפליקציות נמצא בתוך סביבה אחת, כוללת. אבל מה קורה כשצריכים בכל זאת להתחבר למערכות אחרות, או להשתמש בקוד קיים ממערכת אחרת? גם את זה יוניפס יודע לעשות נהדר.דבר ראשון, סביבת הריצה של ה RIA קליינט שלנו היא אפליקציית .NET, ולמעשה כל אפליקציית RIA שמפותחת ביוניפס היא אפליקצית .NET טבעית. מתוך סביבת הפיתוח של יוניפס, ניתן להשתמש בכל הפונקציות הזמינות כחלק מה .NET framework library, גם בקונטרולים ויזואליים, וגם ביכולות לא ויזואליות, שקיימות בספריה. יוניפס יודע, בצורה קלה ופשוטה, לאתחל אובייקטים מסביבת .NET, לבדוק ולעדכן תכונות, לתפוס אוונטים ולהפעיל מתודות.ניתן כמובן להשתמש במגוון הרחב של קומפוננטות .NET הזמינות בשוק, להרחיב אפילו יותר את היכולות של האפליקציה.אבל, היכולות של יוניפס לא מסתיימות ב .NET יוניפס יודע גם לעבוד עם קומפוננטות Java, ואפילו קומפוננטות COM.ובנוסף לכל אלה, ליוניפס יש תמיכה מובנית בפיתוח אפליקציות המורכבות מקומפוננטות יוניפס. ניתן לחלק את האפליקציה ליחידות לוגיות, או מודולים, לפתח כל אחד בנפרד, ובסוף להרכיב את התוצאה לאפליקציה אחת שנראית כאילו פותחה כיחידה אחת.