סריאליזציה

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

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

תהליך הסריאליזציה של אובייקטים נקרא גם deflating (הוצאת אוויר) או marshalling. הפעולה ההפוכה, של יצירת מבנה נתונים מרצף של בתים נקראת deserialization או inflating (ניפוח) או unmarshalling.

שימושים[עריכת קוד מקור | עריכה]

סריאליזציה מאפשרת:

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

פורמטי סריאליזציה[עריכת קוד מקור | עריכה]

ב-1987 פרסמה סאן מיקרוסיסטמס את פורמט הסיריאליציה External Data Representation (‏XDR). בסוף שנות התשעים החל להיות רווח השימוש ב-XML, פורמט טקסטואלי הקריא גם לאדם, והנתמך על ידי שפות שונות. השימוש בפורמט טקסטואלי ביחס לפורמט בינארי, הופך את המידע לפחות קומפקטי. מתחילת שנות ה-2000 נעשה שימוש רב ב-XML במסגרת AJAX ביישומים אינטרנטיים.

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

לסיריאליציה המיועדת ליישומים מדעיים עתירי נפח, קיימים סטנדרטים בינאריים ייעודיים, כדוגמת HDF או NetCDF.

ראו גם[עריכת קוד מקור | עריכה]