arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2407.07428cs.SEcs.PL
收藏

企业应用架构中API重构的概念框架

A Conceptual Framework for API Refactoring in Enterprise Application Architectures

Fabrizio Montesi, Marco Peressotti, Valentino Picotti, Olaf Zimmermann

AI总结:

针对现有API重构研究对开发策略关注不足的问题,本文提出企业应用API重构的概念框架,揭示其中的权衡选择对架构的影响,通过实验验证框架,并首次阐明编程语言特性对API重构的作用。

摘要:

企业应用通常构建为面向服务的架构,其中各个服务被设计用于执行特定功能,并通过定义明确的API(应用程序编程接口)相互交互。为了适应不断变化的业务需求,企业应用的架构会随时间演进。这种演进可能需要对服务提供的API进行更改,这可以通过适当的API重构来实现。\n 以往关于API重构的研究聚焦于对API定义的影响,同时对相关的驱动力和坏味道有一般性的考量。然而到目前为止,实现这些重构的开发策略却很少受到关注。本文正是针对这一方面展开研究。\n 我们提出了一个用于实现API重构的概念框架。我们的框架揭示出其中存在重要的权衡与选择,这些会显著影响最终架构的效率、可维护性和隔离性。我们通过实现若干重构来验证我们的框架,这些重构以不同的选择引入了已确立的API模式,阐明了我们框架所提供的指导原则。我们的工作还首次揭示了特定编程语言特性如何能够降低应用API重构时的阻力,并带来更多的架构选择。

英文摘要:

Enterprise applications are often built as service-oriented architectures, where the individual services are designed to perform specific functions and interact with each other by means of well-defined APIs (Application Programming Interfaces). The architecture of an enterprise application evolves over time, in order to adapt to changing business requirements. This evolution might require changes to the APIs offered by services, which can be achieved through appropriate API refactorings. Previous studies on API refactoring focused on the effects on API definitions, with general considerations on related forces and smells. So far, instead, the development strategy for realising these refactorings has received little attention. This paper addresses exactly this aspect. We introduce a conceptual framework for the implementation of API refactorings. Our framework elicits that there are important trade-offs and choices, which significantly affect the efficiency, maintainability, and isolation properties of the resulting architecture. We validate our framework by implementing several refactorings that introduce established API patterns with different choices, which illustrates the guiding principles offered by our framework. Our work also elicits, for the first time, how certain programming language features can reduce friction in applying API refactoring and open up more architectural choices.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑