Service-based architecture (SBA) has gained attention in industry and academia as a means to modernize legacy systems. It refers to a design style that enables systems to be developed as suites of small, loosely coupled, and autonomous components (services) that encapsulate functionality and communicate via language-agnostic APIs. However, defining appropriately sized services that capture cohesive subsets of system functionality remains challenging. Existing work often relies on the availability of documentation, access to project personnel, or a priori knowledge of the target number of services, assumptions that do not hold in many real-world scenarios. Our work addresses these limitations using a deep reinforcement learning-based approach to identify appropriately sized services directly from implementation artifacts. We present Rake, a reinforcement learning-based technique that leverages available system documentation and source code to guide service decomposition at the level of implementation methods. Rake does not require specific documentation or access to project personnel and is language-agnostic. It also supports a customizable objective function that balances modularization quality and business capability alignment, i.e., the degree to which a service covers the targeted business capability. We applied Rake to four open-source legacy projects and compared it with two state-of-the-art techniques. On average, Rake achieved 7-14 percent higher modularization quality and 18-22 percent stronger business capability alignment. Our results further show that optimizing solely for business context can degrade decomposition quality in tightly coupled systems, highlighting the need for balanced objectives.


翻译:服务化架构作为一种现代化遗留系统的有效手段,已在工业界和学术界获得广泛关注。该架构指一种设计范式,使系统能够以小型、松耦合、自治的组件(服务)集合形式进行开发,这些组件封装特定功能并通过语言无关的API进行通信。然而,如何定义规模适度的服务以捕获系统功能的内聚子集,仍然是亟待解决的挑战。现有方法通常依赖于文档完备性、项目人员可访问性或目标服务数量的先验知识,这些假设在许多实际场景中难以成立。本研究通过基于深度强化学习的方法直接从实现制品中识别适度规模的服务,以解决上述局限性。我们提出Rake——一种基于强化学习的技术,该方法利用现有系统文档和源代码在实现方法层面指导服务分解。Rake无需特定文档或项目人员介入,且具有语言无关性。同时支持可定制的目标函数,以平衡模块化质量与业务能力对齐度(即服务覆盖目标业务能力的程度)。我们将Rake应用于四个开源遗留项目,并与两种前沿技术进行对比。平均而言,Rake实现了7-14%的模块化质量提升和18-22%的业务能力对齐度增强。进一步研究表明,在紧耦合系统中仅优化业务上下文会降低分解质量,这凸显了平衡多目标优化的必要性。

0
下载
关闭预览

相关内容

国家自然科学基金
13+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
46+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
VIP会员
相关基金
国家自然科学基金
13+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
46+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员