Automatically Refactoring Application Transactions for Microservice-Oriented Architecture
Abstract
An Application Transaction, which is a method-call flow from an exported API to a data-source access, is important for application modernization for microservice-oriented architecture. The application transaction in legacy applications is based on a traditional unified architecture on which a single application and database structure under low latency is assumed, which means that a significant decrease in performance can occur on microservice-oriented architectures composed of distributed application and database structures under high latency. Therefore, transaction refactoring is essential for application modernization. However, it is time-consuming and labor-intensive to manually identify the transaction split point in an application transaction. In this paper, we propose an approach for automatically refactoring the recommendation for application transactions by identifying the split point on the basis of database operation and business contexts. Our approach involves using a framework we designed for discovering application transactions from binary Java code and two partitioning methods, 'operation-based splitting' and 'business-context-based splitting' for detecting the optimal split points for application transactions in applications with different implementation patterns. We applied our approach to actual enterprise applications, identified split points for transaction-refactoring recommendation, and showed that it can significantly reduce processing time compared with doing it manually.