Uygulama Yapısı
Her IronFlock uygulaması, uygulama kodunuzu ve isteğe bağlı bir .ironflock yapılandırma dizinini içeren Git sürümlü bir klasördür.
Dizin Düzeni
my-app/
├── Dockerfile # Zorunlu: container imajını tanımlar
├── docker-compose.yml # İsteğe bağlı: çoklu container kurulumu
├── main.py # Uygulama kodunuz (herhangi bir dil)
├── requirements.txt # Bağımlılıklar
└── .ironflock/
├── board-template.yml # Dashboard düzeni
├── data-template.yml # Telemetri için veritabanı şeması
├── env-template.yml # Kullanıcı tarafından yapılandırılabilir parametreler
├── port-template.yml # Uzaktan erişim port tanımları
└── ai-template.yml # AI ajan tanımlarıBir Uygulamanın Altı Parçası
1. Edge Kodu
Temel uygulama mantığı. Bu kod, cihazda Docker container içinde çalışır ve sensörler, PLC’ler, kameralar veya bağlı herhangi bir donanımla iletişimi yönetir.
Edge kodu herhangi bir programlama dilinde yazılabilir — Docker container içinde çalışan Python, JavaScript, Go, Rust, C++ veya başka herhangi bir şey.
2. Pano (Kullanıcı Arayüzü)
Kodsuz Pano Editörü ile oluşturulmuş gerçek zamanlı bir dashboard. Panolar, projedeki uygulamayı çalıştıran tüm cihazların verilerini görüntüler ve mesajlaşma sistemi aracılığıyla otomatik olarak güncellenir.
Pano yapılandırması board-template.yml dosyasında saklanır ve editör tarafından otomatik olarak oluşturulur.
3. Veri Depolama
Her projenin kendi fiziksel veritabanı vardır (TimescaleDB tarafından desteklenir). Bir uygulama data-template.yml içinde tablolar tanımladığında, bir kullanıcı uygulamayı kurduğunda bu tablolar otomatik olarak hazırlanır. Veriler proje başına gizlidir — geliştiricilerin kullanıcı verilerine erişimi yoktur.
4. Mesajlaşma Alanı
Kurulduğunda, uygulama şunları birbirine bağlayan özel bir mesaj alanı alır:
- Edge cihazlardaki tüm uygulama örnekleri
- Proje veritabanı
- Pano arayüzü
İletişim, IronFlock SDK’ları aracılığıyla WAMP (Web Application Messaging Protocol) kullanır (Python için ironflock-py, JavaScript için ironflock-js).
5. Uzaktan Erişim
Cihaz servislerine güvenli tünel oluşturmak için port-template.yml içinde portları ve protokolleri tanımlayın. Kullanıcılar daha sonra bu tünelleri cihaz başına etkinleştirebilir veya devre dışı bırakabilir. Bkz. Uzaktan Erişim.
6. AI Ajanları
Alan bazında AI ajanlarını ai-template.yml aracılığıyla gösterin; bunlar IronFlock AI asistanını genişletir. Bkz. AI Özellikleri.
Cihazlarda Kalıcı Depolama
Varsayılan olarak, container içindeki veriler yeniden başlatmada kaybolur. Yeniden başlatmalar arasında iki dizin kalıcıdır:
| Yol | Kapsam |
|---|---|
/data | Bu uygulamaya özel — diğer uygulamalar erişemez |
/shared | Cihazdaki tüm uygulamalar arasında paylaşılır |
Docker Compose kullanıyorsanız, docker-compose.yml dosyanızda kalıcı volume’leri yapılandırın.
Donanım Erişimi
Uygulamanız yerel donanımla (sensörler, kameralar, seri cihazlar) etkileşime giriyorsa, bu cihazlar container içinde /dev konumuna bağlanır.