Serialisasi

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.[1] 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.[2]

Penggunaan

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.

Kerugian

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 sering kali 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.

Rujukan

Pranala luar

Untuk platform ASP.NET:

Bahasa pemrograman Java:

Bahasa pemrograman C:

Bahasa pemrograman C++:

Bahasa pemrograman PHP:

Sistem serialisasi multi bahasa pemrograman:

A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: wikipedia/wikipediareadmore.php

Line Number: 5

A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: wikipedia/wikipediareadmore.php

Line Number: 70

 

A PHP Error was encountered

Severity: Notice

Message: Undefined index: HTTP_REFERER

Filename: controllers/ensiklopedia.php

Line Number: 41