ISA Server Internet’ten bilginin indirilme hızını artırmak için bir yöntem olarak Caching konfigürasyonunu desteklemektedir. İç network kullanıcıları açısından caching, Internet erişim performansını artırmaktadır. Network yöneticisinin bakış açısından ise caching işlemi network bant genişliği kullanım oranını azaltarak performans artışı sağlamaktadır. ISA Server, caching sayesinde elde edilen faydaları Scheduled Content Download Jobs (Zamanlanmış İçerik İndirme Görevleri) özelliği sayesinde daha da genişletmekte ve henüz kullanıcılar istekte bulunmadan ilgili nesnelerin cache belleğe alınmasını sağlamaktadır.
Caching Nedir?

ISA Server ana kurulum senaryolarından birisi olan Web Proxy, Internet üzerindeki bilgilerin iç kullanıcılar için alınıp getirilmesidir. Client’lardan gelen tüm bağlantı istekleri Web Proxy Server’a gönderilir. Web Proxy Server, gelen client isteklerini alıp bağlanılmak istenen Server’a gönderir. Hedef server’dan gelen yanıtlar önce Web Proxy Server’a gelir, ardından yeniden paketlenerek client’lara gönderilir.
ISA Server, Web caching özelliği ile getirilen bilgilerin cache belleğe alınmasını sağlayarak performansı artırır. ISA Server, caching amaçlı olarak aldığı bilgileri, Server’ın ana belleği ve sabit diskinde bir alanda tutar. Bir kullanıcı cache bellekte olan bir bilgiye erişmek istediğinde, ISA Server bu bilgiyi cache belleğinden alarak kullanıcıya sunar. ISA Server HTTP ve FTP nesneleri için caching yapacak şekilde konfigüre edilebilir.
ISA Server 2006 caching’in sağladığı yararlar:
· Performans artışı sağlar.
· Kullanılan network bant genişliğini azaltır.
Performans Artışı
Web caching özelliği, Web içeriğini ISA Server üzerindeki belleğe alarak client’a çok daha hızlı bir erişim sağlar. ISA Server üzerinden Internet’e erişen bir kullanıcı, herhangi bir Web içeriği için erişim isteği gönderdiğinde ISA Server istenilen içeriğin kendi cache belleğinde olup olmadığını kontrol eder. İçerik cache bellek içerisinde varsa kullanıcıya doğrudan cache üzerinden yanıt verilir. Bu sayede Internet üzerinden bilgiyi getirmekten çok daha hızlı bir şekilde bilgi kullanıcıya aktarılmış olur. En son erişilen bilgiler cache bellek üzerinde tutulur ve kullanıcılar erişime devam ettiği sürece cache bellek üzerinde tutulmaya devam edilir.
Kullanılan bant genişliğini azaltır
Web caching organizasyonun Internet erişimindeki toplam bant genişliği kullanım oranını azaltır. Kullanıcılar zaten cache bellekte olan bilgilere eriştiklerinde Internet’e erişim isteği gönderilmeksizin doğrudan cache bellekten yanıt verilir.
Caching Nasıl Çalışır?

Bir kullanıcı HTTP ya da FTP nesneleri için erişim isteği gönderdiğinde, şekilde de gösterildiği gibi bu istek öncelikle ISA Server üzerindeki Web proxy filtresine ulaşır.
Forward (ileri) Caching senaryosunda kullanıcının isteği karşılanırken aşağıdaki adımlar gerçekleşir:
1. Web proxy client Internet üzerindeki Web server’da bulunan bir içerik için erişim isteği gönderir. Bu erişim isteği, ISA Server tarafından karşılanır ve Web proxy filtresine iletilir.
2. ISA Server istenilen bilginin cache belleği üzerinde olup olmadığını kontrol eder. Eğer bilgi cache bellekte yoksa ya da cache bellekte varsa; ancak kullanım süresi dolmuşsa (cache bellekteki ilgili içeriğin başlık bilgisi cache üzerinden kullanım süresinin dolduğunu gösteriyorsa) ISA Server gelen isteği Internet üzerindeki ilgili Web server’a yönlendirir.
3. Internet üzerindeki Web server istenilen bilgiyi gönderir.
4. ISA Server Web proxy filtresi gelen Web içeriğini kendi in-memory (bellekte) şeklinde adlandırılan ve gerçekte RAM bellek üzerinde adreslenen cache belleğine alır. ISA Server sıklıkla erişilen içerikleri “in-memory cache” bellekte saklar.
5. Web içeriği (in-memory cache) belleğe alındıktan sonra ISA Server 2004 Web caching server isteği gönderen kullanıcıya içeriği gönderir.
6. Bir zaman sonra ISA Server 2004 Web proxy filtresi in-memory cache bellekte duran bilgiyi sabit disk üzerindeki cache bellek olan disk-based cache belleğe kopyalar. İçerik sıklıkla erişilmiyorsa in-memory cache bellek üzerinden silinir ve sadece disk-based cache bellek üzerinde tutulmaya başlanır.
ISA Server Üzerinde Caching ve Web Chaining
Web caching özelliğini etkin hale getirdiğinizde ISA Server’ı Web nesnelerini kendi cache belleğinde depolamak üzere konfigüre etmiş olursunuz. ISA Server cache performansını optimize etmek üzere aşağıdaki özelliklere sahiptir;
RAM ve disk caching : ISA Server en çok istenen nesneleri RAM bellek üzerinde adreslediği cache üzerinde saklar. Caching yapılırken ISA Server öncelikle cache belleğe alınacak olan nesneyi önce RAM üzerindeki cache bellek üzerine alır ve sonrasında disk üzerinde cache dosyasının içine kopyalar. RAM ve disk caching birlikte bilinen Web siteleri için olan erişim hızını artırır. ISA Server default olarak , RAM bellek boyutunun 10% oranındaki kısmını Web cache için kullanır.
Fiziksel bellek üzerinde RAM cache tutulması : ISA Server hiç bir zaman işletim sisteminin Paging (takas) dosyası içerisinde RAM cache tutmaz. Bu durum doğrudan RAM üzerinde tutulan cache belleğe erişimi optimize eder.
Cache içerisinde tutulan nesne dizini : ISA Server cache belleği içerisinde tutmakta olduğu nesnelerin bir dizinini RAM bellek üzerinde tutarak erişilmek istenen nesnelerin cache bellek içerisinde yer alıp almadığını kolaylıkla bulabilmektedir.
Tek cache dosyası : ISA Server her bir disk partition başına tek bir cache dosyası tutar. Bu sayede birden fazla dosyanın açılıp kapanması ile fazladan sistem kaynaklarının tüketilmesinin önüne geçilmiş olmaktadır. Her bir disk partition için cache dosyası büyüklüğü ayrı ayrı konfigüre edilebilmektedir. Bir cache dosyasının maksimum büyüklüğü 64 GB olabilir.
Hızlı kurtarma : ISA Server beklenmedik bir kapanış bile olsa cache belleğe alınmış olan nesnelerin dizinini hızlı bir şekilde tekrar oluşturur.
Etkili cache güncellemeleri : ISA Server RAM cache içerisinde hangi nesnelerin kalacağına karar verir. Bu karar kullanıcının aynı nesneye olan tekrar erişimi ve hangi sıklıkta nesneye erişildiği kriterlerine göre alınır.
Otomatik temizlik : ISA Server cache bellek kapasitesi maksimum büyüklüğüne yaklaştığında erişilmeyen nesneleri cache bellek içerisinden siler.
ISA Server Cache Bellek İçeriğini Nasıl Belirler?
ISA Server kullanıcılar tarafından istenen tüm Web içeriğini cache bellek üzerine almaz.
ISA Server belirtilen HTTP başlığını (header) taşıyan bilgileri cache bellek üzerine almaz.
Caching ve Web Chaining
Web chaining kullanmanın faydalarından biri de ISA Server üzerinde biriktirilmiş (accumulated) cache’lerden yararlanmaktır. Eğer tüm şube ofislerdeki ISA Server’lar trafiği merkez ofisteki ISA Server üzerine yönlendirecek şekilde konfigüre edilirse, merkezdeki ISA Server üzerinden gelen tüm istekler doğrultusunda biriken oldukça geniş bir cache bellek oluşacaktır. Şubelerdeki ISA Server’lar üzerinde o şubeden gelen istekler doğrultusunda bir cache bellek oluşacak ve merkezde tutulan daha geniş cache bellekle olan birleşimi sayesinde kullanıcıların istekte bulundukları internet içeriğinin doğrudan Internet üzerinden getirilmesine gerek kalmadan cache bellek üzerinden yanıtlanması olasılığı oldukça artacaktır.

Aşağıdaki adımlar tipik bir şube ve merkez ofis senaryosunun nasıl çalıştığını açıklamaktadır.
1. Client, şube ofisteki Web caching server’a istediği internet içeriği için istek gönderir. Şube bulunan ISA Server’daki cache bellek istenen içeriğin güncel bir versiyonunu tutuyorsa doğrudan cevap verir.
2. Şube’den istenen bilgi şubedeki server’ın cache belleğinde yoksa istek web chaining içerisindeki upstream server (üst server) olarak konfigüre edilmiş olan Web caching server’a iletilir.
3. Eğer upstream server istenen içeriğin güncel bir versiyonunu cache belleği üzerinde barındırıyorsa, bu içeriği isteği ileten şube ofisteki Web caching server’a gönderilir. Şubedeki Web caching server gelen içeriği kendi cache belleğine kaydeder ve kullanıcıya yanıt olarak gönderir.
4. Eğer ana ofisteki upstream server olan Web caching server, istenen içeriği barındırmıyorsa istek doğrudan Internet üzerindeki Web server’a iletilir. Internet üzerindeki ilgili Web server gelen isteğe göre içeriği ana ofisteki Web caching server’a gönderir. Gelen içerik ana ofisteki Web caching server tarafından cache belleğe kaydedilir.
5. Ana ofis, gelen içeriği şubedeki Web caching server’a gönderir. Şubedeki Web caching server gelen içeriği kendi cache belleğine kaydeder.
6. Şubedeki Web caching server ilgili içeriği kendi cache belleği üzerinden istekte bulunan kullanıcıya gönderir.
Isa Server Caching özelliğinden ve web chaining ile birlikte çalışmasından bahsettikten sonra makalemizin sonuna gelmiş bulunuyoruz. Umarım yararlı olmuştur. Bir sonraki makalemizde Caching Konfigurasyonunu anlatacağım.