ACE ( Adaptive İletişim Ortamı ) bir olan nesne yönelimli programlama ortamı açık kaynak ve C ++ ile yazılmış. ACE, iletişim yazılımının geliştirilmesini basitleştiren ve böylece esnekliği, verimliliği, birlikte çalışabilirliği , güvenilirliği ve taşınabilirliği artıran birkaç bileşen içerir . ACE'nin bileşenleri, süreçler arası iletişim (IPC), bellek yönetimi, senkronizasyon , görev yönetimi, olay yönetimi, dağıtılmış hizmetlerin yapılandırılması vb. Gibi çeşitli hizmetler sağlar.
ACE, üç temel katmanda tasarlanmıştır:
İşletim sistemi uyarlama katmanı (OSAL)
OSAL, işletim sisteminin C kitaplığı ( API ) ile ACE'nin geri kalanı arasında yer alan ince bir C ++ kodu katmanıdır . Bu katman bizi geliştirme platformuna (OS) bağımlı olmaktan kurtarır, bu da ACE ile yazılan kodun nispeten bağımsız, dolayısıyla taşınabilir olduğu anlamına gelir. Açıklıyor ACE çerçeve gibi birçok işletim sistemleri üzerinde çalışır VxWorks , Koro LynxOS , Rtems , Win32 , Solaris , Debian , RedHat , ...
Bu nedenle OSAL , OS API'nin işlevlerini kapsamaktadır, yani bu katman ACE'nin taşındığı tüm platformlarda ortak bir sistem işlevleri tabanı sağlar.
C ++ sarıcı katmanı
Bu katman, nesne yönelimli arayüzlerde işlevleri ve verileri kapsülleyen C ++ sınıflarını içerir. Bu katman ACE'nin en büyük kısmıdır ve toplam kodun% 50'sini içerir.
C ++ sarmalayıcılar, OSAL ile aynı hizmetleri sağlar, ancak işlevler sınıflar ve nesneler halinde düzenlenir, bu da ACE'nin kullanımını kolaylaştırır, ayrıca C ++ kullanımı uygulamayı sağlam kılar. Çünkü C ++ sarmalayıcılar güçlü bir şekilde yazılır, bu nedenle derleyici bir tür ihlalini çalışma zamanında değil derleme zamanında algılayabilir (çalışma zamanında yalnızca tür ihlalinin algılandığı soketler gibi OS C API'lerinin aksine). Uygulamalar miras, toplama ve / veya örnekleme yoluyla sarmalayıcı sınıflarını kullanır.
Çerçeve katmanı, ACE'nin en üst düzey katmanıdır. Bu katman, iletişim yazılımı alanına özgü birkaç tasarım modeline dayanmaktadır.
Kalıplar, belirli bağlamlarda ortaya çıkan yaygın yazılım sorunlarına çözümler sağlar, tutarlılık, sağlamlık, yeniden kullanılabilirlik gibi özellikleri sağlamak için kanıtlanmış ve tanınmış programlama yollarıdır.
Çerçeveler, tasarım modellerinin somut uygulamaları olarak görülebilen ve bir alana, yani bir çerçeveye bir yapı ve belirli işlevler sağlamayı amaçlayan "yarı eksiksiz" uygulamalardır. bir uygulama ailesi için yeniden kullanılabilir mimari.
Reaktör : Farklı kaynaklardan (Zamanlayıcılar, G / Ç, sinyaller) eşzamanlı olay işleme arayüzü. Bu nedenle, olayların eşzamanlı olarak algılanmasını, çoklama çözülmesini ve olayların yayınlanmasını gerçekleştirir.
Alıcı - Bağlayıcı : Uygulamaların, sağladıkları hizmetlerden bağımsız olarak bağlantı topolojilerinin (UNIX Soketi, UDP, TCP vb.) Temel özelliklerini yapılandırmasına izin vererek bir istemci (bağlayıcı) ile bir sunucu (Alıcı) arasında bir bağlantı kurar.
Görev : Mesaj belleğini ve senkronizasyonu yönetmek için bir strateji sağlayan eşzamanlı bir model oluşturur.
Proactor : Eşzamansız G / Ç olay işleme arabirimi. Bu nedenle, eşzamansız G / Ç işlemlerinin tamamlanmasıyla tetiklenen olayların verimli bir şekilde çözülmesini ve gönderilmesini sağlar.
Akışlar : Veri akışlarıyla ilgilenen sistemler için bir çerçeve sağlar. Bu nedenle, katmanlı hizmetler oluşturur ve mesajları iletir (bu katmanlar arasında).
Servis Yapılandırıcı : Uygulama yapılandırma arayüzü (çalışma zamanında). Hizmetlerin davranışını, bu hizmetlerin uygulamalarının uygulama süreçlerinde yapılandırıldığı zamandan ayırır.