Orleans Fayda -ları
Başlıca avantajları Orleans şunlardır:
- Uzman olmayan programcılar için bile geliştirici üretkenliği.
- Programcının özel bir çabası olmadan saydam ölçeklenebilirlik varsayılan olarak .
Geliştirici üretkenliği
Programlama Orleans modeli aşağıdaki temel soyutlamaları, garantileri ve sistem hizmetlerini sağlayarak hem uzman hem de uzman olmayan programcıların üretkenliğini artırır.
Tanıdık nesne odaklı programlama (OOP) paradigması
Tanecikler, zaman uyumsuz yöntemlerle bildirilen .NET tanecik arabirimleri uygulayan .NET sınıflarıdır. Grains, programcıya yöntemleri doğrudan çağrılabilen uzak nesneler olarak görünür. Bu, programcıya yöntem çağrılarını iletilere dönüştürerek, bunları doğru uç noktalara yönlendirerek, hedef dilimin yöntemlerini çağırarak ve hatalarla ve köşe olaylarıyla şeffaf bir şekilde ilgilenerek tanıdık OOP paradigmasını sağlar.
Taneciklerin tek iş parçacıklı yürütülmesi
Çalışma zamanı, bir dilimin aynı anda birden fazla iş parçacığında hiçbir zaman yürütülmeyeceğini garanti eder. Diğer tahıllardan gelen yalıtımla birlikte, programcı hiçbir zaman dilim düzeyinde eşzamanlılık ile karşı karşıya kalmaz ve paylaşılan verilere erişimi denetlemek için hiçbir zaman kilitleri veya diğer eşitleme mekanizmalarını kullanmasına gerek kalmaz. Bu özellik tek başına dağıtılmış uygulamaların geliştirilmesini uzman olmayan programcılar için uygulanabilir hale getirir.
Saydam etkinleştirme
Çalışma zamanı yalnızca işlemesi için bir ileti olduğunda bir dilimi etkinleştirir. Bu, uygulama kodu tarafından görülebilen ve denetlenen bir taneye başvuru oluşturma ve bellekteki dilimin uygulama için saydam olan fiziksel olarak etkinleştirilmesi gibi bir ayrımdır. Bu, bir dilimin "sayfa dışarı" (devre dışı bırakma) veya "sayfa içinde" (etkinleştirme) ne zaman karar vermesine karar veren sanal belleğe benzer; Uygulamanın, belirli bir zamanda fiziksel bellekte olup olmadıklarına bakılmaksızın mantıksal olarak oluşturulan taneciklerin tam "bellek alanına" kesintisiz erişimi vardır.
Saydam etkinleştirme, donanım kaynakları havuzunda tanelerin yerleştirilmesi ve geçişi yoluyla dinamik, uyarlamalı yük dengeleme sağlar. Bu özellik, aktör ömrünün uygulama tarafından yönetildiği geleneksel aktör modelinde önemli bir gelişmedir.
Konum saydamlığı
Programcının tahılın yöntemlerini çağırmak veya diğer bileşenlere geçirmek için kullandığı bir taneli başvuru (proxy nesnesi), yalnızca tahılın mantıksal kimliğini içerir. Tahılın mantıksal kimliğinin fiziksel konumuna çevirisi ve iletilerin karşılık gelen yönlendirmesi çalışma zamanı tarafından Orleans saydam bir şekilde gerçekleştirilir.
Uygulama kodu, fiziksel konumlarından habersiz kalırken, hatalardan veya kaynak yönetiminden dolayı zaman içinde değişebilecek ya da bir tanecik çağrıldığında devre dışı bırakıldığı için taneciklerle iletişim kurar.
Kalıcı bir depoyla saydam tümleştirme
Orleans , bir tahılın bellek içi durumunun kalıcı bir depoya bildirim temelli olarak eşleştirilmesini sağlar. Güncelleştirmeleri eşitler, ancak kalıcı durum başarıyla güncelleştirildikten sonra çağıranların sonuçları almasını saydam bir şekilde garanti eder. Kullanılabilir mevcut kalıcı depolama sağlayıcıları kümesini genişletmek ve/veya özelleştirmek kolaydır.
Hataların otomatik yayılması
Çalışma zamanı, zaman uyumsuz ve dağıtılmış try/catch semantiğiyle çağrı zincirinde işlenmeyen hataları otomatik olarak yayılır. Sonuç olarak, hatalar bir uygulama içinde kaybolmaz. Bu, programcının her düzeyde hataları el ile yayma zahmetli çalışması olmadan hata işleme mantığını uygun yerlere yerleştirmesini sağlar.
Saydam ölçeklenebilirlik varsayılan olarak
Programlama Orleans modeli, programcıya bir uygulamayı veya hizmeti çeşitli büyüklükteki siparişler aracılığıyla ölçeklendirmede başarılı olma olasılığı olan bir yol gösterecek şekilde tasarlanmıştır. Bu, kanıtlanmış en iyi yöntemler ve desenler birleştirilerek ve alt düzey sistem işlevselliğinin verimli bir şekilde uygulanmasıyla gerçekleştirilir.
Ölçeklenebilirlik ve performans sağlayan bazı önemli faktörler şunlardır:
Uygulama durumunun örtük ayrıntılı bölümlenmesi
Doğrudan adreslenebilir varlıklar olarak tanecikleri kullanarak programcı, uygulamalarının genel durumunu örtük olarak ayırır. Programlama modeli bir tanenin Orleans ne kadar büyük veya küçük olması gerektiğini belirlemese de çoğu durumda, her biri kullanıcının hesabı veya satın alma siparişi gibi uygulamanın doğal bir varlığını temsil eden nispeten çok sayıda tane (milyonlarca veya daha fazla) olması mantıklıdır.
Tahılların ayrı ayrı ele alınıp fiziksel konumlarının çalışma zamanı tarafından soyutlanmasıyla birlikte, Orleans uygulama geliştiricisinin hiçbir düşüncesi olmadan yükü dengeleme ve sık erişimli noktalarla saydam ve genel olarak ilgilenme konusunda muazzam bir esnekliğe sahiptir.
Uyarlamalı kaynak yönetimi
Tahıllar, etkileşime geçen diğer tanelerin yerelliğini varsaymaz. Bu konum saydamlığı nedeniyle çalışma zamanı kullanılabilir donanım kaynaklarının ayırmasını dinamik olarak yönetebilir ve ayarlayabilir. Çalışma zamanı bunu, gelen isteklerde başarısız olmadan yük ve iletişim desenlerine tepki olarak işlem kümesi genelindeki taneciklerin yerleştirilmesi ve geçişi hakkında ayrıntılı kararlar vererek yapar. Çalışma zamanı, belirli bir dilimin birden çok çoğaltmasını oluşturarak uygulama kodunda herhangi bir değişiklik yapmadan tahılın aktarım hızını artırabilir.
Çoğullanmış iletişim
içindeki Orleans taneciklerin mantıksal uç noktaları vardır ve aralarında mesajlaşma, sabit bir tümüne fiziksel bağlantı kümesi (TCP yuvaları) arasında çoğullanır. Bu, çalışma zamanının tahıl başına düşük işletim sistemi yüküne sahip milyonlarca adreslenebilir varlığı barındırmasına olanak tanır. Ayrıca, bir dilimin etkinleştirilmesi ve devre dışı bırakılması, TCP bağlantı noktası veya HTTP URL'si gibi fiziksel bir uç noktayı kaydetme/kaydını kaldırmanın, hatta TCP bağlantısını kapatmanın maliyetine neden olmaz.
Verimli zamanlama
Çalışma zamanı, performans için yüksek oranda iyileştirilmiş .NET İş Parçacığı Havuzu kullanarak çok sayıda tek iş parçacıklı dilimin yürütülmesini zamanlar. Engelleyici olmayan, devamlılık tabanlı stilde (programlama modelinin Orleans bir gereksinimi) yazılmış tahıl kodu ile uygulama kodu, çekişme olmadan çok verimli bir "işbirliği" çok iş parçacıklı şekilde çalışır. Bu, sistemin yüksek aktarım hızına ulaşmasını ve çok yüksek CPU kullanımında (%90+'a kadar) yüksek kararlılıkla çalışmasını sağlar.
Sistemdeki tane sayısındaki büyümenin ve yükteki artışın ek iş parçacıklarına veya diğer işletim sistemi temel öğelerinin artmasına yol açmaması, tek tek düğümlerin ve sistemin tamamının ölçeklenebilirliğine yardımcı olur.
Açık zaman uyumsuz
Programlama Orleans modeli, dağıtılmış bir uygulamanın zaman uyumsuz doğasını açık hale getirir ve programcıları engelleyici olmayan zaman uyumsuz kod yazmaya yönlendirir. Zaman uyumsuz mesajlaşma ve verimli zamanlama ile birlikte bu, çok iş parçacığı kullanımı olmadan büyük ölçüde dağıtılmış paralellik ve genel aktarım hızı sağlar.