סריאליזציה

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

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

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

שימושים 
סריאליזציה מאפשרת:
 שימור אובייקטים (persistence), לדוגמה לצורך כתיבת משתני המחלקה שלהם לקובץ על הדיסק, או על ידי שמירתם בבסיס נתונים.
 הפעלת פרוצדורות מרוחקות (RPC), למשל באמצעות SOAP.
 ביזור של אובייקטים, בייחוד בתכנות מונחה-רכיבים כמו COM ,CORBA, וכדומה.
 זיהוי שינויים בנתונים המשתנים בזמן.

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

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

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

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

ראו גם 
 Persistence
 Hibernate

קישורים חיצוניים

הערות שוליים

קידוד נתונים