Saydam Artıklı Çalıştırma için Vekil Tasarım Örüntüsü Kullanımı
Loading...
Files
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Open Access Color
OpenAIRE Downloads
OpenAIRE Views
Abstract
In this study, we propose a transparent model for reliable execution
of object-oriented software. We design a generic object-oriented
programming tool for redundant software execution to provide the desired
level of reliability against transient hardware faults. To achieve this,
we utilize the Proxy design pattern which is one of the well-known GoF
design patterns that are formed to make software systems
exible and
easy to maintain. Proxy design pattern provides a controlled access and
a transparent mechanism for adding new functionalities to an existing
object when accessing it. Combining the instruments of dynamic proxy
and annotations in Java programming language, we present, Redundant-
Caller, a generic, transparent, and con gurable tool for redundant execution
and majority voting. Our tool takes any object and creates a
dynamic proxy for it which executes the methods of the object multiple
times in separate threads, and performs majority voting on the
background, requiring minimum amount of change in the original user
code. Thanks to annotations, users can con gure the redundant execution
scheme methodwise. Our experiments demonstrate that our tool
provides a signi cant level of reliability to any object-oriented software
with a reasonable amount of performance degradation through multithreaded
execution.
Bu çalışsmada, nesneye yönelik programların güvenilir bir şekilde çalıştırılması için saydam bir model önermekteyiz. Geçici donanım hatalarıa karşı istenen seviyede güvenilirliği sağlayabilmek amacıyla artıklı (redundant) program çalıştıması için genel bir nesneye yönelik programlama araç tasarladık. Bunun için yazılım sistemlerini esnek ve kolay sürdürülebilir yapabilmek için oluşturulmuş ve yaygınca kullanılan GoF tasarım örüntülerinden biri olan vekil tasarım örünüsünü kullandık. Vekil tasarım örüntüsü, var olan bir nesneye erişirken ona yeni fonksiyonellikler eklemeye yarayan saydam bir düzenek ve kontrollü bir erişim sağlamaktadır. Java programlama dilindeki dinamik vekil ve annotation araçlarını birleştirerek, artıklı çalıştırma ve çoğunluk oylaması için genel, saydam ve yapılandırılabilir bir araç olan RedundantCaller'ı sunmaktayız. Aracımız, herhangi bir nesneyi alır ve özgün kullanıcı koduna en az miktarda değişiklik gerektirerek nesnenin metotlarını farklı iş parçacıkların da çoklu miktarda çalıştıran ve arka planda çoğunluk oylaması yapan bir dinamik vekil yaratır. annotationlar sayesinde, kullanıcılar artıklı çalıştırmayı metot seviyesinde yapılandırabilirler. Deneylerimiz göstermektedir ki; aracımız herhangi bir nesneye yönelik program için çok iş parçacıklı çalıştırma sayesinde makul bir performans düşüşüyle kayda değer bir güvenilirlik seviyesi sağlamaktadır.
Bu çalışsmada, nesneye yönelik programların güvenilir bir şekilde çalıştırılması için saydam bir model önermekteyiz. Geçici donanım hatalarıa karşı istenen seviyede güvenilirliği sağlayabilmek amacıyla artıklı (redundant) program çalıştıması için genel bir nesneye yönelik programlama araç tasarladık. Bunun için yazılım sistemlerini esnek ve kolay sürdürülebilir yapabilmek için oluşturulmuş ve yaygınca kullanılan GoF tasarım örüntülerinden biri olan vekil tasarım örünüsünü kullandık. Vekil tasarım örüntüsü, var olan bir nesneye erişirken ona yeni fonksiyonellikler eklemeye yarayan saydam bir düzenek ve kontrollü bir erişim sağlamaktadır. Java programlama dilindeki dinamik vekil ve annotation araçlarını birleştirerek, artıklı çalıştırma ve çoğunluk oylaması için genel, saydam ve yapılandırılabilir bir araç olan RedundantCaller'ı sunmaktayız. Aracımız, herhangi bir nesneyi alır ve özgün kullanıcı koduna en az miktarda değişiklik gerektirerek nesnenin metotlarını farklı iş parçacıkların da çoklu miktarda çalıştıran ve arka planda çoğunluk oylaması yapan bir dinamik vekil yaratır. annotationlar sayesinde, kullanıcılar artıklı çalıştırmayı metot seviyesinde yapılandırabilirler. Deneylerimiz göstermektedir ki; aracımız herhangi bir nesneye yönelik program için çok iş parçacıklı çalıştırma sayesinde makul bir performans düşüşüyle kayda değer bir güvenilirlik seviyesi sağlamaktadır.
Description
12th Turkish National Software Engineering Symposium, UYMS 2018; Istanbul; Turkey; 10 September 2018 through 12 September 2018
Keywords
Object-oriented programming, Proxy design pattern, Redundant execution, Software reliability
Fields of Science
Citation
Öz, D., Öz, S. ,and Öz, I. (2018, September 10-12). Saydam artıklı çalıştırma için vekil tasarım örüntüsü kullanımı. A. Tarhan and Murat E. (Eds.), Paper presented at 12th Turkish National Software Engineering Symposium, UYMS 2018; Istanbul; Turkey.
WoS Q
Scopus Q
Volume
2201
