- 04 Nov 2024
- 7 Minutes to read
- DarkLight
Paperwork Teknik Mimari
- Updated on 04 Nov 2024
- 7 Minutes to read
- DarkLight
Paperwork Genel Teknik Mimari
PaperWork teknik mimarisi aşağıdaki gibidir. Bu mimari kurulum ihtiyaçlarına göre ve ek lisanslara göre değişiklik gösterebilir.
Paperwork çok katmanlı bir mimariye sahiptir. Yukarıda görülen yapıda yük dengelemeli bir kurulum mimarisi örneklenmiştir. Bu kurulumda Paperwork, dış kullanıma açılması amacı ile IIS üzerindeki DMZ ortamına taşınmıştır.
Uygulama sunucusu adını verdiğimiz Content Server, Yük Dengeleme (Load Balancing), Kümeleme (Clustering), Yüksek Erişim (High Availablity) gibi özellikleri destekler.
Content Server, Veri Tabanına ve Storage Services adı verilen belgelerin saklandığı dizine erişebilen tek uygulamadır. Mimarideki tüm uygulamalar veri tabanına sadece Content Server aracılığı ile erişebilir. Birden fazla Content Server kurulu ise belirtilen kaynakların tamamına (Disk, Veri Tabanı, Active Directory gibi) her sunucunun erişebiliyor olması gerekir. Örneğin ERP, Web Servisleri, Active Directory gibi.
Tüm sistem genelinde işlem yapan bir dizi servis bulunur. Bu servislerin tamamı Content Server ile haberleşerek bu işlemleri yerine getirir. Örneğin Metot Server, WorkFlow Server gibi. Bu servisler de yük dengelemek amacı ile birden fazla sunucu üzerine kurulabilirler. Kurulum uygulaması tüm ayarların yapılmasına izin verir.
Content Server, tüm iş mantığını metotlar halinde (encapsulation) dış dünyaya açar. Bunun için aşağıdaki portların açık olması gereklidir :
8097 | Paperwork geliştirme katmanını içerir. İki adet geliştirma katmanı bulunur. Microsoft .Net gelişirme katmanı ve Web Servis geliştirme katmanı (SOAP 1.2 uyumludur) |
8098 | Büyük dosyaların transferi için kullanılır. |
8094 | Rapor mimarisi bu port üzerinden çalışır. |
4280 | Web arayüzünde kullanılan HTML5 Microsoft Word benzeri editörün çalışması için gereklidir. |
Architecture (PaperWork Mimarisi) Hakkında
Bu katmanlar (.Net, Web Servisleri) eğitimleri, dokümanları ve örnekleri olan bir katmandır. Paperwork üzerindeki bütün uygulamalarımız bu katmanlar üzerinde geliştirilmiştir. Dışarıdan Paperwork'e entegrasyon yapılmak istendiğinde bu katmanı kullanarak her türlü entegrasyon yapılabilir. Paperwork platformunda SAP, Logo, Robusta gibi hazır entegrasyonlar tanımlanmıştır ve bu tanımlama ile herhangi bir kod yazmadan bilgi alış verişi yapmak mümkündür.
Content Server, veri tabanına ve storage services adı verilen belgelerin saklandığı dizine erişebilen tek uygulamadır. Mimarideki tüm uygulamalar veri tabanına sadece Content Server aracılığı ile erişebilir. Birden fazla Content Server kurulu ise belirtilen kaynakların tamamına (Disk, Veri Tabanı, Active Directory gibi) her sunucunun erişebiliyor olması gerekir.
Content Server SSL Sertifika desteği de içerir.
Content Server Nedir ?
- Tüm iş mantığının metotlar olarak dışarı açılmasını sağlar.
- İki değişik geliştirme (SDK) katmanını içerir. Tüm ara yüzler doğasına göre ihtiyaç duyduğu katman ile işlem yapar.
- SOAP 1.2 uyumlu web servisleri
- Microsoft .NET kütüphaneleri
- Kullanıcı oturum yönetimi bu servis üzerinde sağlanır. Tüm servisler, kullanıcılar, geliştirme katmanı bağlantıları çalışma esnasında bu servis üzerinde oturum (session) oluşturarak işlem yapar.
- Yük dengeleme ve kümeleme özellikleri bulunur. Birden fazla kurarak kullanıcı yükünü dengeleyebilir. Ayrıca yüksek erişilebilirlik sağlar. Bu özellikleri başka uygulamalar ile değil kendi mimarisi aracılığı ile sağlar.
- Tüm saklama birimlerini bu servis yönetir. Sisteme dahil edilen belgelerin saklanması, görüntülenmesi gibi işlevleri bu servis gerçekleştirir.
- Açıldığı zaman veri tabanına bağlantı havuzu oluşturur. Metotların çalışması esnasında ihtiyaç duyduğu veri tabanı bağlantısını havuzdan alıp işlemini gerçekleştirir ve tekrar havuza bırakır.
- DBPlugin, SMSPlugin, UserPlugin, FilePlugIn yapılarını yönetir.
- Tanımlı işlerin çalıştırılmasını sağlar.
- Eğer Aktif Dizin (Active Directory) tanımı var ise tüm girişlerde AD doğrulamasını sağlar.
- Dış entegrasyonlarda çağrılacak tüm web servis çağrılarını yapar.
- Konnektör mimarisi bu servis aracılığı ile yönetilir.
Workflow Server Nedir ?
Sistemdeki tüm akışların yapılan tanımlara göre çalıştırılmasını sağlar. Kendine ait InstanceDB adı verilen bir veri tabanına sahiptir. InstanceDB üzerinde servis persistancy (Kalıcılık) işlemini gerçekleştirir. Akış adetlerine göre işlem süreleri uzun ve CPU yoğundur.
Bu veri tabanı ilk etapta biraz büyür, daha sonra hep aynı boyutta kalır. İş akışı ilk başladığında bu veri tabanına yazma işlemi gerçekleşir, akış bittiğinde veya iptal edildiğinde bu veri tabanından silinir. Yedekleme esnasında bu veri tabanının da yedeklenmesi gerekir.
Workflow Servisin Performansı
İş akışı adetlerinin yoğun, iş adımlarının fazla olduğu durumlarda Workflow servisinin %70-80 CPU kullandığı gözlemlenir. Bu durumda 2nci bir Workflow servisi konumlandırmak gerekir. Workflow servisi yük dengeleme modunda çalışabilir.
Workflow Servisin Başlatılması
Bu servis hem PaperWork veri tabanı üzerinde hem de Microsoft Workflow Engine veri tabanı üzerinde yoğun işlem yapar. Normal kapatılması, kill edilmemesi tavsiye edilir. Aksi durumda akışlar bozulabilir. Content Server çalışırken açılmalıdır.
Workflow Server, iş akışları ile tüm işlemleri yapan servistir. Bu servis de birden fazla kurulabilir. Kaynak ihtiyacı her ne kadar akışların boyutlarından da eklense de genel hesap olarak günlük yeni başlayan her 2000 adet akış için bir adet servis kurmak uygundur.
Database Erişimi ve Genel Bilgiler
Paperwork veri tabanına sadece content servisi erişebilir. Content servisi ilk başlatıldığında, belli bir sayıda bağlantı havuzu oluşturup gelecek olan talepleri bekler (connection pooling).
Gelen taleplerde bu havuzdan bir bağlantıyı kullanarak işlemini yapar ve işi bittiğinde bağlantıyı tekrar havuza bırakır. Bu mimari sayesinde bağlantı performansı yüksektir.
Paperwork veri tabanı kapalı bir yapıya sahiptir, o nedenle doğrudan insert, update, delete gibi DML işlemlerini doğrudan veri tabanı üzerinden yapmak doğru değildir. Ancak geliştirme katmanı üzerinden bu işlemlerin yapılması tavsiye edilir.
Tip Tanımları (Type Definitions) Nedir ?
Genel literatürde adı type olan veri kümesinin Paperwork platformunda adı Tip olarak geçmektedir. Tip, herhangi bir sürecin başından sonuna kadar bir veri kümesinin dolaştırılmasıdır. Bu veri kümesini görselleştiren yapı da elektronik formlardır.
Tip tanımlaması yapıldığında sistem otomatik olarak SQL table ve view gibi nesnelerini üretir. Bütün verileri bu nesneler üzerinde saklar.
Tip tabloları veri tabanında T_ ile başlarlar. Tiplerin verilerinin değişiminin tutulduğu audit tabloları ise AUDIT_T_ ile başlarlar.
Her tip, SİSTEM tipinden türetilir. Sistem tipinde ise o kaydın kim tarafından ne zaman kaydedildiği gibi bilgileri içerir. Sistem tipi bilgiler, PW_SYSOBJECT üzerinde saklanır.
Rapor Servisi (Reporting Services) Nedir ?
Veri kaynakları tanımları ile tip üzerinde ve sistem verilerinde bulunan veriler bir veri grubu haline getirilir ve Paperwork içinde bulunan rapor ve gösterge paneli arayüzleri ile görsel rapor haline getirilerek değerlendirmesi sağlanır.
Eğer bu yapıya başka kaynaklardan da veri eklenmek istenirse, Paperwork üzerinde bulunan DB PlugIn yapısı kullanılabilir. Tanımlamalar ekranında MS SQL, ORACLE ve DB2 için DB PlugIn tanımı direk yapılabilir. Onun haricindeki veri tabanları üzerinde işlem yapmak için ayrıca DB PlugIn geliştirmek gerekir.
Saklama Servisi (Storage Services) Nedir ?
Saklama servisi, dokuman yönetim sistemine dahil edilen tüm belgelerin saklanmasını yönetir. Bu servise de tıpkı veri tabanı gibi sadece uygulama sunucusu erişebilir.
Paperwork tanımlamalar ekranında bulunan depolama birimleri vasıtası ile belgelerin saklanacağı alan tanımlanabilir. Bu tanımlamada, lokal diskler, san diskler, nas diskler, raid sunucusu, bulut, azure gibi sistemler kullanılabilir.
Bu servis üzerinde lisans gerektiren bir sıkıştırma mekanizması da mevcuttur.
Arama servisleri bütün bu saklama servislerinde arama gerçekleştirebilirler.
İndeks Servisi (Indexing Services) Nedir ?
Paperwork platformunda tam metin arama için indeks servisleri bulunur. Belgeler üzerinde çalışan bir OCR motoru vasıtası ile belge üzerinde yakalanan veriler kataloglara yazılır ve tam metin aramaya dahil edilir.
Indeks servisi, CPU yoğun çalışan bir uygulamadır, toplu belge atımı gibi durumlarda, tüm kaynakları tüketebilir. İşlem bittiğinde kaynakları serbest bırakır. Günlük normal belge eklemelerinde çok kısa bir sürede işlemi tamamladığı için bir performans sorunu oluşturmaz.
Bir belgenin tam metin indekslemesine dahil olabilmesi için, ilgili tip tanımlamasında tam metin arama seçeneğinin seçilmiş olması gerekir.
Bu tanımlamada daha sonradan bir düzenleme yapılır ise, tüm belgeleri sıraya alıp tarayacağı için yukarıda belirttiğimiz kaynakları tüketme durumu oluşabilir.
Eğer çok gerekli ise, ikinci bir indeks sunucusu Microsoft SQL Server Express Edition üzerinde, veri tabanı lisansı gerektirmeden kurulabilir.
Elektronik Form Nedir ?
Elektronik formlar, HTML5 teknolojisi ile geliştirilmiş, görsel mantık işlevi olan formlardır. Elektronik formlarda iş mantığına yönelik uyarlamalar yapılmaması tavsiye edilir. Elektronik formlar, hızlı çalışması gereken, çevik yapılar olmalıdır.
Elektronik form, tip tanımlamalarında oluşturulan veri kümesinin değişik amaçlar ile görsellerinin oluşturulması için kullanılır. Bir sürecin kullanıcı önüne gelen her manuel aktivitesi için farklı bir elektronik form tasarlanabilir. Her elektronik form üzerinde tip alanı farklı davranabilir.
Her elektronik form sadece tanım esnasında belirlenen tipe ait olabilir.
Metot (Method) Nedir ?
Metot, Paperwork mimarisinden çalıştırılabilen, Microsoft .Net kod kütüphaneleridir. İki şekilde metot tanımlayabilirsiniz:
Tanımlama arayüzünde editör ve metot şablonları yardımı ile kodlarınızı oluşturup, test ettikten sonra sisteme kaydedebilirsiniz.
Visual Studio ortamında geliştirdiğiniz kütüphanelerinizi sisteme yükleyip, daha önceden oluşturduğunuz iş kurallarınızı ve nesnelerinizi Paperwork'te kullanabilirsiniz.
Oluşturulan bir metot tanımı kaydedildikten sonra, bir elektronik form içerisinden ya da iş akışından çalıştırılabilir. Ayrıca mimaride Job Server adı verilen, tanımlara göre metotları zaman bazlı çalıştırabilen bir mekanizma da bulunmaktadır.
Metotlar, diğer sistemlerle senkronizasyon veya raporlama için de kullanılabilir.
Kullanıcı Yönetimi (Users) Nedir ?
Kullanıcı yönetimi Paperwork üzerinde yapılabilir. Ancak bir LDAP uyumlu domain sunucusu kullanılması halinde Paperwork üzerinde AD Tanımlaması yaparak, kullanıcılar domain ile de senkronize edilebilir. Paperwork Aktif Dizin hizmetleri servisi bir endüstri standardı olan LightWeight Directory Access Protocol (LDAP) ile entegrasyonu destekler. Bu durumda ikinci bir kullanıcı yönetimi yapılmasına gerek kalmaz.
Paperwork birden fazla active directory sunucusu ile senkronize çalışabilir. Bu durumda sahip olunan lisans sayısına dikkat edilmelidir. Lisans sayısı geçilir ise, sonraki kullanıcılar pasif olarak kalacaktır. Lisans adedinden fazla kullanıcı senkronize edilirse, her senkronizasyonda kullanıcılar güvenlik nedeni ile farklı bir sırada alındığından sürekli farklı kullanıcılar pasifte kalacaklardır.
Eğer yukarıda belirttiğimizin dışında başka bir kaynaktan kullanıcı senkronizasyonu gerekli ise, Paperwork üzerinde bulunan User PlugIn yapısı kullanılabilir. Bunun için Paperwork metot mimarisi kullanılmalıdır.
Paperwork üzerinde giriş adı alanı tüm platform bazında benzersizdir. Kullanıcı silinmiş veya pasif olsa bile, veri tabanından silinmediği için aynı giriş adına sahip yeni bir kullanıcı tanımlanamaz. Farklı domain sunucularından bile gelse, giriş adı benzersiz bir alandır.
Aktif Dizin ile senkronize edilen kullanıcıların şifre bilgileri Paperwork üzerinde tutulmaz, her giriş sırasında ilgili domain’den kullanıcı adı ve şifre doğrulaması yapılır.
Paperwork kurulumu esnasında otomatik olarak tanımlanan metot yöneticisi, posta yöneticisi gibi kullanıcılar, lisans adetlerini etkilemezler.