36
Petals Distributed Service Bus Current Status… Christophe Hamerling PetalsLink Labs Juillet 2011

Petals DSB - Current Status

Embed Size (px)

Citation preview

Page 1: Petals DSB - Current Status

Petals Distributed Service BusCurrent Status…

Christophe HamerlingPetalsLink Labs

Juillet 2011

Page 2: Petals DSB - Current Status

INTRODUCTION

Page 3: Petals DSB - Current Status

Introduction

• Résultat principal de SOA4All• Basé sur Petals ESB (v3.0.4)– Evolutions mineures depuis la 3.0.4…

Page 4: Petals DSB - Current Status

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– …

Page 5: Petals DSB - Current Status

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

Page 6: Petals DSB - Current Status

ARCHITECTURE

Page 7: Petals DSB - Current Status

Messaging ManagementConfiguration

Delivery Channel

Router

Deployment

Installation

JMX API

LifeCycle

Distribution

Network

Registry

Topology

Local Config

Messaging API

Transporters

Node APIs

Petals ESB Architecture

Page 8: Petals DSB - Current Status

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

Page 9: Petals DSB - Current Status

COMMUNIQUER

Page 10: Petals DSB - Current Status

Petals ESB Communications

Nœud A Nœud N

NIOJMX

SOAP/HTTP

Page 11: Petals DSB - Current Status

Petals DSB Communications

Nœud A Nœud NSOAP/HTTP

Page 12: Petals DSB - Current Status

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

Page 13: Petals DSB - Current Status

TO JBI OR NOT?

Page 14: Petals DSB - Current Status

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

Page 15: Petals DSB - Current Status

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

Page 16: Petals DSB - Current Status

MONITORING & MANAGEMENT

Page 17: Petals DSB - Current Status

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

Page 18: Petals DSB - Current Status

Business Service Propagation

Man

SOAP

ServiceA

SOAP Man

SOAP

SOAP

Bind(serviceA wsdlURL)

Page 19: Petals DSB - Current Status

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

Page 20: Petals DSB - Current Status

Monitoring Bus

Distributed Service Bus

WSN Subscriber Database

Client

Service

SOA4AllStudio (GWT + Comet)

Send report

Write Event

Subscribe

Monitoring

Invoke

Read Cron

Page 21: Petals DSB - Current Status

FEDERATION

Page 22: Petals DSB - Current Status

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

Page 23: Petals DSB - Current Status

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

Page 24: Petals DSB - Current Status

bar.com domain

foo.org domain

Internet

Company B DSB node

Company C Service

Page 25: Petals DSB - Current Status

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

Page 26: Petals DSB - Current Status

Fédération - Illustration

Federation

Petals DSB @ domain X

FederationTransport

RoutingModule

EndpointRegistry

Petals DSB @ domain Z

FederationTransport

RoutingModule

EndpointRegistry

Page 27: Petals DSB - Current Status

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

Page 28: Petals DSB - Current Status

EXTENSIONS

Page 29: Petals DSB - Current Status

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• …

Page 30: Petals DSB - Current Status

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

Page 31: Petals DSB - Current Status

EN PLUS…

Page 32: Petals DSB - Current Status

Features

• GDoc: http://goo.gl/plhlr• JIRA: http://goo.gl/N8ewd

Page 33: Petals DSB - Current Status

DEMOS

Page 34: Petals DSB - Current Status

Vidéos

• Management: http://www.vimeo.com/19744035

• Monitoring: http://vimeo.com/19744171• Federation: http://vimeo.com/26671357

Page 35: Petals DSB - Current Status

EXEMPLES

Page 36: Petals DSB - Current Status

Petals DSB Petals DSB

Google Talk Infrastructure

Consumer

Proxy In

Provider

Proxy Out

Transport XMPP

Transport XMPP

Communication /XMPP