MIS-IOT: Modüler akıllı sunucu tabanlı nesnelerin interneti platform yazılımı
MIS-IOT: Modular intelligent server based internet of things framework
Yazar: ARAS CAN ÖNAL
Danışman: DOÇ. DR. AHMET MURAT ÖZBAYOĞLU
TOBB Ekonomi ve Teknoloji Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Nesnelerin interneti = Internet of things

Özet:
Bu tezde, modüler ve açık kaynak olarak geliştirilen bir nesnelerin interneti platformu anlatılmaktadır. Platform arayüz modülü, kümelenmiş sunucu modülü ve öğrenme modülü olmak üzere üç ayrı modül olarak tasarlanmıştır. Platform modüler bir yapıda tasarlandığından, platforma yeni özellikler eklemek ve mevcut özelliklerin bakımını yapmak daha kolaydır. Her modül farklı bir bilgisayar sunucusu üzerine kurulabilir ve birbirleriyle REST mimarisini kullanarak haberleşir. Arayüz modülü tüm platform özelliklerinin arayüz üzerinden kullanılabilmesine imkan tanır ve daha iyi bir kullanıcı deneyimi sunmaktadır. Sunucu modülü platformun sunduğu tüm özelliklerin yönetiminden sorumludur. Öğrenme modülü zaman serisi üzerinde LSTM algoritmasını kullanarak anomali analizi yapar. Kullanıcı CSV(Comma Separated Values) formatındaki dosyayı sisteme yükleyebilir. Buna ek olarak, herhangi bir port üzerinde soket veya REST bağlantısı oluşturarak platformun veriyi bu kaynaklardan dinlemesini sağlayabilir. Herhangi bir port üzerindeki veri akışı platform üzerinden arayüz modülü vasıtasıyla takip edilebilir. Platforma veri yüklendikten sonra, öğrenme görevleri oluşturulabilir. Platform veriyle oluşturulan görev, verisiz oluşturulan görev ve LSTM görevi olmak üzere üç farklı görev tipini desteklemektedir. Veriyle oluşturulan görev tipinde, platformda bulunan veri spesifik kriterlerle daraltılıp, istenilen Python betiğine argüman olarak verilebilir. Verisiz oluşturulan görev tipinde, herhangi bir platform verisi kullanılmadan betik doğrudan çalıştırılır. LSTM görevinde ise, çeşitli LSTM parametreleri ve spesifik bir veri kullanılarak görev oluşturulabilir. Bu seçenekte ayrıca, veri seti üzerinde anomali analizi yapılır ve analiz sonuçları arayüz modülünde grafiksel olarak görüntülenebilir.

Abstract:
In this thesis, the aim is to develop modular and open source internet of things framework. The framework is designed with three separate modules as front end module, clustered server module and learning module. Since the framework is designed with modular approach, adding new features and maintaining the each module is much easier. Each module can be deployed to different host separately and communicate with using REST architecture. The front end module is responsible for offering all framework features with user interface, thus providing better user experience. The server module is responsible for managing all framework features. The learning module handles anomaly analysis of time series data with using LSTM algorithm. The user can upload new data as CSV(Comma Separated Values). In addition to bulk loading data, the user can also create socket or REST connection in desired port for listening data from various sources. Data flow on specific port can also be tracked with user interface. After uploading or listening data from various data sources, learning tasks can be created. The framework supports three different learning task types as task with framework data, task without framework data and LSTM task. Through using task with framework data option, user can create learning task with using existing data with specific criteria. Data is converted to JSON and passed as an argument to the desired Python script. Through using task without framework data option, learning task is created without using any framework data and specified script is executed directly. In LSTM option, the learning task can be created with specifying LSTM parameters and data. In this option, anomaly analysis is made on specified dataset. Result of the anomaly analysis can be seen on the graph using the front end module.