AmfPHP vs WebORB

Bu yazıda iki popüler flash remoting teknolojisini inceleyeceğiz. AmfPHP ve WebOrb.

Ancak incelemeye geçmeden önce bu iki ürünün yerine geçmeye çalıştıkları Flex Data Services yada Adobe firmasının yeni verdiği isimle Live Cycle Data Services ‘in Actionscript ile yazılım geliştirmekte olanlara sunduğu teknolojilerden bahsedelim.

RTMP: Adobe Real Time Messaging Protocol anlamına gelir. Pek çok uygulama bu protokol için farklı portlar kullanılar. Örneğin Adobe Flash Media Server 1935 numaralı portu kullanırken WebOrb 2037 numaralı portu kullanır. Adıdan da anlaşılacağı gibi gerçek zamanlı mesajlaşma için kullanılır ve hem server’dan client uygulamaya hemde client uygulamadan server uygulamaya, hemde client uygulamadan client uygulamaya data gönderimini sağlar.

SharedObject Sınıfı: Adından da anlaşılacağı gibi paylaştırılmış bir nesnedir. Bu sınıftan türetişmiş nesneler aynı server alanına bağlı diğer kopyalarıyla senkronize çalışlır. Özellikle çok kullanıcılı oyun uygulamaları ve chat uygulamalarında kullanılabilecek ideal bir yöntemdir.

RemoteObject Sınıfı : Flash remoting’in özü Remote Object’tir. Server taraflı yazılmış bir class’tan flash tarafında nesne oluşturmakta kullanılır. Remote Object sınfından Actionscript ile türetilmiş tüm nesneler server’daki class’ın tüm public yordamlarına(fonksiyon) ve nesnelerine erişebilir.

NetStream Sınıfı : Client tarafından diğer clientlara dağıtılacak stream veriler için kullanılan sınıftır. Görüntü , ses verileri bu tür verilerdir.

Live Cycle Data Services ‘in yukardaki sınıfara destek vermek amacıyla sunduğu yardımcı bazı yöntemlerde vardır. AsyncToken Sınıfı, Producer ve Consumer bileşenleri ve DataTransferObject sınıfı bu yardımcı sınıflardandır.

Şimdi bir tablo halinde AmfPHP ve WebOrb ‘un destek verdiği özellikleri inceleyelim:

AmfPHP WebOrb PHP WebOrb.NET
Net Connection Sinifi + + +
RemoteObject - + +
SharedObject Sinifi - - +
NetStream Sinifi - - +
RTMP - - +
Producer Bileseni - + +
Consumer Bileseni - + +
AsyncToken - + +
Bu tablo ışığında hangi teknolojiyi kullanacağınıza karar verebilirsiniz. Ancak şunu belirtmekte fayda var; bir sistem ne kadar çok özelliğe sahipse o kadar karmaşıktır. Bu nedenle genel Türk düşüncesi olan "Bir tane olsun en iyisi olsun" mantığıyla değil projemizin ihtiyaçlarını karşılayabilecek minimum özellikte olanı tercih etmek gerekir. Örneğin sadece client-server arası veri alışverişi yapılacaksa AmfPHP , WebORB’a göre daha iyidir.

Eğer clilent-client veri alışvarişi yapılacaksa o zaman RTMP özelliğini aramak gerekir.