Upload
blancheflour-chemin
View
106
Download
2
Embed Size (px)
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