Una propuesta para asistir a la Co-evolución de Mashup cuando las APIs web evolucionan
Palabras clave:
impacto del cambio de API, API web, co-evolución, web mashupResumen
A medida que evolucionan las interfaces de programación de aplicaciones web (API), los contratos establecidos previamente cambian y, por lo tanto, pueden afectar el comportamiento, el funcionamiento y / o la ejecución de aplicaciones de consumo como Mashup. En estos casos, estas aplicaciones necesitan ser reparadas para seguir funcionando, es un proceso llamado co-evolución. Identificar y localizar las operaciones que se ven afectadas por la evolución de las API web y estimar el impacto que generan son tareas necesarias que ayudan al desarrollador a actualizar el código. Este trabajo presenta una propuesta para asistir a la coevolución de Mashup. Específicamente a partir de un grafo de operaciones de mashup, identificamos y ubicamos las operaciones afectadas por algunos cambios en las API web. También proponemos un conjunto de métricas simples que permiten estimar el impacto de estos cambios en el mashup. El grafo y las métricas de operaciones de mashup ayudan a los desarrolladores web en las tareas de co-evolución. La propuesta fue aplicada a dos mashup que actualmente se encuentran disponibles en la web. Los resultados preliminares muestran que la propuesta es aplicable.
Descargas
Referencias
R. Robbes, M. Lungu and A. Janes. “API fluency” ICSE-NIER '19: Proceedings of the 41st International Conference on Software Engineering: New Ideas and Emerging Results. pp 97–100, 2019.
W. Maalej andM. P. Robillard, “Patterns of knowledge in API reference documentation,” IEEE Trans. Softw. Eng., vol. 39, no. 9, pp. 1264–1282, 2013.
U. Dekel andJ. D. Herbsleb, “Reading the documentation of invoked API functions in program comprehension” ICPC’09, pp. 168–177, 2009.
R. Trapero Burgos, D. Suarez Fuentes, José Del Alamo and A. Leon Martin. "Next Generation Mashups: How to Create my Own Services in a Convergent World," in IEEE Latin America Transac-tions, vol. 7, no. 3, pp. 390-394, 2009.
R. T. Fielding, “Architectural styles and the design of network-based software architectures,” Ph.D. dissertation, U. of California, Irvine, 2000.
E. Wittern, A. T.T. Ying, Y. Zheng, J. Laredo, J.Dolby, Ch. Young and A. Slominski., "Opportunities in Software Engineering Research for Web API Consumption," 1st International Workshop on API Usage and Evolution (WAPI), Buenos Aires, pp. 7-10, 2017
A. Cummaudo, R. Vasa and J. Grundy, "What should I document? A preliminary systematic mapping study into API documentation knowledge", International Symposium on Empirical Software Engineering and Measurement (ESEM), Brazil pp. 1-6, , 2019
D. Nam, A. Horvath, A. Macvean, B. Myers and B. Vasilescu, "MARBLE: Mining for Boilerplate Code to Identify API Usability Problems," 34th International Conference on Automated Software Engineering, USA, pp. 615-627, 2019
C. Sadowski, K. T. Stolee andS. Elbaum, “How developers search for code: a case study,” in Proceedings of the 10th Joint Meeting on Foundations of Software Engineering. ACM, pp. 191–201, 2015
A.M. Eilertsen andA.H. Bagge. “Exploring API / Client Co-Evolution”, Gothenburg, Sweden 2nd International Workshop on API Usage and Evolution.2018
K.Jezek andJ.Dietrich. “API Evolution and Compatibility: A Data Corpus and Tool Evaluation”. Journal of Object Technology, 2:1–23 , 2017
L. Xavier, A. Brito, A. Hora and M. T. Valente. “Historical and Impact Analysis of API Breaking Changes: A Large-Scale Study”. IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER). 2017.
C. Prehofer andI. Gerostathopoulos. “Modeling RESTful Web of Things Services: Concepts and Tools”. Managing the Web of Things. Chapter 3, pp. 73-104, ISBN 9780128097649, 2017
R. Koçi, X. Franch, P. Janovic. andA. Abelló. “Classification of Changes in API Evolution”. 23rd International Enterprise Distributed Object Computing Conference (EDOC) 2019
T. Espinha, A. Zaidman, and H.-G. Gross, “Web API growing pains: Stories from client developers and their code,” Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering. IEEE CS, pp. 84–93, 2014
J. Li, Y. Xiong, X. Liu andL. Zhang, “How does web service API evolution affect clients?” 20th Conf. on Web Services. IEEE, pp. 300–307, 2013
T. Espinha, A. Zaidman and H.-G. Gross, “Web API Fragility: How Robust is Your Mobile Application?” Proceedings MOBILESoft, pp. 12–21, 2015
E. Wittern, A. T. T. Ying, Y. Zheng, J. Dolby and J. A. Laredo, "Statically Checking Web API Requests in JavaScript," 39th International Conference on Software Engineering (ICSE), pp. 244-254, 2017
Alam, K.A., Ahmad, R., Akhunzada, A., Nasir, M. and Khan, S. “Impact analysis and change propagation in service-oriented enterprises: A systematic review”. Inf. Syst., 54, 43-73 (2015).
R. Kohar and N. Parimala. “A metrics framework for measuring quality of a web service as it evolves”. International Journal of System Assurance Engineering and Management 8, 1222–1236, 2017
W. Ding, G. Wang, Y. Han andJ. Wang. “A Pattern-Oriented Impact Analysis Approach for Mashups”. Fifth IEEE International Symposium on Service Oriented System Engineering 978-0-7695-4081-8/10 , 2010
W. Hummer, P. Leitner andS. Dustdar. “A step-by -step debugging technique to facilitate mashup development and maintenance.” Mashups '09/'10. Cyprus, 2010.
O. Hassan, L. Ramaswarny and J. Miller. “The MACE Approach for Caching Mashups”. International Journal of Web Services Research 7(4), pp 64–88, 2010.
P. Zhang, H. Han and G. Wang. “An Efficient Data Maintenance Strategy for Data Service Mashup Based on Materialized View Selection”. ICSOC , LNCS, vol 7759. Springer, Berlin, Heidelberg, 2012.
G. Wang and F. Zhang, "Freshness-Aware Sensor Mashups Based on Data Services," International Conference on Green Computing and Communications and Internet of Things and IEEE Cyber, Physical and Social Computing, Beijing, pp. 2018-2023, 2013
M. Shevertalov andS. Mancoridis. “On the maintenance of UI-integrated Mashup Applications”. 27th International Conference on Software Maintenance, pp. 203–212, 2011
R. Oberhauser.”A hypermedia-driven approach for adapting processes via adaptation processes”. 8th International Conference on Advanced Software Engineering & Its Applications. pp. 73{80. IEEE (2015)
H.A. Nguyen, T.T. Nguyen, G. Wilson Jr, A.T Nguyen, M. Kim andT.N. Nguyen. “A graph-based approach to api usage adaptation”. ACM Sigplan Notices 45(10), 302-321 (2010
R. Bustamante and K. Garcés. “Managing Evolution of API-driven IoT Devices through Adaptation Chains”.CIBSE 2020.
Publicado
Número
Sección
Licencia
Aviso de derechos de autor/a
Los autores/as que publiquen en esta revista aceptan las siguientes condiciones:
- Los autores conservan los derechos de autor y ceden a la revista el derecho de la primera publicación, con el trabajo registrado con la Creative Commons Attribution-Non-Commercial-Share-Alike 4.0 International, que permite a terceros utilizar lo publicado siempre que mencionen la autoría del trabajo y a la primera publicación en esta revista.
- Los autores pueden realizar otros acuerdos contractuales independientes y adicionales para la distribución no exclusiva de la versión del artículo publicado en esta revista (p. ej., incluirlo en un repositorio institucional o publicarlo en un libro) siempre que indiquen claramente que el trabajo se publicó por primera vez en esta revista.
- Se permite y recomienda a los autores a compartir su trabajo en línea (por ejemplo: en repositorios institucionales o páginas web personales) antes y durante el proceso de envío del manuscrito, ya que puede conducir a intercambios productivos, a una mayor y más rápida citación del trabajo publicado.
Descargo de Responsabilidad
LAJC en ningún caso será responsable de cualquier reclamo directo, indirecto, incidental, punitivo o consecuente de infracción de derechos de autor relacionado con artículos que han sido presentados para evaluación o publicados en cualquier número de esta revista. Más Información en nuestro Aviso de Descargo de Responsabilidad.




