İstemci Sunucu Kavramı
Sunucu yapısı :
• Sunucu uygulama dinleyici özelliklidir .
• Login işlemleri için bekler ( login hizmetlerini yerine getirmek / istemcinin iesteklerine cevap vermek ) için portu dinler )
• İstemci tarafından yerine getirilmesi istenen hizmeti yerine getirir .
• Sonuçlar istemciye beklenen ( istemcinin beklediği ) porttan gönderilir .
İstemci yapısı :
• İstemci uygulama sunucuyla ( sunucunun beklediği şekilde , uygun socket
yapısını kullanarak ) bağlantı kurar
• Sunucuya mesaj gönderir ( login istemi , hizmet isteği )
• Sunucudan dönmesi gereken ( beklenen ) veriyi gelmesi gereken porttan bekler .
Sunucunun Özellikleri
• Ağ hizmeti sağlamaya adanmış özel amaçlı uygulama kullanılır .
• Sistem açılışı ile birlikte başlar
• ( Genellikle merkezi , paylaşılmış ) uzak bir bilgisayar üzerinde çalışır .
• İstemcilerden hizmet istekleri bekler , sonraki isteği beklemek için döngü yapar
• Rastgele istemcilerden istek kabul eder, her istemciye bir hizmet sağlar .
• Güçlü donanıma gereksinim duyar .
İstemcinin Özellikleri
• Herhangi bir uygulama programı merkezi bir veri tabanına ihtiyaç duyduğunda
( ağ sistemi içinde yer aldığında ) istemci olur
• Doğrudan kullanıcı tarafından çağrılır
• Kullanıcının bilgisayarında yerel olarak koşar
• Sunucuyla olan bağlantıyı başlatır
• Aynı anda yalnız birine olmak üzere birden çok hizmete erişebilir
• Özel bir donanım veya karmaşık işletim sistemi gerektirmez
“Sunucu-Sınıfı” Bilgisayarlar
• Birçok sunucu uygulaması koşturan paylaşılmış , merkezi bilgisayarlar bazen
“sunucular” olarak adlandırılır.
• Daha doğrusu, uygulamalar “sunucu”dur ve bilgisayar da “sunucu-sınıfı
bilgisayar”dır
• Sunucular çok basit bilgisayarlarda da koşabilir
Mesaj Karşılıklı Değişimleri :
Genellikle istemci ve sunucu mesajları şu şekilde karşılıklı değiştirirler :
•İstemci (belki veriyle) istek gönderir
•Sunucu (belki veriyle) cevap gönderir
• İstemci birden çok istek gönderebilir, sunucu birden çok cevap gönderebilir ,
örneğin video gönderimlerinde ..
İletim Protokolleri ve İstemci-Sunucu
• İstemciler ve sunucular iletim protokolleri üzerinden (örn. TCP veya UDP) mesajları karşılıklı değişirler
• İstemci ve sunucunun ikisi de aynı protokol yığınına sahip olmalıdır ve ikisi de iletim katmanıyla etkileşmelidir .
Sunucuda Çoklu Sunucu Hizmetleri
• Yeterince güçlü bilgisayar –yeterli hızda işlemci, çok-görevli işletim sistemi- birden çok sunucu koşturabilir :
İyi yönleri :
• Sunucular bağımsız süreçler olarak koşar ve istemcileri aynı anda idare edebilir
• Kaynakları birden çok hizmet arasında paylaştırarak maliyetleri düşürebilir
• Yönetim yükünü düşürür –yalnızca bir sunucu-sınıfı bilgisayarın bakımı ..
Kötü yönleri :
• Bir sunucu, sunucu-sınıfı bilgisayarın kaynaklarını tüketerek diğer
sunucuları etkileyebilir
• Bir tek sunucu-sınıfı bilgisayarın çökmesi birden çok sunucuyu alaşağı edebilir .
Bir Hizmeti Tanımlama
• Her hizmet benzersiz bir tanımlayıcı oluşturur .
• İstemci ve sunucunun ikisi de bu tanımlayıcıyı kullanır .
• Sunucu, yerel protokol yazılımına tanımlayıcı ile kaydolur
• İstemci, bu tanımlayıcı altında oturum için protokol yazılımıyla bağlantıya
geçer
• Örnek – TCP, protokol port numaralarını tanımlayıcı olarak kullanır
• Sunucu, hizmet için port numarası ile kaydolur
• İstemci, hizmet için port numarasıyla oturum ister
Bir Hizmet İçin Birden Çok Sunucu
• Bir hizmeti tek bir sunucu veriyorsa ; bir istemci isteğine cevap vermek
uzun zaman gerektirebilir ,
• Diğer istemciler, önceki istekler karşılanana kadar beklemek zorundadır
• Birden fazla sunucu istekleri eş zamanlı olarak karşılayabilir:
• Böylece kısa zaman gerektiren istekler, uzun zaman gerektiren istekleri
beklemeden karşılanabilir
İşveren – İşçi Sunucular :
• Eş zamanlı sunucuları koşturmanın bir yolu, her bir istemci için dinamik
olarak sunucu süreçler oluşturmaktır
• İşveren sunucu gelen istekleri kabul eder ve her istemci için işçi sunucuyu
başlatır
• İşçi sunucu, istemcisinin sıradaki isteklerini karşılar
• İşveren sunucu sonraki istek için bekler
Birden Çok Sunucu Arasından Seçim :
• Gelen mesajlar ne şekilde doğru sunucuya aktarılır ?
• Her iletim oturumu iki eşsiz tanımlayıcıya sahiptir
• Sunucuda (IP adresi, port numarası)
• İstemcide (IP adresi, port numarası)
• Bir bilgisayardaki iki istemci aynı port numarasını kullanamaz
• Böylece, istemci son-noktaları eşsiz olur ve sunucu bilgisayar protokol yazılımı,
mesajları doğru sunucu sürecine iletebilir
Bağlantılı ve Bağlantısız İletim
Hangisi seçilmeli ?
TCP – bağlantılı ( connection oriented )
• İstemci, sunucuyla bağlantı kurar
• İstemci ve sunucu rasgele boyutlu birden çok mesajı karşılıklı olarak
değişirler
• İstemci bağlantıyı sonlandırır .
UDP – bağlantısız
• İstemci mesaj oluşturur
• İstemci mesajı sunucuya gönderir
• Sunucu yanıtlar
• Mesaj bir UDP datagramına sığmalıdır
• Bazı hizmetler ikisini de kullanır
• Tek bir sunucu tarafından sağlanabilir
İstemci – Sunucu Etkileşimleri
• İstemciler birden çok hizmete sırayla erişebilir
• İstemciler bir hizmet için farklı sunuculara erişebilir
• Sunucular başka sunucuların istemcisi olabilir
• Çevrimsel bağlılıklar oluşabilir
Özet
• İstemci-sunucu kavramı hemen hemen bütün dağıtılmış hesaplamalarda
kullanılır
• İstemci gereksinim duyduğunda hizmet ister
• Sunucu istemci isteklerini bekler
• Sunucular genellikle sunucu-sınıfı bilgisayarlarda koşarlar
• İstemciler ve sunucular haberleşmede iletim katmanı protokollerini kullanırlar
• Sıklıkla, ama her zaman değil, bir uygulama protokolü vardır