Vers un développement ouvert Alexandre Poitras – Développeur indépendant WebÉducation – 24...

Preview:

Citation preview

Vers un développement

ouvert

Alexandre Poitras – Développeur indépendant

WebÉducation – 24 janvier 2008

Utiliser la combinaison d'applications/utilitaires dont

j'ai envie?

Qu'est-ce que l'interopérabilité

L'interopérabilité est la propriété, pour un nombre

quelconque de systèmes de traitement d'information,

de pouvoir entrer en contact et d'échanger des

informations entre eux.

L'interopérabilité

La portabilité est la capacité d'une application en

mesure de s'exécuter dans plusieurs environnements

différents.

La portabilité

La portabilité est la capacité de communiquer avec son

environnement

L'interopérabilité est la capacité de communiquer avec

une autre application.

En résumé

Les “Vendor lock-in”

Dépendance d'un logiciel.

Importants coûts de migration.

Plusieurs types

Concernant la portabilité :

Lock-in des outils.

Lock-in de l'environnent.

Concernant l'interopérabilité :

Lock-in par le protocole.

La portabilité

Le lock-in des outils

Un outil est un logiciel permettant ou facilitant la

création/modification d'une application.

Quelques exemples

Microsoft Visual Studio

Eclipse

Microsoft Visual Basic

Oracle Application Express

NetBeans

Le lock-in des outils

Sauvegarde du travail dans un format binaire ou

propriétaire.

Génération de code complexe et non

documenté.

Dangers

Coûts et dépendance.

Impossibilité de changer d'outils ou d'en utiliser

plusieurs.

Bogues possibles au niveau de l'outil.

Fonctionnalités non disponibles.

Difficile de “déboguer”.

Impact sur la qualité du code.

Avantages

Intégration très forte entre l'outil et le code.

Tranquilité d'esprit.

Attention aux outils utilisés

Les outils ne sont pas une potion magique.

Utiliser des outils transparents.

Un exemple : NetBeans Matisse

Lock-in de l'environnement

Le programme ne peut rouler que dans un

certain environnement d'exécution :

Matériel

Système d'exploitation

Serveur d'application, Base de Données.

Frameworks.

Dangers

Coûts et dépendance.

Impossibilité de porter l'application sur un autre

environnement.

Innovation moins rapide.

Avantages

Intégration plus forte.

Solutions

Standards ouverts et solutions Open Source.

Les standards ouverts

Processus de décision communautaire.

Spécifications formelles.

Plusieurs implémentations disponibles.

Avantages

Portabilité.

Dénominateur commun pour la création de

solutions de plus haut niveau.

Plus large communauté (plus d'idées, plus

d'expériences, ...).

Désavantages

Évoluent très lentement.

Visent un public général.

Ne répondent pas à tous les besoins.

Sous-ensemble de ce qui existe sur le marché.

Les standards à tout prix?

Attention à la surutilisation des standards.

Chaque développement a un contexte et des

particularités différentes.

Dans quels domaines utiliser

les standards?De bas niveau conceptuel, où l'innovation est

moins importante.

Matures!

Dont l'implémentation est complexe.

Où la portabilité est importante.

Exemples de standards à forte

valeur ajoutéePaquetage de l'application.

Traitement de requêtes Web.

Exemples de standards à faible

valeur ajoutéeFrameworks.

Sécurité.

Persistance.

La portabilité à tout prix?

La portabilité a un coût!

Seulement lorsque nécessaire.

Limiter les dégâts :

Isoler le code non portable.

Utiliser des technologies transparentes.

Les solutions Open Source

Autre méthode d'atteindre la portabilité.

S'appuient sur les services standards de bas

niveau de l'environnement.

Pourquoi l'Open Source?

Très adapté aux domaines complexes et

méconnus.

Pourquoi l'Open Source?

Innovation très rapide.

Très réactifs aux besoins des utilisateurs,

bogues, ...

Contribution des idées par toute la communauté.

Approche empirique plutôt que planifiée : les

meilleures solutions survivent, les autres

disparaissent.

La dette technique

Ne jamais compromettre la qualité d'un

développement!

Toujours pas convaincu?

Il y aura toujours des “trous à combler” .

Les développements “maison” sont beaucoup

plus couteux.

Trop de choix?

Le monde de l'Open Source bouge très très vite.

Adopter une stratégie

Minimiser le nombre de produits.

Utiliser solutions populaires.

Combinaisons familières et documentées.

Aller chercher du support lorsque nécessaire.

Voir l'Open Source comme un choix technique!

TESTER les produits avant de vous prononcer.

Et les solutions propriétaires?

Toujours évaluer en fonction des besoins.

Domaines précis ne menaçant pas la portabilité,

par exemple la réplication des données sur un

cluster.

Vérifier les points d'extensions.

L'interopérabilité

Pourquoi l'interopérabilité

L'informatique est de plus en plus central au

fonctionnement d'une entreprise.

Pourquoi l'interopérabilité

Le nombre d'applications utilisées a explosé.

Relier l'entreprise à ses partenaires.

S'adapter rapidement aux changements

organisationnels.

Changer de technologies sans délaisser les

systèmes de première génération.

L'intégration

Combiner des applications pour batir un

système plus complet.

Défi majeur pour la plupart des entreprises.

Beaucoup d'innovation dans ce domaine.

Format de message

Pour que 2 applications interagissent entre elles,

elles doivent utiliser un format de message

commun.

Plusieurs possibilitésProtocoles réseaux : JMS, Web Services,

RMI, ...

Fichiers locaux, Fichiers distants

Courriels

Données en Base de Données

...

Service Web

Les Services Web sont une technologie réçente

qui génère beaucoup d'enthousiasme.

Service Web

Un Service Web est un programme

informatique permettant la communication et

l'échange de données entre applications et

systèmes hétérogènes dans des

environnements distribués.

Pourquoi cette popularité?

Standards et protocoles ouverts.

Déployés sur des technologies Internet

standards.

Supportés par la majorité des gros joueurs du

développement (Java et .Net).

2 types de services Web

Les Services Web de type SOAP.

Les Services Web de type REST.

Les Services Web de type SOAP

Standards SOAP et WSDL définis par le

consortium industriel WS-I.

WS-I compte dans ses rangs : IBM, Microsoft,

Oracle, Sun, BEA Systems, ...

Très lourd et complexe.

Les Services Web de type REST

Basés sur l'architecture du Web et ses

standards de base: HTTP et URI.

Très simple et très légère.

De plus en plus populaire (à juste titre).

La solution miracle?

Simplement une technologie de messagerie.

Acceptable d'utiliser d'autres technologies de

messagerie.

Service Oriented Architecture

Style d'architecture.

Fonctionnalités décomposées en unités

distinctes (services).

Chaque service peut être implémenté dans une

technologie différente.

Service Oriented Architecture

Domaine prometteur mais très jeune et très

complexe.

Attention au battage publicitaire et aux

standards prématurés (JBI, SCA).

Plusieurs solutions OS

innovatricesMule

Apache ActiveMQ

Spring Integration

Recommended