COMET (programlama)

Vikipedi, özgür ansiklopedi

Comet, internet sayfalarında kullanıcı tarayıcısından herhangi bir istek olmamasına karşın, web sunucusundan kullanıcıya veri göndermeyi sağlayan bir programlama tekniğidir.

Geleneksel olarak web sayfaları sadece, ziyaretçi herhangi bir istekte bulunduğunda ekrana taşınır. Ziyaretçinin her isteğinde, web tarayıcıları bir sunucu istikametinde bir HTTP bağlantısını başlatır ve istekte bulunulan verinin elde edilmesini müteakip bağlantıyı keser. Bu yöntemin dezavantajı ise içeriği güncellenmiş veya değiştirilmiş bir sayfanın, ancak ziyaretçi gerçek anlamda tarayıcısındaki sayfayı yenilediğinde ya da yeni bir sayfaya eriştiğinde görüntülenebilmesidir.

Bu problemin çözümünde, web sayfalarının belli bir parçasındaki değişiklikler için Ajax kullanılarak elde edilen veriler kullanılmaktaydı. Tabii ki bununla beraber toplamda transfer edilen veri miktarı ve istek-sonuç işlemi sürelerinde azalma yaşanırken; aynı anda isteklerin sayısıyla eşzamanlı olarak, sonuçları üreten web uygulamalarının toplam karşılama miktarlarında da artış meydana gelmiştir. Dahası, asenkronize arka plan veri transferleri kullanıldığında, ziyaretçiler toplamda elde edilen verinin ancak bir kısmını kullanabildiği gibi, web uygulamalarının karşılama/cevap verme sıklığı daha da artmaktadır.

Bu tür bir uygulamada temel sorunların yanı sıra; sunucunun veri gönderebilmesi için, öncelikle ziyaretçinin bir istekte bulunması gerekmektedir. Bu durum, ziyaretçiye veri aktarılmadan önce sunucu tarafında meydana gelen bir olayın beklenmesi ile çalışan uygulamaların önündeki en büyük engeli teşkil etmektedir. Örneğin, bir ziyaretçi sunucuya veri gönderdiğinde, bu veriler işlense dahi, işlem sonucunda ortaya çıkan çıktıyı yalnızca veriyi gönderen ziyaretçi görebilir. Diğer kullanıcılar ise bu süreç ve sonuçlarından -kendileri talep etmedikçe- haberdar olamazlar.

Bu soruna çözüm olarak, sunucudaki değişiklikleri periyodik olarak kontrol eden bir mekanizma geliştirilebilir. Ancak bu yaklaşım optimal bir çözüm sunmaz. Sürekli sunucu sorgulaması yapan bir sistem, hem beklenen olayın gerçekleşme sürecinde zaman kaybına yol açar hem de uygulamanın yanıt verme performansını olumsuz etkiler. Ayrıca bu yöntem, gereksiz bant genişliği tüketimine de neden olur.

Dış bağlantılar

[değiştir | kaynağı değiştir]