removed lider folder

This commit is contained in:
İsmail Başaran 2017-03-23 12:00:32 +03:00
parent a357070c4d
commit 68b9bbbc84
2 changed files with 0 additions and 221 deletions

View file

@ -1,102 +0,0 @@
## Modüller
Lider projesi içerisinde yer alan OSGI modüllerinin (bundle) kısa tanımları ve işlevleri aşağıdaki gibidir:
### lider-authorization-impl
Görev çalıştırma ve rapor oluşturma/görüntüleme gibi 'action'lara ait yetkilendirme/doğrulama işlemlerini yapmakla yükümlü
servisi sunmaktadır.
### lider-cache-impl
Diğer Lider modülleri tarafından kullanılabilecek önbellekleme mekanizmalarını sunmaktadır.
### lider-config
Lider tarafından kullanılan çoğu yapılandırma ayarına ait yapılandırma dosyası (tr.org.liderahenk.cfg) ve bu dosyayı takip
ederek dinamik bir şekilde diğer modüllerin hizmetine sunan bir yapılandırma servisinden oluşmaktadır.
### lider-core
Tüm Lider modülleri ve eklentilerinin geliştirilmesi için gerekli olan Java arayüz sınıflarından oluşan iskelet modüldür. OSGI
servisleri arayüz tanımlamaları üzerinden gerçekleştirildiğinden, her modül tarafından erişilebilir bir iskelet modül ihtiyacını
karşılamak için ortaya çıkmıştır.
### lider-datasource-mariadb
MariaDB veritabanı bağlantısının yönetilmesi için gerekli yapılandırma dosyalarını içeren modüldür. Bağlantı havuzu bu modüldeki
yapılandırmaya göre oluşturulur ve otomatik olarak yönetilir.
### lider-deployer
Lider Ahenk eklentilerinin tek bir merkezden Lider, Lider Arayüz ve Ahenk bileşenlerine dağıtılması için geliştirilmekte olan
modüldür.
### lider-itest
Lider entegrasyon testlerinin yer aldığı modüldür. Şu an için test ortamına altyapı sağlayan ve birkaç test senaryosu içeren modüle
gerekli test senaryoları zamanla eklenerek sistemin tamamının test edilebilir hale gelmesi hedeflenmektedir.
### lider-karaf
Lider modüllerinin Karaf OSGI konteynırına başarılı bir şekilde yüklenebilmesi için gerekli 'feature' tanımının yer aldığı modül
### lider-ldap-impl
Lider modülleri tarafından LDAP ile ilgili kullanılabilecek tüm işlevleri sunan servisi içermektedir.
### lider-log-impl
Lider modülleri tarafından kullanılabilecek ve Lider log tablosuna kayıt eklemeye yarayan log modülüdür.
### lider-mail-notification
Lider modülleri ve eklentileri tarafından e-posta gönderme amacıyla kullanılabilecek e-posta servisini sunan modüldür.
### lider-messaging-xmpp
Lider'in XMPP sunucusu ile olan iletişimini sağlayan, mesaj gönderme ve gelen mesajları dinleme gibi yeteneklere sahip
XMPP istemcisini içeren modül
### lider-persistence-mariadb
Veritabanı CRUD işlemleriyle ilgili servisleri sunan modüldür. Eklentiler için kullanılabilecek PluginDbService ile birlikte
çekirdek katmanı oluşturan görev, politika, profil gibi tablolar için ayrı ayrı servisler içermektedir.
### lider-pluginmanager-impl
Lider'e yüklenen eklenti modüllerinin sisteme kaydını gerçekleştiren modüldür. Kayıt işlemi ile birlikte eklenti adı, sürümü,
eklentinin görev yada politika olarak çalıştığı, dosya transferi kullanıp kullanmadığı gibi nitelikler buradan kaydedilmiş olur.
### lider-policymanager-impl
Ahenk yüklü bilgisayarda bir kullanıcının giriş yapması ile birlikte Lider'den sorgulanan makine ve kullanıcı politikalarını
bulup Ahenk'e döndüren politika yöneticisi bu modülde yer almaktadır.
### lider-report-impl
Lider'de varsayılan olarak tanımlı rapor şablonları bu modül üzerinden sunulmaktadır. Bununla birlikte modülün bir diğer görevi, eklentilerden servis olarak sunulan diğer rapor şablonlarını izlemek ve değişiklikleri veritabanına yansıtmaktır.
### lider-taskmanager-impl
Ahenk üzerinde çalıştırılacak görevleri ilgili Ahenk'lere göndermek ve Ahenk'te çalıştırılan görevlere ait sonuç mesajları
dinleyip veritabanındaki ilgili kayıtları oluşturmak bu modüldeki görev yöneticisinin sorumluluğundadır. Buna ilaveten ileri tarihli görevleri de veritabanını belirli aralıklarla kontrol ederek tespit edip, çalıştırılma zamanı gelmiş olanları
çalıştırır.
### lider-web
RESTful web servisi oluşan kontrolör sınıfları içermektedir. Lider uygulamasına HTTP üzerinden giriş noktası burasıdır. Lider Arayüz'den gelen HTTP istemleri bu modül tarafından karşılanıp ilgili diğer modüllere iletilir ve ilgili modül istemi
işlettikten sonra cevabı da bu web modülü üzerinden JSON formatında Lider Arayüz'e döndürülür.
### lider-rest-impl
Lider Arayüz'den gelen HTTP istemlerinin ele alındığı sınıfları (request processor) içerir. Söz konusu sınıflar kapsamına göre (task, profile, report, policy gibi) birbirlerinden ayrılmıştır. Genellikle bulundukları kapsama göre veritabanı işlemlerini gerçekleştirmek, LDAP veya XMPP istemcisini kullanmak gibi çeşitli işlevlere sahiplerdir.
### lider-service-impl
HTTP istemlerine ait (request, response, context gibi) her türlü Bean sınıfı ve bu sınıfları oluşturmakta kullanılan Factory sınıfları bu modülde tanımlanmıştır. Diğer modüller burada tanımlı servisleri kullanarak gelen istemleri işleyip sonuç döndürebilir.
### lider-router-impl
Lider modüllerinde ve eklentilerde tanımlı görev (task) işleme amacıyla geliştirilmiş servisleri izleyen ve yeni servis tanımlandıkça yada varolan kaldırıldığında üzerindeki servis listesini güncelleyen modüldür. Görev işletimi sırasında, göreve ait sınıfın tetiklenmesi için bu listeden faydalanılır. Yine, benzer şekilde, Ahenk'ten gelen görev sonucuna göre
ilgili sınıfın tetiklenmesi için de aynı liste kullanılır.

View file

@ -1,119 +0,0 @@
## Veritabanı
Lider Ahenk veritabanı olarak MariaDB 10.x kullanılmakta ve veritabanı katmanı olarak Lider içerisinde OpenJPA kullanılmaktadır.
Veritabanına ait EER diagramına [bu adresten](http://agem.com.tr/liderahenk/liderdb.mwb) erişebilirsiniz.
Lider Ahenk (görev işletimi, politika uygulama, Ahenk kaydı gibi) süreçlerinde sıklıkla kullanılan bazı veritabanı tabloları
ve açıklamaları aşağıdaki gibidir:
### C_COMMAND
```
+-------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| COMMAND_ID | bigint(20) | NO | PRI | NULL | |
| ACTIVATION_DATE | date | YES | | NULL | |
| COMMAND_OWNER_UID | varchar(255) | YES | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| DN_LIST | text | YES | | NULL | |
| DN_TYPE | int(11) | YES | | NULL | |
| POLICY_ID | bigint(20) | YES | MUL | NULL | |
| TASK_ID | bigint(20) | YES | MUL | NULL | |
+-------------------+--------------+------+-----+---------+-------+
```
İşletilen her bir görev veya uygulanan her bir politikaya karşılık C_COMMAND tablosunda yeni bir kayıt oluşturulur. Yapılan
işlemin (görev yada politika) LDAP üzerinde hangi ögeler (DN_LIST) üzerinde çalıştırıldığı, bu ögelerden hangilerinin dikkate
alınması gerektiği (DN_TYPE) ve işlemin kim tarafından yapıldığını kayıt altına alır. Söz konusu her bir kayıt C_TASK veya C_POLICY
tablosuna referans vermektedir.
### C_TASK
```
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| TASK_ID | bigint(20) | NO | PRI | NULL | |
| COMMAND_CLS_ID | varchar(255) | YES | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| CRON_EXPRESSION | varchar(255) | YES | | NULL | |
| DELETED | bit(1) | YES | | NULL | |
| MODIFY_DATE | datetime | YES | | NULL | |
| PARAMETER_MAP | longblob | YES | | NULL | |
| PLUGIN_ID | bigint(20) | NO | MUL | NULL | |
+-----------------+--------------+------+-----+---------+-------+
```
İşletilen her bir görev için C_TASK tablosunda yeni bir kayıt oluşturulmaktadır ve görev işletimi sırasında Lider Arayüz üzerinden
gönderilen görev parametrelerini içermektedir.
### C_POLICY
```
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| POLICY_ID | bigint(20) | NO | PRI | NULL | |
| ACTIVE | bit(1) | YES | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| DELETED | bit(1) | YES | | NULL | |
| DESCRIPTION | varchar(255) | YES | | NULL | |
| LABEL | varchar(255) | NO | | NULL | |
| MODIFY_DATE | datetime | YES | | NULL | |
| POLICY_VERSION | varchar(255) | YES | | NULL | |
+----------------+--------------+------+-----+---------+-------+
```
Kaydedilen her bir politika için C_POLICY tablosunda bir kayıt oluşturulmakta ve her bir kayıt ilgili politikaya
dair politika adı, açıklaması, oluşturulma tarihi ve sürümü gibi bilgileri tutmaktadır. Diğer belgelerde açıklandığı gibi bir
politika bir veya birden fazla profil kaydından oluşmaktadır ve politikaya ait herhangi bir profilin değiştirilmesi durumunda
politika üzerindeki sürüm değeri bir arttırılmaktadır. Bu sürüm değeri Ahenk'in politika sorguladığı durumlarda bir politikanın
değişip değişmediğinin anlaşılması için kullanılmaktadır.
### C_COMMAND_EXECUTION
```
+----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| COMMAND_EXECUTION_ID | bigint(20) | NO | PRI | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| DN | varchar(255) | YES | | NULL | |
| DN_TYPE | int(11) | YES | | NULL | |
| COMMAND_ID | bigint(20) | NO | MUL | NULL | |
+----------------------+--------------+------+-----+---------+-------+
```
İşletilen her bir görev ve uygulanan her bir politika için C_COMMAND tablosunda bir kayıt oluşturulduğundan bahsetmiştik. Yapılan
bu işlemde kaç tane LDAP ögesi var ise, her biri için C_COMMAND_EXECUTION tablosunda birer kayıt oluşturulmaktadır. Örneğin; LDAP
ağacında 3 adet Ahenk ögesi seçilerek 'ekran görüntüsü al' görevi işletildiğinde, 1 adet C_COMMAND kaydı altında (her bir Ahenk
DN değerine karşılık) 3 adet C_COMMAND_EXECUTION kaydı oluşturulur.
### C_COMMAND_EXECUTION_RESULT
```
+-----------------------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------------+------------+------+-----+---------+-------+
| COMMAND_EXECUTION_RESULT_ID | bigint(20) | NO | PRI | NULL | |
| AGENT_ID | bigint(20) | YES | | NULL | |
| CONTENT_TYPE | int(11) | YES | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| RESPONSE_CODE | int(11) | NO | | NULL | |
| RESPONSE_DATA | longblob | YES | | NULL | |
| RESPONSE_MESSAGE | text | YES | | NULL | |
| COMMAND_EXECUTION_ID | bigint(20) | NO | MUL | NULL | |
+-----------------------------+------------+------+-----+---------+-------+
```
Detay tablo olarak görev yapan C_COMMAND_EXECUTION_RESULT tablosu işletilen her bir görev veya uygulanan her bir politika
ait sonuç mesajların saklanması için kullanılmaktadır. Buna göre daha önceki örnekten devam edersek, LDAP ağacında 3 adet
Ahenk ögesi seçilerek 'ekran görüntüsü al' görevi işletildiğinde, 1 adet C_COMMAND kaydı altında 3 adet C_COMMAND_EXECUTION
kaydı ve her bir C_COMMAND_EXECUTION kaydı altında 1 adet C_COMMAND_EXECUTION_RESULT kaydı oluşturulur.
Bu tablonun detay tablo olarak yaratılması, görev veya politika sonucu olarak birden fazla sonucun döndürülebilmesine olanak sağlar.
Buna göre; örneğin (CPU, disk, RAM bellek gibi) sistem kaynaklarının belirli aralıklarla dinlendiği ve eşik değerin aşılmasıyla
uyarı mesajı döndürüldüğü bir görev işletilirken, eşik değer her geçildiğinde gönderilen görev sonucu bir C_COMMAND_EXECUTION_RESULT
kaydı olarak veritabanında tutulmaktadır.