Java connector architecture

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

J2EE Connector Architecture (JCA)[modifier | modifier le code]

Les applications J2EE sont constituées de :

  • modules web ;
  • modules EJB ;
  • modules client d’application d’entreprise

Les systèmes d’informations d’entreprise (EIS) sont constitués de :

  • ERP ;
  • mainframes ;
  • SGBD ;
  • applications anciennes écrites en C, C++, COBOL…

JCA est la solution de J2EE pour résoudre le problème d’intégration entre le monde J2EE et le système d’information d’entreprise (EIS).

Pour mettre en œuvre une telle intégration JCA propose une architecture basée sur les éléments suivants :

  • un Resource Adapter ;
  • des contrats applicatifs entre les modules J2EE et le Resource Adapter ;
  • des contrats système entre les serveurs d’applications J2EE (AS) et le Resource Adapter.

Un Resource Adapter est un pilote entre le serveur d’applications et le système d’information d’entreprise. Il est composé de :

  • jars permettant d'emmailloter l’accès aux ressources du système d’information ;
  • bibliothèques natives (.dll, .so) fournissant l’accès aux ressources du système d’information ;
  • un descripteur de déploiement ra.xml.

Les contrats systèmes définissent :

  • la connectivité du serveur d’applications vers l’EIS (dans la version 1.0 de JCA ) ;
  • la connectivité de l’EIS vers le serveur d’applications (dans la version 1.5 de JCA) ;
  • la gestion du cycle de vie du Resource Adapter (dans la version 1.5 de JCA) ;
  • la gestion des threads (dans la version 1.5 de JCA).

Parmi ces contrats on distingue donc :

  • contrat de gestion de connexions : définit comment obtenir une connexion à l’EIS depuis l’AS, le pooling des connexions est transparent pour l’application ;
  • contrat de gestion de transactions : permet à l’AS d’utiliser un gestionnaire de transactions supportant l’accès à divers gestionnaires de ressources de l’IES. Les invocations de services au sein de l’EIS sont enveloppées dans des transactions distribuées (XA Transaction définie par l’Open Group). Les transactions XA sont globales et peuvent contenir des appels à divers types de ressources de l’EIS ;
  • contrat de gestion de la sécurité : fournit des mécanismes permettant de gérer l’authentification, l’autorisation, les communications sécurisées entre le serveur J2EE et les ressources protégées de l’EIS ;
  • contrat de gestion de transactions inflow : permet de propager une transaction démarrée dans l’EIS vers le serveur d’application ;
  • contrat de gestion de messagerie inflow : permet à l’EIS de délivrer des messages à des composants du serveur d’application ;
  • contrat de gestion du cycle de vie : permet l’arrêt et le démarrage du Resource Adapter ;
  • contrat de gestion des threads : permet à l’EIS de soumettre des tâches à l’AS. Ainsi le Resource Adapter s’exonère de la gestion directe des threads.

Les contrats applicatifs sont définis par le Common Client Interface (CCI). Cette interface permet à des composants applicatifs J2EE, à des frameworks d’intégration d’applications d’entreprises de piloter les interactions entre des ressources hétérogènes de l’EIS via l’utilisation d’une API commune.

Architecture jca 2.jpg

Autre contribution[modifier | modifier le code]

JCA, abréviation de Java Connector Architecture, s'adresse principalement à ceux dont le besoin est d'accéder de manière très étroite à des logiques métier de système d'information d'entreprise (EIS). JCA utilise les technologies actuelles permettant ainsi de s'intégrer dans les divers systèmes d'informations en gérant les aspects de sécurité, transactionels et les pools de communication.

JCA est majoritairement utilisé aujourd'hui pour établir des communications synchrones du type demande / réponse avec un serveur. JCA n'empêche pas d'utiliser un mode asynchrone et bi-directionnel.

Certains développements de JCA sont plus poussés et sont capables d'appeler un service JCA en fonction d'une logique métier.

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]