6 research outputs found
Accesso e Controllo Efficiente di Sistemi Software Complessi tramite GraphQL
All’interno dei sistemi software moderni è di cruciale importanza la possibilità di monitorare e controllare un’intero sistema nella maniera più efficiente possibile. I principali meccanismi di controllo e interrogazione dei sistemi possono comprendere il design e l’implementazione di Application Programming Interface (API), le quali costituiscono un solido punto di appoggio per le comunicazioni tra le diverse componenti software di un sistema. All’interno di questo elaborato, viene presentata la realizzazione di un servizio di API all’interno di Alchemist, un simulatore stocastico realizzato all’interno della Java Virtual Machine (JVM). Il servizio di API mira ad esporre verso l’esterno un insieme di informazioni inerenti una simulazione all’interno di Alchemist, e allo stesso tempo fornisce meccanismi di controllo della stessa, mantenendo un’implementazione che non sia dipendente dalla piattaforma utilizzata mediante l’uso di Kotlin Mutliplatform. All’interno di questo documento, verranno illustrate le strategie di design e architetturali per la realizzazione di un tale sistema attraverso il paradigma GraphQL, il quale fornisce un Query Language in grado di stabilire con esattezza la struttura dei dati che un client deve ricevere dal sistema di API. Sono quindi approfondite le motivazioni dietro la scelta di tale paradigma, e vengono definite le operazioni di massima che il sistema deve fornire. Successivamente verrano coperte estensivamente le sfide implementative e di compatibilità causate dalla natura complessa di Alchemist, e la rigida e semplice struttura di uno schema GraphQL. Infine, sono illustrare le future estensioni possibili del sistema costruito, illustrandone scopi e benefici che possono apportare al sistema, richiedendo pochi o nessun cambiamento all’architettura proposta
AlchemistSimulator/Alchemist: 29.0.0
<h2><a href="https://github.com/AlchemistSimulator/Alchemist/compare/28.5.4...29.0.0">29.0.0</a> (2023-11-21)</h2>
<h3>âš BREAKING CHANGES</h3>
<ul>
<li>overloads constructor and change the order of constructor parameters to specify only the variables parameter</li>
</ul>
<h3>Dependency updates</h3>
<ul>
<li><strong>deps:</strong> update dependency de.flapdoodle.embed:de.flapdoodle.embed.mongo to v4.10.2 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/254e91a31322f666e1db0f505192ff7ad2a9e151">254e91a</a>)</li>
<li><strong>deps:</strong> update dependency de.flapdoodle.embed:de.flapdoodle.embed.mongo to v4.11.1 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/afaa276726927b25cdde207a3fea8a66166a4555">afaa276</a>)</li>
<li><strong>deps:</strong> update dependency io.github.classgraph:classgraph to v4.8.165 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/f2fa1027fc5893c06646804d52ffb04f0908e866">f2fa102</a>)</li>
<li><strong>deps:</strong> update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.6.1 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/26f2080d438a92cc78e030f3dcc6f71fd04f1ed3">26f2080</a>)</li>
<li><strong>deps:</strong> update dependency semantic-release-preconfigured-conventional-commits to v1.1.75 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/83221b768de59c8b10b243118af1b764358e2ef6">83221b7</a>)</li>
<li><strong>deps:</strong> update dependency semantic-release-preconfigured-conventional-commits to v1.1.76 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/3f6f04a73a3ee20c36664d7760c29b0593a79d1b">3f6f04a</a>)</li>
<li><strong>deps:</strong> update external-resources/learning-scafi-alchemist digest to 74dece4 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/9a114cf199660d1e13c8fb357166624ff3c59a84">9a114cf</a>)</li>
<li><strong>deps:</strong> update external-resources/learning-scafi-alchemist digest to ee1433f (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/31efa302ee8f2823512d128aadb99338f40ec965">31efa30</a>)</li>
<li><strong>deps:</strong> update npm to v10.2.4 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/6db7e013eeb46e7f8a07cc9c2caf47f5dab9a44d">6db7e01</a>)</li>
<li><strong>deps:</strong> update plugin gitsemver to v2.0.2 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/8fddade939f8c287e363a53a6d5c8a1cc1bd88da">8fddade</a>)</li>
<li><strong>deps:</strong> update plugin java-qa to v1.25.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/2c494540151e86113262fbac59d880f6cf5710c4">2c49454</a>)</li>
<li><strong>deps:</strong> update react to v18.2.0-pre.642 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/7cdd9d1ef7d74157c4ce5474a628e45d4bcb8b8c">7cdd9d1</a>)</li>
<li><strong>deps:</strong> update react to v18.2.0-pre.643 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/649c3965747a870180fd6067face005bdf803dd4">649c396</a>)</li>
<li><strong>deps:</strong> update react to v18.2.0-pre.644 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/51ddfb6e957e3423226a598a765cdce70ecb5d91">51ddfb6</a>)</li>
<li><strong>deps:</strong> update react to v18.2.0-pre.645 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/4b2e68fa18a04d79dfd160e272ff21ec1cc06557">4b2e68f</a>)</li>
<li><strong>deps:</strong> update react to v18.2.0-pre.646 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/9faf09880c4d632a512f5a0963cf057e35161584">9faf098</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 1f7a2aa (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/b79c092e1fd5bd36c634e655e700e4b42ad8cde5">b79c092</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 258093e (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/272e66b99643c92ef342c622e3a027b19ec4cce6">272e66b</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 264250c (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/3893a47ebcdbecdb66dbf4c489e87c78cd1c2a03">3893a47</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 2e07b80 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/c4113c56840068825f683c222573631d871b912e">c4113c5</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 682e6b6 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/4e3cd41a3dcfeb029b1ff2590489ffb4e05985fe">4e3cd41</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 6cdff18 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/9b4b47179bb34495fbcdccf219cdfaa1ac18db56">9b4b471</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 97c1a07 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/90009e2213fa791f8c477b1e865b2950268240ad">90009e2</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to b91fb6e (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/2fc6ddd88c21b9ceb85b519fb5497cb387172349">2fc6ddd</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to ee79857 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/b897ad271aea732eea36f811e0c06e10d7d7503a">b897ad2</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to f3e6008 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/1b94fdf42aaba3b76efef2f8c93f2e2df2b8d4f4">1b94fdf</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>overloads constructor and change the order of constructor parameters to specify only the variables parameter (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/acafb53b381f48767088eea14e6e1f1a24ec7850">acafb53</a>)</li>
</ul>
AlchemistSimulator/Alchemist: 29.0.1
<h2><a href="https://github.com/AlchemistSimulator/Alchemist/compare/29.0.0...29.0.1">29.0.1</a> (2023-11-22)</h2>
<h3>Dependency updates</h3>
<ul>
<li><strong>core-deps:</strong> update protelis to v17.3.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/58b44a52b9dfb603f3c7cfc2079624702f95afcd">58b44a5</a>)</li>
<li><strong>deps:</strong> update dependency org.apache.commons:commons-lang3 to v3.14.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/478829e4ebfef75178f58066e2ed326f5a581ca8">478829e</a>)</li>
<li><strong>deps:</strong> update node.js to 20.10 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/ac46c31f0fce4e9600496e7eead0e728dfc68494">ac46c31</a>)</li>
</ul>
AlchemistSimulator/Alchemist: 28.4.4
<h2><a href="https://github.com/AlchemistSimulator/Alchemist/compare/28.4.3...28.4.4">28.4.4</a> (2023-11-01)</h2>
<h3>Dependency updates</h3>
<ul>
<li><strong>core-deps:</strong> update protelis to v17.2.1 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/656297dd10b004f385f8a0045d63bf1dcab3e813">656297d</a>)</li>
<li><strong>deps:</strong> update dependency com.expediagroup:graphql-kotlin-ktor-server to v7.0.2 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/564befdbfc72a84884eb2891742ced2bc8b90d79">564befd</a>)</li>
<li><strong>deps:</strong> update dependency commons-cli:commons-cli to v1.6.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/772f1a1f38e1371842d97d69f4998e0fdcfa36fa">772f1a1</a>)</li>
<li><strong>deps:</strong> update dependency semantic-release-preconfigured-conventional-commits to v1.1.69 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/a9540f6f01d2018d26983bfa0c0964bfafd0d239">a9540f6</a>)</li>
<li><strong>deps:</strong> update dependency semantic-release-preconfigured-conventional-commits to v1.1.70 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/1c0c5df22a34b74d4ea0656be51670ce639708b1">1c0c5df</a>)</li>
<li><strong>deps:</strong> update gohugoio/hugo action to v0.120.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/12767bc9833f7622a7251325196c60f78d1de8b1">12767bc</a>)</li>
<li><strong>deps:</strong> update gohugoio/hugo action to v0.120.1 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/2d3d23460a0a423612343baf19d9d184135da90d">2d3d234</a>)</li>
<li><strong>deps:</strong> update gohugoio/hugo action to v0.120.2 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/053fcd97e38cf77e205987557cbb1f0dab27a635">053fcd9</a>)</li>
<li><strong>deps:</strong> update graphql.server to v7.0.2 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/65f0c4cb59c4086e602b6f522086512ca1175f4a">65f0c4c</a>)</li>
<li><strong>deps:</strong> update kotlin monorepo to v1.9.20 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/ff03f83eb0352b40ba06a155ac7c754232eaefd7">ff03f83</a>)</li>
<li><strong>deps:</strong> update plugin gitsemver to v2.0.1 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/80dec82aa174addcb72d63c50195d310ba1211d1">80dec82</a>)</li>
<li><strong>deps:</strong> update plugin java-qa to v1.22.1 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/31cf01d99308a9fd1294463c55c836e93946a0c1">31cf01d</a>)</li>
<li><strong>deps:</strong> update plugin kotlin-qa to v0.53.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/e776843ed93c3ff500dd1138c26b5b1d80ad7823">e776843</a>)</li>
<li><strong>deps:</strong> update plugin kotlin-qa to v0.54.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/aa2ca987601711af413d87a9b1abdb7a843271dc">aa2ca98</a>)</li>
<li><strong>deps:</strong> update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.14 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/0f4832d6ce3a43b467d4539549ed75e4bf9e6c50">0f4832d</a>)</li>
<li><strong>deps:</strong> update plugin publishoncentral to v5.0.17 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/d2da48421e74d1b2285c3130d562fab2cb859ad6">d2da484</a>)</li>
<li><strong>deps:</strong> update plugin publishoncentral to v5.0.18 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/ccdceb46d8d3e47e81309ff34397d9a43fadda34">ccdceb4</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 162554f (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/b0d83bfaac48886a63e28441ac9387388af30c81">b0d83bf</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 2245d80 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/83778456d68cc9677af321a42e380fa465383abf">8377845</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 2337c92 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/dd074919cccd5af4a958eedc0343ded64033042c">dd07491</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 2846b73 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/bea3095a26512709b1781800e570e563e68715f5">bea3095</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 589ef20 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/fb7515de51e3a3c9239cd2921ea488364b73204b">fb7515d</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 5c71fd8 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/d375d55b19ee9bbfb55056fdb5e2811055ea4a5e">d375d55</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 7516352 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/ffafbe59e98e3b050d877d49c36872ce789fd977">ffafbe5</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 8e7309d (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/0cd141e23c230a650183e27d47458a240a96df1d">0cd141e</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to c29e73b (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/4607cca939981297fc395df5c3ba84a969750d04">4607cca</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to ec482bb (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/87fdcc31a6f247d02212fe4bb417a158a2c719b7">87fdcc3</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to ff61932 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/f9aca12820f7f1ac5ec836139c2239df8b2e9ad6">f9aca12</a>)</li>
</ul>
AlchemistSimulator/Alchemist: 28.4.3
<h2><a href="https://github.com/AlchemistSimulator/Alchemist/compare/28.4.2...28.4.3">28.4.3</a> (2023-10-26)</h2>
<h3>Dependency updates</h3>
<ul>
<li><strong>deps:</strong> update dependency commons-io:commons-io to v2.15.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/a94377f2edcda77c614fc2bae5511b9bfd033fff">a94377f</a>)</li>
<li><strong>deps:</strong> update dependency de.flapdoodle.embed:de.flapdoodle.embed.mongo to v4.9.3 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/1bec5f48d80aef1ac4f83b4fd5a338b2749b7c3f">1bec5f4</a>)</li>
<li><strong>deps:</strong> update node.js to 20.9 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/fb5f7be0e568edb8f375df4de544fdeb26bb6c19">fb5f7be</a>)</li>
<li><strong>deps:</strong> update plugin gitsemver to v2 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/925a8f5ed578aa4722c93cb08cb9ed139b496b3b">925a8f5</a>)</li>
<li><strong>deps:</strong> update react to v18.2.0-pre.636 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/b9af8e0aa97cf8b5afcae5e40cc501f1c7398417">b9af8e0</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to 5a534d0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/937efb925a4b5618b47ce9634ca5879e21299dbb">937efb9</a>)</li>
<li><strong>deps:</strong> update site/themes/hugo-theme-relearn digest to d2583cf (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/00cafff57dcd387c5bfb36f944a3e5e1b883e2c2">00cafff</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>website:</strong> use https URIs over ssh ones for the tutorial (<a href="https://github.com/AlchemistSimulator/Alchemist/issues/2770">#2770</a>) (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/ee9b50663d656aa8dacffd6e83fae22d52895b9f">ee9b506</a>)</li>
</ul>
AlchemistSimulator/Alchemist: 28.5.1
<h2><a href="https://github.com/AlchemistSimulator/Alchemist/compare/28.5.0...28.5.1">28.5.1</a> (2023-11-07)</h2>
<h3>Dependency updates</h3>
<ul>
<li><strong>deps:</strong> update dependency com.github.spotbugs:spotbugs-annotations to v4.8.1 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/87bee750ddd3d97dc1695e0dbb1be7dd818321a8">87bee75</a>)</li>
<li><strong>deps:</strong> update dependency io.jenetics:jpx to v3.1.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/68c63d4ccb16077b25aea96ac63349505367f7a3">68c63d4</a>)</li>
<li><strong>deps:</strong> update dependency org.controlsfx:controlsfx to v11.2.0 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/857892df3298ca0b10d427d6f353bb851d73e3f5">857892d</a>)</li>
<li><strong>deps:</strong> update dependency semantic-release-preconfigured-conventional-commits to v1.1.71 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/2cd6ae1bf01e79b7d4d10842bee912ece547e326">2cd6ae1</a>)</li>
<li><strong>deps:</strong> update ktor to v2.3.6 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/885de483716930a273b6d5c220a1c745ab7c99c2">885de48</a>)</li>
<li><strong>deps:</strong> update react to v18.2.0-pre.638 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/08e3da79afbbd57801d8f51310567f9441395171">08e3da7</a>)</li>
<li><strong>deps:</strong> update react to v18.2.0-pre.639 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/b42e45a2da86b2e0a3363325d0f02246f65db71f">b42e45a</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>maps:</strong> add a comment on test source explaining the need for a specific OSM file (possibly causes <a href="https://github.com/AlchemistSimulator/Alchemist/issues/2821">#2821</a>) (<a href="https://github.com/AlchemistSimulator/Alchemist/issues/2828">#2828</a>) (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/3f323bd506e9d150f23fe22448502fe873acb932">3f323bd</a>)</li>
</ul>
<h3>Build and continuous integration</h3>
<ul>
<li><strong>deps:</strong> update danysk/build-check-deploy-gradle-action action to v2.2.11 (<a href="https://github.com/AlchemistSimulator/Alchemist/commit/4a63ba5ce47fa2016be0560e4278d6feed54b0cc">4a63ba5</a>)</li>
</ul>