Makale Özeti

“Dağıtık Uygulama (Distrubuted Application) nedir ve .Net ile hangi yöntemleri kullanabilirsiniz” sorusunun cevabını bulabileceğiniz bir döküman

Makale

Dağıtık Uygulama ve .Net çözümleri - 1

 

“Dağıtık Uygulama (Distrubuted Application) nedir ve .Net ile hangi yöntemleri kullanabilirsiniz” sorusunun cevabını bulabileceğiniz bir döküman

 

Dağıtık Uygulama nedir ?

Dağıtık Uygulama (Distrubuted Application) temel olarak uygulamanın verisinin ayrı bir mantıkta, uygulamada iş yapacak kodların ayrı bir mantıkta, uygulamanın arayüzünün ise daha başka bir mantıkta sunulması demektir. Buradaki mantıktan kastım başka başka makineler olabileceği gibi, farklı network yöntemleri uygulanarak (örneğin Load Balancing) bir kaç makinelerin tek bir işlemi yapabilmesi olarak düşünebiliriz. Yani şöyle basit bir modelleme çizebiliriz, Sql Server 2000 bir makinede, denetimleri yapan .Net Class larınız başka bir makinede, uygulamanızı kullanan insanların kullandıkları arayüzler (Windows uygulamaları yada Web Uygulamaları) daha başka bir makinede. Veritabanı sistemine Data Tier, işleri yapan .Net nesnelerinin bulunduğu sisteme Business Tier ve uygulamanın bulunduğu sistemede Presentation Tier denilir.

 

 

Neden Dağıtık Uygulama ile Program Geliştirelim ?

Bu işlemin amacı farklı makine güçlerini kullanarak her makinenin kendi işini yapmasıdır böylece çok daha performanslı bir şekilde uygulamaların çalıştırılabilmesi, örneğin bir makinenin üzerinde hem Sql Server 2000 hemde Windows Application çalışıyor olsun, bu makine hem veri işlemlerini yapacak hemde sunum işlemlerini yapacak, böylece makine iki iş birden yapacak ve örneğin Sql Server 2000 ile alakalı bir problem sizin uygulamanızda da problemlere yol açacak, bu özellikle yavaşlama olarak düşünülebilir.

 

Dağıtık Uygulamanın Tarihçesi Nedir ?

Bundan on yıl önceye kadar yazılım dillerinde dizayndan geliştirmeye kadar bir çok şey değişti, önceden Monolithic (tek parça) uygulamalar mevcuttu, tek bir parçadan ibaret ve çok büyük bir program olarak tasarlanırlardı, programın bir bölümünü geliştirebilmek için bütün uygulamayı tekrar düzenlemek, hatta tekrar compile etmek gerekiyordu.

 

Sonraki yıllarda yazılım mimarları ve yöneticiler yazdıkları programların tekrar kullanılması amacıyla yazdıkları kodları ufak parçalara, bileşenlere ayırdılar.  Böylece yazdıkları ufak program parçalarını, sadece belli bir iş yapması için özelleştirip tekrar kullanabiliyorlardı, bu yönteme bileşen tabanlı uygulamalar dendi, bileşen tabanlı uygulamaların Monolithic uygulamalara göre avantajları aşağıdaki gibidir.

 

o  Çalıştırılmaları için Monolithic uygulamalara göre çok daha ucuz ve daha az güçlü makinelerin yeterli olması

o  Monolithic uygulamalar tek bir yapı olduğu için geliştirilme süreçleri çok karmaşıktı, bileşenler ayrı ayrı çalışabildikleri için geliştirilmeleri ve düzenlenmleri çok daha kolay oldu.

o  Yazdığınız bir bileşenin başka başka uygulamalar tarafındanda kullanılabilmesi

o  Bileşenler farklı farklı makinelerde konumlandırılıp, işlemlerin çok daha hızlı çalıştırılması sağlandı.

o  Başka başka programlama dilleri ile geliştirilip, başka başka programcılar tarafından oluşturulabilmeleri

 

Ancak bu seferde başka problemler çıktı. Örneğin Visual Basic’te yazılmış bir bileşeni C temelli diller desteklemiyor, kullanamıyordu yada C temelli bir dille yazılmış bir bileşen Visual Basic de kullanılamıyordu, bundan dolayı COM (Componenet Object Model) denilen bir model geliştirildi. Bu modelde bileşenlerin bazı standartlara uyması gerekti. COM bu tarz uygulamalar için çok önemli bir rol oynadı. Com uygulamalarının bazı önemli avantajları aşağıda listelenmiştir.

 

o  Com uygulamaları farklı diller ile farklı platformlar (Unix vs.) için geliştirilmiş olsalar bile birbirleri ile çalışabilir bir yapıda oldular

o  İstemci (client) programlar, COM nesneleri başka makinelerde olsalar bile istemci programın bir parçasıymış gibi çalışabilirdiler.

o  Com bileşeni geliştirmek için gerekli olan standartlar Interface ler ile sağlandı, böylece bir program Com nesnesini kullanırken Interface leri kullanarak COM nesnesine erişti.

o  Bir Com nesnesi, Com arayüzlerini oluşturmayı destekleyen bir programlama dili ile çok hızlı bir şekilde gerliştirilebilir, örneğin VB 6.0, C++ gibi diller varsayılan olarak Com standartlarına uyum sağlarlar.

 

COM uygulamaları dağıtık uygulamalarda kullanılması için evrim geçirdi ve DCOM (Distrubuted COM) olarak dağıtık uygulamalar yazmaya elverişli hale geldi.

 

Microsoft bu mimari daha da geliştirmek için Microsoft DNA (Distrubuted Network Application, Dağıtık ağ uygulaması) denilen bir sistemi geliştirmeye başladı, bu sistem COM mantığının üstüne kurulmuştu ve MTS (Microsoft Transaction Server) ile birleştirilmiş bir yapı idi. DNA geliştirilirken diğer bir takımda .Net i geliştirmeye başladı, .Net yapısı ve mantığı ile DNA ya göre çok daha hızlı ilerledi ve daha çok kullanılacak bir hale geldi bundan dolayı DNA rafa kaldırıldı.

 

Microsoft DNA dan miras kalan COM+  ı, .Net in bünyesine kattı ancak direk olarak .Net ile geliştirilmiş bir yapı daha gerekliydi, bunun için Microsoft Remoting diye bir alt yapı geliştirdi, maksat dağıtık uygulamalar geliştirebilmekti. Remoting Microsoft un .Net teki dağıtık uygulama çözümüdür. Web Servisleri ise Remoting üstünde geliştirilmiş özel bir uygulama tipidir, Web Servislerinin temelinde Remoting yatar.

 

Nasıl Dağıtık Uygulamayı Kullanabilirim ?

Aslında birbine bağlayacağınız üç bölüm var, bu üç bölüm içinde iki tane bağlama yöntemi gerekli, Business Tier ile Data Tier ı birbirine bağlamak çok zor bir işlem değil, kullanacağınız veri tabanına erişirken .Net ile yazdığınız XXXConnection (XXX yerine Sql, OleDB yada Oracle gibi sistemler gelebilir) ın parametre olarak aldığı bağlanma cümleciğinde (Connection String) belirtebilirsiniz, ancak önemli olan Business Tier ile Application Tier ı birbine bağlamaktır, işte burada .Net in size sunduğu aşağıda tanımladığım yöntemlerden birisini kullanabilirsiniz.

 

.Net ile kullanılabilecek Dağıtık Uygulama geliştirme sistemleri nelerdir ?

Temel olarak .Net ile kullanılabilecek Dağıtık uygulama geliştirme sistemleri üç çeşittir,

o  COM+

o  XML Web Servisleri

o  Remoting

 

.Net temel olarak bu üçlüyü destekler, ancak az öncede belirttiğim gibi XML web servisleri Remoting alt yapısı üstüne kurulmuştur, Remoting in bir alt kümesi diyebiliriz. Remoting ile XML web servislerinde yapılabilecek işlemleri yapabilirsiniz bunun yanında Remoting ile XML web servislerinde yapamayacağız bir çok özelliğide gerçekleyebilirsiniz. Remoting sizi daha az sınırlandırır.

 

 

Bu makalenin ikinci bölümünde COM+, XML Web Servisleri ve Remoting arasındaki farklara bakacağız, artılarını ve eksilerini inceleyeceğiz.

 

Bu Makale ile ilgili bana aşağıdaki mail adresimden ulaşabilirsiniz.

 

Levent Cenk Çağlar

cenkc@yazgelistir.com