Gün boyunca Manchester- Boston Yerel Havalimanı'ndaki "ılımlı" ağ yöneticisi rolümü tamamladığım için (ki aslında gündüz işi de oldukça zevkli), gece SynthNet ve diğer projeler üzerine çalışmak zevkli oluyor. Üstlendiğim süregelen projelerden biri, çeşitli kurumsal intranet sistemlerimizi merkezi yönetim için tek bir platformda birleştirirken, bu sayede kullanım kolaylığı sağlamaya ve maliyeti daha da düşürmeye çalışmak. Geniş bir yelpazeye yayılan işlevselliklere sahip olan çok sayıdaki eklentisi, sürekli olarak açık kaynak topluluğu tarafından yapılan güncellemeleri nedeniyle, Drupal'ın bu iş için doğru aday olduğunu biliyordum. Tamamen terzi işi olan, ancak banka hesaplarımızı boşaltmayacak, çok yönlü, sürdürülebilir ve ölçeklenebilir bir çözüme ihtiyacımız vardı.
Drupal kurumsal intranet uygulamasına göç etmek
"Drupal kurumsal intranet uygulaması"ndan temel beklentimiz aşağıdaki işlevleri sağlamasıydı:
- PDF Destekli Belge Yönetim Sistemi
- Belge sınıflandırma, özelleştirilmiş güvenlik, OCR desteği
- Masaüstünden dosya yükleme
- Varlık Yönetim Sistemi ile entegrasyon
- Varlık Yönetim Sistemi (Asset Management System)
- Envanter veritabanı
- Barkod Desteği
- Zenoss NMS (Network Monitoring System) ile entegrasyon
- Belge Yönetim Sistemi (Document Management System) ile entegrasyon. Her bir varlığı fatura, sipariş formu ve başka belgelerle ilişkilendirme özelliği.
- Bilgisayar donanımı türündeki varlıklar için otomatikleştirilmiş tarama/giriş yapma desteği (İşlemci, Bellek, Hard Disk, MAC Adresi vb.)
- Fiziksel ağ bilgisi (Switch ve port aygıtının bağlı olduğu ağ araçları için)
- Ağ anahtarları için, otomatik ayar yedekleme desteği
- Makale Bilgi Tabanı (Article Knowledge Base) Özelliği, sınıflandırma ve özelleştirilmiş güvenlik desteği ile
- Yardım Masası (Help Desk) yazılımı özellikleri (destek talebi oluşturma, e-posta adresi entegrasyonu, destek bitiş tarihi, görev ataması vb. özellikler)
- Public Address System entegrasyonu
- Active Directory entegrasyonu (Kullanıcılar, gruplar ve Windows Active Directory kontrollü güvenlik özellikleri)
- Telefon dizinleri vb gibi diğer genel veritabanları
Göç çalışması
Oldukça şaşırtıcı biçimde, gereksinim duyulan işlevsel özellliklerin önemli çoğunluğu, Drupal'ın çekirdeği tarafından karşılandı. İsteğe göre yapılandırılmış içerik türleri, bu türlere bağlı içerik alanları, sınıflandırma sözlükleri, görünümler (Views, Drupal'a özel veritabanı ve sorgu yönetimi) ve paneller sayesinde, temel veritabanı işlevsellikleri (giriş, özet tablosu özellikleri, sıralama, arama, süzme vb.) kolayca üretilebildi. Ancak, aşağıda belirtilen konularda, hem topluluk tarafından geliştirilmiş eklentilere, hem de projeye özel geliştirilen eklentilere gereksinim duyuldu.
Özelleştirilmiş Güvenlik: Güvenlikle ilgili gerekliliklerin pek çoğunu Taxonomy Access Control (TAC) ve Content Access eklentileri karşıladı. TAC eklentisi kullanıcı rollerini ve içeriğin sınıflandırılmasını temel alan bir erişim denetimi sağlarken, Content Access eklentisi de daha ileri düzeyde her bir içerik için özelleştirilmiş erişim seçenekleri sağladı. Böylece her bir belgenin kendi güvenlik ayarlarını yapabilmek mümkün oldu.
OCR: Bu bizim bir özel mülk yazılımı seçtiğimiz nadir aşamalardan birisi oldu. Bu konu ile ilgili bazı açık kaynak çözümler bulunmakla birlikte, birkaç özel mülk araç gözle görülür bir biçimde daha kesin sonuç veriyor. Yazılımın kabuk üzerinden çalıştırılabilecek bir Linux sürümünü bulduk. Üzerine de biraz kod yazarak yazılımımızın indirilen tüm PDF'leri dizinlenmiş PDF'lere çevirmesini sağladık.
Belgeleri İlişkilendirme: Nodereference Explorer eklentisi ile tamamladığımız bu bölümde, kullanıcı dostu popup'lar yardımıyla, belgelerin birbiriyle ilişkilendirilmesini kolaylaştırdık.
Windows Masaüstü Entegrasyonu: Yeni bir belge oluşturmak için her seferinde tüm aşamaları (dosya seçmek, alanları doldurmak vb.) tamamlamak yerine, kullanıcının Windows masaüstündeki bir PDF dosyayı sağ tıklamasını ve açılan menüden “Send To -> Document Archive” seçeneklerini tıklamasını istedik. Bu sebeple bir HTTP bağlantısını Drupal sitesine kurabilecek ve bu dosyaları siteye POST edebilecek bir .Net uygulaması geliştirdik.
Barkodlama: Kullandığımız Zebra barkod yazıcılarımızla entegrasyonu nedeniyle, özel mülk yazılım kullandığımız son aşamamız bu oldu. Bu ürünün özelliklerinden biri, dıştan bir kaynağın (txt, XML vb.) barkod ID’sini kabul etmesiydi. Böylelikle Drupal'la ZebraDesigner arasında barkod üretimi açısından sorunsuz bir iletişim kurulmuş oldu.
Danışma (HelpDesk): Bu bölümü bir içerik türü ve Görünümler (Views) eklentisi ile yapabilirdik, ancak biz grafikler, e-posta entegrasyonu gibi avantajları nedeniyle Support Ticketing System eklentisini kullanmayı seçtik.
Donanım Bilgisinin Otomatik Olarak Algılanması: Bunun için biz Active Directory giriş betiklerine yüklenen WinAudit adlı ücretsiz bir yazılım kullandık. WinAudit, bir bilgisayarda hemen hemen her şeyin (donanım, yazılım, lisanslar, vb.) tam bir dökümünü çıkarır ve sonucu bir CSV / XML dosyasına atar. Cronjob sırasında Drupal'ın varlık veritabanını güncellemesi için, tüm Active Directory makinelerimizi oturum açma anında denetime başlayacak ve daha sonra bu donanım dökümlerini merkezi bir sunucuya aktaracak biçimde yapılandırdık.
Active Directory Entegrasyonu: İlk adımımız Apache sunucusunun domain'e ait olduğundan emin olmaktı, bu adımı zaten standart samba/winbind ayarlarıyla tamamlamış olduk. Daha sonra, Drupal'a yapılan kullanıcı girişlerinin PHP - PAM pakedini kullanmasına izin veren PAM Authentication eklentisini kurduk. PHP - PAM, Active Directory içine tüm Active Directory kullanıcı ve gruplarını dahil edecek biçimde entegre edilmiş olan standart Linux PAM Authentication özelliğini kullanmaya izin veren bir pakettir. Ayrıca, bir parça kod yazarak Active Directory'nin gruplarını, Drupal kullanıcı rolleri ile karşılaştıran ve her bir Active Directory grubu için, yeni bir Drupal kullanıcı rolü oluşturan bir eklenti de geliştirdik.
Özelleştirilmiş bir modül içerisinde bazı parçaları sorunsuz bir şekilde birbirine bağlayacak özgür kod bulunuyor. Tüm bunlarla birlikte sistem yoğun bir şekilde kullanılsa da oldukça rahat çalışıyor. En iyi kısmı da ana omurganın özgür yazılım oluşu. Özellikle de, tümü için özel mülk yazılımlar kullanmış olsaydık ne kadar harcayacağımızı düşündüğümüz zamanlarda.
Çevirisini yaptığımız İngilizce özgün yazıya aşağıdaki bağlantıdan erişilebilir:
http://www.toniwestbrook.com/archives/7433