Vous êtes sur la page 1sur 35

Resum

Ce stage ingnieur,eectu au sein de l'entreprise JASSP.Tunisie ,sert dvelopper application web qui permet aux utilisateurs de rechercher les entreprises logistiques.L'application permet aussi aux utilisateurs de contacter les entreprises. Mots cls : Framework,php,symfony.

Table des matires


Table des matires Table des gures 1 PRSENTATION GNRALE
1.1 1.2 1.3 2.1 Cadre gnral du sujet de stage : prsentation de l'organisme : . . . 1.2.1 Organisation : . . . . . . . 1.2.2 Activits : . . . . . . . . . Enonc du sujet de stage : . . . . Etude 2.1.1 2.1.2 2.1.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 4 6
6 6 6 7 7

2 Etude Pralable :

de contexte : . . . . . . . . . . . . . . . . . . . . Dnition d'un site web : . . . . . . . . . . . . . L'architecture Client-Serveur : . . . . . . . . . . Le Framework Synfony : . . . . . . . . . . . . . 2.1.3.1 Origine et motivations du framework : 2.1.3.2 Points forts du framework : . . . . . . 2.1.3.3 Organisation des chiers : . . . . . . . 2.1.3.4 Traitement d'une requte : . . . . . . . 2.1.3.5 Le modle MVC [4] : . . . . . . . . . .

8 8 8 9 9 10 10 11 11

3 Analyse et spcication des besoins


3.1

3.2 3.3

Spcication des besoins : . . . . . . . . . . . . . . . 3.1.1 Les besoins fonctionnels : . . . . . . . . . . . . 3.1.1.1 Les besoins de l'administrateur : . . 3.1.1.2 Les besoins de l'internaute : . . . . . 3.1.1.3 Les besoins de l'utilisateur : . . . . . 3.1.2 Les bsoins non fonctionnels : . . . . . . . . . Les cas d'utilisation : . . . . . . . . . . . . . . . . . . Les diagrammes de squences : . . . . . . . . . . . . . 3.3.1 Diagramme de squence d'inscription : . . . . 3.3.2 Diagramme de squence recherche d'entreprise 3.3.3 Diagramme d'envoi d'email : . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . selon . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . critre . . . .

13

13 13 13 13 13 13 14 14 15 15 16

4 Solutions possibles et choix retenu


4.1

Technologie de dveloppement : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.1.1 Microsoft .NET : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2

18

4.2

4.3 5.1 5.2

4.1.1.1 Prsentation : . . . . . . . . . 4.1.1.2 Les avantages de.NET : . . . 4.1.2 J2EE : . . . . . . . . . . . . . . . . . . 4.1.2.1 Prsentation : . . . . . . . . . 4.1.2.2 Interfaces de programmation : 4.1.3 PHP( Hypertext Preprocessor) : . . . . 4.1.3.1 Prsentation : . . . . . . . . . 4.1.3.2 Fonctionnement : . . . . . . . 4.1.3.3 Les avantages de PHP5 : . . . Gestion de la base de donnes : . . . . . . . . 4.2.1 Oracle Data Base : . . . . . . . . . . . 4.2.1.1 Prsentation : . . . . . . . . . 4.2.1.2 Avantages : . . . . . . . . . . 4.2.1.3 Inconvnients : . . . . . . . . 4.2.2 MySQL : . . . . . . . . . . . . . . . . . 4.2.2.1 Prsentation : . . . . . . . . . 4.2.2.2 Avantages : . . . . . . . . . . 4.2.2.3 Inconvnients : . . . . . . . . Choix retenus : . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . : . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18 18 19 19 19 19 19 19 20 21 21 21 21 21 22 22 22 22 22

5 Conception

Conception gnrale : . . . . . . . . . . . . . . . . 5.1.1 Architecture 3 tiers : . . . . . . . . . . . . 5.1.2 Prsentation du modle MVC (Modle Vue Conception dtaille : . . . . . . . . . . . . . . . . 5.2.1 Diagramme de base donne : . . . . . . . . 5.2.2 Architecture de l'application : . . . . . . . 5.2.2.1 Application Frontend : . . . . . . 5.2.2.2 Application Backend : . . . . . . Environnement de travail : . . . . 6.1.1 Environnement matriel : 6.1.2 Environnement logiciel : . Travail ralis : . . . . . . . . . . 6.2.1 Page d'accueil : . . . . . . 6.2.2 Inscription : . . . . . . . . 6.2.3 Prole : . . . . . . . . . . 6.2.4 Ajout d'une annonce : . . 6.2.5 Recherche : . . . . . . . . 6.2.6 Administration : . . . . . 6.2.7 Problmes rencontres : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . Contrleur) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

23 23 23 24 24 25 25 25 27 27 27 28 28 28 29 30 30 31 31

6 Ralisation
6.1 6.2

27

Table des gures


1.1 2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 4.1 5.1 5.2 6.1 6.2 6.3 6.4 6.5 6.6 6.7 Organigramme de socit JASSP . Architecture Client/serveur . . . . Structure d'organisation du code . Traitement d'une requte. . . . . Le Modle MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 9 . 10 . 11 . 11 . . . . 14 15 16 16

diagramme de cas d'utilisation. . . . . . . . . Diagramme de squence de l'inscription. . . . Diagramme de squence de recherche. . . . . . Diagramme de squence d'envoie d'un e-mail.

Excution du code PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Le modle MVC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Diagramme de base de donne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Page d'acceuil. . . . . Page d'inscription. . . Prole. . . . . . . . . . Ajout annonce. . . . . Recherche. . . . . . . . Resultat de recherche. Administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 29 29 30 30 31 31

Introduction Gnrale
26 septembre 2011
Le client est gnralement la principale source de revenus pour les entreprises. Or, avec le changement de l'conomie d notamment l'intgration des nouvelles technologies dans les relations client-entreprise, la concurrence devient de plus en plus serre et les clients peuvent ainsi dsormais se permettre de choisir leur fournisseur ou d'en changer par un simple clic. Les critres de choix des clients sont notamment des critres nanciers, de ractivit de l'entreprise mais galement des critres purement aectifs (bsoin de reconnaissance, bsoin d'tre couts, ...). Ainsi ,le web devient l'interface de communication entreprise/client le plus rpandus en eet le client n'est pas oblig de connaitre la localisation des entreprises pour chercher un emploi ou pour commander un produit . Pour amliorer ces outils facilitant communication entreprise/client il est primordial des concevoir des applications web ayant cet objectif. En premier lieu, on a introduit le cadre du stage. Le deuxime volet est consacr la prsentation d'une tude de l'existant suivi d'une partie justiant le choix du framework utilis.la toisime partie est consacre la spcication des bsoins. La conception sera l'tape suivante la quelle nous arriverons pour dnir les dirents composants formant l'application. La dernire partie sera consacre la ralisation de la solution.

Chapitre 1 PRSENTATION GNRALE


Intoduction :
Dans cette partie nous allons presenter l'entreprise JASSP.Tunisie dans laquelle nous avons eectu notre stage ainsi que le cadre du stage.

1.1 Cadre gnral du sujet de stage :


Le prsent projet s'articule " Conception et dveloppement d'un site web dynamique ddi a recherche des entreprises logistiques ". Il a t propos dans le cadre de formation d'ingnieur informaticien de l'ENSI. Le stage a t eectu au sein de l'organisme JASSP.Tunisie.

1.2 prsentation de l'organisme :


JASSP est une Jeune Entreprise Innovante. Elle est Laurate 2006 et 2007 du Concours National d'Aide la Cration d'Entreprise de Technologie Innovante du Ministre dlgu la Recherche. JASSP est hberge au sein de l'incubateur de Marne la Valle et laurate du concours 2007 du Polytechnicum de Marne la Valle.

1.2.1 Organisation :
JASSP est divise en 5 ples distincts :  Ple de direction .  Ple R&D .  Ple support .  Ple commerciale .  Ple Production (Edition & Produit). L'organigramme de JASSP est trac par la gure 1.1 :

.ECKHA 1.1: Organigramme de socit JASSP .

1.2.2 Activits :
JASSP est une socit ditrice de logiciel spcialis dans l'Excess Capacity Management et Excess Inventory Management. Les logiciels JASSP consistent en des logiciels de prvision et d'optimisation , pilotage des rseaux d'entreprise et des logiciels de Business Process Management (ou systme d'information coopratif pour l' Entreprise Etendue ). Ces logiciels sont ddis aux entreprises et consistent , en des outils d'aide l'optimisation de la cration de valeur avec les excdents et les surplus de capacit ou de stock.

1.3 Enonc du sujet de stage :


Etude et ralisation d'un site web dynamique qui prsente une annuaire d'entreprise. Le site est ralis en PHP l'aide du Framework Symfony et le systme de gestion de base de donnes choisis et MySQL.

Conclusion :
Ce chapitre nous a permis de faire une prsentation gnrale du cadre de notre stage en prsentant l'organisme d'accueil.

Chapitre 2 Etude Pralable :


Introduction :
L'objectif de ce chapitre est de dnir premirement la notion de site Web, les pages web dynamiques ainsi que les dirents langages spciques la programmation Web excuts de cot serveur et cot client.

2.1 Etude de contexte :


2.1.1 Dnition d'un site web :
Un site web est un ensemble de chiers HTML stocks sur un ordinateur connect en permanence Internet et hbergeant les pages Web. Il existe deux types de pages Web, les pages web statiques et les pages Web dynamiques.

2.1.2 L'architecture Client-Serveur :


L'architecture Client/Serveur est la base des applications rseau. Elle a reconnu plusieurs volutions exiges par l'apparition de nouveau concept tel que l'Internet, le commerce lectronique ...

Prsentation de l'architecture :

L'architecture Client/Serveur (Figure 1.1) est tout modle de fonctionnement logiciel dans lequel plusieurs programmes autonomes communiquent entre eux par changes de messages. Cela signie que des machines clientes (des machines faisant partie du rseau) contactent un serveur, une machine gnralement trs puissante en terme de capacits d'entr- sortie, qui leur fournit des services [4].Ces services sont des programmes fournissant des donns telles que l'heure, des chiers, une connexion. . .

Fonctionnement d'un systme client/serveur :


le schma suivant :

Un systme client/serveur fonctionne selon

.ECKHA 2.1: Architecture Client/serveur .


 Le client met une requte vers le serveur grce son adresse IP et le port, qui dsigne un service particulier du serveur.  Le serveur reoit la demande et rpond l'aide de l'adresse de la machine cliente et son port.

2.1.3 Le Framework Synfony :

2.1.3.1 Origine et motivations du framework :


Symfony est un framework dvelopp par l'entreprise franaise Sensio. A ses origines se trouve le framework Mojavi et, comme la plupart des frameworks de la nouvelle gnration, Symfony s'inspire trs largement de certains concepts de Ruby On Rails. Symfony a t cr partir d'un constat bien simple : il n'existait pas, auparavant, de solution PHP susamment vaste et bien ralise pour assurer la prennit et la rutilisabilit du code. Mme PEAR, eort lanc en 2001, ne parvient pas fournir une rponse satisfaisante aux problmatiques rcurrentes des projets PHP : scurit, respect d'un modle (MVC, par exemple), nommage, portabilit...

2.1.3.2 Points forts du framework :


Mme si cela conduit parfois qualer Symfony de 'mastodonte' , il faut bien reconnatre que Symfony est, de tous les frameworks, celui qui propose le plus de fonctionnalits. L'extensibilit du framework est assure par le biais des plugins, qui permettent de proter trs rapidement de nouvelles fonctionnalits dveloppes par d'autres contributeurs. Fait remarquable, Symfony dispose sans doute d'une des meilleures documentations : l'API est quasiment intgralement documente (quelques points restent vierges de toute explication), et les auteurs du framework ont publi un livre en dbut d'anne 2007,' The denitive Guide to Symfony ', qui explique, pas pas, l'emploi de Symfony. C'est ce livre qui, depuis, sert de documentation ocielle Symfony via sa mise disposition gratuite sur le site ociel du framework. Un des derniers gros avantages de Symfony en tant que framework de dveloppement est, justement, qu'il est sans doute un de ceux qui assure le mieux son rle de framework, c'est--dire de cadre de dveloppement. Le formalisme de dveloppement et les conventions de codage sont bien dnis, de sorte que chaque partie du code d'un projet trouve une place logique dans l'arborescence.

2.1.3.3 Organisation des chiers :


Un projet Symfony propose une structure hirarchique d'organisation du code, sous forme d'applications elles-mme divises en dirents modules. Au sein de chaque module, on trouve dirents dossiers comme illustre la gure 1.2 :

.ECKHA 2.2: Structure d'organisation du code .

10

Symfony emploie la syntaxe YAML pour ses chiers de conguration. Cette syntaxe, mme si elle ne rpond pas au formalisme de XML, a cependant l'avantage de la simplicit.

2.1.3.4 Traitement d'une requte :


Le traitement d'une requte dans symfony est bien illustr par la gure 1.3 :

.ECKHA 2.3: Traitement d'une requte.


2.1.3.5 Le modle MVC [4] :
Symfony est entirement bas sur le design pattern MVC (Modle-Vue-Contrleur). Utilis dans d'autres technologies (notamment Java), il n'a t largement dius dans le monde PHP qu'avec des frameworks tels que symfony. Le MVC est un pattern architectural qui spare les donnes (c--d le modle), l'interface homme-machine (la vue) et la logique de contrle (le contrleur). En rsum, l'architecture MVC dnit un cadre d'organisation de votre code en accord avec sa nature. Ce modle permet une sparation du code en trois couches comme le montre la gure 1.4 :

.ECKHA 2.4: Le Modle MVC .


 Le Modle :il s'agit du comportement de l'application. Ce niveau intgre l'ensemble des interactions avec la base de donnes et le traitement des donnes : il contient et manipule 11

toutes les donnes, en grant leur slection, leur insertion, leur modication ou leur suppression ( CRUD ). Pour cela, il propose des mthodes spciques la bonne tenue de ces actions.  La Vue :il s'agit de l'interface que l'utilisateur va manipuler. Elle habille les donnes transmises par le modle et reoit toutes les actions eectues par l'utilisateur, sans en assurer le traitement : les actions sont transfres au contrleur.  Le Contrleur :il prend en charge la gestion des vnements pour mettre jour la vue ou synchroniser des informations via le modle. Il reoit toutes les actions eectues par l'utilisateur, et eectue la dtection d'erreurs (vrication du remplissage correct des champs d'un formulaire, par exemple). Tout comme la vue, le contrleur n'eectue aucune modication sur les donnes, il est uniquement charg d'appeler le modle et de renvoyer la vue concerne. Pour rsumer le principe de fonctionnement du MVC, lorsqu'un client eectue un appel une application, la requte est analyse par le contrleur qui demande au modle concern d'eectuer les oprations. Enn, c'est ce mme contrleur qui va renvoyer la vue concerne au client.

Conclusion :
Dans ce qui prcde, nous avons dgag et expliqu les notions de base qui dnissent le contexte de l'application. alors nous aborderons maintenant la deuxime partie ou nous allons dcrire le travail raliser.

12

Chapitre 3 Analyse et spcication des besoins


Introduction :
Dans tout systme, les fonctionnalits doivent tre mises en relation avec un ensemble de besoins utilisateurs. Ces besoins dnissent les services que les utilisateurs s'at- tendent voir fournis par le systme. Dans ce chapitre nous dnissons les besoins fonctionnels et non fonctionnels. Puis, partir de cette spcication, nous identions les cas d'utilisation de notre application.

3.1 Spcication des besoins :


3.1.1 Les besoins fonctionnels :
Un besoin fonctionnel est un besoin spciant une action qu'un systme doit tre capable d'ctuer.On va exposer une vue d'ensemble des dirents besoins fonctionnels en prenant chacun des acteurs part.

3.1.1.1 Les besoins de l'administrateur :


Disposant des droits les plus tendus, l'administrateur doit tre capable d'ajouter un utilisateur, le modier ou le supprimer en cas d'utilisation abusive, de mme il peut ajouter une entreprise, la supprimer ou la modier si cela est ncessaire.

3.1.1.2 Les besoins de l'internaute :


L'application doit permettre l'internaute de rechercher une entreprise celon le nom ,la spcialit .Elle lui permet aussi de crier un compte et de s'inscrire .

3.1.1.3 Les besoins de l'utilisateur :


L'application doit permettre l'utilisateur de manipuler sa liste d'annonce :ajout ,modier et supprimer des annonces.Aussi elle lui permettre

3.1.2 Les bsoins non fonctionnels :


 Facilit d'utilisation :la facilit de manipulation de l'application pour orir l'utilisateur une meilleure utilisation.. 13

 L'interface utilisateur doit ainsi tre conviviale et prsenter d'une manire simple les fonctionnalits oertes.  Performance :l'application doit tre le plus optimal possible ainsi l'application doit ragir rapidement.  Maintenabilit :l'application doit tre facile maintenir .

3.2 Les cas d'utilisation :


Les diagrammes de cas d'utilisation sont des diagrammes UML utiliss pour donner une vision globale du comportement fonctionnel d'un systme logiciel. Un cas d'utilisation reprsente une unit discrte d'interaction entre un utilisateur (humain ou machine) et un systme. Pour cette application se prsentent deux acteurs :  L'utilisateur.  L'administrateur .  L'internaute

.ECKHA 3.1: diagramme de cas d'utilisation.

3.3 Les diagrammes de squences :


Les diagrammes de squences sont la reprsentation graphique des interactions entre les acteurs et le systme selon un ordre chronologique dans la formulation Unied Modeling Language(UML).

14

3.3.1 Diagramme de squence d'inscription :


Les tapes d'iscription sont :  Le chef d'entreprise clic sur le bouton inscription une redirection vers la page d'iscription contenat un formulaire (nom, prenom, ville, e-mail Adresse, Capital, . . .) .  Le chef d'entreprise remplie le formulaire puis clic sur valider .  le systeme envoi une requte au serveur de base de donne .  le serveur de base de donne enregistre les donnes.  le systeme envoi un mail l'adresse mail entre par le chef d'entreprise.  Le systme ache un message que l'inscription est russie et qu'il doit activ son compte.

.ECKHA 3.2: Diagramme de squence de l'inscription.

3.3.2 Diagramme de squence recherche d'entreprise selon critre :


Les tapes de recherche sont :  Le systme ache les choix de recherche.  L'utilisateur choisit un critre de recherche .  L'utilisateur clic sur le bouton recherche .  Le systeme envoi une requte au serveur de base de donne.  Le serveur de base de donne consulte l'annuaire des entreprises.  Le serveur de base de donne renvoi les informations.  Le systme ache la liste des entreprises.

15

.ECKHA 3.3: Diagramme de squence de recherche.

3.3.3 Diagramme d'envoi d'email :


Les tapes de recherche sont :  L'utilisateur remplit les champs de formulaires d'e-mail(adresse mail,objet,sujet. . ..) .  L'utilisateur clic sur envoyer .  Le systme contrle les champs saisies .  Le systme ache un message de conrmation.

.ECKHA 3.4: Diagramme de squence d'envoie d'un e-mail.


16

Conclusion :
Dans ce chapitre, nous avons dni en premier lieu les dirents bsoins. Ensuite nous les avons formaliss avec un diagramme de cas d'utilisation et des divers scnarios. Maintenant on va faire une tude des solution possible et on va choisir la meilleur.

17

Chapitre 4 Solutions possibles et choix retenu


Introduction :
Dans ce chapitre nous abordons une tude comparative entre les direntes technologies existantes et nous prouvons le choix de l'environnement de dveloppement ainsi que le systme de gestion de la base de donnes.

4.1 Technologie de dveloppement :


4.1.1 Microsoft .NET :
4.1.1.1 Prsentation :
La plateforme Microsoft .NET est une solution complte pour dvelopper, dployer et excuter des applications de tous types, y compris des services web. Fonde sur des standards de l'industrie (HTTP, XML, SOAP, WDSL), la plateforme .NET est un moyen simple et puissant pour implmenter la coopration des services logiciels entre eux, quelle que soit leur localisation, leur implmentation technique, qu'ils soient internes ou externes, existant ou inventer.

4.1.1.2 Les avantages de.NET :


La plateforme .NET comprend un modle de programmation homogne et des outils de dveloppement multi-langages qui acclrent le dveloppement et l'intgration de Services Web et de tout autre type d'application multi-langages et intgrant les standards, la plateforme.NET laisse au dveloppeur toute libert de choisir le langage de dveloppement. D'autre part son support des standards et son approche moderne, la plateforme .NET est parfaitement adapte a la construction d'une architecture oriente services. La plateforme .NET ore donc plusieurs avantages :  Un dveloppement spcique grce au moteur CLR. Une structure multi langages et extensible.  Une excution multi plateforme.  Une productivit comparable celle des environnements Client/serveur comme PowerBuilder ou Delphi.  Un modle de programmation simple et cohrent.  Une installation automatise des Web Services.

18

4.1.2 J2EE :
4.1.2.1 Prsentation :
Java Enterprise Edition, ou Java EE (anciennement J2EE), est une spcication pour la technique Java de Sun plus particulirement destine aux applications d'entreprise. Ces applications sont considres dans une approche multi-niveaux1. Dans ce but, toute implmentation de cette spcication contient un ensemble d'extensions au framework Java standard (JSE, Java Standard Edition) an de faciliter la cration d'applications rparties. Pour ce faire, Java EE dnit les lments suivants :  Une plate-forme (Java EE Platform), pour hberger et excuter les applications.  Une suite de tests (Java EE Compatibility Test Suite) pour vrier la compatibilit.  Une ralisation de rfrence (Java EE Reference Implementation), qui est GlassFish.  Un catalogue de bonnes pratiques (Java EE BluePrints).

4.1.2.2 Interfaces de programmation :


L'approche multi niveaux adopte par la plate-forme J2EE prsente plusieurs avantages :  Elle rduit la complexit du dveloppement distribu avec une architecture simplie et le partage de la charge de travail.  C'est une solution hautement volutive qui permet le dveloppement des systmes satisfaisants de nombreux besoins rapidement modiables.  Les nouvelles applications peuvent s'intgrer correctement avec les systmes d'informations existants.  La scurit est amliore.  Les dveloppeurs peuvent choisir parmi une diversit d'outils de dveloppement et de composants pour dvelopper les applications requises.  L'quipe de dveloppement peut slectionner les meilleures solutions pour leurs besoins, sans tre verrouille par l'ore du fournisseur unique.  Tous les composants sont gratuits.

4.1.3 PHP( Hypertext Preprocessor) :


4.1.3.1 Prsentation :
PHP est un langage de scripts libre principalement utilis pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant galement fonctionner comme n'importe quel langage interprt de faon locale, en excutant les programmes en ligne de commande. PHP est un langage impratif disposant depuis la version 5 de fonctionnalits de modle objet compltes. En raison de la richesse de sa bibliothque, on dsigne parfois PHP comme une plate-forme plus qu'un simple langage.

4.1.3.2 Fonctionnement :
Dans une utilisation Web, l'excution du code PHP se droule ainsi : lorsqu'un visiteur demande consulter une page Web, son navigateur envoie une requte au serveur HTTP correspondant. Si la page est identie comme un script PHP (gnralement grce l'extension .php), le serveur appelle l'interprte PHP qui va traiter et gnrer le code nal de la page (constitu gnralement

19

d'HTML ou de XHTML, mais aussi souvent de CSS et de JS). Ce contenu est renvoy au serveur HTTP, qui l'envoie nalement au client. La gure 3.1 explique ce fonctionnement :

.ECKHA 4.1: Excution du code PHP.


4.1.3.3 Les avantages de PHP5 :
 Simplicit : PHP propose un langage et un modle de dveloppement trs simple. La vocation historique de PHP tait de permettre n'importe quel informaticien de dvelopper rapidement et sans formation pralable une application Web dynamique. Elle s'avre tellement simple que tous les hbergeurs grand public ont retenu PHP.  Souplesse : PHP propose deux syntaxes : l'une procdurale, l'autre oriente objet. Chacune de ces syntaxes permet de mettre en oeuvre les mmes fonctionnalits mais vise des publics dirents. La syntaxe procdurale est destine aux webmasters et aux informaticiens qui travaillent sur l'interface graphique des applications. La seconde syntaxe, oriente objet, est trs proche de Java et C# dont elle s'inspire volontairement pour diminuer les cots de formation des entreprises. Un dveloppeur Java ou C# pourra ainsi migrer vers PHP 5 avec pas ou peu de formation, les concepts et syntaxes cls tant identiques.  Interoprabilit :PHP peut instancier des objets COM, .NET et Java. PHP dispose galement de connecteurs techniques vers toutes les bases de donnes relationnelles du march mais galement vers LDAP, XML, services Web, Lotus Notes,SAP, etc. PHP n'a pas pour vocation de remplacer ces technologies, mais de faciliter leur interfaage an d'orir aux entreprises une plate-forme unique pour agrger et prsenter les donnes issues de ces applications.  Portabilit : PHP est disponible sur l'ensemble des systmes d'exploitation du march. L'approche technique de PHP est identique la machine virtuelle Java (JVM). Il sut que PHP soit dploy sur un poste client ou serveur pour que l'application fonctionne instantanment, sans recompilation, quel que soit le systme d'exploitation.  Prennit : La prennit d'une technologie informatique dpend essentiellement de son nombre d'utilisateurs. PHP est utilis par plus de 4 500 000 dveloppeurs travers le monde. 87% des entreprises du CAC 40 l'utilisent et plus de 20 millions de sites web reposent sur cette technologie. De plus, l'ouverture du code source et l'appartenance de cette communaut Open Source la fondation Apache garantissent la prennit de PHP. Performances et monte en charge Si 90% des sites web franais les plus frquents utilisent PHP c'est essentiellement pour ses performances et sa stabilit. On imagine mal Club Internet (18 millions de visiteurs par mois) ou Neowiz.com (150 000 visiteurs par jour sur plus de 500 000 communauts) redmarrer leurs serveurs tous les jours. . .

20

4.2 Gestion de la base de donnes :


4.2.1 Oracle Data Base :
4.2.1.1 Prsentation :
Oracle est un systme de gestion de base de donnes relationnel (SGBDR) qui depuis l'introduction du support du modle objet dans sa version 8 peut tre aussi quali de systme de gestion de base de donnes relationnel-objet (SGBDRO). Fourni par Oracle Corporation, il a t dvelopp par Larry Ellison, accompagn d'autres personnes telles que Bob Miner et Ed Oates.

4.2.1.2 Avantages :
 Fonctionne sur de nombreuses plateformes.  Dispose d'API pour C, C++, Eifel, Java, Perl, PHP, Python.  Completement multi threads, grace aux threads du noyau. Cela signe qu'on peut l'utiliser facilement sur un serveur avec plusieurs processeurs.  Tables B-tee trs rapide, avec compression d'index.  Systeme d'allocation mmoire trs rapide, exploitant les threads.  Tables en memoire, pour raliser des tables temporaires.  Les fonctions SQL sont implmentes grce une librairie de classes optimises, qui sont aussi rapides que possible.

4.2.1.3 Inconvnients :
 Prix lev, tant au point de vue des licences que des composants matriels (RAM, CPU) fournir pour de bonnes prformances.  Administration complexe , lie la richesse fonctionnelle .  Fort demandeur de ressources, ce qui n'arrange rien au point prcit, Oracle est bien plus gourmand en ressource mmoire que ses concurrents, ce qui implique un investissement matriel non ngligeable. La connexion utilisateur ncessite par exemple prs de 700 Ko/utilisateur, contre une petite centaine sur des serverus MS-SQL ou Sybase ASE. Gourmand aussi en espace disques puisque la plupart des modules requirent leur propre ORACLE_HOME de par le versionning de patches incontrle .  Porosit entre les schmas : dicile de faire cohabiter de nombreuses applications sans devoir crer plusieurs instances. Il manque rellement la couche "base de donnes" au sens Db2/Microsost/Sybase du terme.  Mtamodle propritaire, loin de la norme.  Tables partitionnes, RAC... uniquement possible l'aide de modules payants complmentaires sur la version Enterprise.  Gestion des verrous mortels mal conue (suppression d'une commande bloquante sans rollback) .  Faiblesses de l'optimiseur (ne distingue pas les pages en cache ou en disque, n'utilise pas d'index lors de tris gnraux, statistiques rgnres par saccade...) .

21

4.2.2 MySQL :
4.2.2.1 Prsentation :
MySQL est un systme de gstion de base de donnes (SGBD). Selon le type d'application, sa licence est libre ou propritaire. Il fait partie des logiciels de gestion de base de donnes les plus utiliss au monde, autant par le grand public (applications web principalement) que par des professionnels, en concurrence avec Oracle et Microsoft SQL Server.

4.2.2.2 Avantages :
        Solution trs courante en hbergement public. Trs bonne intgration dans l'environnement Apache/PHP. OpenSource, bien que les critres de licence soient de plus en plus diciles supporter. Version cluster depuis la version 4. ordonnanceur ds la version 5.1. Partitionnement ds la version 5.1. Facilit de dploiement et de prise en main. Plusieurs moteurs de stockage adapts aux direntes problmatiques, congurable au niveau table.

4.2.2.3 Inconvnients :
 Ne supporte qu'une faible partie des standards SQL-92 .  Support incomplet des triggers et procdures stockes .  Gestion des transactions avec les moteurs Falcon ou InnoDb uniquement .

4.3 Choix retenus :


La clart de l'architecture qu'elle propose ainsi que la multitude des IDE qui peuvent la supporter et sa Interoprabilit avec .net et J2EE, PHP5 a t le choix judicieux pour le dveloppement de notre application (Symfony comme framework). Une base de donne MySQL est celle qui va tre implmente pour grer les donnes ncessaires l'application.

Conclusion :
L'analyse et l'numeration des besoins fonctionnels et non fonctionnels ont permis une meilleure assimilation des direntes dicults rsoudre travers l'application. Il est donc indispensable de choisir la technique la plus approprie qui permettra de satisfaire toutes les contraintes. A la n de cette tape, nous pouvons commencer la partie conceptuelle de l'application qui sera le thme du chapitre suivant.

22

Chapitre 5 Conception
Introduction
Aprs avoir fait l'analyse et la spcication de notre application nous allons passer faire une conception gnrale qui consiste laborer les spcications de l'architecture gnrale de l'application ainsi qu'une conception dtale qui dnit prcisment chaque sous-ensemble de notre application.

5.1 Conception gnrale :


Nous aurons besoin cette tape de spcier les composants physiques et logiques ncessaires pour l'application. Pour cette raison nous allons entamer ce chapitre par l'architecture gnrale de l'application .

5.1.1 Architecture 3 tiers :


Notre application repose sur une architecture trois tiers. Ces trois couches dsignent respectivement :  La couche prsentation.  La couche mtier.  La couche accs la base de donnes . Les trois couches sont rigoureusement spares les unes des autres de faon qu'il ne doit exister idalement aucune dpendance entre elles. Concrtement, chaque couche ne connat que les interfaces de la couche immdiatement infrieure. Ainsi la couche Mtier ne connat que les interfaces de la couche DAO et la couche Prsentation ne connat que les interfaces de la couche Mtier. De cette manire, chaque couche publie, via ses interfaces, l'ensemble des traitements qu'elle met la disposition des couches suprieures de la couche Mtier. De cette manire, chaque couche publie, via ses interfaces, l'ensemble des traitements qu'elle met la disposition des couches suprieures.

5.1.2 Prsentation du modle MVC (Modle Vue Contrleur) :


Le Modle-Vue-Contrleur (en abrg MVC, de l'anglais Model-View-Controller) est une architecture et une mthode de conception qui organise l'interface homme- machine (IHM) d'une 23

application logicielle. Ce paradigme divise l'IHM en un modle (modle de donnes), une vue (prsentation, interface utilisateur) et un contrleur (logique de contrle, gestion des vnements, synchronisation) Le modle MVC lui, est une approche dirente de l'organisation de l'interface homme- machine. Le code est spar en 3 morceaux, distincts, qui permettent une meilleure comprhension du code, et un travail de groupe plus ais.

Le modle :

Le modle reprsente l'interaction avec la base de donnes, il dcrit les donnes dont l'application se sert. Il contient les mthodes d'accs au donnes, pour les lire et les modier (insertion, suppression, mise jour). On l'appelle aussi  Mtier .

La vue :

La vue correspond l'interface avec laquelle l'utilisateur ragit. Elle ache les donnes renvoy par le modle et reoit les actions de l'utilisateur (remplissage de formulaire, clic de boutons ou encore clic de souris. . .). La vue n'eectue aucune opration, elle renvoie toute ces informations au contrleur.

Le contrleur :

Le controleur peut tre quali comme une sorte d'intermdiaire entre la vue et le modle, il prend en charge la gestion des vnements pour mettre jour l'un ou l'autre, et les synchroniser. En cas de modication de donnes, ce n'est pas le contrleur qui s'en charge, mais le modle, le contrleur lui faisant la demande. Une fois ces donnes modies, le contrleur averti la vue qu'elle doit se recharger pour acher les donnes mise jour.

.ECKHA 5.1: Le modle MVC.

5.2 Conception dtaille :


Dans le frame work symfony l'architecture de la base de donn admet une grande importance puisque grace laquelle on peut creer nos formulaires ,modules...

5.2.1 Diagramme de base donne :


Le diagramme de base de donne permet une reprsentation de la structure physique d'une base de donnes.

24

.ECKHA 5.2: Diagramme de base de donne .

5.2.2 Architecture de l'application :


5.2.2.1 Application Frontend :
C 'est l'space rserv pour le client (utilisateur ,internaute) . Elle se compose de plusieurs modules.On cite les modules principales de cette application :

Inscription :

Nous avons dit avant que la base de donn est l'origine de tous dans symfony, le model utilisateur est l'origine de ce module. Ce module assure l'inscription du client.

Authentication : Annonce : Recherche :

c'est le module qui permet l'authentication d'un utilisateur.

C'est le module qui permet d'ajouter ,modier ou supprimer une annonce. C'est le module qui permet la recherche.

5.2.2.2 Application Backend :


Cet space est reserv pour l'administrateur. Elle permet l'administrateur de manipuler(ajout ,modication ,supprission) la liste des utilisateurs,annonces. 25

Elle lui permettre aussi de recevoir et d'envoyer un message l'utilisateur.

Conclusion :
Etant donns les besoins des utilisateurs de notre application, la phase de conception vient pour permettre la dtermination des dirents objets contribuant assurer les fonctionnalits souhaites. Cette phase est une prparation la phase du codage garantissant une organisation claire et prcise et une facilite d'implmentation des classes invoques, des structures de donnes utilises et les relations qui existent entre les direntes classes. Nous essayons dans le chapitre ralisation d'implmenter les direntes classes et de montrer les fonctionnalits ralises suite cette implmentation .

26

Chapitre 6 Ralisation
Introduction :
Cette partie contient le dernier volet de ce rapport, elle a pour objectif d'exposer le travail achev. Nous allons commencer, tout d'abord, par la prsentation de l'environnement matriel et logiciel utilis pour dvelopper l'application demande. Ensuite, nous prsentons le travail accompli tout au long de la priode du projet. Enn, nous montrons le chronogramme de la ralisation du projet.

6.1 Environnement de travail :


Nous prsentons dans cette section l'environnement matriel ainsi que celui logiciel utiliss pour le dveloppement de notre application.

6.1.1 Environnement matriel :


Ce projet a t dvelopp sur une machine HP dot de :  Processeur : intel(R) core 2 Duo 2.00 GHz.  RAM : 3Go .  Cache : 512 Ko.  Disque dur : 320 Go.

6.1.2 Environnement logiciel :


     Outils de dveloppement : NetBeans 6.8. Serveur d'application : Apache. MySQL : gestion de la base de donnes. Phpmyadmin : utilis pour la gestion de la base de donnes. PowerAMC Evaluation v12.5 : C'est un outil d'edition de diagrammes UML1 que nous avons utilis pour la cation des diagrammes des cas d'utilisation,et les diagrammes de squences.  Latex : pour la rdaction du rapport.

27

6.2 Travail ralis :


6.2.1 Page d'accueil :
L'interface de la page d'accueil donne une ide sur l'objectif de notre site ainsi que les dirents liens vers les autres pages de site : L'utilisateur peut s'inscrire,se connecte ou chercher une entreprise.

.ECKHA 6.1: Page d'acceuil.

6.2.2 Inscription :
L'utilisateur peut creer un compte .C'est en appuillant sur Creer un compte  dans la page d'acceuil . Il apparait le formulaire suivant :

28

.ECKHA 6.2: Page d'inscription.


Aprs le remplissage du formulaire, s'il est valide ,une message apparait qui informe l'utilisateur que l'inscription est terminer ,il ne reste qu'activer son compte en contactant son e-mail.

6.2.3 Prole :
Aprs la connexion ,on se trouve dans notre prole ,on a beaucoups d'option :

.ECKHA 6.3: Prole.

29

6.2.4 Ajout d'une annonce :


un utilisateur connect peut ajouter ,modier ou supprimer des entreprises de son compte. C'est en appuillant sur ajout dans son prol il apparait l'interface suivant :

.ECKHA 6.4: Ajout annonce.


De meme on peut modier ou supprimer une annonce.

6.2.5 Recherche :
En appuillant sur recherche on obtient l'interface suivant :

.ECKHA 6.5: Recherche.


Le rsultat de la recherche est une liste de societ . 30

on peut contacter le drigeant en l'envoyant un mail.

.ECKHA 6.6: Resultat de recherche.

6.2.6 Administration :
L'application Backend est la zone rserv pour l'administrateur .Il peut manipuler la liste des utilisateurs,des annonces et reoit et envoit des messages au utilisateurs .

.ECKHA 6.7: Administration.

6.2.7 Problmes rencontres :


Le long de ce travail nous nous sommes trouvs face plusieurs corves imprdictibles que nous avons essay de surmonter. En faite, il nous a ete dicile de pouvoir :  Nous initier un nouveau framework Symfony.  Grer les problmes gnrs par Netbeans.  Raliser un travail fonde sur la maintenance. 31

Conclusion :
Dans ce chapitre, nous avons prsent l'environnement de dveloppement matriel et logiciel avec lesquels ce projet a t ralis. Nous avons prsent aussi une vue du produit nal via quelques prises d'cran et nous avons ni par donns les dicults rencontrs durant ce projet. Nous allons clturer le prsent rapport par une conclusion gnrale.

32

Conclusion gnrale :
Dans ce projet nous avons ralis une annuaire d'entreprise .Pour ce faire, nous avons dvelopp un site web dynamique qui joue le role d'une interface de communication client -entreprises. Ce rapport est compos de six chapitre :le premier chapitre consiste une prsentation genrale du sujet .le deuxime chapitre prsente une tude pralable suivie d'une analyse et spcication des besoins dans un troisime chapitre .Les solutions possibleset le choix retenus sont traits dans le quatrime chapitre.dans le cinquime chapitre on a fait une conception globale du projet ainsi qu'une conception detaille .Nous avons nis par des prises d'crans de notre application pour expliquer la ralisation de notre projet. Ce projet d't m'a oert la possibilit d'approfondir certaines connaissances dans le langage de modlisation UML qui constitue un outil de conception extrmement dvelopp .De point vue technique,ce projet m'a permi d'approfondir mes connaissances dans les domaines du dveloppement et la conception. Il m'a oert une vritable opportunit pour se familiariser au framework Symfony-PHP. De plus cette exprience a t trs bnque . Mais cela n'empche que des amliorations peuvent tre eectues sur l'application en essayant d'orir plus de facilits l'utilisateur ,plus de securit qui demeura l'objectif de tout les applications informatiques.

33

Bibliographie
Hugo Hamon et Fabien Potencier -Les Cahiers du Programmeur : Symfony Mieux dvelopper en PHP avec Symfony 1.2 et Doctrine Editions EYROLLES .

34

Netographie
 http ://www.wikipeadia.org  http ://www.symfony-project.org  http ://java.developpez.com

35