Debugging remote services developed on cloud systems
Bulut sistemlerde geliştirilen uzak servislerin hatadan ayaklanması
- Tez No: 512774
- Danışmanlar: DOÇ. DR. TOLGA OVATMAN
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2018
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
- Sayfa Sayısı: 67
Özet
Bulut tabanlı geliştirme platformları, bulut hizmetleri daha kullanılabilir hale geldikçe ve bu platformların performansı arttıkça daha yaygın bir şekilde kullanılmaktadır. Bulut tabanlı bir geliştirme platformu geliştirmede en önemli konulardan biri, geliştiricilerin kodlarını bir IDE geliştirme oturumunda gerçekleştirecekleri kadar verimli ve etkili bir şekilde hata ayıklamalarını sağlamaktır. Özellikle bir uzaktan hizmetin geliştirilmesi gerçekleştiriliyorsa, hata ayıklama istemcisi ve gerçek kodu çalıştıran sunucunun ayrı olması, normal bir hata ayıklama oturumunda bulunmayan birçok sorunun ortaya çıkmasına neden olabilir. Bu çalışmada, uzaktan hata ayıklamada ortaya çıkabilecek sorunlar ile başa çıkmak için bir“kaydet/tekrarla”yaklaşımı önerilmektedir. Normal bir hata ayıklayıcısında geliştirici, hatanın yerini bulmak için hata günlüklerini kontrol etmelidir. Bu çalışmada önerilen hata ayıklayıcısı ile kod geliştiricilerin hata yerini keşfetmelerini kolaylaştıran bir sistem tasarlanmıştır. Önerilen sistemde sunulan kullanıcı arayüzünü kullanarak, geliştiriciler hataları çözebilir ve değişikliklerin hataları düzeltip düzeltmediğini kontrol etmek için çalıştırılan web servislerinin kayıtlı girdileriyle hata oturumunu tekrarlayabilirler. Hata ayıklayıcıyı kullanırken, geliştirici tam kayıt seçeneğini seçerse tüm değişken değerlerini ve web servislerinin girdilerini kaydeder. Böylece geliştirici önceki kayıtların listesinden hatalı çalıştırmayı seçebilir ve kodun hatalarını ayıklayabilir/yeniden yürütebilir. Ardından geliştirici, mevcut kodun kaydedilen girdilerle hatalarını ayıklayabilir. Hata ayıklama oturumunda, veritabanı ve web servislerinin mevcut durumu kullanılarak satır satır çalıştırılacaktır. Önerilen sistemde geliştirici kesme noktaları kullanabilir. Böylece geliştiriciye sunulan“devam et”butonuna basılırsa, hata ayıklayıcı ilk kesme noktasına ulaşana kadar satır satır kod yürütmeye devam edecektir. Geliştirici ayrıca değişkenlerin eski değerlerini göstermek için tekrar oynatma düğmesini kullanabilir ve bunu yaparak geliştiricinin web hizmet kayıtlarını detaylıca incelemeden oluşan hatayı anlayabilmesi sağlanır. Çalışmada ayrıca, yaklaşımın mümkün olduğunca düşük bir iletişim ek maliyeti oluşturması için, yeni bir kayıt türü (minimum kayıt) önerilmektedir. Minimum kayıt hata ayıklayıcı değişken değerlerini sadece bir veritabanı sorgusu veya bir web servis çağrısı gibi harici veri erişimi için kaydeder. Web hizmeti hatasız çalışıyorsa, hata ayıklayıcı ekstra verileri kaydetmez. Hata ayıklayıcı, ilgili web hizmeti aykırı bir durum oluşturduğunda kayıt tipine göre ilgili değişken değerlerini kaydeder ve daha sonra uzak hizmetin hata ayıklamasını gerçekleştiren istemcide satır satır tekrar oynatılmasına olanak verir. Hata ayıklayıcı,“adım adım”,“devam et”ve“geri adım”düğmeleri gibi temel hata ayıklayıcı özelliklerini de içerir. Geri adım özellikleri sadece tam kayıt seçeneği ile çalışır. Bu tür hata ayıklama yaklaşımları literatürde“Zaman Yolculuğu Hata Ayıklama”olarak adlandırılmaktadır. Geliştirilen sistemde, hata ayıklamaya olanak sunan programlama dili olarak temel java fonksiyonunu kolayca çalıştırabilen br betik dili olan MVEL dili kullanıldı. Hata ayıklanabilen betik komut seti içerisinde sınırlı bir alt küme desteklendi. Bu alt küme içerisinde: ForEachNode, ForNode, IfNode, DeclTypedVarNode, AssignmentNode, DeepAssignmentNode, ASTNode gibi yapılar bulunmaktadır. Kayıt oturumu sırasında üst düzey yürütme noktalarını saklamak için bir yürütme yığını kullanılmıştır. Kesme noktaları eklemek ve kaldırmak için bazı web hizmetleri eklenmiştir: insertBreakpoint ve removeBreakpoint. Hata ayıklayıcının istemci tarafı, bu web hizmetini çağırmakta ve yürütmenin burada durdurulacağını belirtmek için satırın soluna küçük bir işaretçi eklemektedir. Geliştriilen hata ayıklayıcıyı kullanarak, işlevin herhangi bir parametresinin yalıtılmış bir fonksiyonunun hataları ayıklanabilir. Çalışmada sunulan sistem gelecekte farklı yönlerde geliştirilebilir. Bunlardan ilki geliştiriciye farklı koşullarda farklı tip kayıtların yapılmasına olanak verilmesi olabilir. Örneğin, sadece keritik düzeyde hatalar oluştuğunda tam kayıtların saklanması, aksi durumlarda hata kayıtlarının belirli bir süre sonra silinmesi gibi. Bununla birlikte çalışma kaydı performansının artırılması için çoklu iş parçaçıkları da kullanılabilir. Özellikle birden fazla alt iş parçacağının kullanıldığı sunucu tarafı programlarında bu işlevin önem kazanacağı düşünülmektedir. Son olarak sunulan sistemin bazı değişkenleri kaydetme şekli özelleştirilebilir. Örneğin tüm değişken değerlerini saklamak yerine, örneğin listeler içerisinde bulunan eleman sayısını ve değişken tiplerini saklayarak sistemin ürettiği ek veri miktarı düşürülebilir. Bu çalışmada önerilen yaklaşım, gerçek dünya bulut tabanlı bir yazılım geliştirme platformuna entegre edilmiştir ve yaklaşımın yararını göstermek için bazı örnek denemeler için çalışma zamanı ek yükü ölçülmüştür. Yapılan ölçümler sonucunda özellikle minimum kayıt tipi aktive edildiğinde, MVEL betiklerinin hata ayıklanmasında sisteme göz ardı edilebilecek düzeyde az yük bindiği görülmüştür. Çalışma sonucu ortaya koyulan yaklaşımların hedef kullanım alanı bulut üzerinde yazılım geliştirmeye olanak sunan sistemlerdir. Her ne kadar çalışmada MVEL ile yazılım geliştirme yapılan bir sistem üzerinde denemeler yapılmış olsa da herhangi farklı bir programlama dilinin kullanımı sunulan yaklaşımların uygulanabilirliğini etkilemez. Sunulan yaklaşımlara yönelik önemli bir kısıt ise minimum kayıt yapılmadığı zaman yaklaşımın uygulanabilirliğinin görece küçük kodlar için uygun hale gelmesidir. Binlerce satırdan ve değişkenden oluşan büyük yazılımların hata ayıklamasında ek optimizasyonların devreye girmesi gerekmektedir. Öte yandan bulut üzerinde sunulan geliştirme ortamları daha ziyade küçük çaplı, az sayıda satır ve değişken içeren betikleri hedeflediğinden sunulan yaklaşımın kullanılırlığının yüksek olduğu söylenebilir. Gelecekte daha karmaşık sistemlerin bulut üzerinde geliştirilmeye başlamasıyla minimum kayıt yöntemine benzer yöntemlerin geliştirilmesi ile bu tezde sunulan çalışmalar geliştirilebilir.
Özet (Çeviri)
Cloud based development platforms are getting more widely used as the cloud services become more available and the performance of such platforms increase. One of the key issues in providing a cloud based development platform is to enable the developers to debug their code just as efficiently and effectively as they would perform in a desktop IDE development session. However, especially if the development of a remote service is being carried out, the debugging client and the server running the actual code is separated, disclosing many problems which are not present in a usual debugging session. This study proposes a record/replay approach to deal with the problems of remote debugging. The debugger saves all the variables values if the developer selects the full recording option.The debugger saves the inputs of the web services so the developer can select the erroneous execution from the list of previous calls then the developer can debug or replay the code. Debugging the code will execute the code line by line using the current situation of the database and web services. The developer can use breakpoints so if the continue buttton is pressed the debugger will continue executing line by line until reaching the first breakpoint. Developer can also use the replay button to show the old values of the variables and by doing so the developer can understand the previous error without a deep checking in the web service logs. To keep the communication overhead of the approach as small as possible, a new type of recording is proposed (the minimal recording), in the minimal recording the debugger saves the variable values only for external data access such as getting the data from a database query or a web service call. The debugger will not save extra data if the web service is working without errors. The debugger stores the related variable values regarding the recording type when the web service throws an exception allowing the debugger to execute the web service later line by line in the client's debugging session. The debugger contains the basic debugger features like step over, continue and step back buttons. The step back features works only with the full recording option. In this case we can name the debugging as TTD (Time Travel Debugging). The proposed approach is integrated to a real world cloud based development platform and the run-time overhead is measured on some case studies to demonstrate the usefulness of the approach.
Benzer Tezler
- VTAM'in incelenmesi ve bir VTAM uygulaması
VTAM application programming
AHMET TEKELİOĞLU
Yüksek Lisans
Türkçe
1994
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiPROF.DR. EMRE HARMANCI
- İstanbul boğazı geçişi yapan gemiler için makine öğrenmesi uygulamaları ve kantitatif risk analizi
Machine learning applications and quantitative risk analysis for ships passing through the istanbul strait
MUSTAFA TOPAL
Yüksek Lisans
Türkçe
2021
Denizcilikİstanbul Teknik ÜniversitesiDeniz Ulaştırma Mühendisliği Ana Bilim Dalı
PROF. DR. YASİN ARSLANOĞLU
- Uzaktan denetim sistemlerinin veri bağlantı kontrolü
Başlık çevirisi yok
KAAN ERKAN
Yüksek Lisans
Türkçe
1996
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiDOÇ.DR. BÜLENT ÖRENCİK
- Gömülü sistemlerde sesli komut tanıma
Voice command recognation in embedded systems
CAN ÇETİN
Yüksek Lisans
Türkçe
2020
Mekatronik Mühendisliğiİstanbul Teknik ÜniversitesiMekatronik Mühendisliği Ana Bilim Dalı
PROF. DR. MUSTAFA DOĞAN
- Uzaktan ve yüzyüze eşli programlama yöntemlerinin programcı performansına etkisi
Impacts of remote and face-to-face pair programming methods on programmer performance
ÇAĞATAY AKTAŞ
Yüksek Lisans
Türkçe
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolGebze Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. MEHMET GÖKTÜRK