NFE 107 Exposé Framework 1 0

cowseedΛογισμικό & κατασκευή λογ/κού

12 Ιουν 2012 (πριν από 5 χρόνια και 13 μέρες)

545 εμφανίσεις




1 / 22


CNAM

Les Frameworks
EXPOSE



REDACTEUR(S) :


APPROBATEUR(S) :
REF.INTERNE :

VERSION :
DATE :

DIFFUSION :

FRÉDÉRIC MOTHY



NFE 107_EXPOSÉ_FRAMEWORK_1_0.DOC


1.0
15/04/2009

PRESENTE
EXTERNE




Les Frameworks


NFE 107
Exposé



2 / 22





REDACTION DU DOCUMENT

VERSION
ACTION
ACTEUR
1.0
Rédigé par Frédéric MOTHY













EVOLUTIONS DU DOCUMENT
VERSION
DATE
OBJET DE LA MISE A JOUR
1.0
15/04/2009 Version initiale















Les Frameworks


NFE 107
Exposé



3 / 22




SOMMAIRE

2

Introduction..............................................................................................................................4

3

Qu’est ce qu’un Framework ?....................................................................................................4

3.1

Définition : « Framework »..........................................................................................................4

3.2

Définition : « M.V.C. »................................................................................................................5

4

Différents types de Framework.................................................................................................5

4.1

« Framework Technique »...........................................................................................................5

4.2

« Framework d’Entreprise »........................................................................................................5

4.3

« Framework d'infrastructure système ».......................................................................................6

4.4

« Framework d'intégration intergicielle ».......................................................................................6

4.5

« Framework de Test »...............................................................................................................6

4.6

« Framework web »...................................................................................................................7

5

Périmètre d’application du Framework......................................................................................8

6

Les avantages des Frameworks...............................................................................................10

7

Les inconvénients des Frameworks.........................................................................................12

8

Liste de Frameworks par technologie......................................................................................12

8.1

Framework « Java ».................................................................................................................12

8.2

Framework « PHP »..................................................................................................................13

8.3

Framework « JavaScript ».........................................................................................................13

8.3.1

Framework de Bas Niveau....................................................................................................................13

8.3.2

Framework de Haut Niveau..................................................................................................................13

9

Présentation : « Spring », « Zend Framework » et le « Framework .Net »............................14

9.1

Le Framework « Spring »..........................................................................................................14

9.1.1

Historique..............................................................................................................................................14

9.1.2

Fonctionnalités......................................................................................................................................14

9.1.3

Architecture...........................................................................................................................................14

9.2

Le Framework « Zend Framework »...........................................................................................15

9.2.1

Historique..............................................................................................................................................15

9.2.2

Fonctionnalités......................................................................................................................................15

9.2.3

Architecture...........................................................................................................................................16

9.3

Le Framework Microsoft .Net.....................................................................................................17

9.3.1

Historique et fonctionnalités..................................................................................................................17

9.3.2

Architecture...........................................................................................................................................19

10

Conclusion...............................................................................................................................20

11

Bibliographie...........................................................................................................................21



Les Frameworks


NFE 107
Exposé



4 / 22



2 Introduction

Ce document a pour but d’apporter un niveau d’information complet par rapport aux
« Frameworks ». Nous aborderons les points suivants :
 Qu’est ce qu’un « Framework » ?,
 Quels sont les différents types de « Framework »?
 Quel sont les avantages et les inconvénients des « Frameworks » ?
Nous listerons quelques exemples de Framework selon son genre et son degré de
maturité.

3 Qu’est ce qu’un Framework ?

Nous assistons depuis quelques années à l’éclosion de « Framework ». D’ailleurs,
les termes « Framework technique » et/ou « Framework d’entreprise » se
généralise. Chaque société a créé leur propre boîte à outils ou composants
métiers. Mais en quoi consiste t-il ?

3.1 Définition : « Framework »
1


Framework signifie « cadre de travail » en français. Un Framework est un
ensemble de bibliothèques, d'outils et de conventions permettant le développement
d'applications. Il fournit un ensemble de fonctions facilitant la création de tout ou
partie d’un logiciel.
Un Framework est habituellement implémenté à l’aide d’un langage orienté objet
(Exemple : .Net C#, JAVA, PHP 5).
Le principal objectif de cet outil est de proposer une démarche et des ressources
pour mieux maîtriser les développements et permet le développement rapide
d'applications.


1
Définition extraite de wikipedia.

Les Frameworks


NFE 107
Exposé



5 / 22



3.2 Définition : « M.V.C. »

Le Modèle-Vue-Contrôleur (Model-View-Controller) est une architecture et une
méthode de conception qui organise l'interface homme-machine (IHM) d'une
application logicielle.
Cette architecture divise l’IHM en :
 un modèle de données
 une vue de présentation
 un contrôleur (logique métier, gestion des évènements, synchronisation)
Cette méthode a été mise au point en 1979 par « Trygve Reenskaug »
(Informaticien Norvégien), qui travaillait dans les laboratoires de « Xerox » sur
« Small Talk ». Il travaille actuelle sur « BabyUML ».

4 Différents types de Framework

4.1 « Framework Technique »
Un Framework technique est un ensemble de librairies permettant de réaliser un
ensemble de fonctionnalité n’ayant pas attraie à un métier particulier.
Par exemple une librairie d’authentification au travers d’un LDAP Novell trouve sa
place dans un tel Framework. Il est souvent composé de fonctionnalités
développées de toutes pièces ainsi que de librairie récupérées tel quel sur internet.
4.2 « Framework d’Entreprise »  
Un Framework d’entreprise est quand à lui axé sur le métier de l’entreprise, il va en
fait normaliser le moyen pour toutes les applications de l’entreprise d’utiliser une
partie du métier de celle-ci. Il est utilisé pour développer des applications
spécifiques au secteur d'activité de l'entreprise.
Par exemple une banque va placer dans un Framework d’entreprise la définition
d’un compte bancaire et un service permettant de le manipuler. Ainsi toutes les
applications de la banque pourront accéder aux informations du compte bancaire
d’un client en utilisant ce Framework.

Les Frameworks


NFE 107
Exposé



6 / 22



4.3 « Framework d'infrastructure système »
Ce Framework est utilisé pour développer des systèmes d'exploitation, des
interfaces graphiques, des outils de communication. (Exemple : Framework .Net,
Eclipse, NetBeans, Struts).
4.4 « Framework d'intégration intergicielle »
Ce Framework est utilisé pour fédérer des applications hétérogènes. Pour mettre à
dispositions différentes technologies sous la forme d'une interface unique.
Par exemple : Ampoliros avec ses interfaces RPC, SOAP, XML.

4.5 « Framework de Test »
Il existe des Framework spécialisés dans des domaines informatiques bien précis
comme le test.
Nous retrouvons des Frameworks de test comme « TestNG », « JUnit »,
« NUnit », « PHPUnit », etc...

Les Frameworks


NFE 107
Exposé



7 / 22



4.6 « Framework web »
Un Framework web est donc un regroupement de macro-outils qui forment un
tout cohérent et que l'on a juste à assembler selon nos besoins pour faire son
projet informatique avec notre propre savoir faire.
Ce type de Framework est aussi appelé « Framework Orienté Système de
Gestion de Contenu » (Exemple de CMS : Joomla, Jahia, SPIP, Jalios …)

Détail d’un Framework CMS : « Jalios CMS » ( J.C.M.S.)

JCMS est une solution de gestion de l’information éditée par « Jalios ». C’est
une solution Java/XML qui ne nécessite pas de base de données et qui offre
des fonctionnalités de gestion de contenu, de gestion documentaire, de travail
collaboratif et de portail.


Les Frameworks


NFE 107
Exposé



8 / 22



5 Périmètre d’application du Framework

Un Framework est un outil qui permet de structurer / d'architecturer un projet tout
en apportant un outillage plus ou moins exhaustif. Un bon Framework impose
donc une architecture (approche M.V.C., arborescence de fichiers, manière de
penser l'application), des conventions de nommage des fichiers ainsi que des
conventions de nommage du code, et surtout des outils divers et variés pour
répondre aux besoins récurrents d'un projet.
Dans une application d’entreprise utilisant un modèle en couche, le Framework
peut intervenir sur une ou plusieurs couches. Tout dépend du niveau de maturité
et les différentes méthodes fournies dans le Framework sélectionné.

Nous allons échafauder un modèle en 3 couches logiques horizontales :

• Couche de Présentation (IHM)
• Couche de Services (Métier)
• Couche d’Accès aux données (Persistance des données)




















Couche Présentation
IHM
Couche Services
Métier
Couche Data Access
Métier
Framework
Niveau 3

Niveau 2

Niveau 1


Les Frameworks


NFE 107
Exposé



9 / 22



Dans notre schéma, nous pouvons remarquer que le Framework peut intervenir
sur toutes ces couches selon le degré de maturité.

Pour la couche de niveau 3, nous pourrons utiliser des « Framework » de bas
niveau. Ils offrent des fonctionnalités primitives. Par exemple, la technologie
Microsoft .Net nous fournit des composants de présentation (Liste déroulante,
case à cocher, Zone de texte, …).

La couche 2 regroupe les modules fonctionnels qui réalisent les traitements à
effectuer, mais aussi les modules transactionnels qui accèdent aux données.
Certain Framework fournit des méthodes spécifiques permettant d’améliorer la
qualité logicielle. Exemple : Zend Framework, Smarty.

La couche 1 de stockage des données est apparue très tôt dans les applications
d'entreprise pour lesquelles les données sont hébergées par un serveur de bases
de données, souvent relationnelles. Mais le problème rencontré est la possibilité
d’écrire plusieurs méthodes différentes (plus ou moins optimisée) pour effectuer la
même tâche. Les Frameworks comme « struts », « Spring », « Zend
Framework », etc. embarquent des méthodes simples d’utilisation d’accès aux
données.

Les Frameworks


NFE 107
Exposé



10 / 22



Dans cette partie, nous étudierons les avantages et les inconvénients des
Framework.

6 Les avantages des Frameworks

Les principaux avantages de ces Framework sont la réutilisation du code, la
standardisation du cycle de vie du logiciel (Spécification, développement,
maintenance, évolution), ils permettent de formaliser une architecture adaptée au
besoin de l'entreprise. Ils tirent parti de l'expérience des développements
antérieurs.

Les Frameworks apportent de nombreux avantages :
 Standardisation du code

Le fait d’utiliser un Framework assure que tous les développeurs utiliseront
la même API, en effet, reprenons l’exemple de notre banque, sans
Framework probablement que chaque application aura sa propre méthode
de récupération des informations d’un compte bancaire. Le nom de cette
méthode peut être différent d’une application à une autre, mais la
technologie sous jacente peut aussi être différentes (Accès direct à la base
de données, utilisation d’un Web Service, …). Autant de possibilité qui font
qu’utiliser une ressource sur deux projets nécessite un temps d’adaptation
à chaque switch. Le Framework lui propose une seule méthode, les détails
techniques étant laissé aux Frameworks, un développeur peut donc passer
d’un projet à un autre sans avoir à s’adapter au code « technique » du
projet et donc ce concentrer sur les traitements métier de l’application.

 Correction de bug pour l’ensemble des applications

En effet si toutes les applications accèdent à une seule méthode pour
effectuer un traitement, si ce traitement ne fonctionne pas correctement ou
doit être modifié, il suffit d’apporter les modifications au Framework. Ainsi
toutes les applications utilisant le Framework seront modifiées en une seule
fois.

Les Frameworks


NFE 107
Exposé



11 / 22



 Modularité & flexibilité

Les bons « Framework » sont toujours architecturer pour permettre une
grande souplesse, ils implémentent de nombreux patterns qui leur
permettent d’apporter une finesse bien supérieure à celle d’une application
classique, par exemple, les « Frameworks » apportant une librairie
d’accès aux données implémentent souvent un ensemble de providers
différents (ODBC, SQL Server, Oracle) le plus souvent avec un choix du
provider à utiliser par le biais du fichier de configuration. Une application
elle va se limiter au mieux à une classe abstraite dans la couche d’accès
aux données évitant l’initialisation de la connexion, ou la gestion des
erreurs.

 Productivité

Les « Frameworks » permettent un gain de productivité à long terme sur
les équipes de développement, en effet une fois qu’un développeur à
l’habitude d’utiliser le Framework, il peut passer d’un projet à un autre en
un temps plus court. De plus comme chaque équipe n’a pas à recréer les
classes techniques déjà présentes dans le Framework elle peut se
concentrer sur les fonctionnalités propres à l’application.

 Optimisation

Il est plus simple d’apporter des optimisations sur le code d’un
« Framework » que de placer ces optimisations dans l’ensemble des
applications. Ce type de modifications étant souvent très couteuses, on
rechigne à les faire sur une application, mais finalement lors que le
Framework est optimisé cela profite à l’ensemble, ce qui réduit le cout pour
chaque application.

Les Frameworks


NFE 107
Exposé



12 / 22



7 Les inconvénients des Frameworks

Rare sont ceux qui le disent, mais un Framework n’est pas la solution magique
qui convient à tous. En effet, les Frameworks comportent aussi leur lot de
désavantage :

 Cout élevé

Le développement d’un Framework coute plus cher que le développement
des fonctionnalités techniques équivalentes dans une application. En effet,
un Framework doit prendre en compte l’ensemble des cas d’utilisation
d’une fonctionnalité alors qu’une application n’implémentera que les cas
d’utilisation lui étant propre.

 Niveau de complexité

Le fait de devoir penser à l’ensemble des cas d’utilisation et le fait de
systématiquement penser de manière générique n’est pas donné à tous.
De plus, le Framework résout souvent des problématiques complexes
demandant une connaissance poussé de la technologie utilisée.

8 Liste de Frameworks par technologie

Nous allons lister dans cette partie quelques « Frameworks » selon leur
technologie.
8.1 Framework « Java »
 Google Web Toolkit
 XK : Ajax but no JavaScript
 Ajax Tags
 Thin wire
 ZK (Zéro Kode)
 ajaxanywhere
 ajax4jsf
 DWR
 ICEfaces
 Wicket
 SweetDevRIA : Framework Ajax Java qui est en réalité une librairie de tags
JSP. C'est un projet open source plutôt actif.

Les Frameworks


NFE 107
Exposé



13 / 22



8.2 Framework « PHP »
 SAJAX
 xajax
 Smarty
 ajaxcore : Framework PHP/AJAX basé sur Prototype
 Zend Framework

8.3 Framework « JavaScript »
Les Framework JavaScripts se décomposent en deux niveaux :
 Bas Niveau
 Haut Niveau
8.3.1 Framework de Bas Niveau
Celui-ci fournit des fonctionnalités primitives et très génériques.
 prototype
 jQuery
 zapatec
8.3.2 Framework de Haut Niveau

Celui-ci fournit des fonctionnalités plus évoluées comme le post d’un
formulaire.

 DOJO
 Yahoo! User Interface Library
 script.aculo.us
 moo.fx : Framework ultra léger à utiliser en association avec
mooTools
ou prototypejs

 MochiKit
 Yui-Ext

 AJAX Toolkit Framework (ATF)
 Open Rico
 dhtmlgoodies
 Archétype : un Framework AJAX basé sur Prototype

Echo Web Framework : Un autre Framework à base d'AJAX pour le
développement de clients riches


Les Frameworks


NFE 107
Exposé



14 / 22


Après avoir fait un listing de Framework par technologie, nous allons en prendre
trois et retracer leur historique et leur niveau de maturité.

9 Présentation : « Spring », « Zend Framework » et le « Framework .Net ».
9.1 Le Framework « Spring »
9.1.1 Historique
Le Framework « Spring » débuta en 2002-2003 par Rod Johnson et
Juergen Holler. La première parution fut en Mars 2004 avec la version
1.0. La version 2.0 date de Septembre 2006.
9.1.2 Fonctionnalités
« Spring
» est un Framework J2EE open-source destinées pour les
applications 3-tiers (présentation, métier, base de données apportant de
nombreux avantages pour de nombreux projets).
En effet, Spring offre une architecture permettant d’utiliser facilement les
Frameworks spécialisés déjà existant (comme « Hibernate » ou
« Struts »).

« Spring
» s’appuie sur deux concepts qui sont l’injection de
dépendance (également connu sous le nom d’inversion Of control – IoC)
et de la programmation Orienté Aspect (AOP).
9.1.3 Architecture



Spring A.O.P
(Programmation
Orienté Aspect)
Spring O.R.M.
(Mapping Objet
Relationnel)
Spring Web
(base orienté web)

Spring D.A.O
(Module d’accès aux
données)
Spring Context
(Module de
contexte)


Spring Web
(Module Vue
Contrôleur)


Spring Core
(
Module noyau
)

Les Frameworks


NFE 107
Exposé



15 / 22



9.2 Le Framework « Zend Framework »
9.2.1 Historique

La première version de Zend date de début 2006. Actuellement, nous
sommes à la version 1.5.1.
9.2.2 Fonctionnalités

Le « Zend Framework » intègre de base un très grand nombre de
librairies qui permettent le développement rapide d’applications
complexes:
 Internationalisation (i18n / l10n)
 Gestion de l’authentification, des sessions et des droits d’accès
(ACL)
 Connexion aux bases de données
 gestion du cache
 Accès à de nombreux Web services et API
Ce Framework est développé en PHP 5 et supporte de Design Pattern
M.V.C. (Modèle Vue Contrôleur).

Les Frameworks


NFE 107
Exposé



16 / 22



9.2.3 Architecture



Les Frameworks


NFE 107
Exposé



17 / 22


9.3 Le Framework Microsoft .Net
9.3.1 Historique et fonctionnalités

Le développement de .NET a commencé en 1997 et la première version
(le Framework 1.0) est sortie en Janvier 2002 avec Microsoft Visual
Studio 2002.

En Avril 2003, Microsoft sort la version 1.1 du Framework et la version
2003 de Visual Studio. Cette nouvelle version n’était pas une révolution
mais consiste plutôt en des petites améliorations et fonctionnalités.

Le 7 Novembre 2005, le lancement de .NET 2.0 avec Visual Studio 2005
(nom de code Whidbey) et de SQL Server 2005 (nom de code Yukon) a
lieu. Cette version n’est pas sans conséquence, puisque toute la plate-
forme a évolué de manière importante et elle apporte les améliorations
suivantes :
 Sécurité améliorée
 Productivité de développement avec Visual Studio sans
précédent.
 Amélioration des performances
 Amélioration des langages .NET

Le 17 Novembre 2006, .NET 3.0 est sorti (nom de code WinFx) avec
Windows Vista qui s’appuie en grande partie sur .NET. Pour définir .NET
3.0, on pourrait dire que c’est .NET 2.0 plus des APIs de très haut
niveau.

Ces APIs sont les suivantes :
 Windows Presentation Foundation (WPF): API d’applications
riches 2D et 3D pour Windows Vista, Windows XP SP2 et
Windows Server 2003 SP1.
 Windows Workflow Foundation: API de workflow
 Windows Communication Foundation : API de haut niveau de
communication.

Les Frameworks


NFE 107
Exposé



18 / 22



Pour développer avec ces APIs, on peut utiliser Visual Studio 2005 avec
des extensions en téléchargement sur le site de Microsoft, ou utiliser
Visual Studio 2008 (nom de code Orcas) qui possède nativement ces
extensions.
.NET 3.5 apporte ajoute au Framework .NET les capacités suivantes:
 LINQ : API de mapping objet relationnel
 La capacité de développer des applications Web 2.0 riche grâce à
la technologie Silverlight.

Visual Studio 2008 peut compiler une application pour les versions 2.0,
3.0 et 3.5 du Framework.

Microsoft présente le Framework .NET Framework 4.0 le 29 septembre
2008.

Les Frameworks


NFE 107
Exposé



19 / 22



9.3.2 Architecture



Les Frameworks


NFE 107
Exposé



20 / 22




10 Conclusion.

La mise en place d’un Framework est un gain évident en termes de
développement. Il permet de mettre en place une méthodologie, une architecture
et prend tout son sens lors de la mise en place d’une standardisation dans une
entreprise avec de nombreux projets informatique. Par contre, le type de
Framework doit être défini selon le besoin de l’entreprise. Le choix est plus une
question de contexte et de réutilisabilité que d’une mode. Mais un Framework seul
ne peut pas assurer les gains de productivité nécessaire à la réussite des projets
d’une entreprise, même s’ils ne cessent d’évoluer. Il faut aller plus loin que de
vouloir implémenter ces outils. Il faut étudier et mettre en place également une
architecture logicielle et des normes de développements. Jusqu’où iront ces
Frameworks?



Les Frameworks


NFE 107
Exposé



21 / 22



11 Bibliographie


Titre
Auteur
Editeur

Zend Framework : Bien développer en PHP

Julien Pauli
et Guillaume Ponçon
Eyrolles

Zend Framework et PHP - Programmation
par composants
Christophe HARO Editions ENI
Programmer .NET Framework Richter Dunod
Framework Design Guidelines: Conventions,
Idioms, and Patterns for Reuseable .NET
Libraries
Krzysztof Cwalina
et Brad Abrams
Addison-Wesley
Educational
Publishers Inc
Architecting Microsoft .NET Solutions for the
Enterprise
Dino Esposito et
Andrea Saltarello
Microsoft
Press,U.S.

Les Frameworks


NFE 107
Exposé



22 / 22



Struts 2 in Action Don Brown
Manning
Publications
Beginning Spring Framework 2
Thomas Van de Velde
Bruce Snyder
Christian Dupuis
Naveen Balani
Sing Li
Anne Horton
John Wiley &
Sons Ltd

Pro Java EE Spring Patterns: Best Practices
and Design Strategies Implementing Java
EE Patterns With the Spring Framework
Dhrubojyoti Kayal APress

Unit Test Frameworks Paul Hamill
O'Reilly Media,
Inc, USA