mirror of
https://github.com/Pardus-LiderAhenk/lider-ahenk-docs.git
synced 2024-12-23 07:03:34 +03:00
added lider console docs
This commit is contained in:
parent
6d4e5b3c44
commit
45207d016e
2 changed files with 112 additions and 15 deletions
|
@ -24,12 +24,10 @@ Ahenk sistemleri değişik özellikteki sistemlerde sistem karmaşasını artır
|
||||||
|
|
||||||
Ahenk çekirdeği ve eklentiler sistemlere ayrı ayrı paketler olarak kurulabilmektedir. Ahenk, kendisine iletilen bir göreve veya politikaya ilişkin eklenti kurulu değil ise “Dosya Sunucu” üzerinden ilgili eklenti paketini otomatik kurabilmektedir.
|
Ahenk çekirdeği ve eklentiler sistemlere ayrı ayrı paketler olarak kurulabilmektedir. Ahenk, kendisine iletilen bir göreve veya politikaya ilişkin eklenti kurulu değil ise “Dosya Sunucu” üzerinden ilgili eklenti paketini otomatik kurabilmektedir.
|
||||||
|
|
||||||
## Süreçler ve servisler,yapılandırma dosyası
|
### Süreçler ve Servisler
|
||||||
|
|
||||||
Ahenk; Lider'den gelen görevleri/politikaları bulunduğu bilgisayar üzerinde çalıştırıp sonuçlarını yine Lider'e döndüren bir servistir. Yetenekleri eklentilerle genişletilebilir. Sistem üzerindeki olaylardan veya Liderden gelen mesajlar ile iç süreçleri tetiklenir. Bu süreçleri şöyle listeleyebiliriz:
|
Ahenk; Lider'den gelen görevleri/politikaları bulunduğu bilgisayar üzerinde çalıştırıp sonuçlarını yine Lider'e döndüren bir servistir. Yetenekleri eklentilerle genişletilebilir. Sistem üzerindeki olaylardan veya Liderden gelen mesajlar ile iç süreçleri tetiklenir. Bu süreçleri şöyle listeleyebiliriz:
|
||||||
|
|
||||||
### Süreçler ve Servisler
|
|
||||||
|
|
||||||
#### Ahenk Servisinin Çalışmaya Başlaması
|
#### Ahenk Servisinin Çalışmaya Başlaması
|
||||||
|
|
||||||
Ahenk base scripti olan ahenkd.py, python Daemon olarak çalışmaya başlar. İlk olarak bir scope
|
Ahenk base scripti olan ahenkd.py, python Daemon olarak çalışmaya başlar. İlk olarak bir scope
|
||||||
|
@ -216,17 +214,7 @@ Ejabberd XMPP Sunucusu için ilgili detaya link üzerinden erişebilirsiniz.
|
||||||
|
|
||||||
### MACHINE
|
### MACHINE
|
||||||
|
|
||||||
**type**: Yaygın olmayan makine tiplerini saklamak ya da özel durumlarda kullanmak üzere makinelere verilebilecek değiştirilebilir alan
|
**type**: Yaygın olmayan makine tiplerini saklamak ya da özel durumlarda kullanmak üzere makinelere verilebilecek değiştirilebilir alandır.
|
||||||
|
|
||||||
<table align="center">
|
|
||||||
<tr align="center">
|
|
||||||
<td>Lider – Ahenk Merkezi Yönetim Sistemi Altyapısının Geliştirilmesi ve İyileştirilmesi Projesi</td>
|
|
||||||
<td rowspan=2></td>
|
|
||||||
</tr>
|
|
||||||
<tr align="center">
|
|
||||||
<td>Lider Ahenk Tasarım ve Kod Analizi Dokümanı</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### MAIL
|
### MAIL
|
||||||
|
|
||||||
|
|
|
@ -1 +1,110 @@
|
||||||
docs for lider console
|
# 5. Lider Console
|
||||||
|
|
||||||
|
Lider Konsol; yönetim sisteminin sistem yöneticileri tarafından kullanılan arayüz uygulamasıdır.
|
||||||
|
|
||||||
|
Sistem yöneticileri kullanıcı ve sistemler üzerindeki görev ve politikaları bu uygulama aracılığı ile gerçekleştirirler. Bu uygulama bir Eclipse RCP uygulaması olarak geliştirilmiştir.
|
||||||
|
|
||||||
|
Lider Konsol, Apache LDAP Directory ağacı üzerinden sistemlere ve kullanıcılara erişir. Lider Konsol uygulaması yönetimsel tüm iletişimi HTTP(s) protokolü ile REST servisler aracılığı ile Lider üzerinden gerçekleştirmektedir.
|
||||||
|
|
||||||
|
Lider Konsol uygulaması da diğer LiderAhenk uygulamaları gibi bir çok modülden oluşan bir çekirdek ve her geliştirilen eklenti için bileşenlerden (bundle) oluşur.
|
||||||
|
|
||||||
|
Lider Konsol uygulaması XMPP sunucudan hangi sistemlerin çevrimiçi (online) olduğu bilgisini kontrol etmek için bağlanmaktadır. Ayrıca; LDAP ağacı üzerinden işlem yaptığın LDAP istemcisidir. LDAP işlemleri Apache Directory üzerinden gerçekleştirilir. Lider ile temel iletişimi JSON nesneler yardımıyla REST servisler üzerinden gerçekleştirilir. Ancak, Lider sisteminin kullandığı Veritabanı sistemine doğrudan bir iletişimi kesinlikle yoktur. Lider veritabanı sadece ve sadece Lider Sunucusu (Apache Karaf) tarafından sorgulanabilir ve erişilebilir olması yeterlidir.
|
||||||
|
|
||||||
|
Lider Konsol uygulaması üzerinden kullanıcı ve sistemlere görevler gönderilip, bu görevlere ilişkin sonuçlar toplanabilir. Bu sonuçlar merkezi veritabanında saklanır, istenildiğinde gruplama, raporlama amaçları ile sorgulanabilirler.
|
||||||
|
|
||||||
|
Sistemde yapılan tüm işlemlerin bir izi muhakkak veritabanı üzerinde tutulmaktadır. Bazı eklentiler tasarımları gereği kendilerine özgü verileri de veritabanında ayrıca tutmasına olanak sağlanmıştır. Lider Konsol aralığı ile sadece görevler değil kullanıcı yönetimine ilişkin politikalar da yönetilir. Örneğin; kullanıcı gruplarının masaüstü mesajları ve ekran koruyucu ayarları yapılabilir, tarayıcı ev sayfaları değiştirilebilir. Tüm kullanıcı profilleri ve profil tanımları, hangi kullanıcılara uygulandıkları da veritabanı üzerinde saklanır.
|
||||||
|
|
||||||
|
Bu saklanan veriler üzeriden dinamik raporlama bileşeni ile farklı gereksinimlere ilişkin raporlamalar tasarlanıp, sisteme eklenir ve çalıştırılır. Lider Ahenk sisteminin geneline ilişkin raporlar tasarlanabileceği gibi kimi eklentilere özgü raporlar da tasarlanabilir. Lider sistemi ilk kurulum ile temel raporlama ihtiyaçlarına yönelik kimi rapor tanımlarını kullanıcı için hazır şekilde sunar. Her eklenti kendi ihtiyaçları çerçevesinde yeni rapor şablonlarını otomatik olarak sisteme ekleyebilir.
|
||||||
|
|
||||||
|
## Task ve Policy İçin GUI Oluşturma Adımları
|
||||||
|
|
||||||
|
lider-console-EKLENTI_ISMI, lider-Eclipse RCP IDE’sini açınız. Menüden File -> Import -> Maven -> Existing Maven Projects seçeneklerini takip ederek açılan pencerede kendi eklentinizin bulunduğu dizini seçin ve Finish butonuna tıklayın. Artık Lider, Lider-Console ve Ahenk eklentiniz Eclipse’e eklenmiş durumdadır.
|
||||||
|
|
||||||
|
**Eklenti geliştirme üç aşamadan oluşmaktadır:**
|
||||||
|
|
||||||
|
EKLENTI_ISMI ve ahenk-EKLENTI_ISMI lider-console-EKLENTI_ISMI: Burada eklentinizin Lider-Console tarafındaki bileşenlerini diyaloglar ve diğer SWT bileşenleri yardımıyla düzenleyebilir, kullanıcıdan gerekli inputları bu bileşenler yardımıyla alabilirsiniz. Bunun için src/ klasörü altında bulunan, tr.org.liderahenk.EKLENTI_ISMI.constants paketinin altına eklentide kullanılan sabitlerin bulunduğu sınıflar tanımlanmalıdır. (Archetype ile hali hazırda örnek bir constant sınıfı bu paketin altında gelmektedir.)
|
||||||
|
|
||||||
|
tr.org.liderahenk.EKLENTI_ISMI.dialogs paketinin altına eklentide kullanılan ekranların betimlendiği sınıflar tanımlanmalıdır. Eğer eklenti bir politika eklentisi ise açılacak olan profil ekranı üzerindeki değişiklikler eklentiye ait ProfileDialog sınıfı üzerinden yapılır. Eğer eklenti bir görev eklentisi ise TaskDialog sınıfı kullanılır.
|
||||||
|
|
||||||
|
ProfileDialog sınıfında bulunan metodlarda aşağıdaki işlemler gerçekleştirilir.
|
||||||
|
|
||||||
|
**init:** Başlangıçta yapılacak işlemler burada tanımlanır.
|
||||||
|
|
||||||
|
**createDialogArea:** Profil ekranının bütün SWT bileşenleriyle oluşturulduğu metodburasıdır.
|
||||||
|
|
||||||
|
**getProfileData:** Ekran üzerindeki verilerin bir Map’e eklendiği yerdir. Bu metodsayesinde veriler Ahenk’e kadar ulaştırılacaktır.
|
||||||
|
|
||||||
|
**validateBeforeSave:** Profil kaydedilmeden önceki son kontroller bu metodüzerinden yapılmaktadır. Örneğin doldurulması zorunlu bir Text varsa Text’in boşolma durumundaki ValidationException buradan fırlatılır.
|
||||||
|
|
||||||
|
TaskDialog sınıfında bulunan metodlarda ise aşağıdaki işlemler gerçekleştirilir.
|
||||||
|
|
||||||
|
**createTitle:** Dialog ekranının başlığı burada belirtilir.
|
||||||
|
|
||||||
|
**createTaskDialogArea:** Görev ekranının bütün SWT bileşenleriyle oluşturulduğumetod burasıdır.
|
||||||
|
|
||||||
|
**validateBeforeExecution:** Görev çalıştırılmadan önceki son kontroller bu metodüzerinden yapılmaktadır. Örneğin doldurulması zorunlu bir Text varsa Text’in boşolma durumundaki ValidationException buradan fırlatılır.
|
||||||
|
|
||||||
|
**getParameterMap:** Ekran üzerindeki verilerin bir Map’e eklendiği yerdir. Bu metodsayesinde veriler Ahenk’e kadar ulaştırılacaktır.
|
||||||
|
|
||||||
|
**getCommandId:** Çalıştırılacak göreve ait id bilgisi bu metod üzerinden döndürülür.getPluginName: Çalıştırılacak görevin ismi bu metod üzerinden döndürülür.
|
||||||
|
|
||||||
|
**getPluginVersion:** Çalıştırılacak görevin versiyonu bu metod üzerindendöndürülür. tr.org.liderahenk.EKLENTI_ISMI.handlers paketinin altında dialog paketi altındaki dialog sınıflarını ele alan ve bu dialog ekranlarını açan sınıflar bulunmaktadır. Buradaki ProfileHandler eklentinin profil ekranını ele alırken TaskHandler ise eklentinin görev ekranını ele alır. tr.org.liderahenk.EKLENTI_ISMI.i18n paketi altında ise halihazırda bir sınıf ve iki tane metin belgesi bulunmaktadır. Bu metin belgelerinden messages_tr.properties belgesine eklentide kullanılan string ifadelerin Türkçe karşılıkları yazılırken messages.properties belgesine ise bu ifadelerin İngilizce karşılıkları yazılmaktadır.
|
||||||
|
|
||||||
|
## Task ve Policy için Lider-Console Süreci
|
||||||
|
|
||||||
|
Eklentiler Lider-Console tarafından bağımsız olarak oluşturulmaktadır. Bu nedenle sadece Lider sunucusuna istekte bulunurken ve görev bildirimlerinin dinlenmesinde bazı sınıflardan faydalanılır. Lider sunucusuna görev, profil ve politika için istekte bulunulabilir. Bu amaçla kullanılan sınıflar: TaskRestUtils, PolicyRestUtils ve ProfileRestUtils’dir. Görev bildirimlerinin dinlenmesinde ileTaskStatusNotificationListener’dır.
|
||||||
|
|
||||||
|
**TaskRestUtils:** Lider sunucusuna görevle ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**PolicyRestUtils:** Lider sunucusuna politika ile ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**ProfileRestUtils:** Lider sunucusuna profil ile ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**TaskNotificationListener:** Görev gönderimindeki bildirimleri dinler. Bir bildirim alındığında görevle ilgili bir bildirim gösterilir ve eklentileri uyarmak için bir event fırlatılır.
|
||||||
|
|
||||||
|
**TaskStatusNotificationListener:** Ahenk’ten cevap olarak dönen görev durum bildirimlerini dinler. Bir bildirim alındığında görev durumuyla ilgili bir bildirim gösterilir ve eklentileri uyarmak için bir event fırlatılır.
|
||||||
|
|
||||||
|
|
||||||
|
## Lider-Console Servis Sınıfları
|
||||||
|
|
||||||
|
**RestClient:** Lider sunucusuna request göndermek ve cevapları ele alabilmek için utility metodlarını kullanıma sunar.
|
||||||
|
|
||||||
|
**PolicyExecutionRequest:** Politika uygulandığı sırada kullanılan politikanın nereye uygulanacağını söyleyen sınıftır.
|
||||||
|
|
||||||
|
**PolicyRequest:** Politika CRUD işlemlerinde kullanılan sınıftır.
|
||||||
|
|
||||||
|
**ProfileRequest:** Profil CRUD işlemlerinde kullanılan sınıftır.
|
||||||
|
|
||||||
|
**ReportGenerationRequest:** Rapor üretildiği sırada kullanılan sınıftır.
|
||||||
|
|
||||||
|
**ReportTemplateRequest:** Geliştirici tarafından tanımlanan rapor sorgusu, rapor parametreleri vb içerir. Lider'de servis olarak tanımlanıp kullanılır.
|
||||||
|
|
||||||
|
**ReportViewRequest:** Rapor tanımına ait CRUD işlemlerinde kullanılan sınıftır.
|
||||||
|
|
||||||
|
**TaskRequest:** Görev CRUD işlemlerinde kullanılan sınıftır.
|
||||||
|
|
||||||
|
**RestResponse:** Rest servisinden dönen cevap için kullanılan sınıftır.
|
||||||
|
|
||||||
|
**AgentRestUtils:** Lider sunucusuna ajan ile ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**PluginRestUtils:** Lider sunucusuna eklenti ile ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**PolicyRestUtils:** Lider sunucusuna politika ile ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**ProfileRestUtils:** Lider sunucusuna profil ile ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**ReportRestUtils:** Lider sunucusuna rapor ile ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**SearchGroupRestUtils:** Lider sunucusuna arama grubu ile ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**TaskRestUtils:** Lider sunucusuna görevle ilgili istek gönderen utility sınıfıdır.
|
||||||
|
|
||||||
|
**XMPPClient:** Online/Offline bilgisini okumak ve görev sonucunu almak için kullanılır.
|
||||||
|
|
||||||
|
**TaskNotificationListener:** Görev gönderimindeki bildirimleri dinler. Bir bildirim alındığında görevle ilgili bir bildirim gösterilir ve eklentileri uyarmak için bir event fırlatılır.
|
||||||
|
|
||||||
|
**TaskStatusNotificationListener:** Ahenk’ten cevap olarak dönen görev durum bildirimlerini dinler. Bir bildirim alındığında görev durumuyla ilgili bir bildirim gösterilir ve eklentileri uyarmak için bir event fırlatılır.
|
||||||
|
|
||||||
|
**TaskNotification:** Görev bildirimi CRUD işlemlerinde kullanılan sınıftır.
|
||||||
|
|
||||||
|
**TaskStatusNotification:** Görev durum bildirimi işlemlerinde kullanılan CRUD sınıfıdır.
|
Loading…
Reference in a new issue