Petals Distributed Service BusCurrent Status…
Christophe HamerlingPetalsLink Labs
Juillet 2011
INTRODUCTION
Introduction
• Résultat principal de SOA4All• Basé sur Petals ESB (v3.0.4)– Evolutions mineures depuis la 3.0.4…
Concepts
• Etendre Petals ESB pour– Communiquer plus facilement en utilisant des
protocoles ‘Internet-Friendly’ (IF)– Masquer la complexité JBI:• Offrir des APIs simples• Automatiser
– ‘Scaler’ dans un/N domaines– Connecter/Fédérer des domaines indépendants– …
Comment étendre?
• Services (Kernel)– Les services de base sont les mêmes– Ajout de services reposant les services de base– Ajout de nouveaux services– Remplacement de services
• Distribution– Ajout/modification des fichiers de configuration
ARCHITECTURE
Messaging ManagementConfiguration
Delivery Channel
Router
Deployment
Installation
JMX API
LifeCycle
Distribution
Network
Registry
Topology
Local Config
Messaging API
Transporters
Node APIs
Petals ESB Architecture
Petals DSB Architecture
Messaging ManagementConfiguration
Delivery Channel
Router
Deployment
Installation
JMX API
LifeCycle
Distribution
Network
Registry
Topology
Local Config
WS APIMessaging API
Protocols Binding
Transporters
Node APIs Federation API
COMMUNIQUER
Petals ESB Communications
Nœud A Nœud N
NIOJMX
SOAP/HTTP
Petals DSB Communications
Nœud A Nœud NSOAP/HTTP
Communiquer sur Internet?
1. ESB kernel demande trop d’ouvertures de ports entre différents noeuds– Registry– Transport (NIO pas vraiment IF)– JMX
2. Se rajoutent les ‘binding components’Utiliser SOAP/HTTP et le même port pour le
point 1
TO JBI OR NOT?
Avec l’ESBInternal Endpoint activation
• An endpoint is activated by deploying a configuration artefact to the component (BC or SE)
• This configuration artefact is a ZIP archive containing– a XML file with some basic information
• The Service Name• The Interface Name• The Endpoint Name• A reference to the WSDL description• Additional parameters (specific to component, ie BPEL process file
name, Drools file name…)– The WSDL file (optional)– Additional resources like BPEL process file, Drools file…
• The activated endpoint is registered in the Technical Service Registry and is now reachable by all the Service Bus Services Consumers
Masquer la complexité JBI?
• Un utilisateur de la plateforme ne doit pas– manipuler JBI pour lier ses services!– manipuler les composants JBI– Et donc s’occuper des cycles de vie JBI
• Le DSB fournit une API SOAP extensible– SOAP: bind(WSDL), proxify(WSDL), expose(DSBEndpoint)– REST: bind(REST), proxify(REST), expose(DSBEndpoint)– BPEL: deploy(BPEL)– …
Le DSB est en charge de générer les artefacts nécessaires Le DSB est en charge de démarrer les composants quand il le
faut
MONITORING & MANAGEMENT
Business Service Management
• Exposer une API (business) commune pour tout les nœuds (choix SOA4All)– Tout les services ‘bindés’ sont automatiquement
exposés sur tout les nœuds du domaine
Business Service Propagation
Man
SOAP
ServiceA
SOAP Man
SOAP
SOAP
Bind(serviceA wsdlURL)
Service Monitoring
• Niveau DSB– Intégré au Routeur (seule couche extensible)• Modules
– Timestamp– Report Generation + Send
– Les rapports sont envoyés au module de routage• a charge a l’implémentation de traduire de la bonne
facon
Monitoring Bus
Distributed Service Bus
WSN Subscriber Database
Client
Service
SOA4AllStudio (GWT + Comet)
Send report
Write Event
Subscribe
Monitoring
Invoke
Read Cron
FEDERATION
Fédération
• Créer une architecture fédérée pour:– Créer des collaborations entre entités– Permettre de faire communiquer des domaines
d’administration indépendants et hétérogènes– Adresser des millions de services/des milliers de
domaines/des milliers de noeuds
Fédération - Concept
Bus de Fédération
Fédération A Fédération C
Fédération X Fédération Z
Fédération B
bar.com domain
foo.org domain
Internet
Company B DSB node
Company C Service
Fédération – Mise en oeuvre
• Un module de routage dédié– Cherche endpoints dans la fédération si pas de
endpoint trouvé dans le domaine• Un transport de message dédié– Sait envoyer/recevoir des messages à la couche de
fédération• Le Bus de fédération– Sait relayer les messages vers la bonne destination
Fédération - Illustration
Federation
Petals DSB @ domain X
FederationTransport
RoutingModule
EndpointRegistry
Petals DSB @ domain Z
FederationTransport
RoutingModule
EndpointRegistry
Status: Prototype
INRIA G5K EC2
INRIA 45 55 106
G5K 57 28 108
EC2 113 104 55Average Service Invocation Response Time in ms
2 nodes, 2 instances/node = 4
20 nodes, 4 instances/node = 80
146 nodes, 4 instances/node = 584
EXTENSIONS
DSB = Extensibilité
• Exposer des services du Kernel– Utiliser @WebService
• Appeler des opérations sur les différents cycles de vie du conteneur– Utiliser par exemple @LifeCycleListener(PHASE) public void foo() {…}
• Implémenter sa couche de transport– Implémenter 2 interfaces: Client + Serveur
• Implémenter sa politique de propagation des Endpoints (Registry)
• Ajouter des listeners de registry• …
Créer sa distribution
• Basé pour le moment sur Fractal pour l’injection:– Cloner la distribution de référence– Ajouter ses composants et les déclarer dans
Fractal
EN PLUS…
Features
• GDoc: http://goo.gl/plhlr• JIRA: http://goo.gl/N8ewd
DEMOS
Vidéos
• Management: http://www.vimeo.com/19744035
• Monitoring: http://vimeo.com/19744171• Federation: http://vimeo.com/26671357
EXEMPLES
Petals DSB Petals DSB
Google Talk Infrastructure
Consumer
Proxy In
Provider
Proxy Out
Transport XMPP
Transport XMPP
Communication /XMPP
Top Related