Java connector architecture

Un article de Wikipédia, l'encyclopédie libre.

[modifier] J2EE Connector Architecture (JCA)

Les applications J2EE sont constitués de :

  • Modules web ;
  • Modules EJBs ;
  • 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èmes entre les serveurs d’applications J2EE (AS) et le Resource Adapter ;

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

  • Des jars permettant de Wrapper l’accès aux ressources du système d’information ;
  • Des librairies 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éfini comment obtenir une connexion à l’EIS depuis l’AS, le pooling des connexions est transparent à 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éfinit par le Common Client Interface (CCI). Cette interface permet à des composants applicatifs J2EE, à des framework d’intégration d’applications d’entreprises de piloter les interactions entre des resources hétérogènes de l’EIS via l’utilisation d’une API commune.

Image:Architecture_jca_2.jpg

[modifier] Autre contribution

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ème 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.