# Comparison of Multi-Agent Platform Usability for Industrial-Grade Applications
## 5 AOSE in Contrast to Modern SDLC
### Possibility of Integration with External Services  
As mentioned in Section 4, enterprise applications often require integration with a range of external services. In particular, due to the automation needs, internal practices of companies or even multi-environment deployment production systems often require the provision and maintenance of alternate configurations. For instance, this may include separate configurations for (1) multiple internal databases, (2) selected message broker topics, (3) microservice-based architecture dependencies (which may need to be combined with AOSE), (4) CI/CD automation scripts, (5) deployment rules for different environments, (6) access and privacy control, or (7) scopes allowing the use of individual internal components. These are typically defined in property files and then automatically injected by reference, using constructs specific to the framework (e.g., dedicated annotations). \begin{table}
\begin{tabular}{c l} \hline \hline
**Platform Name** & **Support for Package Management** \\ \hline _JADE_ & Claimed support for Maven Central, but the latest version has not been released. \\ _Jalex_ & Supports Maven Central but releases the framework in multiple packages. \\ _SPADE_ & Supports Python’s pip. \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Compatibility with package management in JADE, Jadex, and SPADE. In single-platform AOSE-based systems, where all agents have the same rights, there should be no difficulties in handling integration aspects since the initial configuration does not differ significantly from that in typical industrial SE systems. However, it becomes much more problematic when considering multi-platform systems, or those in which selected agents (e.g., of the same type) may need different rights. In such cases, the configuration must be propagated to individual agents or their federations. It may be compared to a scenario where a component having a single deployment process needs to handle multiple configurations at once. In many platforms, this issue has not been automated and requires significant manual effort. This may be acceptable for a single-time deployment, but since modern SE often relies on iterated or agile SDLC, which is based on frequent releases in multiple environments, such a procedure would be both time-consuming and costly. Therefore, no company is likely to choose to support such a solution in production use. To gain a more detailed understanding, Table 2 summarises how this issue is addressed in JADE, Jadex, and SPADE. In the case of JADE, selected technologies and frameworks can be integrated through supportive add-ons. For instance, the Kafka Messaging add-on allows for the replacement of native JADE messaging with the one based on a Kafka cluster, while the Web Service Integration Gateway (WSIG) add-on enables the exposure of agent services as Web Services. Nevertheless, all these add-ons have a limited scope of possibilities and would still require significant development effort to fully support a given technology. Moreover, several of them were developed in the past and are not continuously maintained. For example, WSIG's last release was in 2017, while Kafka Messaging was published along with the latest JADE version in 2022. As such, some of them are no longer compatible with the latest JVM versions (e.g., IPMS, which supports inter-platform communication, published in 2017, is no longer compatible with Java 17). Furthermore, none of these solutions would allow automated configuration or propagation of company-specific components. In the case of Jadex, the situation is similar, except the platform does not rely on add-ons but rather has limited built-in functionality to integrate selected technologies. For instance, it allows configuring security measures for agent communication or integrating WSDL-based and RESTful-based web services. It should be noted, however, that these built-in capabilities rely on either the Jadex syntax or specific external libraries, which may be challenging for developers to adapt to.