• Büyük bir ödeme sistemi oluştururken öğrendiğim dağıtık mimari kavramları. Keith Matsudeira: Ölçeklenebilir Web Mimarisi ve Dağıtılmış Sistemler

  • Paul M. Duvall, Stephen M. Matthias III, Andrew Glover. Her değişiklik üzerine yazılım oluşturma (Belge)
  • Solovyov V.I. Yazılım pazarında rekabet stratejisi ve taktikleri (Belge)
  • Açıklama - Yazılım oluşturmak ve değerlendirmek için teknolojiler (Belge)
  • Kaner Sam, Halk Jack, Nguyen Kek Müh. Yazılım testi. İş Uygulaması Yönetiminin Temel Kavramları (Belge)
  • Tamre Louise. Yazılım Testine Giriş (Belge)
  • 2009'da ACS için Eyalet Standartlarına Yanıtlar (Hile sayfası)
  • Birleşik bir program dokümantasyonu sistemi için standartlar (Standart)
  • n1.doc

    11. Dağıtılmış sistemlerin mimarisi

    Hedefler
    Bu bölümün amacı, dağıtılmış yazılım sistemlerinin mimarisini incelemektir. Bu bölümü okuduktan sonra şunları yapmalısınız:


    • dağıtılmış sistemlerin temel avantaj ve dezavantajlarını bilir;

    • istemci/sunucu mimarilerinin geliştirilmesinde kullanılan çeşitli yaklaşımlar hakkında bir anlayışa sahip olmak;

    • istemci/sunucu mimarisi ile dağıtılmış nesne mimarisi arasındaki farkları anlamak;

    • nesne talep aracısı kavramını ve CORBA standartlarında uygulanan ilkeleri bilir.

    Şu anda, neredeyse tüm büyük yazılım sistemleri dağıtılmaktadır. Dağıtılmış bir sistem, bilgilerin işlenmesinin birden fazla üzerinde yoğunlaştığı bir sistemdir. bilgisayar ancak birden çok bilgisayara dağıtılır. Diğer herhangi bir yazılımın tasarımıyla pek çok ortak noktası olan dağıtık sistemler tasarlanırken, yine de bir dizi belirli özellik dikkate alınmalıdır. İstemci/sunucu mimarisini tartışırken bunlardan bazılarından Bölüm 10'un girişinde zaten bahsedilmişti ve burada daha ayrıntılı olarak tartışılıyorlar.

    Dağıtılmış sistemler günümüzde çok yaygın olduğundan, yazılım geliştiricilerin tasarım özelliklerine aşina olmaları gerekir. Yakın zamana kadar, tüm büyük sistemler çoğunlukla merkezileştirilmişti ve terminaller ona bağlı bir ana bilgisayarda (ana bilgisayar) çalışıyordu. Terminaller pratikte bilgileri işlemedi - tüm hesaplamalar ana makinede yapıldı. Bu tür sistemlerin geliştiricileri, dağıtılmış bilgi işlemin sorunları hakkında düşünmek zorunda değildi.

    Tüm modern yazılım sistemleri üç büyük sınıfa ayrılabilir.
    1. Yalnızca bir kişisel bilgisayarda veya iş istasyonunda çalışmak üzere tasarlanmış uygulama yazılım sistemleri. Bunlar şunları içerir: kelime işlemcileri, hesap tabloları, grafik sistemleri vb.

    2. Tek bir işlemcide veya tümleşik bir işlemci grubunda çalışmak üzere tasarlanmış gömülü sistemler. Bunlar, ev aletleri, çeşitli cihazlar vb. için kontrol sistemlerini içerir.

    3. Yazılımın, bir ağ aracılığıyla birbirine bağlı gevşek bir şekilde entegre edilmiş bir paralel işlemci grubu üzerinde çalıştığı dağıtılmış sistemler. Bunlar, bir bankanın sahip olduğu ATM sistemlerini, yayın sistemlerini, toplu kullanıma yönelik yazılım sistemlerini vb. içerir.
    Şu anda, listelenen yazılım sistemleri sınıfları arasında, gelecekte giderek daha fazla bulanıklaşacak olan net sınırlar vardır. Zamanla, yüksek hızda Kablosuz ağ yaygın olarak kullanılabilir hale gelecek, örneğin gömülü yazılım sistemleriyle cihazları dinamik olarak entegre etmek mümkün olacaktır. elektronik organizatörler daha genel sistemlerle.

    Kitap, dağıtılmış sistemlerin altı temel özelliğini vurgulamaktadır.
    1. Kaynakları paylaşmak. Dağıtılmış sistemler, bir ağ üzerinden bağlanan sabit diskler, yazıcılar, dosyalar, derleyiciler ve benzerleri gibi donanım ve yazılım kaynaklarının paylaşımına izin verir. Açıkçası, çok kullanıcılı sistemlerde kaynak paylaşımı da mümkündür, ancak bu durumda kaynakların sağlanması ve yönetimi merkezi bilgisayarın sorumluluğunda olmalıdır.

    2. açıklık Bu, yeni kaynaklar ekleyerek sistemi genişletme yeteneğidir. Dağıtılmış sistemler açık sistemler, farklı üreticilerin donanım ve yazılımlarının bağlı olduğu.

    3. paralellik. Dağıtık sistemlerde birden fazla işlem aynı anda çalışabilir. farklı bilgisayarlarçevrimiçi. Bu işlemler çalışırken birbirleriyle etkileşime girebilir (ancak gerek yoktur).

    4. ölçeklenebilirlik. Prensip olarak, tüm dağıtılmış sistemler ölçeklenebilirdir: Bir sistemin yeni gereksinimleri karşılaması için, yeni bilgi işlem kaynakları eklenerek ölçeklendirilebilir. Ancak pratikte büyüme, sistemdeki tek tek bilgisayarları birbirine bağlayan bir ağ ile sınırlı olabilir. Çok sayıda yeni makine bağlarsanız, ağ bant genişliği yeterli olmayabilir.

    5. Hata toleransı. Birden çok bilgisayarın varlığı ve bilgilerin çoğaltılması olasılığı, dağıtık sistemlerin belirli donanımlara ve yazılım hataları(bkz. bölüm 18). Dağıtılmış sistemlerin çoğu, bir hata durumunda genellikle en azından kısmi işlevselliği koruyabilir. Sistemin tamamen arızalanması, yalnızca ağ hatalarında meydana gelir.

    6. şeffaflık Bu özellik, kullanıcılara tam olarak verildiği anlamına gelir. şeffaf erişim kaynaklara ve aynı zamanda kaynakların sistemdeki dağılımına ilişkin bilgiler onlardan gizlenir. Bununla birlikte, çoğu durumda, sistemin organizasyonu hakkındaki belirli bilgiler, kullanıcının kaynakları daha iyi kullanmasına yardımcı olur.
    Elbette, dağıtık sistemlerin bir takım dezavantajları vardır.

    karmaşıklık. Dağıtılmış sistemler merkezi olanlardan daha karmaşıktır. Genel olarak dağıtık sistemlerin özelliklerini anlamak ve değerlendirmek, ayrıca bu sistemleri test etmek çok daha zordur. Örneğin, burada sistemin performansı bir işlemcinin hızına değil, ağ bant genişliğine ve farklı işlemcilerin hızına bağlıdır. Kaynakları sistemin bir bölümünden diğerine taşıyarak, sistemin performansı büyük ölçüde etkilenebilir.

    Emniyet. Genellikle sisteme birkaç yerden erişilebilir. farklı makineler, ağdaki mesajlar görüntülenebilir veya ele geçirilebilir. Bu nedenle, dağıtık bir sistemde güvenliği sağlamak çok daha zordur.

    Kontrol edilebilirlik. Sistem, işletim sistemlerinin farklı sürümlerinin kurulabileceği farklı türde bilgisayarlardan oluşabilir. Bir makinedeki hatalar, öngörülemeyen sonuçlarla diğer makinelere yayılabilir. Bu nedenle, sistemi çalışır durumda yönetmek ve sürdürmek için çok daha fazla çaba gerekir.

    öngörülemezlik. Web'in tüm kullanıcılarının bildiği gibi, dağıtılmış sistemlerin belirli olaylara tepkisi tahmin edilemez ve duruma bağlıdır. tam dolu sistem, organizasyonu ve ağ yükü. Bu parametrelerin tümü sürekli olarak değişebileceğinden, bir kullanıcı isteğinin tamamlanması için geçen süre zaman zaman önemli ölçüde değişebilir.
    Kitap, dağıtılmış sistemlerin avantajlarını ve dezavantajlarını tartışırken, bu tür sistemler için bir dizi kritik tasarım sorununu tanımlar (Tablo 11.1). Bu bölüm dağıtılmış yazılım mimarisine odaklanıyor, çünkü inanıyorum ki geliştirirken yazılım ürünleri bu an en önemli an. Diğer konularla ilgileniyorsanız, dağıtılmış sistemlerle ilgili özel kitaplara bakın.
    Tablo 11.1. Dağıtılmış Sistemleri Tasarlamanın Problemleri


    tasarım sorunu

    Tanım

    kaynak tanımlama

    Dağıtık bir sistemde kaynaklar farklı bilgisayarlarda yer alır, bu nedenle kaynak adlandırma sistemi, kullanıcıların ihtiyaç duydukları kaynakları kolayca açıp başvurabilecekleri şekilde tasarlanmalıdır. Bir örnek, Web sayfalarının adreslerini belirleyen Tekdüzen Kaynak Bulucu (URL) sistemidir. Kolayca algılanan ve evrensel bir tanımlama sistemi olmadan, sistemin kullanıcıları kaynakların çoğuna erişemez.

    İletişim

    İnternetin evrensel çalışabilirliği ve çoğu dağıtılmış sistem için İnternet üzerinde TCP/IP protokollerinin verimli bir şekilde uygulanması, bilgisayarlar arasında iletişim kurmanın en verimli yolunun bir örneğidir. Ancak, performans, güvenilirlik vb. ile ilgili özel gereksinimlerin uygulandığı durumlarda, alternatif yollar sistem iletişimi

    Sistem hizmet kalitesi

    Bir sistem tarafından sunulan hizmetin kalitesi, sistemin performansını, kullanılabilirliğini ve güvenilirliğini yansıtır. Hizmet kalitesi bir dizi faktörden etkilenir: sistem süreç dağılımı, kaynak tahsisi, sistem ve ağ donanımı ve sistem uyarlanabilirliği

    Yazılım mimarisi

    Yazılım mimarisi, sistem işlevlerinin sistem bileşenlerine dağıtımını ve bu bileşenlerin işlemcilere dağıtımını açıklar. Yüksek kalitede bir sistem hizmetinin sürdürülmesi gerekiyorsa, doğru mimariyi seçmek belirleyici bir faktördür.

    Dağıtılmış sistem geliştiricilerinin görevi, dağıtılmış bir sistemin tüm gerekli özelliklerini sağlayacak yazılım veya donanım tasarlamaktır. Bu da dağıtık sistemlerin çeşitli mimarilerinin avantaj ve dezavantajlarını bilmeyi gerektirir. İlişkili iki tür dağıtılmış sistem mimarisi vardır.
    1. İstemci/sunucu mimarisi. Bu modelde sistem şu şekilde gösterilebilir: hizmet seti sunucular tarafından istemcilere sağlanır. Bu tür sistemlerde, sunucular ve istemciler birbirinden önemli ölçüde farklılık gösterir.

    2. Dağıtılmış nesnelerin mimarisi. Bu durumda, sunucular ve istemciler arasında hiçbir fark yoktur ve sistem, konumu gerçekten önemli olmayan, etkileşimde bulunan bir dizi nesne olarak düşünülebilir. Servis sağlayıcı ile kullanıcıları arasında hiçbir fark yoktur.
    Dağıtık bir sistemde, farklı sistem bileşenleri üzerinde uygulanabilir. farklı diller programlama ve farklı işlemci türleri üzerinde çalıştırma. Veri modelleri, bilgi gösterimi ve etkileşim protokolleri - bunların tümü, dağıtılmış bir sistemde mutlaka aynı türden olmayacaktır. Bu nedenle, dağıtık sistemler, bu heterojen parçaları yönetebilen ve aralarındaki etkileşimi ve veri alışverişini garanti edebilen yazılımlar gerektirir. Ara yazılım bu yazılım sınıfına aittir. Sistemin dağıtılmış bileşenlerinin farklı bölümleri arasında olduğu gibi ortadadır.

    Bu makalede, dağıtılmış bilgi işlemi destekleyebilen farklı ara yazılım türleri açıklanmaktadır. Kural olarak, bu tür yazılımlar hazır bileşenlerden derlenir ve geliştiricilerden özel değişiklikler gerektirmez. Ara yazılım örnekleri, veritabanı yönetim programları, işlem yöneticileri, veri dönüştürücüler, iletişim denetçileri ve diğerlerini içerir.Bölümün ilerleyen kısımlarında, dağıtılmış sistemlerin yapısı bir ara yazılım sınıfı olarak açıklanacaktır.

    Dağıtılmış sistemler genellikle nesne yönelimli bir yaklaşım kullanılarak geliştirilir. Bu sistemler, her biri hem kullanıcıyla hem de sistemin diğer parçalarıyla doğrudan etkileşime girebilen gevşek entegre parçalardan oluşturulur. Bu bölümler, mümkün olduğunda bağımsız olaylara yanıt vermelidir. Bu tür ilkeler üzerine inşa edilen yazılım nesneleri, dağıtılmış sistemlerin doğal bileşenleridir. Nesne kavramına henüz aşina değilseniz, önce Bölüm 12'yi okumanızı ve ardından bu bölüme tekrar dönmenizi tavsiye ederim.

    11.1. çok işlemcili mimari

    En basit dağıtılmış sistem, çok işlemcili sistemdir. Farklı işlemciler üzerinde çalışabilen (ama gerekmeyen) birçok farklı süreçten oluşur. Bu model genellikle büyük gerçek zamanlı sistemlerde kullanılır. Bölüm 13'te öğreneceğiniz gibi, bu sistemler bilgi toplar, buna göre kararlar verir ve sistem ortamını değiştiren bir aracıya sinyaller gönderir. Prensip olarak, bilgi toplama, karar verme ve yürütme mekanizmasının kontrolü ile ilgili tüm süreçler, görev zamanlayıcının kontrolünde tek bir işlemci üzerinde gerçekleştirilebilir. Birden çok işlemci kullanmak, sistem performansını ve dayanıklılığını artırır. Süreçlerin işlemciler arasındaki dağılımı geçersiz kılınabilir (kritik sistemlerde doğaldır) veya süreç yöneticisi tarafından kontrol edilebilir.

    Şek. 11.1, bu tür bir sistemin bir örneğini göstermektedir. Bu, bir trafik yönetim sisteminin basitleştirilmiş bir modelidir. Bir grup dağıtılmış sensör, akış miktarı hakkında bilgi toplar. Toplanan veriler, kontrol odasına gönderilmeden önce sitede işlenir. Operatörler, alınan bilgilere dayanarak kararlar verir ve trafik ışıklarını kontrol eder. Bu örnekte, sensörleri, kontrol odasını ve trafik ışıklarını yönetmek için ayrı mantık süreçleri vardır. Bireysel süreçler veya bir süreçler grubu olabilir. Örneğimizde, farklı işlemcilerde çalışıyorlar.

    Pirinç. 11.1. Çok işlemcili trafik kontrol sistemi
    Aynı anda birden çok işlemi çalıştıran yazılım sistemleri mutlaka dağıtılmış değildir. Sistemde birden fazla işlemci varsa işlem dağıtımını gerçekleştirmek zor değildir. Ancak çok işlemcili yazılım sistemleri oluştururken sadece dağıtık sistemlerden başlamak gerekli değildir. Bu tür sistemlerin tasarımı, esas olarak Bölüm 13'te tartışılan gerçek zamanlı sistemlerin tasarımıyla aynı yaklaşımı izler.

    11.2. İstemci/sunucu mimarisi

    10. Bölüm zaten istemci/sunucu konseptini kapsıyordu. Bir istemci/sunucu mimarisinde, bir yazılım uygulaması, sunucular tarafından sağlanan bir dizi hizmet ve bu hizmetleri kullanan bir dizi istemci olarak modellenir. İstemciler, diğer istemcilerin varlığından haberdar olmasalar da, mevcut (mevcut) sunucuların farkında olmalıdır. Olarak Şekil l'de görülebilir. Dağıtılmış bir istemci/sunucu mimarisinin bir diyagramı olan Şekil 11.2'de, istemciler ve sunucular farklı süreçleri temsil etmektedir.


    Pirinç. 11.2. İstemci/sunucu sistemi
    Sistem, süreçler ve işlemciler arasında birebir bir ilişkiye sahip olmak zorunda değildir. Şek. Şekil 11.3, altı istemci makine ve iki sunucudan oluşan sistemin fiziksel mimarisini göstermektedir. Şekil 1'de gösterilen istemci ve sunucu işlemlerini yürütürler. 11.2. Genel olarak, istemciler ve sunuculardan bahsettiğimde, mantıksal süreçleri kastediyorum. fiziksel makineler bu süreçlerin üzerinde çalıştığı.

    İstemci/sunucu sisteminin mimarisi, geliştirilmekte olan yazılım uygulamasının mantıksal yapısını yansıtmalıdır. Şek. 11.4, üç düzeyde yapılandırılmış bir yazılım uygulamasına başka bir bakış sunar. Sunum katmanı, kullanıcılara bilgi ve kullanıcılarla etkileşim sağlar. Uygulama çalışma zamanı, uygulamanın mantığını uygular. Veri yönetimi katmanı, tüm veritabanı işlemlerini gerçekleştirir. Merkezi sistemlerde bu seviyeler arasında net bir ayrım yoktur. Ancak dağıtık sistemler tasarlanırken, her katmanı farklı bilgisayarlara yerleştirmek için bu katmanları ayırmak gerekir.

    En basit istemci/sunucu mimarisi, bir uygulamanın bir sunucudan (veya birçok özdeş sunucudan) ve bir istemci grubundan oluştuğu iki katmanlı bir mimaridir. İki tür mimari vardır (şek. 11.5).
    1. modeli zayıf müşteri. Bu modelde tüm uygulama işleri ve veri yönetimi sunucu üzerinde yapılır. İstemci makinede yalnızca sunum katmanı yazılımı çalışır.

    2. şişman müşteri modeli. Bu modelde, sunucu yalnızca verileri yönetir. İstemci makinede, uygulamanın çalışması ve sistem kullanıcısı ile etkileşim gerçekleştirilir.


    Pirinç. 11.3. İstemci/sunucu ağındaki bilgisayarlar

    Pirinç. 11.4. Yazılım Uygulama Katmanları
    İki katmanlı mimarili ince istemci, mevcut merkezi sistemleri (bkz. Bölüm 26) bir istemci/sunucu mimarisine geçirmenin en kolay yoludur. Bu sistemlerdeki kullanıcı arayüzü kişisel bir bilgisayara "taşınır" ve yazılım uygulamasının kendisi bir sunucunun işlevlerini yerine getirir, örn. tüm uygulama süreçlerini çalıştırır ve verileri yönetir. İnce istemci modeli, istemcilerin normal ağ aygıtları olduğu durumlarda da uygulanabilir. kişisel bilgisayarlar veya iş istasyonları. Ağ cihazları, bir İnternet tarayıcısı ve sistem içinde uygulanan bir kullanıcı arayüzü çalıştırır.


    Pirinç. 11.5. İnce ve kalın istemci modelleri
    İnce istemci modelinin ana dezavantajı, yüksek sunucu ve ağ yüküdür. Tüm hesaplamalar sunucu üzerinde gerçekleştirilir ve bu, önemli sonuçlara yol açabilir. ağ trafiği istemci ve sunucu arasında. Modern bilgisayarlar yeterli bilgi işlem gücüne sahiptir, ancak bankanın ince istemci modelinde pratikte kullanılmaz.

    Buna karşılık, şişman müşteri modeli, yerel makinelerin bilgi işlem gücünü kullanır: hem uygulama yürütme katmanı hem de sunum katmanı, istemci bilgisayara yerleştirilir. Buradaki sunucu aslında tüm veritabanı işlemlerini yöneten bir işlem sunucusudur. Bu tür mimariye bir örnek, ATM'nin müşteri olduğu ve sunucunun müşteri hesapları veri tabanını koruyan merkezi bilgisayar olduğu ATM sistemleri olabilir.

    Şek. 11.6 gösterildi Ağ sistemi ATM'ler. ATM'lerin ödeme veritabanına doğrudan değil, teleişleme monitörü aracılığıyla bağlandığına dikkat edin. Bu izleyici, uzak istemcilerle etkileşime giren ve veritabanıyla çalışmak için istemci isteklerini bir dizi işlem halinde düzenleyen bir aracıdır. Arızalar meydana geldiğinde sıralı işlemlerin kullanılması, sistemin veri kaybı olmadan kurtarmasını sağlar.


    Pirinç. 11.6. ATM ağı için istemci/sunucu sistemi
    Bir yazılım uygulamasının yürütülmesi, kalın istemci modelinde ince istemci modeline göre daha verimli organize edildiğinden, böyle bir sistemi yönetmek daha zordur. Burada, uygulamanın işlevleri birçok farklı makineye dağıtılmıştır. Uygulamayı değiştirme ihtiyacı, sistemde yüzlerce istemci varsa pahalı olan tüm istemci bilgisayarlara yeniden yüklenmesine yol açar.

    Java dilinin ve indirilebilir uygulamaların ortaya çıkışı, ince ve kalın istemci modelleri arasında bir yerde oturan istemci/sunucu modellerinin geliştirilmesine olanak sağlamıştır. Uygulamayı oluşturan programların bir kısmı, istemci makineye Java uygulamaları olarak indirilebilir ve böylece sunucunun yükünü boşaltabilir. Kullanıcı arabirimi, Java uygulamalarını çalıştıran bir Web tarayıcısı kullanılarak oluşturulmuştur. Ancak, farklı satıcılardan Web tarayıcıları ve hatta çeşitli versiyonlar Aynı üreticinin web tarayıcıları her zaman aynı şekilde çalışmaz. Eski makinelerdeki eski tarayıcılar her zaman Java uygulamalarını çalıştırmayabilir. Bu nedenle, bu yaklaşım yalnızca sistemin tüm kullanıcılarının Java uyumlu tarayıcılarının kurulu olduğundan emin olduğunuzda kullanılmalıdır.

    İki katmanlı bir istemci/sunucu modelinde, önemli bir sorun, iki bilgisayar sistemine üç mantıksal katmanın yerleştirilmesidir - sunum, uygulama yürütme ve veri yönetimi. Bu nedenle, ince istemci modeli seçilirse bu model genellikle ölçeklenebilirlik ve performans sorunlarına veya kalın istemci modeli kullanılırsa sistem yönetimi sorunlarına sahiptir. Bu sorunlardan kaçınmak için alternatif bir yaklaşım benimsenmelidir - istemci/sunucu mimarisinin üç katmanlı modeli (Şekil 11.7). Bu mimaride, sunum, uygulama yürütme ve veri yönetimi katmanlarına ayrı süreçler karşılık gelir.


    Pirinç. 11.7. Üç katmanlı istemci/sunucu mimarisi
    Üç katmanlı bir istemci/sunucu modeli üzerine inşa edilen yazılım mimarisi, üç katman gerektirmez bilgisayar sistemleri. Aynı sunucu bilgisayarda, hem uygulama yürütmeyi hem de veri yönetimini ayrı mantıksal sunucular olarak çalıştırabilirsiniz. Aynı zamanda, sistem gereksinimleri artarsa, uygulama yürütme ve veri yönetimini ayırmak ve bunları farklı işlemcilerde çalıştırmak nispeten kolay olacaktır.

    İnternet hizmetlerini kullanan bir bankacılık sistemi, üç katmanlı bir istemci/sunucu mimarisi kullanılarak uygulanabilir. Fatura veritabanı (genellikle ana bilgisayarda bulunur) veri yönetimi hizmetleri sağlar, Web sunucusu para transferi olanakları, rapor oluşturma, fatura ödeme vb. gibi uygulama hizmetlerini destekler. Ve kullanıcının İnternet tarayıcılı bilgisayarı istemcidir. Şek. 11.8'de, istemci sayısı arttıkça yeni Web sunucuları eklemek nispeten kolay olduğundan bu sistem ölçeklenebilir.

    Bu örnekte üç katmanlı bir mimarinin kullanılması, Web sunucusu ile veritabanı sunucusu arasındaki veri aktarımını optimize etmiştir. Bu sistemler arasındaki etkileşimin İnternet standartlarına dayalı olması gerekmez, ancak daha hızlı düşük seviyeli iletişim protokolleri kullanılabilir. Tipik olarak, veritabanından gelen bilgiler, dilde veritabanı sorgularını destekleyen verimli ara yazılım tarafından işlenir. yapılandırılmış sorgular SQL.

    Bazı durumlarda, sisteme ek sunucular eklenerek üç katmanlı bir istemci/sunucu modeli çok katmanlı bir modele dönüştürülebilir. Katmanlı sistemler, uygulamaların farklı veritabanlarında bulunan bilgilere erişmesi gereken durumlarda da kullanılabilir. Bu durumda, birleşik sunucu, uygulamayı çalıştıran sunucu ile veritabanı sunucuları arasında yer alır. Federe sunucu, dağıtılan verileri toplar ve sanki aynı veritabanındaymış gibi uygulamaya sunar.


    Pirinç. 11.8. Dağıtılmış bankacılık sistemi mimarisi kullanılarakİnternet-Hizmetler
    İstemci/sunucu mimarisi tasarımcıları, en uygun olanı seçerken bir dizi faktörü dikkate almalıdır. Masada. 11.2, istemci/sunucu mimarisinin farklı kullanımlarını listeler.
    Tablo 11.2. Başvuru farklı şekiller istemci/sunucu mimarileri


    Mimari

    Uygulamalar

    İki katmanlı ince istemci mimarisi

    Uygulama yürütme ve veri yönetimini ayırmanın pratik olmadığı eski sistemler.

    Derleyiciler gibi hesaplama yoğun uygulamalar, ancak çok az veri işleme.

    Büyük miktarda veri (sorgu) işleyen, ancak uygulamanın kendisinde az miktarda hesaplama içeren uygulamalar

    İki katmanlı kalın istemci mimarisi

    Kullanıcının yoğun veri işlemeye ihtiyaç duyduğu uygulamalar (örneğin, veri görselleştirme veya büyük miktarda hesaplama).

    Yerleşik bir sistem yönetimi ortamında kullanılan nispeten sabit kullanıcı tarafı özelliklerine sahip uygulamalar

    11.3. Dağıtılmış Nesne Mimarisi

    Dağıtılmış bir sistemin istemci/sunucu modelinde, istemciler ve sunucular arasında farklılıklar vardır. İstemci, hizmetleri yalnızca sunucudan ister, hq diğer istemcilerden değil; sunucular istemci görevi görebilir ve diğer sunuculardan hizmet talep edebilir, ancak istemcilerden talep edemez; müşterilerin belirli sunucular tarafından sağlanan hizmetlerden ve bu sunucuların nasıl etkileşim kurduğundan haberdar olmaları gerekir. Bu model, birçok uygulama türü için harikadır, ancak aynı zamanda, hizmetlerin nerede sağlanacağına karar vermesi gereken sistem geliştiricilerini sınırlar. Ayrıca ölçeklenebilirlik için destek sağlamalı ve istemcileri dağıtılmış sunuculara dahil etme araçlarını geliştirmelidirler.

    Dağıtılmış sistem tasarımında kullanılan daha genel bir yaklaşım, istemci ve sunucu arasındaki ayrımı bulanıklaştırmak ve sistem mimarisini dağıtılmış nesne mimarisi olarak tasarlamaktır. Bu mimaride (Şekil 11.9), sistemin ana bileşenleri, arayüzleri aracılığıyla bir dizi hizmet sağlayan nesnelerdir. Diğer nesneler, istemci (hizmet kullanıcısı) ve sunucu (hizmet sağlayıcı) arasında ayrım yapmadan bu hizmetleri çağırır.


    Pirinç. 11.9. Dağıtılmış Nesne Mimarisi
    Nesneler, ağdaki farklı bilgisayarlarda bulunabilir ve ara yazılım aracılığıyla etkileşime girebilir. Bağlanmanıza izin veren sistem veriyoluna benzeterek çeşitli cihazlar ve donanım arasındaki iletişimi desteklemek, ara yazılım bir yazılım veri yolu olarak düşünülebilir. Nesnelerin birbirleriyle etkileşime girmesine, sisteme eklenmesine veya sistemden çıkarılmasına izin veren bir dizi hizmet sağlar. Ara yazılım, nesne istek aracısı olarak adlandırılır. Görevi, nesneler arasında bir arayüz sağlamaktır. Nesne istek simsarları Bölüm 11.4'te tartışılmaktadır.

    Dağıtılmış nesne mimarisi modelinin başlıca avantajları aşağıda listelenmiştir.
    Sistem geliştiricileri, hizmetlerin nerede ve nasıl sağlanacağına karar vermekte yavaş kalabilir. Hizmet sağlayan nesneler, ağda herhangi bir yerde (düğümde) çalışabilir. Bu nedenle, uygulamayı çalıştırmak için nesnelerin yerleşimini önceden planlamaya gerek olmadığından, kalın ve ince istemci modelleri arasındaki fark önemsiz hale gelir.

    Sistem mimarisi, gerektiğinde sisteme yeni kaynaklar eklemenizi sağlayan oldukça açıktır. Bir sonraki bölümde, yazılım veri yolu standartlarının, farklı programlama dillerinde yazılmış nesnelerin birbirleriyle etkileşime girmesine ve hizmet sağlamasına izin verecek şekilde sürekli geliştiğine dikkat çekiliyor.

    Sistemin esnekliği ve ölçeklenebilirliği. Sistem yükleriyle başa çıkmak için, farklı nesneler veya nesnelerin farklı örnekleri (kopyaları) tarafından sağlanacak olan aynı hizmetlerle sistemin örneklerini oluşturabilirsiniz. Yük arttığında sistemdeki diğer nesnelerin çalışmaları kesintiye uğramadan sisteme yeni nesneler eklenebilir.

    İsteğe bağlı olarak ağda taşınan nesneler aracılığıyla sistemi dinamik olarak yeniden yapılandırmak mümkündür. Hizmet sağlayan nesneler, hizmet talep eden nesnelerle aynı işlemciye geçebilir, böylece sistem performansı iyileşir.
    Dağıtılmış nesne mimarisi, sistem tasarım sürecinde iki şekilde kullanılabilir.
    1. Geliştiricilerin sistemi yapılandırmasına ve planlamasına olanak tanıyan mantıksal bir model biçiminde. Bu durumda, uygulamanın işlevselliği yalnızca hizmet terimleri ve kombinasyonları ile açıklanır. Ardından, birden çok dağıtılmış nesneyi kullanarak hizmet sunmanın yolları geliştirilir. Bu seviyede, kural olarak, belirli bir uygulama alanının özelliklerini yansıtan hizmetler sağlayan büyük modül nesneleri tasarlanır. Örneğin, bir muhasebe programında perakende envanter durumunu takip edecek, müşterilerle etkileşimleri takip edecek, malları sınıflandıracak vb. nesneleri dahil edebilirsiniz.

    2. İstemci/sunucu sistemlerinin uygulanmasına yönelik esnek bir yaklaşım olarak. Bu durumda mantıksal model sistemler, istemcilerin ve sunucuların bir yazılım veriyolu aracılığıyla etkileşime giren dağıtılmış nesneler olarak uygulandığı bir istemci/sunucu modelidir. Bu yaklaşımla, örneğin iki seviyeli bir sistemi çok seviyeli bir sistemle değiştirmek kolaydır. Bu durumda, ne sunucu ne de istemci tek bir nesnede uygulanamaz, ancak her biri belirli bir hizmet sağlayan birçok küçük nesneden oluşabilir.
    Dağıtılmış nesne mimarisi için uygun bir sistem örneği, farklı veritabanlarında depolanan verileri işlemek için bir sistemdir (Şekil 11.10). Bu örnekte, herhangi bir veritabanı, verilere salt okunur erişim sağlayan bir arabirime sahip bir nesne olarak düşünülebilir. Entegratör nesnelerinin her biri, bu bağımlılıkları denemek ve izlemek için veritabanlarından bilgi toplayarak belirli veri bağımlılığı türleri ile ilgilenir.

    Görselleştirici nesneleri, verileri grafik biçiminde sunmak veya analiz edilen veriler hakkında raporlar oluşturmak için bütünleştirici nesnelerle etkileşime girer. Grafik bilgileri sunmanın yolları Bölüm 15'te tartışılmaktadır.


    Pirinç. 11.10. Dağıtılmış bir veri işleme sisteminin mimarisi
    Bu tür bir uygulama için, dağıtılmış bir nesne mimarisi, üç nedenden dolayı bir istemci/sunucu mimarisinden daha uygundur.
    1. Bu sistemlerde (örneğin, ATM sisteminin aksine), tüm veri yönetimi hizmetlerinin yoğunlaştığı tek bir hizmet sağlayıcı yoktur.

    2. Kullanılabilir veritabanlarının sayısını sistemi kesintiye uğratmadan artırabilirsiniz, çünkü her veritabanı sadece bir nesnedir. Bu nesneler, verilere erişimi kontrol eden basitleştirilmiş bir arabirimi destekler. Mevcut veritabanları farklı makinelere yerleştirilebilir.

    3. Yeni bütünleştirici nesneler ekleyerek, veriler arasındaki yeni bağımlılık türlerini izleyebilirsiniz.
    Dağıtılmış nesne mimarilerinin ana dezavantajı, istemci/sunucu sistemlerine göre tasarımının daha zor olmasıdır. İstemci/sunucu sistemlerinin dağıtık sistemler oluşturmak için daha doğal bir yaklaşım sağladığı ortaya çıktı. Bazı kişilerin, belirli hizmetleri sağlama konusunda uzmanlaşmış diğer kişilerin hizmetlerini kullandığı, insanlar arasındaki ilişkiyi yansıtır. Yazılım endüstrisi, büyük ölçekli nesnelerin tasarımı ve geliştirilmesi konusunda henüz yeterli deneyime sahip olmadığı için, dağıtılmış nesnelerin mimarisine göre bir sistem geliştirmek çok daha zordur.

    11.4. ÇORBA

    Önceki bölümde belirtildiği gibi, dağıtılmış nesnelerin mimarisinin uygulanması, dağıtılmış nesneler arasındaki etkileşimi düzenleyen ara yazılım (nesneler için istek aracıları) gerektirir. Sistemdeki nesneler farklı programlama dillerinde gerçeklenebildiğinden, üzerinde başlatılabildiğinden, burada bazı sorunlar ortaya çıkabilir. farklı platformlar ve adları sistemdeki diğer tüm nesneler tarafından bilinmemelidir. Bu nedenle, ara katman, nesneler arasında sürekli iletişimi sürdürmek için çok iş yapmak zorundadır.

    İÇİNDE şu anda Dağıtılmış nesne hesaplamayı desteklemek için iki ana ara yazılım standardı vardır.
    1. CORBA (Ortak Nesne İstek Aracısı Mimarisi - ortak nesneler için istek aracılarının mimarisi). OMG (Object Management Group) tarafından geliştirilen bir dizi ara yazılım standardıdır. OMG, Sun, Hewlett-Packard ve IBM gibi şirketler de dahil olmak üzere yazılım ve donanım üreticilerinden oluşan bir konsorsiyumdur. CORBA standartları, dağıtılmış nesne hesaplamaya makineden bağımsız ortak bir yaklaşım tanımlar. farklı üreticiler tarafından Bu standardın birçok uygulaması geliştirilmiştir. CORBA standartları işletim sistemi tarafından desteklenmektedir. Unix sistemi ve Microsoft'tan işletim sistemleri.

    2. DCOM (Dağıtılmış Bileşen Nesne Modeli - dağıtılmış bileşenlerin bir nesne modeli). DCOM, Microsoft tarafından geliştirilen ve uygulanan ve işletim sistemlerine entegre edilen bir standarttır. Bu dağıtılmış bilgi işlem modeli, CORBA'dan daha az çok yönlüdür ve ağ etkileşimleri için daha sınırlı olanaklar sunar. DCOM şu anda Microsoft işletim sistemleriyle sınırlıdır.
    Burada daha çok yönlü olduğu için CORBA teknolojisine dikkat etmeye karar verdim. Ayrıca, CORBA, DCOM ve RMI (Remote Method Invocation - bir uzak yöntem çağrısı, Java dilinde dağıtılmış uygulamalar oluşturmak için bir teknoloji) gibi diğer teknolojilerin kademeli olarak birbirleriyle yakınlaşacağına inanıyorum ve bu yakınsama, CORBA standartlarına dayalı olacaktır. Bu nedenle başka bir standarda gerek yoktur. Farklı standartlar yalnızca daha fazla geliştirmede bir engel olacaktır.

    CORBA standartları, nesne yönelimli geliştirmeyi destekleyen 500'den fazla şirketi bir araya getiren OMG grubu tarafından belirlenir. OMG'nin rolü, bu standartların belirli uygulamalarını sağlamak değil, nesne yönelimli geliştirme için standartlar oluşturmaktır. Bu standartlar OMG Web sitesinde ücretsiz olarak mevcuttur. Grup yalnızca CORBA standartlarıyla ilgilenmez, aynı zamanda UML modelleme dili de dahil olmak üzere geniş bir yelpazede başka standartlar da tanımlar.

    CORBA içindeki dağıtılmış uygulamaların temsili, şekil 2'de gösterilmiştir. 11.11. Bu, makaleden alınan nesne yönetimi mimarisinin basitleştirilmiş bir diyagramıdır. Dağıtılmış bir uygulamanın aşağıdaki bileşenlerden oluşması beklenir.
    1. Bu yazılım ürünü için oluşturulan ve geliştirilen uygulama nesneleri.

    2. Belirli görevler için OMG tarafından tanımlanan standart nesneler. Bu kitabı yazarken birçok kişi finans, sigorta, e-ticaret, sağlık ve daha fazlası için nesne standartlarının geliştirilmesine dahil oldu.

    3. Dizinler, güvenlik yönetimi vb. gibi temel dağıtılmış bilgi işlem hizmetlerini destekleyen temel CORBA hizmetleri.

    4. Kullanıcı arayüzleri, sistem yönetim araçları vb. gibi yatay CORBA araçları. Yatay araçlar, birçok uygulamada ortak olan anlamına gelir.


    Pirinç. 11.11. Dağıtılmış Standartlara Dayalı Bir Uygulamanın YapısıÇORBA
    CORBA standartları dört ana unsuru tanımlar.
    1. İçinde bir CORBA nesnesinin kapsüllendiği bir nesne modeli, IDL (Arayüz Tanımlama Dili) dilinde açık bir açıklama aracılığıyla durumu belirtir.

    2. Nesne hizmetlerine yönelik istekleri yöneten bir Nesne İstek Aracısı (ORB). ORB, hizmet sağlayan nesneleri tahsis eder, istekleri almaya hazırlar, isteği hizmete iletir ve sonuçları isteği yapan nesneye döndürür.

    3. Çekirdek hizmetler olan ve birçok dağıtılmış uygulamada ihtiyaç duyulan bir nesne hizmetleri koleksiyonu. Örnekler, dizin hizmetleri, işlem hizmetleri ve geçici nesne bakım hizmetleridir.

    4. Agrega ortak bileşenler temel hizmetlerin üzerine inşa edilmiştir. Hem belirli bir alanın özelliklerini yansıtan dikey hem de birçok alanda kullanılan yatay evrensel bileşenler olabilirler. yazılım uygulamaları. Bu bileşenler Bölüm 14'te tartışılmaktadır.
    CORBA modelinde, bir nesne, normal bir nesne gibi nitelikleri ve hizmetleri kapsar. Ancak, CORBA nesneleri, tanımlayan çeşitli arabirimlerin tanımını yine de içermelidir. küresel nitelikler ve nesne işlemleri. CORBA nesne arayüzleri standartta tanımlanmıştır. evrensel dil IDL arabirimlerinin açıklamaları. Bir nesne, diğer nesneler tarafından sağlanan hizmetleri talep ederse, bu hizmetlere IDL arabirimi aracılığıyla erişir. CORBA nesneleri, Birlikte Çalışabilir Nesne Referansı (IOR) adı verilen benzersiz bir tanımlayıcıya sahiptir. Bir varlık, başka bir varlık tarafından sağlanan bir hizmete istek gönderdiğinde, IOR tanımlayıcısı kullanılır.

    Nesne istek aracısı, hizmetleri ve arabirimlerini isteyen nesneleri bilir. Nesneler arasındaki etkileşimi düzenler. İşbirliği yapan nesnelerin, diğer nesnelerin yerleştirilmesi ve bunların uygulanması hakkında hiçbir şey bilmesi gerekmez. IDL arabirimi, nesneleri aracıdan ayırdığından, nesnelerin uygulaması, sistemin diğer bileşenlerini etkilemeden değiştirilebilir.

    Şek. Şekil 11-12, ol ve o2 nesnelerinin nesne istek aracısı aracılığıyla nasıl iletişim kurduğunu gösterir. Arayan (ol), hizmeti sağlayan nesnenin arayüzünü tanımlayan bir IDL saplaması ile ilişkilendirilir. Ol nesnesinin yapıcısı, bir hizmet talep ederken, nesne uygulamasının bir saplamasına çağrılar ekler. IDL, C++'ın bir uzantısıdır, dolayısıyla C++, C veya Java'da programlama yapıyorsanız saplamaya erişmek kolaydır. Bir nesnenin arayüz açıklamasının IDL'ye çevrilmesi, Ada veya COBOL gibi diğer diller için de mümkündür. Ancak bu durumlarda uygun araçsal desteğe ihtiyaç vardır.

    Pirinç. 11.12. Nesne İstek Aracısı Aracılığıyla Nesne İletişimi
    Hizmeti sağlayan nesne, arabirimi hizmet uygulamasına bağlayan bir IDL iskeleti ile ilişkilendirilir. Başka bir deyişle, bir arabirim aracılığıyla bir hizmet çağrıldığında, uygulamada hangi dilin kullanıldığına bakılmaksızın IDL çerçevesi çağrıyı hizmete çevirir. Bir yöntem veya prosedür tamamlandıktan sonra, iskelet, arayan tarafından kullanılabilir olması için sonuçları IDL'ye çevirir. Bir nesne aynı anda diğer nesnelere hizmet sağlıyorsa veya başka bir yerde sağlanan hizmetleri kullanıyorsa, hem bir IDL iskeletine hem de bir IDL saplamasına ihtiyaç duyar. İkincisi, kullanılan tüm nesneler için gereklidir.

    Bir nesne istek aracısı genellikle ayrı süreçler olarak değil, nesne uygulamasıyla ilişkili bir çerçeve (bkz. Bölüm 14) olarak uygulanır. Bu nedenle, dağıtılmış bir sistemde, nesneleri çalıştıran her bilgisayarın, tüm yerel nesne çağrılarını işleyen kendi nesne istek aracısına sahip olması gerekir. Ancak uzak bir varlık tarafından sağlanan bir hizmete talepte bulunulursa aracılar arası etkileşim gerekir.

    Bu durum Şekil l'de gösterilmektedir. 11.13. Bu örnekte, ol veya o2 nesnesi, o3 veya o4 nesneleri tarafından sağlanan hizmetlere istek gönderirse, bu nesnelerle ilişkili aracıların etkileşimi gereklidir. CORBA standartları, aracıların IDL arayüz açıklamalarına erişmesine izin veren aracılar arası iletişimi destekler ve aracı iletişimi için OMG'nin Genel ORB Arası Protokolü (GIOP) standardını sunar. Bu protokol, aracıların uzak nesne çağrıları yaparken ve bilgi aktarırken değiştirebilecekleri standart mesajları tanımlar. Düşük seviyeli İnternet protokolü TCP/IP ile birleştiğinde, bu protokol aracıların İnternet üzerinden iletişim kurmasını sağlar.

    CORBA'nın ilk çeşitleri 1980'lerde geliştirildi. Erken sürümler CORBA, dağıtılmış nesneleri desteklemekle ilgiliydi. Ancak zamanla standartlar gelişti, daha gelişmiş hale geldi. Dağıtılmış nesneleri iletmek için kullanılan mekanizmalar gibi, CORBA standartları da artık bazı standart hizmetler, nesne yönelimli uygulamaları desteklemek için kullanılabilir.


    Pirinç. 11.13. Nesne isteği aracıları arasındaki etkileşim
    CORBA hizmetleri, birçok dağıtık sistemde ihtiyaç duyulan araçlardır. Bu standartlar yaklaşık 15 ortak hizmeti (hizmeti) tanımlar. Bunlardan bazıları.
    1. Nesnelerin ağdaki diğer nesneleri bulmasına ve bunlara başvurmasına izin veren bir adlandırma hizmeti. Ad hizmeti, nesnelere adlar atayan bir dizin hizmetidir. Nesneler, gerektiğinde diğer nesnelerin IOR'larını aramak için bu hizmeti kullanabilir.

    2. Belirli olaylar meydana geldikten sonra nesnelerin diğer nesneleri kaydetmesine izin veren bir kayıt hizmeti. Bu hizmetle, nesneler belirli bir etkinliğe katılımlarına göre kaydedilebilir ve ne zaman verilen olay zaten olduysa, servis tarafından otomatik olarak kaydedilir.

    3. Temel işlemleri ve hata veya başarısızlık durumunda geri dönüşü destekleyen bir işlem hizmeti. Bu hizmet, bir güncelleme işlemi sırasında hata olması durumunda kurtarma sağlayan, hataya dayanıklı bir özelliktir (bkz. Bölüm 18). Bir nesneyi güncelleme eylemleri hatalara veya sistem çökmesine neden olursa, verilen nesne her zaman güncelleme başlamadan önceki duruma geri dönebilirsiniz.
    CORBA standartlarının, dağıtılmış uygulamaların oluşturulmasında kullanılabilecek çok çeşitli bileşenler için arayüz tanımları içermesi gerektiğine inanılmaktadır. Bu bileşenler dikey veya yatay olabilir. Dikey bileşenler, özellikle aşağıdakiler için tasarlanmıştır: özel uygulamalar. Daha önce belirtildiği gibi, bu bileşenler için tanımların geliştirilmesi, çeşitli faaliyet alanlarından birçok uzmanı içermiştir. Yatay bileşenler, UI bileşenleri gibi geneldir.

    Bu kitap yazıldığı sırada, bileşen özellikleri zaten geliştirilmişti ancak henüz üzerinde anlaşmaya varılmamıştı. Benim bakış açıma göre burası muhtemelen CORBA standartlarının en zayıf olduğu yerdir ve hem spesifikasyonların hem de bileşen uygulamalarının mevcut olduğu noktaya gelmek birkaç yıl alabilir.
    ANAHTAR KAVRAMLAR
    Tüm büyük sistemler değişen derecelerde dağıtılır, burada yazılım bileşenleri ağa entegre bir grup işlemci üzerinde yürütülür.

    Dağıtılmış sistemler şu özelliklere sahiptir: kaynak kullanımı, açıklık, eşzamanlılık, ölçeklenebilirlik, hata toleransı ve şeffaflık

    İstemci/sunucu sistemleri dağıtılır. Bu tür sistemler, sunucu tarafından istemci süreçlerine sağlanan bir dizi hizmet olarak modellenir.

    İstemci/sunucu sisteminde, kullanıcı arabirimi istemci tarafındadır ve veri yönetimi her zaman paylaşılan bir sunucuda sürdürülür. Uygulama işlevleri, bir istemci bilgisayarda veya bir sunucuda uygulanabilir.

    Dağıtılmış nesne mimarisinde, istemciler ve sunucular arasında bir ayrım yoktur. Nesneler, diğer nesnelerin arayabileceği temel hizmetleri sağlar. Aynı yaklaşım, istemci/sunucu sistemlerinin uygulanmasında kullanılabilir.

    Dağıtılmış nesne sistemleri, nesneler arasındaki etkileşimleri işlemek ve sisteme nesne eklemek veya sistemden nesne kaldırmak için tasarlanmış ara yazılımlara sahip olmalıdır. Kavramsal olarak, ara yazılım, nesnelerin bağlı olduğu bir yazılım veri yolu olarak düşünülebilir.

    CORBA standartları, dağıtılmış nesne mimarisini destekleyen ara yazılım için bir dizi standarttır. Bunlar, nesne modelini, nesne istek aracısını ve paylaşılan hizmet tanımlarını içerir. Şu anda CORBA standartlarının birkaç uygulaması var.
    Egzersizler
    11.1. Dağıtık sistemlerin neden her zaman merkezi sistemlerden daha ölçeklenebilir olduğunu açıklayın. Yazılım sistemi ölçeklenebilirliğinin olası sınırı nedir?

    11.2. İstemci/sunucu geliştirmede kalın ve ince istemci modelleri arasındaki temel fark nedir? Java'yı uygulama dili olarak kullanmanın neden bu modeller arasındaki farkları yumuşattığını açıklayın?

    11.3. Şekil 1'de gösterilen uygulama modeline göre. Şekil 11.4'te, 1980'lerin anabilgisayar sağlık sistemi bir istemci/sunucu sistemine dönüştürülürken ortaya çıkabilecek olası sorunları göz önünde bulundurun.

    11.4. İstemci/sunucu modeline dayalı dağıtılmış sistemler 1980'lerden beri geliştirilmiştir, ancak bu tür sistemler yalnızca yakın zamanda dağıtılmış nesnelere dayalı olarak uygulanmıştır. Bunun neden olduğuna dair üç neden söyleyin.

    11.5. Dağıtılmış nesneleri bir nesne istek aracısı ile birlikte kullanmanın ölçeklenebilir istemci/sunucu sistemlerini uygulamayı neden kolaylaştırdığını açıklayın. Cevabınızı bir örnekle açıklayınız.

    11.6. Farklı programlama dillerinde uygulanan nesneler arasındaki iletişimi desteklemek için IDL nasıl kullanılır? Nesneleri uygulamak için kullanılan diller arasında ciddi farklılıklar varsa, bu yaklaşımın neden performans sorunlarına neden olabileceğini açıklayın.

    11.7. Bir nesne istek aracısı hangi temel kolaylıkları sağlamalıdır?

    11.8. Yatay ve dikey bileşenler için CORBA standartlarının geliştirilmesinin rekabeti sınırladığı gösterilebilir. Halihazırda oluşturulmuş ve uyarlanmışlarsa, bu, küçük şirketlerin daha iyi bileşenler geliştirmesini engeller. Yazılım pazarındaki rekabeti sürdürmede veya sınırlamada standardizasyonun rolünü tartışın.

    (Http://se.math.spbu.ru sitesinden materyal)

    Giriiş.

    Şu anda, neredeyse tüm büyük yazılım sistemleri dağıtılmaktadır. dağıtımlı sistem- bilgi işlemenin bir bilgisayarda yoğunlaşmadığı, ancak birkaç bilgisayar arasında dağıtıldığı bir sistem. Genel olarak yazılım tasarımıyla pek çok ortak noktası olan dağıtılmış sistemler tasarlanırken, bazı özel özellikler yine de dikkate alınmalıdır.

    Dağıtılmış sistemlerin altı temel özelliği vardır.

    1. Kaynakları paylaşmak. Dağıtılmış sistemler, hem donanım (sabit sürücüler, yazıcılar) hem de yazılım (dosyalar, derleyiciler) kaynaklarının paylaşımına izin verir.
    2. açıklıkBu, yeni kaynaklar ekleyerek sistemi genişletme yeteneğidir.
    3. paralellik.Dağıtık sistemlerde, ağ üzerindeki farklı bilgisayarlarda aynı anda birden çok işlem çalışabilir. Bu işlemler çalışırken etkileşime girebilir.
    4. ölçeklenebilirlik . Altında ölçeklenebilirlik yeni özellikler ve yöntemler ekleme yeteneği anlaşılmaktadır.
    5. Hata toleransı. Birden çok bilgisayara sahip olmak, bilgilerin çoğaltılmasına ve bazı donanım ve yazılım hatalarına karşı dayanıklılığa olanak tanır. Dağıtılmış sistemler, bir hata durumunda kısmi işlevselliği koruyabilir. Sistemin tam bir arızası yalnızca ağ hatalarında meydana gelir.
    6. şeffaflıkKullanıcılara sistemdeki kaynaklara tam erişim verilir, aynı zamanda kaynakların sistemdeki dağılımına ilişkin bilgiler onlardan gizlenir.

    Dağıtılmış sistemlerin de bir takım dezavantajları vardır.

    1. karmaşıklık. Genel olarak dağıtık sistemlerin özelliklerini anlamak ve değerlendirmek çok daha zordur, tasarlamak, test etmek ve sürdürmek daha zordur. Ayrıca sistem performansı, bireysel işlemcilere değil, ağın hızına bağlıdır. Kaynakların yeniden tahsisi, sistemin hızını önemli ölçüde değiştirebilir.
    2. Emniyet. Genellikle sisteme birkaç farklı makineden erişilebilir, ağdaki mesajlar görüntülenebilir ve ele geçirilebilir. Bu nedenle, dağıtık bir sistemde güvenliği sağlamak çok daha zordur.
    3. kontrol edilebilirlik. Sistem, işletim sistemlerinin farklı sürümlerinin kurulabileceği farklı bilgisayar türlerinden oluşabilir. Bir makinedeki hatalar, öngörülemeyen şekillerde diğer makinelere yayılabilir.
    4. öngörülemezlik . Dağıtılmış sistemlerin bazı olaylara tepkisi tahmin edilemez ve sistemin tam yüküne, organizasyonuna ve ağ yüküne bağlıdır. Bu parametreler sürekli değişebileceğinden, talebe yanıt verme süresi, zamandan önemli ölçüde farklı olabilir.

    Bu eksikliklerden, dağıtık sistemler tasarlarken geliştiricilerin dikkate alması gereken bir takım sorunların ortaya çıktığını görebilirsiniz.

    1. kaynak tanımlama . Dağıtık sistemlerde kaynaklar farklı bilgisayarlarda yer almaktadır, bu nedenle kaynak adlandırma sistemi, kullanıcıların ihtiyaç duydukları kaynakları kolayca açıp başvurabilecekleri şekilde tasarlanmalıdır. Bir örnek, Web sayfalarının adlarını belirten URL (Tekdüzen Kaynak Bulucu) sistemidir.
    2. İletişim. İnternetin evrensel çalışabilirliği ve çoğu dağıtılmış sistem için İnternet üzerinde TCP/IP protokollerinin verimli bir şekilde uygulanması, bilgisayarlar arasında iletişim kurmanın en verimli yolunun bir örneğidir. Ancak, özel performans veya güvenilirliğin gerekli olduğu bazı durumlarda, özel araçlar kullanılabilir.
    3. Sistem hizmet kalitesi . Bu ayar performansı, sağlığı ve güvenilirliği yansıtır. Hizmet kalitesi bir dizi faktörden etkilenir: süreçlerin dağılımı, kaynaklar, donanım ve sistemin uyarlanabilirliği.
    4. Yazılım mimarisi . Yazılım mimarisi, sistem işlevlerinin sistem bileşenlerine dağıtımını ve bu bileşenlerin işlemcilere dağıtımını açıklar. Yüksek kalitede bir sistem hizmeti sağlamak söz konusu olduğunda, doğru mimariyi seçmek çok önemlidir.

    Dağıtılmış sistem geliştiricilerinin görevi, dağıtılmış bir sistemin tüm gerekli özelliklerini sağlayacak yazılım ve donanım tasarlamaktır. Bu da dağıtık sistemlerin çeşitli mimarilerinin avantaj ve dezavantajlarını bilmeyi gerektirir. Dağıtılmış sistemlerin üç tür mimarisi vardır.

    1. İstemci/sunucu mimarisi . Bu modelde sistem, sunucular tarafından istemcilere sağlanan bir dizi hizmet olarak düşünülebilir. Bu tür sistemlerde, sunucular ve istemciler birbirinden önemli ölçüde farklılık gösterir.
    2. Üç katmanlı mimari . Bu modelde sunucu, istemcilere hizmetleri doğrudan değil, bir iş mantığı sunucusu aracılığıyla sağlar.

    İlk iki model hakkında bir kereden fazla söylendi, hadi üçüncüsü üzerinde duralım.

    1. Dağıtılmış Nesne Mimarisi . Bu durumda, sunucular ve istemciler arasında hiçbir fark yoktur ve sistem, konumu gerçekten önemli olmayan, etkileşimde bulunan bir dizi nesne olarak düşünülebilir. Servis sağlayıcı ile kullanıcıları arasında hiçbir fark yoktur.

    Bu mimari günümüzde yaygın olarak kullanılmaktadır ve aynı zamanda web servis mimarileri. Bir web hizmeti, İnternet üzerinden erişilebilen ve biçimi sağlayıcıya (evrensel veri biçimi - XML ​​kullanıldığından beri) ve çalışma platformuna bağlı olmayan bazı hizmetler sağlayan bir uygulamadır. İÇİNDE verilen zaman Dağıtık kavramını destekleyen üç farklı teknoloji vardır. nesne sistemleri. Bunlar EJB, CORBA ve DCOM teknolojileridir.

    İlk olarak, genel olarak XML'in ne olduğu hakkında birkaç söz. XML, Web hizmetleri sağlamak için kullanılan genel bir veri biçimidir. Web hizmetleri açık standartlara ve protokollere dayalıdır: SOAP, UDDI ve WSDL.

    1. SABUN( W3C tarafından geliştirilen Basit Nesne Erişim Protokolü, Web servislerine yönelik talepler için bir format tanımlar. Bir Web hizmeti ile kullanıcısı arasındaki mesajlar, SOAP zarfları (SOAP zarfları, bazen XML zarfları olarak da adlandırılır) içinde paketlenir. Mesajın kendisi, bir eylem gerçekleştirme isteği veya bu eylemi gerçekleştirmenin sonucu olan bir yanıt içerebilir.
    2. WSDL (Web Hizmeti Açıklama Dili).Web hizmeti arabirimi, WSDL belgelerinde açıklanmıştır (ve WSDL, XML'in bir alt kümesidir). Bir hizmeti dağıtmadan önce, geliştirici açıklamasını WSDL'ye yazar, Web hizmeti adresini, desteklenen protokolleri, izin verilen işlemlerin listesini, istek ve yanıt biçimlerini belirtir.
    3. UDDI (Evrensel Açıklama, Keşif ve Entegrasyon) -İnternette Web servislerini aramak için protokol ( http://www.uddi.org/). Web hizmeti sağlayıcılarının hizmetleri kaydettiği ve geliştiricilerin buldukları bir iş kaydını temsil eder. gerekli hizmetler uygulamalarınıza dahil etmek için.

    Rapordan, Web hizmetlerinin en iyi ve tartışmasız çözüm olduğu ve tek sorunun geliştirme araçlarının seçimi olduğu görünebilir. Ancak öyle değil. Web hizmetlerine bir alternatif var, WWW'nin kurucusu Tim Berners-Lee'nin beş yıl önce bahsettiği Semantik Web.

    Web hizmetlerinin amacı uygulamalar arasındaki iletişimi kolaylaştırmaksa, Semantik Web çok daha fazlasını çözmek için tasarlanmıştır. zor problem- Web'de bulunabilen bilgilerin değerinin etkinliğini artırmak için meta veri mekanizmalarının kullanılması. Bunu, nesne yönelimli bir yaklaşım lehine belge yönelimli yaklaşımı terk ederek yapabilirsiniz.

    Kaynakça

    1. SomervilleI. Yazılım mühendisliği.
    2. Dranica A. Java ve NET. - "Bilgisayar", #516.
    3. İnternet kaynakları.


    yeniden yapılandırılabilir çoklu hat bilgi işlemine dayalı L-Net ortamları

    Kontrol sistemleri alanındaki acil görevlerden biri, dağıtılmış hataya dayanıklı kontrol sistemleri için yazılım geliştirmektir. Bugün bu alanda var olan çözümler tescillidir, sonuç olarak pahalıdır ve her zaman etkili değildir.

    Bu çözümler, yedekli taban, teknik ve yazılım kaynaklarının verimli kullanılmasını sağlamaz, bu da bu tür çözümlerin hem hata toleransını hem de ölçeklenebilirliğini olumsuz etkiler. Ağ mimarisi ihlal edilirse, hem bilgi işleme süreçlerinin hem de veri akışı iletiminin (hem kontrol hem de bilgi) dinamik olarak yeniden yapılandırılması olasılığı yoktur. Belirli mikrodenetleyicilerin kullanımı, DCS / SCADA kullanımı, sistemlerin geliştirilmesini ve desteklenmesini, işlevlerinin genişletilmesini zorlaştırır.

    Dağıtılmış Kontrol Sistemi Mimarisi

    Dağıtılmış bir kontrol sisteminin (DCS) genelleştirilmiş tipik mimarisi, hiyerarşik olarak bağlantılı üç seviye içerir: operatör seviyesi, kontrol seviyesi ve giriş-çıkış seviyesi (bkz. Şekil 1).

    Operatör seviyesinin ana görevi, tüm sistemin konfigürasyonunu ve kontrolünü sağlamak için bir insan-makine arayüzü (HMI) sağlamaktır. Kontrol seviyesi, sensörlerden veri almak ve işlemekten, verileri operatör seviyesine iletmekten ve aktüatörler için kontrol eylemleri oluşturmaktan sorumludur. Giriş-çıkış seviyesi, doğrudan kontrol nesnesine bağlı sensörleri ve aktüatörleri temsil eder.

    Yazılımın görevi, DCS'nin genelleştirilmiş mimarisi çerçevesinde, operatör seviyesinin işleyişini ve sistemin kontrol seviyesi ile bağlantısını sağlamaktır. Bu nedenle, yazılımın tasarlanmasında ve donanım ile etkileşim sorunlarının çözülmesinde temel seviye, operatör seviyesidir. Yazılım, dahili donanım mimarisinden mümkün olduğu kadar bağımsız olurken, sistemin mevcut donanım kaynaklarını en verimli şekilde kullanmalıdır.

    Donanım, bir sistemdeki düğümler arasında bilgi işlem kaynakları, bellek ve iletişim ortamı sağlar. Sistemin genel mimarisini tasarlarken, özel uygulaması sırasında ona bağlanacak olan G / Ç seviyesinin belirli düğümleri dikkate alınmaz, bu nedenle genelleştirilmiş mimaride operatör seviyesi ve kontrol seviyesi dikkate alınır. Donanım yaygın olmalı, modern standartları karşılamalı, mimariyi uygulamak için gerekli tüm özellik ve yeteneklere sahip olmalıdır.

    DCS için gereksinimler

    DCS gereklilikleri yalnızca bir bütün olarak sistem için değil, aynı zamanda donanım ve yazılım bileşenleri için ayrı ayrı da geçerlidir, çünkü bu bileşenler için bu gereksinimleri karşılamaya yönelik belirli yaklaşımlar temelde farklılık gösterebilir. DCS öncelikle hataya dayanıklı olmalıdır. Hata toleransını artırmanın en basit yöntemi, işlevsel birimlerin veya bunların kombinasyonunun fazlalığıdır (yinelenmesi). İkinci önemli özellik ölçeklenebilirliktir. Ölçeklenebilirlik, yazılımda özel algoritmaların uygulanmasına ve donanımın yeni düğümleri veya bileşenlerini değiştirme ve ekleme becerisine dayanır. Aynı zamanda sistem, işletimi, yeni düğümlerin veya modüllerin geliştirilmesi ve mimarisinin değiştirilmesi için basit kalmalıdır.

    DCS mimarilerine genel bakış

    DCS mimarilerinin incelenmesi için, piyasadaki en popüler mimarilerden biri olarak Siemens SIMATIC PCS 7 DCS ve QNX RTOS temelinde uygulanan DCS olarak RTS S3 seçildi.

    Siemens SIMATIC PCS 7

    Sistem mimarisi, genelleştirilmiş DCS mimarisinin tüm özelliklerine sahiptir. Windows işletim sistemi ve HMI sağlayan Siemens WinCC paketi ile x86 işlemci mimarisine dayalı bilgisayarlar, operatör istasyonları görevi görür. Veritabanları olan sunucular var. Operatör istasyonları, mühendislik istasyonları ve sunucular, Ethernet tabanlı bir yerel alan ağı ile birbirine bağlıdır. Operatör seviyesi, yedekli Endüstriyel Ethernet ağının yönetim seviyesine bağlıdır. Kontrol seviyesinde programlanabilir mantık denetleyicileri(PLC), işlevselliğin tekrarı nedeniyle fazlalık olasılığı ile. Harici sistemlere ve ağlara bağlanmak ve organize etmek mümkündür. uzaktan erişim sisteme.

    RTS S3

    Bu mimari benzer şekilde genelleştirilmiş DCS yapısının seviyelerinden oluşur. Operatör istasyonları, SIMATIC DCS ile aynı donanım platformuna dayalıdır ancak hem Windows hem de Linux işletim sistemleri altında çalıştırılabilir. Mühendislik istasyonları, operatör odaları ile birleştirilmiştir. Sistem birleşik bir uygulama geliştirme ortamı sağlar. Bir Ethernet ağı, TCP/IP protokol yığınını kullanarak taşıyıcı katmandaki düğümleri ve taşıyıcı katmanın kendisini kontrol düzlemine bağlar. Kontrol seviyesinde, kendi veritabanları ile QNX OS çalıştıran endüstriyel bilgisayarlar ve düğümün işlevselliğini kopyalayarak artıklık olasılığı vardır.

    Açıklanan sistemlerin dezavantajları

    Yukarıda anlatılan sistemlerde operatör seviyesi ve kontrol seviyesi için farklı bir donanım ve yazılım platformu kullanılmaktadır. Operatör katmanında yalnızca bir işlemci mimarisi kullanılabilir ve kontrol katmanını kurmak ve geliştirmek için özel bir mühendislik istasyonu gerekir. Bu DCS'ler, artık donanımın mantıksız bir kullanımı olan hata toleransını artırmanın bir yolu olarak, yalnızca yedek düğümün işlevselliğinin çoğaltılmasıyla donanım yedekliliği sunar.

    L-Net sisteminin özellikleri ve fonksiyonel özellikleri

    L-Net sistemini geliştirirken görev, aşağıdaki özelliklere sahip olacak bir kontrol sistemi oluşturmaktı:

    • Ana bilgisayar arızası veya ağ topolojisi kesintisi durumunda minimum kayıpla tam kurtarma ile dinamik yeniden yapılandırma.
    • Mevcut verimli ağ düğümleri arasında verimli görev dağılımı.
    • Veri aktarım akışlarının dinamik olarak yeniden yapılandırılmasıyla düğümler arasında iletişim kanallarının çoğaltılması.
    • İşletim kolaylığı ve sistemin ölçeklendirilmesi.
    • Sistemin, kontrol sistemleri ve gömülü sistemler oluşturmaya yönelik herhangi bir donanım platformunda taşınabilirliği ve çalışabilirliği.

    Yukarıda açıklanan özelliklere sahip bir sistem oluşturmak için, öncelikle kontrol sistemleri ve gömülü sistemler oluşturmaya yönelik bir işletim sistemi gereklidir. Mevcut işletim sistemlerinin analizi, en uygun işletim sistemiçok verimli kaynak ayırma ve ağ oluşturma yeteneklerine sahip bir QNX 6 (Neutrino) işletim sistemidir. geniş ağ oluşturma yetenekleri Qnet ağ protokolü tarafından sağlanır. İletişim kanallarının güvenilirliği ve dinamik yük dengeleme sorununu çözer, ancak bir bütün olarak sistemin hata toleransı sorununu çözmez. Sonuç olarak, dağıtılmış, yeniden yapılandırılabilir, çok hatlı bilgi işlem ortamına dayalı yenilikçi bir kontrol sistemi geliştirildi. Geliştirilen sistem, giriş-çıkış bloğu, anahtar bloğu olmak üzere üç mantıksal blok içeren eşler arası bir mimariye sahiptir. genel amaçlı ve bir yeniden yapılandırılabilir bilgi işlem ortamı (RCS) bloğu (bkz. Şekil 2).

    Bu mimarinin başlıca avantajları şunlardır:

    • Akran türü
    • ademi merkeziyetçilik
    • ölçeklenebilirlik
    • Mekansal dağılım

    Bu mimarinin fonksiyonel özellikleri:

    • Veri Ardışık Düzeni
    • Donanım yedekliliği
    • Yük dağılımı
    • Anında yeniden yapılandırma

    Mimarinin ilk seviyesinde, G/Ç düğümleri, G/Ç düğüm anahtarı, G/Ç arabirimi, sensörler ve aktüatörler içeren bir giriş-çıkış (G/Ç) bloğu vardır. Blok, yerel sensörlerden gelen verilere ve kontrol sisteminin diğer seviyelerinden alınan verilere dayalı olarak kontrol eylemleri oluşturmaya yönelik temel mekanizmalardan sorumludur. Atanan görevler, geçerli göreceli performanslarına göre veya operatör tarafından manuel olarak sağlıklı G/Ç düğümleri arasında dağıtılır. Sensörler ve aktüatörler, herhangi bir düğümün herhangi bir sensörü sorgulamasına veya herhangi bir aktüatör üzerinde bir etki oluşturmasına izin veren bloktaki tüm G/Ç düğümlerine bir veri yolu aracılığıyla bağlanır. G/Ç düğüm anahtarı, kontrol ve bilgi verileri elde etmek için tüm G/Ç düğümleri ile sistem mimarisinin diğer seviyeleri arasında veri alışverişi için iletişim sağlar. Uygun donanım yetenekleri ile düğümler doğrudan birbirleriyle ve sistemin diğer seviyelerinde düğümler ve anahtarlarla iletişim kurar, bu da ağdaki yanıt süresini azaltır. G / Ç bloğunun mevcut çalışma modundaki düğümler ile düğümlerin belirli bir iş yükü arasındaki doğrudan bağlantı, kontrol sisteminin harici bilgi işlem gücüne başvurmadan bu bloğun çalışması için gerekli boru hattı hesaplamalarının blokta düzenlenmesini sağlar ( RSS), arıza anında fazlalık G/Ç blok düğümleri için sağlanan ücretsiz kaynakların etkin bir şekilde kullanılmasını mümkün kılar.

    Mimarinin ikinci seviyesinde yer alan genel amaçlı switch bloğu, I/O blokları ile RCS ve harici sistemler arasındaki iletişim hatlarını düzenler. Her anahtar, tüm kontrol sistemindeki farklı düğümleri ve anahtarları birbirine bağlayabilir. İletişim hatlarının sayısı, bloklarda yer alan düğümlerin ve anahtarların donanım yetenekleri ile belirlenir. Qnet ağı, veri akışlarının dinamik dağılımına izin verdiğinden, bu bloğun ölçeklendirilmesi gerçekleştirilir. basit bağlantı yeni cihazlar ve konfigürasyon gerektirmez ve anahtarlardan biri arızalanırsa, diğer anahtar düğümler arasında benzer bir bağlantı sağlıyorsa veya doğrudan bağlıysa düğümler arasındaki veri iletimi kesintiye uğramaz. Aynı zamanda, arızalı bir anahtarı yedeklemek için gereken yeterli ağ bant genişliğine dikkat etmek gerekir.

    Mimarinin üçüncü seviyesinde bulunan yeniden yapılandırılabilir bilgisayar ağı (RCN) bloğu, bilgi işleme, karar verme, tanıma vb. Blok, tüm kontrol sistemini başlatmaktan sorumludur: anahtarların ve düğümlerin çalışabilirliğini kontrol etmek, ağ bütünlüğü, tüm sistemin ağ grafiklerini oluşturmak, G / Ç bloklarının çalışması için başlangıç ​​​​parametrelerini ayarlamak. Bu bloğun düğümleri, hem kendi verilerini hem de G / Ç bloklarından gelen verileri arşivlemeyi sağlar. Bu bloğun her düğümü, sistemin çalışmasını izlemek ve hem bu düğümün hem de sistemin tüm düğümlerinin çalışma programlarında ayarlamalar yapmak ve istek üzerine yeniden yapılandırma yapmak için tasarlanmış bir operatör makinesinin rolünü oynayabilir.

    Yük dağılımı

    L-Net sisteminin ana görevlerinden biri, hesaplama yükünün ağ düğümleri üzerindeki dağılımıdır. Bu sorunun çözümü, hesaplamalı boru hatlarının inşasına dayanmaktadır. Hesaplamalı bir ardışık düzen oluşturmak için, önceden bir görev grafiği oluşturulur - kaynaktan alıcıya veri akışları alışverişi için bir şema. Sensörler bir kaynak görevi görür ve aktüatörler bir alıcı görevi görür. Hesaplamalı ardışık düzenin kendisi, görev grafiğinin (bkz. Şekil 3) bilgisayar ağ grafiğine (bkz. Şekil 4) göre, sistemin bilgi işlem kaynakları ve mevcut durumu için görev gereksinimleri dikkate alınarak eşlenmesidir.

    Çözüm, alıcıya mevcut donanım, durumu ve mevcut veri kaynakları hakkında kapsamlı bilgi sağlayan, ağ grafikleri ve görevlerle çalışan bir hizmet kullanmaktır. Sonuç olarak, hesaplamaların sıralanması ve tümünün rasyonel kullanımı nedeniyle performans artar. sistem için kullanılabilir bilgi işlem kaynakları.

    hata toleransı

    Böyle bir sistemin işleyişindeki temel sorun, bu boru hattının herhangi bir düğümünün arızalanması veya aralarındaki veri aktarımının kesintiye uğraması durumunda bilgi işlem boru hatlarının performansının tamamen bozulmasıdır. Qnet protokolünün temel araçları, mimari tarafından sağlanan yedek hatlar nedeniyle kısmi kesinti durumunda düğümler arasındaki bağlantıların restorasyonunu sağlar. L-Net sistemi, bilgi işlem hattının dinamik olarak yeniden yapılandırılmasıyla, yani bilgisayar sistemi ana bilgisayarının tamamen arızalanması durumunda çalışabilirlik kurtarma sorununu çözer. bozuk bir bloğu değiştirmek için çalışan kaynakları kullanmak. Sistem, arızaya yanıt süresi, kurtarma süresi ve kullanılan donanım kaynakları açısından farklılık gösteren üç kurtarma (yeniden yapılandırma) senaryosu sağlar: arıza durumunda, pasif hazır olma durumuyla, aktif hazır olma durumuyla.

    • Başarısızlık üzerine yeniden yapılandırma– bir arıza tespit edildikten sonra, mevcut donanım aranır ve görev grafiğine dahil edilir.
    • Pasif hazırlık ile yeniden yapılandırma– yedekli donanım önceden belirlenir, görev grafiğinin üst kısmının düğümde uygulanmasını sağlayan bir süreç başlatılır, bağlantılar kurulur, ancak ana düğüm arızalanmadıkça işlem veri işlemez.
    • Aktif hazırlık yeniden yapılandırması– görev grafiğinin üst kısmı, veri işlemeyi paralel olarak gerçekleştiren ve sonucu ileten birkaç düğümde uygulanır.

    Sonuç olarak, sistem hem yazılım hem de donanım seviyelerinde hatalara karşı esnek hazırlık, ağın, bilgi işlem boru hattının ve düğümün uygulanmasından bağımsız olarak çalışmayı durdurmadan ve performans kaybı olmadan düğümlerin yapılandırmasını değiştirme yeteneği sağlar.

    Çözüm

    Gelişmiş L-Net sistemi, aksine mevcut analoglar tam yazılım uyumluluğu ile DCS düğümlerinin çok çeşitli donanım özelliklerinin kullanılmasını içerir. Düğümleri tek bir işletim sisteminin (QNX Neutrino) kontrolü altında çalıştırırken, bunları çeşitli arabirim ve çevre birimleriyle farklı işlemci mimarilerinde (x86, ARM, MIPS, vb.) oluşturmak mümkündür. Düğümlerin uygulanması, masaüstü PC'ler, endüstriyel PC'ler, giyilebilir PC'ler ve tek kartlı bilgisayarlar şeklinde mümkündür. Geliştirilen DCS'nin yazılım kompleksinin tüm bileşenleri, QNX OS ile düğümlerinden herhangi biri üzerinde çalıştırılabilirken, düğümlerin farklı bir işletim sistemi ile kullanılması mümkün olmaya devam ediyor. Bu yaklaşım, hem operatör seviyesindeki hem de kontrol seviyesindeki sorunları çözmek için her bir düğümün kullanılmasını mümkün kılar. Bu nedenle, genelleştirilmiş DCS mimarisinin doğasında katı bir seviye hiyerarşisi olmayan eşler arasında esnek bir etkileşim sistemi ve bu mimariyi temel mimari olarak kullanan sistemler vardır. Eşler arası ağ, sistemi dağıtma, çalıştırma, ölçeklendirme ve hata ayıklama sürecini basitleştirir.

    Geliştirilen sistemdeki yedekli donanımın bilgi işlem potansiyelini gerçekleştirmek için, Qnet ağ protokolü ve yazılımına dayalı dinamik yapılandırma ve yeniden yapılandırma algoritmaları önerilmiştir. ağlar L-Net. Dinamik yapılandırma algoritması, hesaplama yükünü tüm düğümler arasında dağıtmaya ve görevleri paralelleştirmeye ve düğümler arasındaki veri iletim kanalları üzerindeki yükü dinamik olarak dengelemeye dayanır. Sistem yeniden yapılandırma algoritması, mevcut donanıma, önceliklere ve sisteme atanan görevlere bağlı olarak arıza durumunda çalışabilirliği geri yüklemek için üç senaryonun varlığını varsayar: arıza durumunda, pasif hazır olma (kaynak tahsisi) ve aktif hazır olma (kaynak kullanımı) . Dinamik yapılandırma ve yeniden yapılandırma için algoritmalar, sistemde bulunan donanım rezervleri nedeniyle performansı ve güvenilirliği artırmanıza olanak tanır.

    Sistemin önemli bir avantajı, içinde kullanılan donanım ve yazılım teknolojilerinin maksimum şeffaflığıdır, bu da sistemin teknik bakımını ve bunun için yeni modüllerin geliştirilmesini ciddi şekilde basitleştirmeyi mümkün kılar.

    Çözüm

    Geliştirilen mimari çözümler, çok çeşitli donanım kullanma, dinamik yapılandırma algoritmaları uygulama ve sistem kaynaklarının rasyonel kullanımı olasılığı nedeniyle dağıtılmış kontrol sistemlerinin güvenilirlik, performans, maliyet, ölçeklenebilirlik ve basitlik gibi göstergelerini iyileştirmeyi mümkün kılar.

    1. http://kazanets.narod.ru/DCSIntro.htm .
    2. http://kazanets.narod.ru/PCS7Overview.htm .
    3. http://www.rts.ua/rus/news/678/0/409 .
    4. Zyl S. QNX Momentics: Uygulama Temelleri. - St.Petersburg: BHV-Petersburg, 2005.
    5. Krten R. QNX Neutrino'ya Giriş. Gerçek zamanlı uygulamalar geliştirmeye yönelik bir rehber. - St.Petersburg: BHV-Petersburg, 2011.

    anahtar kelimeler: dağıtılmış kontrol sistemi, Bilgi Desteği kontrol sistemleri, dağıtılmış yeniden yapılandırılabilir sistemler.

    Yeniden yapılandırılabilir çok hatlı bilgi işlem ortamı L-Net'e dayalı dağıtılmış bir kontrol sisteminin mimarisi

    Sergey Yu. Potomskiy, Ulusal Araştırma Üniversitesi "Ekonomi Yüksek Okulu" Yardımcı Doçenti.

    Nikita A. Poloyko, Ulusal Araştırma Üniversitesi "İktisat Yüksek Okulu" Beşinci sınıf öğrencisi. çalışma asistanı programcı. Eğitim alanı: "Teknik sistemlerde kontrol ve bilişim".

    soyut. Makale, yeniden yapılandırılabilir çok kanallı bilgi işlem ortamına dayalı dağıtılmış bir kontrol sistemine ayrılmıştır. Sistemin mimarisi verilmiştir. Ayrıca sistemin temel özellikleri ve fonksiyonel özellikleri de verilmiştir. Makale, işletim sisteminin seçimi için bir gerekçe sunmaktadır. Makalede mevcut benzer gelişmelere kıyasla sistemin temel avantajları gösterilmektedir.

    anahtar kelimeler: dağıtılmış kontrol sistemi, sistem yazılımı desteği, yeniden yapılandırılabilir dağıtılmış.


    Temas halinde

    Heterojen çoklu bilgisayar sistemleri

    Şu anda mevcut olan en fazla sayıda dağıtılmış sistem, heterojen çoklu bilgisayar sistemlerinin şemasına göre inşa edilmiştir. Bu, bu sistemin parçası olan bilgisayarların, örneğin işlemci türü, bellek boyutu ve G/Ç kanalı performansı açısından son derece çeşitli olabileceği anlamına gelir. Uygulamada, bu bilgisayarlardan bazılarının rolü, örneğin çok işlemcili veya homojen çoklu bilgisayarlar gibi yüksek performanslı paralel sistemler tarafından gerçekleştirilebilir.

    Bunları birbirine bağlayan ağ da oldukça heterojen olabilir.

    Heterojenliğe bir örnek, kullanarak büyük çoklu bilgisayar sistemlerinin oluşturulmasıdır. mevcut ağlar ve kanallar. Bu nedenle, örneğin, yüksek hızlı kanallarla birbirine bağlanan çeşitli fakültelerin yerel ağlarından oluşan üniversite dağıtım sistemlerinin varlığı alışılmadık bir şey değildir. İÇİNDE küresel sistemler farklı istasyonlar sırayla ticari taşıyıcılar tarafından sunulan ağ servisleri gibi genel ağlar tarafından birbirine bağlanabilir. kısa mesaj veya çerçeve rölesi.

    Önceki paragraflarda tartışılan sistemlerden farklı olarak, birçok büyük ölçekli heterojen çoklu bilgisayar sistemi küresel bir yaklaşıma ihtiyaç duyar. Bu, bir uygulamanın belirli performansın veya belirli hizmetlerin her zaman kendisine sunulacağını varsayamayacağı anlamına gelir.

    Heterojen sistemlerin doğasında bulunan ölçeklendirme sorunlarına dönersek ve bunların çoğunda bulunan küresel bir yaklaşıma duyulan ihtiyaç göz önüne alındığında, heterojen çoklu bilgisayar sistemleri için uygulama oluşturmanın özel yazılım gerektirdiğini not ediyoruz. Dağıtılmış sistemler bu sorunla ilgilenir. Uygulama geliştiricilerin kullandıkları donanım hakkında endişelenmelerine gerek kalmaması için, dağıtık sistemler uygulamaları donanımda olup bitenlerden koruyan bir kabuk sağlar (yani şeffaflık sağlarlar).

    En eski ve en temel dağıtılmış mimari, taraflardan birinin (istemci) diğer tarafa (sunucu) bir istek göndererek veri alışverişini başlattığı "istemci-sunucu"dur. Sunucu talebi işler ve gerekirse müşteriye bir yanıt gönderir (Şekil 2.7).

    Pirinç. 2.7. İstemci-sunucu etkileşim modeli

    İstemci-sunucu modeli içindeki etkileşim, istemci sunucunun isteğini işlemeyi tamamlamasını beklediğinde senkronize olabilir veya istemcinin sunucuya bir istek gönderdiği ve sunucunun yanıtını beklemeden yürütmeye devam ettiği zaman uyumsuz olabilir. İstemci ve sunucu modeli, çeşitli etkileşimleri açıklamak için temel olarak kullanılabilir. Dağıtılmış bir sistem oluşturan yazılım bileşenlerinin etkileşimini düşünün.



    Pirinç. 2.8. Uygulama mantıksal katmanları

    Biraz düşünün sıradan uygulama, modern kavramlara göre aşağıdaki mantıksal seviyelere bölünebilir (Şekil 2.8): kullanıcı arayüzü (UI), uygulama mantığı (LP) ve veri erişimi (DD), veritabanıyla çalışma (DB). Sistemin kullanıcısı, kullanıcı arayüzü aracılığıyla onunla etkileşime girer, veritabanı, açıklayan verileri depolar. konu alanı uygulama ve uygulama mantığı katmanı, konu alanıyla ilgili tüm algoritmaları uygular.

    Uygulamada, sistemin farklı kullanıcıları genellikle aynı verilere erişimle ilgilendiğinden, böyle bir sistemin işlevlerinin birkaç bilgisayar arasında en basit şekilde ayrılması, uygulamanın mantıksal düzeylerinin uygulamanın sorumlu bir sunucu kısmı arasında ayrılması olacaktır. birkaç bilgisayarda bulunan verilere ve istemci bölümlerine erişmek için kullanıcı arabirimini uygular. Uygulama mantığı, sunucuya, istemcilere atfedilebilir veya aralarında bölünebilir (Şekil 2.9).

    Pirinç. 2.9. İki katmanlı mimari

    Bu ilke üzerine inşa edilen uygulamaların mimarisine istemci-sunucu veya iki bağlantı. Uygulamada, bu tür sistemler genellikle dağıtılmış sistemler olarak sınıflandırılmaz, ancak resmi olarak dağıtılmış sistemlerin en basit temsilcileri olarak kabul edilebilirler.

    İstemci-sunucu mimarisinin geliştirilmesi, üç katmanlı mimari kullanıcı arabirimi, uygulama mantığı ve veri erişiminin, sistemin bağımsız bilgisayarlarda çalışabilen bağımsız bileşenlerine ayrıldığı (Şekil 2.10).

    Pirinç. 2.10. Üç katmanlı mimari

    Bu tür sistemlerde kullanıcının talebi, sistemin istemci kısmı, uygulama mantığı sunucusu ve veritabanı sunucusu tarafından sırayla işlenir. Bununla birlikte, dağıtılmış bir sistem genellikle üç katmanlı bir sistemden daha karmaşık bir mimariye sahip sistemler olarak anlaşılır.

    Pirinç. 2.11. Dağıtılmış perakende sistemi

    Kurumsal otomasyon uygulamaları ile ilgili olarak, dağıtık sistemler genellikle, her biri ayrı bir bilgisayarda çalıştırılabilen birkaç sistem bileşeni arasında dağıtılan uygulama mantığına sahip sistemlerdir. Örneğin, perakende sistemi uygulama mantığının uygulanması, mal tedarikçileri, elektronik ödeme sistemleri veya tüketici kredisi sağlayan bankalar gibi üçüncü tarafların uygulama mantığına yönelik istekleri kullanmalıdır (Şekil 2.11).

    Dağıtılmış bir sistemin başka bir örneği ağlardır. istemciler arasında doğrudan veri alışverişi (eşler arası ağlar). Önceki örnek bir "ağaç" mimarisine sahipse, doğrudan değişim ağları daha karmaşık bir şekilde düzenlenir, Şekil 2.12. Bu tür sistemler şu anda milyonlarca bilgisayarı birbirine bağlayan muhtemelen var olan en büyük dağıtılmış sistemlerden biridir.

    Pirinç. 2.12. İstemciler arasında doğrudan veri alışverişi sistemi

    Tanınmış bilgisayar bilimcisi E. Tanenbaum'a göre, dağıtılmış bir sistemin genel kabul görmüş ve aynı zamanda kesin bir tanımı yoktur. Bazı fikirler, dağıtılanın böyle olduğunu iddia ediyor bilgi işlem sistemi Kullanıcıların daha önce varlığından bile şüphelenmedikleri bir bilgisayar arızasının tüm işlerinin durmasına neden olduğu. Dağıtılmış bilgi işlem sistemlerinin önemli bir kısmı maalesef bu tanımı karşılar, ancak resmi olarak yalnızca benzersiz bir güvenlik açığı noktasına sahip sistemleri ifade eder ( tek başarısızlık noktası).

    Çoğu zaman, dağıtık bir sistem tanımlanırken, işlevlerinin birkaç bilgisayar arasında bölünmesi ön plandadır. Bu yaklaşımla herhangi bir bilgi işlem sistemi veri işlemenin iki veya daha fazla bilgisayar arasında paylaşıldığı yer. E. Tanenbaum'un tanımına dayanarak, biraz daha dar dağıtılmış bir sistem, bazı yazılımların kullanıcısı açısından tek bir bütün gibi görünen, iletişim kanallarıyla birbirine bağlanan bir dizi bağımsız bilgisayar olarak tanımlanabilir.

    Dağıtılmış bir sistemi tanımlamaya yönelik bu yaklaşımın sakıncaları vardır. Örneğin, böyle dağıtılmış bir sistemde kullanılan her şey yazılım tek bir bilgisayarda çalışabilir, ancak yukarıdaki tanım açısından böyle bir sistem artık dağıtılmayacaktır. Bu nedenle, dağıtılmış bir sistem kavramı muhtemelen böyle bir sistemi oluşturan yazılımın analizine dayanmalıdır.

    İki varlığın etkileşimini tanımlamanın temeli olarak, genel model taraflardan birinin (istemci) diğer tarafa (sunucu) bir istek göndererek veri alışverişini başlattığı istemci-sunucu etkileşimi. Sunucu isteği işler ve gerekirse istemciye bir yanıt gönderir (Şekil 1.1).


    Pirinç. 1.1.

    İstemci-sunucu modeli içindeki etkileşim, istemci sunucunun isteğini işlemeyi tamamlamasını beklediğinde senkronize olabilir veya istemcinin sunucuya bir istek gönderdiği ve sunucunun yanıtını beklemeden yürütmeye devam ettiği zaman uyumsuz olabilir. İstemci ve sunucu modeli, çeşitli etkileşimleri açıklamak için temel olarak kullanılabilir. Bu ders için, dağıtık bir sistemi oluşturan yazılım bileşenlerinin etkileşimi önemlidir.


    Pirinç. 1.2.

    Modern fikirlere göre aşağıdaki mantıksal seviyelere bölünebilen bazı tipik uygulamaları düşünün (Şekil 1.2): Kullanıcı arayüzü(IP), uygulama mantığı (LP) ve veri tabanı (DB) ile çalışan veri erişimi (DD). Sistemin kullanıcısı, kullanıcı arayüzü aracılığıyla onunla etkileşime girer, veritabanı, uygulamanın konu alanını açıklayan verileri depolar ve uygulama mantığı katmanı, ilgili tüm algoritmaları uygular. konu alanı.

    Uygulamada, sistemin farklı kullanıcıları genellikle aynı verilere erişimle ilgilendiğinden, böyle bir sistemin işlevlerinin birkaç bilgisayar arasında en basit şekilde ayrılması, uygulamanın mantıksal düzeylerinin uygulamanın sorumlu bir sunucu kısmı arasında ayrılması olacaktır. birkaç bilgisayarda bulunan verilere ve istemci bölümlerine erişmek için kullanıcı arabirimini uygular. Uygulama mantığı, sunucuya, istemcilere atfedilebilir veya aralarında bölünebilir (Şekil 1.3).


    Pirinç. 1.3.

    Bu prensibe göre oluşturulan uygulamaların mimarisi, istemci-sunucu veya iki katmanlı olarak adlandırılır. Uygulamada, bu tür sistemler genellikle dağıtılmış sistemler olarak sınıflandırılmaz, ancak resmi olarak dağıtılmış sistemlerin en basit temsilcileri olarak kabul edilebilirler.

    İstemci-sunucu mimarisinin gelişimi, kullanıcı arayüzünün, uygulama mantığının ve veri erişiminin bağımsız bilgisayarlarda çalışabilen sistemin bağımsız bileşenlerine ayrıldığı üç katmanlı bir mimaridir (Şekil 1.4).


    Pirinç. 1.4.

    Bu tür sistemlerde kullanıcının talebi, sistemin istemci kısmı, uygulama mantığı sunucusu ve veritabanı sunucusu tarafından sırayla işlenir. Bununla birlikte, dağıtılmış bir sistem genellikle üç katmanlı bir sistemden daha karmaşık bir mimariye sahip sistemler olarak anlaşılır.