Düşük başarımlı web uygulaması problem analizi ve iyileştirme çalışması: Öğrenci bilgi sistemi ders seçme modülü örneği
Problem analysis and improvement study of low-performance web application: An example of Student Information System course selection module
Yazar: UĞUR TALAŞ
Danışman: DR. ÖĞR. ÜYESİ SALİM CEYHAN
Bilecik Şeyh Edebali Ü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

Özet:
Üniversitelerin tamamında, öğrencinin tüm eğitim süreçlerinin takip edildiği öğrenci bilgi otomasyon sistemleri bulunmaktadır. Ders seçme haftalarında yaşanan aşırı yoğunluk nedeniyle, birçok üniversitede sunucular gelen talep trafiğine cevap veremediğinden sistemin durmasına yol açmaktadır. Bu çalışma kapsamında, Bilecik Şeyh Edebali Üniversitesinin kullanmış olduğu öğrenci bilgi sistemi yazılımı incelenip, yazılım mimarisinde kullanılan sorgulama teknolojilerinde ve sunucu yapılandırmasında geliştirmeler yapılarak bu problemin önüne geçilmiştir. Yeni geliştirilen sistemde ASP.Net mimarisi yerine MVC mimarisi kullanılmıştır. Bu mimariyle birlikte tasarım kısmında Bootstrap kullanılmıştır. Tasarım farklı boyutlardaki ekranlarda uyumlu çalışması  sağlanmıştır. Eski sistem incelendiğinde birçok hesaplama C#'ta, yani sunucu tarafında yapılıyorken sunucuya binen yükü istemcilere taşımak amacıyla hesaplamaların birçoğu JavaScript'te alınmıştır. Bu sayede yapılacak hesaplamaların her birini sunucu değil öğrencinin kullandığı bilgisayarın yapması sağlanmıştır. Bu hesaplamaları yapmak için kullanılan verilerin birbirinin sonucuna bağlı olmayan karmaşık sorguları multi-thread yöntemi ile paralel şekilde sorgulanarak işlemlerin hızlandırılması sağlanmıştır.  Sistemde bir kullanıcının işlem yapması için geçen süre geliştirmeler sayesinde yaklaşık 10 kattan fazla zaman kazancı elde edilerek, IIS'te oluşan kuyrukta bekleme süreleri azaltılıp sistemin hataya düşmesi engellemiştir. Yapılan yazılımsal geliştirmelere ek olarak, uygulama tek bir sunucu üzerinde çalışırken Load Banlance işlemi yapılarak gelen client yoğunluğu dört sunucuya dağıtılmış ve sunucuların önüne talepleri karşılayan bir balancer sunucusu konulmuştur. Bu sayede tekrar benzeri bir problem ile karşılaşılırsa arkada worker olarak çalışan sunucuların sayısı arttırılıp sistemin ayakta kalması sağlanmıştır. Genel olarak, hata ve uygulanan çözüm yöntemine bakıldığında sadece öğrenci otomasyonunda ders seçme modülünde değil yoğunluğa bağlı problem yaşayan tüm otomasyon yazılımları için bu çözümlerin uygulanabilir olduğu düşünülmektedir.
Anahtar Kelimeler: MVC; Load Balance; Multi Thread; Yazılım Performansı; Otomasyon

Abstract:
All of the universities have student automation systems in which all of the student's education processes are monitored. It is known that in the course selection week at the start of the semester, these systems or underlying structure usually cannot handle the high traffic and service outages are experienced. In this study, the student information system used in Bilecik Şeyh Edebali University is re-analyzed and service disruption eliminated by optimizing software architecture, SQL query structure and server configuration. MVC architecture is used instead of Web Form architecture in the re-designed system. Design of the front-end is implemented with Bootstrap and pages are designed to be responsive for different window, screen sizes. While analyzing the old system it is seen that most calculations are done in C# back-end and these calculations are moved to client side by using JavaScript. This allowed the calculations to be performed by the student computers instead of web server. Complex database queries that are not depended on each other's results for these calculations are queried in parallel with multi-threading method in order to achieve speed. Typical system delay for an operation to this eliminated service outage by reducing waiting time in the queue for IIS. In addition to software improvements, a load balancer application is employed in order to distribute the client traffic to four servers with a balancer server in front of them instead of running the software in a single server. Even if high client traffic leads to problems, this method allows the system to operate without service interruption by adding additional worker servers in the load-balancing configuration. The solutions described here for eliminating the service outage for the student automation system can be applied to all automation systems that suffer from same problem due to high volumes of traffic.
Key Words: MVC;  Multi-thread; Load Balance; Software Performance; Automation