Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [JAVA]Interfacciamento Webservice e controllo valori

    Ciao a tutti! :-)

    Scrivo per porvi una questione e vedere se qualcuno può aiutarmi con la sua esperienza...

    Allora, sostanzialmente io ho da realizzare un software che prevede l'interfacciamento di un workflow (composto da una serie di moduli-task rappresentanti fasi di un processo industriale) con un web service SOAP che "rappresenta" una rete di sensori e mi fornisce temperature in uscita...
    Ciascuno di questi moduli, secondo il funzionamento del workflow, viene affidato ad una servlet chiamata custom service che se ne occupa dell'esecuzione.

    Bene, questo custom service dovrebbe effettuare periodicamente dei controlli su questi valori di temperatura ricavati dai sensori (vedere se sono contenuti entro un certo range) e in base al risultato di validità ottenuto sospendere o continuare l'esecuzione.

    Il problema che mi si presenta è quello di stabilire come inserire il controllo sui valori...nel senso:

    meglio invocare periodicamente il web service ricavando i valori di temperature e poi, lato client (che in sostanza sarebbe il custom service), effettuare i controlli, o meglio effettuare i controlli direttamente lato server (modificando il web service e passando tramite client i range da rispettare) e ritornare al client direttamente il risultato di tali controlli?
    Io pensavo quasi alla seconda ipotesi, in modo da poter realizzare magari qualcosa di asincrono come la gestione interrupt: il webservice, opportunamente modificato, continua ad analizzare le temperature e poi nel caso non siano valide ritorna il risultato al client...
    ma è possibile secondo voi e la vostra esperienza, realizzare qualcosa di simile?

    Vi ringrazio dell'attenzione...
    Se qualcuno ha qualche suggerimento che mi può aiutare, grazie in anticipo!

    Ciao

  2. #2
    Secondo me è molto meglio la seconda.
    Dipende anche dalla frequenza con la quale vuoi effettuare i controlli della temperatura. Se hai intenzione di verificarli con una frequenza molto elevata, allora ti conviene usare una funzione nel tuo webservice alla quale passi le informazioni su un piccolo server (creato dal lato del client), magari un id range ed il range di valori.
    Io userei un id range nel caso in cui magari volessi creare piu' livelli di allerta, ma cmq dipende da come vuoi progettare il tuo software.

    Se riuscissi ad effettuare i controlli di superamento dei range nella stessa procedura che riceve i dati dai sensori sarebbe meglio. Altrimenti dovresti fare un ciclo di controllo sui dati dei sensori da un altro thread.
    lolide
    Java Programmer

    Informati

  3. #3
    Beh, intanto grazie della risposta. Molto gentile...

    Per quanto riguarda la soluzione, in effetti era ciò che pensavo anch'io; modificare il mio WebService introducendo una procedura che lo portasse ad un livello diciamo più alto: non restituire più le temperature ma il risultato dei controlli sulle temperature.
    Ovviamente, dovendo introdurre nuovi metodi, dovrò modificare anche il relativo WSDL, giusto?
    In pratica vado ad integrare il mio webservice.

    Solo una cosa vorrei mi spiegassi meglio, se non ti è di troppo disturbo:
    cosa intendi di preciso con lo scrivere di passare le informazioni alla funzione su un piccolo server creato dal lato del client? Mi sfugge un po' ciò che intendi dire...

    Grazie mille dell'attenzione

  4. #4
    Originariamente inviato da Semenzara85
    Beh, intanto grazie della risposta. Molto gentile...

    Per quanto riguarda la soluzione, in effetti era ciò che pensavo anch'io; modificare il mio WebService introducendo una procedura che lo portasse ad un livello diciamo più alto: non restituire più le temperature ma il risultato dei controlli sulle temperature.
    Ovviamente, dovendo introdurre nuovi metodi, dovrò modificare anche il relativo WSDL, giusto?
    In pratica vado ad integrare il mio webservice.

    Solo una cosa vorrei mi spiegassi meglio, se non ti è di troppo disturbo:
    cosa intendi di preciso con lo scrivere di passare le informazioni alla funzione su un piccolo server creato dal lato del client? Mi sfugge un po' ciò che intendi dire...

    Grazie mille dell'attenzione
    Non so se quando invii i range vuoi lasciare aperta la connessione allora non servirebbe, altrimenti dovresti creare un server dal lato del client a cui il ws mandera' il segnale del superamento del range.
    lolide
    Java Programmer

    Informati

  5. #5
    Originariamente inviato da lolide
    Non so se quando invii i range vuoi lasciare aperta la connessione allora non servirebbe, altrimenti dovresti creare un server dal lato del client a cui il ws mandera' il segnale del superamento del range.
    Ah. Nel senso che o invio i range dal client e mantenendo aperta la connessione, nel caso peggiore per tutta la durata del monitoraggio, aspetto di ottenere la risposta del webservice...
    oppure mando i range dal client, il web service fa il suo monitoraggio a connessione chiusa e a fine monitoraggio contatta questo server lato client per comunicargli il tutto, giusto?

    Il mio lato client, in questo caso, sarebbe costituito dal client server di cui ho parlato all'inizio...che alla fine è in pratica una servlet. In questo caso questo piccolo server lato client che dovrei realizzare, come si inserisce in tale contesto visto che già il client, di per se, sarebbe in sostanza un server?

    Grazie dell'aiuto

  6. #6
    Originariamente inviato da Semenzara85
    Ah. Nel senso che o invio i range dal client e mantenendo aperta la connessione, nel caso peggiore per tutta la durata del monitoraggio, aspetto di ottenere la risposta del webservice...
    oppure mando i range dal client, il web service fa il suo monitoraggio a connessione chiusa e a fine monitoraggio contatta questo server lato client per comunicargli il tutto, giusto?

    Il mio lato client, in questo caso, sarebbe costituito dal client server di cui ho parlato all'inizio...che alla fine è in pratica una servlet. In questo caso questo piccolo server lato client che dovrei realizzare, come si inserisce in tale contesto visto che già il client, di per se, sarebbe in sostanza un server?

    Grazie dell'aiuto
    Si per server intendo un servizio in ascolto in attesa dei messaggi dal WS. Se implementi il client con una servlet va bene lo stesso usare la stessa servlet.
    Non mi piace molto l'idea di lasciare aperta la connessione.. dovresti gestire disconnessioni ecc...
    lolide
    Java Programmer

    Informati

  7. #7
    Quindi, riassumendo un po' l'idea, facendo una sintesi...

    io ho un task del workflow in esecuzione, la cui esecuzione è affidata al custom service.
    Ho il mio custom service (una servlet) la quale (passando come parametri il range e la durata dei controlli) invoca il mio webservice delle temperature. Tale webservice sarà modificato opportunamente integrandolo con un metodo per il controllo (giusto?), in modo tale che, all'invocazione, non mi ritorni più le temperature bensì inizi il monitoraggio delle stesse...
    Ora, nel momento in cui il mio metodo rilevasse una temperatura fuori range, devo interrompere il monitoraggio e ritornare al custom service una risposta negativa: il custom service interromperà l'esecuzione del modulo.
    Nel caso in cui i controlli non rilevino violazioni del range e continuino quindi per tutta la durata, alla fine il webservice ritornerà una risposta positiva al custom service.
    Ovviamente, come detto, non mantenendo la connessione sempre aperta, se possibile.
    Corretta come idea?

    Una domanda: ma nel momento il mio custom service (servlet) va ad invocare il web service e questo con il suo metodo esegue il monitoraggio, nel frattempo come rimane la Servlet? Cioè, il suo stato come resta?

  8. #8
    Originariamente inviato da lolide
    Si per server intendo un servizio in ascolto in attesa dei messaggi dal WS. Se implementi il client con una servlet va bene lo stesso usare la stessa servlet.
    Non mi piace molto l'idea di lasciare aperta la connessione.. dovresti gestire disconnessioni ecc...
    Quindi, riassumendo un po' l'idea, facendo una sintesi...

    io ho un task del workflow in esecuzione, la cui esecuzione è affidata al custom service.
    Ho il mio custom service (una servlet) la quale (passando come parametri il range e la durata dei controlli) invoca il mio webservice delle temperature. Tale webservice sarà modificato opportunamente integrandolo con un metodo per il controllo (giusto?), in modo tale che, all'invocazione, non mi ritorni più le temperature bensì inizi il monitoraggio delle stesse...
    Ora, nel momento in cui il mio metodo rilevasse una temperatura fuori range, devo interrompere il monitoraggio e ritornare al custom service una risposta negativa: il custom service interromperà l'esecuzione del modulo.
    Nel caso in cui i controlli non rilevino violazioni del range e continuino quindi per tutta la durata, alla fine il webservice ritornerà una risposta positiva al custom service.
    Ovviamente, come detto, non mantenendo la connessione sempre aperta, se possibile.
    Corretta come idea?

    Una domanda: ma nel momento il mio custom service (servlet) va ad invocare il web service e questo con il suo metodo esegue il monitoraggio, nel frattempo come rimane la Servlet? Cioè, il suo stato come resta?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.