SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
PHP
                                                     Web Services




           PHP et Web Services
11 février 2010 - Master CCI - Université de Tours




            Guillaume Jarysta-Dautel - Devolia CEO
PHP
                                                                      Web Services

                               Plan de la présentation 1/2

1.   PHP : notions d’environnement
       • Architecture CGI / CLI
       • Cron
       • Core et modules
       • Interface Apache et mod Apache
       • Interface OS
       • Interface SGBD
       • php.ini et .htaccess

2. PHP : notions d’architecture
      • Repository, Dev et Prod

3. PHP : notions de génie logiciel
      • Templating
      • Modèles de données SQL
      • Multilinguisme                         ETUDE DE CAS
      • Modèle objet PHP5                      • devolia.org
      • Documentation                          • secure.devolia.com
      • API interne / externe                  • rienamemettre.com
      • Sécurité
PHP
                                                                                     Web Services

                                Plan de la présentation 2/2

4.   Web Services : notions d’architecture
       • XML-RPC, SOAP
       • XML et JSON
       • Architecture d’un listener
       • Web Services asynchrones : ping et callback
       • Sécurité d’un Web Service                            ETUDE DE CAS
                                                              • devolia.org
5. Web Services : notions de génie logiciel en PHP            • secure.devolia.com
      • Moteur de session                                     • rienamemettre.com
      • SimpleXML                                             • geotwitt
      • JSON
      • Gestion des en-têtes

6. Web Services : architecture avancée
      • Montée en version d’une API externe
      • Gestion de la charge
PHP
                      Web Services

PHP professionnel ?
PHP
                                                                                 Notions d’environnement

                                      PHP - notions d’environnement

1.    Architecture CLI / CGI



              Système                                   Serveur             Module
           d’exploitation                                Web                 CGI

       -   Linux                                  -   Apache          -   PHP
       -   Windows                                -   Lighttpd        -   Perl
       -   FreeBSD                                -   IIS             -   C
       -   ...                                    -   ...             -   ...




                                                                            Sources
                                                        Module
                                                         CLI          - PHP :
                                                                      compilation à la
                                                  -   PHP             volée
                                                  -   Perl
                                                  -   C
                                                  -   ...

Ressources
     http://php.net/manual/fr/migration5.cli-cgi.php
PHP
                                                                                Notions d’environnement

                                     PHP - notions d’environnement

2.    Cron




              Système                             Cron                     Module
           d’exploitation                                                   CLI
                                             - Exécution
       -   Linux                             périodique              -   PHP
       -   Windows                                                   -   Perl
       -   FreeBSD                                                   -   C
       -   ...                                                       -   ...




                                                                           Sources

                                                                     - PHP :
                                                                     compilation à la
                                                                     volée



Ressources
     http://doc.ubuntu-fr.org/cron
PHP
                                                                                          Notions d’environnement

                                                  PHP - notions d’environnement

            3. Core et modules


   RESEAU          CRYPTAGE               SGBD            GRAPHISME       OUTILS     COMPRES-         BAS
                                                                                       SION          NIVEAU
soap             mcrypt              mysql               gd            calendar
xmlrpc           ...                 pdo                 jpeg          mbstring    zlib           pcntl
openssl                              postgresql          png           ...         ...            ...
ftp                                  ...                 pdf
curl                                                     ...
kerberos
...




            Ressources
              http://php.net/manual/fr/faq.installation.php
PHP
                                                                          Notions d’environnement

                               PHP - notions d’environnement

4. Modules Apache




           Apache                        Modules                     Module
                                                                      CLI
    -   Linux                          mod_ssl
    -   Windows                        mod_rewrite             -   PHP
    -   FreeBSD                        mod_proxy               -   Perl
    -   ...                            ...                     -   C
                                                               -   ...




                                                                     Sources

                                                               - PHP :
                                                               compilation à la
                                                               volée



Ressources
  http://modules.apache.org/
PHP
                                                                                             Notions d’environnement

                                   PHP - notions d’environnement

4. Modules Apache - exemple mod_rewrite

Requête
  GET /romans/suskind/le_parfum.html


mod_rewrite
  RewriteRule ^/([^/]+)/([^/]+)/([^.]+).html   store.php?rayon=$1&auteur=$2&titre=$3


PHP - store.php
  <h1>Bienvenue dans notre rayon <?php print($_REQUEST[‘rayon‘]); ?></h1>
  <h2>Votre livre : <?php print($_REQUEST[‘titre‘]); ?> (<?php print($_REQUEST[‘auteur‘]); ?>)</h2>
PHP
                                                                                 Notions d’environnement

                                   PHP - notions d’environnement

5. Interface OS

Exécution d’un programme serveur
  $return=exec('ln -s /home/');
  print($return);




pcntl
  $pid = pcntl_fork();
  if($pid == -1){ die('Cannot fork. Too bad, I wanna fork so bad !'); }
  elseif($pid){
     // le père
     print('Je suis ton père ('.posix_getpid().'), Luke ('.$pid.') !'."rn");
  }
  else{
     // le fils
     print('Noooon ('.posix_getpid().') !'."rn");
  }




Ressources
  http://fr.php.net/manual/fr/book.exec.php
  http://fr.php.net/manual/fr/book.pcntl.php
PHP
                                                                      Notions d’environnement

                                   PHP - notions d’environnement

6. Interface SGBD




Connexion à MySQL
  $link=mysql_connect('localhost','login','password');
  $db=mysql_select_db('database_name', $link);




Couche d’abstraction - PDO
  $dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

  $count = $dbh->exec("DELETE FROM fruit WHERE couleur = 'rouge'");

  print("Retourne le nombre de lignes effacées :n");
  print("Effacement de $count lignes.n");




Ressources
  http://fr.php.net/manual/fr/book.pdo.php
PHP
                                                                   Notions d’environnement

                                   PHP - notions d’environnement

7. php.ini et .htaccess




Lecture de la configuration PHP
  phpinfo();




Droits limitatifs
  AuthType Basic
  AuthName "Password Required"
  AuthUserFile /www/passwords/password.file
  AuthGroupFile /www/passwords/group.file
  Require Group admins




Ressources
  http://fr.php.net/manual/fr/configuration.php
  http://httpd.apache.org/docs/1.3/howto/htaccess.html
PHP
                                                                           Notions d’architecture

                             PHP - notions d’architecture

1. Repository, dev et prod



                                            dev                     prod

                                    -   Error on            -   Error silent
                                    -   Warning on          -   Warning silent
                                    -   Audit on            -   Audit off
                                    -   Debug on            -   Debug off



      Développeurs

                                                                Repository

                                                            - Garant de
                                                            l’intégrité, de la
                                                            gestion des
                                                            versions, du
                                                            travail
                                                            collaboratif
PHP
                                                        Notions de génie logiciel

                      PHP - notions de génie logiciel

                              ETUDE DE CAS

•   Templating
•   Modèles de données SQL
•   Multilinguisme
•   Modèle objet PHP5
•   Documentation
•   API interne / externe
•   Sécurité
Web Services
                                                                    Notions d’architecture

                                           Web Services

Usages

   •     Consommation   d’un   service   tiers
   •     Consommation   d’un   service   métier
   •     Consommation   d’un   service   critique
   •     Consommation   d’un   service   asynchrone
   •     Consommation   d’un   service   en situation de mobilité
Web Services
                                                                              Notions d’architecture

                               Web Services - notions d’architecture

1. XML-RPC, SOAP, Corba, IEC, WSDL, à façon... le choix de l’architecture

        •   Type de besoin : privé / public
        •   Besoin d’une vérification simplifiée de la cohérence du message
        •   Poids moyen des échanges
        •   Nature des consommateurs du service
        •   Besoin de certification
        •   Besoin en niveau d’abstraction : WSDL
        •   Interopérabilité des Web Services




Ressources
  http://fr.wikipedia.org/wiki/SOAP
  http://fr.wikipedia.org/wiki/XML-RPC
Web Services
                                                                Notions d’architecture

                        Web Services - notions d’architecture

2. XML et JSON

      • Avantages de XML
        • Interopérabilité
        • Formalisme rigoureux
        • Parseurs multilangages
        • Explicitement UNICODE

      • Inconvénients de XML
        • Lourdeur des en-têtes
        • Rigidité du formalisme


      • Avantages de JSON
        • Interprétation simple en Javascript
        • Encodage / décodage intégrés à PHP 5
        • Flexibilité de l’encodage

      • Inconvénients de XML
        • Parseurs généralement non-natifs
        • Peu robuste
Web Services
                                                           Notions d’architecture

                   Web Services - notions d’architecture

                               ETUDE DE CAS

• Architecture d’un listener
• Web Services asynchrones : ping et callback
• Sécurité d’un Web Service
Web Services
                                                              Notions de génie logiciel

                   Web Services - notions de génie logiciel

                               ETUDE DE CAS

•   Moteur de session
•   SimpleXML
•   JSON
•   Gestion des en-têtes
Web Services
                                                         Architecture avancée

                   Web Services - Architecture avancée

• Montée en version d’une API externe
• Gestion de la charge
PHP
                                                        Web Services




Guillaume Jarysta-Dautel   Devolia Europe
+33 (0) 683 658 342        21 boulevard de Sébastopol
guillaume@devolia.fr       75001 Paris - FRANCE
                           www.devolia.fr
www.jarysta.com




                           Devolia North America
                           1138 Broadway, Suite 706
                           New York, NY 10010 – USA
                           www.devolia.com

Contenu connexe

En vedette

Résultats de l'étude sur l'utilisation des réseaux sociaux par les communicants
Résultats de l'étude sur l'utilisation des réseaux sociaux par les communicantsRésultats de l'étude sur l'utilisation des réseaux sociaux par les communicants
Résultats de l'étude sur l'utilisation des réseaux sociaux par les communicantsGuillaume Jarysta
 
White paper - La sécurisation des web services
White paper - La sécurisation des web servicesWhite paper - La sécurisation des web services
White paper - La sécurisation des web servicesBee_Ware
 
Etat des lieux de la sécurisation des paiements par carte sur internet
Etat des lieux de la sécurisation des paiements par carte sur internetEtat des lieux de la sécurisation des paiements par carte sur internet
Etat des lieux de la sécurisation des paiements par carte sur internetBee_Ware
 
La sécurité des Si en établissement de santé
La sécurité des Si en établissement de santéLa sécurité des Si en établissement de santé
La sécurité des Si en établissement de santéBee_Ware
 
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain MaretASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain MaretSylvain Maret
 
Guide de mise en oeuvre d'une authentification forte avec une cps
Guide de mise en oeuvre d'une authentification forte avec une cpsGuide de mise en oeuvre d'une authentification forte avec une cps
Guide de mise en oeuvre d'une authentification forte avec une cpsBee_Ware
 
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...TelecomValley
 
Où intégrer les services web (association/event)
Où intégrer les services web (association/event)Où intégrer les services web (association/event)
Où intégrer les services web (association/event)Rémi Thomas
 
Les principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuellesLes principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuellesBee_Ware
 
Menaces informatique et pratique de sécurité en france
Menaces informatique et pratique de sécurité en franceMenaces informatique et pratique de sécurité en france
Menaces informatique et pratique de sécurité en franceBee_Ware
 
Services web RESTful
Services web RESTfulServices web RESTful
Services web RESTfulgoldoraf
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressourceAntoine Pouch
 
Entregaequipos
EntregaequiposEntregaequipos
Entregaequiposcaprcar
 
La coopération universitaire entre le Val de Loire et le Mali
La coopération universitaire entre le Val de Loire et le MaliLa coopération universitaire entre le Val de Loire et le Mali
La coopération universitaire entre le Val de Loire et le MaliMission Val de Loire
 

En vedette (20)

Résultats de l'étude sur l'utilisation des réseaux sociaux par les communicants
Résultats de l'étude sur l'utilisation des réseaux sociaux par les communicantsRésultats de l'étude sur l'utilisation des réseaux sociaux par les communicants
Résultats de l'étude sur l'utilisation des réseaux sociaux par les communicants
 
White paper - La sécurisation des web services
White paper - La sécurisation des web servicesWhite paper - La sécurisation des web services
White paper - La sécurisation des web services
 
Etat des lieux de la sécurisation des paiements par carte sur internet
Etat des lieux de la sécurisation des paiements par carte sur internetEtat des lieux de la sécurisation des paiements par carte sur internet
Etat des lieux de la sécurisation des paiements par carte sur internet
 
La sécurité des Si en établissement de santé
La sécurité des Si en établissement de santéLa sécurité des Si en établissement de santé
La sécurité des Si en établissement de santé
 
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain MaretASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
 
Guide de mise en oeuvre d'une authentification forte avec une cps
Guide de mise en oeuvre d'une authentification forte avec une cpsGuide de mise en oeuvre d'une authentification forte avec une cps
Guide de mise en oeuvre d'une authentification forte avec une cps
 
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
 
Où intégrer les services web (association/event)
Où intégrer les services web (association/event)Où intégrer les services web (association/event)
Où intégrer les services web (association/event)
 
Les principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuellesLes principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuelles
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Menaces informatique et pratique de sécurité en france
Menaces informatique et pratique de sécurité en franceMenaces informatique et pratique de sécurité en france
Menaces informatique et pratique de sécurité en france
 
Services web RESTful
Services web RESTfulServices web RESTful
Services web RESTful
 
Nagios 3
Nagios 3Nagios 3
Nagios 3
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressource
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
ID HOME 3D
ID HOME 3DID HOME 3D
ID HOME 3D
 
Cambio climático y ozono
Cambio climático y ozonoCambio climático y ozono
Cambio climático y ozono
 
Entregaequipos
EntregaequiposEntregaequipos
Entregaequipos
 
La coopération universitaire entre le Val de Loire et le Mali
La coopération universitaire entre le Val de Loire et le MaliLa coopération universitaire entre le Val de Loire et le Mali
La coopération universitaire entre le Val de Loire et le Mali
 
Char
CharChar
Char
 

Similaire à Conference Php Web Services

hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.pptadiouf2
 
Chap01 introduction
Chap01 introductionChap01 introduction
Chap01 introductionPape Ndiaye
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPJean-Marc Fontaine
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
PHP/ExtJs experience feedback - IAV case - 1
PHP/ExtJs experience feedback - IAV case - 1PHP/ExtJs experience feedback - IAV case - 1
PHP/ExtJs experience feedback - IAV case - 1fayway
 
PHPotes: Codeigniter
PHPotes: CodeigniterPHPotes: Codeigniter
PHPotes: CodeigniterAnDaolVras
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
2013 01-08-php-maturite
2013 01-08-php-maturite2013 01-08-php-maturite
2013 01-08-php-maturiteRémi Alvado
 
Consul, un vrai couteau suisse
Consul, un vrai couteau suisseConsul, un vrai couteau suisse
Consul, un vrai couteau suisseXavierPestel
 
cours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfcours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfGroupeExcelMarrakech
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overviewSymfonyMu
 
S29 valorisation de l'existant ibm i avec php
S29   valorisation de l'existant ibm i avec phpS29   valorisation de l'existant ibm i avec php
S29 valorisation de l'existant ibm i avec phpGautier DUMAS
 
PHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_ExtensionsPHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_Extensionsjulien pauli
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOpsJeoffrey Bauvin
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another frameworkLAHAXE Arnaud
 
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014O10ée
 

Similaire à Conference Php Web Services (20)

hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
Chap01 introduction
Chap01 introductionChap01 introduction
Chap01 introduction
 
Presentation tz2018
Presentation tz2018Presentation tz2018
Presentation tz2018
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
PHP/ExtJs experience feedback - IAV case - 1
PHP/ExtJs experience feedback - IAV case - 1PHP/ExtJs experience feedback - IAV case - 1
PHP/ExtJs experience feedback - IAV case - 1
 
PHPotes: Codeigniter
PHPotes: CodeigniterPHPotes: Codeigniter
PHPotes: Codeigniter
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
2013 01-08-php-maturite
2013 01-08-php-maturite2013 01-08-php-maturite
2013 01-08-php-maturite
 
Consul, un vrai couteau suisse
Consul, un vrai couteau suisseConsul, un vrai couteau suisse
Consul, un vrai couteau suisse
 
43_pps.pdf
43_pps.pdf43_pps.pdf
43_pps.pdf
 
cours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfcours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdf
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overview
 
S29 valorisation de l'existant ibm i avec php
S29   valorisation de l'existant ibm i avec phpS29   valorisation de l'existant ibm i avec php
S29 valorisation de l'existant ibm i avec php
 
PHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_ExtensionsPHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_Extensions
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOps
 
PHP, ce truc de vieux
PHP, ce truc de vieuxPHP, ce truc de vieux
PHP, ce truc de vieux
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another framework
 
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
 

Dernier

Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionslaetitiachassagne
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxMartin M Flynn
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFEAhmam Abderrahmane
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2JeanLucHusson
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementM2i Formation
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024frizzole
 
La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniquessuser4dbdf2
 

Dernier (7)

Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositions
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptx
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFE
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changement
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024
 
La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin technique
 

Conference Php Web Services

  • 1. PHP Web Services PHP et Web Services 11 février 2010 - Master CCI - Université de Tours Guillaume Jarysta-Dautel - Devolia CEO
  • 2. PHP Web Services Plan de la présentation 1/2 1. PHP : notions d’environnement • Architecture CGI / CLI • Cron • Core et modules • Interface Apache et mod Apache • Interface OS • Interface SGBD • php.ini et .htaccess 2. PHP : notions d’architecture • Repository, Dev et Prod 3. PHP : notions de génie logiciel • Templating • Modèles de données SQL • Multilinguisme ETUDE DE CAS • Modèle objet PHP5 • devolia.org • Documentation • secure.devolia.com • API interne / externe • rienamemettre.com • Sécurité
  • 3. PHP Web Services Plan de la présentation 2/2 4. Web Services : notions d’architecture • XML-RPC, SOAP • XML et JSON • Architecture d’un listener • Web Services asynchrones : ping et callback • Sécurité d’un Web Service ETUDE DE CAS • devolia.org 5. Web Services : notions de génie logiciel en PHP • secure.devolia.com • Moteur de session • rienamemettre.com • SimpleXML • geotwitt • JSON • Gestion des en-têtes 6. Web Services : architecture avancée • Montée en version d’une API externe • Gestion de la charge
  • 4. PHP Web Services PHP professionnel ?
  • 5. PHP Notions d’environnement PHP - notions d’environnement 1. Architecture CLI / CGI Système Serveur Module d’exploitation Web CGI - Linux - Apache - PHP - Windows - Lighttpd - Perl - FreeBSD - IIS - C - ... - ... - ... Sources Module CLI - PHP : compilation à la - PHP volée - Perl - C - ... Ressources http://php.net/manual/fr/migration5.cli-cgi.php
  • 6. PHP Notions d’environnement PHP - notions d’environnement 2. Cron Système Cron Module d’exploitation CLI - Exécution - Linux périodique - PHP - Windows - Perl - FreeBSD - C - ... - ... Sources - PHP : compilation à la volée Ressources http://doc.ubuntu-fr.org/cron
  • 7. PHP Notions d’environnement PHP - notions d’environnement 3. Core et modules RESEAU CRYPTAGE SGBD GRAPHISME OUTILS COMPRES- BAS SION NIVEAU soap mcrypt mysql gd calendar xmlrpc ... pdo jpeg mbstring zlib pcntl openssl postgresql png ... ... ... ftp ... pdf curl ... kerberos ... Ressources http://php.net/manual/fr/faq.installation.php
  • 8. PHP Notions d’environnement PHP - notions d’environnement 4. Modules Apache Apache Modules Module CLI - Linux mod_ssl - Windows mod_rewrite - PHP - FreeBSD mod_proxy - Perl - ... ... - C - ... Sources - PHP : compilation à la volée Ressources http://modules.apache.org/
  • 9. PHP Notions d’environnement PHP - notions d’environnement 4. Modules Apache - exemple mod_rewrite Requête GET /romans/suskind/le_parfum.html mod_rewrite RewriteRule ^/([^/]+)/([^/]+)/([^.]+).html store.php?rayon=$1&auteur=$2&titre=$3 PHP - store.php <h1>Bienvenue dans notre rayon <?php print($_REQUEST[‘rayon‘]); ?></h1> <h2>Votre livre : <?php print($_REQUEST[‘titre‘]); ?> (<?php print($_REQUEST[‘auteur‘]); ?>)</h2>
  • 10. PHP Notions d’environnement PHP - notions d’environnement 5. Interface OS Exécution d’un programme serveur $return=exec('ln -s /home/'); print($return); pcntl $pid = pcntl_fork(); if($pid == -1){ die('Cannot fork. Too bad, I wanna fork so bad !'); } elseif($pid){ // le père print('Je suis ton père ('.posix_getpid().'), Luke ('.$pid.') !'."rn"); } else{ // le fils print('Noooon ('.posix_getpid().') !'."rn"); } Ressources http://fr.php.net/manual/fr/book.exec.php http://fr.php.net/manual/fr/book.pcntl.php
  • 11. PHP Notions d’environnement PHP - notions d’environnement 6. Interface SGBD Connexion à MySQL $link=mysql_connect('localhost','login','password'); $db=mysql_select_db('database_name', $link); Couche d’abstraction - PDO $dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2'); $count = $dbh->exec("DELETE FROM fruit WHERE couleur = 'rouge'"); print("Retourne le nombre de lignes effacées :n"); print("Effacement de $count lignes.n"); Ressources http://fr.php.net/manual/fr/book.pdo.php
  • 12. PHP Notions d’environnement PHP - notions d’environnement 7. php.ini et .htaccess Lecture de la configuration PHP phpinfo(); Droits limitatifs AuthType Basic AuthName "Password Required" AuthUserFile /www/passwords/password.file AuthGroupFile /www/passwords/group.file Require Group admins Ressources http://fr.php.net/manual/fr/configuration.php http://httpd.apache.org/docs/1.3/howto/htaccess.html
  • 13. PHP Notions d’architecture PHP - notions d’architecture 1. Repository, dev et prod dev prod - Error on - Error silent - Warning on - Warning silent - Audit on - Audit off - Debug on - Debug off Développeurs Repository - Garant de l’intégrité, de la gestion des versions, du travail collaboratif
  • 14. PHP Notions de génie logiciel PHP - notions de génie logiciel ETUDE DE CAS • Templating • Modèles de données SQL • Multilinguisme • Modèle objet PHP5 • Documentation • API interne / externe • Sécurité
  • 15. Web Services Notions d’architecture Web Services Usages • Consommation d’un service tiers • Consommation d’un service métier • Consommation d’un service critique • Consommation d’un service asynchrone • Consommation d’un service en situation de mobilité
  • 16. Web Services Notions d’architecture Web Services - notions d’architecture 1. XML-RPC, SOAP, Corba, IEC, WSDL, à façon... le choix de l’architecture • Type de besoin : privé / public • Besoin d’une vérification simplifiée de la cohérence du message • Poids moyen des échanges • Nature des consommateurs du service • Besoin de certification • Besoin en niveau d’abstraction : WSDL • Interopérabilité des Web Services Ressources http://fr.wikipedia.org/wiki/SOAP http://fr.wikipedia.org/wiki/XML-RPC
  • 17. Web Services Notions d’architecture Web Services - notions d’architecture 2. XML et JSON • Avantages de XML • Interopérabilité • Formalisme rigoureux • Parseurs multilangages • Explicitement UNICODE • Inconvénients de XML • Lourdeur des en-têtes • Rigidité du formalisme • Avantages de JSON • Interprétation simple en Javascript • Encodage / décodage intégrés à PHP 5 • Flexibilité de l’encodage • Inconvénients de XML • Parseurs généralement non-natifs • Peu robuste
  • 18. Web Services Notions d’architecture Web Services - notions d’architecture ETUDE DE CAS • Architecture d’un listener • Web Services asynchrones : ping et callback • Sécurité d’un Web Service
  • 19. Web Services Notions de génie logiciel Web Services - notions de génie logiciel ETUDE DE CAS • Moteur de session • SimpleXML • JSON • Gestion des en-têtes
  • 20. Web Services Architecture avancée Web Services - Architecture avancée • Montée en version d’une API externe • Gestion de la charge
  • 21. PHP Web Services Guillaume Jarysta-Dautel Devolia Europe +33 (0) 683 658 342 21 boulevard de Sébastopol guillaume@devolia.fr 75001 Paris - FRANCE www.devolia.fr www.jarysta.com Devolia North America 1138 Broadway, Suite 706 New York, NY 10010 – USA www.devolia.com

Notes de l'éditeur

  1. CGI - Ex&amp;#xE9;cution avec les droits du serveur web - Limitation des risques CLI - Ex&amp;#xE9;cution avec des droits d&amp;#xE9;finis - Acc&amp;#xE8;s &amp;#xE0; des ressources sensibles - Script shell - Lien Cron
  2. Cron - Ex&amp;#xE9;cution d&amp;#x2019;un script CLI &amp;#xE0; une p&amp;#xE9;riodicit&amp;#xE9; donn&amp;#xE9;e - Pas de m&amp;#xE9;canisme de s&amp;#xE9;maphore / jeton : &amp;#xE0; coder en dur - Acc&amp;#xE8;s ressources d&amp;#xE9;finies selon l&amp;#x2019;utilisateur ex&amp;#xE9;cutant la t&amp;#xE2;che
  3. Core : - Syntaxe de base - Basic I/O Modules : - Fonctionnalit&amp;#xE9;s additionnelles - Choisir ce dont on a besoin / taille du binaire / stabilit&amp;#xE9; du binaire / s&amp;#xE9;curit&amp;#xE9; des modules Pear : - Modules compl&amp;#xE9;mentaires http://php.net/manual/fr/faq.installation.php
  4. Modules Apache - Ajoute des fonctionnalit&amp;#xE9;s &amp;#xE0; la couche serveur - D&amp;#xE9;tectable par PHP (headers) mais peuvent &amp;#xEA;tre utilis&amp;#xE9;s de mani&amp;#xE8;re transparente Mod_rewrite - R&amp;#xE9;-&amp;#xE9;criture de la cha&amp;#xEE;ne &amp;#xE0; la vol&amp;#xE9;e : SEO http://modules.apache.org/
  5. Mod_rewrite - Application SEO - Lisibilit&amp;#xE9; et clart&amp;#xE9; de l&amp;#x2019;arborescence - Facilit&amp;#xE9; d&amp;#x2019;architecture logique
  6. Ex&amp;#xE9;cution - Synchrone : exec, passthru : ex&amp;#xE9;cution d&amp;#x2019;une t&amp;#xE2;che donn&amp;#xE9;e de courte dur&amp;#xE9;e - Asynchrone : pcntl : ex&amp;#xE9;cution de t&amp;#xE2;ches longues, possibilit&amp;#xE9; de forker
  7. BDD support&amp;#xE9;es : MySQL, Oracle, MS SQL, Tokyo Cabinet / Tokyo Tyrant
  8. Configuration PHP : - PHP.ini - httpd.conf - .htaccess - Fichier .php
  9. CGI - Ex&amp;#xE9;cution avec les droits du serveur web - Limitation des risques CLI - Ex&amp;#xE9;cution avec des droits d&amp;#xE9;finis - Acc&amp;#xE8;s &amp;#xE0; des ressources sensibles - Script shell - Lien Cron
  10. CGI - Ex&amp;#xE9;cution avec les droits du serveur web - Limitation des risques CLI - Ex&amp;#xE9;cution avec des droits d&amp;#xE9;finis - Acc&amp;#xE8;s &amp;#xE0; des ressources sensibles - Script shell - Lien Cron
  11. Configuration PHP : - PHP.ini - httpd.conf - .htaccess - Fichier .php
  12. Configuration PHP : - PHP.ini - httpd.conf - .htaccess - Fichier .php
  13. Configuration PHP : - PHP.ini - httpd.conf - .htaccess - Fichier .php
  14. CGI - Ex&amp;#xE9;cution avec les droits du serveur web - Limitation des risques CLI - Ex&amp;#xE9;cution avec des droits d&amp;#xE9;finis - Acc&amp;#xE8;s &amp;#xE0; des ressources sensibles - Script shell - Lien Cron
  15. CGI - Ex&amp;#xE9;cution avec les droits du serveur web - Limitation des risques CLI - Ex&amp;#xE9;cution avec des droits d&amp;#xE9;finis - Acc&amp;#xE8;s &amp;#xE0; des ressources sensibles - Script shell - Lien Cron
  16. Configuration PHP : - PHP.ini - httpd.conf - .htaccess - Fichier .php