Serveurs Web à contenu dynamique Emmanuel Cecchet INRIA Rhône-Alpes, Projet Sardes Rice University, Systems lab
Séminaire MIM ENS Lyon – 8 octobre 2002 – Web Contenu du Web de plus en plus dynamique screenshot page web ici
Séminaire MIM ENS Lyon – 8 octobre 2002 – Serveurs Web à contenu dynamique Architecture multi-tiers un serveur Web un serveur d’application une base de données
Séminaire MIM ENS Lyon – 8 octobre 2002 – Plan Technologies Benchmarks Serveurs d’applications J2EE Conclusion
Séminaire MIM ENS Lyon – 8 octobre 2002 – PHP Hypertext Preprocessor Langage de script Module intégré dans le serveur Web
Séminaire MIM ENS Lyon – 8 octobre 2002 – Exemple PHP <?php print(" Liste des regions "); $result = mysql_query("SELECT * FROM regions", $link) or die("ERREUR: La requête a échoué"); if (mysql_num_rows($result) == 0) print(" Désolé, pas de région. BD vide "); else while ($row = mysql_fetch_array($result)) { print("<a href=\"BrowseCategories.php?region=". $row["id"]."\">".$row["name"]." \n"); } mysql_free_result($result); ?>
Séminaire MIM ENS Lyon – 8 octobre 2002 – Servlets Java Basé sur Java S’exécute dans un “Servlet Container” sur une JVM JDBC: interface unique pour toutes les BDs
Séminaire MIM ENS Lyon – 8 octobre 2002 – Exemple Servlet Java public class BrowseRegions extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { out.print(" Liste des regions "); try { ResultSet rs = connection.prepareStatement("SELECT * FROM regions").executeQuery(); if (!rs.first()) out.print(" Désolé, pas de région. BD vide "); else do { print("<a href=\"BrowseCategories.php?region="+rs.getInteger("i")+ "\">"+rs.getString("name")+" \n"); } while (rs.next()); } catch (Exception e) { out.print("La requête a échoué pour la raison suivante : " +e); return; }
Séminaire MIM ENS Lyon – 8 octobre 2002 – et JSP ? Java Server Pages réponse de Sun à Microsoft ASP “scripting de servlets” Langage de script (tags JSP) Compilé en une servlet Java lors de la première exécution
Séminaire MIM ENS Lyon – 8 octobre 2002 – J2EE Java 2 Enterprise Edition Conçu pour le développement multi-tiers Découpe présentation et logique de l’application
Séminaire MIM ENS Lyon – 8 octobre 2002 – Plan Technologies Benchmarks Serveurs d’applications J2EE Conclusion
Séminaire MIM ENS Lyon – 8 octobre 2002 – Benchmarks TPC-W librairie électronique (amazon.com) charge sur la base de données RUBiS ventes aux enchères électroniques (eBay.com) charge sur le serveur d’application RUBBoS forums interactifs (slashdot.org) charge sur le serveur d’application
Séminaire MIM ENS Lyon – 8 octobre 2002 – TPCW – PHP & Servlets Débit et utilisation CPU pour le shopping mix
Séminaire MIM ENS Lyon – 8 octobre 2002 – RUBiS – PHP & Servlets Browsing mixBidding mix
Séminaire MIM ENS Lyon – 8 octobre 2002 – RUBiS – PHP & Servlets Browsing mixBidding mix
Séminaire MIM ENS Lyon – 8 octobre 2002 – EJB implementations From Servlets to Session Beans Session bean Database Web container Servlet EJB container Business logic Servlet Web container Servlet Database Presentation logic Business logic Servlet Presentation logic Business logic Presentation logic Presentation logic Session bean Business logic
Séminaire MIM ENS Lyon – 8 octobre 2002 – EJB implementations Data Access Objects separation with Entity Beans EJB container Entity Bean Database Entity Bean Entity Bean Web container Servlet Presentation logic Business logic Servlet Presentation logic Business logic
Séminaire MIM ENS Lyon – 8 octobre 2002 – EJB implementations Session façade EJB container Entity Bean Session facade Web container Session facade Database Entity Bean Entity Bean Business logic Business logic Servlet Presentation logic Presentation logic
Séminaire MIM ENS Lyon – 8 octobre 2002 – Design patterns Presentation logicBusiness logicTotal ClassesLignes de codeClassesLignes de codeClassesLignes de code Servlets only Session Beans DAO (EB CMP) Session façade
Séminaire MIM ENS Lyon – 8 octobre 2002 – RUBiS – Session beans Browsing mixBidding mix
Séminaire MIM ENS Lyon – 8 octobre 2002 – RUBiS – Results overview
Séminaire MIM ENS Lyon – 8 octobre 2002 – RUBiS – Throughput Bidding mix
Séminaire MIM ENS Lyon – 8 octobre 2002 – EJB Container design RUBiS bidding mix / Session façade
Séminaire MIM ENS Lyon – 8 octobre 2002 – Plan Technologies Benchmarks Serveurs d’applications J2EE Conclusion
Séminaire MIM ENS Lyon – 8 octobre 2002 – PHP, Java Servlets ou EJB ? PHP idéal pour de petits projets pas de typage, APIs ad-hoc pour les BD Servlets programmation objet (JSP pour faire du script) JDBC pour l’accès aux BDs EJB pour les gros projets développés par n-tiers isolation de la présentation et de la business logic service de persistence peu performant en EJB 1.1
Séminaire MIM ENS Lyon – 8 octobre 2002 – Perspectives RUBiS code source et articles disponibles sur plateforme de test pour les technologies de serveurs Web à contenu dynamique contributions bienvenues JOnAS code source et documentation sur support du clustering pour passage à l’échelle On embauche !!! évaluation de performances grappes de bases de données en Java (C-JDBC) pour plus d’info voir ou