ArcESB est une application web qui fournit une suite de connecteurs pour la création, l'exécution et le suivi de flux d'intégration de données personnalisés. Le concepteur de flux visuel d'Arc simplifie le processus d'intégration du Managed File Transfer (MFT), de la messagerie EDI, de la gestion des API, de la manipulation des données et de l'intégration back-end.
Les flux de travail d'Arc sont modulaires, ce qui signifie qu'ils sont capables de gérer des intégrations complètes de bout en bout ou d'exécuter des fonctions de gestion de données spécifiques dans le cadre d'un écosystème de données plus vaste.
L'installation de ArcESB se fera sur le middleware Tomcat.
[root@serv ] # yum install tomcat
Il suffira simplement de déployer la solution en copiant le fichier WAR dans le dossier webapps.
[root@serv ] # cp arcesb.war /usr/share/tomcat/webapps/
Attribuez le rôle “arcesb_admin” à l'utilisateur que vous souhaitez comme administrateur de l'application. Si vous utilisez le domaine d'utilisateur par défaut pour Tomcat, vous pouvez ajouter ces rôles en éditant le fichier tomcat-users.xml situé dans CATALINA_BASE/conf/tomcat-users.xml.
Dans l'exemple suivant, l'utilisateur admin s'est vu attribuer les rôles nécessaires pour l'accès administratif à l'application :
<user name="admin" password="admin" roles="arcesb_admin,admin-gui,manager-gui,manager-status,manager-script,manager-jmx" />
On relance le middleware Tomcat
[root@serv ] # systemctl restart tomcat
Autoriser l'utilisateur du processus qui exécute le conteneur de servlets Java à accéder en lecture/écriture au répertoire de données :
Redémarrez votre serveur Tomcat pour que les changements prennent effet. Vous pouvez maintenant vous connecter à l'application.
[root@serv ] # systemctl restart tomcat
Une fois l'installation de Tomcat réalisée et le fichier WAR déposé dans le dossier WEBAPPS de tomcat, nous allons pouvoir accéder à la solution en nous rendant à l'adresse du server : "http://<ip_du_server>:8080/arcesb"
Les petites entreprises qui viennent d'entrer dans le monde de l'EDI ont besoin d'une solution légère et facilement configurable pour s'intégrer avec leurs partenaires du commerce de détail et du secteur de la santé, avec un minimum de tracas. De l'autre côté de cet échange, les utilisateurs en entreprise recherchent une solution EDI qui n'échoue jamais, capable de traiter des centaines de milliers de transactions EDI quotidiennes. ArcESB est une solution EDI hautement évolutive qui peut être configurée pour prendre en charge une grande variété de demandes émanant de petites entreprises, d'utilisateurs en entreprise et de tous ceux qui se trouvent entre les deux.
Bien qu'une seule instance d'ArcESB puisse facilement répondre aux besoins de la plupart des utilisateurs, les utilisateurs à grand volume seront heureux de constater qu'ArcESB peut être incorporé dans des systèmes plus complexes pour répondre à des exigences commerciales plus strictes en matière de volume de transfert et de fiabilité du système.
ArcESB peut être distribué dans une configuration à charge équilibrée ou à haute disponibilité de plusieurs manières différentes, mais il y a deux objectifs principaux à atteindre lors de la création de l'une ou l'autre configuration :
Pour déployer un cluster ArcESB, ils nous faudra les éléments suivants :
On crée la base de données qui contiendra les tables partagé entre les instances ArcESB
MariaDB [(none)]> CREATE DATABASE ArcESBCluster CHARACTER SET utf8 COLLATE utf8_bin; Query OK, 1 row affected (0.002 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON ArcESBCluster.* TO 'ArcESBUser'@'%' IDENTIFIED BY 'your_password'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]>
Installer la panoplie d’outils NFS et leurs dépendances.
yum install nfs-utils
Nous allons définir ces partages dans le fichier /etc/exports.
/data 192.168.1.0/24(rw,async,no_root_squash,no_subtree_check)
Note:
Activer et démarrer les services RPC et NFS.
systemctl enable rpcbind systemctl enable nfs-server systemctl start rpcbind systemctl start nfs-server
Sur les deux serveurs qui hébergeront la solution ArcESB, nous allons réaliser le montage NFS.
Installer la panoplie d’outils NFS et leurs dépendances.
yum install nfs-utils
Activer et démarrer le service RPC.
systemctl enable rpcbind
systemctl start rpcbind
Vérifier le contenu de /data. Une fois que tout semble correct, on peut rendre le partage persistant en l’inscrivant dans /etc/fstab comme ceci.
nfs1.oowy.lan:/data /data nfs defaults,_netdev 0 0
Note:
L’option _netdev indique au système qu’il s’agit d’un disque réseau et qu’il doit au moins attendre d’être connecté pour le monter.
On récupère le bon jar par rapport à notre tomcat (7.0.76)
wget -O /usr/share/tomcat/lib/tomcat-dbcp-7.0.76.jar https://repo1.maven.org/maven2/org/apache/tomcat/tomcat-dbcp/7.0.76/tomcat-dbcp-7.0.76.jar
On récupère le MySQL JAR/install/copie lib dans tomcat
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.19-1.el7.noarch.rpm rpm -ivh mysql-connector-java-8.0.19-1.el7.noarch.rpm cp /usr/share/java/mysql-connector-java.jar /usr/share/tomcat/lib/
On configure l'application pour utiliser le NFS et la database MariaDB.
Dans la section <host> on ajoute le context pour arcesb
nano /usr/share/tomcat/conf/server.xml ... <host> ... <Context path="/arcesb"> <Resource name="jdbc/APP_DB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="ArcESBUser" password="your_password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://mariadb.oowy.lan:3306/ArcESBCluster"/> <Parameter name="APP_DIRECTORY" value="/data/ArcESB" override="false"/> </Context>
Ensuite on vient reconfigurer le “web.xml” de l'application
nano /usr/share/tomcat/webapps/arcesb/WEB-INF/web.xml
On reconfigure la resource correctement
<resource-ref> <description>App Security Datasource</description> <res-ref-name>jdbc/APP_DB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth>
En redémarrant le tomcat, celui-ci ira créer dans la base de donnée les tables nécessaires.
On vérifie !
MariaDB [ArcESBCluster]> show tables; +-------------------------+ | Tables_in_ArcESBCluster | +-------------------------+ | app_logs | | app_messageheaders | | app_requests | | app_transactions | +-------------------------+ 4 rows in set (0.001 sec)
C'est configuration seront à porter sur tous les noeuds du cluster.
ArcESB utilise des verrous pour s'assurer que plusieurs instances n'interfèrent pas entre elles ou ne traitent pas le même fichier deux fois. Dans un environnement en cluster, un verrouillage efficace est essentiel pour maintenir le débit et éviter les collisions.
Lorsque la base de données de l'application est définie sur une base de données MySQL ou SQL Server, ArcESB peut utiliser cette base de données pour effectuer le verrouillage. Lorsqu'elle est activée, une table spéciale contient des enregistrements qui agissent comme des 'flags' pour chaque fichier dont le traitement est prévu par l'application.
L'approche de verrouillage centrée sur la base de données remplace le verrouillage par défaut basé sur les fichiers. Le verrouillage centré sur la base de données est très performant et évite tout problème potentiel lié à la latence du système de fichiers. Il est donc fortement recommandé d'utiliser une base de données MySQL ou SQL Server lors du clustering d'ArcESB pour profiter de la fonctionnalité de verrouillage de la base de données.
Pour activer le verrouillage de la base de données, la base de données de l'application doit être définie sur une base de données MySQL ou SQL Server. En outre, le paramètre du profil UseDatabaseLock doit être défini à true.
Les paramètres du profil sont configurés dans le fichier “profile.cfg” situé dans le répertoire des données de l'application.
Java : ~/arcesb/data
Dans le fichier “profile.cfg”, ajouter/modifier la ligne suivante sous la rubrique [Application] :
UseDatabaseLock = true