Logiciel libre - Roberto Di Cosmo

Transcription

Logiciel libre - Roberto Di Cosmo
Pas si simple . . .
Même les meilleurs peuvent se tromper
PHP :
Rasmus Lerdorf Jun 8 1995, 9 :00 am
Announcing the Personal Home Page Tools (PHP Tools) vers
1.0.
. . .
The tools are in the public domain distributed under the
GNU
Public License. Yes, that means they are free !
Logiciel libre : une introduction.
Roberto Di Cosmo
http://www.dicosmo.org
Janvier 2006
Information sur le cours
◮ 18h de cours plus 10h de TD = 28h sur deux mois
ATTENTION : le premier TD est le 9 Février
◮ une mailing liste est en place sur http://sympa.pps.jussieu.fr/wws
◮ la page du cours est en ligne
◮ on travaillera ensemble aux notes de cours
Plan du cours
◮ Introduction et histoire
◮ Le cadre légal
⊲ droit d’auteur
⊲ brevets
⊲ droit des marques
⊲ droit du travail
◮ La trousse à outils du Logiciel Libre
◮ Un survol des mecanismes de formation des standards ouverts
◮ Un survol des problématiques d’ingénierie logiciel
◮ Acteurs et modèles économiques
◮ Le cas specifique de l’Administration Publique
◮ Modèles de Securité “by obscurity”, histoire, et aproche moderne
◮ Étude du vote éléctronique
◮ Étude de cas : Gnat, OCaml, Advi, Scilab, Mandrakesoft, OpenCascade,
Cybeosphere, EDF, Lutetia, RedHat
◮ Le cas du contenu : de la publication scientifique libre à la free art
NTIC : le moteur de la croissance est né en Europe
Quelques exemples :
bases : projet LeLisp à l’INRIA (France)
⇒ Ilog
⇒ NeXTStep (parti aux US)
WWW : 1989, CERN (Suisse), T. Berners-Lee, R. Cailleau sur NeXTStep
WebCrawler : 1992, US, avec l’IndexingKit de NeXTSTEP
Linux : 1990, Linus Torvalds, Finlande
Les raisons profondes du succés : la liberté, l’interoperabilité
protocoles de communication ouverts
communiquer librement
formats de données ouverts
échanger librement du contenu
logiciels libres
reprendre le contrôle de la technologie
Quelques définitions
Freeware
logiciel gratuit
Shareware
logiciel payant, mais avec une période d’essai gratuite
Free Software
(Open Source, Logiciel Libre)
Quelque chose de radicalement différent, à l’origine du succés du Web et de
l’Internet
mais encore : abandonware, public domain, . . .
Free, Open Source Software : Logiciel libre
Gratuit (anglais : free) :
logiciel non payant (aujourd’hui)
Libre (anglais : free) :
logiciel avec 4 droits
◮ Liberté d’utiliser le logiciel
◮ Liberté d’étudier les sources du logiciel et de l’adapter à ses besoins
◮ Liberté de distribuer des copies
◮ Liberté de distribuer les sources (éventuellement modifiées)
(ceci est garanti par
http://www.opensource.org/docs/definition.php).
Il y a des obligations aussi, qui varient selon la licence : GPL/BSD/Mozilla/X,
etc.
Quelques statistiques
Apache (free software) domine le marché des serveurs web
sans vente forcée, sans milliards gaspillés en marketing aggressif⇐
Linux (free software)
leader sur le marché des
OS pour serveur web
idem comme ci-dessus
(Source : NetCraft, Janvier 2006)
Libre n’est pas gratuit
non libre, gratuit :
Internet Explorer, MacTCP, Acrobat Reader, freeware, etc.
non libre, non gratuit :
no comment . . .
libre, gratuit :
Mozilla, Linux, FreeBSD, OpenBSD, sendmail, perl, etc.
libre, non gratuit :
distributions commercialesa de Linux, etc.
Le logiciel libre respecte le droit des auteurs
n’est pas Napster
L’auteur choisit librement d’écrire du logiciel libre
n’est pas du “domaine public”, ni “libre de droits”
L’auteur protège la liberté de son logiciel par une licence
ne relève pas d’une “logique d’abandon”
L’auteur choisit une logique de valorisation innovante pour son logiciel
protège la propriété intellectuelle
La disponibilité de logiciels équivalents libres . . .
reduit la copie illégale !
Le logiciel : libre vs. propriétaire
Logiciel libre accès au code, liberté de modifier et distribuer :
◮ avantages pédagogiques indéniables : accès à une meilleure formation (à
l’informatique)
◮ multipliea le nombre des programmeurs qui vérifient le code, divise les
pirates :
l’accès au code source attire les programmeurs compétents
◮ redonne le contrôle aux utilisateurs
◮ permet d’échapper à la fuite en avant technologique
Logiciel propriétaire : pas d’accés au codeb , pas de modifications, pas de
distribution
◮ ne permet pas d’adapter le logiciel, ni de le comprendre
◮ aucun contrôle de l’évolution technologique
◮ multiplie les pirates, divise les vérificateurs
◮ peut vous emprisonner dans formats et protocoles propriétaires
Cours n. 2 : un peu d’Histoire
◮ Logiciel libre ante litteram
◮ La proprietarisation du logiciel
◮ Donald Knuth et TEX
◮ AT&T et Unix
◮ Richard Stallman, GNU et la Free Software Foundation
◮ Linux, GNU/Linux et les années 1990
Logiciel Libre ante litteram
Jusqu’à la fin des années 1960, le logiciel, avec les sources, était distribué
gratuitement, comme un complément pour les ordinateurs vendus (très chers) à
l’époque.
I think there is a world market for maybe five
computers.
Thomas J. Watson, fondateur d’IBM, 1943
Encore en fin des années 197O n paye le temps de calcul à la seconde.
Logiciel Libre ante litteram
N’oublions pas les raisons techniques de cette réalité :
◮ modèle de service clé en main comprenant hw & sw & service
◮ logiciel très dépendant de la machine utilisateur (n. de disques, taille de la
mémoire, etc.), donc . . .
◮ nécéssité de recompiler sur la machine cible
◮ des idées comme BIOS sont beaucoup plus tardives
Encore dans les années 1970, des vastes communautés d’utilisateurs échangeaient
librement le code source, au milieu de réseaux comme DECUSa ou SHAREb .
La propriétarisation du logiciel
Cela commence à changer en 1969 :
sous la menace d’une action antitrust, initiée à la demande d’un groupe d’industriels
dirigés par CDC, IBM separe (“unbundles”) le logiciel, et crée un premier marché
pour les services et les logiciels.
A number of professional services companies felt encouraged to produce
packaged programs and market them aggressively.
IBM’s Unbundling, Burton Grad, IEEE AHC 2002
La propriétarisation du logiciel et les PC
1974 : Intel commercialise le 8080a , Motorola le 6800b
1975 : Altair 8800, avec 256 bytes de RAM est introduit sur le marché, $397 in kit,
$439 assemblé.
Micro-Soft est fondé et license BASICc pour le Altair,
MOS introduit le 6502,
4000 commandes pour le Altair
1976 : Bill Gates écrit une lettre aux hobbystes, en protestant contre la “piratérie”
software, adviwait
What hobbist can put 3-man years into programming, finding all bugs,
documenting his product and distribute for free ?
Bill Gates General Partner, Micro-Soft
Steve Jobs et Steve Wozniak créent Appled et réalisent le Apple I
La propriétarisation du logiciel et le droit d’auteur
”the object phase of a computer program was not a ’copy’ within meaning of
the Copyright Act of 1909 or common law” and ”The Copyright Act of 1976
applies to computer programs in their flow chart, source and assembly
phases, but not in their object phase.”
Datacash vs. JS&A
(79 C 591, 26 Septembre 1979)
Illinois District Court
1977 : Apple II (avec 4Kbytes de Ram) fait tourner VisiCalca , Radio Shack vend le
TRS-80
1981 : IBM introduit le 5150 PC (Personal Computer), avec une puce Intel 8088 à
4.77-MHz, 64KB RAM, 40KB ROM, et PC-DOS 1.0 (MS-DOS), pour $3000.
1983 : Naissance du “shareware” avec PC-TALK Andrew Fluegelman), PC-FILE
(Jim Button) et PC-WRITE (Bob Wallace)
1984 : Apple Macintosh, 512x342 noir et blanc, mouse, Motorola 68000 à 7.8-MHz,
128-KB RAM pour $2000
1985 : Atari 520ST, Amiga 1000 sur le 68000
1986 : Intel 80396, à 16Mhz
1988 : NeXT est né
Donald Knuth et TEX
1978 : D. Knuth prend une année sabbatique, et commence à travailler sur TEX
1983 : LaTeX par Leslie Lamport
1989 : TEX est gravé dans le marbre par Knuth
La license permet la libre distribution et modification à condition qu’on change le
nom.
AT&T et Unix
1965 : MIT, Bell Labs, GE lancent le projet MULTICS
1969 : Bell Labs se retire, Multics passe à Honeywell
1969 : Ken Thompson, Dennis Ritchie travaillent à UNICSa , sur un PDP-7 de Bell
Labs
1972 : Dennis Ritchie conçoit C (évolution de B, restriction de BCPLb )
1973 : Unix est reécrit en C
1976-77 : Ken Thompson en sabbatique à University of California-Berkeley (UCB),
travaille sur Unix Editionc 6
Bill Joy, Chuck Haley démarrent BSDd et fait le secrétariat30, puis 75 bandese
1979 : naissance du CSRGf à Berkeley, avec un contrat DARPA
1980 : BSD contient encore du code AT&T, donc il faut une licence pour
BSDLicence par institution, par par copie.g
1982 : Bill Joy part fonder Sun Microsystems avec Scott McNealy
1983 : BSD 4.2 incorpore TCP/IP
Dans cette periode, la distribution de Unix se faisait par l’envoi d’une bande
magnétique par la poste.
AT&T et Unix
Pourquoi AT&T distribue Unix aussi librement ?
1956 : Consent Decree, “AT&T restricts its activities to . . . the national telephone
system and government work.” a
1984 : “divestiture” de AT&T, qui produit 7 “baby bells”, et annulle le consent decree
◮ création de AT&T Computer Systems, qui commercialise Unix System 5
◮ BSD reprend le rôle de distributeur libre de Unix, abandonné par AT&T
◮ un conflit d’intérêt se profile clairement, avec BSD plus populaire que System
V, et moins cher
1989/1990 : création de USOb , fusion avec USLcd
1991 : le conflit se déclare, avec BSDI qui commercialise une version de BSD. . .
a http://www.att.com/history/history3.html
b Unix
c Unix
Software Operation
System Laboratories
d Voir http://www.bell-labs.com/history/unix/business.html.
1991 : un étudiant finlandais poste un message sur Usenet
1992 : en Janvier USL attaque BSDI en tribunal (6 fichiers de BSD viennent de
AT&T), le noyau Linux passe sous licence GPL
Richard Stallman, la FSF et la GPL
1971 : RMS arrive au MIT (AI lab)
1981 : Symbolics embauche presque tous les “hackers” du MIT
1984 : Stallman laisse l’MIT pour diriger le projet GNU (www.gnu.org), annoncé
en septembre 1983
1985 : création de la Free Software Foundation (www.fsf.org), publication du
“GNU Manifesto” (http://www.gnu.org/gnu/manifesto.html)
1989 : première version de la licence GPL (General Public Licence)
Chapitre 2 : “Proprieté Intellectuelle”
Il y a quatre instruments majeurs de “protection” de la “propriété intellectuelle” :
le secret industriel : on ne dévoile pas les secrets de fabrication
la marque : créer une image publique reconnue du produit
le droit d’auteur : vendre des “licences d’utilisation” du logiciel, qui ne peut être
copié tel quel
le brevet : obtenir un monopole garanti par l’Etat sur des “inventions” ou
“techniques” qui ne s’identifient pas à un produit
L’ordre de cette présentation n’est pas dû au hasard.
Une lecture intéressante :
http://www-db.stanford.edu/∼ ullman/pub/focs00.html le
discours de J. Ullman “Ordinary skills in the art” pour son Knuth Award de 2000.
L’experience de 30 ans d’Informatique
secret industriel : usage massif dans l’electronique et les jeux
la marque : tres rentable, compatible avec l’Open Sourcea
droit d’auteur : usage massif pour le logiciel, introduit essentiellement avec la
generalisation des Personal Computers
le brevet : largement utilisé dans le monde pharmaceutique, pour les voiture, les
avions, usage presque uniquement de fac,on detourné dans le monde du logiciel
Le developpment exponentiel de l’informatique est du a l’absence de brevetes
logiciels.
”If people had understood how patents would be granted when most of
today’s ideas were invented and had taken out patents, the industry would be
at a complete standstill today...A future start-up with no patents of its own
will be forced to pay whatever price the giants choose to impose.”
Bill Gates, 1991
Droit d’auteur : un peu d’histoire et de textes de référence
1662 : Licensing Act
1709 : Statute of Anne (auteur et durée limitée)
1791/93 : Droit d’auteur (et des brevets) introduit en France
1886 : Convention de Berne (reconnaissance internationale, sans depôt préalable,
exclusivité traduction) a
1961 Convention de Romeb
a “compl. Paris (1896), rev Berlin (1908), compl. Berne (1914), rev Rome (1928), Brussels (1948), Stock-
holm (1967), Paris (1971), amend. 1979 (Berne Union)”
b pour la protection des artistes interprètes ou exécutants, des producteurs de phonogrammes et des organismes de radiodiffusion
Quelques organisations
WIPO/OMPI : association privée sans financement, affiliée aux UN
WTO/OMC : Organisation Mondiale du Commerce
INPI : institut français pour la Propriété Intellectuelle
EPO : Office européen des brevets
USPTO : US Patent Office
Reverse Engineering dans la directive de 1991
1991 Directive EU sur les logiciels (reverse engineering)a , durée = 50 ans
Article 6 Decompilation 1. The authorization of the rightholder shall not be required where
reproduction of the code and translation of its form within the meaning of Article 4 (a) and (b)
are indispensable to obtain the information necessary to achieve the interoperability of an
independently created computer program with other programs, provided that the following
conditions are met :
(a) these acts are performed by the licensee or by another person having a right to use a copy of
a program, or on their behalf by a person authorized to to so ;
(b) the information necessary to achieve interoperability has not previously been readily
available to the persons referred to in subparagraph (a) ; and (c) these acts are confined to the
parts of the original program which are necessary to achieve interoperability.
2. The provisions of paragraph 1 shall not permit the information obtained through its
application :
(a) to be used for goals other than to achieve the interoperability of the independently created
computer program ;
(b) to be given to others, except when necessary for the interoperability of the independently
created computer program ; or (c) to be used for the development, production or marketing of a
a http://europa.eu.int/smartapi/cgi/sga
doc?smartapi!celexapi!prod!CELEXn
computer program substantially similar in its expression, or for any other act which infringes
copyright.
3. In accordance with the provisions of the Berne Convention for the protection of Literary and
Artistic Works, the provisions of this Article may not be interpreted in such a way as to allow its
application to be used in a manner which unreasonably prejudices the right holder’s legitimate
interests or conflicts with a normal exploitation of the computer program.
Clean Room/Dirty Room reverse engineering
Pour produire un logiciel B concurrent du logiciel A, ce qui est interdit par le droit
d’auteur est :
la copie (de parties significatives) du code source de A
la decompilation (de parties significatives) du code objet de A
sauf si indispensable pour l’intéropérabilité
Par contre vous pouvez :
observer le fonctionnement de A
réécrire independemment B avec les fonctionnalités de A
A priori, clean room/dirty room sont équivalents à ce niveau
Un exemple : le cas Softimage vs. Synx Relief
http://www.legalis.net/jurisprudence-decision.php3?id artic
de 2003.
Le code de la propriété intellectuelle
Accessible sur http://www.legifrance.gouv.fr, Il établit
◮ un droit de propriété exclusif ; Art. L111-1 :
L’auteur d’une oeuvre de l’esprit jouit sur cette oeuvre, du seul fait de sa
création, d’un droit de propriété incorporelle exclusif et opposable à tous.
◮ ce droit a deux facettes
⊲ droit moral (L121-1. . .L121-9) :
L’auteur jouit du droit au respect de son nom, de sa qualité et de son
oeuvre. Ce droit est attaché à sa personne. Il est perpétuel, inaliénable et
imprescriptible. (Art. L121-1)
⊲ droit patrimonial (L122-1. . .L122-12)
Toute représentation ou reproduction intégrale ou partielle faite sans le
consentement de l’auteur ou de ses ayants droit ou ayants cause est illicite.
(Art. L122-4)
Le code de la propriété intellectuelle et les logiciels
Les logiciels relèvent de ce droit
◮ Art. L112-2 :
Sont considérés notamment comme oeuvres de l’esprit au sens du présent
code :
...
13 Les logiciels, y compris le matériel de conception préparatoire ;
...
Mais avec des particularités
◮ Art 113-9
Sauf dispositions statutaires ou stipulations contraires, les droits
patrimoniaux sur les logiciels et leur documentation créés par un ou
plusieurs employés dans l’exercice de leurs fonctions ou d’après les
instructions de leur employeur sont dévolus à l’employeur qui est seul
habilité à les exercer.
Le code de la propriété intellectuelle et les logiciels
et aussi
◮ Art. L121-7
Sauf stipulation contraire plus favorable à l’auteur d’un logiciel, celui-ci ne
peut :
1 S’opposer à la modification du logiciel par le cessionnaire des droits
mentionnés au 2o de l’article L. 122-6, lorsqu’elle n’est préjudiciable ni à
son honneur ni à sa réputation ;
2 Exercer son droit de repentir ou de retrait.
Le code de la propriété intellectuelle : plusieurs auteurs
◮ oeuvre de collaboration : plusieurs auteurs identifiés
◮ oeuvre collective : une seule entité édite, publie, diffuse une oeuvre où les
contributions individuelles ne sont plus clairement identifiables’adviwait
Durée des droits (France) :
◮ individuelle : 70 ans aprés la mort
◮ collaboration : 70 ans aprés la mort du dernier auteur
◮ collective : 70 ans aprés la publication
Droit d’auteur : un peu d’histoire et de textes de référence
1993 Directive EU sur l’armonisation du droit d’auteur, durée = 70 ans, retroactive
(de l’Allemagne)
1994 Accords TRIPS (Trade-Related Aspects of Intellectual Property Rights)
1996 Traité de l’OMPI sur le droit d’auteur (WCT) :
a
1998 “Mickey Mouse” Copyright Term Extension Act (70, ou 75 a 95)
a Le traité fait obligation aux parties contractantes de prévoir des sanctions juridiques contre la neutralisa-
tion des mesures techniques (cryptage, par exemple) qui sont mises en oeuvre par les auteurs dans le cadre
de l’exercice de leurs droits et contre la suppression ou la modification d’informations, comme certains
éléments permettant d’identifier l’oeuvre ou son auteur, qui sont nécessaires pour la gestion (concession
de licences, perception et répartition des redevances) des droits des auteurs (information sur le régime des
droits).
Droit d’auteur : les implémentations du traité de l’OMPI
1998 Digital Millennium Copyright Act
2001 Chiarigliano vs Felten,
2001 Skylarov (http://www.freesklyarov.org/)
2001 deCSS
2004 LCEN :
http://ameli.senat.fr/publication pl/2003-2004/144.html,
ou Legifrance
2006 DADVSI implemente EUCD : voir http://eucd.info
Les licences “libres” : Open Source vs. Free Software
Le paysage est assez complexe :
proprietaire : . . .
libre :
Richard Stallman
copylefted : GPL/LGPL, etc.
non copylefted : BSD/MIT, etc.
open source :
Bruce Perenes/Eric Raymond
Le mouvement Creative Commons
En 2001, apparaı̂t Creative Commons
(http://creativecommons.org/about/history).
Finalité : structurer les licences pour qui souhaite donner un certain degré de liberté à
ses oeuvres.
La version originale (1.0) de la famille des licences est essentiellement obtenue par
combinaison des restrictions suivantes :
attribution : obligation de mentionner l’auteur
http://creativecommons.org/licenses/by/1.0/
non-commercial : interdiction d’usage
commercialhttp://creativecommons.org/licenses/nc/1.0/
no-derivs : interdiction de faire des oeuvres
dérivéshttp://creativecommons.org/licenses/nd/1.0/
share-alike : obligation de redistribuer sous la même
licencehttp://creativecommons.org/licenses/sa/1.0/
Cependant, on ne retrouve pas, dans la version 1.0, 16 licences, mais seulement 11 :
Attribution
Attribution-NoDerivs
Attribution-NoDerivs-NonCommercial
Attribution-NonCommercial
Attribution-NonCommercial-ShareAlike
Attribution-ShareAlike
NoDerivs
NoDerivs-NonCommercial
NonCommercial
NonCommercial-ShareAlike
ShareAlike
De plus, dans la version Française, on ne retrouve que les 6 premières licences, et si
vous allez regarder l’introduction à la version 2.5 de Creative Commons, sur
http://creativecommons.org/about/licenses/meet-the-licenses
c’est de même.
Cela s’explique par le fait que, en déhors des Etats-Unis, vous ne pouvez pas renoncer
au droit moral, qui inclut “Attribution”.
Le Brevet
Un brevet est un droit pour avoir un monopole sur une invention.
Droit de Faire Art. L. 611-1 CPI :”Le brevet confère à son titulaire ou à ses ayants
cause un droit exclusif d’exploitation”.
Droit d’interdire à tout tiers : la fabrication, l’offre, la mise dans le commerce,
l’utilisation ou l’importation ou la détention aux fins précitées du produit objet
du brevet
l’utilisation du procédé, objet du brevet, ou, lorsque le tiers sait ou que les
circonstances rendent évident que l’utilisation du procédé est interdite sans le
consentement du propriétaire du brevet, l’offre de son utilisation sur le territoire
français ;
l’offre, la mise dans le commerce ou l’utilisation ou l’importation ou la détention
aux fins précitées du produit obtenu directement par le procédé objet du brevet.
L’atteinte à ces droits constitue le délit de contrefaçon.
Brevet : un peu d’histoire et de textes de référence
En 1474, le Sénat de Venise vote un texte connu comme (( Parte Veneziana )), qui
énumère les principes qui sont à la base des brevets d’invention :
Motivations
◮ On concède à l’inventeur une exclusivité sur l’invention, . . .
◮ limitée dans le temps et dans l’éspace, . . .
◮ en échange de la revelation du contenu de l’invention, . . .
◮ ce qui est supposé accélerer l’activité inventive dans l’intérêt du plus grand
nombre.
Modalités
◮ on dépose auprès d’un office administratif une démande, . . .
◮ qui définit précisement le contenu de l’exclusivité demandée, . . .
◮ et qui doit presenter une invention nouvelle
Ensuite, on assiste à un foisonnement de notions de “monopole”, “licence”, “brevets”
qui appellent à une réglementation :
1623 Statute of Monopolies en Angleterre
1790 Patent Act aux Etats Unis
1791 Brevet en France
1883 Convention de Paris, première convention internationale (entre Belgique,
Brasil, France, Guatemala, Italie, Hollande, Portugal, Salvador, Serbia, Espagne
et Suisse) ;
établissement du droit d’antériorité dans les applications internationales ;
création de l’Union Internationale pour la Propriété Industrielle, . . . qui fusionne
en 1893 avec le bureau issue de la convention de Berne et devient le BIRPI.
1951 Création de l’INPI
1957 Code de la Propriété Intellectuelle en France (modifié jusqu’en 2004)
1970 PTC (Patent Cooperation Treaty) de Washington
1973 l’EPC (European Patent Convention) de Munich crée l’Office Européen des
Brevets, et précise le champ de la brévetabilité (Article 52)
Inventions brevetables
1. Les brevets européens sont délivrés pour les inventions nouvelles impliquant
une activité inventive et susceptibles d’application industrielle.
2. Ne sont pas considérés comme des inventions au sens du paragraphe 1
notamment :
(a) les découvertes ainsi que les théories scientifiques et les méthodes
mathématiques ;
(b) les créations esthétiques ;
(c) les plans, principes et méthodes dans l’exercice d’activités intellectuelles,
en matière de jeu ou dans le domaine des activités économiques, ainsi que
les programmes d’ordinateurs ;
(d) les présentations d’informations.
3. Les dispositions du paragraphe 2 n’excluent la brevetabilité des éléments
énumérés auxdites dispositions que dans la mesure où la demande de brevet
européen ou le brevet européen ne concerne que l’un de ces éléments,
considéré en tant que tel.
4. Ne sont pas considérées comme des inventions susceptibles d’application
industrielle au sens du paragraphe 1, les méthodes de traitement chirurgical
ou thérapeutique du corps humain ou animal et les méthodes de diagnostic
appliquées au corps humain ou animal. Cette disposition ne s’applique pas
aux produits, notamment aux substances ou compositions, pour la mise en
oeuvre d’une de ces méthodes.
Quelques articles fondamentaux de l’EPC
Article 82
Unité d’invention
La demande de brevet européen ne peut concerner qu’une invention ou une
pluralité d’inventions liées entre elles de telle sorte qu’elles ne forment
qu’un seul concept inventif général.
Article 83
Exposé de l’invention
L’invention doit être exposée dans la demande de brevet européen de façon
suffisamment claire et complète pour qu’un homme du métier puisse
l’exécuter.
Article 84
Revendications
Les revendications définissent l’objet de la protection demandée. Elles
doivent être claires et concises et se fonder sur la description.
Article 85
Abrégé
L’abrégé sert exclusivement à des fins d’information technique ; il ne peut
être pris en considération pour aucune autre fin, notamment pour apprécier
l’étendue de la protection demandée et pour l’application de l’article 54,
paragraphe 3.
Conditions de la brévétabilité
Aujourd’hui, un certain consensus s’est dégagé sur ce qui est nécéssaire pour
l’obtention d’un brevet sur une invention :
conditions formelles
subject-matter réléver d’un domaine brévetable
Europe : Art. 52 (Japon assez similaire)
US : “everything under the sun”
unité de l’invention . . .
... ...
Conditions de la brévétabilité
conditions substantielles
nouveauté ne doit pas déjà être connue
Europe : primo-déposant, obligation de secret (18 mois)
US : primo-inventeur, délai de grâce (12 mois)
activité inventive (non-obviousness aux US) ne pas être triviale
applicabilité industrielle doit pouvoir être industrialisée (US : “useful”)
suffisance de la description (disclosure)
...
Invention 6= innovation !
A noter la difference profonde entre deux termes trop souvent mélangés
invention : un objet ou une technique nouvelle
innovation : introduction d’une idée nouvelle (qui peut être largement connue
ailleurs) dans un contexte qui ne l’appliquait pas (selon Schumpeter, “une
invention mise en pratique”)
La brévétabilité du logiciel en Europe
pre-1986 : Art. 52 exclue les logiciels
1986-1998 : relachement progressif de l’OEB :
“”programs for computers” [. . . with] a technical character [. . . are] not
excluded from patentability”
OEB technical guidelines
1986 Vicom ( T208/84), 1.7.1986 : “programme avec effet technique”
1988 IBM visual indication (T115/85), 5.9.1988 : “programme qui resout un
problème technique”
1994 Sohei case (T769/92), 31.5.94 : “programme qui nécéssite des
considérations techniques”
1998 IBM Computer program product (T1173/97). 1.7.1998 : “programme qui
peut avoir un effet technique”
Cela est flou est engendre une insécurité dans le droit, donc. . .
2002 la Direction du Marché intérieur de la Commission européenne (dirigée par
Frits Bolkestein) soumet la proposition de directive 2002/0047
2002 Jacques Chirac déclare : (( Autoriser les brevets sur les logiciels mettrait
l’Europe sous la coupe des entreprises américaines. Il faut refuser la vassalisation
technologique vis-à-vis des Etats-Unis et soutenir le logiciel libre, la créativité de
l’informatique française et européenne et notre indépendance technologique. ))
2002 en analysant le document informatique fourni par la Commission, des
informaticiens découvrent qu’il a été rédigé avec l’aide matérielle de la BSA, une
association privée regroupant essentiellement des grandes industries du logiciel
nord-américaines
2002-2003 La CEA-PME, organisation représentant plus de 500 000 entreprises,
proteste vivement et elle est rejointe par la CEDI (Confédération Européenne des
Indépendants) et la ESBA (European Small Business Alliance), ce qui porte le
total à plus de 2.000.000 de PME ; le site NoEPatents recueille plus de 380.000
signatures, dont plus de 3.000 de PDG européens
24 septembre 2003 le Parlement européen vote un ensemble d’amendements à la
directive, ce qui la transforme en un texte qui interdit clairement les brevets
logiciels
Recital 7
Under the Convention on the Grant of European Patents signed in Munich on 5
October 1973 and the patent laws of the Member States, programs for
computers together with discoveries, scientific theories, mathematical
methods, aesthetic creations, schemes, rules and methods for performing
mental acts, playing games or doing business, and presentations of information
are expressly not regarded as inventions and are therefore excluded from
patentability. This exception applies because the said subject-matter and
activities do not belong to a field of technology.
Article 2b.
”technical contribution”, also called ”invention”, means a contribution to the
state of the art in technical field. The technical character of the contribution is
one of the four requirements for patentability. Additionally, to deserve a
patent, the technical contribution has to be new, non-obvious, and susceptible
of industrial application. The use of natural forces to control physical effects
beyond the digital representation of information belongs to a technical field.
The processing, handling, and presentation of information do not belong to a
technical field, even where technical devices are employed for such purposes.
Article 3a.
Member states shall ensure that data processing is not considered to be a field
of technology in the sense of patent law, and that innovations in the field of
data processing are not considered to be inventions in the sense of patent law.
18 mai 2004 lors d’une réunion du Conseil des ministres est voté avec une courte
majorité un accord politique sur une ”position commune” qui reprend le
document de compromis
2004-2005 différentes présidences tournantes (Irlande et Hollande) du Conseil
essayent de transformer cet accord de principe en adoption officielle du texte
sans vote
2004 rencontre en novembre 2004 entre le premier ministre danois et Bill Gates,
pendant laquelle ce dernier aurait menacé de délocaliser l’éditeur Navision au
Danemark (800 emplois, rachetée par Microsoft en 2002) si la directive
européenne sur la brevetabilité n’était pas adoptée.
2004 Bill Gates est reçu avec les honneurs usuellement réservés aux chefs d’état par
Jacques Chirac,
2005 le premier février 2005, Bill Gates s’entretient à Bruxelles avec des
responsables politiques
2005 une commission du Parlement Européen demande formellement à la
Commission de retirer la directive ; cette demande est ignorée ;
2005 le 5 mars 2005, le parlement Danois vote une motion obligeant son
gouvernement à bloquer la directive, si elle était reproposée
2005 la présidence luxembourgeoise remet à l’ordre du jour d’une réunion du conseil
du 7 mars 2005, toujours comme point à adopter sans discussion, et passe en
force
2005 Le Parlement européen rejete la directive le 6 juillet 2005 : 648 voix pour, 14
contre et 18 abstentions.
2006 Ce n’est pas fini :
http://register.consilium.eu.int/pdf/en/04/st07/st07119.
et
http://europa.eu.int/comm/internal market/indprop/patent
Brevets logiciels : l’état actuel
US : ce que vous voulez, ex. Amazon one-click, ou l’opérateur “non”
EU : flou. . . l’EPC exclue les logiciels, l’EPO les a petit à petit inclus, en ce moment,
il y a un bras de fer entre Commission et société civile qui n’est pas terminé
Autant les connaı̂tre !
Quelques exemples
voyageur pressé USPTO 5,249,290
signature éléctronique INPI 2,858,505
serveur multimédia USPTO 5,963,916
préchargement de pages Web INPI 2,858,078
Dulcis in fundo : Application pour l’opérateur NON.
Ventilation des brevets “logiciels” en Europe
Coût d’un brevet
En France :
depôt à l’INPI : 320+15 euros
redevance 25 euros de la 2eme à la 5eme année, 135 euros de la 6eme à la 10eme
année, 270 euros de la 11eme à la 15eme année, 530 euros de la 16eme à la
20eme année
conseil et frais de procédure $$$ (total moyen entre 7000 et 8000 euros)
Extension à l’étranger :
américain 15 000 euros
japonais 15 à 20 000 euros
européen avec 10 traductions 30 000 euros
idem, plus 20 ans de redevance 100 000 euros
Qui peut obtenir un brevet
inventeur celui qui trouve
il est toujours mentionné
brévété celui qui obtient le brevet
aux US : est l’inventeur, mais le brevet est assigné au déposant
en Europe : presque jamais l’inventeur
Le brevet étant une question d’argent, le “droit moral” ne va guère plus loin que la
mention de l’inventeur.
Les cas de figure le plus courants
indépendant il detient le brevet
salarié c’est presque toujours l’employeur
invention de mission = employeur : on vous a demandé de chercher
hors mission attribuable = employeur : vous trouvez dans un domaine de
l’entreprise, ou en utilisant moyens et/ou savoir faire de l’entreprise
hors mission non attribuable = employé : dans les autres cas (lesquels ?)
Dans ce cas, un “juste prix” est dû au salarié
A l’université et au CNRS, on partage les bénéfices entre salarié et institution
La difference fondamentale entre droit d’auteur et brevet
Elle semble difficile, mais elle ne l’est pas :
droit d’auteur : Agatha Christie ne peut pas s’approprier les aventures de Sherlock
Holmes, i.e.
◮ copier de toute piéce le livre de Arthur Conan Doyle
◮ faire un search/replace “Sherlock Holmes” avec “Hercule Poirot”
◮ remplacer Arthur Conan Doyle par Agatha Christie comme auteur
◮ revendre le livre à son compte
mais, Arthur Conan Doyle ne peut pas interdire à Agatha Christie de reprendre
l’idée d’un detective qui résout des cas difficiles avec son intelligence déductive,
si Agatha Christie ne fait pas une copie éhontée des aventures de Sherlock
Holmes
brevet : Arthur Conan Doyle peut interdire à Agatha Christie de reprendre l’idée
d’un detective qui résout des cas difficiles avec son intelligence déductive,
Agatha Christie ne peut donc pas créer Hercule Poirot, sauf si Arthur Conan
Doyle accepte de lui conceder une licence d’exploitation, à ses conditions.
Pour qui pense être Arthur Conan Doyle, le brevet est beaucoup plus intéressant,
mais il ne faut pas faire ses plan sans Edgar Allan Poe !
Voir http://www.dicosmo.org/Papers/up4-3DiCosmo.pdf
Clean Room/Dirty Room reverse engineering
Pour produire un logiciel B concurrent du logiciel A, ce qui est interdit par le brevet
est :
tout
Concrétement
Le brevet donne pouvoir d’interdiction absolue et discretionnairea
◮ réfuser une technologie essentielle à un concurrent
◮ attaquer en justice, et l’accusé doit prouver son innocence
Cela transforme les brevets en armes de guerre économique.
En générale, cela avantage les plus grands, qui s’immunisent entre eux par
cross-licensing gratuit et écrasent les petits (Ex : Gif (Unisys/IBM), Hyperlinks
(British Telecom vs. Prodigy (ISP).
a Avec
des rarissimes exceptions.
Cela est aussi utilisé par Microsoft comme arme contre le Logiciel Libre :
3.3 IPR Impairing License Restrictions. For reasons, including without
limitation, because (i) Company does not have the right to sublicense its
rights to the Necessary Claims and (ii) Company’s license rights hereunder
to Microsoft’s intellectual property are limited in scope, Company shall not
distribute any Company Implementation in any manner that would subject
such Company Implementation to the terms of an IPR Impairing License.
Mais la réalité a évolué :
patent cabinets : parasites purs
pétits contres les grands :
⊲ Eolas (patent n. 5,838,906) vs. Microsoft pour 521M$
⊲ BTG contre MS et Apple
Lectures interessantes
◮
http://linuxtoday.com/news story.php3?ltsn=2000-05-26-004
(Richard Stallman) ;
◮ économie des brevets
http://www.researchoninnovation.org/patent.pdf (J. Bessen,
E. Maskin)
◮ l’ingenieur de base
http://www.smh.com.au/articles/2004/07/30/1091080437270.h
Economie du Logiciel Libre
◮ quels acteurs
◮ quels modèles économiques
◮ qui le finance
RAPPEL : inscrivez-vous sur la mailing list ! ! !
Logiciel libre : les acteurs
l’utilisateur actif :
◮ plus grande stabilité / pérennité / flexibilité
◮ mutualisation des coûts
◮ transfert du support vers dévéloppement
◮ sécurité
[3]
l’utilisateur passif :
+ logiciel presque gratuit
+ Perennité de la solution
+ pas d’emprisonnement propriétaire
- coût de sortie parfois élévé (un hasard ?)
[3]
SSII :
◮ demande de service (utilisateurs actfs et passifs)
◮ éspace économique de proximité.
◮ marge et/ou marché plus importantsa
- mise en concurrence sur base des compétences
[3]
Une classification des modeles business (Hecker,2000)
1ère variante : purement Open Source.
Support Sellers
Idée : on ne vend pas des “licences” de logiciel, mais le dévéloppement, support,
personnalisation, formation, etc.
Ex : GNU Manifesto, Cygnus, MySql, Mandriva, Red Hat, Suse, JBoss, Nuxeo,
etc.
Il s’agit du modèle preconisé à l’origine par Stallman dans le monde du libre ;
aujourd’hui on le retrouve utilisé par une série d’acteurs :
SSII : Cap Gemini, Thales, Bull, IBM, etc.
SSLL : Idealx, OpenWide, Linagora, etc.
Éditeurs : Xpertnet, Nuxeo, eXo, JBoss, Nexedi etc.
Economie : libre vs. propriétaire
modèle centré sur les licences : profit non proportionnel au travail, peu ou pas
d’emplois
modèle centré sur les services : tendence naturelle des grandes sociétés (IBM,
Oracle etc.), profit proportionnel au travail, beaucoup d’emplois qualifiés de
proximité.
à la limite, le Logiciel Libre
Income
Données 2002
Profit % Employees
IBM
81,667 M$
6,328 M$
7
290.000
Oracle
7,143 M$
955 M$
13
40.000
Microsoft
20,000 M$
8,000 M$
40
29.000
P /E a
IBM investit 1B$ dans Linux, et signe avec le gouvernementc Allemand
03/2003 : IBM signe avec Axa un contrat pour 1B$, le LL est dedans
E/P b
Evolution de la situation entre 2002 et 2006
Income
Données 2002
Profit % Employees
P /E a
E/P b
IBM
81,667 M$
6,328 M$
7
290.000
21820 $
45
Oracle
7,143 M$
955 M$
13
40.000
23875 $
41
Microsoft
20,000 M$
8,000 M$
40
29.000
275000 $
3
Income
Données 2006
Profit
% Employees
P /E c
E/P d
IBM
91.000 M$
8.000 M$
8.79
366.500
21830 $
45.81
Oracle
14.000 M$
3.300 M$
23.57
56.000
58930 $
16.97
Microsoft
44.282 M$
12.600 M$
28.45
71.000
177460 $
5.63
Evolution du marché du libre en France
Année
CA (M euros)
Part de marché
Croissance
2003
100
0.4%
-
2004
140
0.5%
40%
2005
250
0.9%
79%
2006
430
1.4%
72%
2007
700
2.1%
63%
Données Pierre Audoin Consultants 2006.
Evolution du marché du libre en France
SSII
2004
2005
Croissance (%)
Capgemini
7 Me
15 Me
+ 114,3%
Thales DSV
10 Me
14 Me
+ 40,0%
Atos Origin
9 Me
13,5 Me
+ 50,0%
Bull
8,5 Me
13 Me
+ 52,9%
SQLI
6,3 Me
12 Me
+ 90,5%
Unilog-LogicaCMG
5,5 Me
9,2 Me
+ 67,3%
IBM Global Services
4 Me
9,2 Me
+ 130,0%
EDS
6 Me
7 Me
+ 16,7%
Devoteam
4,6 Me
6,3 Me
+ 37,0%
Sopra Group
3,4 Me
6 Me
+ 76,5%
TOTAL
64,3 Me 105,2 Me
+ 63,6%
Audoin Consultants 2006.
C’est un phénomène de rupture !
Données Pierre
Une classification des modeles business (Hecker,2000)
1ère variante : purement Open Source.
Loss Leader
Ex : Netscape dans les premiers temps
Widget Frosting
Ex : IBM Z-series, Corel Netwinder, gcc. . .
Accessorizing Ex : O’Reilly
Service Enabler
Ex : Netscape Netcenter, Free
Sell It, Free It Ex : Ford en interne
Il y a beaucoup de variantes possibles
Brand Licensing
Ex : Compiere
Software Franchising
Ex : Compiere
2ème variante : modèles hybrides
On peut changer la licence Open Source pour la rendre plus restrictive, ou alors
séparer clairement les groupes des utilisateurs, pour se permettre une exclusivité
d’exploitation commerciale.
séparation spatiale :
exclusion d’usage commercial : Trolltech v 1 [Free Edition/Professional
Edition]
exclusion de la concurrence directe : BitKeeper
complication du fork : Trolltech v 2 , OCaml !
séparation temporelle : licences “biodégradables”
Ex : GNAT, Ghostscript
From Ghostscript’s README
What about commercial use ?
GNU Ghostscript may not be incorporated into commercial products which forbid copying
or for which customers cannot obtain source code for no more than the cost of reproduction,
although it may be distributed (”aggregated”) with commercial products ; Aladdin
Ghostscript may not be incorporated into commercial products at all, and may be distributed
commercially only under extremely limited circumstances.
However, Ghostscript is also available for commercial licensing, which in addition to the
right to incorporate Ghostscript into commercial products includes support, a limited
warranty, high-quality fonts, and other benefits.
For more information about commercial licensing of Ghostscript, please contact Aladdin
Enterprises’ commercial distribution partner, the only entity legally authorized to distribute
Ghostscript per se on any terms other than the GNU or Aladdin free licenses [. . .]
3ème variante : multi-licensing
On peut, tout en gardant la licence libre, séparer les groupes des utilisateurs en
réservant une deuxième licence différente à ceux qui payent.
OCaml : les membres du consortium peuvent utiliser une licence différente à la QPL
Qt/Trolltech : qui achète la licence commerciale peut utiliser les librairies sans GPL
Quelques exemples français
Scilab : (http://scilabsoft.inria.fr/) sous une licence très restraintea
(art. 4-4)
OpenCascade : (http://www.opencascade.org/) sous une licence
restrainteb (preambule)
Code Aster : (http://www.code-aster.org/) sous licence GPLc
Lutece : portaild sous une licences type BSDe
a http://scilabsoft.inria.fr/legal/license.html
b http://www.opencascade.org/occ/license/
c http://www.code-aster.org/telechargement/telechargement.php
d http://fr.lutece.paris.fr
e http://fr.lutece.paris.fr/fr/jsp/site/Portal.jsp?page
id=6
SPIP : système de publicationf sous licence GPL
CPS : portail collaboratifg sous licence GPL
f http://www.spip.net/
g http://www.nuxeo.com/solutions/cps
Survey des dévéloppeurs de Logiciel Libre
Un étude financé par la Commission Européenne et réalisée entre 2001 et 2002 sur
une population de 2774 dévéloppeurs.
Quelques resultats :
Année de début des contributions
Age
Éducation
Activité
Emplois
Salaire
Nationalité
Repartition de l’énergie
Logiciel Libre dans l’Administration Publique : État des lieux
Logiciel Libre dans l’Administration : projets de loi dans le monde
Belgique Region de Bruxelles Capitale
Bresil Amparo, Campinas, Porto Alegre, Recife, São Carlos, Solonó pole, Viçosa
Denmark projet parlamentaire, plus des annoncesa du Ministre des Sciences
Allemagne projet parlamentaire
Italie circulaire “Stanca”, très limitée
Peru projet parlamentaire de 2001 changé après une diatribe célébre
(www.gnu.org.pe/preyres.html)
en un projet plus précis, en vigeurb depuis le 18/10/2005
Espagne projet parlamentaire
etc. (Chine, Inde, Taiwan, . . .)
Les raisons
Pour garantir : pérennité des données, la sécurité et la confidentialité des informations
sensibles, et un accès équitable et sans entraves à ces données par tous les citoyens,
l’État ne peut utiliser que :
formats de données dont la spécification est publiquement accessible à tous, et dont
l’usage n’est soumis à aucune restriction
protocoles de communication dont la spécification est publiquement accessible à
tous, et dont l’usage n’est soumis à aucune restriction
logiciels dont le code source est librement accessible à tous, et dont l’usage, la
modification et la diffusion n’est soumis à aucune restriction
Les raisons ( bis )
Le recours au logiciel libre est un choix stratégique :
dévéloppement d’une industrie locale de services
création d’emplois qualifié de proximité
reduction des coûts
protection contre les entraves liées à la propriété intellectuelle
mutualisation des efforts
maı̂trise de la fuite en avant technologique
En France
Cela commence à être mis en place :
cadre normatif
propositions de loi : deux projets parlamentaires (Laffitte, Trégouet, Cabanel ;
Le Déaut, Paul & Cohen) (2000 . . .)
circulaire du Premier Ministre du 22 janvier 2001 : conditions de mise en
oeuvre d’un cadre commun d’intéropérabilité, pour les administrations
Atica/ADAE : mission du Premier Ministre,
http://www.atica.pm.gouv.fr, élaboration du cadre commun
d’intéropérabilité
En France
Plus recemment
LCEN :
http://www.legifrance.gouv.fr/WAspad/UnTexteDeJorf?numjo=ECOX0200175L,
Article 4 : On entend par standard ouvert tout protocole de communication, d’interconnexion ou
d’échange et tout format de données interopérable et dont les spécifications techniques sont publiques
et sans restriction d’accès ni de mise en oeuvre.
ADAE : http://www.adele.gouv.fr/article.php3?id article=1064, Référentiel
général d’interopérabilité, 05/06, Voir page 30, les règles RIT0025, RIT0026, RIT0027 :
◮ Il est RECOMMANDÉ d’utiliser le format Open Document pour les échanges de documents
bureautiques semi-structurés (traitement de texte, tableur, présentation).
◮ Il est OBLIGATOIRE d’accepter tout document au format Open Document pour les échanges de
documents bureautiques semi-structurés (traitement de texte, tableur, présentation).
◮ Il est INTERDIT de faire une migration depuis le format bureautique couramment utilisé par une
organisation vers un format autre que le format ouvert Open Document.
En France
Initiatives locales
Éducation :
http://libresoftware-educ.org/fr/carteFrance.html
SLIS : Serveur de communications Linux pour l’Internet Scolaire (Grenoble)
DebianEdu : distribution pour l’éducation (Seine-et-Marne, CDDP, CNDP)
AbulEdu : distribution pour l’éducation (Aquitaine)
... : ...
En France
Communautés Urbaines :
Lille : Geodoc
FRUIT
éditeur d’objets géographiques
APACS
aménagement du territoire :
conception et simulation
Associations :
Aful : www.aful.org
Illico : www.illico.org
Adullact : www.adullact.org
. . . :. . .
Projet Copernic du Minefi
Pour les données qui suivent, on remercie la direction technique du programme
Copernic du Minefi
aujourd’hui 35 millions de foyer fiscaux, 3 millions d’entreprises
avec accès universel au dossier fiscal
2010 refonte complète du SI
projet sur 10 ans, 1000 Meuro
Voir aussi
http://www.zdnet.fr/actualites/internet/0,39020774,39222852
Projet Copernic : TéléIR
2003 ouverture de portail, 10.000.000 visites en 2 mois
2003 plus de 600.000 déclarations
Evolution des déclarations
2006 5.500.000 déclarations !
Projet Copernic : politique technique
◮ contrôle de l’évolution à long terme,
avec reduction des coûts d’utilisation et maintenance.
◮ principes fondés sur normes et standards techniques internationaux
◮ orientation : client universel (Web), avec usage généralisé de HTTP et Web
Services.
Projet Copernic : plus en détail
◮ Gnu/Linux sur les serveurs des couches presentation, application et infrastructure
(plus de 1000 serveurs ; HP-UX pour les BD, Win32 pour les clients)
◮ Apache / Tomcat, PHP, Perl
◮ Bind, Squid, Samba, Postfix, OpenLDAP, MySQL, ShoreWall, ...
◮ Nagios, MRTG, nmap, Webmin, ...
Projet Copernic : encore plus en détail
Nagios et HP-UX Sondes déféctueses sur HP-UX
solution : modification au source, 2 jours de travail pour deux agents.
PKI prototype fonctionnel réalisé en une semaine
Firewalls GNU/Linux/Intel/SL
9 fois moins cher, 10 fois plus rapide à deployer, mieux mantenable, plus efficace
Infrastructure applicative (J2EE cluster) GNU/Linux/Intel 8 fois moins cher, et sans
coûts recurrents
Conclusion tirées de Copernic : avantages techniques pour l’administration
Le logiciel libre permet de tenir ses objectifs techniques :
Respet des normes ⇒ référence solide
Modularité ⇒ adaptabilité aux besoins
Accès au code ⇒ corrections rapides
Flexibilité et adaptabilité ⇒ permet d’expérimenter
Sens coût d’acquisition préalable ⇒ moindre overhead dans la commande publique
Un peu d’histoire du Génie logiciel
Le “modèle à V” incarne la vision du dévéloppement logiciel typique des années ’80
Défauts du modèle
◮ il faut une organisation centralisée
◮ les spécifications initiales peuvent être fausses ou incomplètes
◮ la distance entre spécifications et test final peut être trop longue
◮ l’utilisateur final est exclu du processus jusqu’à la fin
◮ quand on découvre un erreur grave, il est souvent trop tard
Le problème en six images
Des solutions proposées ensuite. . .
◮ programmation orientée objet
◮ conception et modélisation via UML
◮ utilisation de méthodes formelles dans le dévéloppement
◮ diverses méthodologies plus récentes :
⊲ extreme programming
⊲ méthodes agiles
⊲ ...
Voyons voir concrètement ce qui s’est passé avec certains projets en logiciel libre.
Analyses
Exemples de communautés significatives
◮ Linux
◮ Apache
Linux : une radiographie
◮ quelques dates :
vers. 0.02 en 10/1991 ; 0.95 en 03/1992 ; 1.0 en 03/1994
◮ modèle du dictateur bienveillant :
Linus Torvalds a le dernier mot sur tout
◮ élaboration des patchs sur la mailing list (cela permet de discuter les propositions)
◮ séparation entre fils de versions :
stable (2.4.x, 2.6.x), et experimental (1.3.xx or 2.1.x)
◮ gestion de version avancée (plus de détails dans un cours à part)
Exemple de patch dans la mailing list
Date
Fri, 16 Mar 2007 12:36:15 +0100
From
Jarek Poplawski <>
Subject
[PATCH] Re: Fwd: oprofile lockdep warning on rc1
On 28-02-2007 01:46, Dave Jones wrote:
> This happened on a 2.6.21rc1 kernel.
...
> Richard Hughes <[email protected]>
> Date:
> Tue, 27 Feb 2007 21:59:07 +0000
> To:
> Development discussions related to Fedora Core
> <[email protected]>
...
> But also I get this (!!!):
>
Here is my patch proposal for testing.
Regards,
Jarek P.
lockdep found oprofilefs_lock is taken both in process
context (oprofilefs_ulong_from_user()) and from hardirq
(nmi_cpu_setup()), so the lockup is possible.
Reported-by: Richard Hughes <[email protected]>
Signed-off-by: Jarek Poplawski <[email protected]>
--diff -Nurp linux-2.6.21-rc1-/drivers/oprofile/oprofilefs.c linux-2.6.21-rc
--- linux-2.6.21-rc1-/drivers/oprofile/oprofilefs.c
2007-02-27 10:47:38.000000000 +0100
+++ linux-2.6.21-rc1/drivers/oprofile/oprofilefs.c
2007-03-16 11:36:30.000000000 +0100
@@ -65,6 +65,7 @@ ssize_t oprofilefs_ulong_to_user(unsigned
int oprofilefs_ulong_from_user(unsigned long * val, char const __user * b
char tmpbuf[TMPBUFSIZE];
+
unsigned long flags;
if (!count)
return 0;
@@ -77,9 +78,9 @@ int oprofilefs_ulong_from_user(unsigned
if (copy_from_user(tmpbuf, buf, count))
return -EFAULT;
-spin_lock(&oprofilefs_lock);
+
spin_lock_irqsave(&oprofilefs_lock, flags);
*val = simple_strtoul(tmpbuf, NULL, 0);
-spin_unlock(&oprofilefs_lock);
+
spin_unlock_irqrestore(&oprofilefs_lock, flags);
return 0;
Un aperçu : structuration
Un aperçu : évolution
Évolution du nombre
des fichiers dans le noyau Linux (G. Robles)
Analyses
Un texte très connu tire des leçons du succès de Linux :
The cathedral and the Bazaar, Eric S. Raymond, 1997
cathedral : processus logiciel lourd et hierarchique
bazaar : dévéloppement par des équipes avec faible couplage
Règles de bonne conduite énoncées
1. Every good work of software starts by scratching a developer’s personal itch.
2. Good programmers know what to write. Great ones know what to rewrite (and
reuse).
3. “Plan to throw one away ; you will, anyhow.” (Fred Brooks, The Mythical
Man-Month, Chapter 11)
4. If you have the right attitude, interesting problems will find you.
5. When you lose interest in a program, your last duty to it is to hand it off to a
competent successor.
6. Treat your users as co-developers.
7. Release early. Release often.
8. Given enough eyeballs, all bugs are shallow.
Critiques
◮ analyse très orientée Linux
◮ separation entre Bazaar et Cathedral moins nette dans la réalité
◮ beaucoup d’approximations, par exemple, la dénégation de la loi de Brooks, qui
oublie la différence entre core developers et utilis-acteurs à la marge du projet
Apache
◮ quelques dates :
Création du projet en 1995 par Rob McCool, première version stable en 1996,
version 1.3 en 1998, IBM choisit Apache pour WebSphere en juin 1998
◮ approx. 1500 committers sur les projets (une centaine sur httpd)
◮ organisation oligarchique
Committers get a shot at working on the code ; good committers become members and thus
get a piece of the ownership of the software and the direction. Commit access is a privilege,
not a right, and is based on trust.
The Apache Software Foundation is a meritocracy [. . .]
New candidates for membership are nominated by an existing member and then put to vote ; a
majority of the existing membership must approve a candidate in order to the candidate to be
accepted.
Quelques mythes sur le Logiciel Libre
◮ dévéloppement anarchique sans leader
◮ connaissance qui emerge naturellement de la sagesse des masses
The Wisdom of Crowds : Why the Many Are Smarter Than the Few and
How Collective Wisdom Shapes Business, Economies, Societies and
Nations
2004 James Surowiecki
◮ le logiciel libre est toujours de meilleure qualité que le logiciel propriétaire
◮ l’écosystème du logiciel libre est basé sur des valeurs d’altruisme
communautaire. . .
Reverse Software Engineeering
On peut essayer d’analyser ces cas systématiquement :
◮ disponibilité des sources
◮ accès aux données historiques
◮ informations complètes sur les dévéloppeurs
◮ pas besoin d’accords formels
Un travail d’envergure a été entrepris par
http://libresoft.urjc.es/index
Un point de vue moderne
Les analyses de Martin Michlmayr (ex Debian project leader) sont disponibles sur
http://opensource.mit.edu
Cathedral phase
Original “idea”
Project Author
Core developers
Unix philosophy
Transition phase
”Interest”
⇒ Prototype
⇒
Modular design
Bazaar phase
Distributed development
environment
Community
Parallel perfective and
corrective maintenance
Peer reviews
Comparer avec l’existant
Discussion ouverte sur les modèles de dévéloppement du logiciel