Symtrique de l Interoprabilit PHP NET Grgory Renard
Symétrique de l’ Interopérabilité PHP . NET Grégory Renard - Alias Rédo Directeur Développement Wygwam sarl - http: //www. wygwam. com Auteur de nombreux articles. NET sur www. asp-php. net (Rédo) Microsoft MVP Visual Developer ASP - ASP. NET, Microsoft Code. Wise Community Member
La communauté www. asp-php. net Apprendre en douceur les langages majeurs du Web dynamique … ni catégoriquement pour l'un, ni farouchement contre l'autre ! Didier Yver (Fondateur ASP-PHP. NET)
La Wyg. Team
Road. Map • Interopérabilité ? !? – – • Contexte Informations en ligne Définition & objectifs Architecture des technologies Symétrie de l’interopérabilité PHP . NET – – Les couplages Définition Couplages, Fort & Lâche De. NET à PHP (. NET esclave, PHP maître) De PHP à. NET (PHP esclave, . NET maître) • Retour d’expérience… l’Interopérabilité au quotidien • Solutions exotiques émergeantes • Références & Liens • Conclusion
Interopérabilité ? !? Contexte – Élargissement des systèmes d’informations de l’entreprise et diminution de sa maîtrise (partenariats, acquisitions, …) – Élargissement des systèmes d’informations au-delà des limites de l’entreprise (Extranets collaboratifs, diffusion de l’information en temps réel, …) – Multiplication des technologies du marché (Hétérogénéité) – …
Interopérabilité ? !? Informations en ligne Google : « définition interopérabilité » – Capacité qu'ont deux systèmes de se comprendre l'un l'autre et de fonctionner en synergie. Contraire : incompatibilité. (www. tout-savoir. net) – L'interopérabilité est la capacité qu'ont deux systèmes de se comprendre l'un l'autre et de fonctionner en synergie. L'interopérabilité rassemble des moyens logiciels et matériels. (www. laboratoire-microsoft. org) – Aptitude de deux ou plusieurs systèmes (logiciels ou matériels) à fonctionner ensemble en utilisant des standards communs. (www. journaldunet. com)
Interopérabilité ? !? • Définition L’interopérabilité consiste à partager et utiliser conjointement des fonctionnalités d’applications de technologies différentes. • Objectifs – Communiquer le plus simplement possible en éliminant la complexité et la diversité des technologies. – « Exploiter le meilleur des deux technologies » – …
Architecture des technologies PHP Platform Presentation Business Logic PHP and Apache . NET with ASP. NET PHP pages running on most major web servers PHP 5 Model Object Data My. SQL common, but support for most databases ASP. NET IIS CLR SQL Server 2000 Web Forms Server Controls Code-Behind. C#, VB. NET, … Assembly ADO. NET. Can still use COM+ Components. Stored Procedures Open. XML.
Architectures des technologies • Les couplages Couplage Fort PHP Platform . NET Couplage Lâche
Symétrie de l’interopérabilité PHP . NET • Définition Couplages, Fort & Lâche – Couplage : « Qualifie la manière dont deux ou plusieurs systèmes interagissent » – Couplage Fort (tightly coupled) • Indique les systèmes sont dépendant les uns des autres. • Comme le fonctionnement d'un serveur de données est intimement lié au processeur central auquel il est associé. – Couplage Lâche (loosely coupled) • Indique les systèmes sont reliés par un réseau de communication mais qu'ils poursuivent leur propre logique de fonctionnement. • Ex : des PC reliés par un réseau local. Source : http: //www. journaldunet. com/encyclopedie
Symétrie de l’interopérabilité PHP . NET Maître Esclave PHP . NET • Couplage fort . NET – Extension COM - DCOM – Extension. NET – PHP 5 - Mono – PHP# / • Couplage lâche – XML-RPC ou REST –Services Web (ex: Nu. SOAP) • Couplage fort – Mono 1. 0 – PHP# PHP / • Couplage lâche – XML-HTTP – Services Web
Symétrie de l’interopérabilité PHP . NET Maître Esclave PHP . NET • Couplage fort . NET – Extension COM - DCOM – Extension. NET – PHP 5 - Mono – PHP# / • Couplage lâche – XML-RPC ou REST –Services Web (ex: Nu. SOAP) • Couplage fort – Mono 1. 0 – PHP# PHP / • Couplage lâche – XML-HTTP – Services Web
De. NET à PHP (. NET esclave, PHP maître) • Couplage fort – Extension COM - DCOM • Définition : Component Object Model - c'est une couche orientée objet (et services associés) au dessus de DCE RPC (un standard libre) qui défini une convention de nommage commune qui permet à un code écrit en n'importe quel langage de communiquer avec du code écrit dans un autre langage, sous peu que ces deux langages soient compatibles avec COM (ex : utiliser Ms Word) • PHP 4 : disponibles pour les versions Windows de PHP • PHP 5 : nouvelles fonctionnalités – Accédez aux tableaux multi-dimensionnels ou aux propriétés COM qui requièrent plusieurs paramètres comme si vous accédiez à un tableau – Bouclez sur les Safe. Arrays ("vrais" tableaux) en utilisant la structure de contrôle • Sources – http: //www. php. net/manual/fr/ref. com. php
De. NET à PHP (. NET esclave, PHP maître) • Couplage fort – Extension. NET – PHP 5 - Mono 1. 0 • Définition : La classe DOTNET sous PHP 5 vous autorise d'instancier une classe depuis un ensemble. NET et d'appeler ces propriétés ainsi que d'accéder à ces propriétés. Sous OS Windows & Linux – Mono 1. 0 • $obj = new DOTNET("assembly", "classname") • PHP 5 : module EXPERIMENTAL, le support. NET requiert PHP 5 et l'exécutable. NET • Sources – http: //www. php. net/manual/fr/ref. com. php – http: //www. zend. com/php 5/articles/php 5 -dotnet. php – http: //www. lephpfacile. com/manuel_php/ref. com. php – http: //www. lephpfacile. com/manuel_php/class. dotnet. php
De. NET à PHP (. NET esclave, PHP maître) • Couplage fort – PHP# (Prototype) • Définition : Compilateur IL (Intermediate Language) PHP • PHP # compilateur • « mono. PHP. Variable. Object » • … PHP again uses the classic Bison Parser, as the Zend engine is all in C, so this combination is fast and suitable. In Mono, a Tool called Jay is used, this is a C program that can generate Java or C# code, (obviously in Mono it's C#)… • Sources – http: //www. akbkhome. com/wiki. php/Projects/PHP_Sharp
De. NET à PHP (. NET esclave, PHP maître) • Couplage lâche – XML-RPC ou REST • Définition : Protocole permettant d'invoquer un objet distant en fournissant les paramètres nécessaires à l'appel dans un message au format XML et en utilisant le moyen de communication HTTP. La réponse est également renvoyée dans un format XML. • REST : Representational State Transfer (… art Éric van der Vlist, ZDNet) • PHP 4 : depuis la version 4. 1. 0, non activée par défaut • PHP 5 : module est EXPERIMENTAL • Sources – http: //www. php. net/manual/fr/ref. xmlrpc. php – http: //www. xmlrpc. com/
De. NET à PHP (. NET esclave, PHP maître) • Couplage lâche – Services Web (ex : Nu. SOAP) • Définition : Application web pouvant interagir dynamiquement avec d'autres programmes en utilisant des protocoles d'échanges basé sur XML comme SOAP, XML-RPC ou XMLP. Source : http: //www. journaldunet. com/encyclopedie • Sources – http: //dietrich. ganx 4. com/nusoap/index. php – http: //developpeur. journaldunet. com/tutoriel/php/030321 php_se rviceweb 1. shtml – http: //www. phpbuilder. com/columns/kramberger 20031226. php 3 ? page=1
Symétrie de l’interopérabilité PHP . NET Maître Esclave PHP . NET • Couplage fort . NET – Extension COM - DCOM – Extension. NET – PHP 5 - Mono – PHP# / • Couplage lâche – XML-RPC ou REST –Services Web (ex: Nu. SOAP) • Couplage fort – Mono 1. 0 – PHP# PHP / • Couplage lâche – XML-HTTP – Services Web
De PHP à. NET (PHP esclave, . NET maître) • Couplage fort – Mono 1. 0 - NET pour Unix et Linux • Définition : Mono est un projet qui a pour but de développer un framework. NET alternatif complet, disponible pour les plate-formes Linux et Windows (Mac et Bsd par extension). Il a été lancé par l'équipe Ximian • Lancé le 9 juillet 2001 et géré par Miguel de Icaza, vice-président du développement chez Novell, qui a créé Mono (et co-fondé Ximian). • Mono 2. 0 inclura un support natif des Win. Forms et du Visual Basic. Net ainsi qu’une mise à jour des API. Net • Une application. Net créée sous Linux ou Windows tournera indifféremment sur l’un ou l’autre OS • Sources – http: //www. go-mono. org – http: //www. gotmono. com
De PHP à. NET (PHP esclave, . NET maître) • Couplage fort – PHP# (Prototype) • Définition : Compilateur IL (Intermediate Language) PHP • PHP # compilateur • « mono. PHP. Variable. Object » • … PHP again uses the classic Bison Parser, as the Zend engine is all in C, so this combination is fast and suitable. In Mono, a Tool called Jay is used, this is a C program that can generate Java or C# code, (obviously in Mono it's C#)… • Sources – http: //www. akbkhome. com/wiki. php/Projects/PHP_Sharp
De PHP à. NET (PHP esclave, . NET maître) • Couplage lâche – XML-HTTP • Définition : Protocole permettant d'invoquer un objet distant en fournissant les paramètres nécessaires à l'appel dans un message au format XML et en utilisant le moyen de communication HTTP. La réponse est également renvoyée dans un format XML. • . NET – System. Net. Http. Web. Request – System. Net. Http. Web. Response • Sources – http: //msdn. microsoft. com/library/fre/default. asp? url=/library/FRE/cpref/ html/frlrf. System. Net. asp – http: //www. dotnet 247. com/247 reference/msgs/25/125779. aspx – http: //www. xmlforasp. net
De PHP à. NET (PHP esclave, . NET maître) • Couplage lâche – Services Web • Définition : Application web pouvant interagir dynamiquement avec d'autres programmes en utilisant des protocoles d'échanges basé sur XML comme SOAP, XML-RPC ou XMLP. Source : http: //www. journaldunet. com/encyclopedie • . NET – System. Web. Services • Sources – http: //msdn. microsoft. com/library/fre/default. asp? url=/library/FRE/cpref/ html/frlrfsystemwebservicesprotocols. asp – http: //www. microsoft. com/france/msdn/technos/webservices. mspx – http: //www. xmlforasp. net/Code. Bank. aspx? code. Type=webservices
Interopérabilité au quotidien • L’interopérabilité (lâche) au quotidien entre les communautés www. asp-php. net et www. codes-sources. com – Interopérabilité lâche par flux RSS. • Simple à mettre en place • Rapide, Efficace &Fiable • Peu de contraintes techniques • Blogs ; ) – http: //blogs. developpeur. org/redo/Rss. aspx – http: //sig. levillage. org/index. php? p=543
Retour d’expérience… http: //www. asp-php. net
Retour d’expérience… http: //www. codes-sources. com
Solutions exotiques émergeantes • Add-In J 2 EE VS. NET Main. Soft – convertir une simple application ASP. NET en un servlet Java debuggable le tout devant ainsi être déployé sur une plateforme Tomcat – http: //blogs. developpeur. org/redo/archive/2004/07/01/1945. aspx • Add-In VS. PHP (Intégration à VS. NET) & VS. PHP Debugger – Contrary to other PHP IDE products, VS. Php leverages the familiar interface of Microsoft Visual Studio. Net allowing PHP developers leverage all the features Visual Studio. Net provides. No need to learn a new IDE interface or tools. – http: //www. jcxsoftware. com/jcx. corporate 6/modules/wfsection/index. php? categor y=12 – http: //www. jcxsoftware. com/jcx. corporate 6/modules/wfsection/article. ph p? articleid=35&PHPSESSID=4 eddab 2285 a 1449 aeaf 8 ab 89 c 6 d 13 e 44 • Interop par Tiers : MCDBR
Conclusion • Interopérabilité : – Évolution constante de PHP • Sur extensions et connecteurs • Sur le support des Web Services –. NET Interop en mode Natif – Evolution du projet Mono – Simplification de la communication entre systèmes hétérogènes, élimine les complexités et les diversités technologiques. « Exploitez le meilleur des deux technologies »
Références & Liens • PHP 5 – http: //www. php. net/downloads. php • Manuel PHP 4 – PHP 5 – http: //www. php. net/manual/fr/index. php – http: //www. php. net/download-docs. php • Install de php 5 sous IIS – http: //www. asp-php. net/ressources/bouts_de_code. php? codid=60 • Projet Mono – http: //www. go-mono. org • Faire un agrégateur en PHP 5 – http: //www. asp-php. net/scripts/asp-php/php 5 -agregateur_rss. php? page=2 • Communautés – http: //www. phpfrance. com – http: //www. asp-php. net – http: //www. codes-sources. com
- Slides: 28