Yazılımda İletişim Teknolojisi

  • 19 Mart 2018

Sunucular (Servers)

Sunucular IT alt yapılarının merkezidir, çekirdeğidir diyebiliriz. Ağlara, kaynaklara ve hizmetlere sunucular aracılığıyla ulaşmaktayız. Hayatımızda aslında biz bilmesek de her dakika sunuculardan haber beklemekteyiz. Bir web sayfasına girdiğimiz de ya da whatsapptan bir arkadaşımıza mesaj gönderdiğimizde o veriler sunucular, servisler aracılığıyla taşınıyor veri tabanlarına işleniyor. Daha sonra bu veriler kayıt edilen veri tabanlarında okunuyor. Sunucular kendi içlerinde birden fazla protokolü ve hizmeti (web, database, mail vb.) barındırıyor olsa bile bazen her protokol ve hizmet için ayrı bir sunucuya yatırım yapmak gerekebilir. Günümüzde her bir sunucu için ayrı internet bağlantısı, donanım maliyeti gibi benzer maliyetleri harcayıp, olası bir sorun anında veri kaybı riskini göze almak pek tercih edilmiyor. Bunun yerine cloud (bulut) altyapıya sahip merkezlerden sanal sunucu hizmetleri almak daha maliyetli ve daha güvenli oluyor.

Proxy Sunucu-Server

Proxy sunucular performansı arttırmak için kullanılabilseler de, çoğunlukla istekleri filtreleme görevini yaparlar. İstemciler arasındaki köprü işlevi görürler Peki bunu nasıl yaparlar; Normalde internette gezinmek demek; bir bilgisayardan başka bir bilgisayara internet aracılığı ile bağlanmak demektir. Yani pratikte www.google.com bir bilgisayardır. Siz bu bilgisayara bağlanarak ondan bazı bilgiler istersiniz. Oda uygun görürse size cevap verir. Olayı basite indirgemek gerekirse. A, B ve C bilgisayarları hayal edelim. A bilgisayarı sizsiniz, B bilgisayarı ise Proxy Sunucunuz. C bilgisayarı ise bağlanmak istediğiniz sitenin sunucusu. Normalde istekler A ve C bilgisayarları arasında transfer edilir. Fakat araya bir B bilgisayarı girdiğinde durum değişir. C bilgisayarına göndermek istediğiniz öncelikle B bilgisayarına gönderilir. Burada bilgiler kontrol edilir, sıkıştırılır ve daha bir sürü aşamadan geçebilir. Eğer B bilgisayarında ulaşılmak istenen C bilgisayarı ile ilgili yada ulaşmak isteyen A bilgisayarı ile ilgili bir kısıt yoksa bilgiler C bilgisayarına gönderilir. Daha sonra C bilgisayarı bu aşamada size gerekli cevabı gönderir. Yine aynı testleri B bilgisayarı gerçekleştirir. Eğer uygunsa veriler size ya direkt gönderilir, yada Proxy ayarlarında bulunan sıkıştırma algoritmalarına, ön bellek ayarlarına göre sıkıştırılarak gönderilir.

Mail Sunucusu

Şirketlerin ağları üzerindeki posta dokümanlarını mail sunucuları taşırlar. Bir şirketin telefon santrali görevini görürler diyebilir.

Örnek verecek olursak; insankaynaklari@gombidi.com adresini ele alalım.

Burada bulunan @ işaretinden sonra gelen gombidi.com şirketin alan adıdır. Yani ana telefon numarası gibi düşünebiliriz. Gönderilen yada alınan mail adresleri bu alan adından çıkar. @ işaretinden önce gelen insankaynaklari kısmı ise içerideki dâhili numaradır diyebilir. Mail sunucuları bu iletişimi sağlamak için farklı portlar kullanırlar. Bunlardan bazıları güvenlik sertifikaları içerir. Tavsiye edilen; güvenli sertifika imzalarına sahip port adreslerini seçmektir.

Bunlara örnek verecek olursak;

Mail almak için; SSL (Güvenlik Sertifikası) imzasız portlar;

IMAP(143) portu ve POP3(110) portu.

SSL (Güvenlik Sertifikası) imzalı portlar; IMAP(993) portu ve POP3(995) portu.

Mail göndermek için kullanılan;

SSL (Güvenlik Sertifikası) imzasız port; SMTP (587)

SSL (Güvenlik Sertifikası) imzalı portlar; SMTP (465)

“Sendmail ayar dosyasına baktığımda sanki birisi kafasını klavyeye vura vura vura yazmış gibi geliyordu. Bu programla biraz çalışınca… Neden olduğunu anladım!”

Harry SKELTON

Uygulama Sunucusu

Uygulamaların clientler ile haberleşmesini sağlayan özel bir yapısı olan sunuculardır. Günümüzdeki mobil uygulamalar web servisler aracılığıyla veri tabanlarına veri iletirler. Web servis veri tabanı ile aradaki köprüdür diyebiliriz. Uygulama veri tabanını, veri tabanı ise uygulamayı bilmez. Web servis arasında veriler gider gelir, bu şekilde güvenliği üst düzeylere çıkarmış oluruz. Uygulamamız kırılsa bile direk veri tabanlarımıza erişilmesi biraz zor bir evredir. Servisi, otobüsü kullanan şoför olarak düşünülebiliriz. O kadar yolcu biner ama kimin nereye gittiğini nerede ineceğini şoför bilmez sadece görevini yapar. Yolcular veri tabanlarına ulaştığında inerler. Kullanıcıların direkt veri tabanına ulaşmasını engeller. Web servisin görevi tam olarak budur. Arada bir gizlilik ve güvenlik söz konusudur.

İletişim sunucuları

Gerçek zamanlı çalışan, mesajlaşma uygulamaları için en ideal sunucu bloğu budur. Anlık olarak 2 veya birçok kullanıcının haberleşmesini sağlarlar, yapıları bunlara göre tasarlandığı için verimlidir ve hızlıdır. Bir chat uygulaması yazacaksak eğer bu sunucuları kullanmalıyız. Fikir olması açısından söylüyorum, .NET platformunda SignalR bu görevi fazlasıyla yapmaktadır.

FTP Sunucusu

Sitelerimize dosya gönderme işlemini en rahat FTP sunucuları ile yapıyoruz. Genelde 21 portundan veri gönderme, alma işlemlerimizi yapıyoruz. Fakat birçok hizmette olduğu gibi, güvenlik amacıyla bu port numarası değiştirilebilir. Web tabanlı sunucu kontrol yazılımları aracılığı ile dosya upload etmek zahmetli olabilir. Zira bu uygulamalar gönderdiğiniz tüm veri paketleri farklı protokollerden geçer. FTP uygulamaları bu durumu kolaylaştırmıştır. Domain name, ip adresi ile kullanıcı adı ve şifremizi girerek bu porttan sunucuya erişim sağlayabiliriz.

Veri tabanı sunucusu

MySQL, MSSQL ve ORACLE veri tabanları içindeki verileri bu sunucu türlerinde saklarlar. Burada veri girişleri, düzenleme ve silme işlemleri kullanıcı yetkilendirmesi türüne göre yapılır. Daha birçok fonksiyonları vardır, veri tabanları içindeki tabloları birleştirme, özel fonksiyonlar oluşturmak gibi. İşin özü; eğer bir etkili ve haberleşme teknolojisi kullanmak zorunda olan bir uygulama yazıyorsak, uygulama sunucularını, veri tabanı sunucularını ve mail sunucularını kullanmamız gerekecektir. Bunun başka bir yolu yok, bu işler için tasarlanmış özel sunucuların işlemleri bunlara göre tasarlandığı için hepsi birbirinden ayrılmış durumdadır. Performans açısından da düşünürsek bu durum bize çok fazla kolaylık ve hız sağlayacaktır.

Oyun sunucusu

Günümüzde online olan oyunların yüzlerce, milyonlarca kullanıcı sayısı mevcut. Böyle bir durumda oyunlar için özel sunucular ortaya çıkmaya başlamıştır ve her geçen gün gelişmektedir. Oyunlardaki iş yükü çok sayıda oyuncu olduğu için eş zamanlı olarak artış göstermektedir. Bir de online oyunlarda kesinti yaşanması halinde, oyucu kaybı yaşanacaktır. Oyunun sürekliliğini istiyorsak, veri akışında problem yaşamak istemiyorsak bu özel tasarlanmış sunucuları kullanmaktan başka bir çaremiz yok demektir.

DNS sunucusu

Web trafiğini yöneten ve yönlendiren özel sunuculardır. Alan adlarımızı (domain name), internete bağlı cihazların IP adreslerinin kayıtlarını burada tutarız. Hepimiz farklı sitelere giriş yapmak için farklı DNS sunucuları kullanmışızdır, ya da IP adreslerimizi illa ki değiştirmişizdir. Web sitelerimizi hostinglere taşırken NS adreslerini değiştirerek yapmaktayız.

Sanal sunucu

İç içe istediğimiz kadar sunucuyu burada barındırabiliriz, izole edebiliriz. Her bir sanal sunucu aslında gerçek bir sunucudur sadece sanallaştırılmıştır. Bir sunucuda birden fazla işletim sistemi çalışmasına bu yapı olanak sağlamaktadır. Elimizde tam yönetilebilir bir fiziksel sunucu var ve bu sunucunun özellikleri sanal sunucu için uygun ise, uygulama, veri tabanı, mail sunucularını bu sunucu üzerinde sanallaştırma teknolojisi ile ayrı sunucular olarak barındırabiliriz. Bu görünürde performans kaybı gibi gözükebilir. Fakat ilerleyen zamanlarda hem güvenlik hem de sunucu yönetimi kolaylığı açısından önemini anlayabiliriz.

Comments are closed.