Home

Cours 6 : TCP java.net Patron MVC & Procuration

image

Contents

1. m invoke null new Object args ESIEE e De Sun Annexe 6 Brazil Framework www experimentalstuff com Exemple JNEWS http jfod cnam fr jnews HS L database engine http http Clients Bluej http www bluej org extensions submitter submitter html Clients standard un navigateur m thode POST e Interrogation de la base http jfod cnam fr jnews interrogation resultats html uv NSY102 amp tp tp_publish_q1 amp outil junit3 ESIEE 85 Exemple JNEWS o e Cote client Depuis BlueJ outil submit puis tp evaluation e tp_publish_questionl_evaluation file include class transport http jfod cnam fr jnews junit3 AllTests html auteur lt field aut eur gt amp matricule lt field matricule gt amp uv NSY102 amp tp tp_publish_gl amp client blue e Outil d velopp par l universit du Kent http www bluej org extensions submitter submitter html ESIEE DA Exemple JNEWS ca e C t serveur un extrait du fichier AllTests html lt exec command cmd prepend resultat timeout 120000 gt lt if name resultat code value 1 gt lt b gt des fichiers ou m thodes attendus absents ou que vous avez renommteacute s lt br gt x Si vous pensez que c est une erreur de JNEWS lt sql eval gt insert into JOURNAL JNEWS values S date time lt sql gt lt sendmail from JNEWS_exec to S mail admin JNEWS body S body subject http_JNEW
2. Le contexte Clients Java uniquement Serveur en java e rmi serveurDeNoms service s une JVM avec le service rmi e JRMP Java Remote Method Protocol Appels distants protocole http Clientl Client2 navigateur serveur Le contexte Client Java application comme applette ou autres Un navigateur Serveur en java ou autres e http serveur index html s Standard universel ESIEE Impl mentations en Java e Paquetage java net Principales classes e ServerSocket e Socket e InetAddress URLConnection Quelques lignes de sources suffisent e Paquetages java rmi et java rmi server Une solution tout java autre support ESIEE usage de java net TCP IP Clientl Serveur e 2 classes essentielles C t Serveur java net ServerSocket M thode accept sur une instance de la classe ServerSocket C t Client java net Socket e Envoi sur une instance de la classe Socket de donn es ESIEE ESIEE Connexion Principes Le Serveur attend une requ te sur son port ServerSocket server new ServerSocket port Socket socket server accept Des la connexion tablie une instance de la classe Socket est engendr e sur un port temporaire tablir une connexion par le client est effectu e par Socket s new Socket Serveur port ESIEE 3 exemples Serveur et client 1 Au protocole java e les instanc
3. send out file else 76 Annexe 2 envoi du document simplifi private void send DataOutputStream os File file throws Exception try BufferedInputStream in new BufferedInputStream new FileInputStream file os write HTTP 1 0 200 OK r n getBytes os write new String Content Length new Long file length r n getBytes os write new String Content Type guessType file getPath r n r n getBytes byte buf new byte 1024 int len while len in read buf 0 1024 1 os write buf 0 len in close catch FileNotFoundException fnfe 77 ESIEE Annexe 3 http Test unitaires s HttpUnit http httpunit sourceforge net e Exemple ici int gr a BlueJ public void testApplette throws Exception WebConversation conversation new WebConversation WebRequest request new GetMethodWebRequest httpi fLocalbost 38100 test ctest t tu0 33 WebResponse response conversation getResponse request assertEquals r ponse lt b gt ok lt b gt response getText e httpunit jar et Tidy jar sont dans lt BlueJ_HOME gt lib userlib ou bien dans le r pertoire libs de votre projet e Voir aussi jwebunit http jwebunit sourceforge net ESIEE Ma Annexe 4 Java Web Start e T l chargement depuis le Web d applications Java certifi es e Assurance de toujours disposer de la derni re version e Principe
4. Simple 10 lignes Appel synchrone Le contenu de la requ te respecte une grammaire un protocole Client comme serveur en java ou autres telnet comme outil de mise au point tcpview ou autres utile Exemple 3 e Le protocole HTTP Les m thodes GET POST e Mise en uvre d mo Usage d un client telnet sur une site existant Une application Java cliente Un serveur en java Un navigateur comme client Une application cliente en java ESIEE ESIEE Protocole HTTP s HyperText Transfer Protocol Au dessus de TCP e Les M thodes GET index html HTTP 1 0 HEAD POST PUT DELETE TRACE CONNECT Voir http www w3 org Protocols rfc2616 rfc2616 sec9 html C t serveur accept ServerSocket listen new ServerSocket HTTP PORT while stopped try new this Connexion listen accept traitement catch Exception e listen close Ici chaque requ te engendre la cr ation d une instance de la classe interne Connexion Chaque instance cr e engendre son tour un Thread La m thode accept est bloquante ESIEE C t serveur accept peut tre ServerSocket listen new ServerSocket HTTP PORT listen setSoTimeout TIME OUT while stopped 1 try new Connexion listen accept catch SocketTimeoutException eil d lai de garde chu ou le d lai a chu catch Exception eil listen
5. 2 Pipe and Filter i Copyright 2005 Michael Weiss COMP 4104 Fall 2005 http www scs carleton ca weiss courses 4104 lectures 06 Review 1 paf 69 ESIEE Le patron HeartBeat e Le serveur est il en tat de fonctionner e Requ te r guli re et d cision en cons quence ou e Si la r ponse d passe une certaine dur e le serveur est consid r comme en panne e Ou bien un bail est allou la ressource Un source de HeartBeat le serveur est il actif public class HeartBeat implements Callable lt Void gt private Map lt String Future lt String gt gt observable private Map lt String Future lt String gt gt unaccessible private boolean stopped private final ExecutorService executor private final int period public HeartBeat int period this observable new HashMap lt String Future lt String gt gt this unaccessible new HashMap lt String Future lt String gt gt this executor Executors newCachedThreadPool 1 this period period executor submit this public synchronized void addObservable String url this observable put url null ESIEE i Un source suite public synchronized Void call while stopped try attente de la p riode Thread sleep period count for String obs observable keySet observable put obs executor submit new RequeteHTTP obs Retrait de tous les inaccessibles Iterator lt String gt it
6. jfod cnam fr index html URLConnection connection url openConnection connection setDolnput true connection setDoOutput true PrintWriter out new PrintWriter connection getOutputStream out print listAll on out close BufferedReader in new BufferedReader new InputStreamReader connection getInputStream String inputLine in readLine while inputLine null System out printin inputLine inputLine in readLine in close ESIEE Classes utiles e InetAddress Adresse IP en clair e URL Pour Uniform Resource Locator sur le www e URLConnection Une classe abstraite super classe de toutes les classes tablissant un lien entre une application et une URL Sous classes e HttpURLConnexion JarURLConnection Patron Fabrique afin d crire son propre gestionnaire de protocole e Voir http monge univ mlv fr roussel RESEAUJAVA java url2 html e M thode URLConnection setContentHandlerFactory ESIEE 36 ESIEE Patron Fabrique au bon protocole e Un protocole propri taire http java sun com developer onlineTraining protocolhandlers http monge univ mlv fr roussel RESEAUJAVA java url2 html ESIEE java net InetAddress e L adresse IP de la machine locale InetAddress getLocalHost getHostAddress e Un client sur la m me machine que le serveur new Socket InetAddress getLocalHost 8999 URL en java java
7. new RequeteHTTP commande addObserver url urlObservateur ESIEE RequeteHTTP en Java un classique Callable private class RequeteHTTP implements Callable lt String gt private String result private String parametres public RequeteHTTP String param tres this param tres param tres public String call try URL url new URL urlObserv param tres URLConnection connection url openConnection connection setDoInput true BufferedReader in new BufferedReader new InputStreamReader connection getInputStream String inputLine in readLine while inputLine null result result inputline inputLine in readLine in close catch Exception e return result ESIEE 55 Un usage un test e Deux applettes serveurs Web deviennent des observateurs public void Tes tDeuxObservateurs 4 ProcurationHTTP proxy new ProcurationATTP nip jfod cnam fr 8799 coserver him proxy addObserver http localhost 8100 tests test obs1 proxy addObserver http localhost 8200 tests test obs2 ESIEE SP MVC rappel Model encansulates application state Responds 10 State queries Exposes application Iunetioneality Notifies views of changes a View s Controller Renders the models Defines application behavior Mans user actions to Hequests Updates from models L i TE dA LR User gestures lo con
8. observable keySet iterator while it hasNext String obs null try obs it next observable get obs get catch Exception e it remove unaccessible put obs null retenter les acc s toutes les k period catch InterruptedException ie return null ESIEE de Conclusion e Programmation R seau avec Java Simple e MVC distribu A regarder de plus pr s Patrons Reactor et Acceptor e java nio Depuis le j2se 1 4 rmi Remote Method Invocation Une solution tout java performante un autre support ESIEE ESIEE Annexes Derri re un proxy Un exemple d analyse du bon protocole Junit amp http httpjunit Java Web Start URLClassLoader Brazil de sun JNEWS JRMP le chat en rmi Annexe 1 derri re un proxy java cp Dhttp proxyHost cache esiee fr Dhttp proxyPort 3128 ClientHTTP ou public static void setHttpProxy String proxyHost int proxyPort Properties prop System getProperties prop put proxySet true prop put http proxyHost proxyHost prop put http proxyPort Integer toString proxyPort ESIEE ESIEE Annexe 2 analyse du contenu simplifi A chaque requ te String request in readLine StringTokenizer st new StringTokenizer request String token st nextToken if token equals GET String paramUrl st nmextTokenl File file new File paramUrl
9. close M thode accept avec d lai de garde exception SocketTimeoutException l ch ance ESIEE C t serveur chaque Connexion un Thread public class Connexion extends Thread public Connexion Socket s this s s start public void run cry BufferedReader is new BufferedReader new InputStreamReader s getInputStream DataQUrputorream os new DataOutputStream s getOutputStream analyse du contenu au bon protocole HTTP envoi du document ESIEE Sch ma avec Un Pool de Thread class WebServer 2004 JavaOneSM Conference Session 1358 Executor pool Executors newFixedThreadPool 7 public static void main String args ServerSocket socket new ServerSocket 80 while true final Socket s socket accept Runnable r new Runnable public void run BufferedReader is new BufferedReader new InputStreamReader s getInputStream DataOutputStream os new DataOutputStream s getOutputStream analyse du contenu au bon protocole HTTP envoi du document bi pool execute r 30 ESIEE ESIEE Requ te GET avec telnet Un client telnet et un site du Cnam telnet jfod cnam fr 80 e GET index html HTTP 1 0 frappe sans cho HTTP 1 0 200 OK Last Modified Thu 08 Feb 2007 14 55 29 GMT Date Thu 08 Mar 2007 10 33 55 GMT Server Brazil 1 0 Content Length 7624 Content Type text html Connection cl
10. de mise en uvre C t serveur e Signer une archive Java jar e Proposer le fichier JNLP Java Network Launch Protocol e Installer ce fichier et cette archive sur un serveur C t client Depuis un navigateur t l charger le fichier JNLP e Ou depuis une console ex cuter l outil gt javaws e Une ic ne raccouci sous windows Une comparaison des dates entre la version locale et distante est effectu e ESIEE Exemple le serveur au protocole maison import java net Socket import java net ServerSocket import java io public class Serveur public static void main String args throws Exception ServerSocket serveur new ServerSocket 5000 while true Socket socket serveur accept BufferedReader in new BufferedReader new InputStreamReader socket getInputStream String cmd in readLine parle DataOutputStream out new DataOutputStream socket getOutputStream if cmd equals parle out write bonjour n getBytes else out write commande inconnue n getBytes socket close 1 G n ration de l archive serveur jar Le fichier MANIFEST MF contient ces 3 lignes Manifest Version 1 0 Class Path Main Class Serveur ESIEE 80 Exemple suite e Cr er une signature keytool genkey alias jmd keypass nsy102 e Signer cette archive jarsigner server jar jmd e Proposer le fichier JNLP ici serveur jnlp lt jnip spec 1 0
11. net URL e URL gamelan new URL http www gamelan com e URL gamelan new URL http www gamelan com pages e URL gamelanGames new URL gamelan Gamelan game html URL gamelanNetwork new URL gamelan Gamelan net html e URL gamelanNetworkBottom new URL gamelanNetwork BOTTOM public class ParseURL public static void main String args throws Exception URL aURL new URL http java sun com 80 docs books tutorial lindex html name networking DOWNLOADING System out printIn aURL getProtocol http System out printin aURL getAuthority Il java sun com 80 System out printin aURL getHost java sun com System out printin aURL getPort Il 80 System out printin aURL getPath II Idocs books tutorial index html System out printin aURL getQuery II name networking System out printIn aURL getFile II Idocs books tutorial index html name networking System out printin aURL getRef II DOWNLOADING Extrait de http java sun com docs books tutorial networking urls creatingUrls html ESIEE ba ESIEE En r sum Classe d acces aux informations ind pendante du protocole choisi Lecture criture en 7 tapes Apr s avoir cr l URL Obtenir instance URLConnection Installer les capacit s en sortie de cette instance de URLConnection Ouvrir le flot en entree Obtenir le flot en sortie Ecrire sur ce flot Fermer celui ci SE A ee Protocole propri t
12. Cours 6 TCP java net Patron MVC amp Procuration jean michel Douin douin au cnam point fr version 2 Octobre 2007 Notes de cours ESIEE Sommaire pour les patrons e Une illustration du mod le de conception MVC Un Chat sur le web e Proxy le retour ESIEE Les Patrons e Classification habituelle Cr ateurs e Abstract Factory Builder Factory Method Prototype Singleton Structurels Adapter Bridge Composite Decorator Facade Flyweight Proxy Comportementaux Chain of Responsability Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor ESIEE Sommaire e TCP IP uniquement UDP un autre supporti Serveur et clients java net ServerSocket java net Socket e Architectures respectives Protocole java Serializable Protocole maison proprietaire Protocole HTTP e Serveur Web Usage du patron PoolThread Applette e MVC distribu une esquisse Patrons Reactor amp Acceptor java nio ServerSocketChannel java nio SocketChannel une introduction breve e Le Patron HeartBeat e Annexes Java Web Start Junithttp ESIEE Bibliographie utilis e e Design Patterns catalogue de mod les de conception r utilisables de Erich Gamma Richard Helm Ralph Johnson John Vlissides Gof95 International thomson publishing France Java et les r seaux http java sun com docs bo
13. S Erreur balise exec gt ESIEE E
14. aire a l aide du patron fabrique Derri re un proxy voir en annexe Architecture mise en oeuvre r partition t l chargement maintenance e Un client du Web e l aide d un navigateur Applet amp serveur Application Java s En application URLClassLoader voir en annexe Java Web Start un exemple en annexe ESIEE Applette rappels http serveur Applette JVM de class Un navigateur 1 L applette est t l charg e e Les fichiers class sont demand s au fur et mesure e Une archive peut tre t l charg e 2 Des contraintes de s curit sont install es par d faut e Modifiables mais peu recommand e Un navigateur ou bien l outil appletviewer e appletviewer http machine_distante tp tp1 html ESIEE 42 ESIEE L Applette contient un serveur Web f http serveur Applette JVM de class Un navigateur L applette t l charg e contient un serveur HTTP Le navigateur h berge donc un serveur Web c t client Attention un seul client est possible e Le serveur depuis lequel l applette est issue et en localhost avec la strat gie de s curit standard qu il n est pas recommand de modifier rappel 43 L applette en d mo ici port 8100 AppletteServeurWeb Applet Mozilla Firefox Fichier Edition Affichage Historique Marque pages Outils 3 lt a N gt X e Ka gh File H NSY102 appletteServeurWeb AppletteServ
15. c un d lai de garde Socket Un thread a chaque connexion Usage d un d un pool de Thread Un Serveur en quelques lignes de Java e Bien mais ESIEE Bien mais D gradation des performances si le nombre de clients cro t e Couplage fort connexion traitement Un thread est engendr chaque requ te pour le traitement e Sequence typique read gt decode gt traitement gt encode gt write __handler gt gt CED in i n GED Cra Gc me rc ind Sch ma extrait de http gee cs oswego edu dl cpjslides nio pdf e Une solution D coupler la connexion du service a effectuer Permettre un parall lisme plus fin ESIEE 67 Une proposition Patrons Reactor et Acceptor 9 ke Esseg RP Reactor d dispatch e Couplage faible connexion traitement ESIEE Grain de parall lisme plus fin Chaque t che est un processus non bloquant Pour en savoir plus http gee cs oswego edu dl cpjslides nio pdf ESIEE R sum d un Serveur Web possible Web Server Design Reactor Reactor AAA registerHandier removeHandler dispatch Acceptor 4 getRequest getResponse Acceptor I WebServer i in e accepti doGet start open i run L _ _ _ _ _ __ _ _
16. codebase http jfod cnam fr NSY102 serveurs href serveur jnlp gt lt information gt lt title gt Serveur Maison NSY102 lt title gt lt vendor gt Cnam NSY102 lt vendor gt lt description gt Serveur maison lt description gt lt description kind short gt dis bonjour lt description gt lt offline allowed gt lt information gt lt security gt lt all permissions gt lt security gt lt resources gt lt j2se version 1 5 gt lt jar href serveur jar gt lt resources gt lt application desc main class Serveur gt lt jnip gt ESIEE 81 Exemple fin Il suffit de cliquer ici http ifod cnam fr NSY102 serveurs serveur jnlp Ou bien depuis une console javaws http jfod cnam fr NSY102 serveurs serveur jnlp Tests avec un client telnet par exemple telnet localhost 5000 En r sum Java Web Start Voir le mode d emploi http jfod cnam fr tp_cdi jnlp Et aussi http ava sun com j2se 1 5 0 docs tooldocs windows keytool html htip ragingcat developpez com ava outils keytool ul htto java sun com f2se 1 5 0 docs tooldocs windows jarsigner html ESIEE ESIEE Annexe 5 URLClassLoader son propre chargeur de classe ClassLoader loader new MyClassLoader URLClassLoader urlLoader URLClassLoader newlnstance urls loader Class c urlloader loadClass program par introspection recherche de la m thode main Method m c getMethod main new Class args getClass
17. es transmises implementent java io Serializable 2 Au protocole maison e Le serveur ne conna t que la commande parle et r pond bonjour Tout autre commande est ignor e 3 Au protocole http e Seule la m thode GET index html HTTP1 0 est possible e Un sous ensemble donc En TCP un serveurtifodenans protocole java public class Serveur public static void main String args throws Exception ServerSocket serveur new ServerSocket 5000 while true Socket socket serveur accept attente active d un client analyse de la requ te ObjectInputStream ois new ObjectInputStream socket getInputStream Object obj ois readObject r ponse ObjectOutput Stream oos new ObjectOutputStream socket getOutputStream oos writeObject obj toString socket close ESIEE En TCP le Client protocole java e serveur jfod public class Client public static void main String args throws Exception ouverture d une connexion TCP Socket socket new Socket jfod cnam fr 5000 ObjectOutputStream oos new ObjectOutputStream socket getOutputStream envoi vers le serveur de cette requ te SortedSet lt String gt 1 new TreeSet lt String gt l add TCP l add essai oos writeObject 1 lecture de la r ponse retourn e ObjectInputStream ois new ObjectInputStream socket getInputStream System out println le serveur
18. eurWeb html Site de t l chargement D buter avec Firefox EX Als une JNEWS Google Ault voir les assertions AppletteServeurWeb Applet i 27 0 0 1 _test lt lt lt appletteCommeServeunVeb gt gt gt 2 Applette e Cette applette Serveur Web affiche l adresse IP du client et la valeur du param tre test retourne au client lt b gt ok lt b gt ESIEE ka ESIEE L applette en d mo suite dition Affichage Historique Marque pages Outils lt a v gt e Ig gh http flocalhost 8100 test test appletteCommeServeurWeb el E GP D buter avec Firefox E laune JNEWS Google Ault voir les assertions rr requ te Le r sultat de la requ te lt b gt ok lt b gt Le source ici http ifod cnam free fr appletteServeurWeb L applette est ici http ifod cnam free fr appletteServeurWeb AppletteServeurWeb html Une requ te possible http localhost 8100 test test succes Source de l applette un extrait public class AppletteServeurWeb extends JApplet implements Runnable public static final int TIME_OUT 500 private Thread local private String urlPrefix test private int port 8100 public void init JRootPane rootPane this getRootPane IHM et param tres local new Thread this local start public void run ServerSocket listen new ServerSocket this port listen setSoTimeout TIME OUT while local isInterrupted Socke
19. euxi me essai Patron Mod le Vue Contr leur ESIEE ESIEE Observateur Observ l original e notification stereotypes stereotypes Subject Observer abstract observers interface Attach observer Observer void Update abstract Detach observer Observer void Notifyf W Notifs for all o on observers o Update stereotype ConcreteSubject stereotype ConcreteObserver Update subjectState State GetState State SetState state State void subject 50 Diagramme de s quence enregistrement notification enregistrement notification notification Ad quation enregistrement http observ addObserver url http observateur1 update notification http observateur 1 update arg evt ESIEE 51 ESIEE Patron Procuration e Procuration l mission Ou Pad quation appel de m thodes requ tes HTTP Exemple de mise en oeuvre e Ad quation addObserver gt http site_observable ESIEE Un Exemple de procuration pour addObserver public class ProcurationHTTP private String urlObserv private final ExecutorService executor public ProcurationHTTP String urlObserv this urlObserv urlObserv this executor Executors newCachedThreadPool public void addObserver String urlObservateur Future lt String gt res executor submit
20. ocket serveur accept BufferedReader in new BufferedReader new InputStreamReader socket getInputStream String cmd in readLine traitement de la commande re ue DataOutputStream out new DataOutputStream socket getOutputStream if cmd equals parle out write bonjour n getBytes else out write commande inconnue in getBytes socket close ESIEE ei Le client maison public class Client ESIEE public static void main String args throws Exception Socket socket new Socket vivaldi cnam fr 5000 DataOutputStream out new DataOutputStream socket getOutputStream out write args 0 getBytes out write n getBytes BufferedReader in new BufferedReader new InputStreamReader socket getInputStream System out println in readLine socket close H NSY102 tp_pattern_correction gt java cp question3 Client parle bonjour H NSY192 tp_pattern_correction gt java cp question3 Client cris commande inconnue 22 Un client maison telnet e telnet localhost 5000 parle frappe des touches sans echo Ch CA WINNT system3 cmd exe telnet localhost 5000 EC WINNT system3z cmd exe bon jour Perte de la connexion l h te Es petit outil utile tcpview sous windows http www microsoft com technet sysinternals utilities tcpview mspx 4 ESIEE ESIEE Discussion
21. oks tutorial networking http monge univ mlv fr roussel RESEAUJAVA Patron Reactor par Doug Lea http gee cs oswego edu dil cpjslides nio pdf java nio http javanio info Architecture of a Highly Scalable NIO Based Server de G Roth http today java net pub a today 2007 02 13 architecture of highly scalable nio server html ESIEE Pr requis e Notion TCP IP e Notion des patrons Adaptateur Procuration Observateur amp MVC ESIEE Contexte vocable e Appels distants en mode TCP IP Point point avec accus de r ception En d tail ici http monge univ mlv fr roussel RESEAUJAVA tcp html TCP comme telnet ftp http e URL Uniform Resource Locator une adresse sur internet http jfod cnam fr http le protocole jfod cnam fr le nom de la ressource http jfod cnam fr 8999 ds2438 mesures html ESIEE Exemples clients serveurs un protocole 1 Le client s adresse au serveur Etablit une connexion son initiative 2 Le serveur satisfait ses clients Mode synchrone analogue l appel d une m thode locale ESIEE Appels distants protocole maison propri taire protocole maison Clientl Client2 Client3 serveur e Le contexte Client Java ou autres Serveur en java ou autre maison serveur ESIEE ESIEE Appels distants protocole JRMP rmi JVM JVM Clientl Client2 Client3 Serveur
22. ose lt HTML gt lt HEAD gt lt META http equiv Content Type content text html charset iso 8859 1 gt Le r sultat est retourn le source du fichier index html pr c d de quelques informations 31 ESIEE Requ te GET en Java e L essentiel Cr er une URL Ouvrir une connexion s crire et lire sur les flots associ s e Classe java net URL e Classe java net URLConnection URL url new URL http jfod cnam fr index html URLConnection connection url openConnection Requ te GET au complet public void testGET throws Exception URL url new URL http jfod cnam fr index html URLConnection connection url openConnection BufferedReader in new BufferedReader new InputStreamReader connection getiInputStream String inputLine in readLine while inputLine null System out println inputLine inputLine in readLine in close ESIEE Requ te GET avec param tres public void testGET throws Exception URL url new URL http jfod cnam fr 8999 ds2438 listAll on URLConnection connection url openConnection connection setDoInput true BufferedReader in new BufferedReader new InputStreamReader connection getInputStream String inputLine in readLine while inputLine null System out println inputline inputLine in readLine in close ESIEE Requ te POST URL url new URL http
23. retourne ois readobject il socket close ESIEE Discussion e Simple e Appels synchrones e Les param tres doivent impl menter java io Serializable Une formalit l interface est un marqueur vide Quelque soit la complexit de la structure La machine distante doit poss der tous les class n cessaires e D di java une JVM c t client et serveur ESIEE ESIEE S rialisation principes rappels e Le param tre est une instance de java io Serializable public class XXXX implements Jjava io Serializable Op rations internes criture par copie de l instance en profondeur lecture de l instance e Ecriture de l instance OutputStream out ObjectOutputStream oos new ObjectOutputStream out oos writeObject obj Les donn es d instance sont copi es sauf les champs static et transient e Lecture de l instance InputStream in Lit ois new ObjectInputStream in Object obj ois readObject Exemple 2 maison serveur parle Pa Clientl Serveur Auprotocole maison e Le serveur ne conna t que la commande parle et r pond bonjour Tout autre commande est ignor e Client java ou autre ESIEE S Un serveur avec un protocole maison public class Serveur public static void main String args throws Exception ServerSocket serveur new ServerSocket 5000 while true Socket s
24. t socket null BufferedReader in null DataOutputStream out null try socket listen accept in new BufferedReader new InputStreamReader socket getInputStream out new DataOutputStream socket getOutputStream analyse du contenu au bon protocole HTTP envoi du document ESIEE Discussion Applette et serveur TCP e Pourquoi faire e Un simple navigateur et sa JVM suffisent Strat gie de s curit standard Transparence assur e envers le client http protocole standard Notification asynchrone sur le web Un navigateur et son applette sont notifi s Attention aux pare feux ESIEE En cons quence Toute machine quip e d un navigateur acceptant des applettes peut devenir un serveur Web Mais e Un seul client possible de ce serveur web C est peu Avec la strat gie de s curit par d faut qui doit tre conserv e Et alors et alors refrain Et et MVC est arrive sans s presser Les vues seront des applettes serveur web Leur seul client sera le Mod le Les contr leurs adresseront le Modele ESIEE Architecture distribu e et HTTP e Hypoth se Toute machine connect e possede un serveur Web HTTP En application autonome et ou t l charg e e Dans un navigateur comme une applette e Premier essai d architecture Patron Observateur Observ Lors d un changement d tat notification aux observateurs inscrits e D
25. tration deux copies d cran H 51N413_1N4421 51N413_6788 tp6_correction gt java cp question3 ChatGroup 8200 chat groupe en http 163 173 228 57 82BB0 c hat group http flocalhost8200fchatf self http 1127 0 0 1 9200 chat I e Pierre s inscrit au chat e L applette devient un observateur ESIEE 63 D monstration suite paul et pierre causent Adresse http localhost 8200 chat cmd applette amp nom pierre amp port 9200 group http Nocalhost98200 chati self http N927 0 0 1 9200 chati paul lt lt lt bonjour pierre gt plerre_ bonjour paul group htpifocalhost8200fc hat selfohttp1127 0 0 1 91 00 c hat paul_ bonjour pierre pierre_ lt lt lt bonjour paul ESIEE en ESIEE Java Web Start e JavaWebStart T l chargement d applications Java e Un descripteur au format JNLP Java Network Launch Protocol Une archive Java sign e Recherche automatique de la derni re version Console gt javaws Ou depuis un navigateur Voir http www java com fr download fag java_webstart xml Toute application java comme par exemple un serveur Web D monstration suite http pc5357c esiee fr 8200 chatclient jnip ici vous vous appelerez alfred sur le port 9500 non mais 65 Conclusion interm diaire e MVC web D ja vu JMS publish subscribe en standard e Classes essentielles ServerSocket e M thode accept bloquante ou ave
26. troller Y Y Y Y NY mous Upusles Allows controller to select view Selects View for response lows cont O Select vie User Gestures Une for each functionality Method Invocations BOO Events e http java sun com blueprints patterns MVC detailed html ESIEE SP MVC distribu model http model getState http view update view update http model setChanged C3 e Ad quation appels de m thodes requ tes HTTP Application existante Procurations 3 Vues 2 mod les 2 contr leurs R E ni view Un deuxi me Mod le ventuel pour la redondance Une Vue peut assurer la persistance ESIEE Un exemple parmi d autres un chat Groupe de discussion Le Modele sie Un abonn qui parle Les abonn s qui coutent n Le contr leur Les vues e Une instance de MVC ESIEE Une d monstration en ligne ou en local e Un logiciel de causerie G n ralement en intranet seulement e Contraintes des pare feux port protocoles e Un gestionnaire du groupe de discussion est d j en e http pc5357c esiee fr 8200 chat e Ajouter un client Depuis votre navigateur e http pc5357c esiee fr 8200 chat cmd applette amp nom pierre amp port 9 100 Ou bien depuis une console avec appletviewer e appletviewer http pc5357c esiee fr 8200 chat cmd applette amp nom paul amp port 9100 ESIEE ESIEE D monstration discussion D mons

Download Pdf Manuals

image

Related Search

Related Contents

MODE D`EMPLOI POUR THERMOSTAT CLAITON EL-0206xx-C-EN  Philips Softone Lustre Lustre energy saving bulb 872790021184901  White Rodgers 1F95-1277 Thermostat User Manual  Toshiba 13A22 CRT Television User Manual  .Appendix - Variance estimation  Manual Técnico  GPX HT050B User's Manual  Untitled  Ch-09 Démarreurs progressifs {DS, DM} (PDF/2,68Mo)  TomTom Automobile V2 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file