Les applications informatiques modernes sont de plus en plus appelées à communiquer avec des composants extérieurs (ERP,EAI,autres applications).Les échanges s’effectuent le plus souvent dans les deux sens : consommation de services à l’extérieur et mise à disposition de services pour des tiers. Cette situation a conduit à l’émergence d’architectures dites de services, appelées SOA (Service Oriented Architectures), qui sont au coeur des préoccupations des architectes et des éditeurs depuis plusieurs années.
Sur le plan technique, les protocoles de communication disponibles ont atteint un bon niveau de maturité (et généralement d’interopérabilité). Ils peuvent être classés en différentes catégories : synchrones (DCOM, RMI, IIOP…), asynchrones (JMS, MSMQ, Tibco…), transactionnels ou non, sécurisés ou pas. L’émergence du protocole SOAP et des normes WS-XXX a permis la normalisation du contenu des messages échangés et réglé définitivement les problèmes de marshalling qui compliquaient les échanges entre plates-formes hétérogènes. Il subsiste néanmoins un problème de taille : l’absence de modèle de programmation unifié. En effet, la mise à disposition et la consommation de services sont jalonnées de difficultés techniques liées aux technologies et aux toolkits utilisés. L’objectif des nouveaux frameworks de communication est précisément d’encapsuler l’accès à « la plomberie » (les couches de transport) et d’offrir des interfaces de programmation unifiées disposant d’un meilleur niveau d’abstraction.