Toon posts:

SMPP / MM7 / WAP servlet op application?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Howdie,

Een korte inleiding:
Voor een mobiele operator wil ik een service ontwikkelen. Deze service moet geïnitieerd kunnen worden door mms, sms en wap vanuit een handset. Als demo wil ik een mms terug sturen naar die zelfde handset. De gewenste taal is JAVA. Nu zit ik met een design issue.

De volgende protocollen worden gebruikt voor de verschillende diensten:
SMS: SMPP --> een persistent verbining over een TCP socket.
MMS: MM7 --> webservice gebaseerde interface (HTTP)
WAP: WML --> gaat gewoon over HTTP

In eerste instantie was ik van plan een servlet te draaien op een tomcat servet server. Ik loop echter tegen de beperking dat de lifecycle van een servlet doorgaans erg kort is en je daarnaast wel de SMPP verbinding open wilt hebben.

Nu is mijn vraag of het mogelijk is een servlet te laten draaien als een soort van extensie op een applicatie. Dan zou het ontwerp er heel globaal als volgend uit zien:


+----------+--------------------+
| SMS      |WAP/mms             |
|----------+--------------------+
| SMPP     |  servlet layer     |
+-----------+-------------------+
| Base application              |
+-------------------------------+



Mocht dit niet mogelijk zijn dan verwacht ik dat ik twee losse services moet maken en die later moet koppelen zie onderstaand.

+----------+------------+
|          SMS          |
|----------+------------+                           +---------------+
|          SMPP         |                           | MMS/WAP       |
+----------+------------+                           +---------------+
| Base application      |  ------>INTERFACE<-----   | Servlet layer |
+-----------------------+                           +---------------+


Damn was vergeten dat spaties kwijt gaan in een HTML opmaak. In woorden: De base application beheert de SMPP connectie. Als er een MMS of WAP initialisatie plaats vind, zal dit gebeuren in een servlet. Deze zal een bericht via een interface versturen naar de base application. Ook een MMS bericht terug sturen zal gebeuren vanuit de base application over de interface via de servlet

Dus de vragen:
  • Is het mogelijk java servlets te draaien op een gewone java applicatie?
  • Is er een andere geschikte oplossing die beter is en ik hier niet heb beschreven? (misschien iets van een wap server integreren en direct MM7 praten vanuit de applicatie)?
  • Zo nee, wat zou je dan gebruiken als interface tussen de base application en de servlet(tomcat)
Hoop dat alles een beetje duidelijk is anders hoor ik het wel >:)

THnx

[ Voor 5% gewijzigd door een moderator op 09-11-2006 14:03 ]


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Ik begrijp de volgende dingen niet zo goed:

• Hoezo is de lifecycle van een servlet te kort ? Hoe heb je de servlet geimplementeerd en geconfigureerd in Tomcat?
• Hoe is de SMPP service nu geimplementeerd in verhouding tot Tomcat ? Moet SMPP de connectie open houden met een client ? Zo ja, met welk doel ? Ik zie SMS:SMPP staan, vandaar dat ik het me afvroeg.

De GenericServlet (de HttpServlet heeft wel mijn voorkeur) kan in ieder geval prima dat soort dingen aan. Designtechnisch zou je wellicht kunnen denken aan een Front Controller pattern oid met de achter de juiste servicelayers voor de juiste protocollen en afhandeling.

Ik weet het niet zeker, maar ik vraag me af of je voor jezelf niet verschillende scopes door elkaar haalt (Request, Response, intermediate afhandeling met andere connecties hoeven niet allemaal in dezelfde scope / hetzelfde object te draaien).

Sundown Circus


Verwijderd

Topicstarter
Op dit moment is er nog helemaal niets geïmplementeerd. Ik ben nog bezig met het ontwerp van het geheel.

M.b.t. de lifecycle van de servlet.
Elke documentatie die ik lees heeft het over een door een cliënt gestart proces. Zolang dit proces loopt is de servlet aanwezig. Daarna word hij inactief. Tenminste zo heb ik het opgevat. :)
De SMPP verbinding dient echter door de tomcat server geïnitieerd te worden naar de SMS server. Over deze TCP verbinding, die dus 24/7 moet blijven bestaan worden zowel SMS-jes verzonden al ontvangen in het PDU formaat.

Inmiddels heb ik ook al een hoop gelezen over JBoss mogelijk dat hier een oplossing ligt i.c.m. JMX???

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Verwijderd schreef op woensdag 15 november 2006 @ 14:21:
Op dit moment is er nog helemaal niets geïmplementeerd. Ik ben nog bezig met het ontwerp van het geheel.

M.b.t. de lifecycle van de servlet.
Elke documentatie die ik lees heeft het over een door een cliënt gestart proces. Zolang dit proces loopt is de servlet aanwezig. Daarna word hij inactief. Tenminste zo heb ik het opgevat. :)
De SMPP verbinding dient echter door de tomcat server geïnitieerd te worden naar de SMS server. Over deze TCP verbinding, die dus 24/7 moet blijven bestaan worden zowel SMS-jes verzonden al ontvangen in het PDU formaat.

Inmiddels heb ik ook al een hoop gelezen over JBoss mogelijk dat hier een oplossing ligt i.c.m. JMX???
Dat dacht ik al, dat je dacht dat de servlet door de client wordt geinit. Dat is niet zo. Tomcat initialiseert de servlet bij het opstarten van tomcat en blijft in principe draaien (afhankelijk van ontwerp en configuratie natuurlijk) totdat je tomcat afsluit.

Wat wel wordt geinitialiseerd door de client is een verbinding naar de al draaiende servlet. In de HttpServlet wordt een request afgehandeld door doGet en doPost, in de genericservlet door de service() methode. De servlet is er voor ontworpen om 1 keer te worden opgestart en vandaaruit meerdere requests af te handelen. Daarachter kan je weer andere services / c.q. classes hebben die zorgen voor verdere afhandeling (zoals connection pooling naar een DB .. of een verbinding naar een andere server)

Voor de rest over een TCP verbinding die 24 / 7 open moet staan: waarom moet dat ? Mag dat altijd maar 1 en dezelfde verbinding zijn ?

Anyway, voordat je je gaat verdiepen in JBoss, zou ik je aanraden om eerst je te verdiepen in hoe servlets , lifecycle scopes en dergelijk in elkaar zitten. Op java.sun.com is daar erg veel over te vinden, bijvoorbeeld op http://java.sun.com/javaee/reference/ .. Een goed startpunt hiervoor. :)

Sundown Circus


Verwijderd

Topicstarter
Aha, hu komt er iets van duidelijkheid, Ik was inderdaad in de veronderstelling dat die servlet client initiated is.

Over die 247/7 TCP verbinding: Jup dat mag er maar 1 zijn en 24 uur. Er is namelijk maar een account op de smsc en een tweede login wordt niet geaccepteerd. En als ik dat ook niet verkeerd begrepen heb, wordt na verbinding zowel te verzenden als te ontvangen SMS-jes over die pijp geduwd. En ik wil niet elke keer die verbinding opbouwen om te pollen of er SMS-jes voor mij zijn. Hier moet ik lijkt mij iets van een singleton oplossing voor bedenken.

Voor het verzenden en ontvangen van de betreffende berichten zat ik aan een producer consumer oplossing te denken.

In ieder geval alvast bedankt voor deze fijne opheldering