Kuika Platformu, web ve mobil uygulamaların minimum kod gereksinimiyle, görsel arayüz yardımıyla hızlı ve etkili bir biçimde geliştirilmesini sağlar. Bu süreç, aşağıdaki temel özellikleri içerir:
Web tabanlı tasarım ortamında sürükle ve bırak yöntemleri kullanılarak uygulama geliştirme gerçekleştirilir.
Geliştirme sonucunda platform, dağıtıma hazır çeşitli çıktı türleri üretir:
C#, React, Swift UI ve Kotlin dillerinde kaynak kodları,
Dockerfile’lar,
Platform bağımsız build klasörleri,
Mobil uygulamalar için .ipa (iOS) ve .apk (Android) uzantılı paket dosyaları.
Kuika geliştirme ortamı, kullanıcılara özel olarak ayrılmış Workspace üzerinde çalışır. Bu workspace içerisinde kullanıcı rollerine göre yetkilendirmeler yapılabilir. Bu roller, Workspace Owner, Finance Manager, Supervisor, Devops ve Meber gibi genel kullanıcı rolleridir. Buna ek olarak her bir uygulama için ayrıca Project Owner, Developer, Designer ve Viewer gibi proje özelinde roller de tanımlanabilir.
Platformun Temel Bileşenleri
Frontend Environment ve CI/CD Tools
Kuika Platformu ana bileşenlerinden biri geliştirme süreçlerininin yürütüldüğü sürükle bırak mimarisi ile çalışan Frontend Environment’tir. Bu bileşen kullanıcı arayüzlerinin tasarlanması ve yönetimi için kullanılmaktadır.
Kuika platformu, Görselde yer alan diyagramda gösterildiği üzere CI/CD araçlarına bağlanmaktadır. CI/CD araçları, Kuika'da üretilen çıktıların dağıtım süreçlerine entegre edildiği araçları ifade eder.
Diyagramda CI/CD TOOLS olarak gösterilen bu araçlar, Kuika'dan üretilen uygulama çıktılarının (kaynak kodlar, Dockerfile’lar vb.) alınarak Application Runtime Environment'a dağıtımını yönetir. Bu süreçler, kullanıcıların kendi DevOps politikalarına göre yapılandırılmalıdır. CI/CD araçları aracılığıyla uygulama Build ve Deployment süreçlerinin otomasyonu sağlanır.
Kuika Uygulamalarının Çalışma Zamanı Ortamı (Runtime Environment)
Bu bölüm, Kuika platformu ile geliştirilen uygulamaların fiilen çalıştığı ortamı tanımlamakta ve topoloji diyagramının ana odak noktasını oluşturmaktadır. Bu çalışma ortamı; Kubernetes, Docker veya IIS gibi teknolojiler üzerinde kurulabilir ve hem Windows Server hem de Linux sistemleri tarafından desteklenir.
Çalışma zamanı ortamı aşağıdaki ana bileşenleri içerir:
1. Frontend Katmanı (APP x FRONTEND)
Bu katman, geliştirilen uygulamaların kullanıcı arayüzlerini (UI) barındırır:
Hem çözünürlüğe duyarlı (Responsive) web uygulamaları, hem de yerel (Native) iOS ve Android uygulamaları geliştirilebilir.
Web frontend genellikle React ile, mobil frontend ise Native Android uygulamalarda Kotlin, Native iOS uygulamalarda Swift UI ile oluşturulur.
Frontend katmanı, Backend katmanı ile iletişim halindedir. Bu iletişim, genellikle Backend for Frontend (BFF) mimarisi ile oluşturulmuş özelleştirilmiş API'ler aracılığıyla gerçekleştirilir ve böylece güvenli ve kontrollü bağlantı sağlanır.
Birden fazla frontend uygulamasının bulunduğu durumlarda, Micro Frontend yaklaşımı kullanılabilir. Bu yaklaşımda CORS (Cross-Origin Resource Sharing) yapılandırmaları büyük önem taşır.
2. Backend Katmanı (APP x BACKEND)
Bu katman, uygulamaların iş mantığını ve veri erişimini yönetir:
Backend katmanı .NET Core teknolojisi kullanılarak geliştirilir. Ek olarak yapay zeka servisleri için Python kullanılmaktadır.
Platformun temel özelliklerinden biri olan RESTful API oluşturma yeteneği sayesinde, hem frontend uygulamalarıyla hem de diğer harici sistemlerle veri alışverişi kolaylıkla gerçekleştirilir.
Backend katmanı, veritabanı sunucusu (DB SERVER) ve iş akışı motoru (Workflow Engine) ile doğrudan iletişim halindedir.
3. Veritabanı Sunucusu (DB SERVER)
Bu katman, geliştirilen uygulamaların ana veri saklama işlemini gerçekleştirir:
Kuika platformu, diyagramda da belirtildiği üzere MSSQL, Oracle, PostgreSQL gibi farklı veritabanı türlerini destekler.
Kuika ile geliştirilen uygulamaların sorunsuz çalışabilmesi için, uygulamaların servis edildiği sunucularda MSSQL Server 2019 ve üstü sürümleri ya da Oracle Versiyon 19 ve üzeribir veritabanı sürümünün kullanılması gerekmektedir.
Kullanıcı rol ve yetkilendirmeleri genellikle MSSQL veritabanı üzerinde yönetilir.
Veritabanına erişim sağlamak için bağlantı bilgileri ve yetkilendirme gereklidir.
Örnek bağlantı notasyonu:
Server=<ip>,<port>; Database=<DBName>; User Id=<Username>; Password=<Password>;
4. İş Akışı Motoru (Workflow Engine)
Bu bileşen, uygulamalardaki iş süreçlerinin otomasyonu ve yönetimi amacıyla kullanılır:
BPMN 2.0 notasyonunu destekler.
.NET Core üzerinde çalışan entegre bir iş akışı motorudur.
Workflow motorunun kendine ait bir veritabanı sunucusu (Workflow DB SERVER) bulunur ve MSSQL veritabanını kullanır.
Bu motor, çeşitli web ve mobil uygulamalar için tek merkezli iş akışı yönetimi sağlar.
Bileşenler Arası Etkileşimler
Kuika platformunun mimarisinde, sunulan bileşenler arasında yüksek performanslı ve güvenli bir çalışma süreci sağlamak üzere optimize edilmiş etkileşim yapıları yer almaktadır. Her bir bileşen, sistemin genel işleyişini destekleyecek şekilde birbirine entegre çalışır. Bu etkileşimler, aşağıdaki şekilde detaylandırılabilir:
Frontend uygulamaları, Backend katmanına ait API'lere çağrı yaparak veri alışverişinde bulunur. Bu iletişim genellikle Backend for Frontend (BFF) katmanı aracılığıyla yönetilir.
Backend uygulamaları, iş mantığını yürütmek ve veri işlemlerini gerçekleştirmek için doğrudan Veritabanı Sunucusu (DB SERVER) ile etkileşime girer.
Bazı özel iş süreçleri veya otomasyon görevleri için, Backend uygulamaları ayrıca Workflow Engine (İş Akışı Motoru) ile iletişim kurabilir. Workflow Engine ise kendi özel veritabanı sunucusuna (Workflow DB SERVER) erişir.
Mobil uygulamalar, doğrudan kendilerine özgü yapılandırılmış olan Mobile Backend servisleri ile iletişim halindedir.
Run Time ortamı; IIS, Nginx veya Kubernetes gibi web sunucuları veya konteyner platformları üzerinde yapılandırılır. Uygulamalara erişim sağlanabilmesi için, sunucularda gerekli ağ yapılandırmaları yapılmalıdır:
HTTP (80) ve HTTPS (443) portları açılmalı,
Alan adları (domain), alt alan adları (subdomain) ve SSL sertifikaları düzgün bir şekilde yapılandırılmalıdır.
Birden fazla frontend uygulamasının bulunması ya da farklı alan adları (domainler) arasında kaynak paylaşımı olması durumunda, CORS (Cross-Origin Resource Sharing) ayarları yapılmalıdır. Bu ayarlar:
IIS sunucusunda web.config dosyası üzerinden,
Nginx sunucusunda ise nginx.conf dosyası üzerinden yapılabilir.
Web uygulamalarının performansını artırmak amacıyla gzip ve brotli gibi sıkıştırma yöntemleri kullanılmalıdır. Bu yöntemlerle kullanıcı deneyimi ve uygulama yüklenme hızları önemli ölçüde iyileştirilebilir.