Hiyerarşik Mimari
Hiyerarşik mimari, tüm sistemi bir hiyerarşi yapısı olarak görür ve burada yazılım sistemi hiyerarşinin farklı seviyelerinde mantıksal modüllere veya alt sistemlere ayrıştırılır. Bu yaklaşım tipik olarak ağ protokolleri ve işletim sistemleri gibi sistem yazılımlarının tasarlanmasında kullanılır.
Sistem yazılımı hiyerarşi tasarımında, düşük seviyeli bir alt sistem, alt seviyedeki yöntemleri çağıran, komşu üst seviye alt sistemlerine hizmetler verir. Alt katman, G / Ç hizmetleri, işlem, programlama, güvenlik hizmetleri, vb. Gibi daha spesifik işlevsellik sağlar. Orta katman, iş mantığı ve çekirdek işleme hizmetleri gibi daha fazla etki alanına bağlı işlevler sağlar. Üst katman, GUI'ler, kabuk programlama olanakları vb. Gibi kullanıcı arayüzü biçiminde daha soyut işlevsellik sağlar.
Ayrıca, ad alanı hiyerarşisinde .NET sınıf kitaplığı gibi sınıf kitaplıklarının organizasyonunda da kullanılır. Tüm tasarım türleri bu hiyerarşik mimariyi uygulayabilir ve genellikle diğer mimari stillerle birleşebilir.
Hiyerarşik mimari stiller şu şekilde ayrılır:
- Main-subroutine
- Master-slave
- Sanal makine
Ana alt yordam
Bu stilin amacı, modülleri yeniden kullanmak ve bağımsız modülleri veya alt programları serbestçe geliştirmektir. Bu tarzda bir yazılım sistemi, sistemin istenen işlevselliğine göre yukarıdan aşağıya iyileştirme kullanılarak alt yordamlara bölünür.
Bu iyileştirmeler, ayrıştırılmış modüller, münhasır bağımsız sorumluluğunu alacak kadar basit olana kadar dikey olarak yönlendirir. İşlevsellik, üst katmanlardaki birden çok arayan tarafından yeniden kullanılabilir ve paylaşılabilir.
Verilerin parametreler olarak alt rutinlere aktarılmasının iki yolu vardır:
Pass by Value - Alt programlar yalnızca geçmiş verileri kullanır ancak değiştiremez.
Pass by Reference - Alt rutinler, parametre tarafından referans verilen verilerin değerini kullanır ve değiştirir.
Avantajlar
Hiyerarşi iyileştirmesine dayalı olarak sistemi ayrıştırmak kolaydır.
Nesne yönelimli tasarımın bir alt sisteminde kullanılabilir.
Dezavantajları
Küresel olarak paylaşılan verileri içerdiği için savunmasızdır.
Sıkı bağlantı, değişikliklerin daha fazla dalgalanma etkisine neden olabilir.
Köle başı
Bu yaklaşım, 'böl ve yönet' ilkesini uygular ve hata hesaplamayı ve hesaplama doğruluğunu destekler. Sistemin güvenilirliğini ve hata toleransını sağlayan ana alt yordam mimarisinin bir modifikasyonudur.
Bu mimaride, köleler ana bilgisayara yinelenen hizmetler sağlar ve ana birim, belirli bir seçim stratejisi ile köleler arasından belirli bir sonucu seçer. Bağımlılar aynı işlevsel görevi farklı algoritmalar ve yöntemlerle veya tamamen farklı işlevsellikle gerçekleştirebilir. Tüm bağımlıların paralel olarak yürütülebildiği paralel hesaplamayı içerir.
Master-Slave modelinin uygulanması beş adımı izler -
Görevin hesaplanmasının nasıl eşit alt görevler kümesine bölünebileceğini belirtin ve bir alt görevi işlemek için gereken alt hizmetleri belirleyin.
Tek tek alt görevlerin işlenmesinden elde edilen sonuçların yardımıyla tüm hizmetin nihai sonucunun nasıl hesaplanabileceğini belirtin.
Adım 1'de tanımlanan alt hizmet için bir arabirim tanımlayın. Bu arabirim, ikincil birim tarafından uygulanacak ve ana kişi tarafından alt görevlerin işlenmesini devretmek için kullanılacaktır.
Bağımlı bileşenleri önceki adımda geliştirilen spesifikasyonlara göre uygulayın.
Master'ı adım 1 ila 3'te geliştirilen spesifikasyonlara göre uygulayın.
Başvurular
Yazılımın güvenilirliğinin kritik bir konu olduğu uygulamalar için uygundur.
Paralel ve dağıtılmış hesaplama alanlarında yaygın olarak uygulanır.
Avantajlar
Daha hızlı hesaplama ve kolay ölçeklenebilirlik.
Köleler çoğaltılabildiğinden sağlamlık sağlar.
Slave, anlamsal hataları en aza indirmek için farklı şekilde uygulanabilir.
Dezavantajları
İletişim ek yükü.
Tüm sorunlar bölünemez.
Uygulaması zor ve taşınabilirlik sorunu.
Sanal Makine Mimarisi
Sanal Makine mimarisi, üzerinde uygulandığı donanım ve / veya yazılıma özgü olmayan bazı işlevleri varsayar. Bir sanal makine, mevcut bir sistem üzerine inşa edilir ve sanal bir soyutlama, bir dizi öznitelik ve işlem sağlar.
Sanal makine mimarisinde, master, slave'den 'aynı' alt hizmeti 'kullanır ve bölünmüş çalışma, slave çağırma ve sonuçları birleştirme gibi işlevleri yerine getirir. Geliştiricilerin henüz inşa edilmemiş platformları simüle etmelerine ve test etmelerine ve gerçek sistemle test etmek için çok karmaşık, maliyetli veya tehlikeli olabilecek "felaket '' modlarını simüle etmelerine olanak tanır.
Çoğu durumda, sanal bir makine, bir programlama dilini veya uygulama ortamını bir yürütme platformundan ayırır. Temel amaç sağlamaktırportability. Bir Sanal Makine aracılığıyla belirli bir modülün yorumlanması şu şekilde algılanabilir:
Yorum motoru, yorumlanmakta olan modülden bir talimat seçer.
Talimata bağlı olarak, motor sanal makinenin dahili durumunu günceller ve yukarıdaki işlem tekrarlanır.
Aşağıdaki şekil, tek bir fiziksel makinede standart bir VM altyapısının mimarisini göstermektedir.
hypervisor, ayrıca denir virtual machine monitor, ana bilgisayar işletim sisteminde çalışır ve eşleşen kaynakları her konuk işletim sistemine tahsis eder. Konuk bir sistem çağrısı yaptığında, hiper yönetici araya girer ve bunu ana işletim sistemi tarafından desteklenen karşılık gelen sistem çağrısına çevirir. Hiper yönetici, her sanal makinenin CPU'ya, belleğe, kalıcı depolamaya, I / O cihazlarına ve ağa erişimini kontrol eder.
Başvurular
Sanal makine mimarisi, aşağıdaki alanlarda uygundur -
Doğrudan bir çözüm yoksa simülasyon veya çeviri yoluyla bir problemi çözmek için uygundur.
Örnek uygulamalar arasında mikro programlama, XML işleme, komut dosyası komut dili yürütme, kural tabanlı sistem yürütme, Smalltalk ve Java yorumlayıcı türü programlama dili yorumlayıcıları bulunur.
Sanal makinelerin yaygın örnekleri, yorumlayıcılar, kural tabanlı sistemler, sözdizimsel kabuklar ve komut dili işlemcileridir.
Avantajlar
Taşınabilirlik ve makine platformundan bağımsız.
Yazılım geliştirmenin basitliği.
Programı kesme ve sorgulama yeteneği sayesinde esneklik sağlar.
Afet çalışma modeli için simülasyon.
Çalışma zamanında değişiklikleri tanıtın.
Dezavantajları
Tercümanın doğası gereği tercümanın yavaş çalışması.
Yürütmeye dahil olan ek hesaplama nedeniyle bir performans maliyeti vardır.
Katmanlı Stil
Bu yaklaşımda, sistem bir hiyerarşide birkaç üst ve alt katmana ayrıştırılır ve her katmanın sistemde kendi sorumluluğu vardır.
Her katman, bir pakette, konuşlandırılmış bir bileşende veya yöntem kitaplığı veya başlık dosyası biçiminde bir alt yordam grubu olarak kapsüllenmiş bir grup ilişkili sınıftan oluşur.
Her katman, üstündeki katmana hizmet sağlar ve aşağıdaki katmana bir istemci olarak hizmet eder, yani katman i + 1'e yönelik talep katman i'nin arabirimi yoluyla katman i tarafından sağlanan hizmetleri çağırır. Görev tamamlanırsa yanıt i +1 katmanına geri dönebilir; aksi takdirde, katman i sürekli olarak aşağıdaki i-1 katmanından hizmetleri çağırır.
Başvurular
Katmanlı stil aşağıdaki alanlarda uygundur -
Hiyerarşik olarak organize edilebilen farklı hizmet sınıflarını içeren uygulamalar.
Uygulamaya özel ve platforma özel bölümlere ayrıştırılabilen herhangi bir uygulama.
Çekirdek hizmetler, kritik hizmetler ve kullanıcı arabirimi hizmetleri vb. Arasında net bölümlere sahip uygulamalar.
Avantajlar
Artımlı soyutlama seviyelerine dayalı tasarım.
Bir katmanın işlevindeki değişiklikler en çok diğer iki katmanı etkilediği için geliştirme bağımsızlığı sağlar.
Standart arayüzün ayrılması ve uygulanması.
Sistemin yeni bileşenlerin tak ve çalıştırına izin vermesini çok daha kolay hale getiren bileşen tabanlı teknoloji kullanılarak gerçekleştirilir.
Her katman, taşınabilirliği destekleyen bağımsız olarak konuşlandırılan soyut bir makine olabilir.
Yukarıdan aşağıya iyileştirme tarzında görevlerin tanımına göre sistemi ayrıştırmak kolaydır
Aynı katmanın farklı uygulamaları (aynı arayüzlerle) birbirinin yerine kullanılabilir
Dezavantajları
Birçok uygulama veya sistem katmanlı bir şekilde kolayca yapılandırılamaz.
Bir istemcinin isteği veya istemciye verilen yanıt potansiyel olarak birkaç katmandan geçmesi gerektiğinden daha düşük çalışma süresi performansı.
Ayrıca, her katman tarafından veri sıralama ve arabelleğe alma konusunda ek yükler konusunda performans endişeleri vardır.
Katmanlar arası iletişimin açılması kilitlenmelere neden olabilir ve "köprüleme" sıkı bağlantıya neden olabilir.
İstisnalar ve hata işleme, katmanlı mimaride bir sorundur, çünkü bir katmandaki hatalar yukarı doğru tüm çağrı katmanlarına yayılmalıdır.