280 likes | 337 Vues
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 CodeWise Community Member.
E N D
Symétrique de l’ Interopérabilité PHP .NET Grégory Renard - Alias Rédo Directeur Développement Wygwam sarl - http://www.wygwam.comAuteur de nombreux articles .NET sur www.asp-php.net (Rédo) Microsoft MVP Visual Developer ASP - ASP.NET, Microsoft CodeWise 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)
RoadMap • 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éfinitionL’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 .NET with ASP.NET PHP pages running on most major web servers PHP and Apache Presentation Web Forms Server Controls Code-Behind. ASP.NET IIS C#, VB.NET, …Assembly ADO.NET. Can still use COM+ Components. Business Logic CLR PHP5 Model Object Data MySQL common, but support for most databases MySQL SQL Server 2000 Stored Procedures OpenXML.
.NET PHP Platform Architectures des technologies • Les couplages Couplage Fort 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 que 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 que 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
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) • PHP4 : disponibles pour les versions Windows de PHP • PHP5 : 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 SafeArrays ("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 – PHP5 - Mono 1.0 • Définition : La classe DOTNET sous PHP5 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") • PHP5 : module EXPERIMENTAL, lesupport .NET requiert PHP 5 et l'exécutable .NET • Sources • http://www.php.net/manual/fr/ref.com.php • http://www.zend.com/php5/articles/php5-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) • PHP4 : depuis la version 4.1.0, non activée par défaut • PHP5 : 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 : NuSOAP) • 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. • Sources • http://dietrich.ganx4.com/nusoap/index.php • http://developpeur.journaldunet.com/tutoriel/php/030321php_serviceweb1.shtml • http://www.phpbuilder.com/columns/kramberger20031226.php3?page=1 Source : http://www.journaldunet.com/encyclopedie
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 WinForms 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.HttpWebRequest • System.Net.HttpWebResponse • Sources • http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfSystemNet.asp • http://www.dotnet247.com/247reference/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. • .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/CodeBank.aspx?codeType=webservices Source : http://www.journaldunet.com/encyclopedie
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 • 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
Solutionsexotiques émergeantes • Add-In J2EE VS.NET MainSoft • 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.corporate6/modules/wfsection/index.php?category=12 • http://www.jcxsoftware.com/jcx.corporate6/modules/wfsection/article.php?articleid=35&PHPSESSID=4eddab2285a1449aeaf8ab89c6d13e44 • 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 • PHP5 • http://www.php.net/downloads.php • Manuel PHP4 – PHP5 • http://www.php.net/manual/fr/index.php • http://www.php.net/download-docs.php • Install de php5 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/php5-agregateur_rss.php?page=2 • Communautés • http://www.phpfrance.com • http://www.asp-php.net • http://www.codes-sources.com