Petals DSB - Current Status

Preview:

Citation preview

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

Recommended