İçindekilerGirişİndex
YukarıİlkÖncekiSonraki YokSon
Geriİleri
Yazdır

Katmanlı Mimarilerin Kullanım Örnekleri

Delphi Örneği

Delphi İstemci/Sunucu versiyonu, klasik "Two-Tier" ve "Three-Tier" istemci/sunucu uygulamaları geliştirmek üzere gerekli ölçülebilirliği sağlar. Geniş kapsamlı istemci/sunucu uygulamaları klasik "Two-Tier" ‘dan "multi-tier" ("Three-Tier" veya "n-tier" da denir) ‘ a doğru kaymaktadır. Yüksek düzeyli gerçek zamanlı veri işleme (On-line Transaction Processing) ve 200 kullanıcıyı aşan dağıtık uygulamalarda "Three-Tier" mimarisi daha yüksek performans sağlar. Delphi İstemci/Sunucu versiyonu başarılı bir "n-tier" istemci/sunucu uygulaması geliştirebilmek için gerekli teknolojileri içerir: nesneye yönelik mimari, açık araçlar (open tools) mimarisi ve genişletilebilir bileşen tabanlı uygulama ortamı.

Neden Çok Katman?

Çok katmanlı istemci/sunucu mimarisi, genişletilebilir, tekrar kullanılabilir, bileşen tabanlı bir modele dayalı istemci/sunucu uygulamaları geliştirebilmek için kullanıcıya bir yöntembilimi sunar. Bu mimari, katman dene mantıksal bileşen düzeyleri arasındaki standartlaştırılmış arayüzleri destekler.

İstemci/sunucu terimi, klasik olarak bir çeşit SQL veritabanı sunucusuna ağ üzerinden bağlı bir PC olarak düşünülür. Gerçekte, istemci/sunucu, görevlerin istemci ve sunucu veya katman yapılarına bölümünü destekleyen mantıksal bir modele işaret eder. Alıştığımız "Two-Tier" fiziksel gösterimi aslında, istemci/sunucu mantıksal modelinin bir olası gerçekleştirimidir. Bir uygulamanın sahip olabileceği katman sayısında sınır yoktur. "Three-Tier" 'daki 3, bir uygulamanın mantıksal ayrımındaki en çok kullanılan sayıdır. Bu mantıksal ayrımlar Sunum, Uygulama ve Veri hizmetlerine ayrılmıştır.

Java Örneği

Eski istemci/sunucu uygulamalar "thick" istemci ve "thick" sunucu modeli olarak da bilinen mantıksal ve fiziksel 2 katmanlı bir mimari kullandılar. Bu klasik gerçekleştirimler, bir uygulamayı istemci ve sunucu arasındaki iletişimi sağlayan ve istemci ile sunucu arasında bulunan bir çeşit katmana paylaştırdılar. Bir Microsoft SQL-Server veritabanı ile bağlantıyı sağlayan Data Access Object (DAO) kullanan bir Visual Basic programı 2 katmanlı uygulamaya bir örnektir. 2 katmanlı modelde, sunum mantığını istemciye yerleştirerek kullanıcı ile etkileşimi ve kullanıcını arabirimini ele almasını sağlar. Sunucu, tipik olarak, sorguları işleyen ve veritabanı ile ilgili hizmetleri sağlayan bir veritabanı sunucusudur. Her istemci, istemleri ve işlem sonuçlarını göndermek için sunucuya olan bir bağlantıyı başlatır ve açık tutar.

Çekirdek uygulamalar genelde ya 3GL veya 4GL programlama dili kullanarak istemcide, ya da trigger ve saklı yordamlar şeklinde sunucuda kodlanır. Uygulama mantığının nereye yerleştirildiğine bağlı olarak ya "thick" istemci ya da "thick" sunucu uygulaması ile sona erdirilir. Her ne kadar "thick" tasarım, uygulamanın fiziksel ayakizine (footprint) değil de,bileşendeki uygulama mantığı miktarına bağlı olsa da, 2 katmanlı uygulamalar çok büyük kötü üne sahiptir. Bunun nedeni, modelin esnek olmayan doğasından dolayı 2 katmanlı uygulamaların bakımının, iyi dengelenmesinin ve uygulanmaya hazır hale getirilmesinin zor olmasıdır. Örneğin, "thick" bir istemcideki uygulama mantığı veya veri erişim tekniğinde olabilecek herhangi bir değişiklik, her kullanıcıya ulaşarak uygulamayı günlemeyi gerektirir. Yüzlerce veya binlerce masaüstü için bunu yapmak çok zor olabilir. Ayrıca, veritabanı sunucusuna olan açık bağlantıların sayısı sistem performansını etkilediğinden, aktif istemci sayısı sınırlandırılmıştır. Son olarak, istemcideki tüm uygulama mantığı, uygulamayı çalıştırmak için kullanılan her makine için büyük bir tekrar sayısı gerektirir.

Three-Tier Mimari ve Java

Bir çok yeni istemci sunucu uygulamaları ve önemli sayıdaki Web uygulamaları mantıksal 3 katmanlı bileşen mantığı takip ederler. 3 katmanlı modelde,uygulama sunum katmanına, uygulama katmanına ve veri servisi katmanına bölüştürülmüştür.Bu uygulamar doğal olarak iki katmanlı uygulamalrdan daha esnektir. Her bir mantıksal katman ve ya bileşen, yalnız sorumlu olduğu işlevi yerine getirir. Bir çok durumda, bir bileşenin günlenmesi yalnız o katmanı etkiler, diğerlerini etkilemez. Sunum katmanı veriyi görüntüler ve kullanıcı etkileşimini ele alır. Uygulama katmanı uygulama mantığını ve iş bileşenlerini içerir. Ve şaşırtıcı olarak veri hizmetleri katmanı veri servisinden sorumludur.

İstemciden gelen tüm talepler uygulama katmanı tarafından ele alınır. İstemcinin veri için talepte bulunması gerektiği zaman bunu dolaylı olarak yapar. Bu önemli yararlara sahiptir. İlki, ODBC türünde veri tabanı sürücülerinin istemci üzerinde yüklü olması gerekmediği anlamına gelir. Bu, istemci makinesinin bazı yönetim konularını sistem gereksinimlerini azaltır. İkinci olarak, uygulama sunucusu daha çok istemciye hizmet sunarken birçok veri tabanı bağlantısını sürdürerek bir çeşit huni gibi davranır. Üçüncü olarak, uygulama katmanı istemciyi back-end veri kaynağından izole eden bir soyutlama katmanı olarak hizmet verir. Gerçekte,istemciyi önemli ölçüde etkilemeden, veri tabanı sunucusu ve veri erişim teknikleri değişebilir veya Microsoft Exchange'in depoladıkları gibi yeni veri kaynakları eklenebilir.

Tarayıcı (browser), ASP sayfaları ve veri tabanı sunucusu içeren bir Active Sever Page (ASP) uygulaması 3 katmanlı mimariye görsel bir örnektir.Tarayıcı istemcisisadece kullanıcı arayüzü işlevlerini ele alır ve HTML kullanıcıya görüntüler. ASP scriptleri ve herhangi bağımlı uygulama bileşenleri tüm uygulama mantığını içerir. Veri tabanı sunucusu uygulama katmanı tarafından yapılan tüm veri tabanı istemlerine hizmet verir. HTTP, klasik veri tabanı arabirimi uygulama bileşenini veri tabanı sunucusuna bağlamak için kullanılabilirken, tarayıcı ve Web sunucusu arasında bir iletişim arabirimi olarak kullanılır. Bu modelde ölçülebilirlik performans ve yönetilebilirlik sağlanmıştır. Uygulama mantığı web sunucusu üzerinde merkezi olarak sürdürülmüştür ve daha kolay günlenebilir. İstemci makine yalnız sunum görevlerini ele almaya ihtiyaç duyar, böylece daha az sistem gereksinimi olacaktır. Son olarak istemciler veri tabanı sunucusu ile doğrudan değil bir uygulama katmanı aracılığı ile iletişim kurarlar. Böylece veri tabanı bağlantısı sayısı ve veri tabanı sunucusu üzerindeki yük azaltılmıştır.

Tarayıcısız 3 katmanlı uygulama ile Web uygulaması arasındaki anlaşılması zor ayrım , tarayıcının tüm sunum bileşenlerinin otomatik olarak hazır hale getirilmesi ve kullanıcıya uygulama mantığını katmasıdır. Bu özellik fiziksel 3 katmanlı mimariyi kullanarak mantıksal 2 katmanlı uygulama geliştirmeyi olanaklı kılar.

İçindekilerGirişİndex
YukarıİlkÖncekiSonraki YokSon
Geriİleri
Yazdır