Architecture matériel et logiciel 2



Documents pareils
LOG4430 : Architecture logicielle et conception avancée

LOG4430 : Architecture logicielle et conception avancée

L UTILISATION DE COMPOSANTS OPEN SOURCE L INNOVATION ET LA COMPLIANCE JURIDIQUE

Le cadre des Web Services Partie 1 : Introduction

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Envol2008. Licences, logiciels libres et administration. Thierry Aimé ministère de l Économie, de l Industrie et de l Emploi

La montée des bases de données open source

Rapport d alternance. Rapport d activité du 29 août 2011 au 20 janvier 2012 MASTER 2 ICE UNIVERSITE TOULOUSE 2 LE MIRAIL

Les Licences Libres Ouverture et Protection des Logiciels. Plan

Sécurité des Web Services (SOAP vs REST)

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Guide d installation de SugarCRM Open Source version 4.5.1

CMS et logiciels libres : initiation 01 CONTENT MANAGEMENT SYSTEM / SYSTÈME DE GESTION DE CONTENU

WEB page builder and server for SCADA applications usable from a WEB navigator

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

SERVEUR DÉDIÉ DOCUMENTATION

DOCUMENTATION - FRANCAIS... 2

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

JOnAS Day 5.1. Outils de développements

LE FORMAT DES RAPPORTS DU PERSONNEL DES COMMISSIONS DE DISTRICT D AMENAGEMENT FORMAT OF DISTRICT PLANNING COMMISSION STAFF REPORTS

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

Java Aspect Components (JAC)

Architecture Orientée Service, JSON et API REST

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Utiliser un proxy sous linux

Subject to the terms of this Agreement, Adobe hereby grants you a nonexclusive,

ANALYSE. Licences Open Source 11/01/2007 AJILON IT. A n a l y s e. Auteur : Damien Cuvillier Date : 11/01/2007 Version : 1 Ref : OS

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Debian en milieu professionnel. This document is under the GNU Free Documentation License.

Systèmes en réseau : Linux 1ère partie : Introduction

CA Agile Vision. Notes de parution. Winter 2012 version Deuxième édition

Use of this product is subject to the Software License Agreement located at

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Delivering the World s AppSec Information in France OWASP. The OWASP Foundation OWASP Paris Meeting - May 6, 2009

Forthcoming Database

RMI le langage Java XII-1 JMF

Comment Créer une Base de Données Ab Initio

[ Rencontres Mondiales du Logiciel Libre 2011 Lundi 11 juillet 2011 ] Introduction à l'open Hardware Auteur : Dr Ir Robert Viseur

Maîtriser le menu contextuel dans un OfficeBean

Installation d'un serveur RADIUS

Remote Method Invocation en Java (RMI)

SunATM 4.0 Release Notes

JOnAS 5. Serveur d application d

Paxton. ins Net2 desktop reader USB

Installation d'un TSE (Terminal Serveur Edition)

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

DOCUMENTATION - FRANCAIS... 2

Plan. Department of Informatics

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

StorageTek Tape Analytics

Open Source Initiative OSI - The MIT License (MIT): Licensing The MIT License (MIT) Permission is hereby granted, free of charge, to any person

les techniques d'extraction, les formulaires et intégration dans un site WEB

Tom Pertsekos. Sécurité applicative Web : gare aux fraudes et aux pirates!

2 Chapitre 1 Introduction

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Dragon Guide de l'utilisateur

VTP. LAN Switching and Wireless Chapitre 4

Remote Method Invocation (RMI)

Diffusion AFRISTAT. Quels droits accorder aux utilisateurs? - sur les données - sur les documents numériques

Intégration de l interface graphique de Ptidej dans Eclipse

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Manuel d'exploitation de l'application Vitamin version 1.0

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder

Sophos Endpoint Security and Control Guide de démarrage pour postes autonomes. Version du produit : 10.3

Solaris Server Intranet Extension 1.0 Licensing Guide

ACTIVITÉ DE PROGRAMMATION

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

Gestion des prestations Volontaire

Les logiciels libres. Université Antilles Guyane 14 novembre 2008 Olivier Watté

Threads. Threads. USTL routier 1

Un serveur web léger et ouvert

TP1 : Initiation à Java et Eclipse

Installer le patch P-2746 et configurer le Firewall avancé

Déploiement OOo en environnement Windows Terminal Server

Eclipse atelier Java

Avant-propos. VERSION Compilation du document à l aide de PDFLATEX Philippe Charlier. 1 Version actuelle : SPIP http ://

86 rue Julie, Ormstown, Quebec J0S 1K0

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Environnement Informatique EMSE Linux

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

Session 8: Android File System

Installation d un patch de mise à jour et d un pack langue dans SugarCRM Open Source 4.5.1

Découverte des Logiciels Libres. Gilles Dequen

Remote Method Invocation Les classes implémentant Serializable

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

This is a preview - click here to buy the full publication NORME INTERNATIONALE INTERNATIONAL STAN DARD. Telecontrol equipment and systems

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Introduction aux Logiciels libres

Dafoe Présentation de la plate-forme UIMA

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Manuel de l Utilisateur

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Transcription:

Architecture matériel et logiciel 2 Bibliothèques et chargement de composantes dynamiques Venera Arnaoudova 1/27/10 1

Réécrire versus réualiser Critères La taille du logiciel La foncaonnalité L experase L échéancier Performance Prototypage Autres? 1/27/10 2

Bibliothèques et cadriciels DéfiniAons: «Bibliothèque [library] logicielle est un ensemble de fonc4ons u4litaires, regroupées et mises à disposi4on afin de pouvoir être u4lisées sans avoir à les réécrire» [Wikipedia] Exemples: java.ual STL en C++ 1/27/10 3

Bibliothèques et cadriciels DéfiniAons: «Un cadriciel [framework] est un espace de travail modulaire. C'est un ensemble de bibliothèques, d'ou4ls et de conven4ons permegant le développement de programmes.» [Wikipedia] Exemples: Rails Spring Zend Junit Eclipse Equinox OSGI 1/27/10 4

Bibliothèques et cadriciels Deux façons de réualisaaon Boite blanche réualiser des paraes dans leur version originale ou modifiée Boite noire réualiser enaèrement, aucune modificaaon Types d interconnexions Problèmes techniques Problèmes légaux 1/27/10 5

Types d interconnexions Chaînage des liens (linking) DuplicaAon de processus (fork) Protocole de communicaaon (IPC) Sous classage Chargement dynamique 1/27/10 6

Chaînage des liens Comment : appeler des foncaon/méthodes Chainage des liens staaque Avant que le programme soit exécuté Fichiers exécutables sont produits Chainage des liens dynamique Après que le système a été chargé pour exécuaon en mémoire. 1/27/10 7

DuplicaAon de processus CréaAon de processus fork() Java.lang.ProcessBuilder ExécuAon autonome CommunicaAon via des Canaux de communicaaons (pipes) Sockets Fichiers 1/27/10 8

Protocole de communicaaon (IPC) RPC (Remote Procedure Call) procédures distantes RMI (Remote Method InvocaAon) pour les systèmes orientés objets (Java) CORBA (Common Object Request Broker Architecture) DCOM (Distributed Component Data Object) 1/27/10 9

Sous classage Crochets (hooks) et gabarits (templates) Points chauds (hot spots) = crochets Points gelés (frozenspots) = gabarits Crochets sont des méthodes abstraites ou qui peuvent/doivent être spécialisés par le client Gabarits sont des méthodes qui appellent des crochets et qui décrivent le «quoi» 1/27/10 10

Chargement dynamique En deux mots Dans différents langage de programmaaon (Lisp, C ++, Java, Smalltalk ), c est la possibilité de lier un «bout de code» au programme pendant l exécuaon du programme En Java, c est la possibilité de lier une classe, créer une instance de cepe classe et exécuter une de ces méthodes pendant l exécuaon du programme 1/27/10 11

Chargement dynamique En deux mots Exemple, classe enveloppante (wrapper) public final class WrapperMain { public static void main(string[] args) { try { Class toberun = Class.forName(args[0]); Method mainmethod = toberun.getmethod("main", new Class[] { String[].class }); final long starttime = System.currentTimeMillis(); mainmethod.invoke(null, new Object[] { new String[0] }); final long endtime = System.currentTimeMillis(); System.out.println(); System.out.println(endTime - starttime); } catch (final Exception e) { e.printstacktrace(output.getinstance().erroroutput()); } } } 1/27/10 12

Chargement dynamique En deux mots IntrospecAon Capacité d un programme à s observer Intercession Capacité d un programme à se modifier 1/27/10 13

Chargement dynamique Meta classes La classe «Class» est la classe dont les instances sont des classes La classe «Class» est en fait un méta classe Une méta classes est une classe qui décrit les classes, comme une classe décrit des instances 1/27/10 14

Chargement dynamique Meta classes Une méta méta classes est une classe qui Une méta méta méta classes est une classe qui [hpp://www.developper.com] 1/27/10 15

Problèmes techniques Chainage des liens Dynamique versus staaque Performance Maintenabilité Sécurité 1/27/10 16

Problèmes légaux Une licence est un ensemble de droits Chaque droit est un ensemble de conjoncaons Deux licences ne sont compaables que si leurs droits sont compaables 1/27/10 17

FSF versus OSI Free Sotware FoundaAon (FSF) Free Sotware DefiniAon (FSD) Open Source IniAaAve (OSI) Open Source DefiniAon (OSD) Aspect praaque, plutôt que éthique Critères différents 1/27/10 18

Open Source DefiniAon (OSD) Libre redistribuaon Pas de restricaons de redistribuaons et de vente Ne doit pas exiger des redevances Code source Disponible et distribuable Interdit de l obscurcir Dérivées Doit permepre de modifier/dériver et de distribuer les dérivées sous la même licence 1/27/10 19

Open Source DefiniAon (OSD) Intégrité du code de l auteur InterdicAon de modifier le code source est permise si les fichiers de correcaons sont permis AutorisaAon explicite de distribuer un logiciel basé sur le code source modifié Peut exiger que les dérivées portent un nom et/ou version différentes de la licence d origine Pas de discriminaaon de personnes/groupes Pas de restricaon de domaine d ualisaaon 1/27/10 20

Open Source DefiniAon (OSD) DistribuAon de licence Les droits apachés au logiciel s appliques à tous ceux, à qui le logiciel a été distribué Pas de spécificité relaave à un produit Pas de restricaon d autres logiciels Indépendante de la technologie 1/27/10 21

Exemple de Licences Héréditaire (Hereditary) GNU GPL (General Public License) GNU LGPL (Lesser General Public License) MPL (Mozilla Public License) CDDL (Common Development and DistribuAon License) Liberal (Permissive) BSD (Berkeley Sotware DistribuAon) MIT (Massachuseps InsAtute of Technology) Apache 1/27/10 22

GPL Copier à volonté a condiaon que la licence et les droits d auteur sont préservés. Pas d engagement formel sauf si un tel engagement est offert par le distributeur Interdit d imposer plus de restricaons Autorisé de modifier et redistribué à condiaon de donner les mêmes droits ExecuAon versus modificaaon (dérivée) 1/27/10 23

LGPL Autorisé d ualiser des paraes du programme d origine non modifiées ModificaAon: LGPL => LGPL Chainage des liens versus modificaaon ApplicaAon relié à une librairie LGPL doit permepre de remplacer cepe dernière. Chainage des liens dynamique versus staaque 1/27/10 24

BSD Versions différentes Version 4 clauses (iniaale) Version 3 clauses (nouvelle) RedistribuAon source/binaire modifié ou pas est autorisé à condiaon de: Garder la noace des droits de l auteur RedistribuAon du code binaire doit reproduire la noace dans la documentaaon 1/27/10 25

MIT «Permission is hereby granted, free of charge, to any person obtaining a copy of this sotware and associated documentaaon files (the "Sotware"), to deal in the Sotware without restricaon, including without limitaaon the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Sotware, and to permit persons to whom the Sotware is furnished to do so, subject to the following condiaons: The above copyright noace and this permission noace shall be included in all copies or substanaal poraons of the Sotware.» 1/27/10 26

Apache Version 1.0 Abandonné pour la clause de publicité Version 1.1 Version 2.0 Plus formelle «template license» 1/27/10 27

Autres # The Beer Ware License (Revision 42) # < tobez@tobez.org > wrote this file. As long as you retain this noace you # can do whatever you want with this stuff. If we meet some day, and you think # this stuff is worth it, you can buy me a beer in return. Anton Berezin 1/27/10 28

Problèmes légaux Exemple S est MPL 1.1 et C1 et C2 sont GPL 2 GPL s4pule que «Tous produits dérivés de C 1 (C 2 ) doit être sous licence GPL 2» S est MPL 1.1 => L intégra4on de C1 et C1 dans S est impossible 1/27/10 29

Exemple Bugzilla Système de suivi des bogues. UAlise 82 paquetages 10 licences différentes BSD (plusieurs versions) ArAsAc v1 GNU GPL (plusieurs versions) MIT Apache v2 IBM Public License v1.0 1/27/10 30

IncompaAbilité de licences Chaque licence a ses droits et ses restricaons Abandonner la réualisaaon? Choisir des composants avec la même licence toujours? Essayer de résoudre l incompaabilité? Comment? license mismatch problem [German et al.] 1/27/10 31

SoluAons? Koders.com par Black Duck Sotware Chercher des composantes en spécifiant le type de licence FOSSology par HP IdenAfier les licences à parar du code source 1/27/10 32

Patron d intégraaon de licences [German et al.] Analyse manuelle de plus de composants (Bugzilla, MySQL, GCC, etc.) UAlisaAon de graph de dépendances pour les modèles IdenAficaAon des licences IdenAficaAon d incompaabilités entre les licences 1/27/10 33

Patron d intégraaon de licences [German et al.] Concédant de licence ou autorisant (Licensor) ExcepAon Autoriser une ualisaaon spécifique en étendant la licence sans modifier le texte Example: Qt (GNU LGPL, GNU GPL with Qt special excepaon) DisjuncAve Plusieurs licences à la fois Exemples: Mozilla Core, Qt 1/27/10 34

Patron d intégraaon de licences [German et al.] Concédant de licence ou autorisant (Licensor) ClarificaAon Donner une interprétaaon pour les paraes ambigües de la licence Permit Relicensing Une licence différente pour le travail dérivé que la licence d origine Add on CommunicaAon de composants incompaables en étendant la foncaonnalité d un autre composant via une API. 1/27/10 35

Patron d intégraaon de licences [German et al.] Concédant de licence ou autorisant (Licensor) Indirect License Un composant définit sa licence en étant pareille qu une autre. Different part, different licenses Donner des licences différentes aux différentes paraes du système 1/27/10 36

Patron d intégraaon de licences [German et al.] Déteneur de permis (Licensee) Patch Pour autoriser de modifier sans créer un travail dérivé. Component with compaable license Trouver un composant compaable Create collecave Ask for excepaon Demande d excepaon Ask for clarificaaon Demande de clarificaaon 1/27/10 37

Références Transparents empruntés à Dr. Yann Gaël Guéhéneuc Daniel M. German and Ahmed E. Hassan ; License Integra4on PaGern: Dealing with Licenses Mismatches in Component based Development; ICSE, May 2009, ACM Press. Karim Yaghmour, Jon Masters, Gilad Ben Yossef, and Philippe Gerum (2008). Building embedded Linux Systems. O Reilly Media, Inc. 1/27/10 38

Références Open Source IniAaAve hpp://opensource.org/ Heather J. Meeker (2008). The Open Source AlternaAve: Understanding Risks and Leveraging OpportuniAes. John Wiley & Sons, Inc. 1/27/10 39