Skip to content

Changelog

ismail başaran edited this page Dec 12, 2016 · 1 revision

Debian Paket Yapısına Uygun Çekirdek ve Eklenti Paketleri

Ahenk ve Ahenk için geliştirilen eklentiler Debian sistemler için paketlenebilir, kurulabilir ve kullanılabilir projeler olarak tasarlanmıştır. Tek komutla deb uzantılı paketler oluşturulabilir ve tek bir komutla kurulabilir. Paket bazında bağımlılıklar, kurulum öncesi/sonrası betikleri, kaldırma öncesi/sonrası betikleri düzenlenebilir. Eklenti paketleri Ahenk'i bir bağımlılık olarak görür.

Servis

Ahenk kurulduğundan itibaren sistem üzerinde servis olarak çalışır ve yalnızca sistem yöneticisi tarafından müdahale edebilir.

Sürekli Bağlı Kalma

Varsayılan iletişim protokolü olarak kullanılan XMPP'nin client'ını barındıran Ahenk, XMPP server iletişim kesintisi gerçekleşmesi durumunda tekrar bağlantı kurar. Bağlantının kopması Ahenk servisi üzerinde duraksamaya neden olmaz, Ahenk servisini durdurmaz.

Çekirdek ve Eklentilerin Bağımsızlaştırılması ve Yalıtılması

Ahenk, eklentiler için bir servis altyapısı oluşturur. Bu alt yapı, eklentilerin birbirinden bağımsız olarak çalışmasını sağlar ve temel servislerin bu alt yapı aracılığıyla eklentiler tarafından tüketilmesine olanak sağlar. Ahenk üzerine yükelenen her eklentinin farklı thread kuyrukları olduğundan bir eklenti farklı bir eklentiyi ya da Ahenk servisini etkileyemez.

Bileşen ve Teknolojiden Bağımsız Ahenk Servisleri

Ahenk ayağa kalkarken kendisine ve eklentilere altlık oluşturabilecek ve tüketilebilecek servisler oluşturur. Bu servisler bir birinden bağımsızdır ve modülerdir; Ahenk ayakta iken yeniden yüklenebilirler. Servislerden beklenen aksiyonlar spesifiktir, işin nasıl yapıldığı ile ilgilenilmez. Arka planda çalışan teknolojinin değişmesi Ahenk'in çalışma yöntemini etkilemez; sadece o servisin mekaniklerini bağlar.

Komut Desteği

Ahenk temel betiği çeşitli komutları harici olarak destekler. Komutun tipine göre Ahenk çalışırken ya da kapalı iken çalışabilir. Örneğin Ahenk çalışır vaziyette iken eklenti ekleme-kaldırma, Ahenk servisi üzerinden mesaj gönderme, ...; Ahenk açık ya da kapalı iken kayıtları sıfırlama gibi

Eksik Eklenti İsteme

Çalıştırılması gereken görev ya da politikanın gerektirdiği eklentinin Ahenk'te bulunmadığı durumlarda Lider'den eksik eklenti istenir, kurulur ve Ahenk'e yüklenerek bekletilen görev/politika çalıştırılır. Eğer eklenti kurulamazsa, ilgili eklenti kurulana kadar görev/politika muhafaza edilir.

Dinamik Eklenti Yükleme-Yenileme-Kaldırma

Ahenk çalışmaya devam ederken eklentileri yükleyebilir, kaldırabilir veya yeniden yükleyebilir. Bu hem manuel hem de otomatik şekilde gerçekleşebilir. Manuel olarak Ahenk komut desteği parametreler ile belirtilen eklentiler yönetilebilir. Otomatik olarak kurulan Ahenk eklentisi tanımlanıp, dosya yapısı onaylandıktan sonra sisteme yüklenir.

Bağımsız Yapılandırma Dosyası

/etc/ahenk/ dizini altında yapılandırma dosyası bulunur. Bu dosyada bağlantı bilgileri, öntanımlı dizinler ve zaman sayaçları gibi temel işlevlere ilişkin parametreler bulunur. Bu yapılandırma dosyasında hiç bir eklentiye ait bilgi bulunmaz, sadece Ahenk çekirdeğine ilişkin değerler bulunur.

Eklenti Geliştirmeyi Kolaylaştıran Servisler

Ahenk çekirdeği, temel işlevlerin gerçekleştirimini sunduğu Util servisini ve sistem bilgilerinin sağladığı System servislerini eklentilere sunar. Böylece eklenti geliştirilme süresinin kısalmasına yardımcı olur. Eklenti geliştirme yönergeleri ve ipuçları belgeleri hazırlanmıştır.

Otomatik Kayıt

Ahenk yeni kurulduğunda temel sistem bilgileri ile birlikte Lidere kayıt olma isteğini otomatik olarak göndererek Lider'e kendini tanıtır. Lider'den gelen olumlu cevap ile birlikte Lider Ahenk ekosistemine dahil olur. Bu kayıt yöntemi sırasında alınabilecek bilgiler Lider kayıt protokolüne göre genişletilebilir.

Farklı Mimari ve Sistem Bileşenlerine Uyumluluk

Ahenk işlevleri olabildiğince python3+ yetenekleri kullanılarak geliştirilmiştir. Eklentilerin farklı işletim sistemi, bileşen veya mimarilerde farklı yöntemlerle işlemleri gerçekleştirme ihtiyacı olabilir. Bu durum ile ilgili bilgiyi Ahenk, System servisi üzerinden eklentiye sunar. Eklenti geliştirme belgelerinde bu gibi durumlardaki en uygun eklenti yapısına ilişkin öneriler belirtilmiştir. Ayrıca System servisinin yetersiz kalabileceği durumlar için (yaygın kullanılmayan bilşenler, populer olmayan sürümler, vs...) Ahenk yapılandırma dosyası üzerinden mimari/bileşen tipi tanımlayıcı parametreler sağlanır.

Çevrimdışı Çalışma

Politika çalıştırma yeteneği Ahenk, Lider ile iletişime geçemediği durumlarda en son gönderilmiş politika bilgileri kullanılarak çalıştırılır. Bu durum Lider ile iletişim sağlanıp güncel politika bilgileri alınana kadar devam eder.

Zamanlı Çalıştırma

Ahenk, zamanlı çalıştırmayı destekler; gönderilen görevin ileri çalıştırma zamanı varsa, belirtilen zaman gelince görev çalıştırılır.

Güvenli Bağlantı Desteği

Varsayılan olarak kullanılan XMPP bağlantısı, XMPP server desteklediği sürece, SSL/TLS ile kullanılır. Bu durum için yapılandırma dosyası kullanılır.

Sistem Güncesi

Ahenk ve Eklentiler bazında gerçekleştirilen olayları, erişilen mesajları, sistem harekerlerini vs... çoklu kademeli olarak kayıt altına alır. Bu kayıtlar Ahenk servisi kapatıldığında kaybolmaz.

Hareket Bildirimleri

Ahenk kullanıcı giriş çıkış hareketlerini, sistemin açılış/kapanışını algılar ve ilgili servislerine bunları bildirir. Lidere bu harekerlerle ilgili mesaj atar.