در علوم کامپیوتر و در حوزه ذخیره داده، دنباله سازی به فرایند ترجمه ساختمان داده ها یا حالت شیء به قالبی که امکان ذخیره آن وجود داشته باشد (برای مثال در یک فایل یا بافر حافظه) و بعدتر در همان کامپیوتر و یا یک کامپیوتر دیگر بتواند از نو احیا گردد، گفته می شود. وقتی دنباله های بیتی حاصل شده بر اساس قالب دنباله سازی بازخوانی شوند، می توانند برای ایجاد یک نسخه یکسان معنایی از شیء اورجینال، به کار روند. برای بسیاری از اشیاء پیچیده، برای مثال آنهایی که ارجاعات وسیعی دارند، این فرایند آسان نیست. حاصل دنباله سازی اشیاء شیء گرا شامل هیچ کدام از متدهای همبسته شان که پیش از آن به صورت جدانشدنی به هم مرتبط بوده اند، نمی شود.
فرایند دنباله سازی یک شیء را marshaling یا با ترتیب نشان دادن نیز می گویند. عملیات مخالف این فرایند، استخراج یک ساختمان داده از دنباله ای از بایت هاست (deserialization یا unmarshalling).

کاربردهای دنباله سازی

  • شیوه ای برای انتقال داده در طول سیم ( messaging یا پیام رسانی)
  • شیوه ای برای ذخیره داده (در پایگاه داده ها، بر روی درایوهای دیسک سخت)
  • شیوه ای برای فراخوانی روال راه دور، برای مثال در SOAP
  • شیوه ای برای توزیع شیءها، به خصوص در مهندسی نرم افزار مبتنی بر مولفه همچون COM، CORBA و غیره
  • شیوه ای برای تشخیص تغییر در داده های متغیر با زمان

تبعات دنباله سازی

دنباله سازی، عدم شفافیت در نوع داده انتزاعی را با افشای جزئیات محرمانه پیاده سازی از بین می برد. پیاده سازی جزئی که تمام اعضای داده را دنباله سازی می کند، کپسوله سازی را زیر سوال می برد.

برای تشویق رقیبان به ایجاد محصولات غیرمشابه، تولیدکنندگان نرم افزارهای اختصاصی اغلب جزئیات قالب دنباله سازی برنامه هایشان را مخفی نگه می دارند. بعضی حتی تعمدا داده های دنباله سازی شده را مبهم و یا حتی رمزگذاری می کنند. با این حال، در تبادل داده بین کامپیوترها باید اپلیکیشن ها قادر به درک قالب های دنباله سازی هم باشند. بنابراین، معماری های فراخوانی متد راه دور همچون CORBA، قالب های دنباله سازی شان را با جزئیات زیاد تعریف می کنند.

بسیاری از موسسات، همچون کتابخانه ها و بایگانی ها، از اسناد خود با ثبت در قالب دنباله سازی شده ای که برای انسان قابل فهم باشد، پشتیبان تهیه می کنند.

پشتیبانی از دنباله سازی توسط زبان های برنامه نویسی

زبان های برنامه نویسی شیء گرای زیادی مستقیما از دنباله سازی شیء پشتیبانی می کنند. بعضی از این زبان ها عبارتند از Ruby، Smalltalk، Python، PHP، Objective-C، Java و خانواده زبان های (.NET). بعضی کتابخانه ها نیز وجود دارند که پشتیبانی از دنباله سازی را به زبان هایی که آن را پشتیبانی نمی کنند، اضافه می کنند.

اگر این مطلب برای شما مفید بوده است، آموزش‌ها و مطالب زیر نیز به شما پیشنهاد می‌شوند:

بر اساس رای 2 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *