KURUMSAL MİMARİ

Sevgili okurlar kısa bir aranın ardından tekrar sizlerle yazılım hakkında konuşmaya devam ediyoruz. Bu yazımda sizlere kimilerinin kurumsal, kimilerinin n katmanlı olarak bildiği mimariden söz etmeye çalışacağım.

Basit olarak yazılımda kurumsal mimari, aslında yukarıdaki resimdeki gibi. Tabi ki böyle bir resim kafanızda bir şey canlandırmamış olabilir. Bu yüzden gelin bu katmanları tek tek inceleyelim. Neymiş ne değilmiş bunları öğrenelim.

Öğrenmeye başlamadan önce bu mimari neden kullanılıyor bundan biraz bahsetmek gerek. Bu mimari sayesinde her bir işlem olabildiğince parçalanıyor ve bu parçalar birleşerek bir bütünü oluşturuyor. Parçalara ayrılma sebebi ise olası bir değişiklikte bütün bir projede tek tek değişiklikleri yapmak yerine bu değişikliği sadece bir sınıfta veya katmanda yaparak olabildiğince az değişiklikle uğraşmak ve projenin olabildiğince birbirinden bağımsız olmasını sağlamak.

Kurumsal mimaride temel olarak 3 adet katmanımız var. Ekstra olarak birkaç adet daha katman var onlardan yazının ilerleyen kısmında bahsedeceğim.

1-PRESENTATION LAYER(SUNUM KATMANI):

Bu katmanı sadece dış görünüş olarak düşünebiliriz. Burayı sadece ve sadece son kullanıcıya hitap edecek şekilde düzenleriz. Bu belki bir web sitesi belki de bir masaüstü uygulaması olabilir. İçerisinde hiçbir veri tabanı bağlantısı veya veri tabanı ile ilgili hiçbir bilgi bulunmaz. Bu katman sayesinde kullanıcıdan verileri alırız ve bu verileri 2. Katman olarak bahsedeceğim “bussines” katmanına iletiriz.

2-BUSSINESS LAYER(İŞ KATMANI): Bu katmanın özelliği isminden de anlaşılacağı üzere sadece iş yapmak içindir. Projedeki bütün olay bu katmanda dönüyor. Proje içindeki fonksiyonlar vs. sunum katmanından alınan kullanıcı girişini bu katmanda işleyerek sonucu döndürüp tekrardan sunum katmanında gösteriyor.

3-)DATA ACCES LAYER(VERİ KATMANI): Benim için bu katman projenin en önemli kısmı. Çünkü eğer bir projenin temeli sağlam olmazsa ne kadar iyi bir mühendis olursanız olun çok fazla sıkıntı yaşamanız mümkün. O yüzden bu katmana gereken değer gösterilmelidir.

Bu katmanın olayına gelecek olursak, burada sadece veri tabanı ile ilgili işlemler yapılıyor.

Bu katmanın altındaki bazı terimlere bir göz atalım:

DATAACCES INTEGRATION: Bu kısmın tek özelliği kullanacak olduğumuz veri tabanının projeye entegre edilmesini sağlamak. Genel olarak projeadiContext şeklinde adlandırılır.

ABSTRACT:  Bu kısımda interfacelerimizi yazarız. Interface ne demektir diye soracak olursak. Bu kısmı sözleşme gibi düşünebiliriz. Biz projelerimizi metotlar kullanarak yazıyoruz. Örnek olarak ekleme silme vb. gibi. Bu metotları ilk olarak “abstract” kısmında sadece isim olarak tanımlıyoruz. Yani tabiri caizse sözleşme imzalıyoruz. Daha sonrasında kullanmak istediğimiz zaman projemize entegre ederek bu sözleşmelerini imzaladığımız metotların içlerini dolduruyoruz.

CONCRETE: Abstract kısmında projemize entegre ettiğimizi söylemiştim. O entegreyi burada kullanacağımız sınıflara entegre ederek içlerini dolduruyoruz.

ORM: Bu kısımda ise hangi veri tabanı teknolojisi ile çalışmak istediğimizi belirtiyoruz. Bu projeden projeye değişiklik göstermekle beraber en yaygın olarak kullanılan teknoloji entitiyframeworktür.

Ana hatlarıyla kurumsal mimariyi tanıtmaya çalıştım. Biraz da ara katman diye bahsedebileceğimiz katmanlardan bahsetmeye çalışalım.

4-CROSS CUTTING: Bu katman bize bazı kolaylıklar sağlıyor. Bundan bütün olarak değil de başlıklar altında bahsedeceğim.

4.1 CACHING: Bu işlemin olayına gelecek olursak, caching bizi tekrarlı işlemleri önleyerek büyük bir yükten kurtarıyor.

Örnek olarak bir sitemizin olduğunu düşünelim ve bu siteye her tıklandığında veri tabanından verilerimiz geliyor olsun. Bu işlemi her seferinde böyle yapmak yerine, sitenin o tıklanan kısmını bir kere cacheleyip her tıklandığında veri tabanını karıştırmadan direkt olarak cachlenmiş şekilde getirmek hem sistemi yormayacak hem de her seferinde veri tabanı ile bir işlem yapmamış olacağız.

4.2 EXCEPTIONHANDLER: Bu işlemin olayı ise bize projemizde olan hataları bize bildirmektir. Hata veya istisnai bir durumda yapmasını istediğimiz işlemleri bu özellik sayesinde belirleriz.

4.3 VALIDATION: Bu işlemin olayına gelecek olursak doğrulama işlemlerini yapmamızı sağlar. Örnek olarak bu özellik sayesinde TC numarasının gerçek mi olduğunu veya telefon numarası gibi bazı özelliklerin doğruluğunu kontrol edebiliriz.

4.4 LOGGING: Bu işlem ile yapmış olduğumuz projede kim hangi sekmeye girmiş, hangi sekmede ne kadar vakit geçirmiş gibi daha bir sürü değeri toplayabiliyoruz. Bu özelliği genel olarak e-ticaret siteleri yoğun olarak kullanıyor. Bu sayede projemizi kullanan kişiler hakkında bilgi sahibi olabiliyoruz.

5-) WEB SERVICE(WEB SERVİS KATMANI): İnsanlar son zamanlarda ben bir proje yapayım ve bu proje bütün ortamlarda çalışsın derdindeler. Bu yüzden web servisler kullanarak bu projeyi farklı ortamlarla haberleştirmeye çalışıyorlar.

Kurumsal mimari nedir?, hangi ana ve ara katmanlardan oluşur? Bu katmanlar ne işe yarar gibi konulardan bahsettik.

Okuduğunuz için teşekkürler…

KAYNAKÇA:

https://docs.microsoft.com/tr-tr/azure/architecture/guide/architecture-styles/n-tier

https://www.linkedin.com/pulse/n-tier-n-layer-architecture-swapnil-baxi/