dalam konteks penyimpanan dan transmisi data pada ilmu komputer, serialisasi adalah proses pengubahan suatu objek menjadi urutan bit agar dapat disimpan pada media penyimpanan (seperti berkas komputer, atau pada memori) atau ditransmisikan melalui saluran koneksi jaringan.
what's this "serialization" thing all about?
sewaktu rangkaian bit ini dibaca ulang sesuai dengan format serialisasinya, ia dapat digunakan untuk menciptakan klon identik semantis dari objek asalnya.
bagi banyak objek kompleks, misalnya objek yang banyak menggunakan rujukan, proses ini tidak dapat dilakukan begitu saja.
proses serialisasi suatu objek ini dapat juga disebut pengempisan (deflating) atau penyusunan (marshalling) objek.
operasi kebalikannya, pembuatan struktur data dari rangkaian bita, adalah deserialisasi, atau disebut juga penggembungan (inflating) atau pembongkaran (unmarshalling) objek.
how to marshal an object to a remote server by value by using visual basic 2005 or visual basic .net
serialisasi digunakan sebagai:
cara untuk melakukan penyimpanan objek yang lebih mudah dibandingkan menuliskan properti atas objek-objek tersebut ke dalam berkas teks, dan mengembalikannya sebagai objek.
salah satu proses yang dilakukan dalam pemanggilan prosedur jarak jauh (remote procedure call), contoh, soap
salah satu cara untuk mendistribusikan objek, khususnya dalam arsitektur berbasis komponen, contoh, com, corba, dan lain-lain.
salah satu cara untuk mendeteksi perubahan data dalam satu periode waktu tertentu.
agar fungsi serialisasi dapat memberikan manfaat seperti tujuan awalnya, arsitektur perangkat lunak yang berdasar pada ketidakbergantungan harus senantiasa dikelola secara konsisten.
sebagai contoh, untuk mendapatkan kegunaan maksimum saat perangkat lunak didistribusikan, komputer yang berjalan pada sistem operasi yang berbeda harus dapat pula melakukan rekonstruksi data yang telah terserialisasi tersebut secara reliabel.
serialisasi struktur data dalam arsitektur yang independen ditujukan untuk memungkinkan data tersebut secara reliabel dibaca, direkonstruksi secara mudah pada platform-platform sistem operasi lain.
hal ini berarti data yang berasal dari prosedur konvensional yang sederhana, berunjuk kerja tinggi, yang secara langsung menyalin blok-blok memori komputer biasanya tidak akan dapat digunakan pada arsitektur yang lain.
meskipun serialisasi memungkinkan pertukaran data antar platform secara reliabel, namun pada implementasinya serialisasi ini melanggar batasan-batasan tipe data abstrak, sehingga sangat mungkin menyertakan pula tipe-tipe data yang bersifat spesifik.
di sisi lain aspek kerugian ini seringkali dimanfaatkan oleh perusahaan pembuat perangkat lunak untuk melindungi produk perangkat lunak buatan mereka serta menghalangi kompetitor membuat produk sejenis yang kompatibel.
beberapa perusahaan bahkan menambahkan metode pengacakan atau bahkan enkripsi atas hasil data serialisasi ini.
hanya saja interoperabilitas mensyaratkan semua aplikasi harus bisa melakukan deserialisasi atau sebaliknya melakukan serialisasi dengan dengan menggunakan format yang sama, karenanya arsitektural pemanggilan prosedur jarak jauh (remote procedure call) ataupun corba secara detail menyertakan spesifikasi atas format yang digunakan.
untuk platform asp.net:
serialize any asp.net object to a json string
aspnet callback technique using csharp
bahasa pemrograman java:
java 1.4 object serialization documentation.
java object serialization
durable java: serialization
xml data binding resources
joafip serialization in file and more...
bahasa pemrograman c:
bahasa pemrograman c++:
serialization and unserialization
c++ middleware writer
bahasa pemrograman php:
object serialization in php
online serialize &
unserialize tool with recovering capacities.
other resources about php serialization
recovering truncated php serialized arrays
sistem serialisasi multi bahasa pemrograman:
google protocol buffers developer guide (c++, java, python)