DOI: 10.17586/2226-1494-2020-20-3-410-417


УДК004.45

МЕТОД ОБЕСПЕЧЕНИЯ ПЕРЕНОСИМОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ ПЕРЕНАЦЕЛИВАЕМОЙ СРЕДЫ ВЫПОЛНЕНИЯ ПРОГРАММ



Читать статью полностью 
Язык статьи - русский

Ссылка для цитирования:
Логинов И.П., Дергачев А.М., Павловский Е.А. Метод обеспечения переносимости программного обеспечения на основе перенацеливаемой среды выполнения программ // Научно-технический вестник информационных технологий, механики и оптики. 2020. Т. 20. № 3. С. 410–417. doi: 10.17586/2226-1494-2020-20-3-410-417


Аннотация
Предмет исследования. Исследованы подходы к разработке переносимого программного обеспечения на уровне бинарного и исходного программного кода, а также факторы, влияющие на переносимость, такие как совместимость целевых платформ на уровне программных и бинарных интерфейсов приложений, стандартизация языков программирования, программная архитектура, функциональные возможности программных целевых платформ и наличие инструментального программного обеспечения. Рассмотрены современные подходы к обеспечению переносимости на основе виртуальных сред выполнения программ для языка Java и платформы .NET. Метод. Предложен метод обеспечения переносимости программного обеспечения на основе двухэтапной компиляции и применения языка описания архитектур для настройки транслятора, что позволяет решать задачу переносимости программного обеспечения на уровне среды выполнения программ, а также новый подход к реализации само- настраивающейся среды выполнения, параметрами конфигурации которой являются архитектурно-зависимые метаданные — описания целевых платформ. Для получения бинарного образа среды выполнения для заданной целевой платформы не требуется наличие ее исходного кода. Генерация образа выполняется на основе метаданных, входящих в состав существующего образа, который используется как утилита-построитель. Основные результаты. Определены требования к реализации среды выполнения программ, а также ее архитектура на уровне функциональных компонентов. Предложен новый подход к реализации среды выполнения, позволяющий обеспечить переносимость без перекомпиляции исходного кода как пользовательских приложений, так и самой среды выполнения. Разработан сценарий использования среды выполнения для генерации ее бинарного образа, нацеленного на заданную платформу. Практическая значимость. Обеспечение бинарной переносимости среды выполнения программ позволит снизить трудозатраты на реализацию кроссплатформенных приложений.

Ключевые слова: переносимость, кроссплатформенное программное обеспечение, среда выполнения, язык описания архитектур, двухэтапная компиляция

Благодарности. Работа выполнена в рамках проекта «Разработка методологической и технической основы для создания средства построения компиляторов для устройств Интернета вещей», поддержанного ФГБУ «Фонд содействия развитию малых форм предприятий в научно-технической сфере».

Список литературы
  1. Hook B. Write Portable Code: An Introduction to Developing Software for Multiple Platforms. No Starch Press, 2005. 272 p.
  2. Kozuch M.A., Kaminsky M., Ryan M.P. Migration without Virtualization // Proc. of HotOS'09: 12th Workshop on Hot Topics in Operating Systems. 2009.
  3. Sahoo J., Mohapatra S., Lath R. Virtualization: A survey on concepts, taxonomy and associated security issues // Proc. 2nd International Conference on Computer and Network Technology (ICCNT 2010). 2010. P. 222–226. doi: 10.1109/ICCNT.2010.49
  4. Klima P., Selinger S. Towards platform independence of mobile applications metamorphosing android applications for the web // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). 2013. V. 8112. Part 2. P. 442–449. doi: 10.1007/978-3-642-53862-9-56
  5. Stehle T., Riebisch M. A porting method for coordinated multiplatform evolution // Journal of Software: Evolution and Process. 2019. V. 31. N 2. P. e2116. doi: 10.1002/smr.2116
  6. Mooney J.D. Bringing Portability to the Software Process: Technical Report TR 97-1. Dept. of Statistics and Computer Science, West Virginia Univ., Morgantown, WV, 1997. 9 p.
  7. Mooney J.D. Developing portable software // IFIP Advances in Information and Communication Technology. 2004. V. 157. P. 55–84. doi: 10.1007/1-4020-8159-6_3
  8. Kagström S. Tools, techniques, and trade-offs when porting large software systems to new environments: Doctoral Dissertation. Blekinge Institute of Technology, 2008. 176 p.
  9. Stehle T., Riebisch M. Establishing common architectures for porting mobile applications to new platforms // Softwaretechnik-Trends. 2015. V. 35. N 2.
  10. Washizaki H., Yamamoto H., Fukazawa Y. A metrics suite for measuring reusability of software components // Proc. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No. 03EX717). 2004. P. 211–223. doi: 10.1109/METRIC.2003.1232469
  11. Boehm B. Managing software productivity and reuse // Computer. 1999. V. 32. N 9. P. 111–113. doi: 10.1109/2.789755
  12. Бурый А.С., Морин Е.В. Оценивание программных средств по множеству признаков // Известия высших учебных заведений. Приборостроение. 2019. Т. 62. № 10. С. 907–913. doi: 10.17586/0021-3454-2019-62-10-907-913
  13. Mooney J.D. Issues in the specification and measurement of software portability // Poster session at the 15th International Conference on Software Engineering. 1993.
  14. Raymond E.S. The Art of UNIX Programming. Addison-Wesley Professional, 2003. 560 p.
  15. Tanenbaum A.S., Klint P., Bohm W. Guidelines for software portability // Software: Practice and Experience. 1978. V. 8. N 6. P. 681–698. doi: 10.1002/spe.4380080604
  16. Mooney J.D. Portability and reusability: common issues and differences // Proc. of the 1995 ACM 23rd Annual Conference on Computer Science. 1995. P. 150–156. doi: 10.1145/259526.259550
  17. Korenkov I., Loginov I., Doronin O., Sadyrin D., Dergachev A. Retargetable compiler design issues // Proc. 19th International Multidisciplinary Scientific GeoConference: SGEM. 2019. V. 19. N 2.1. P. 561–568. doi: 10.5593/sgem2019/2.1/S07.074
  18. Qin W., Malik S. Architecture description languages for retargetable compilation // The Compiler Design Handbook: Optimizations and Machine Code Generation. 2002. P. 535–564. doi: 10.1201/9781420040579
  19. Korenkov I., Loginov I., Dergachev A., Lazdin A. Declarative target architecture definition for data-driven development toolchain // Proc. 18th International Multidisciplinary Scientific GeoConference: SGEM: Surveying Geology & Mining Ecology Management. 2018. V. 18. N 2.1. P. 271–278. doi: 10.5593/sgem2018/2.1/S07.035


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Информация 2001-2020 ©
Научно-технический вестник информационных технологий, механики и оптики.
Все права защищены.

Яндекс.Метрика