Serileştirme Nedir?

Bilgisayar programlamada, seri hale getirme, yerel bellekte depolanan bir veri yapısını alma ve onu bir ağ üzerinden iletilebilen veya başka bir program tarafından yeniden bir araya getirilip kullanılabilecek bir diskte depolanabilen bir bayt akışına dönüştürme işlemidir. Seri hale getirme, bir nesnenin durumunu kaydetmek için de kullanılabilir, böylece daha sonra aynı program tarafından yeniden yüklenebilir.Bu fonksiyonun daha karmaşık bir kullanımı uzaktan prosedür çağrısını çağırmaktır (RPC). Bir ağ üzerinden başka bir bilgisayarda bir prosedürün etkin bir şekilde çalıştırılması Bu mekanizma, veri nesnelerinin büyük bir ağa bağlı sistem üzerinden dağıtımına da izin verir.

Neredeyse her modern bilgisayar dili, serileştirme için yerel desteğe veya bu işlevi eklemek için kullanılabilen bir kütüphaneye sahiptir.Bir nesne serileştirildiğinde, nesnenin tüm alanları düzleştirilir.Bu işlem aynı zamanda deflasyon olarak da bilinir. veya marşaling Veriler, herhangi bir çıkış akışına yazılabilen bir boyutlu bayt sırasına dönüştürülür Çıkış akışının türü önemli değildir ve bir dosya veya ağ soketi olabilir.

Veriler seri hale getirilip nihai konumuna gönderildikten sonra, seri kaldırma işlemi başlar: Bayt akışını okuyan program tüm bilgileri geri yükler ve orijinal nesnenin yeni bir örneğine yerleştirir, Kesin kopya: Sadece nesnenin tuttuğu verinin birleştiğini anlamak önemlidir; nesne ve onun yöntemleri ve diğer uygulama verileri değildir.Bu, verileri seri hale getiren programın, orijinal olarak seri hale getirilmiş sınıfın bir örneğini oluşturabilmesi gerektiği anlamına gelir.

Veri yapısı seri hale getirme çeşitli amaçlar için kullanılabilir Nesne bilgisi fiziksel medyada depolanabilir, böylece her bir nesnenin tam durumu, program yürütme durduğunda olduğu noktaya geri getirilebilir. Uzak bir prosedürün çalışmasına neden olacak başka bir bilgisayara mesajlar gönderir.Serileştirme, gerçek zamanlı uygulamalardaki durum değişikliklerini etkili bir şekilde karşılaştırmak için bile kullanılabilir.

Nesne seriizasyonunu kullanmadan önce, içerdiği bazı sınırlamaları anlamak önemlidir: En önemlisi, bir nesneyi bir bayt akışına dönüştürme işlemi yoluyla, özel olarak ilan edilen alanların ortaya çıkmasıdır. Akışın iletimi sırasında, bu veriler yakalanıp çözülebilmekte, bir güvenlik deliği açmakta, çoğu dil veri serileştirme biçimlerinin dışsallaştırılmasına izin vermektedir, böylece özel kodlama yapmak mümkündür. bu riski azaltmaya yardımcı olur.

Akılda tutulması gereken diğer bir faktör ise, serileştirmenin genel olarak yalnızca serileştirilmiş nesneyle tamamen aynı olan nesnelerle çalışacağıdır, bir nesneye yeni alanlar veya yöntemler eklenirse ve sonra nesnenin imzası değişecektir Bu, saklanan nesnenin bir istisnaya neden olacağı ve verilerin değiştirilmemiş orijinal nesnenin bir örneği onu geri yüklemeye çalışıncaya kadar kurtarılamayacağı anlamına gelir.