Java Message Service (JMS) Didier DONSEZ. Université Joseph Fourier (Grenoble 1) PolyTech Grenoble LIG ERODS
|
|
|
- Estelle Fortin
- il y a 10 ans
- Total affichages :
Transcription
1 Java Message Service (JMS) Didier DONSEZ Université Joseph Fourier (Grenoble 1) PolyTech Grenoble LIG ERODS MOM & JMS, Didier Donsez,
2 Motivation Messaging Oriented Middleware messagerie inter-applicative l envoi et la réception des messages entre applications est asynchrone les messages sont structurés et correspondent à des événements, des requêtes, des rapports,... ne nécessite pas de connexion permanente comme pour le Cl/Sv ne pas confondre avec le courrier électronique (API JavaMail) API Java javax.jms d un client à un serveur MOM Modèles de messagerie (messaging) Point à Point (Point-to-Point) concept de Queue, une file d attente de messages Publication-Souscription (Publish-Subscribe) concept de Topic, un sujet auquel s abonne un ou plusieurs Subscribers support pour les transactions distribuées XA 2
3 JMS targets enterprise messaging; the API is chosen to abstract the programming of a wide variety of message-oriented-middleware (MOM) products in a vendor neutral and portable manner, using the Java programming language. A Destination refers to a named physical resource managed by the underlying MOM. It is administered and configured via vendor provided tools, and typically accessed by a user application via the Java Naming and Directory Interface (JNDI) APIs (external to JMS). A MessageProducer will send messages to a destination and a MessageConsumer can receive messages from a destination. The destination can be thought of a mini-message broker or a channel independent of the producers and consumers. A Connection is a heavy-weight object representing the link between the application and the middleware. Its attributes include a clientid. It provides methods to start() and stop() communication and to close() a connection. MessageProducer is used to produce messages. A default destination may be specified when the producer is created; it can also be specified when sending messages. In addition, the delivery mode, priority, and expiration can be specified for the outgoing message headers. A persistent delivery mode means that a message will be delivered once-and-only-once; the message is stored in permanent storage before the send() method returns. A non-persistent delivery mode means that the message will be delivered at most once; a message may be dropped if the JMS provider fails. Static destinations are discovered via JNDI APIs, which bind logical destination names to destination objects. The static destinations accessible this way must have been previously configured in the JMS middleware (server) using vendor supplied administrative tool. Since JMS discovery is administered, the static destinations must be determined and configured before a client can use them.
4 The following is a list of JMS providers: Apache ActiveMQ Redis pub/sub Apache Qpid, using AMQP [5] Oracle Weblogic (part of the Fusion Middleware suite) and Oracle AQ from Oracle EMS from TIBCO FFMQ, GNU LGPL licensed JBoss Messaging and HornetQ from JBoss JORAM, from the OW2 Consortium Open Message Queue, from Oracle OpenJMS, from The OpenJMS Group Solace JMS from Solace Systems RabbitMQ by Rabbit Technologies Ltd., acquired by SpringSource SAP Process Integration ESB SonicMQ from Progress Software SwiftMQ Tervela Ultra Messaging from 29 West (acquired by Informatica) webmethods from Software AG WebSphere Application Server from IBM, which provides an inbuilt default messaging provider known as the Service Integration Bus (SIBus), or which can connect to WebSphere MQ as a JMS provider [6] WebSphere MQ (formerly MQSeries) from IBM FioranoMQ etc Generally, all Java Enterperise Edition servers offer a JMS provider
5 Architecture JMS le client utilise les classes du package javax.jmx pour l envoi et la réception de messages le serveur implante un JMS Service Provider qu interface à son noyau JMS Client JMS Client JMS Client Non-JMS Client X AdminTools JMS Scope Java Message Service (JMS) API X Native API (C,C++,Cobol, ) X JMS Service Provider Message Repositories X Messaging Server (or Broker) Message Type Repository 5
6 Modèle Point à Point Concept de Queue Point-to-Point Un (ou plusieurs) Sender envoie (produit) un message à une Queue (i.e. file d attente de messages) Chaque message de la Queue reçu que par un seul receiver (consommateur) (plusieurs receivers peuvent cohabiter) Sender Messaging Server Sender (Message) Queue Receiver Sender 6
7 Modèle Publication-Souscription Publish-Subscribe Concept de Topic (centre d intérêt) Un (ou plusieurs) publishers envoie un message à un Topic Tous les subscribers de ce Topic reçoivent le message Publisher Messaging Server Subscriber Publisher Topic Subscriber Publisher Subscriber 7
8 JMS API Programming Model Connection Factory creates Connection Message Producer sends to Destination creates creates Session creates Msg Message Consumer receives from Destination
9 API JMS Superclasses communes à PTP et PubSub JMS Parent Modèle PTP Modèle Pub/Sub ConnectionFactory QueueConnectionFactory TopicConnectionFactory un objet administré par le provider pour créer une Connection Connection QueueConnection TopicConnection une connexion active vers un JMS provider Destination Queue Topic encapsule l identité d une destination Session QueueSession TopicSession contexte (mono-thread) pour l émission et la réception de messages MessageProducer QueueSender TopicPublisher objet pour la production (l envoi) de messages vers une Destination (créé par la Session) MessageConsumer QueueReceiver,QueueBrowser TopicSubscriber objet pour la consommation (la reception) de messages d une destination (créé par la Session) 9
10 Fonctionnement d un client typique JMS Phase d initialisation (setup) trouver l objet ConnectionFactory par JNDI créer une Connection JMS créer une (ou plusieurs) Session avec la Connection JMS trouver un (ou plusieurs) objet Destination par JNDI créer le(s) MessageProducer ou/et MessageConsumer avec la Session et concernant la (les) Destination demander à la Connection de démarrer la livraison des messages Phase de consommation/production de messages créer des messages et les envoyer recevoir des messages et les traiter 10
11 Les objets administrés par le Provider Les objets administrés par le Provider ConnectionFactory point d accès à un serveur MOM accessible par JNDI et enregistré par l administrateur du serveur MOM Destination Queue ou Topic administré par le serveur MOM accessible par JNDI et enregistré par l administrateur du serveur MOM Les objets Connection encapsule la liaison TCP/IP avec le Provider JMS authentifie le client et spécifie un identifiant unique de client crée les Sessions et fournit le ConnectionMetaData supporte (optionnel) l ExceptionListener Session encapsule la liaison TCP/IP avec le Provider JMS 11
12 javax.jms.connection Rôle encapsule la liaison TCP/IP avec le Provider JMS authentifie le client et spécifie un identifiant unique de client Cycle de vie initialisation/setup crée les Sessions, MessageProducers et les MessageConsumers. fournit le ConnectionMetaData supporte (optionnel) l ExceptionListener démarrage start() procède à la livraison des Messages pause stop() interrompt la livraison des Messages entrants, n affecte pas l envoi reprise start() fermeture close() libération des ressources 12
13 javax.jms.session Rôle contexte mono-threadé fabrique les MessageProducers et les MessageConsumers fabrique les destinations temporaires TemporaryDestination définit les numéros de série des messages (consommés et produits) un ordre par Session et par Destination. Pas d ordre entre Destinations sérialise l exécution des MessageListeners enregistrés méthode onmessage() définit une chaîne de transactions atomiques la portée est définie par commit() ou rollback() Acquittement des messages 13
14 Tolérance aux pannes et Acquittement des messages Principe le client reçoit un message et peut ne le traiter que partiellement avant une erreur (Crash, Exception, ) En cas d erreur dans une Session, le provider JMS renvoie (redeliver) ce message au client tant que le client n a pas acquitté ce message. Modes d acquittement mode automatique mode manuel 14
15 javax.jms.messagerconsumer représente l objet consommateur des messages fabriqué par la Session QueueReceiver QueueSession.createReceiver(Queue queue, String messageselector) TopicSubscriber TopicSession.createSubscriber(Topic topic, String messageselector, boolean) Remarque : il peut y avoir plusieurs MessageConsumers sur une Session pour une même Destination Sous-interfaces : QueueReceiver, TopicSubscriber Réception Synchrone des messages le client se met en attente du prochain message Message receive(), Message receive(long timeout), Message receivenowait() Réception Asynchrone des messages le client crée un objet qui implémente l interface MessageListener et positionne cet objet à l écoute des messages void setmessagelistener(messagelistener) / MessageListener getmessagelistener() quand un message arrive, la méthode void onmessage(message) de l objet MessageListener est invoquée La session n utilise qu une seule thread pour exécuter séquentiellement tous les MessageListeners 16
16 javax.jms.messagerproducer représente l objet producteur des messages fabriqué par la Session QueueSender QueueSession.createSender(Queue queue) TopicPublisher TopicSession.createPublisher(Topic topic) Remarque : il peut y avoir plusieurs MessageProducers sur une Session pour une même Destination Sous-interfaces : QueueSender, TopicPublisher Production des messages void QueueSender.send(Message) void TopicPublisher.publish(Message) 17
17 Le modèle Point à Point Classes et interface JMS Parent ConnectionFactory Connection Destination Session MessageProducer MessageConsumer Point-To-Point PTP Modèle PTP QueueConnectionFactory QueueConnection Queue, TemporaryQueue QueueSession QueueSender QueueReceiver -- QueueBrowser Remarques plusieurs sessions peuvent se partager une même queue : JMS ne spécifie pas comment le provider répartit les messages entre les QueueReceiver de ces sessions. Les messages non sélectionnés restent dans la queue : l ordre de réception n est plus alors l ordre de production QueueBrowser permet de consulter les messages de la Queue sans les retirer en les énumérant (méthode Enumeration getenumeration()) 18
18 Le modèle Publication-Souscription Publish-Subscribe PubSub Classes et interface JMS Parent Modèle Pub/Sub ConnectionFactory TopicConnectionFactory Connection TopicConnection Destination Topic Session TopicSession MessageProducer TopicPublisher MessageConsumer TopicSubscriber Remarque le terme «publier» correspond à «produire» le terme «souscrire» correspond à «consommer» 19
19 Le modèle de Messages JMS L interface javax.jms.message Motivation Modèle commun à tous les produits Supporte l hétérogénéïté des clients (non JMS, langage, plate-forme,...) Supporte les objets Java et les documents XML L interface javax.jms.message sous-interfaces: BytesMessage, MapMessage, ObjectMessage, StreamMessage, TextMessage Structure d un Message Entête (header) champs communs aux Providers (Produit) et obligatoires destinés au routage et l identification du message Propriété (property) champs supplémentaires propriétés standards : équivalent aux champs d entête optionnels propriétés spécifiques au (produit) provider propriétés applicatives : peuvent répliquer le contenu d une valeur du corps Corps (body) contient les données applicatives 20
20 Le modèle de Messages JMS Nom des champs d entête Les champs d entête JMSDestination : destination du message JMSDeliveryMode : sûreté de distribution NON_PERSISTENT : faible PERSISTENT : garantie supplémentaire qu un message ne soit pas perdu JMSExpiration : calculé à partir du TTL (Time To Live) depuis la prise en charge JMSMessageID : identifiant du Message founi par le provider JMSTimestamp : date de prise en charge du message par le provider JMSCorrelationID : identifiant d un lien avec un autre Message (Request/Reply) JMSReplyTo : identifiant de la Destination pour les réponses JMSType : identifiant du type de message défini par l émetteur JMSRedelivered : n a du sens que si le récepteur n acquitte pas immédiatement la réception (Transaction) JMSPriority : priorité (de 0 à 9) du message Consultation/Modification méthodes setxxx() / getxxx() où XXX est le nom du champ d entête 21
21 Le modèle de Messages JMS Nom des propriétés propriétés standards : Les champs de propriétés nom préfixé par JMSX correspondent à des champs d entête optionnels JMSXUserID, JMSXAppID : identité de l utilisateur et de l application JMSXGroupID, JMSXGroupSeq : groupe de messages et son numéro de séq JMSXProducerTXID, JMSXConsumerTXID : identifiants de transaction JMSXRcvTimestamp : date de réception JMSXState : 1(waiting), 2(ready), 3(expired), 4(retained) JMSXDeliveryCount : The number of message delivery attemps propriétés spécifiques : nom préfixé par JMS_VendorName propriétés applicatives : autre servent au filtrage servent comme données complémentaires au corps exemple : la date d expiration d un document XML véhiculé par un StringMessage 22
22 Le modèle de Messages JMS Les champs de propriétés Enumération des propriétés Enumeration getpropertynames() / Enumeration ConnectionMetaData.getJMSXPropertyNames() boolean propertyexists(string) Valeur des propriétés Type : boolean, byte, short, int, long, float, double, String énumère les propriétés (JMSX) du message teste l existence d une propriété méthodes void setintproperty(string,int), void setbooleanproperty(string,boolean),... méthodes int getintproperty(string), boolean getbooleanproperty(string),... L appel à getxxxproperty() retourne null si la propriété n existe pas Les propriétés d un message reçus sont en lecture seule sinon l exception MessageNotWriteableException est levée Type Objet correspondant : Boolean,Byte,Short,Int,Long,Float,Double,String méthode void setobjectproperty(string,object) méthode Object getobjectproperty(string) Réinitialisation des propriétés : void clearproperties() 23
23 Le modèle de Messages JMS Le corps (body) du message Sous interfaces de javax.jms.message : javax.jms.textmessage contient une String qui peut être un document XML, un message SOAP String gettext()/ settext(string) javax.jms.mapmessage contient un ensemble de paires name-value int getint(string name) / setint(string name, int value), Object getobject(string)/ setobject(string,object), Enumeration getmapnames() javax.jms.objectmessage contient un objet Java sérialisé : Object getobject()/ setobject(object) javax.jms.bytesmessage contient un tableau de bytes (non interprétés) int readint()/writeint(int),, int readbytes(byte[])/writebytes(byte[]), Object readobject()/ writeobject(object), reset() javax.jms.streammessage contient un flot de données (Java primitives) qui s écrit et se lit séquentiellement int readint()/writeint(int),, String readstring()/writestring(string) Object readobject()/ writeobject(object), reset() 24
24 Remarque: Message SOAP sur JMS In a recent "Strategic Planning" research note, Gartner issued a prediction that "by 2004, more than 25 percent of all standard Web services traffic will be asynchronous..." and "by 2006, more than 40 percent of the standard Web services traffic will be asynchronous." 25
25 Le modèle de Messages JMS Méthodes Le corps (body) du message la méthode clearbody() réinitialise le corps Remarque le corps d un message reçu est en lecture seule 26
26 Le modèle de Messages JMS Le corps (body) du message String textstr = "<?xml version=\"1.0\"?><!doctype person SYSTEM \"person.dtd\">" +"<person><firstname>joe</firstname><lastname>smith</lastname>" +"<salary value=\" \"><age value=\"38\"></person>"; // l API javax.xml est préférable pour construire le document XML TextMessage textmsg = session.createtextmessage(); textmsg.settext(textstr); MapMessage mapmsg = session.createmapmessage(); mapmsg.setstring("firstname", "Joe"); mapmsg.setstring("lastname", "Smith"); mapmsg.setdouble("salary", ); mapmsg.setlong("age", 38); Person object = new Person("Joe","Smith", 37); object.setage(38); object.setsalary( ); ObjectMessage objectmsg = session.createobjectmessage(); objectmsg.setobject(object); // Person doit implémeter java.io.serializable Byte[] bytesarray = { 'J','o','e',' ','S','m','i','t','h'}; BytesMessage bytesmsg = session.createbytemessage(); bytesmsg.writebytes(bytesarray); bytesmsg.writeint(38); bytesmsg.writedouble( ); StreamMessage streammsg = session.createstreammessage(); streammsg.writestring("joe"); streammsg.writestring("smith"); streammsg.writelong(38); streammsg.writefloat( ); 27
27 Le modèle de Messages JMS Le corps (body) du message TextMessage textmsg = (TextMessage)receivedmsg; String textstr=textmsg.gettext(textstr); System.out.println(textstr); // le document XML peut être parsé MapMessage mapmsg = (MapMessage)receivedmsg; String firstname= mapmsg.getstring("firstname"); String lastname= mapmsg.getstring("lastname"); long age= mapmsg.getlong("age"); double salary= mapmsg.getdouble("salary"); System.out.println(firstname + " " + lastname + " " + age + " " + salary); ObjectMessage objectmsg = (ObjectMessage)receivedmsg; Person object = (Person)objectmsg.getObject(); System.out.println(object.toString()); BytesMessage bytesmsg = (BytesMessage)receivedmsg; Byte[] bytesarray ; int length=bytesmsg.readbytes(bytesarray); long age= bytesmsg.readlong(); double salary= bytesmsg.readdouble(); StreamMessage streammsg = (StreamMessage)receivedmsg; String firstname= streammsg.readstring(); String lastname= streammsg.readstring(); long age= streammsg.readlong(); double salary= streammsg.readdouble(); System.out.println(firstname + " " + lastname + " " + age + " " + salary); 28
28 Le modèle de Messages JMS La sélection (filtrage) des messages Motivation le MessageProducer catégorise les messages à envoyer avec les propriétés le MessageConsumer peut filtrer les messages reçus l expression de sélection est spécifiée à la fabrication du MessageConsumer les messages reçus sont ceux qui vérifient l expression de sélection Expressions de sélection sous-ensemble de SQL-92 identifiants, littéraux (Chaînes, Numériques, TRUE/FALSE) connecteurs OR, AND, NOT, ( ) >, <, >=, <=, <>, =, BETWEEN, LIKE, IN, IS [NOT] NULL Exemple String selector="jmstype='car' AND ( color='blue' OR color='red' ) AND price IS NOT NULL"; QueueReceiver receiver= session.createreceiver(queue, selector); 29
29 Exemple : Point à Point La partie commune class JMSQueueTest { static Context messaging; static QueueConnectionFactory queueconnectionfactory; static Queue queue; static QueueConnection queueconnection; static QueueSession queuesession; static QueueSender queuesender; static QueueReceiver queuereceiver; static void setup(string queueconnectionfactoryname, String queuename){ messaging = new InitialContext(); queueconnectionfactory = (QueueConnectionFactory)messaging.lookup(queueConnectionFactoryName); queue = (Queue) messaging.lookup(queuename); queueconnection = queueconnectionfactory.createqueueconnection(); queuesession = queueconnection.createqueuesession(false,session.auto_acknowledge); } static void setupsender(string queueconnectionfactoryname, String queuename){ setup(queueconnectionfactoryname, queuename); queuesender = queuesession.createsender(queue); queueconnection.start(); } static void setupreceiver(string queueconnectionfactoryname, String queuename){ setup(queueconnectionfactoryname, queuename); queuereceiver = queuesession.createreceiver(queue); queueconnection.start(); } } 30
30 Exemple : Point à Point // java JMSQueueSenderTest testserver testqueue Hello public class JMSQueueSenderTest extend JMSQueueTest { Sender static void send(string stringvalue,double doublevalue, long doublevalue, boolean booleanproperty) { MapMessage message = session.createmapmessage(); message.setobject("stringvalue", stringvalue); message.setdouble("doublevalue", doublevalue); message.setlong("longvalue", longvalue); message.setbooleanproperty("exit", booleanproperty); queuesender.send(message); } public static void main(string args[]) { setupsender(argv[0],argv[1]); long cpt=long.parselong(argv[4]); while(--cpt>0) { send(argv[2]+cpt,double.parsedouble(agv[3]).valuedouble()+cpt,cpt, false); } send(argv[2]+cpt,agv[3]+cpt,cpt, true); close(); } } 31
31 Exemple : Point à Point Receiver synchrone // java JMSQueueSyncReceiverTest testserver testqueue public class JMSQueueSyncReceiverTest extend JMSQueueTest { static boolean exit=false; static void handlemessage(mapmessage message) { String stringvalue=message.getstring("stringvalue"); System.out.print(" stringvalue="+stringvalue); double doublevalue=message.getdouble("doublevalue"); System.out.print(" doublevalue="+doublevalue); long longvalue=((long)message.getobject("longvalue")).longvalue(); System.out.println(" longvalue="+longvalue); exit = message.getbooleanproperty("exit"); } static void syncreceive() { MapMessage message; while(!exit) { message= (MapMessage)queueReceiver.receive(); handlemessage(message); } } public static void main(string args[]) { setupreceiver(argv[0],argv[1]); syncreceiver(); close(); } } 32
32 Exemple : Point à Point Receiver asynchrone // java JMSQueueAsyncReceiverTest testserver testqueue public class MyListener implements javax.jms.messagelistener { void onmessage(message message) { JMSTest.handleMessage((MapMessage)message); } } public class JMSQueueAsyncReceiverTest extend JMSQueueTest { static boolean exit=false; static void handlemessage(mapmessage message) { String stringvalue=message.getstring("stringvalue"); System.out.print(" stringvalue="+stringvalue); double doublevalue=message.getdouble("doublevalue"); System.out.print(" doublevalue="+doublevalue); long longvalue=((long)message.getobject("longvalue")).longvalue(); System.out.println(" longvalue="+longvalue); exit = message.getbooleanproperty("exit"); } static void asyncreceive() { queuereceiver.setmessagelistener(new MyListener()); while(!exit) { /* dosomething */ } } public static void main(string args[]) { setupreceiver(argv[0],argv[1]); asyncreceiver(); close(); } } 33
33
34 Exemple : Publication Souscription La partie commune class JMSTopicTest { static Context messaging; static TopicConnectionFactory topicconnectionfactory; static Topic topic; static TopicConnection topicconnection; static TopicSession topicsession; static TopicPublisher topicpublisher ; static TopicSubscriber topicsubscriber ; static void setup(string topicconnectionfactoryname, String topicname){ messaging = new InitialContext(); topicconnectionfactory = (TopicConnectionFactory)messaging.lookup(topicConnectionFactoryName); topic = (Topic) messaging.lookup(topicname); topicconnection = topicconnectionfactory.createtopicconnection(); topicsession = topicconnection.createtopicsession(false,session.auto_acknowledge); } static void setuppublisher(string topicconnectionfactoryname, String topicname){ setup(topicconnectionfactoryname, topicname); topicpublisher = topicsession.createpublisher(topic); topicconnection.start(); } static void setupsubscriber(string topicconnectionfactoryname, String topicname){ setup(topicconnectionfactoryname, topicname); topicsubscriber = topicsession.createsubscriber(topic); topicconnection.start(); } } 35
35 Exemple : Publication Souscription Publisher // java JMSTopicPublisherTest testserver testtopic Hello public class JMSTopicPublisherTest extend JMSTopicTest { static void publish(string stringvalue,double doublevalue, long doublevalue, boolean booleanproperty) { MapMessage message = session.createmapmessage(); message.setobject("stringvalue", stringvalue); message.setdouble("doublevalue", doublevalue); message.setlong("longvalue", longvalue); message.setbooleanproperty("exit", booleanproperty); topicpublisher.publish(message); } public static void main(string args[]) { setuppublisher(argv[0],argv[1]); long cpt=long.parselong(argv[4]); while(--cpt>0) { publish(argv[2]+cpt,double.parsedouble(agv[3]).valuedouble()+cpt,cpt, false); } publish(argv[2]+cpt,agv[3]+cpt,cpt, true); close(); } } 36
36 Exemple : Publication Souscription Subscriber synchrone // java JMSTopicSyncSubscriberTest testserver testtopic public class JMSTopicSyncSubscriberTest extend JMSTopicTest { static boolean exit=false; static void handlemessage(mapmessage message) { String stringvalue=message.getstring("stringvalue"); System.out.print(" stringvalue="+stringvalue); double doublevalue=message.getdouble("doublevalue"); System.out.print(" doublevalue="+doublevalue); long longvalue=((long)message.getobject("longvalue")).longvalue(); System.out.println(" longvalue="+longvalue); exit = message.getbooleanproperty("exit"); } static void syncsubscribe() { MapMessage message; while(!exit) { message= (MapMessage)topicSubcriber.receive(); handlemessage(message); } } public static void main(string args[]) { setupsubscriber(argv[0],argv[1]); syncsubscriber(); close(); } } 37
37 Exemple : Publication Souscription Subscriber asynchrone // java JMSTopicAsyncSubscriberTest testserver testtopic public class MyListener implements javax.jms.messagelistener { void onmessage(message message) { JMSTest.handleMessage((MapMessage)message); } } public class JMSTopicAsyncSubscriberTest extend JMSTopicTest { static boolean exit=false; static void handlemessage(mapmessage message) { String stringvalue=message.getstring("stringvalue"); System.out.print(" stringvalue="+stringvalue); double doublevalue=message.getdouble("doublevalue"); System.out.print(" doublevalue="+doublevalue); long longvalue=((long)message.getobject("longvalue")).longvalue(); System.out.println(" longvalue="+longvalue); exit = message.getbooleanproperty("exit"); } static void asyncsubscribe() { topicsubscriber.setmessagelistener(new MyListener()); while(!exit) { /* dosomething */ } } public static void main(string args[]) { setupsubscriber(argv[0],argv[1]); asyncsubscriber(); close(); } } 38
38 Le Transactionnel dans JMS Motivation inclure la production et consommation de messages d un client dans la portée d une transaction distribuée (JTA) une Queue ou un Topic sont considérés comme des ressources XA en cas d abandon, les messages ne sont pas postés ou retirés le JMS Provider doit garantir la livraison «une et une seule fois» Remarque : un messsage ne peut pas être posté et retiré dans la même transaction API JMS Root PTP Interface Pub/Sub Interface ServerSessionPool ServerSession ConnectionConsumer XAConnectionFactory XAQueueConnectionFactory XATopicConnectionFactory XAConnection XAQueueConnection XATopicConnection XASession XAQueueSession XATopicSession 39
39 Modèle Requête-Réponse (i) Principe Client-Serveur en mode Asynchrone mais nombreux styles de Requête-Réponse Request-Reply 1- un message de requête donne un message de réponse 2- un message de requête donne un flot de messages de réponse de la part de plusieurs serveurs (respondents)... Non explicitement supporté par JMS mais JMS fournit des facilités pour le construire la création de TemporaryQueue et de TemporaryTopic temporaires utilisées pour les réponses (à Destination unique) le champ d entête de message JMSReplyTo qui spécifie la Destination pour la réponse le champ d entête de message JMSCorrelationID qui peut être utilisé comme référence de la requête originelle 40
40 Modèle Requête-Réponse (ii) Proposition d implantation de 1 (avec les Queues de JMS) Client A reply XA request A request B reply XB Messaging Server (Reply for A) Temporary Queue Request Queue Client B (Reply for B) Temporary Queue reply XA request A request B reply XB Server X Question : A quoi peut servir le partage de la Queue par plusieurs serveurs? 41
41 Modèle Requête-Réponse (ii) Client A request A Messaging Server (Reply for A) Temporary Queue Request Queue 42
42 Modèle Requête-Réponse (ii) Client A reply XA Messaging Server (Reply for A) Temporary Queue reply XA Request Queue request A Server X 43
43 Modèle Requête-Réponse (ii) Messaging Server Client A request B reply XB Request Queue Client B (Reply for B) Temporary Queue request B reply XB Server X 44
44 Modèle Requête-Réponse (iii) Proposition d implantation de 2 (avec les Topics de JMS) Messaging Server Client A (Publisher) reply Y reply X Temporary Queue (one per client) request A reply X reply Y Server X (Subscriber) request A Topic request A Server Y (Subscriber) Remarque : le serveur Z n est pas obligé de fournir une réponse request A Server Z (Subscriber) 45
45 Modèle Requête-Réponse (iii) QueueRequestor/TopicRequestor classes utilitaires qui implantent de la modèle synchrone de Requête-Réponse la Session ne peut être transactionnelle Cycle de vie création avec le constructeur QueueRequestor(QueueSession session, Queue queue) TopicRequestor(TopicSession session, Topic topic) envoi d une requête et attente de la réponse Message request(message msg) fermeture pour libérer les ressources void close() Remarque la Session ne peut être transactionnelle 46
46 Les Destinations Temporaires objet unique, qui ne peut être copié fabriqué par la Session dont la durée de vie n excède pas la Connection peut être détruit (delete()) après usage pour libérer des ressources ne peut être consommée que par la Connection typiquement utilisé pour le modèle Requête-Réponse (propriété JMSReplyTo) TemporaryQueue objet unique, sous interface de Queue fabriquée par QueueSession.createTemporaryQueue() n existe que durant une QueueConnection 47
47 Ce que JMS n adresse pas En tant qu API Client, JMS n adresse pas Administration du produit MOM Équilibrage de charge et Tolérance aux Pannes Dépôt des types de message JMS ne fournit pas un dépôt des formats (types) de message ni un langage de définition Notification d erreur et d avertissement chaque produit peut envoyer aux clients des messages systèmes JMS ne normalise pas ces messages. Sécurité JMS ne contrôle pas la confidentialité et l intégrité des messages Protocole de transport Déploiement Extensions proposées par des éditeurs de MOM Topics hiérarchiques, Dead queue, XMLMessage 49
48 JMS dans J2EE Partie intégrante de J2EE/EJB JNDI : recherche des objets administrés JTA : XASession EJB : Message-Driven Bean 50
Message Oriented Middleware (MOM) Java Message Service (JMS) Didier DONSEZ
http://membres-liglab.imag.fr/donsez Message Oriented Middleware (MOM) Java Message Service (JMS) Didier DONSEZ Université Joseph Fourier (Grenoble 1) PolyTech Grenoble - LIG [email protected] [email protected]
Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion
Projet But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables événements Serveur de diffusion 1 JMS Java Message Service PHAN Quang-Hai ISTR 04/05/2004
MOM: Concepts & Applications
MOM: Concepts & Applications André Freyssinet ScalAgent Distributed Technologies [email protected] www.scalagent.com Plan Introduction Exemple d application (supervision) Synchrone vs Asynchrone
Messagerie asynchrone et Services Web
Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS
TD sur JMS ---- 1) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?
TD sur JMS ---- Questions de cours : 1) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS? MOM : Message Oriented Middleware Intergiciels orientés Messages
Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Plan du cours. Systèmes et applications asynchrones Middleware à message. Architecture distribuée. Objectifs du cours
Plan du cours Systèmes et applications asynchrones Middleware à message Roland Balter ScalAgent Distributed Technologies I. Caractérisation des systèmes asynchrones II. Modèles pour la programmation asynchrone
Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14
Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...
PROJET : ETNIC ESB JANUS. Guide technique : WS-Notification - Clustering. BULL Services et Solutions
PROJET : ETNIC ESB JANUS Guide technique : WS- BULL Services et Solutions Date : 20 novembre 2008 Version : 1.0 Référence Bull : ETNIC_ESB/ANA/00 Auteur : NOSEDA Anne Projet ETNIC ESB JANUS Guide technique
Intégration de systèmes
Intégration de systèmes Préparé par: Marc Barassi, Michel Fraser, Louis Martin, Martin Simoneau Collaboration spéciale: François Boucher et Richard Boutin 3/18/14 Intégration de systèmes «L ensemble des
Composants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
JOnAS 5. Serveur d application d
JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source
Auto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Urbanisme du Système d Information et EAI
Urbanisme du Système d Information et EAI 1 Sommaire Les besoins des entreprises Élément de solution : l urbanisme EAI : des outils au service de l urbanisme 2 Les besoins des entreprises 3 Le constat
Introduction aux «Services Web»
Introduction aux «Services Web» Sana Sellami [email protected] 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre
NFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
Android et le Cloud Computing
Android et le Cloud Computing 1 Plan de l'exposé Rappels sur Android et le cloud Présentation de GCM Notions fondamentales de GCM Construire un projet GCM Ecrire un client GCM (récepteur GCM) Ecrire un
4. SERVICES WEB REST 46
4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,
Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011
Apache Camel & Entreprise Integration Patterns Raphaël Delaporte BreizhJUG 07.11.2011 1 Speaker CTO Zenika Ouest Consultant et formateur Responsable comité technique Architecture d'entreprise Domaine ESB
Java Naming and Directory Interface
Introduction Java Naming and Directory Interface Gaël Thomas [email protected] Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Patrons de conception de Web Services
Patrons de conception de Web Services [trousse premiers secours ] Récapitulation Styles d API de Web Service RPC API Message API Resource API Styles d interaction Client Service Requête/Réponse Négociation
Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués
Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hé[email protected]
INTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation
Threads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Les Architectures Orientées Services (SOA)
Les Architectures Orientées Services (SOA) Ulrich Duvent Guillaume Ansel Université du Littoral Côte d Opale 50, Rue Ferdinand Buisson BP 699 62228 Calais Cedex Téléphone (33) 03.21.46.36.92 Télécopie
Software Engineering and Middleware A Roadmap
Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251 Wolfgang Emmerich Enseignant à University College London: Distributed Systems
Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.
Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence
Le MSMQ. Version 1.0. Pierre-Franck Chauvet
Le MSMQ Version 1.0 Z Pierre-Franck Chauvet 2 [Le MSMQ] [Date : 10/10/09] Sommaire 1 Introduction... 3 2 Le Concept... 5 2.1 Les messages... 5 2.2 Les files d attentes... 5 2.3 WorkGroup... 7 2.4 Active
Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department
DB GT CF Grid ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Group Information Department Journée de la communauté FUSE, Paris, 2010 CERN IT Department CH-1211 Geneva 23 Switzerland
Exercices sur SQL server 2000
Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table
Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»
Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami [email protected] 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une
OpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
BMC Middleware Management
BMC Middleware Management Réunion GUIDE Share France WMQ 2 octobre 2012 Didier Hauwy Software Consultant [email protected] Sommaire Middleware Monitoring - MainView for WMQ - BMM Performance & Availability
Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC
Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger
Mise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry [email protected].
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry [email protected] Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5
ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre
Java DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Mettez les évolutions technologiques au service de vos objectifs métier
Mettez les évolutions technologiques au service de vos objectifs métier 2 OXIA a pour mission de concevoir et mettre en oeuvre les meilleures solutions technologiques visant à améliorer la productivité,
La technologie Java Card TM
Présentation interne au CESTI La technologie Java Card TM [email protected] http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
BPEL Orchestration de Web Services
Orchestration de Web Services Grégory Le Bonniec [email protected] 26 novembre 2009 1 Zenika Conseil / Développement / Formation Localisation : Paris et Rennes Nos partenaires Mon expérience
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Instructions Mozilla Thunderbird Page 1
Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et
TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.
Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans
Remote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Présentation d'un MOM open-source
Présentation d'un MOM open-source Saber Dir - Victor Laborie - Guillaume Penaud Licence ASRALL 25 mars 2015 Middleware Orientés Message 25 mars 2015 1 / 29 Sommaire 1 Introduction 2 Etat de l'art 3 Maquette
Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation
THE CONSUMER PROTECTION ACT (C.C.S.M. c. C200) Call Centres Telemarketing Sales Regulation LOI SUR LA PROTECTION DU CONSOMMATEUR (c. C200 de la C.P.L.M.) Règlement sur le télémarketing et les centres d'appel
Plan. Department of Informatics
Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise
JF SMA'14. A3 - Agent Anytime Anywhere. une plateforme à agents distribués. 8-10 Oct. 2014. l'expertise middleware. www.scalagent.
l'expertise middleware JF SMA'14 8-10 Oct. 2014 A3 - Agent Anytime Anywhere une plateforme à agents distribués André Freyssinet Directeur Technique [email protected] www.scalagent.com Plan
WEB page builder and server for SCADA applications usable from a WEB navigator
Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel
Algorithmique répartie
Université Joseph Fourier 23/04/2014 Outline 1 2 Types de communication message envoyé à un groupe de processus Broadcast (diffusion) message envoyé à tous les processus du systèmes Unicast message envoyé
France SMS+ MT Premium Description
France SMS+ MT Premium Description Summary Subscription : kinematics Subscription via SMS (Kinematic + messages) Subscription via Wap (Kinematic + messages) Subscription via Mix SMS / WAP Subscription
Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Compte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
MQPerf un outil de diagnostic en mode SaaS des performances optimales du MOM JORAM
MQPerf un outil de diagnostic en mode SaaS des performances optimales du MOM JORAM Solutions Linux 20 juin 2012 Serge Lacourte Directeur Général [email protected] www.scalagent.com Plan JORAM
TP Programmation Java / JDBC / Oracle
TP Programmation Java / JDBC / Oracle 1. Connectivité avec une base de données Oracle au travers de l interface JDBC L interface de programmation (API) JDBC (Java DataBase Connectivity) est une librairie
Differential Synchronization
Differential Synchronization Neil Fraser Google 2009 BENA Pierrick CLEMENT Lucien DIARRA Thiemoko 2 Plan Introduction Stratégies de synchronisation Synchronisation différentielle Vue d ensemble Dual Shadow
NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D
NOVA BPM «Première solution BPM intégr grée» Pierre Vignéras Bull R&D Définitions Business Process Pratiques existantes qui permettent aux personnes et systèmes de travailler ensemble Business Process
Once the installation is complete, you can delete the temporary Zip files..
Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une
MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15
MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué
J2EE. Java2 Enterprise Edition. Pierre Yves Gibello [email protected] Mise à jour : 30 Septembre 2004
J2EE Java2 Enterprise Edition Pierre Yves Gibello [email protected] Mise à jour : 30 Septembre 2004 Ce document est couvert par la licence Creative Commons Attribution ShareAlike. This work
Windows Internet Name Service (WINS)
Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2
Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.
Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational
Auto-évaluation Aperçu de l architecture Java EE
Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU
J2EE - Introduction. Développement web - Java. Plan du chapitre
Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE
Dis papa, c est quoi un bus logiciel réparti?
Dis papa, c est quoi un bus logiciel réparti? [email protected] LIFL IRCICA Equipe GOAL Octobre 2006 10. Des sockets aux bus logiciels répartis 1 0. Une application répartie 2 Objectif Découvrir la
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.
ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture
SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)
SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients
Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
Création d une application JEE
Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document
Introduction à JDBC. Accès aux bases de données en Java
Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique [email protected] 1 Introduction JDBC : Java Data Base Connectivity
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
VTP. LAN Switching and Wireless Chapitre 4
VTP LAN Switching and Wireless Chapitre 4 ITE I Chapter 6 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 1 Pourquoi VTP? Le défi de la gestion VLAN La complexité de gestion des VLANs et des
COMPUTING. Jeudi 23 juin 2011 1 CLOUD COMPUTING I PRESENTATION
C L O U D COMPUTING Jeudi 23 juin 2011 1 2 Une nouvelle révolution de l IT 2010+ Cloud Computing 2000s Service Oriented Archi. 1990s Network Computing 1980s Personal Computing 1970s Mainframe Computing
L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN : 2-212-11199-1
L EAI par la pratique François Rivard Thomas Plantain ISBN : 2-212-11199-1 Table des matières Avant-propos................................................ Quel est l objectif de cet ouvrage...............................
Initiation à JAVA et à la programmation objet. [email protected]
Initiation à JAVA et à la programmation objet [email protected] O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat
SOA Open Source Intégration des services et business process dans une architecture SOA Open Source Bruno Georges JBoss, a Division of Red Hat Agenda Cas d etude Contexte métier Les bénéfices Open Source
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig [email protected]
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig [email protected] Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
Forthcoming Database
DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of
Structure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
TD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Paxton. ins-20605. Net2 desktop reader USB
Paxton ins-20605 Net2 desktop reader USB 1 3 2 4 1 2 Desktop Reader The desktop reader is designed to sit next to the PC. It is used for adding tokens to a Net2 system and also for identifying lost cards.
Java pour le Web. Cours Java - F. Michel
Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications
Remote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2
SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES
Module BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet [email protected] 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Sécurité Informatique. Description. Prérequis. Un petit test avant de commencer s embourber
Sécurité Informatique Avertissements : Le contenu de ce document est sous licence GPL. Le document est librement diffusable dans le contexte de cette licence. Toute modification est encouragée et doit
Introduction à WebSphere MQ
Guide WMQ WAS 14/02/2008 Introduction à WebSphere MQ Luc-Michel Demey http://demey demey-consulting.fr WebSphere MQ Logiciel IBM, catégorie «middleware» Autres noms : MQSeries MQM WMQ Version 1 en 12/1994
Business Process Execution Language
Business Process Execution Language Rapport du projet de systèmes distribués d information Markus Lindström 6 mai 2009 Motivation personnelle Le sujet que j ai retenu et présenté dans le cadre du cours
Environnements de Développement
Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna [email protected] Développement des systèmes d Information Syllabus
L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager
L Orchestration de Services Web avec Orchestra Goulven Le Jeune Orchestra Project Manager D1 Bull, Architecte d un Monde Ouvert : contributeur et acteur majeur de l'open Source Applications métiers Infrastructures
Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
