Bir marshaller ve bir serileştirici arasındaki fark nedir?


Yanıtlar:


30

Anlambilim burada önemlidir:

Marshalling hareket etmeyi gerektirir , verilerin , verilerin yerel temsilinden veya depolanmasından dönüştürülmesini ima etmez. Java Nesneleri yerel temsillerinde tel üzerinden Marshalled edilebilir.

Serileştirme , verilerin yerel olmayan bazı ara temsillere dönüştürülmesi anlamına gelir . Örneğin: Bir Java Nesnesini JSON veya XML'ye dönüştürme.

Tabii ki, Mareşal'ın veri verdiği çoğu sistem, taşımadan önce yerel olmayan bir forma seri hale getirir .


13

Bu soru daha önce, ancak StackOverflow'da sorulmuştur. İşte bağlantı.

Jeffrey Hantin tarafından verilen cevabın alıntısı :

Sıradanlaştırma ve serileştirme, uzak yordam çağrısı bağlamında gevşekçe eş anlamlıdır, ancak niyet meselesi olarak anlamsal olarak farklıdır.

Özellikle marşlama, buradan oraya parametreler almakla ilgilidir, serileştirme ise yapılandırılmış verileri bir bayt akışı gibi ilkel bir forma veya ondan bir formdan kopyalamakla ilgilidir. Bu anlamda, serileştirme, genellikle by-pass semantik uygulayarak, marşaling yapmak için bir araçtır.

Bir nesnenin referans olarak sıralanması da mümkündür, bu durumda "tel üzerindeki" veriler sadece orijinal nesnenin konum bilgisi olur. Bununla birlikte, böyle bir nesne değer serileştirmesine hala uygun olabilir.

@Bill'den bahsedildiği gibi, kod tabanı konumu ve hatta nesne uygulama kodu gibi ek meta veriler olabilir.


2

Bir Marshaller, bir yerden bir yere taşınacak bir veri yapısı oluşturmak için ne gerekiyorsa yapar. "Veri Yapısı" hakkında konuştuğumda her şey olabilir. Bir nesnenin kendisinden (durum verileri => alan değerleri), istemci tarafında bir "Saplama" tarafından ve sunucu tarafında "Proxy" tarafından işlenecek olan nesneye yönelik bir bellek başvurusuna. Bir Marshaller'ın bu veri yapısını taşıması çok daha düşük seviyeli bir temsile dönüştürmek için "Serileştiriciler" i kullanabileceği anlamına gelir. Dönüşüm yolu Kompresörler, Derleyiciler, Adaptörler vb. Gibi başka bileşenlere sahip olabilir. Benim için bir Serileştirici, Marshaller'ın bir parçasıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.