Client Nedir?

Çokça duyduğumuz bu kelimenin yazılım dünyasında ne anlam ifade ettiğini hadi gelin farklı yönleriyle inceleyelim.
Yeni bir kelime gördüğümüzde çoğumuzun yaptığı gibi öncelikle sözlükte ne anlama geldiğine bakarız. Burada da öncelikle kelimenin anlamına bakalım. Client sözlük anlamı olarak müşteri veya alıcı anlamı taşımaktadır. Buradan hareketle bir şeyleri alan anlamına geldiği sonucuna ulaşabiliriz.
Peki Client türkçeye nasıl çevrilmiştir. Client'ın türkçe karşılığı İstemci olarak geçmektedir. Bir şeyleri isteyen olarak ta anlamlandıra biliriz bunu. Anahtar kelimelerimiz istemek ve almak. Bu iki kelime bizim Client'ın özünü anlamamız için yeterlidir.
Peki Client ler yani İstemciler kimden ne ister? ne alır? Bu soruların cevabı yazılım tarafından bakıldığında genellikle sunucu(server) olmaktadır. Yani istemciler genelde sunuculardan bir veri yada bir bilgi isterler.
Burada altını çizmek gereken nokta : Bir uygulamanın Client(İstemci) olarak adlandırılabilmesi için bir Server(Sunucu) a ihtiyacı vardır. Uzaktaki bir anabilgisayara bağlanmayan uygulamalar Client(İstemci) olarak adlandırılmaz.
Bu terim ilk kullanıldığı zamanlarda bu tarz yapılar ilk başlarda terminal olarak adlandırılıyordu. Bu işle uğraşan kişiler uzak bir sunucuda bir terminal açıp kendi bilgisayarlarından bu uzaktaki terminallere bağlanıp çeşitli matematiksel işlemler yaptırıyorlardı.
Bunlara genellikle zaman paylaşımlı anabilgisayar işlemcileriyle sunulan aptal terminaller denildi.
Hemen hemen her şirket sunucusundaki bilgilere ihtiyaç duyar. Her çalışanı için sunucudaki bilgilere ulaşmak adına bir istemciden yararlanır. Bu istemciler ana sunucuya bağlıdır.
İşlemler söz konusu olduğunda, sunucuda yapılan herhangi bir çalışmaya “sunucu tarafı” çalışma denirken, istemcinin yanında yerel olarak oluşturulan bilgi ve verilere “istemci tarafı” çalışma denildi.(Server-Side / Client-Side)
İstemciyi yeteri kadar tanıdığımıza göre şimdide çeşitlerine bakalım.
Client Çeşitleri Nelerdir?
Temel olarak sınıflandırıldıklarında üç çeşit istemci vardır.
Thin Client
Thick or Fat Client
Hybrid Client
Thin Client (İnce İstemci)
Bu istemci türü, yalnızca bir ana bilgisayar veya sunucu tarafından sağlanan kaynakları kullanan çok az işleve sahip bir istemci programıdır. İşi oldukça basittir: sunucunun oluşturduğu sonuçları görüntüler.
Azure gibi cloud servislerinden kiralanan serverlar bu tipe örnek verilebilir. Tek ihtiyacı olan bütün ağır yükü kaldıracak bir sunucudur. Yazılımsal açıdan bakıldığında da genellikle bilgi veren servisler bu kategoriye girmektedir.
Örneğin kargo veya pizzanızın takibi için kullandığınız servis gibi. Bu tarzda istemciler bütün işi sunucu tarafına yükler. Böylece istemci bilgisayarının işlemcisini feda etmek zorunda değildir.
Thick or Fat Client (Kalın veya Şişman İstemci)
Bu ince istemcinin tam tersidir. Bu istemcide işin büyük çoğunluğunu istemci göğüsler. Sunucu sadece bilgi alış verişinde bulunur.
Yazılımsal olarak örnek vermek gerekirse: Bütün validasyon yani doğrulama işlemlerini istemci tarafına yükleyerek gönderdiğiniz verileri bir daha sunucu tarafında kontrol etmek durumunda kalmazsınız. Günümüzde bir çok uygulama bu mantıkla çalışmaktadır.
Hybrid Client (Karma İstemci)
Bu istemci, hem thin hem de fat istemcilerde bulunan bazı özellikler içerir. Karma istemci bağımsız olarak çalışabilir, ancak yine de temel veriler veya bu verilerin depolanması için bir kaynak sunucuya güvenmesi gerekebilir.
Çoğu durumda veriyi sunucuya göndeririz fakat bazende verinin istemci tarafında kalması ve işletilmesi gerekebilir. Bu durumlarda hem sunucu hemde istemciyi kullanmış oluruz.