Еволюція вебінтерфейсів прикладного програмування: рушійні сили, вплив на клієнтів та шаблони для надавачів

Т.В. Пучко, аспірант

Інститут проблем моделювання в енергетиці ім. Г.Є. Пухова НАН України
Україна, 03164, Київ, вул. Генерала Наумова, 15
тел. +380931172412, e-mail: Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.

Èlektron. model. 2023, 45(4):61-77

https://doi.org/10.15407/emodel.45.04.061

АНОТАЦІЯ

Описано поточний стан досліджень з пошуку ефективних методів підтримання суміс­ності між надавачами вебінтерфейсів прикладного програмування та їхніми клієнтами. Розглянуто причини та типи змін у вебінтерфейсах прикладного програму­ван­ня, вплив змін на клієнтів, шаблони для розробників, адаптаційні методи та регресійне тестування.

КЛЮЧОВІ СЛОВА:

вебінтерфейси прикладного програмування, еволюція, сумісність.

СПИСОК ЛІТЕРАТУРИ

  1. State of the practice in application programming interfaces (APIs): a case study / M. Raati­kainen et al. Software architecture: 15th European conference, ECSA 2021, virtual event, Sweden, September 13-17, 2021, proceedings. LNCS 12857 / ed. by S. Biffl et al. Cham, 2022. P. 191- URL: https://doi.org/10.1007/978-3-030-86044-8_14 (date of access: 01.03.2023).
  2. Bonorden L., Riebisch M. API deprecation: a systematic mapping study. 2022 48th euromicro conference on software engineering and advanced applications (SEAA), Gran Canaria, Spain, 31 August ― 2 September 2022. 2022. P. 451- URL: https://doi.org/10.1109/sea56994.2022.00076 (date of access: 02.03.2023).
  3. Interface evolution patterns: balancing compatibility and extensibility across service life cycles / D. Lübke et al. EuroPLop '19: Proceedings of the 24th European conference on pattern languages of programs, Irsee, Germany, 3-7 July 2019. New York, NY, USA, 2019. URL: https://doi.org/10.1145/3361149.3361164 (date of access: 03.03.2023).
  4. Classification of changes in API evolution / R. Koçi et al. 2019 IEEE 23rd international enterprise distributed object computing conference (EDOC), Paris, France, 28-31 October 2019. 2019. P. 243- URL: https://doi.org/10.1109/edoc.2019.00037 (date of access: 04.03.2023).
  5. Godefroid P., Lehmann D., Polishchuk M. Differential regression testing for REST APIs. ISSTA 2020: Proceedings of the 29th ACM SIGSOFT international symposium on software testing and analysis, Virtual Event, USA, 18-22 July 2020. New York, NY, USA, 2020. P. 312–323. URL: https://doi.org/10.1145/3395363.3397374 (date of access: 05.03.2023).
  6. Service evolution patterns / S. Wang et al. 2014 IEEE international conference on web services (ICWS), Anchorage, AK, USA, 27 June ― 2 July 2014. 2014. P. 201- URL: https://doi.org/10.1109/icws.2014.39 (date of access: 06.03.2023).
  7. Lamothe M., Guéhéneuc Y.-G., Shang W. A systematic review of API evolution literature. ACM Computing Surveys. 2021. Vol. 54, no. 8. P. 1- URL: https://doi.org/10.1145/ 3470133 (date of access: 07.03.2023).
  8. The driving forces of API evolution / W. Granli et al. IWPSE 2015: Proceedings of the 14th international workshop on principles of software evolution, Bergamo, Italy, 30 August New York, NY, USA, 2015. P. 28-37. URL: https://doi.org/10.1145/2804360. 2804364 (date of access: 08.03.2023).
  9. How does web service API evolution affect clients? / J. Li et al. 2013 IEEE international conference on web services (ICWS), Santa Clara, CA, USA, 28 June ― 3 July 2013. 2013. P. 300- URL: https://doi.org/10.1109/icws.2013.48 (date of access: 09.03.2023).
  10. Wang S., Keivanloo I., Zou Y. How do developers react to RESTful API evolution?. Service-Oriented computing: 12th international conference, ICSOC 2014, Paris, France, November 3-6, 2014, proceedings. LNCS 8831 / ed. by X. Franch et al. Berlin, Heidelberg, 2014. P. 245- URL: https://doi.org/10.1007/978-3-662-45391-9_17 (date of access: 10.03.2023).
  11. Sohan S.M., Anslow C., Maurer F. A case study of web API 2015 IEEE world congress on services (SERVICES), New York City, NY, USA, 27 June ― 2 July 2015. 2015. P. 245-252. URL: https://doi.org/10.1109/services.2015.43 (date of access: 11.03.2023).
  12. Di Lauro F., Serbout S., Pautasso C. Towards large-scale empirical assessment of web APIs evolution. Web engineering: 21st international conference, ICWE 2021, Biarritz, France, May 18-21, 2021, proceedings. LNCS 12706 / ed. by M. Brambilla et al. Cham, 2021. P. 124- URL: https://doi.org/10.1007/978-3-030-74296-6_10 (date of access: 12.03.2023).
  13. Di Lauro F., Serbout S., Pautasso C. A large-scale empirical assessment of web API size evolution. Journal of Web Engineering. 2022. Vol. 21, no. 6. P. 1937- URL: https://doi.org/10.13052/jwe1540-9589.2167 (date of access: 13.03.2023).
  14. Espinha T., Zaidman A., Gross H.-G. Web API fragility: how robust is your mobile application?. 2015 2nd ACM international conference on mobile software engineering and systems, Florence, Italy, 16-17 May 2015. 2015. URL: https://doi.org/10.1109/mobilesoft.2015.9 (date of access: 14.03.2023).
  15. Yasmin J., Tian Y., Yang J. A first look at the deprecation of RESTful APIs: an empirical study. 2020 IEEE international conference on software maintenance and evolution (ICSME), Adelaide, SA, Australia, 28 September ― 2 October 2020. 2020. URL: https://doi.org/10.1109/icsme46990.2020.00024 (date of access: 15.03.2023).
  16. Di Lauro F., Serbout S., Pautasso C. To deprecate or to simply drop operations? An empirical study on the evolution of a large OpenAPI collection. Software architecture: 16th European conference, ECSA 2022, Prague, Czech Republic, September 19-23, 2022, proceedings. LNCS 13444 / ed. by I. Gerostathopoulos et al. Cham, 2022. P. 38- URL: https://doi.org/10.1007/978-3-031-16697-6_3 (date of access: 16.03.2023).
  17. Espinha T., Zaidman A., Gross H.-G. Web API growing pains: stories from client developers and their code. 2014 software evolution week ― IEEE conference on software maintenance, reengineering and reverse engineering (CSMR-WCRE), Antwerp, Belgium, 3-6 February 2014. 2014. P. 84- URL: https://doi.org/10.1109/csmr-wcre.2014.6747228 (date of access: 17.03.2023).
  18. Espinha T., Zaidman A., Gross H.-G. Web API growing pains: loosely coupled yet strongly tied. Journal of Systems and Software. 2015. Vol. 100. P. 27- URL: https://doi.org/10.1016/j.jss.2014.10.014 (date of access: 18.03.2023).
  19. Campinhos J., Seco J. C., Cunha J. Type-safe evolution of web services. 2017 IEEE/ACM 2nd international workshop on variability and complexity in software design (VACE), Buenos Aires, Argentina, 27 May 2017. 2017. URL: https://doi.org/10.1109/vace.2017.6 (date of access: 19.03.2023).
  20. Robust contract evolution in a typesafe microservices architecture / J. C. Seco et al. The Art, Science, and Engineering of Programming. 2020. Vol. 4, no. 3. 10. URL: https://doi.org/10.22152/programming-journal.org/2020/4/10 (date of access: 21.03.2023).
  21. Bustamante R., Garcés K. Managing evolution of API-driven IoT devices through adaptation chains. 23rd Ibero-American conference on software engineering (CIbSE 2020), Online Event, 6 May 2023 ― 9 May 2020. 2020. P. 85- URL: https://cibse2020.ppgia.pucpr.br/images/artigos/3/S03_P1.pdf (date of access: 21.03.2023).
  22. Beurer-Kellner L., von Pilgrim J., Kehrer T. Round-trip migration of object-oriented data model instances. Joint proceedings of the 13th and 14th tool transformation contests (TTC 2020/2021), Virtual Event, Bergen, Norway, 17 June 2020 / ed. by A. Boronat, A. García-Domínguez, G. Hinkel. 2022. URL: https://ceur-ws.org/Vol-3089/ttc20_paper1_Beurer pdf (date of access: 22.03.2023).
  23. Knoche H., Hasselbring W. Continuous API evolution in heterogenous enterprise software systems. 2021 IEEE 18th international conference on software architecture (ICSA), Stuttgart, Germany, 22-26 March 2021. 2021. P. 58- URL: https://doi.org/10.1109/icsa51549.2021.00014 (date of access: 23.03.2023).
  24. A transformational approach to managing data model evolution of web services / L. Beurer-Kellner et al. IEEE Transactions on Services Computing. 2022. Vol. 16, no. 1. P. 65-79. URL: https://doi.org/10.1109/tsc.2022.3144613 (date of access: 24.03.2023).

ПУЧКО Тарас Вікторович, аспірант Інституту проблем моделювання в енергетиці ім. Г.Є. Пухова НАН України. У 2003 р. закінчив Національний авіаційний університет. Область наукових досліджень — інтерфейси прикладного програмування, моделювання даних.

Повний текст: PDF