WAM 2023: 1st International Workshop on Application Modernization
Application modernization has been a critical research topic in both industry and academia. It is often said that “Today’s code is tomorrow’s legacy application”. With the recent developments in code productivity, the pace of applications turning into legacy has increased significantly. The ongoing challenges that enterprises face when modernizing their legacy applications to work on modern platforms, architecture, etc., need a separate spotlight. To that end, the goal of WAM, 1st edition of the International Workshop on Application Modernization, is to build a community around software modernization topics, promoting innovation in software engineering and in applications of AI to modernization challenges. We aim to bring together software engineering experts from the larger ESEC/FSE community, including experts in software architecture, reverse engineering, Machine Learning, code synthesis, and more. Moreover, the goal of the workshop is to bring together experts from industry and academia, allowing them to identify the main challenges in the field and propose solutions to these challenges.
WAM will be virtual this year.
In this workshop, we seek to develop a venue for discussing challenges and solutions in the application modernization domain, focusing on the modernization of data, code, programming language, and interfaces. We intend the workshop to serve as a platform for exchanging ideas around the modernization of existing/legacy applications and also around building applications that are modern. Our workshop organizers, Program Committee (PC) members, and intended participants are coming from both industrial research and academic backgrounds. With this combination of expertise, we would like to better understand how application modernization challenges are handled in both worlds, discussing commonalities and differences between the problems and the proposed solutions and identifying ways to move forward.
At WAM, you can submit your work(s) in three different tracks and each has different requirement and goal,
-
Research paper track: 4+1 pages paper on the relevant topics with novel ideas and applications on application modernization. For details, please go to corresponding page.
-
Coding challenge track: In this track, one can participate in the coding challenge regarding microservice partition recommendation. There will be two deadlines, one where the submitted paper along with the coding solution will be published as the part of the workshop proceeding, another where the submitted paper will not be part of the workshop proceeding but the participants will have longer window to submit compared to the previous one. For details, please go to corresponding page.
-
Invited Talk: We will be hosting invited talks on works that are relevant to application modernization. More details coming soon.
Call for Invited Talk
More details coming soon!!!!!
Call for Research Papers
The goal of the workshop is to build a community around software modernization topics, promoting innovation in software engineering and in applications of AI to modernization challenges. We aim to bring together software engineering experts from the larger ESEC/FSE community, including experts in software architecture, reverse engineering, Machine Learning, code synthesis, and more. Moreover, the goal of the workshop is to bring together experts from industry and academia, allowing them to identify the main challenges in the field and propose solutions to these challenges.
Relevant topics for this track include but are not limited to:
-
Patterns and approaches to application modernization, such as replatforming, containerization, rehosting, replacing by as-a-service models.
-
Approaches to data modernization, such as consolidation of legacy databases, database refactoring, and extraction of business logic.
-
Models for application transformation, including business process, data and code modernization considerations.
-
End-to-end transformation of monoliths into microservices, including partition recommendation, generation of code and deployment artifacts, etc.
-
Modernizing programming languages by converting code written in one programming language to another, adding more modern programming language features, etc.
-
Modernizing applications and frameworks to make them more sustainable and consume less resources including carbon footprint.
-
Studies on different approaches and benefits of moving microservices to serverless architectures.
-
Refactoring applications to incorporate modern programming language features.
-
Modernizing transactions written in the legacy languages as well as decomposing monoliths taking transaction and corresponding data into account.
-
Modernizing user interface and user experience.
-
Novel abstractions for continuous modernization - how do we enable today’s technology to evolve and be modernized.
How To Submit
At the time of submission, all papers must conform to the ESEC/FSE 2023 Format and Submission Guidelines, and must not exceed 4 pages for all text and figures plus 1 pages for references. All submissions must be in English and in PDF format. Submissions that do not comply with the above instructions will be desk rejected without review. Papers must be submitted electronically through the WAM submission site:
Each submission will be reviewed by at least three members of the program committee. Submissions will be evaluated on the basis of originality, importance of contribution, soundness, evaluation (if relevant), quality of presentation, and appropriate comparison to related work. Some papers may have more than three reviews, as PC chairs may solicit additional reviews based on factors such as reviewer expertise and strong disagreement between reviewers. The program committee as a whole will make final decisions about which submissions to accept for presentation at the conference.
Double-Anonymous Review Process
In order to ensure the fairness of the reviewing process, WAM will employ a double-anonymous review process, where external reviewers do not know the identity of authors, and authors do not know the identity of external reviewers. The papers submitted must not reveal the authors’ identities in any way:
- Authors should leave out author names and affiliations from the body of their submission.
- Authors should ensure that any citation to related work by themselves is written in third person, that is, “the prior work of XYZ” as opposed to “our prior work”.
- Authors should not include URLs to author-revealing sites (tools, datasets). Authors are still encouraged to follow open science principles and submit replication packages, see more details on the open science policy below.
- Authors should anonymize author-revealing company names but instead provide general characteristics of the organisations involved needed to understand the context of the paper.
- Authors should ensure that paper acknowledgements do not reveal the origin of their work.
To facilitate double-anonymous reviewing, we recommend the authors to postpone publishing their submitted work on arXiv or similar sites until after the notification.
Authors with further questions on double-anonymous reviewing are encouraged to contact the organizing committee members by email. Papers that do not comply with the double-anonymous review process will be desk-rejected.
Submission Policies
Papers submitted for consideration to WAM should not have been already published elsewhere and should not be under review or submitted for review elsewhere during the reviewing period. Specifically, authors are required to adhere to the ACM Policy and Procedures on Plagiarism and the ACM Policy on Prior Publication and Simultaneous Submissions.
To prevent double submissions, the chairs might compare the submissions with related conferences that have overlapping review periods. The double submission restriction applies only to refereed journals and conferences, not to unrefereed forums (e.g. arXiv.org). To check for plagiarism issues, the chairs might use external plagiarism detection software.
All publications are subject to the ACM Author Representations policy.
By submitting your article to an ACM Publication, you are hereby acknowledging that you and your co-authors are subject to all ACM Publications Policies, including ACM’s new Publications Policy on Research Involving Human Participants and Subjects.
Alleged violations to any of the above policies will be reported to ACM for further investigation and may result in a full retraction of your paper, in addition to other potential penalties, as per the ACM Publications Policies.
Please ensure that you and your co-authors obtain an ORCID ID, so you can complete the publishing process if your paper is accepted. ACM has been involved in ORCID from the start and they have recently made a commitment to collect ORCID IDs from all of published authors. The collection process has started and will roll out as a requirement throughout 2022. ACM is committed to improve author discoverability, ensure proper attribution and contribute to ongoing community efforts around name normalization; your ORCID ID will help in these efforts.
Important Dates
All dates are 23:59:59 AoE (UTC-12h)
-
Paper submission: 14 July, 2023
-
Author notification: 17 August, 2023
-
Camera ready: 31 August, 2023
Call for Coding Challenge
This coding challenge focuses on the development of decomposition techniques for Java applications, with the end-goal of evolving legacy Java applications with monolithic architectures toward a modern, microservices-based architecture. The challenge is framed within Project Minerva for Modernization, which aims to enable AI-driven modernization of legacy applications and is intended to be a community of industry practitioners, academic researchers, and open-source developers helping build an open ecosystem of tools to support the application-modernization journey. The current tools released in Minerva include a Java binary analyzer, a Java binary instrumenter, and a graph-partitioning tool called CARGO.
The goal of this challenge is to develop partitioning techniques that improve upon the state-of-the-art approaches, such as CARGO. The CARGO partitioning technique employs a novel label-propagation algorithm over a context-sensitive program-dependence graph that captures static call relations, data dependencies, heap dependencies, and code-database transaction dependencies. It computes partitions as disjoint groupings of the set of Java classes in the monolithic application.
A submission in this coding challenge should consist of the implementation of a partitioning technique, along with a description of the results achieved by the technique on the benchmark Java application provided for the challenge (see below). The technique could be based on static analysis, dynamic analysis, large language models, etc. It could leverage different types of relationships between application components, and perform partitioning at the level of application classes or at the finer granularity of methods; a method-level solution would suggest application classes to be broken up to achieve better partitioning than is possible at the class level.
The quality of partitioning should be assessed using metrics, such as cohesion, coupling, structural modularity, business context purity, database transactional purity, inter-partition call percentage, etc., that have been used in the literature (for examples of recent work that uses such metrics, see the CARGO technique and a dynamic decomposition technique). The technique can also be evaluated on new metrics that may be suitable in this problem domain; in this case, please include a description of the metric and reasoning for its suitability.
Evaluation Criteria
The submitted solutions will be evaluated by a reviewing committee to select the solutions to be presented at the workshop and included in the workshop proceedings. The evaluation will be done along the following dimensions:
- Technical novelty in the developed decomposition approach, taking into account the types of dependencies and information considered, the graph representations built, and the partitioning algorithms applied on the representations.
- The metrics used for assessing partitioning quality.
- Quality of the developed solution, including ease of use, design and implementation quality, and code documentation.
- Potential for scalability of the technique in terms of application to large Java applications, e.g., consisting of 1000+ classes. Although the evaluation benchmark (mentioned below) does not fall into this category of applications, we emphasize scalability to assess potential feasibility of applying the solutions to enterprise-grade applications.
As an optional step, the solutions could be further enhanced so that the recommended partitions can be deployed as services and the transformed application be brought up as a distributed set of services. For solutions that provide this additional capability, this will be taken into account in the evaluation.
Benchmark Application
The Java enterprise edition application to be used for the challenge is the Cargo Tracker application (release 2.2). The application consists of 114 Java classes with approximately 7000 non-comment lines of code.
Submission Material
The submission material should consist of the following:
-
A PDF document describing the technique and the results obtained on the metrics for the benchmark application. If the solution also addresses the optional step, the document should also describe the approach used, and updates needed, for getting the partitions into deployment state. The description must not exceed 4 pages in the ACM proceedings format.
-
Link to a GitHub repository containing the source code of the partitioning tool, along with clear instructions on how to generate partitioning recommendations computed by the tool for the benchmark application. The repository should allow the results described in the document to be reproduced. For solutions that provide the optional capability of deploying the partitions, the repository should also provide a Docker Compose configuration file that can be used for running the services.
The coding challenge has two deadlines. Accepted submissions from the first deadline will be included in the workshop proceedings and published in the ACM Digital Library. The second deadline allows for more time in implementing the challenge solutions, but accepted submissions from this deadline will not be included in the workshop proceedings. In either case, all accepted solutions for the coding challenge will be scheduled for presentation at the workshop.
- Submission Link: https://fse23wam.hotcrp.com/
Important Dates
All dates are 23:59:59 AoE (UTC-12h)
-
Coding Challenge Submission (w/ Proceeding): 4 Aug, 2023
-
Coding Challenge Author Notification (w/ Proceeding): 24 Aug, 2023
-
Camera ready: 31 August, 2023
-
Coding Challenge Submission (without Proceeding): 22 Sep, 2023
-
Coding Challenge Author Notification (without Proceeding): 13 Oct, 2023