Table des matières

Introduction

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.

Caractéristiques principales

Installation ArcESB

Installation Tomcat

L'installation de ArcESB se fera sur le middleware Tomcat.

[root@serv ] # yum install tomcat

Déployer le fichier WAR

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/

Autoriser les users de Tomcat sur ArcESB

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

Configurer les autorisations du répertoire de données

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

Accès plateforme

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"

Clustering 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 :

Prérequis

Pour déployer un cluster ArcESB, ils nous faudra les éléments suivants :

Architecture

Configuration

MariaDB

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)]>

Serveur NFS

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:

  • L’option rw monte le répertoire distant en lecture/écriture.
  • L’option async permet des écriture asynchrones, c’est-à-dire que le serveur n’attend pas l’écriture d’une requête précédente avant de répondre.
  • Sans trop rentrer dans les détails, l’option no_subtree_check neutralise la vérification des sous-répertoires, ce qui a de subtiles implications au niveau de la sécurité, mais peut améliorer la fiabilité dans certains cas.
  • Attention à ne pas mettre d’espace entre la définition du réseau 192.168.2.0/24 et les options (rw,async).

Activer et démarrer les services RPC et NFS.

systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server

Client NFS - ArcESB 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

Montage persistant des partages NFS

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.

Tomcat - ArcESB Server

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.

Locking and Concurrency

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.

Verrouillage de la base de données

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.

Activation du 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

Annexe

https://www.arcesb.com

https://www.arcesb.com/kb/articles/tutorial-high-availability.rst

https://www.arcesb.com/kb/articles/connect-minimum-requirements.rst

http://cdn.arcesb.com/help/AZF/mft/Clustering.html