Top Banner
© 2007-2012 Black Duck ® , Know Your Code ® , Ohloh ® , SpikeSource ® , Spike ® et le logo Black Duck sont des marques déposées par Black Duck Software, Inc. aux Etats Unis et/ou dans d’autres pays. Koders™ est une marque déposée par Black Duck Software, Inc. Toutes les autres marques sont les propriétés de leurs titulaires respectifs. Android – Possibilités, Complexités et Richesses Le vrai challenge, sa gestion
10

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é

May 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
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.
Transcript
Page 1: 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é

© 2007-2012 Black Duck®, Know Your Code®, Ohloh®, SpikeSource®, Spike® et le logo Black Duck sont des marques déposées par Black Duck Software, Inc. aux Etats Unis et/ou dans d’autres pays. Koders™ est une marque déposée par Black Duck Software, Inc. Toutes les autres marques sont les propriétés de leurs titulaires respectifs.

Android – Possibilités, Complexités et Richesses

Le vrai challenge, sa gestion

Page 2: 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é

1

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é.

Page 3: 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é

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/

Page 4: 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é

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

Figure 1: L’architecture d’Android

Source: //developer.android.com/guide/basics/what-is-android.html

3 Gartner, disponible à l’adresse http://www.linuxfordevices.com/c/a/News/Gartner-2Qreport-and-AndroidLinux-fork/

Page 5: 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é

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

la Figure 2 : Organigramme du développement

du code d’Android). Le code d’Android développé

4

Source: //source.android.com/source/code-lines.html

Figure 2: Organigramme du développement du code d’Android

Page 6: 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é

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

Page 7: 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é

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

Page 8: 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é

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 ?

Page 9: 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é

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

Page 10: 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é

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.