8 Aralık 2013 Pazar

Sistem Odaları

Sistem Odası Nedir?
Bir sistem odası (Data Center), bilgisayar sistemlerini ve iletişim, storage gibi onunla ilişkili bileşenleri barındıran birimdir. Burada genellikle yedekli bir güç kaynağı sistemi, yedekli haberleşme bağlantıları, ısı, nem gibi çevre değişkenlerinin kontrolü ve güvenlik cihazlarıda konumlandırılır. Veri merkezlerinin temel amacı kurumun operasyonel verilerini ve işlerini yürüttüğü uygulamaların çalışır durumda olmasını sağlamaktır. Bazı özellikleri arasında şunlar sayılabilir:
  • 7/24 çalışabilirlik
  • Hatasız çalışma ve devamlı izlenebilme
  • Güç yönetimi ve ağ bağlantılarınıda farklı kanallardan yedeklilik
  • Ağ güvenliği, fiziksel erişimlerde yetkilendirme ve görüntülü gözetleme
  • Çevre şartlarının kontrol altında tutulması
  • Yangına karşı duman algılama gibi erken uyarı sistemleri
Sistem Odası Tipleri
  • Şirket Sistem Odaları: Özel şirket, eğitim kurumları veya devlet kuruluşları tarafından, kendi bilgi teknolojileri ihtiyaçlarını ve web hizmetlerini gidermek için kurulur. Buraların yönetimleride gene aynı şirketin BT personeli tarafından yönetilir.
  • İnternet Sistem Odaları: Ticari telekomunikasyon firmaları tarafından kurulur ve işletilir. Amaç kendi sistem odasını oluşturmayan veya kısmi sistem odası hizmeti almak isteyen şirketlere imkan sağlamaktır. Bu kuruluş sistem odalarından hangi tür hizmeti ne kadar ücretle alabileceğinizin fiyatları belirlidir. Bu hizmetler arasında uzak mesafe iletişim, Internet erişimi, Web veya uygulama barındırma, server barındırma, storage, içerik dağıtma, yük dengeleme vb.. sayılabilir.

Sistem Odası Kullanılabilirlik Düzeyi
Telecommunucations Industry Association, ANSI (American National Standards Institute) tarafından akredite edilmiş bir kuruluştur. 2005 yılında veri merkezlerini gelişmişliklerine göre dört seviyeye sınıflandırmışlardır. Bu standartlar 2008 ve 2010 yıllarında güncellenmiştir. Tier 1 seviye veri merkezleri esasında bir sunucu odasıdır, bilgisayar sistemlerinin kurulumu için standartlarda belirtilen temel prensipler izlenir. En sıkı seviye Tier 4 ise kritik görevlerde kullanılan bilgisayar sistemlerine ev sahipliği yapması için tasarlanmıştır. Bütün yardımcı sistemler yedeklidir ve kısımlara ayrılmış güvenlik bölgeleri biyometrik giriş kontrol yöntemleri ile kontrol edilir. Uptime Institute, bir düşünce ve profesyonel hizmetler kuruluşu, telif hakkını elinde bulundurduğu dört seviyeli kendine ait kredilendirme programına sahiptir. Tier seviyesi arttıkça kullanılabilirlik artmaktadır.
  • Tier 1 Seviyesi: Küçük işletmelere hizmet veren veri merkezleridir. Bilgisayar sistemleri, elektrik, mekanik tesisat yedeksizdir. Genel olarak 10 dk’dan daha fazla bir enerji kesintisine bir önlemi yoktur. Tahmini %99,676 kullanılabilirlik sunmaktadır.
  • Tier 2 Seviyesi: Enerji ve soğutma sistemlerinde kısmen yedeklik içerir. Jeneratör kullanarak 24 saat lik bir enerji kesintisine dayanabilmektedir. Tahmini %99,741 kullanılabilirlik sunmaktadır.
  • Tier 3 Seviyesi: Yedek elektrik şebekesi içerir. Yedek enerji ve soğutma sistemleri içerir. Yedek hizmet sağlayıcıları içerir. 72 saatlik bir kesintiye karşı dayanabilir. Tahmini %99,982 kullanılabilirlik sunmaktadır.
  • Tier 4 seviyesi: Bütün Tier 3 kriterleri sağlanır. Ek olarak 96 saatlik kesintiye dayanabilir. 7/24 çalışan bir personel ekibi mevcuttur. Yer seçiminde çok sıkı davranılır, yüksek güvenlik önlemleri alınmıştır. Tahmini %99,995 kullanılabilirlik sunmaktadır.
%99,982 ile %99,995 arasındaki fark %0,013 sembolik gibi gözükse de uygulamaya göre önem arz etmektedir. Bir yıllık yani 525,600 dakikalık bir süreyi dikkate alırsak, Tier 3 seviye 94.608 dakika kullanım dışı olurken, Tier 4 seviye 26.28 dakika kullanım dışı olacaktır. Böylece Tier 4 seviye Tier3’den 68.328 dakika daha fazla serviste olacaktır. 1 saatlik bir süre servis dışı kalmak, örneğin bir banka için büyük finansal kayıplara sebep olabilir. Üstelik uğrayacağı güven kaybı Tier 4 seviye kullanmasının gerekliliğini ortaya koymaktadır.
Sistem Odası Kurulumu İçin Temel Konular
  • Enerji İhtiyacı: Dünya genelinde sistem odalarındaki güç ihtiyacı 2003-2006 yılları arasında ikiye katlanmıştır. Bu yıldan sonrada blade serverların devreye girmesi ile güç ihtiyaçlarında değişiklikler olmaya başlamıştır. Geleneksel serverlar yerine aynı alana çok sayıda blade server sığdırılabilmesi daha az yerde daha fazla güç tüketimine de neden olmaktadır. Ancak blade kullanmanın bir avantajı olarak server başına güç tüketiminde de belirgin bir azalma da ortaya çıkmıştır.
    Sistem odalarında kesintisiz hizmet verebilmenin ilk adımı güç kaynaklarını yedeklemekle başlar. Her ne kadar donanım maliyetlerini ikiye katlıyor olsa da en az iki farklı kaynaktan enerji ihtiyacının karşılanması zorunluluk halini almıştır. Server üreticileride bu gelişmeye paralel olarak ürünlerini en az iki bazen 3 farklı güç kaynağından beslenebilecek şekilde düzenlemişlerdir. Yedekleme yapılmaması durumunda herhangi bir güç kaynağı sorununda veya bakım çalışması durumunda bütün sistemleri kapatıp hizmet kesintisine neden olacağı aşikardır. Sistem odalarında güç tüketiminin hızlı artışı buralarda donanımların ve personelin korunması amacıyla topraklama hatalarının bertaraf edilmesi zorunluluğunuda beraberinde getirmektedir.
    Yedekli kablolama yaparken kabinlerin herbirine birden çok güç kablosu çekileceği, her servera birden çok güç kablosu takılacağı ve her kabinde birden çok güç dağıtım ünitesi (PDU) kullanılacağı için kablo yoğunluğu oluşacaktır. Bu yoğunluğun nasıl rahatlatılacağı kurulumdan önce belirlenmelidir.
    Son yıllarda yaygınlaşmaya başlayan Green Data Center kavramı ile sistem odalarındaki enerji sarfiyatının enaza indirilmesi ve böylelikle çevreye faydalı olunması amaçlanmaktadır. Bu doğrultuda üretilen server, blade server vb. enerji tüketen ürünlerinde sarfiyatlarını düşürmek için çaba gösterilmektedir.
  • Soğutma: Blade serverların yaygınlaşmasının en önemli nedenlerinden biride sistem odalarındaki hızlı artan güç tüketimine karşı aynı oranda artan soğutma ihtiyacının farkına varılmasıdır. 10 KW güç tüketen bir kabinin ürettiği sıcaklığı düşürmek içinde 10 KW soğutma kapasitesine ihtiyaç duyulmaktadır. Veri merkezinde bulunan cihazlar çalışma anında sürekli ısı yayacakları ve bu ısının çok kısa zamanda veri merkezinin sıcaklığını ve cihazların çalışmaları için gerekli olan ortam sıcaklığını arttıracağı için bir soğutma tertibatı kullanılması zorunludur. Kurulacak tertibatın kapasitesi, veri merkezinde bulunan cihazların güç tüketimleri toplanarak belirlenir. Havalandırma tertibatı enerjide olduğu gibi mutlaka yedekli olarak kurulmalı, sistemlerin birinde oluşacak bir sorun bütün veri merkezini sıcaklık riskine atmamalıdır.
    ANSI/TIA/EIA-942 standardı, soğutmada en öncelikli yapılması gereken çalışmayı, kabinlerin yerleşimlerinin düzenlenmesi olarak ortaya koymaktadır. Kabin yerleşimleri yapılırken kabin sıraları arasında soğuk ve sıcak hava koridorları oluşturmaya dikkat edilmelidir. Serverlar önden soğuk hava emip, arkalarından sıcak hava atacakları için kabin sıralarının yerleşimlerinde serverların önleri aynı koridorda, arkaları ise bir başka koridorda toplanmalıdır. Yükseltilmiş taban kullanarak zemindeki boşluğa soğuk hava basılmalı, soğuk hava koridoru olarak belirlenen kabin sıraları arasındaki koridorların zeminlerine yerleştirilecek ızgaralardan soğuk havanın yükseltilmiş zeminden çıkıp serverların önlerinden server içlerine emilmesine imkan verilmeli, server içinde ısınan sıcak havanın ise server arkasından sıcak hava için belirlenen koridora atılmassı sağlanmalıdır. Sıcak hava koridorunda toplanacak hava yükseleceği için bu korideorların tavanlarından bu hava emilerek soğutma düzeneğine tekrar soğutulmak üzere gönderilecek şekilde bir hava devir daim sistemi kurulmalıdır. Koridorlar arasında sıcak ve soğuk havanın karışmasına imkan verecek boşluklar bulundurulmamalıdır.
    Kabin sıraları arasında bırakılacak boşluklar kabinlere rack serverların takılıp sökülmesine engel olmayacak kadar rahat olmalı, sıcak havanın toplandığı koridorlardada ısıyı fazla yükseltmeyecek kadar geniş olması sağlanmalıdır. Koridorların asgari genişliği 100 cm olarak belirlenmelidir.
    Data ve elektrik kablolama düzeneği yükseltilmiş zeminin içinden yapılması düşünülüyorsa bunların kabin sıralarına dağıtımlarında data ve iletişim kablolarının sıcak hava koridoru altına yapılacak kanallarla, elektrik kablolarınında soğuk hava koridoru altına yapılacak kanallarla olacak şekilde planlama yapılmalıdır.
  • Oda Zemin Yapısı: Oda zemini yükseltilmiş taban şeklinde düşünülmeli özellikle kablolama zemin altında yapılacaksa burada oluşturulacak kablo kanallarına ve soğuk hava akışına imkan verecek şekilde bir yükseklikte (asgari 50 cm) döşeme yapılmalıdır. Kullanılacak döşeme malzemeleri kabinlerdeki tam dolu olma durumu gözönünde tutularak 1000 KG kadar basınca dayanabilecek sağlamlıkta seçilmelidir. Günümüz kabinlerinin 1500 KG kadar yük taşıma kapasitelerine sahip olabildikleri gözönünde bulundurulmalıdır. Zemin altında karoları tutan destek ayakları mümkün olduğunca kabin ayaklarının basacağı noktaların altına veya yakınına konarak kabin yüklerinin taşınması kolaylaştırılmalıdır. Kabinlerin sallanması gibi ihtimallere karşı bu ayaklar yerlerinden kolayca oynamayacak ve birbirine destek olabilecek şekilde yerleştirilmelidir.
  • Kablo Yönetimi: Kablolamanın iki ayrı yerden yapılması imkanı vardır: Birincisi yükseltimiş zemin, ikincisi kabinlerin üstüne kurulacak kanallardır.
    Zeminden kablolama yaparken kabinlerin yerleşimleri belirlendikten sonra kablolama yapılmalı ve kabinler daha sonra yerlerine konulmalıdır. Zeminde kolay sökülebilir karo döşeme kullanılmalı ve gerektiğinde bunlar kaldırılarak kablolara kolayca erişim sağlanmalıdır. Zeminden kablolama yaparken soğuk hava akışıda zeminden olacağı için kablo kanalları bu akışı engellemeyecek şekilde düzenlenmelidir. Genişleme veya yeni kablo ihtiyaçlarında kabinler yerleştirilmiş olduğu için bu yöntemde çalışmak dezavantaj olarak görülebilir. Ancak bu yapıda hazırlanan sistem odaları görünüm olarak çok daha kablo karmaşasından uzak ve temiz olacaktır.
    Kabin üstlerinden kablolama yaparmanın en büyük avantajı değişikliklere daha uygun olması ve kolay yönetilebilir olmasıdır. Ayrıca zemindeki soğuk hava için bir engelde değildir. Dezavantajı kabinlerin üstünde kablolar görünürse kötü görünüm oluşturmasıdır. Bu yüzden bu kanalların olabilidiğince kabloları gizlemesi avantaj olur.
    Günümüz sistem odalarında üstten kablolama gittikçe yaygınlaşmakta, yükseltilmiş zemin yerine kablolar kabin üstü kanallardan taşınmakta, soğutma tertibalarıda tamamen alçaltılmış tavan içine konulan düzeneklerle yapılmaktadır. Aynı şekilde alçaltılmış tavanlar içinde başlangıçta uygun bir yükseklik belirlenmelidir.
  • Güvenlik: Sistem odasına giriş çıkışların belli bir yetkilendirme ile yapılması, her isteyenin buraya girememesi gibi kısıtlamalar mutlaka uygulanmalıdır. Girişlerde sadece yetkilendirilmiş personelin buraya girebilmesini kontrol amacıyla biometric sistemlerden kartlı sistemlere kadar birçok alternatiften yararlanılabilir. Dışarıdan gelipte sistem odasında çalışma yapacak kişilerin yanında da mutlaka kontrol, bilgilendirme ve uyarı amacıyla bir yetkili personel bulundurulması önemlidir. Sisteme vakıf olmayan birinin bu odada iş yaparken gerek yanlışlıkla gerekse kasten vereceği zararların önüne geçebilmek için bu yaklaşım zorunludur. Oda içinde yapılan değişiklikler veya güncellemeler kayıt altına alınmalı ve ilgilisi olan kişilerde bunlardan haberdar edilmelidir.
    İnternet sistem odalarında daha fazla kısıtlamalara gidilmeli, kabin bazında erişim yetkilendirmeleri yapılmalıdır. Bir şirket çalışanı sistem odasına geldiğinde başka şirket serverlarının olduğu kabinlere erişme hakkına sahip olmamalı ve bu fiziksel olarak kilitlerle engellenmelidir.
  • Gözetleme: Odalardaki çevresel şartların gözetlenmesi, çıkan problemlerin erken haber alınmasında ve giderilmesinde büyük önem taşımaktadır. Odanın farklı noktalarından ısı, nem, duman gibi çevresel şartlar mutlaka bir takım algılayıcılar kurularak alarm sistemlerine bağlanmalı ve 24 saat çalışır bir uyarı düzeneğine entegre edilmelidir. Uyarı bilgilerinin gerekirse SMS ile cep telefonlarına kadar ulaştırılabilir olması avantaj sağlayacaktır.
    Yangın söndürme işlerinde kullanılacak tertibatta su yerine gaz tercih edilirse elektronik aksamın söndürme aşamasında zarar görmesininde önüne geçilmiş olacaktır. Odada oluşacak muhtemel yangın, su basması vb sorunlara karşı yapılacak müdahaleler önceden belirlenmeli, hangi durumda kimin neden sorumlu olduğu belirlenmiş ve sorumlu personelin eğitilmiş olması gereklidir. Odanın giriş çıkışları ve yapılan işlemler kameralarla kayıt altına alınmalı, yapılabiliyorsa kabin erişimleri vb. bilgilerin günlük kayıtları tutulmalıdır.

7 Aralık 2013 Cumartesi

Network Temelleri

Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı (computer network) denir. Bir bilgisayar ağında çok sayıda bilgisayar yer alır. Bu bilgisayarlar yan yana duran iki bilgisayar olabileceği gibi tüm dünyaya yayılmış binlerce bilgisayarda olabilir. Ağ içindeki bilgisayarlar belli bir biçimde dizilirler. Bilgisayarlar arasında genellikle kablo ile bağlantı sağlanır. Kablo bağlantısının mümkün olmadığı durumlarda mikro dalgalar ve uydular aracılığıyla da ağ içindeki iletişim kurulur.

İşletmecilik açısından ağlar, yönetime ve denetime yardımcı olurlar. Bir bankanın ya da üniversitenin çok sayıda bilgisayarı birbirine bağlı olarak kullanılması, onları bağımsız olarak kullanmasından daha anlamlı ve verimli olur. Böylece birimler arası iletişim daha kolay sağlanmakta ve bütünleşik (integrated) uygulamalar daha kolay gerçekleştirilmektedir.

Bilgisayar Ağlarının Amaçları:
  • İletişim kolaylığı. Ağ kullanan insanlar mail, chat odaları, videolarla v.b.daha kolay ve etkili iletişim kurabilirler.
  • Donanım paylaşımı. Ağ dünyasında, ağ üzerindeki herhangi bir bilgisayar ağda paylaşılan donanım kaynaklarına ulaşabilir ve bunları kullanabilir. Örneğin ağdaki bir bilgisayar ağın paylaşıma açık yazıcısından kendi bilgisayarı üzerinden çıktı alabilir.
  • Dosya, veri veya bilgi paylaşımı. Ağdaki yetkili kullanıcı ağ üzerindeki diğer bilgisayarlardaki veri ve bilgilere ulaşabilir. Ağdaki bu bilgi ve verilere kolayca ulaşabilme seçeneği bir çok ağın önemli bir özelliğidir.
  • Yazılım paylaşımı. Ağa bağlı kullanıcı ağdaki uygulama programlarını uzaktaki bilgisayarlara kurabilir.

Bilgisayar ağları genel olarak üç grupta incelenir:
  • Yerel Bilgisayar Ağları (LAN, Local Area Networks)
    Yüksek hızlı, küçük alanları (bir bina, bir firma,bir departman,bir oda) kapsayan bir veri ağıdır. Yerel ağ içinde bilgisayarlar, workstation, yazıcılar, çiziciler ve diğer çevre birimleri yer alabilir. LAN’lar bilgisayar kullanıcılarına uygulamalara ve cihazlara ulaşım, bağlı kullanıcılar arasında dosya değişimi, elektronik posta ve diğer uygulamalar yoluyla haberleşme gibi çeşitli avantajlar sağlarlar.
    İntranet ve LAN birbirlerinden ayrı tutulamayan iki kavramdır. Eğer bir LAN şirket içinde kurulmuşsa ve şirket personeli tarafından kullanıma açık ise “intranet” adını alır. Bu ağ üzerinde www sunucu, ftp dosya sunucusu, veri tabanı sunucuları ve haber öbekleri bulunur.
  • Geniş Alan Bilgisayar Ağları (WAN, Wide Area Network)
    Bir ülke ya da dünya çapında yüzlerce veya binlerce kilometre mesafeler arasında iletişimi sağlayan ağlardır. Coğrafi olarak birbirinden uzak yerlerdeki (şehirlerarası/ülkelerarası) bilgisayar sistemlerinin veya yerel bilgisayar ağlarının (LAN) birbirleri ile bağlanmasıyla oluşturulur. Genellikle kablo ya da uydular aracılığı ile uzak yerleşimlerle iletişimin kurulduğu bu ağlarda çok sayıda iş istasyonu kullanılır. WAN’ lar üzerinde on binlerce kullanıcı ve bilgisayar çalışabilir. Şirketinizin Ankara, İzmir ve İstanbul şubelerini bir WAN bağlantısı ile birleştirdiğinizde, Ankara’da bulunsanız bile İstanbul’daki bir makineyi tıpkı önündeymiş gibi yönetebilirsiniz.
  • Şehirsel Bilgisayar Ağları (MAN, Metropolitan Area Network)
    LAN’ ın kapsadığı alandan daha geniş, fakat WAN’ ın kapsadığından daha dar mesafeler arası iletişimi sağlayan ağlardır. Genellikle şehir içi bilgisayar sistemlerinin birbirleriyle bağlanmasıyla oluşturulur.
Ağ Topolojileri:
Bir ağın yerleşimi kablolama sistemine ve makinelerin birbiriyle iletişim biçimine göre düzenlenir. Ağ içindeki bilgisayarların fiziksel düzenine ağın yerleşimi (topology) denir. Ancak ağın içinde yer alacak bir makinenin ağın düzenine uyum sağlamadan önce ağın içindeki sinyal alışverişine uyum sağlaması gerekir. Başlıca topoloji tipleri bus (doğrusal yerleşim), ring (halka yerleşim) ve star (yıldız) topolojilerdir.
  • Doğrusal yerleşim (bus): Doğrusal yerleşimde bir doğrusal hat üzerinde iş istasyonları ve hizmet birimi yer alır. Yaygın kullanılan Ethernet yerel bilgisayar ağı buna bir örnektir. Doğrusal hattın iki ucunda sonlandırıcı (terminatör) yer alır. İş istasyonları birer ağ arabirim kartı ile ağa bağlanırlar.
  • Halka yerleşim (ring): Halka biçimindeki ( ring/yüzük ) ağda iş istasyonları ve hizmet birimi bir daire oluşturacak biçimde yerleşirler. Halka ağlara "Token ring" ağlarda denir. Bu ağda "token " olarak adlandırılan bir bilgi birimi vardır. Bu bilgi ağ içinde sürekli döner özel denetim kodu ile iletişimi düzenler. İletime başlayan iş istasyonu önce bu bilginin kendine gelmesini bekler. Bu yöntem kablo üzerinde aynı anda iletişim yapılmasını önler.
  • Yıldız yerleşim (star): Yıldız (star) yerleşim biçimine ARCNET ağlar da denir. Bu yerleşim biçiminde iş istasyonları yıldız biçiminde dağılırlar. Yıldızın merkezinde bir hub veya switch, bunlara bağlı olan bütün noktaları birbirine bağlar. Kablonun bir ucu network adaptör kartına bağlı iken diğeri hub veya switche takılır. Ağın kontrolü bir noktadan yapılır ve her iş istasyonu ayrı kablo döşenir.
İletişim Protokolleri:
İletişim protokolleri ağ içinde bilgisayarların birbiriyle iletişimini düzenlemek için kullanılır. Protokoller farklı iletişim düzeylerini tanımlarlar. Yüksek düzeyde, uygulamaların nasıl iletişim kurduklarını tanımlarken, alt düzeyde kablo üzerinde sinyal alışverişi tanımlanır. İletişim protokollerinde diplomatik protokoller gibi her bir tarafın kendi kurallarına uyması esastır.
Ağ iletişiminin tümü protokollere dayanır. Bu kurallar bir mesajın, nasıl hazırlanacağını, gönderileceğini, iletişim kanalının nasıl düzenleneceğini ve yöneltileceğini tanımlar. Protokol standartları genellikle belli kurumlar ve komiteler tarafından yayınlanırlar. Örneğin Netware, Xenix standardına uyması gibi. Bu konuda ISO standartlarına uygun OSI (Open System Interconnectıon) protokolleri genellikle kabul görmüştür.
Aşağıdaki resimde OSI katmanları incelenirse iletişim protokolleri daha iyi anlaşılacaktır.
OSI standartları ağ iletişiminde belli aşamalarla tasarlanmıştır. Bu kurallar iletişimde bulunacak iki taraf içinde geçerlidir. Mesajı gönderecek olan mesajı paketler ve kablo aracılığıyla gönderir. Alıcı olan mesajı çözer ve alır. Ağ protokolleri bir merdivene benzer. Bilgi kablolar aracılığıyla merdivenden aşağıya gönderilir. Aynı şekilde karşılanır ve alınır. Uygulama katmanında kullanıcı uygulamasını diğer bilgisayar gönderir. Sunum katmanında karşı tarafın farklı yapısına göre sunuş yapılır. Oturum katmanında iki bilgisayar arasında veri alış verişi başlar. Konunun daha rahat anlaşılabilmesi için aşağıdaki resim incelenebilir.
Ağ Mimarileri:
Bilgisayarların birbirleri ile iletişiminin hangi hiyerarşik yapıda olacağını tanımlar.
  • Eş düzeyli (peer-to-peer): İki yada daha çok bilgisayarın, bir hizmet birimi ( server ) kavramı olmadan en basit biçimde birbirine bağlandığı ve bütün makinelerin kaynaklarının her iş istasyonu tarafından kullanılabildiği ağlardır. Bu çalışma biçiminde ağ içindeki bütün bilgisayarlar eşit düzeydedir. Yani aynı özellikte ve önceliktedir. Bir hizmet birimi ve iş istasyonu kavramı yoktur. Ağdaki her kullanıcı diğer bir kullanıcının kaynaklarına kolaylıkla erişebilmekte ve iletişimde bulunabilmektedir
  • Sunucu-İstemci (client-server): Sunucu-İstemci çalışma biçiminde ağın hizmet birimi bütün işlemleri yüklenir. Paylaşılan bütün kaynaklar hizmet biriminde yer alır. Hizmet birimi işlemleri hızlı bir şekilde yaparak iş istasyonuna sonuçları yollar. Böylece hızlı işletim sağlanır. Bunun aksi durum ise iş istasyonlarının işlemlerini kendi veri programlarını kendi belleğine yükleyerek kendi işlemcisiyle işlemesidir. Bu nedenle işlemlerin hızı iş istasyonunun performansına bağlı olacaktır.
Yukarıdaki mimarilerden hangisinin seçileceğine karar verilmeden önce yapılacak işlerin ne olduğu saptanmalıdır. Bir hizmet birimi ve müşteriler olarak tasarlanan ağ daha geniş bir ağdır. Büyük bir firma ve denetime gerek duyar. Eş düzeyli ağların ise kullanımı daha kolaydır. Bu ağlarla iki yada üç gibi az sayıda kullanıcının birbirine herhangi bir üstünlük kurmadan bağlanması söz konusudur.

Ağ Aygıtları:
Ağların birbirlerine bağlanmaları için belli aygıtlar kullanılır. Bu aygıtlar iki ağın iletişim biçimlerini uyumlu hale getirirler.
  • Repeater (yineleyici): İki yada daha fazla bilgisayar ağını birbirine bağlamak için kullanılan en kolay yol yineleyicilerdir. Bu aygıtlar ağın uzak yerleşimlere erişmesini sağlarlar. Uzun mesafelere kablolama gerekiyor ise zayıflayan sinyallerin güçlendirilmesi lazımdır ve bu aygıtlar bu noktada devreye girer. İşlevi ağ içindeki sinyalleri kuvvetlendirip diğer ağa taşımaktır. Yineleyiciler sayesinde daha uzak ağları birbirine bağlayabiliriz. Token Ring sistemlerinde ağa bağlı her iş istasyonu kendisine gelen paketi güçlendirdiği için yineleyicilere gerek duymazlar. Ethernet ağlarında ise en fazla 3 adet yineleyici kullanılabilir.
  • Bridge (köprü): İki ağı birleştirirler ve bilgi paketlerinin geçişini sağlarlar. Köprüler genel anlamda yineleyicilerin yaptığı işi yaparlar. Temel farkları, bir yineleyici kendisine gelen mesajı güçlendirir ve hedefe bakmadan doğrudan yollar. Köprüler ise eğer paket hedefine ulaşamayacaksa bu paketi göndermezler. Günümüzde performans isteyen LAN'larda bridge kullanılmamaktadır.
  • Router (Yönlendirici): Büyük ve değişik protokollere sahip bilgisayar ağlarını birleştirirler. Yönlendiriciler bir ağ üzerindeki tüm bilgisayarların adreslerini bilir ve buna göre kendilerine gelen paketi en uygun şekilde hedefe yollar. Yönlendiriciler genellikle dinamik yönlendirmeyi kullanır. Bunun anlamı kendisine gelen bir paketin tüm ağ taranarak en güvenli ve hızlı yolun denenmesidir. Verinin içeriğini inceler ve iletilmesi gerekmiyorsa iletmez. Eğer herhangi bir sorun çıkarsa, alternatif bir yol arayarak mutlaka paketi hedefine ulaştırmaya çalışırlar. Yönlendiriciler ağa bağlı özel bir araç veya ağa bağlı bir bilgisayar olabilirler.
  • Gateway (Geçit): Genellikle bir bilgisayarın başka bir ağa bağlanmasını sağlarlar. Geçitler ağların farklı iletişim protokollerine sahip ağlarla bağlanmasını sağlarlar. Örneğin bir geçit, Netware ağının IBM sistemine bağlanabilmesini sağlar. Kullanıcı geçit üzerinden o sisteme bağlanır ve kaynaklarını kullanır. Birçok ağın birleşmesinden oluşan büyük ağlarda, her bir ağ kendine özgü protokoller ve sistemler kullanmaktadır. Bu ağların birbirleri ile sorunsuz olarak anlaşabilmeleri için geçitler kullanılmaktadır. Geçitler, birbirlerinden tamamıyla farklı ağları birleştirirler. Halen daha pek çok farklı ağ sistemleri kullanılmakta olduğundan geçitlere büyük ihtiyaç duyulmaktadır.
  • Hub: Hub’lar star topoloji ağlarda merkezi bağlantı üniteleridir. Hub kendisine bağlanılan tüm node’ların birbirleri ile iletişim kurmasını sağlar. Node; bir network ekipmanı (hub veya switch gibi) ile haberleşebilen, server, printer, fax makinası vb. aygıtlardır. Hub’a bağlanılan her ekipmanın kendi güç kaynağı olduğu gibi hub’ında kendi güç kaynağı vardır. Hub üzerinde bulunan durum ışıkları ağ durumunu izlememizi ve arıza tespit işlemlerini kolaylaştırır. İkiden fazla hub birbirine bağlanabilir fakat Ethernet standartlarında bazı sınırlar vardır. Hub-Hub bağlantıları yerine switchlerden hub’lara gidilebilir, ve bu durum ağ performansını arttırır. 10 Mbps veya 100 Mbps ağlar için hub’lar bulunmaktadır.
    Hub'lar yıldız topolojiye uygun olarak kendisine bağlanan cihazlar arasında iletişimi sağlarlar. Üzerinde genellikle 5 ila 32 bilgisayarın bağlanabileceği kadar iskele (port) bulunur. Ağ üzerindeki bilgisayarlar UTP türü kablo kullanarak huba bağlanırlar. Kullanılar kabloların uzunluğu 100 metreden fazla olamaz. Birden çok hub'ı birbirine bağlayarak (en fazla üç adet) ağınızı daha da genişletebilirsiniz.
    Hub’ın görevi kendisine ulaşan sinyalleri alıp yine kendisine bağlı olan ağ ekipmanlarına dağıtmaktır. Hub bu işlem sırasında bir tekrarlayıcı görevi görür ve sinyali güçlendirir.
  • Switch: Switchler daha kompleks ve daha verimli hub’lardır. Büyük bir ağı segmentlere (parçalara) bölerek ağ performansını arttırır. Herhangi bir node’tan gelen verinin tüm ağa dağıtılması yerine istenilen node’a dağıtılmasını sağlar. Ağ durmunu izler, veriyi gönderip, iletim işleminin yapılıp yapılmadığını test eder. Bu özelliğe “store and forward” (depola ve ilet) denir.


Network temelleri yazımızın sonuna geldik. Eksik, yanlış gördüğünüz bir nokta varsa yorum kısmında belirtmeyi unutmayın :)

Blogger'da Kaynak Kod Yayınlama

Blogunuzda çeşitli kaynak kodlar yayınlamayı düşünüyorsanız aklınıza gelecek ilk soru (yani en azından benim aklıma gelen ilk soruydu) kodu görsel anlamda nasıl güzel hale getirebilirim olacaktır. Normal text formatında gözüken bir kod yayınlamaktansa kaynak kod olduğunun belli olması, rahatça okunabilmesi vs. açısından daha iyi olacaktır.

İlk araştırdığınızda muhtemelen SyntaxHighlighter ile karşılaşacaksınız. Gayet güzel ve birçok kullanıcı tarafından öneriliyor. Basitçe açıklamak gerekirse, bu arkadaşın host ettiği kaynak kodları blogunuza import ediyorsunuz ve güzel güzel kullanmaya başlıyorsunuz. Ancak benim blogumda arkadaşın yazdığı kodu ezen kısımlar oldu. Haliyle kullanamadım. Bu sebeple farklı bir çözüm arayışına girdim ve GitHub'ın Gist hizmetiyle karşılaştım. Örnek bir php kodunu Gist sayesinde aşağıda görüldüğü şekilde yayınlama şansınız oluyor:
Göreceli olarak SyntaxHighlighter'ı daha çok beğenenler olabilir ancak GitHub'ın bu hizmeti benim için yeterli olduğundan bunu kullanıyorum. Lafı uzatmadan nasıl yapacağımıza gelelim.

Öncelikle bir GitHub hesabı edinmeniz gerekiyor. Heasbınızı açıp girdiğinizde karşınıza şöyle bir ekran gelecektir:
Üst kısımda görülen Gist sekmesine tıklıyoruz ve Gist'lerinizin olduğu kısma geçiyoruz.
Description kısmına gerekli gördüğümüz açıklamayı, name this file kısmına dosya adımızı yazıyoruz language kısmından hangi dili kullanacağımızı seçiyoruz. Daha sonra kodumuzu yazıp veya kopyalayıp create diyoruz. Gist'imiz oluştu. Peki blogumuzda nasıl kullanacağız? Oluşturduğumuz Gist'i yayınlamak için bir scripte ihtiyacımız var. Korkmayın biz yazmayacağız :) Hayırsever bir arkadaş yazmış ve bizlerle paylaşmış. Aşağıdaki kodu kopyalıyoruz ve yayınımıza yapıştırıyoruz:
Daha sonra Gist'imizi eklemek istediğimiz noktada aşağıdaki kodu yazıyoruz ve data-id kısmını Gist'imizin id'si ile değiştirmeyi unutmuyoruz.
İşte bu kadar. Bir dizi basit işlem sonucunda kaynak kodlarımız blogumuzda hem şık duruyor, hem okunaklı.

Eğer, ya arkadaşım elin host ettiği scripte nasıl güveneceğiz derseniz, scripti kopyalayıp kendiniz host edebilirsiniz. İçiniz rahat eder. Unutmadan bir şeyi daha belirtelim, Gist hizmeti İnternet Explorer'da çalışmıyor. Ama yazacağınız, paylaşacağınız koda bakacak herhangi birinin ie kullanacağını düşünmüyorum o yüzden ben şahsen böyle bir şeyi dert etmedim :)

6 Aralık 2013 Cuma

Java ile Dosya Satır Sayısını Hesaplama

Aşağıdaki kod okuma.txt dosyasının boş olmayan satır sayısını hesaplamaktadır. While döngüsünün içindeki if koşulunu kaldırırsak dosyanın toplam satır sayısını hesaplayacaktır.



import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
 
public class main {
 
 public static void main(String[] args) throws IOException {
  File myFile=new File("okuma.txt");
  readFile(myFile);
 }
 
  private  static void readFile(File myFile) throws IOException
     { 
    int lineNumber = 0;
         try
         {
         BufferedReader reader = null;
         reader = new BufferedReader(new FileReader(myFile));
         String satir = reader.readLine();
             while (satir!=null) {
              if(satir.length()>0){
               lineNumber++;
              }
              satir = reader.readLine();                
             }    
         }catch(final IOException e){}
         System.out.println("Verilen Dökümandaki Satır Sayısı: "+lineNumber);
     }
}



Java ile Standart Sapma Hesabı

Aşağıdaki kod verilen iki dizi için standart sapma hesabı yapmaktadır. Öncelikle herbir dizinin ortalaması hesaplanır. Ardından standart sapma hesabı için gerekli dizi ile birlikte standartDev() fonksiyonuna parametre olarak verilir. Benim verilerim tek seferlik olduğundan diziyi kendim doldurdum. İhtiyacınıza göre diziyi kullanıcının doldurmasını isteyebilir yada dosyadan okuyabilirsiniz.


public class main {
 public static void main(String[] args) {
       double column1[] = {160, 591, 114, 229, 230, 270, 128, 1657, 624, 1503};
       double column2[] = {15.0, 69.9, 6.5, 22.4, 28.4, 65.9, 19.4, 198.7, 38.8, 138.2};       
       double col1avg = avg(column1);
       double col2avg = avg(column2);
       double stdDev1 = standartDev(column1, col1avg);
       double stdDev2 = standartDev(column2, col2avg);
       System.out.printf("Column 1 Mean: %.2f",col1avg);
       System.out.printf(" Std.Dev.: %.2f \n", stdDev1);
       System.out.printf("Column 2 Mean: %.2f",col2avg);
       System.out.printf(" Std.Dev.: %.2f \n", stdDev2);
 }
 
 private static double standartDev(double[] array, double avg) {
  int arrLength = array.length;
         double standardDevNum=0;
         for (int i= 0; i < arrLength; i++)
         {
             double s = array[i]-avg;
             standardDevNum += s*s;
         }
         double standardDev = Math.sqrt(standardDevNum/(arrLength-1));
         return standardDev;
 }
 
 private static double avg(double[] array) {
  int arrLength = array.length;
         double sumNumber =0;
         for (int i= 0; i < arrLength; i++)
         {
             sumNumber+= array[i];
         }
         double avg = sumNumber/arrLength;
         return avg;
 }
 
}