Web 1-2-3 and their technologies

31 01 2008

השבוע העברתי הרצאה בנושא טכנולוגויות Web 2.0 וסקירת Web 3.0 (או יותר נכון הרשת הסמנטית) במסגרת סדנת 4X4 למומחי IT בג'ון ברייס.

הגעתי עם מצגת עדכנית שבה כל הבאזים האחרונים בנושא Web 2.0. נושא הרשת הסמנטית קרוב לליבי (וגם סופר מעניין) כי הוא בסיס התזה שלי בתואר השני ולכן גם ממנו הצגתי את החידושים האחרונים.

כדי להסדיר סוף סוף את כל נושא האידיאולוגיה שמאחורי המונח Web 2.0 החלטתי שאחת ולתמיד יש לומר שלא מדובר בגרסת האינטרנט ולא בטכנולוגיה חדשה, יותר מזה הטכנולוגיות שקשורות ל- Web 2.0 לא הומצאו לטובת הגרסא החדשה אלא היו לפניי והתבגרו עם השני. מצאתי שקל להגדיר את Web 2.0 כעידן (Era) ולא כגרסא, בדיוק כמו שיש לנו את שנות ה- 70 וה-80 שעברו אך עדיין השאירו את חותמם וקל לראות אופנות שחוזרו ברטרו גם כיום, כך גם Web 2.0 מסמל עידן – עידן חשוב מאוד אגב של סוציולוגיית הרשת – כוח הידע ושיתוף הפעולה של הגולשים כחלק אינטגרלי מבשלות ובגרות הרשת.

לגבי Web 3.0 או הרשת הסמנטית, קשה להגיד מתי העידן הזה יגיע אבל ברור שהוא קרוב במיוחד לאור התפוצצות המידע באינטרנט (חלק מה"אשמה" של Web2.0), השאלה היא איך עושים את זה נכון ומי ירים את הכפפה או שזה פשוט עניין של זמן כי הטכנולוגיה עצמה קיימת ומאפשרת את המעבר לרשת סמנטית יותר.

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

קובי מגנזי, Kobi Magnezi





AJAX – Great way for creating advanced interactive website

29 12 2007

במהלך השנה התבקשתי מספר פעמים לתת ייעוץ בנושא AJAX – מה זה ולמה זה טוב.
האמת היא שישנה הרגשה באויר ש- AJAX זה משהו שבצורה כזו או אחרת כולנו עשינו כבר מזמן אבל עד שהומצא המינוח לא ממש ידענו שזה זה – יש בזה משהו יעיד עליו אחד מאתרי הצהלנט שהקמנו מבוסס XML HTTP, DOM ו- JS בתחילת שנת 2000 (!!) – אבל מעבר להיותו רק מונח AJAX הגדיר בצורה מסודרת איך לנצל את כל הכלים והשיטות הידועות בצורה שתגביר את השימושיות ורמת ממשק המשתמש  באפליקציות WEB.
אז לטובת סגירת 2007 במבצע ניקוי מדפים אני מרכז בפוסט הזה את הנקודות העיקריות לנושא החשוב הזה שנקרא AJAX.

אז מהן ארבעת העקרונות של AJAX?

1. הדפדפן מחזיק אפליקציה ולא רק תוכן כמו בעבר

2. השרת מעביר נתונים ממש ולא תוכן (שמכיל בתוכו גם את הנתונים בצורה מעורבת)

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

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

הסכמה ארכיטקטונית בתמצות מהיר:

- השרת מחזיק את הנתונים המלאים
- הלקוח מחזיק נתונים חלקיים
- האפליקציה אצל הלקוח מכילה interface המשרתים אותה לעבודה מול השרת ולקבלת חלקי המידע על פי בקשה (on demand) וללא הפרעה בממשק המשתמש.

נקודות מפתח טכנולוגיות למימוש- AJAX:

פיתוח ב- Java script, שימוש והפרדה נכונה של CSS, ניצול אובייקט ה- DOM ליישום DHtml ברמה גבוהה וכמובן איך לא XMLHttpRequest לקבלת ושליחת פיסות המידע.

ואם תהיתם מה מצלצל מוכר כשחושבים על אידיאולגיית ה- AJAX – צדקתם… צריכת Services במטודולויית SOA מתאים ביותר ל- AJAX.

ואיך זה בא לידי ביטוי ברמה הטכנית – קשר הנתונים דפדפן שרת?

* אספקת HTML מלא לתוך IFRAME או DIV
* Streaming של נתונים באמצעות חיבור HTTP רציף שלא נסגר, כאשר השרת מבצע flushing של קטעי קוד לפי דרישה – מתאים ליישום חדרי צ'אט למשל…
* Hidden inner frame או hidden frame במסך שמאפשר עבודה מול השרת ללא הריסת הדף הנוכחי.
* שימוש ב- XML או ב- XML Island הניתנים לרענון ללא הפרעה לממשק.
* JSON – JavaScript Object Notation – שימוש ב- XmlHTTP לקבלת המידע כאובייקטים ממש (על ידי קבלת קוד Javascript) ולא על ידי XML.

* שימוש ב- XSLT להפיכת המידע לתצוגה בצד הלקוח בצורה אלגנטית שמאפשרת גם תחזוקה פשוטה יותר בעתיד.

בהצלחה!

קובי מגנזי, Kobi Magnezi





RDF and the Semantic Web

1 12 2007

RDF הינם ראשי התיבות של Resource Description Framework, והינו מודל לבניית אוצר מילים (vocabulary). מיוצג ב-XML בגישת הרשת הסמנטית (Semantic Web) והוא מתוקנן על ידי הארגון W3C.

הרשת הסמנטית ידועה גם כשם Web 3.0 – הדור הבא (נכון להיום) של האינטרנט בו המידע באינטרנט מעבר להיותו מאורגן ומסודר לפי בשורת ה- Web2.0. הוא גם מידע שמכיל מידע מתאר (Meta Data) ומאפשר להקרא גם על ידי מכונות.

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

תאור הבעיה והמוטיבציה מאחורי RDF

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


הדרישות למימוש

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


אונטולוגיה

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

פרוטוקול RDF יאפשר לנו לתת משמעות לדברים. על מנת לאמת את נכונות המידע ולמנוע מאנשים להגדיר מחלקות והקשרים שגויים בין בשוגג ובין במזיד – נטמיע בדרישות הפרוטוקול את השימוש בחתימה דיגטלית.


יצירת ה- RDF

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


הגדרות

  • נשתמש ב- RDF scheme על מנת להגדיר את המונחים והמחלקות שנשתמש בהם.
    כלי topic maps – כלים לארגון המידע בצורה שתאפשר ניווט אופטימלי בתוכו.
    sparql הינה השפה ליצירת שאילתות על המידע במבנה RDF. דוגמא לשאילתא הניתנת לייצוג בשפת sparql:
    ".find me the title t of any resource x that has the same creator and tell me who they work for"
    ארגון W3C יצר ספסיפיקציות המגדירות את שפת sparql.

קובי מגנזי, Kobi Magnezi.