

İletişim İçin Hangi Sistemi Kullanıyorsunuz (Yazılımcılar İçin Soru)
-
Merhaba arkadaşlar,
Client-Server tabanlı program yazan kişiler ya da web uygulamaları yapan kişilerin kullandığı sistemleri merak ediyorum. Ben daha önce CometD nin client
tarafında çalıştım ve gayet memnunum (facebook arkaplanında da comet tarzı bir sistem kullanılıyor bildiğim kadarıyla) Şu aralar WCF ile ilgileniyorum.
Kendime basit server (iis ye attım localhostta çalışan) ve client yaptım. Server tarafından MySql için Entity framework kullanarak verileri client in istediği
biçimde yollatıyorum. Kendime ait bir class yazıp o türde bir list ile verileri alıyorum. Bağlantı olarak WSHttpBinding kullandım. Diğerlerini de deneyeceğim..
Ondan öncede .net socket üzerinde iletişim ağı kurmuştum.
Buradan edindiğim bir kaç önemli tecrübeyi paylaşayım
1- socket üzerinden kurulan iletişimde server c# tabanlıydı. Ben hem java, hem android hem de yine c# da yazdığım clientlar ile sorunsuz bağlanıp veri
iletişiminde sorunsuzca bulundum. Çünkü gidiş-dönüş değerleri primitive tiplerdi. Her platformda bunlar olduğu için (string,byte,int gibi) iletişim sorunsuz
oldu
2- Aynı olayı wcf servisinde denemedim ama onda da primitive tip kullandığımda aynı sonucu alacağımdan şüphem yok.
3- Dikkat edilmesi gereken bir nokta ise .net teknolojisine özgün bir tipi mesela IEnumarable<seninsınıfn> gibi bir tür dönderirseniz java kullanılan bir
client uygulamasında problem yaşarsınız, çünkü bu tip .net e özgü. Eğer her platform için bir server yazılacaksa primitive tipler kullanılması doğru olur.
Eğer clientlarınız da .net kullanacaksa o zaman problem yoktur.
4- Comet de serverda o clienta özgü bir değişiklik-istek meydana geldiğinde clientdaki event bu değişikliği alabiliyordu. Güzel bir asenkron çalışma
mevcut. İşin WCF tarafını bilmiyorum maalesef
Bunlar benim bazı tecrübelerim. Bu konu üzerinde çalışan arkadaşlar varsa fikirlerini paylaşırlarsa çok yararlı olur. Bu sistemlerin güvenirliği konusunda
çok fikrim yok maalesef. kendimce şifreli bir iletişim sağlayabilirim, verileri şifreleyip gönderip, sonra clientda çözdürebilirim ancak bunun dışında ne gibi
güvenlik açıkları olabilir? WCF ve Comet dışında .net, java, android e uygun veri iletişim teknolojilerinden kullanandıklarınızdan hangilerini tavsiye
edersiniz?
teşekkürler
-
belki gören olmamıştır ..

-
bu dediklerini anlayacak pek kimse yoktur ;) ben bile neyi ne yapmak istediğini az çok anladım. ama cevap verecek bilgim yok. çünkü bu tip bişey hiç yapmadım
-
Client-Server ile yapacağın işlerde client hem normal bir c# executable hemde web olacaksa bence en iyi ortak dil JSON. her halükarda her platformda parse edip class'a rahatça dönüştürülebiliyor. WCF filanda json veri döndürüyordu galiba.
-
anlık iletişim için node.js gayet iyi arkayada mongo db/nosql tarzı bi veritabanı koydun mu korkma :)
iyi bir server ile saniyede 250 k kişi aynı anda(aynı anda insert trafiğinden bahsediyorum) rahat,kasmadan veri girişi yapabileceğini düşünüyorum. tabi bu değerler datacenterın gücünede bağlı.
düşünüyorum derken, kendi macimi server yaptım, mongodb ye 25 kolonluk bi tabloya saniyede 1k kayıt atabildim. gerisini siz düşünün
not: bu sayade sunucu masraflarını minumuma çekip, evrensel bir uygulama yazmış olduk :)
-
@ajan, biraz eleştiri gibi olacak ama artık tahribat sitesinde bilişimden çok magazin konuları daha çok dönüyor (şikayetçi değilim :| )
@terror, benim kast ettiğim veri tipi değil iletişim türü. yoksa json veri de yollanabilir çok önemli değil o olay..
@SharpShooter, node.js yi duymuştum daha önce ama hiç kullanmadım, fikrim yok performansı açısından. ben biraz daha büyük bir teknoloji bekliyordum, keza veritabanı için, aslında denemeler yapabilrim bunla ilgili.. projemde çok veri taşınmayacak, kullanıcıya özgü veriler gidip gelecek byte dizisi şeklinde. önemli olan bir kaç nokta var benim için.
1- güvenilirlik
2- hız
3- esneklik
nedense ismi pek duyulmamış teknolojileri hep az güvenir buluyorum ve pek sıcak bakamıyorum. Sebebini bilmiyorum neden böyle düşündüğümü ama çok basit yapıları olmasından dolayı kolay hack edilebilir diye geliyor aklıma..
cevaplarınız için teşekkürler
-
evet haklısın duyulmamış ama nerede? piyasanın anasını siktiler. 50 k parası olan şirket açıp 1000 er tlden c# yazılımcısı alıp anasını siktiler. teknokente gidin, hepsi c#.net teknokentin kuruluş amacıyla birebir ters.
Türkiye de duymaman bunların güvenilirliğini belirleyemez bence. Ben şahsen kullanıyorum mongo db, 35 kolonluk tabloya 300 k veriyi 47 saniyede insert ettim.
dünyanın gittiği yön mongo/nosql, node.js zaten fenomen buna güvenmemek aptallık olur. lakin neye göre güvenmediğini bilmiyorum.
bence güvenmemen gereken microsoft teknolojileridir.
-
daha önce seninle bu konuyu konuşmuştuk, hızını söylemiştin, xml yapısında tutuyor tamam eyvallah ama güvenirliğini nasıl test edebilrim. kendine özgü ne kadar sınıfı var bu konuda? wcf teknojisi esnek bir yapıda, bir çok protokolü destekliyor. ama bu basit protokoller küçük işleri yapmak için var. komple bir sistem bunla inşa edilemez. elbette ara ara kullanlır ama ana sistemin büyük teknolojilerden oluşturmak gerek.
node.js yi hem client hem server tarafında istediğim platformda kullanabiliyor muyum? umarım öyle bir kısıtlama yoktur. yani ben javascript kullanmak zorunda değilim de mi? birazdan deneyeceğim de ön bilgi almak isterim eğer kullanmışsan
-
NoSQL teknolojilerinin ismimi duyulmamış? Abi yazılımda ki trend konulardan bir tanesi.Bırakın MongoDB yada CoachDB'yi millet redis,hadoop,casandra ile neler yapabileceklerini düşünüp duruyor. Günlük 1.5 milyon ziyaretcisi olan bir oyunun ekibiyle kısa bir süre çalışmıştım.Adamlar NoSQL ve MySQL beraber kullanıyorlardı senior developerları şunu dedi "MySQL sürekli sorun çıkartıyor o yüzden bazen sorun yaşasakta NoSQL sunucularımız şu güne kadar sorunsuz gitti"
Soruna gelince ben mümkün olduğu kadar web servisi olarak yazmak taraftarıyım böylelikle bir çok limitten kurtuluyorsun. Şu anda yaptığım bir projede 3 farklı plartforma app yapmam lazım PhoneGap ve Restful tüm işi sorunsuz gördü
-
unbalanced bunu yazdı:
-----------------------------daha önce seninle bu konuyu konuşmuştuk, hızını söylemiştin, xml yapısında tutuyor tamam eyvallah ama güvenirliğini nasıl test edebilrim. kendine özgü ne kadar sınıfı var bu konuda? wcf teknojisi esnek bir yapıda, bir çok protokolü destekliyor. ama bu basit protokoller küçük işleri yapmak için var. komple bir sistem bunla inşa edilemez. elbette ara ara kullanlır ama ana sistemin büyük teknolojilerden oluşturmak gerek.
node.js yi hem client hem server tarafında istediğim platformda kullanabiliyor muyum? umarım öyle bir kısıtlama yoktur. yani ben javascript kullanmak zorunda değilim de mi? birazdan deneyeceğim de ön bilgi almak isterim eğer kullanmışsan
-----------------------------xml dışında json tutabilirsin,
güvenirliliğinden kasıt nedir hacım? sql injection falan mı diyosun anlamadım.. server güvenliği diyorsan bunun mongo ile alakası yok..
yani herhangi bi güvenlik zaafiyeti yok.
mssql/mysql hantal veritabanları ve günümüz uygulamalrında yetersizler. bu gayet açık. node.js zaten socket zaten :) platform bağımlılığı kesinlikle yok. Abi işin özeti götü mongodb ye daya ve memnun kal :) pişman olursan yazdığın projeyi mssql/mysql ne istersen sana yazıp vericem söz :)
-
SharpShooter bunu yazdı:
-----------------------------unbalanced bunu yazdı:
-----------------------------daha önce seninle bu konuyu konuşmuştuk, hızını söylemiştin, xml yapısında tutuyor tamam eyvallah ama güvenirliğini nasıl test edebilrim. kendine özgü ne kadar sınıfı var bu konuda? wcf teknojisi esnek bir yapıda, bir çok protokolü destekliyor. ama bu basit protokoller küçük işleri yapmak için var. komple bir sistem bunla inşa edilemez. elbette ara ara kullanlır ama ana sistemin büyük teknolojilerden oluşturmak gerek.
node.js yi hem client hem server tarafında istediğim platformda kullanabiliyor muyum? umarım öyle bir kısıtlama yoktur. yani ben javascript kullanmak zorunda değilim de mi? birazdan deneyeceğim de ön bilgi almak isterim eğer kullanmışsan
-----------------------------xml dışında json tutabilirsin,
güvenirliliğinden kasıt nedir hacım? sql injection falan mı diyosun anlamadım.. server güvenliği diyorsan bunun mongo ile alakası yok..
yani herhangi bi güvenlik zaafiyeti yok.
mssql/mysql hantal veritabanları ve günümüz uygulamalrında yetersizler. bu gayet açık. node.js zaten socket zaten :) platform bağımlılığı kesinlikle yok. Abi işin özeti götü mongodb ye daya ve memnun kal :) pişman olursan yazdığın projeyi mssql/mysql ne istersen sana yazıp vericem söz :)
-----------------------------Son kısma "mongodb'e daya" kısmına tamamen katılmıyorum NoSQL konusunda biraz tuttuğun datanın yapısı ve uygulamanın yapısına göre sectiğin NoSQL ya da kurucağın yapının hibrit olması lazım.her engine'nin yeteneği farklı. O kısmı NoSQL'de daya diye degiştirelim:)