24 Ocak 2014 Cuma

REST vs SOAP

Bu iki teknolojinin en temel farklılıkları SOAP’ın veri isteklerini HTTP data kısmında halletmesi. RESTful web servislerinde ise istekler  HTTP header kısmında halledilir. Bunu sağlamak için HTTP protokolunde bulunan POST,PUT,GET,DELETE parametreleri kullanır.  Bu da RESTful web servislerinin en önemli özelliğidir.
Genel olarak farkları ;
·         REST daha az trafik harcar, Platform ve dil (java ile .net haberleşebilir)  bağımsızdır.
·         Veriler REST’te işlenmeden de okunabilirliği yüksek olur.
·         SOAP ‘ta WSDL’den otomatik proxy class oluşturulup , client uygulamaya kolay entegre edilebilir.
·         REST’te client uygulamaya entegre etmek için proxy class yazılması gerekir.
·         SOAP tip korumalıdır. SOAP headerda belirtilen şekilde veri gelir.
·         REST’da veri tanımlaması yoktur.
·         SOAP alt yapısında xml kullanır(JSON veri gömülebilir).
·         REST verileri xml veya JSON olarak gönderebilir.
·         REST, veritabanına uzaktan erişim gibi çalışır. SOAP ise uzaktan metot çağırma(RPC) ilkesine dayanır.
·         REST’i uygulamak için url etkin şekilde kullanılır ve url tasarımı yapılması gerekir.
·         SOAP’ta ise uzaktan metot çağrıma tekniği kullanılır.

REST
SOAP
Dönüş değerini belirleyebildiğimiz için, bu değer çok küçük boyutta olabilir.
Dönüş değeri XML tipinde olduğu için boyutu daha büyük.
Client tarafında cache'lenebilir.
Cient tarafında cache özelliği yok.
Twitter, Facebook ve Google REST kullanıyor.
Google 2006'dan sonra kullanmaktan vazgeçmiş.
Uygulaması ve öğrenmesi çok kolay.
Standartlarını öğrenmesi zor.
Stateless olduğu için scale etmesi kolay.
Scale etmesi zor.
Her MIME tipinde dönüş yapabilir.
Sadece XML döner.
Mobile playformlar için iOS ve Android tarafından destekleniyor.
Mobile platformlarda tüm özellikleriyle desteklenmiyor.
Async desteği yok.
Async desteği var.
Session desteği yok.
Session desteği var.
Standart mesajlaşma sistemi içermediğinden dolayı iletişim hatalarında zorluk çıkarabilir.
Standart mesajlaşma sistemi olduğundan otomatik olarak başarısız bir isteği tekrar deneyebilir.
Kullanıcı doğrulama sistemi zahmetli.
Session desteğiyle birlikte, daha kolay bir kullanıcı doğrulama sistemi var.
Kısıtlı kaynak ve hızlı kod geliştirme için uygun.
Yüksek güvenlik ve büyük data transferleri için uygun.
 

Hiç yorum yok:

Yorum Gönder