← Nieuwste papers
💻 computer science

Distributed Architecture Reconstruction of Polyglot and Multi-Repository Microservice Projects

Dit artikel presenteert een nieuw framework voor gedistribueerde statische architectuurreconstructie dat bestaande beperkingen overwint door gebruik te maken van modulaire, technologie-specifieke extractoren om gegevens te verenigen en nauwkeurige documentatie te genereren voor polyglot, multi-repository microservices-projecten.

Oorspronkelijke auteurs: Oscar Manglaras, Alex Farkas, Thomas Woolford, Christoph Treude, Markus Wagner

Gepubliceerd 2026-02-10
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Oscar Manglaras, Alex Farkas, Thomas Woolford, Christoph Treude, Markus Wagner

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je een enorme, bruisende stad voor die bestaat uit honderden kleine, onafhankelijke wijken. Elke wijk (een microservice) is gebouwd door een ander team, met andere materialen (programmeertalen) en volgt zijn eigen unieke stijl. Sommige zijn gemaakt van baksteen (Java), andere van hout (Python) en weer andere van glas (Go).

Het probleem? Niemand heeft een volledige kaart van de stad. De originele blauwdrukken zijn ofwel verloren gegaan, ofwel verouderd, ofwel geschreven in een taal die alleen de oorspronkelijke bouwers begrijpen. Omdat deze wijken zo snel veranderen en apart worden gebouwd, is het een nachtmerrie om tegelijkertijd één gigantische kaart van de hele stad te tekenen. Als je probeert de hele stad in één keer te overzien, raak je in de file, en als één wijk verandert, moet je de hele kaart opnieuw tekenen.

Dit artikel introduceert een nieuwe tool genaamd ModARO om dit probleem op te lossen. Zo werkt het, met behulp van eenvoudige analogieën:

1. De "Gespecialiseerde Verkenners" (Extractors)

In plaats van één gigantische, superintelligente robot in te huren die alle soorten bouwmaterialen van de stad begrijpt, hebben de auteurs een team van gespecialiseerde verkenners gemaakt, genaamd Extractors.

  • Hoe ze werken: Elke verkenner is een expert in slechts één ding. Eén verkenner kent alleen hoe je "Java"-blauwdrukken leest. Een ander kent alleen "Docker"-containers. Een ander weet alleen hoe hij "YAML"-configuratiefiles moet lezen.
  • De Magie: Je hoeft de Java-verkenner niet te leren hoe hij Python moet lezen. Je stuurt gewoon de Java-verkenner naar de Java-wijk. Ze kijken rond, vinden de belangrijke details en schrijven deze op een gestandaardiseerd notitieblok.
  • Geen Geheugen: Deze verkenners zijn "amnesiacs" (geheugenverlieslijders). Ze herinneren zich niet wat ze in de vorige wijk hebben gezien. Ze kijken alleen naar het specifieke gebouw dat recht voor hen staat. Dit houdt ze snel en voorkomt dat ze in de war raken.

2. Het "Universele Notitieblok" (Het Model)

Wanneer een verkenner klaar is met zijn werk, houdt hij de aantekeningen niet voor zichzelf. Hij schrijft de bevindingen op een Universeel Notitieblok (een JSON-model).

  • Dit notitieblok heeft een specifies formaat waar iedereen het over eens is.
  • Als de Java-verkenner een "deur" (een API-endpoint) vindt, schrijft hij dat op. Als de Python-verkenner een "raam" (een databaseverbinding) vindt, schrijft hij dat ook op.
  • Omdat iedereen hetzelfde notitieblokformaat gebruikt, kan de informatie van de Java-wijk en de Python-wijk uiteindelijk worden gecombineerd.

3. De "Orchestrator" (Het Algoritme)

Er is een dirigent (het Reconstructie-algoritme) die de verkenners aanstuurt.

  • De dirigent zegt: "Oké, laten we naar dit gebouw kijken."
  • De Java-verkenner controleert het en voegt aantekeningen toe.
  • De dirigent ziet dat er nieuwe aantekeningen zijn toegevoegd en zegt: "Oh, nu we weten dat er hier een Java-bestand is, laten we de Docker-verkenner oproepen om te zien of er ook een container is."
  • Dit gebeurt in een lus totdat er geen nieuwe informatie meer wordt gevonden. De dirigent zorgt ervoor dat als twee verkenners tegenstrijdige dingen op dezelfde regel proberen te schrijven, het systeem stopt en een melding geeft (een foutmelding), zodat mensen het kunnen oplossen in plaats van dat de kaart een rommeltje wordt.

4. De "Verdeelde Kaart" (Multi-Repo Reconstructie)

Dit is de grootste innovatie van het artikel. In de oude tijd moest je, om een kaart te tekenen, elke blauwdruk van elke wijk in één grote kamer verzamelen en ze allemaal tegelijk bekijken. Dit is traag en breekt de "onafhankelijke" geest van de stad.

De nieuwe aanpak is Verdeeld:

  • Onafhankelijk Werk: Elke wijk tekent haar eigen mini-kaart terwijl ze hun eigen huizen bouwen of aanpassen. Ze hoeven niet te wachten tot de andere wijken klaar zijn.
  • De Assemblage: Later worden deze mini-kaarten samengebracht en aan elkaar geklikt als LEGO-stenen.
  • De "Geest"-verbindingen: Soms zegt een wijk: "Wij sturen post naar een plek genaamd 'Test-Service'." Ze kennen het exacte adres of ID van die plek nog niet, omdat deze in een andere wijk ligt. Het systeem staat hen toe om te schrijven: "Stuur post naar iedereen genaamd 'Test-Service'." Zodra alle mini-kaarten aan elkaar zijn geklikt, verbindt het systeem de stippen automatisch door de "Test-Service" afzender te matchen met de "Test-Service" ontvanger.

Waarom is dit beter?

  • Geen "One Size Fits All": Je hebt geen complex, kwetsbaar systeem nodig dat probeert elke programmeertaal tegelijk te begrijpen. Je voegt gewoon een nieuwe verkenner (extractor) toe wanneer er een nieuwe taal verschijnt.
  • Snelheid: Omdat elke wijk aan zijn eigen kaart werkt, kun je de kaart voor één service bijwerken zonder de hele stad te stoppen.
  • Flexibiliteit: Je kunt bestaande tools gebruiken. Als je al een tool hebt die Java-code analyseert, wikkel je die gewoon in een "verkenner"-pak en kan hij lid worden van het team.

Kortom, dit artikel boue een systeem waarbij kleine, gespecialiseerde teams onafhankelijk hun eigen delen van een complex systeem kunnen documenteren, en die stukken vervolgens automatisch aan elkaar naaien tot een compleet, accuraat beeld van de gehele architectuur, zonder dat ze alles over de andere delen hoeven te weten terwijl ze bezig zijn.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →