Etiket arşivi: IIS 7.0

IIS 7 Mimarisi

 

Server 2008 ile hayatımıza adım atan Internet Information Service 7 , aslında hayatımızda büyük önem arzetmektedir.  Herşeyde kullandığımız bu IIS yapısının önemini kavramak , bilişim sektöründe çalışanlar için önem taşımaktadır. Şimdi IIS 7 ile birlikte hayatımıza giren yeniliklerden  , kolaylıklardan bahsedeceğiz. Kısacası bu yapının mimarisini özet olarak anlatmaya çalışacağız.

 

Birimsellik : IIS 7 , kendi içerisinde built-in gelen 40’tan fazla modülü barındırmaktadır. Çünkü IIS ve ASP.NET birleşimi , her ikisindede yerleşik olan yönetilebilir modüller sayesinde bir çok amaca hizmet edebilmektedir.

Genişletilebilirlik : IIS 7 tamamen genişletilmiş API sağlayıcıları ile web tabanlı yazılım geliştiriciler için bir çok özelliği ve işlevselliği içinde barındırmaktadır. Çekirdek web server modülünde IIS 7 , kullandığı yeni API’ler ile hem Win32 API , hemde .NET API’lere destek vermektedir. Bir web serverda yazılım geliştiriciler IIS ayarlarını , IIS yönetim konsolu ile çok rahat bir şekilde yapabilmektedirler.

Yönetici Kümeleri : IIS 7 gelişmiş yönetim paneli ile hem IIS hemde ASP.NET platformunun ayarları ile birlikte , devredilebilir yönetimsel haklar aracılığı ile kullanıcılara admin hakları olmadan control etmelerini sağlayabileceğiniz bir yapıdadır. IIS Yönetim konsolu yeni GUI yönetim konsolunu kapsar. IIS 7 için geliştirilen Appcmd.exe komut satırı ile de desteklenmiştir.  Bununla ilgili ayrıca bir makale , gelecek zamanda olacaktır.

Sorun Tespiti ve Sorun Çözme :  IIS 7 ile erişilebilirik çok ciddi boyutlara ulaşmıştır ve  ulaşılamama süresi minimuma indirgenmiş vaziyettedir. Sorun giderme daha basite indirgenmiş bir haldedir.

 

IIS çok sayıda içerdiği temel bileşenleri ile , client tarafından gelen HTTP taleplerine cevap verir. Her bileşen için farklı bir sorumluluk üstlenmekte , gelecek olan talepler için sürekli dinlemede , etkinleştirme ve yönetim işlevlerini gerçekleştirmektedir.

HTTP Protocol Stack ( HTTP.sys ) : HTTP.sys kernel modundaki bir dinleyicidir ve client tarafından gelecek olan http ve https isteklerini sürekli olarak takip eder.

World Wide Web Service Publishing Service ( W3SVC ) :  W3SVC , bir http dinleme adaptörüdür. Kendisinin iletişimini http.sys ve Windows Process Activation Service ile yapar.

Windows Process Activation Service ( WAS veya WPAS ) : WAS , yönetim ve iş süreçlerini sağlamaktadır. IIS hizmetinin başlatılmasından , durdurulmasından , geri dönüşümlerden , uygulama havuzlarından ve IIS monitörden sorumlu birimdir.

Configuration Store : Ayar Deposu XML bazı yayımlanan dosya hiyerarşisi ile hem IIS hemde ASP.NET ayarlarını saklar.

Worker Process ( W3WP.EXE ) : W3wp.exe programı , her daim çalışarak işlem isteklerine karşı cevap işlemleri üretir.

Aşağıdaki şemada kabaca işlem süreci gösterilmektedir.

image001

 

Şekildede görüldüğü üzere numaralandırılmış algoritmada isteklerin nasıl sırayla bir bir katmanlardan geçtiğini görüyoruz.

1 – Client tarafından HTTP.sys’e bir HTTP isteği geliyor.

2 – HTTP.sys bu isteği nereye göndereceğini kontrol ediyor.

·         Eğer HTTP.sys konfigürasyon bilgisine sahipse direk olarak çalışma processine , yani w3wp.exe’ye gönderiyor.

·         Eğer HTTP.sys konfigürasyon bilgisine sahip değil ise , W3SVC ile kontak kurup svchost.exe aracılığı ile bunu WAS’a gönderiyor.

3 – WAS konfigürasyon bilgisini IIS global konfigürasyon dosyasından ( applicationHost.config ) bilgileri elde ediyor.

4 – WAS çalışan işlemleri kontrol ediyor. Eğer bir işlem yoksa uygulama havuzunda istenilen işlemi başlatıyor.

5 –WAS konfigürasyon bilgisini geçtikten sonra ,  W3SVC’ye bunları tekrar geri gönderiyor.

6 – W3SVC bu konfigürasyon dosyalarını kullanarak HTPP.sys’i günceller

7 – HTTP.sys isteği çalışan işleme yollar.

8 – Burada belirli otantikasyon işlemleri yapıldıktan sonra gerekli bilgileri tekrardan HTTP.sys’e iletir.

9 – HTTP.sys client bilgisayara cevap verir.

 

Peki Nedir Bu HTTP.sys ?

                HTTP.sys , HTTP ve HTTPS istekleri için bir dinleyici protokoldür. Aslında IIS 6’da sunulmuştur. Fakat IIS 6 içerisinde HTTPS isteklerine cevap vermez. IIS 7’de ise HTTP.sys , Secure Sockets Layer ( SSL ) desteğini beraberinde getirmiştir. Bunuda Lsass.exe isimli programla yapar.

                HTTP.sys , kernel modunda HTTP protokolü için bir aygıt sürücüsüdür aynı zamanda. Windows işletim sisteminde network altyapısının bir parçasıdır. IIS 6 ile gelen bu protokol , kernel modunda Windows Sockets API ( Winsock ) ile , HTTPS isteklerine yanıt verir.

World Wide Web Publishing Service

W3SVC , IIS 7’de önemli değişikliklere uğramıştır. IIS 6’da , w3svc http.sys yönetimi , konfigürasyon yönetimi , işlem yönetimi ve performans izleme görevlerini yerine getiriyordu.

IIS 7’de fonksiyonel olarak iki servis arasında bölündü diyebiliriz. W3SVC sadece Performans izleme ve Http.sys yönetiminden sorumlu oldu. İşlem yönetimi , konfigürasyon yönetimi WAS’a verildi. Bunların yanında IIS 6’da olmayan Arayüz dinleyici adaptörü rolüde WAS’a yüklendi.

Her iki işlemde , Svchost.exe programında yapılmaktadır.

 

Karşılaştıracak olursak , IIS 6 ve 7 de aşağıdaki tablodaki farklar ortaya çıkmıştır.

Rol

IIS 6

IIS 7

Configuration Management

W3SVC konfigürasyon bilgilerini , configuration store’dan okuyor.

W3SVC artık bunu yapmıyor.  Yerine bu işi WAS yapıyor.

HTTP.sys Management

W3SVC Http.sys bilgilerini konfigürasyon bilgileri ile güncelliyordu.

Artık güncelleme işlemlerini WAS yapıyor. HTTP protokolü için kullanılan Arayüz dinleyici adaptörü , WAS ile HTTP.sys arasında köprü vazifesi görüyor.

Process Management

W3SVC uygulama havuzunu yönetiyor , başlatma , durdurma , geri dönüşüm işlemlerini yapıyordu.

Bu sorumlulular artık WAS’a yüklendi.

Performance Monitoring

W3SVC hem web siteleri için hemde IIS Cache için izlemeyi yapıyordu.

W3SVC artık sadece web siteleri için izleme yapıyor.

 

Windows Process Activation Service

                HTTP işlem aktivasyonu modeli IIS 6 içerisinde sunuldu. IIS 7 içinde ise bu servis daha bir genişletilerek Windows Process Activation Service ( WAS ) adını aldı.

                IIS 7’de WAS , uygulama havuzunu ve çalışan işlemleri  kontrol eden bir mekanizma haline geldi. 

 

Evet arkadaşlar IIS 7’nin temel taşı olan HTTP.sys ve svchost.exe’nin içindekileri bu şekilde açıklamış olduk. Bir sonraki makalede görüşmek üzere.

Kenan BÜLBÜL

Internet Information Service ( IIS )

IIS ( Web Sunucusu ) Rolüne Genel Bakış

Windows Server 2008 içindeki Web sunucusu rolü Internet, intranet veya extranet üzerindeki kullanıcılarla bilgi paylaşmanıza olanak sağlar. Windows Server 2008 IIS, ASP.NET ve Windows Communication Foundation uygulamalarını tümleşik çalıştıran birleşik bir Web platformu olan IIS 7.0 ile gelir. IIS 7.0 içindeki ana özellikler ve geliştirmeler aşağıdakileri kapsar:

· Hem yöneticilere hem de geliştiricilere tek ve tutarlı bir Web çözümü sağlayan, birleştirilmiş bir Web platformu.

· Geliştirilmiş güvenlik ve saldırı yüzeyini azaltmak için sunucuyu özelleştirebilme yeteneği.

· Sorunların çözümünde yardımcı olmak için basitleştirilmiş tanılama ve sorun giderme özellikleri.

· Sunucu grupları için geliştirilmiş yapılandırma ve destek.

· Barındırma ve kuruluş iş yükleri için temsili yönetim.

Web Sunucuları Nedir?

Web sunucuları, client bilgisayarlardan gelen istekleri kabul etmelerini ve bu isteklere yanıt vermelerini sağlayan özel yazılımlara sahip bilgisayarlardır. Web sunucuları, internet üzerinden veya intranet ve extranet’ler aracılığıyla bilgi paylaşmanıza olanak sağlar. Bir Web sunucusuyla aşağıdakileri yapabilirsiniz:

· Kullanıcılara Internet üzerinden bilgi sağlama.

· FTP veya Web Dağıtılmış Sürüm Oluşturma ve Geliştirme (WebDAV) ile kullanıcıların karşıya veya karşıdan içerik yüklemesine izin verme.

· Üç katmanlı uygulamalar için iş mantığı içeren Web hizmetlerini barındırma.

· Uygulamaları, kullanıcılara harici disk , CD veya DVD’ler gibi fiziksel ortam yerine, Internet üzerinden dağıtma.

· Web sunucuları, farklı müşteriler ve gereksinimler için yararlı olabilir. Örneğin:

· Küçük işletme sahipleri, basit bir Web sitesi kullanarak hizmetleri hakkında bilgi sağlayabilir.

· Orta ölçekli işletme sahipleri, bir sitede çeşitli uygulamaların birleşiminden oluşan bir çevrimiçi sipariş sistemi aracılığıyla mal ve hizmetlerini sunabilir.

· Kuruluş çapındaki işletmeler, şirket intranet’leri üzerinden iş uygulamaları geliştirerek, bunları çalışanlara sağlayabilir.

· Barındırma şirketleri, bireysel müşterilere farklı çevrimiçi içerik ve uygulamaları barındırmak için sunucu alanı ve hizmetleri sağlayabilir.

· Şirketler, extranet’leri üzerinden ilgili bilgileri ve uygulamaları iş ortaklarına sağlayabilir.

IIS 7.0 Web Sunucusu Rolü Özellikleri

Yeni Yönetim Araçları

IIS 7.0, yeni görev tabanlı bir yazılım arabirimi ve güçlü yeni bir komut satırı aracı sağlar. Bu yeni yönetim araçları aşağıdakileri yapmanıza olanak sağlar:

· IIS’yi ve ASP.NET’i tek bir araçta yönetme.

· Sağlık ve tanılama bilgilerini görüntüleme; bu, gerçekleştirilmekte olan istekleri gerçek zamanlı olarak görüntülemeyi de içerir.

· Siteler ve uygulamalar için kullanıcı ve rol izinlerini yapılandırma.

· Yönetici olmayanlara site ve uygulama yapılandırması yetkisini devretme.

Yapılandırma

IIS 7.0, Web platformunun tamamı için IIS ve ASP.NET yapılandırma ayarlarını tümleştiren yeni bir yapılandırma deposu sağlar. Yeni yapılandırma deposu aşağıdakileri yapmanıza olanak sağlar:

· Tutarlı bir biçim kullanan ve ortak bir API kümesinden erişilebilen bir yapılandırma deposunda IIS ve ASP.NET ayarlarını yapılandırma.

· İçerik dizinlerindeki güncel dağıtılmış yapılandırma dosyalarına hassas ve güvenli biçimde yapılandırma yetkisi devretme.

· Belirli bir site veya uygulama yapılandırmasını veya içeriğini başka bir bilgisayara kopyalama.

· Yeni bir WMI sağlayıcı kullanarak IIS ve ASP.NET için komut dosyası yapılandırması.

Tanılama ve Sorun Giderme

IIS 7.0 Web sunucusu, Web sunucusundaki sorunları daha kolay tanılama ve giderme olanağı sağlar. Yeni tanılama ve sorun giderme özellikleri aşağıdakileri yapmanıza olanak tanır:

· Uygulama havuzları, çalışan işlemleri, siteler, uygulama etki alanları ve geçerli istekler hakkında gerçek zamanlı durum bilgilerini görüntüleme.

· IIS istek yordamı kanalında ilerleyen bir istek hakkında ayrıntılı izleme bilgileri günlüğü oluşturma.

· IIS’yi, geçen süreye veya hata yanıt kodlarına bağlı olarak ayrıntılı izleme bilgileri günlüğünü otomatik olarak oluşturacak biçimde yapılandırma.

Modüler Mimari

IIS 7.0 içindeki Web sunucusu, gereksinimlerinize uygun olarak ekleyebileceğiniz ve kaldırabileceğiniz modüllerden oluşur. Yeni mimari aşağıdakileri yapmanıza olanak sağlar:

· Web sunucusu güvenliğini ve bellek ayak izini en aza indirecek biçimde yalnızca gereksinim duyduğunuz ve kullandığınız özellikleri ekleyerek sunucunuzu özelleştirme.

· Daha önce IIS ve ASP.NET içinde tek konumda çoğaltılan özellikleri (kimlik doğrulama, yetkilendirme ve özel hatalar gibi) yapılandırma.

· Varolan ASP.NET özelliklerini, Form kimliklerini doğrulama veya URL yetkilendirme gibi, tüm istek türlerine uygulama.

Uyumluluk

IIS 7.0 Web sunucusu, varolan uygulamalar için en üst düzeyde uyumluluğu garanti eder. IIS 7.0 aşağıdakileri sürdürmenize olanak tanır:

· Varolan Active Directory Hizmet Arabirimi (ADSI) ve WMI komut dosyalarını kullanma.

· Active Server Pages (ASP) uygulamalarını kodlarda değişiklik yapmadan çalıştırma.

· Varolan ASP.NET 1.1 ve ASP.NET 2.0 uygulamalarını kod değişiklikleri olmadan çalıştırma (IIS 7.0 içindeki ISAPI moduyla bir uygulama havuzu içinde çalıştırdığınızda).

· Değişiklik yapmadan varolan ISAPI uzantılarını kullanma.

· READ RAW bildirimlerine dayananlar dışındaki varolan ISAPI filtrelerini kullanma.

Bir Web Sunucusunun kelimesel bazda ne anlam içerdiğini öğrenmiş olduk. Bir diğer makalede görüşmek üzere…

Kaynak : Technet

Kenan BÜLBÜL