Android – Possibilités, Complexités et Richessesimages.itnewsinfo.com/commun/genform/recompense/... · Android détient une petite part – qui ne cesse de grandir – du marché
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
En résuméLe système d’exploitation mobile Android est un excellent exemple de la puissance des logiciels open source. La réussite d’Android tient non seulement à la forte demande d’appareils mobiles riches en fonctionnalités; mais aussi à la flexibilité, à l’extensibilité du noyau du projet Android, ainsi qu’à la liberté pour tout développeur d’y accéder, qui ont permis d’apporter de riches fonctionnalités au large éventail d’appareils mobiles compatibles, disponibles auprès de nombreux opérateurs.
Si Android offre de multiples opportunités pour les opérateurs, les développeurs et les consommateurs, c’est au prix de nombreuses complexités : la gestion du développement de logiciels conçus pour étendre un système open source par l’intermédiaire de chaînes de développements parallèles, régies par différentes licences, avec la rapidité des cycles de développement et la fréquence des entrelacements de projets, n’a rien d’une tâche aisée. De plus, le noyau d’Android étant sous la permissive licence Apache, beaucoup se trompent sur la portée des conditions de licence applicables.
Les constructeurs intégrant Android à leurs produits dans le cadre de développements multi sources combinent du code open source et du code source protégé et sont ainsi régulièrement confrontés à ces problèmes. En effet, de tels produits résultent de circuits d’approvisionnement complexes et gagnent en fonctionnalités (et en complexité) à chaque étape du développement.
Dans ce livre blanc, nous décrirons les possibilités et les difficultés du développement pour Android, nous reviendrons sur son histoire, nous nous pencherons sur les problèmes qu’il pose en termes de propriété intellectuelle et de licensing et nous vous proposerons une solution permettant de dompter sa richesse et sa complexité.
IntroductionSi certains business plans ont pu germer
sous Blackberry ou Palm, l’iPhone d’Apple a
révolutionné le marché des smartphones au
plus grand bonheur des entreprises et des
consommateurs. Cependant, en juillet 2010, les
ventes de mobile embarquant le système open
source Android ont dépassé celle de l’iPhone. Les
opérateurs activent plus de 160 000 terminaux
Android par jour – soit plus de quatre millions par
mois – alors qu’à en croire Apple, l’iPhone 4 et son
système propriétaire ne dépassent pas les 70 000
activations par jour – soit plus de moitié moins1.
L’important n’est pas de savoir quel opérateur
ou quelle société domine le marché des mobiles,
mais de relever le changement de tendance
dans le développement d’applications pour
terminaux mobiles :
•Les terminaux sous systèmes propriétaires (ex : Blackberry, Palm) perdent rapidement des parts de marché
•Près de 60%2 des terminaux fonctionnent sous système open source (ex : Android, Symbian, MeeGo, LiMo, Linux Mobile)
•Le système Android de Google est en train de s’imposer comme la plateforme de référence
Avec le succès d’Android, aux options des
développeurs jadis limitées par le nombre réduit
des terminaux et systèmes d’exploitation, ont
succédé les richesses de l’open source, avec
ses possibilités presque illimitées en termes
d’innovation, de rapidité de développement et
de flexibilité. Cette évolution bénéficie à Android,
un système d’exploitation basé sur Linux, et
à son florissant Market, riche en applications
open source.
L’évolution d’Android vers l’open sourceAndroid, à l’origine, c’était une start-up fondée
en 2003 par d’anciens employés de Danger,
de Wildfire Communications, de T-Mobile et
de WebTV. Cette société privée dédiée au
développement de logiciels pour téléphones
mobiles fut rachetée par Google en 2005. En
2007, l’Open Handset Alliance, un consortium
réunissant des entreprises telles que Google, des
opérateurs de téléphonies et des constructeurs
de téléphones mobiles, a été créée dans le but
de développer des normes communes pour
les terminaux mobiles. Le consortium annonça
également son premier projet, Android, présenté
comme une plateforme pour terminaux mobiles
basée sur la version 2.6 du noyau Linux.
Le système d’exploitation Android a été distribué
en open source, sous licence Apache, dès 2008.
Android utilise des composants internes (la
plateforme) et des composants externes (le WebKit
et le noyau Linux, sous licences GPL et LGPL, ainsi
que divers autres composants ou projets, dont les
droits appartiennent à des tiers).
2
1 http://tech.fortune.cnn.com/2010/07/16/steve-jobs-confirms-android-outselling-iphone/2 Statistique Gartner consultable à l’adresse http://www.linuxfordevices.com/c/a/News/Gartner-2Q-report-and-AndroidLinux-fork/
Dans la plus pure tradition open source, Android,
c’est aussi une communauté de développeurs
tirant partie d’un système libre et ouvert sur lequel
créer des applications mobiles.
Android en tendancesMalgré ses récents succès contre l’iPhone,
Android détient une petite part – qui ne cesse de
grandir – du marché des systèmes d’exploitation
pour terminaux mobiles. Symbian, le système
open source qui trustait encore 51% du marché
en 2009 a vu sa part reculer à 41,2%. De la
même manière, RIM, qui détenait 19% du marché
en 2009, n’en contrôle plus que 17,2%. Dans le
même temps, Android a connu une croissance
stupéfiante, voyant ses parts passer de 1,9%
à 17,2% de ce marché longtemps dominé par
Symbian et RIM.3
Si les smartphones ont ouvert le bal – le système
d’exploitation est déjà utilisé par plus de 60
modèles de téléphones mobiles – de nombreux
autres terminaux mobiles et embarqués utilisant
Android leur ont emboîté le pas (tablettes, livres
numériques, netbooks, TV HD, etc.).
Android : au cœur de la complexitéCréé sur la base du noyau Linux soumis à licence
GPLv2, Android est un projet de Google constituant
une dérivation du noyau Linux. Malgré cet
ancrage dans la licence GPL, Android se compose
d’environ 185 sous-composants distincts (voir
Figure 1 : L’architecture d’Android) développés
sous près de 19 licences open source différentes
– la plupart mutuellement compatibles, mais pas
toutes approuvées par l’OSI. Alors que la majorité
3 Gartner, disponible à l’adresse http://www.linuxfordevices.com/c/a/News/Gartner-2Qreport-and-AndroidLinux-fork/
du code Android fourni par Google est régi par la
licence Apache 2.0, une partie des composants
sur lesquels s’appuient les développeurs sont
régis par d’autres licences.
Les nombreux composants logiciels open source
d’Android se répartissent en deux catégories : les
composants internes et les composants externes.
Deux composants externes essentiels – le WebKit
et le noyau Linux – sont régis par des licences
mutuellement compatibles (GPLv2, LGPL). A ces
deux composants principaux, s’ajoutent plus
de 30 composants internes (dbus, grub, emma,
e2fsprogs, bluez, Bison, etc) également régis par
des licences mutuellement compatibles (GPL,
LGPL, CPL, etc.). Vingt-huit composants sont sous
licence GPL, cinq sous licence LGPL, et les autres
sons régis par des licences non-approuvées par
l’OSI, telles que la licence mixte d’OpenSSL et la
licence de Bzip2.
La gestion de ces centaines de composants et
de cette multitude de licences est d’une telle
complexité qu’elle constitue un casse-tête pour
les développeurs d’applications mobiles, les
fabricants de téléphones sous Android et les
sociétés tierces développant des composants pour
les fabricants.
L’évolutivité est une force et une richesse en termes de fonctionnalités, mais chaque dérivation ajoute en complexitéLe projet Android est en constante évolution (voir
Figure 2: Organigramme du développement du code d’Android
par Google comprend certaines modifications par
rapport au noyau Linux, créant ainsi une première
dérivation. Entre la sortie de la version 1.5
Cupcake en 2009 et la version 2.2 Froyo actuelle,
de nombreux correctifs, améliorations et patches
se sont greffés sur le projet principal. Android se
développe à un rythme tellement soutenu que le
noyau Linux n’arrive pas à le suivre : ce dernier
accuse en effet un certain retard dans l’intégration
des patches provenant d’Android, rendant ces
chaines de développement asynchrones.
Le projet Android utilise git comme système
de gestion de chaîne logistique. Le projet se
divise en plus de 242 dépôts git, dont plus de 90
proviennent de projets en amont. À tout moment,
plusieurs dérivations peuvent être actives et un
certain nombre de “lignes de code” peuvent
séparer le code stable du code expérimental.
Un large écosystème d’équipementiers et de
constructeur de terminaux contribue dans ces
centaines de sections, alors que Google garde
une partie du code secrète pour développer en
profondeur de nouvelles fonctions utilisant des
contenus propriétaires tiers.
Les équipementiers et constructeurs de
terminaux Android doivent continuellement
mettre leurs propres versions à jour des derniers
développements pour être sûrs que leurs produits
sortent immédiatement après chaque nouvelle
version d’Android. Chaque jour, des contributions
de la communauté apportent du code nouveau,
parfois spécifique à certains appareils. Ces
modifications, leur compatibilité et leur conformité
doivent être vérifiées et testées.
Avec tous ces axes de développement
parallèles, il faut impérativement prévoir une
stratégie permettant de gérer ces difficultés, en
identifiant et en validant les changements qui
seront implémentés.
Le développement multi-sources et ce qu’il représente pour l’écosystème AndroidLa communauté Android est composée de Google,
de développeurs d’applications indépendants,
d’entreprises tierces développant des logiciels
pour appareils mobiles et solutions embarquées
et de fabricants utilisant Android comme système
d’exploitation pour ce type de dispositifs.
Si cet écosystème à plusieurs niveaux constitue la
fine fleur du développement multi-sources, il peut
rendre l’appréhension de la plateforme Android
difficile. Les développeurs indépendants peuvent
apporter leur code soumis sous diverses licences.
Il arrive par ailleurs aux fabricants de terminaux
d’ajouter une surcouche de développements
propriétaires à Android ou de modifier et de
renforcer son code de base afin de l’adapter à un
matériel ou à un logiciel donné. Les développeurs
d’applications tierces sont susceptibles d’adopter
chacun de ces comportements : ajouter du code
propriétaire aux composants Android, utiliser tous
types de licences et modifier ou renforcer le code
Android de base. De cette complexité naissent de
5
nombreuses difficultés en termes de gestion de
licences et de propriété intellectuelle :
•Avec Android, la chaîne d’approvisionnement commence chez Google. Si vous êtes un fabricant de terminaux mobiles ayant modifié le code d’Android afin de mettre au point certains développements logiciels ou matériels, ne pas savoir comment le code et les différents composants sont intégrés avec votre propre code propriétaire peut s’avérer problématique.
•Toute amélioration ou tout changement apporté au code d’Android par une société est susceptible d’être protégé par des droits de propriété intellectuelle. Ne pas être au fait des réutilisations ou des intégrations de son propre code aux applications de sociétés tierces peut être préjudiciable pour la propriété intellectuelle d’une société.
•Lorsqu’un développeur intègre du code propriétaire tiers à son application Android, il peut se voir contraint de dévoiler ledit code propriétaire. Cela peut être préjudiciable à ses clients (ex : vendeurs de terminaux) et contraindre le développeur à les indemniser de leurs pertes.
•Si une application créée par un développeur ne constitue pas un produit autonome mais un simple composant intégré au produit final de son client (un téléphone mobile, par exemple), le développeur pourrait mettre le produit dans son ensemble en danger (par le biais d’un effet contaminant, d’injonctions juridictionnelles, etc.) en ne gérant pas correctement son intégration à la plateforme Android.
Avec la multitude de code et de licences open
source utilisés sous Android, gérer la conformité
relève clairement de la gageure.
Les obligations sous AndroidLe projet Android dépend de plus de 19 types de
licences différents couvrant plus de 185 projets
ou composants distincts. En admettant que
l’on décompose chaque licence en un certain
nombre d’obligations et que ces obligations soient
appliquées à l’utilisation de chaque composant,
plus de 1700 obligations entrent en jeu. 1000
d’entre eux sont des obligations juridiques,
les 700 restantes constituant des obligations
d’ordre technique. Heureusement, la plupart des
sociétés n’ont pas besoin de vérifier qu’elles
sont en conformité avec chacune de ces 1700
obligations ; la plupart des obligations d’ordre
juridique peuvent être examinées une fois pour
toute, à l’occasion de l’examen de la licence en
interne. Ces obligations consistent généralement
en des exclusions de garantie, des limitations
de responsabilité et des stipulations protégeant
marques et autres éléments, ne générant aucune
charge de travail pour les développeurs.
Cependant, même la plus permissive des licences
emporte généralement une attribution et d’autres
obligations (modification des mentions, exigences
en termes de redistribution et de documentation,
etc.) qui sont susceptibles d’ajouter à la charge de
travail des développeurs. Or, la gestion particulière
dont les obligations d’ordre technique doivent faire
l’objet ne s’opère pas au niveau des composants,
mais des fichiers. Dans un environnement de
développement aussi dynamique qu’Android, dans
lequel les fichiers sont fréquemment mis à jour
6
depuis des dépôts web, rester à jour de chacune
de ces obligations peut relever de la gageure.
Par exemple, le téléphone Android Samsung
VibrantTM (SGH-t959) embarque une notice
juridique longue de plus de 8.000 lignes visant
chaque contenu open source. Cette notice fait
référence à des centaines de titulaires de droits ;
les engagements et attributions se rapportent
parfois à un unique fichier, parfois à des listes de
fichiers. Afin de se conformer à ses obligations en
matière de publication de code, Samsung propose
le téléchargement des fichiers source sur un
site internet dédié librement consultable (http://
opensource.samsung.com/). Si un quelconque
7
Les Bonnes PratiquesToutes les sociétés utilisant des logiciels open source, y compris celles utilisant Android, devraient suivre ces quelques points basiques pour assurer leur conformité envers les licences :
Adopter et mettre en œuvre une politique d’entreprise en matière de code tiers et de code open source Définissez ce que vous comptez faire de l’open source, puis définissez par écrit une politique de gestion de l’open source et un ensemble de bonnes pratiques adaptées.
Repérer et assurer la traçabilité de toute utilisation de code tiersVérifiez les sources de tout code open source. Adoptez des règles applicables lors de la soumission de tout code importé, une politique de gestion du code open source et du code tiers que décrivant comme gérer le code provenant de tiers et des procédures documentées compréhensibles et acceptées par tous.
Automatiser la validation au moment de l’acquisition et durant le développement.Les traitements manuels ne sont pas assez
rapides pour permettre l’identification de lignes de code perdues ou problématiques. Plus ces traitements seront automatisés, plus l’utilisation de code open source par le développeur sera efficace. L’automatisation réduira par ailleurs le poids des contraintes que les politiques de gestion de l’open source font peser sur les développeurs, leur permettant ainsi de se concentrer sur la programmation plutôt que sur l’origine du code qu’ils utilisent.
Automatiser la veille d’Android et de ses composantsAdoptez des méthodes facilitant, automatisant et intégrant la veille à vos procédures de développement. N’oubliez pas de les intégrer avec les autres systèmes, particulièrement avec les outils de compilation et de gestion des révisions, qui se prêtent particulièrement à la détection de code tiers, de code open source et d’éventuels conflits.
Contrôler la réutilisation des composants et la standardisation.Créez un ensemble de composants approuvés, accessibles et utilisables par toute l’organisation de développement. Qui a besoin de 5 parseurs différents au sein d’une même application ?
fichier n’était pas conforme à ses obligations de
licence (par exemple en raison de la suppression
de notices relatives aux droits d’auteur, de
l’insertion de notices erronées ou incomplètes ou
d’un défaut de documentation des modifications
apportées), cela n’échapperait pas au titulaire des
droits ou à d’autres. De nombreux contributeurs
de la communauté open source ne demandent
rien d’autre en retour pour l’utilisation de leurs
logiciels que la reconnaissance de leur travail.
Les entreprises doivent – et peuvent facilement
– mettre en place des outils et des mécanismes
permettant de veiller à cette reconnaissance.
Au final, l’idéal pour un développeur est de
savoir quels composants, droits de propriété
intellectuelle, fichiers et licences figurent dans
son code et quelles obligations résultent du
mélange en cause. Gérer ce genre de projets avec
des outils capables d’automatiser l’analyse et la
validation du code contribue à un développement
efficace et réduit les risques résultant de
leur complexité
Bonne nouvelle – Gérer la complexité est un processus simpleDe nombreuses entreprises utilisant Android
publient ou mettent leur code à la disposition de
l’ensemble de la communauté. Toute contrariété
avec une licence open source risque d’être
découverte à la lecture du code publié. Tout
faux pas peut être dramatique. Un retrait par
inadvertance, une erreur dans les mentions
relatives aux droits d’auteur, ou toute autre
violation des conditions d’une licence donnée,
peuvent entrainer de regrettables conséquences,
telles que des recours contentieux ou des
dégradations d’image de marque, tant auprès de
la communauté que dans les médias.
ConclusionOn ne peut échapper à un développement multi-
sources comprenant de l’open source dans les
environnements de développement pour mobiles
actuels, qui privilégient les introductions rapides
sur le marché, les prix bas, ainsi que l’allègement,
la réutilisation et la flexibilité du code. Dans cet
univers où de nouveaux terminaux sont annoncés
chaque mois et où la pression technologique est
énorme, l’open source – et Android en particulier
– est une perspective d’avenir.
Android est un projet open source complexe,
avec plus de 185 composants, 19 licences et
un code source en rapide évolution grâce à de
nombreux contributeurs. Pour profiter pleinement
des richesses et des opportunités qu’offre
Android, les développeurs ont besoin d’une
plateforme d’automatisation et de procédures
destinées à gérer les difficultés et fournir une
meilleure visibilité, un plus grand contrôle, et
une meilleure conformité. Black Duck Software
propose la plus performante des solutions
permettant d’automatiser la gestion de l’utilisation
d’open source dans des environnements de
développement multi-sources. Grâce à Black Duck
Suite, vos développeurs pourront profiter de l’open
8
9WP-AND-A4EU-0212-FR
source et affronter la complexité d’Android, tandis
que les autres acteurs – les services juridiques,
techniques, de sécurité, d’exportation et d’achat,
entre autres – pourront rapidement et facilement
accéder aux informations dont ils auront besoin
pour gérer efficacement les risques. Avec Black
Duck Suite, il est facile d’implémenter des bonnes
pratiques, tout en rationalisant le développement
et en utilisant plus efficacement les ressources.
Black Duck Suite répond aux difficultés liées à la
gestion, à la conformité et à la sécurité naissant
à l’occasion de l’utilisation à grande échelle de
composants open source dans le développement
de logiciels. Entre autres fonctionnalités
permettant de répondre à ces problèmes, la Suite
propose un répertoire avec moteur de recherches,
une procédure de validation personnalisable
et la base de connaissances la plus complète
du marché en matière d’open source. Les
développeurs pour mobile peuvent configurer les
nombreuses fonctionnalités de Black Duck Suite
de sorte à l’adapter sur mesure à ses besoins.
Contrairement aux solutions concurrentes qui ne
portent que sur certains aspects de la gestion
de licence ou de sécurité, Black Duck Suite peut
s’adapter à une utilisation dans des entreprises de
dimensions internationales.
La Suite Black Duck comprend un kit de
développement complet permettant une
intégration avec IBM Rational, Microsoft et
beaucoup d’autres environnements et outils
de développement.
Tous les acteurs du marché du téléphone mobile
– développeurs, opérateurs et fabricants de
terminaux – bénéficient des richesses et des
possibilités de l’open source. Les avantages
qui en découlent s’accompagnent de quelques
difficultés. Il faudra notamment gérer et vérifier le
code d’Android et tout code open source avant de
l’intégrer à un produit fini. Black Duck Software
efface ces difficultés et ouvre les horizons du
développement pour mobiles sur les richesses et
les possibilités de l’open source.
Royaume Uni & Irlande Pour plus d’informations, veuillez contacter : [email protected] ou appeler au +44 (0)208.582.1081
DACH Pour plus d’informations, veuillez contacter : [email protected] ou appeler au +49 (69) 67733-196
France Pour plus d’informations, veuillez contacter : [email protected] ou appeler au +33 (0) 6 28 07 77 39
Plus d’informations sont disponibles sur le site web de Black Duck disponible à l’adresse : www.blackducksoftware.com/fr
A propos de Black Duck Software Black Duck Software est le leader en matière de produits et services destinés à l’automatisation de la gestion, de la gouvernance et de l’utilisation sécurisée de logiciels libres et open source, à l’échelle de l’entreprise, dans le cadre d’un processus de développement multi sources. Black Duck® permet aux entreprises de raccourcir les délais d’implémentation et de réduire les coûts de développement tout en limitant les problèmes de gestion, de conformité et de sécurité liés aux logiciels libres et open source. Black Duck Software est derrière Koders.com, le principal moteur de recherche de codes open source sur le marché, Ohloh.net, la plus grande communauté dédiée à l’open source et son répertoire public open source en libre accès, et The Olliance Group, le principal cabinet de conseil en management et stratégie open source. La société, qui figure parmi les 400 plus grandes sociétés de logiciels au monde selon Softwaremag.com, dispose d’un siège à proximité de Boston et de bureaux à San Mateo en Californie, à Londres, Paris, Francfort, Hong Kong, Tokyo et Pékin. Pour plus d’informations, veuillez consulter www.blackducksoftware.com/fr.