Home Contact RSS

Makale 3: Remoting Formatter’ları

Remoting Formatter’ları

Channel’lar üzerinden gönderilecek ve alınacak olan bilgilerin tamamı, öncesinde serializa edilmeli ve ondan sonra ilgili channel kullanılarak sistemler arasında geçiÅŸ yapmalıdır. Bu iÅŸlem sırasında hem Remoting server’ı hem de Remoting client’ı aynı sistem üzerinde çalışacak ÅŸekilde configure edilmelidir. Aksi durumda server ya da client’ın gönderdiÄŸi herhangi bir mesaj, diÄŸer taraf için anlamsız bir paket niteliÄŸi taşıyacaktır.

.NET Framework’ün içerisinde kullanılabilecek iki adet formatter bulunmaktadır. Bunlar System.Runtime.Serialization.Formatters.Binary namespace’i içerisinde bulunan BinaryFormatter ve System.Runtime.Serialization.Formatters.Soap namespace’i içerisinde bulunan SoapFormatter class’larıdır. Remoting mimarisi uygulama geliÅŸtiricilerin kendi formatter’larını geliÅŸtirmelerine izin vermektedir. Bunun için yazılım geliÅŸtiren kiÅŸilerin System.Runtime.Remoting.Messaging namespace’i içerisinde bulunan IRemotingFormatter interface’ini implement edilmesi yeterlidir.

NOT

System.Runtime.Remoting.Messaging.IRemotingFormatter interface’i  System.Runtime.Serialization.IFormatter interface’ini kendi içerisinde implement etmektedir. Formatter’ların yapacağı iÅŸin büyük bir kısmı System.Runtime.Serialization.IFormatter interface’i içerisinde tanımlı olan method’ların implementasyonunda belirlenecektir.

Genel olarak avantajlarından ve dezavantajlarından bahsedeceÄŸimiz SoapFormatter ve BinaryFormatter’ların Tcp, Http ya da Ipc channel’ları üzerinde kullanım kısıtlamaları bulunmamaktadır. Yani uygun formatter’a ve uygun channel’a karar verildikten sonra hem SoapFormatter hem de BinaryFormatter istenilen channel’la kullanılabilir. Ayrıca yukarıda anlatılmış olduÄŸu gibi IRemotingFormatter interface’ini implement eden herhangi bir custom formatter da Tcp, Http ya da Ipc channel farkı gözetmeksizin istenilen channel üzerinde kullanılabilir.

SoapFormatter

SOAP kelimesi Simple Object Access Protocol’ün kısaltılmış halidir. Server ve client arasındaki iletiÅŸimin XML altyapısı kullanılarak saÄŸlanması mantığına dayanır. Farklı yapılar ve ya farklı programlama dillerinin XML konusunda verdiÄŸi desteÄŸe dayanarak birbirlerinden farklı ÅŸekillerde çalışan sistemlerin iletiÅŸimi için kullanılabilir.. SOAP kullanımında gönderilen paketler içerisinde hem paketin XML dosyasından nasıl deserialize edileceÄŸi bilgisi hem de paketin içeriÄŸi gönderildiÄŸinden paket boyutları beklenen boyutların üstüne çıkabilir. Bu da SoapFormatter’ın sistemi normalinden daha fazla yorması demektir.

UYARI

SoapFormatter üzerinden sunulacak method’lar yalnızca public olarak tanımlanmış method’lar olabilir.

BinaryFormatter

Binary formatting kullanılması durumunda paketler SOAP formatting’e göre daha ufak boyutlara sahip olacaktır. Bu network trafiÄŸi ve hız açısından büyük bir avantaj olarak görülebilir. BinaryFormatter’ın en büyük dezavantajı yalnızca .NET ile geliÅŸtirilen uygulamalar tarafından kullanılabilir olmasıdır. Fakat performansın önemli olduÄŸu ve hem server’ın hem de client’ın .NET ile geliÅŸtirilmesi durumunda BinaryFormatter SoapFormatter’tan daha performanslı çalışacak ve yalnızca .NET ile geliÅŸtirilen uygulamalar arasında çalışabiliyor olmasının getirdiÄŸi dezavantajlar sistem açısından bir önem teÅŸkil etmeyecektir.

NOT

BinaryFormatter üzerinden sunulacak method’lar hem public hem de private olarak tanımlanmış method’lar olabilir.

Leave a Comment