Jeg skal have implementeret callback-funktionalitet i et J2EE-projekt, og har i det henseende kigget på JMS, idet dette lader til at være den pæneste løsning.
Problemet er, at jeg synes ikke, at JMS beskriver, hvordan en message når ud til klienterne?
Mere konkret forstiller jeg mig, at J2EE-klienterne skal registrere i en EJB hvilke ændringer i modellaget, som er relevant for den enkelte klient. Når en ændring i modellaget sker, skal EJB'en undersøge, hvilke klienter er interesserede i at blive informeret om denne ændring OG sende ændringen (i form af et objekt af en art) til de interesserede klienter.
JMS er et interface og beskriver derfor ikke noget om den underliggende implementation.
Det er meget nemt at putte noget ind i en message queue via JMS også inde i en J2EE container.
Spørgsmålet er vel mere hvordan client getter fra samme message kø. Hvis det kun er et internt message kø system som kommer med Trifork kan det være et problem. IBM MQ vil ikke være et problem.
Hvis du er på J2EE 1.4 så kunne du overveje en JCA 1.5 outbound adapter i stedet for.
Øhm, no offence Arne, men ovenstående fløj lidt hen over hovedet på mig. Prøver lige en lidt anden approach:
Bi-beholder J2EE-serveren - på en eller anden måde - ikke forbindelsen til en klient? I bekræftende fald, kan man ikke bruge denne forbindelse til at sende data over? Og kan man ikke forestille sig, at tilgå klient-containeren i serveren og udtrække relevante oplysninger herfra?
Arne, du skal være velkommen til at smide et svar. Din hjælp er påskønnet og brugbar.
client app (formentlig Swing)-----EJB på app-server
Og en standard EJB kald er one way. Jeg mener at have set en BEA WebLogic specific løsning på callback engang.
Så er der forskellige workarounds.
I nævnte den med at EJB'en puttede i en message queue via JMS som cleint apå så gettede fra. Det er en glimrende løsning udfra en arkitektonisk betragtning, men der er lige spørgsmålet om software og infrastruktur til det.
Mit forslag var så at EJB'en kaldte en JCA adapter som havde eller lavede en socket connection til client. Det kræver nemlig ikke at man har en fuld message queue system kørende.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.