Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: WebService

  1. #1
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202

    WebService

    Ciao a tutti,

    Mi trovo nella seguente situazione e vorrei intraprendere la strada più corretta e mi affido a un vostro consiglio.

    Ho una applicazione web che gestisce interventi.
    Ho la necessità di sviluppare un proceduta tramite la quale un software di terze parti (vb.net o java), possa interagire con la mia applicazione ed inviarmi una serie di informazione da cui poi creo gli interventi e tutte le info accessorie..

    Non so per quale motivo mi sono venuti in mente i web service (anche sapendo veramente poco cosa siano).

    La mia idea è che il file mi spedisca un file xml contentente tutte le informazioni utili e che poi io possa elaborarlo.

    Sono sulla strada giusta oppure mi consigliate un'altra soluzione?

    Leggendo un po qua e un po la noto che non si parla mai di file xml ma di WebService di tipo SOAP.
    Ho capito che dovrebbe essere uno standard W3C e che in sostanza si tratta di un file xml.

    Non riesco a capire cosa devo avere io lato server....
    Cioè devo avere una pagina .php dedicata e un sw esterno richiama quella pagina passando il file xml?

    Qual ora la supposizione sopracitata sia vera come devo costruire la mia pagina affinchè riceva il file xml (SOAP)?

    Grazie a tt quelli che mi daranno anche solo una piccola mano
    Che mestiere difficile.....essere da soli ancora di più

  2. #2
    ti è venuto in mente "webservice" perchè normalmente servono proprio a quello: interfacciare due applicazioni diverse

    ti è anche venuta in mente la parola SOAP perchè è un protocollo largamente usato sopratutto in ambiente enterprise

    ora, che Wikipedia si ostini a dire che SOAP sia un "protocollo leggero", ovviamente, non vuol dire che in realtà lo sia, soprattutto da quando esiste JSON, ma che sia un protocollo universalmente supportato e "amato", ok.

    Quindi la scelta è tutta tua... io personalmente non implementerei SOAP a meno di qualche imposizione dirigenziale, ma farei qualcosa di più snello strutturando correttamente i webservice, magari con la possibilità di avere un doppio formato XML/JSON.

    SI: devi avere "una pagina php dedicata e un sw esterno la richiama passando un file xml". Io però comincerei a leggermi un pò di articoli sui webservice e SOA in generale
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Mi sono letto un po di documentazione in giro...
    Ho capito che gli attori sono 2 (come nella maggior parte dei casi)
    Mio Lato Server (PHP)
    Lato Client (Forse java, ma poco importa)...

    Questo articolo mi ha msso un po in confusione :
    http://www.html.it/articoli/php-socket-e-http-1/

    Mi pare di aver capito che come la si giri il protocollo di comunicazione sia comunque http, poi che il client lo faccia tramite http o emulazione tramite socket poco importa, per me è sempre la solita solfa.

    Per ora non utilizzo urlrewrite e ho organizzato la mia applicazione in questa logica grosso modo : nomepagina.php?funz=nome_o_rif_metodo_richiesto.

    Quello che devo comunicare a chi sviluppa la parte client è che se vuole eseguire una determinata un http request header alla seguente pagina passando il parametro funz.

    Analizzando l'header inviatomi dovrei capire di che diavolo di richiesta si tratta : json o xml...

    Una volta capito so come devo trattare i dati che mi arriveranno...

    Tramite una cosa simile : http://blog.djakapm.com/2012/07/13/h...uest-with-php/

    Dovrei essere in grado di prelevare il file xml o json e leggerlo e fare tutto cio che voglio...

    Partendo dal presupposto che tutto quello scritto sopra non sia una emerita stronzata ora dovro dare un output a questa richiesta,

    Percui sempre in base all'header compongo la mia risposta xml o json e modificando in modo appropriato header di output lo stampo.

    Cosa ne dici? Ci dovrei essere o mi sono dimenticato qualcosa o non ho capito un cxxxo oppure hai delle dispense da consigliarmi prima di spararle ancora grosse...

    Grazie mille per il tuo aiuto sei sempre disponibilissimo
    Che mestiere difficile.....essere da soli ancora di più

  4. #4
    è la solita solfa:

    - ti arriva una richiesta http
    - analizzi la richiesta http
    - a seconda della funzione richiesta, elabora i dati ricevuti e prepari una risposta
    - rispondi alla richiesta http nel modo opportuno

    quindi più o meno ci stà quello che hai scritto.

    La prima cosa da fare è strutturare il webservice, quindi prendere carta e penna - o l'ide di fiducia - e progettarlo, poi implementarlo in php. La progettazione genereràla documentazione necessaria ad una terza persona per implementare il client, e servirà a te per avere le idee chiare su quello che devi fare. Quindi:

    - definire il tipo di webservice (REST/XML-RPC/SOAP/..)
    - autenticazione/autorizzazione
    - stateless o meno
    - formati input accettati (xml/json o entrambi )
    - definizione dei servizi esposti

    ad esempio, seguendo la filosofia REST, diciamo che tu stai facendo un webservices di un sistema che gestisce prodotti, allora avresti un api:

    /api.php/products

    che accetta i metodi http GET/POST/PUT/DELETE con

    GET /api.php/products che ritorna l'elenco dei prodotti
    GET /api.php/products?id=XX che ritorna il prodotto id=XX
    POST /api.php/products che crea un nuovo prodotto (nel body della request ci sarà la rappresentazione in json/xml del prodotto)
    PUT /api.php/products?id=XX che modificherà il prodotto id=XX
    DELETE /api.php/products?id=XX che eliminerà il prodotto id=XX

    oppure in approccio più RPC, i metodi:

    getProducts/getProduct(ID)/editProduct(ID)/deleteProduct(ID)/createProduct

    Insomma, vedi te
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Ho una sola piccola domanda...
    Il concetto di web services è che un parco di client possano accedere a delle api comuni che eseguano dei metodi.
    Ma nel caso volessi forzare un post di dati verso un client specifico questo presumo che esula dal concetto web services.
    O per lo meno il client deve predisporre di un suo web services che tramite una connessione con socket possa comunicare con lui.
    Premesso che il client in questione ha una architettura di java o dot.net questo è possibile oppure ho scritto boiate?

    Ciao
    Paolo
    Che mestiere difficile.....essere da soli ancora di più

  6. #6
    il webservices non può parlare col client a meno di rispondere ad una richiesta del client. Per una comunicazione bidirezionale si passa ai socket, in genere adottando una logica client-server. Ovviamente quanto detto per il webservice perde di significato, perchè col socket ci possono essere altre metodologie per lo scambio di dati (anche se visto la varietà dei tuoi client che possono essere scritti in linguaggi diversi, la serializzazione dei dati in json/xml resta l'unica scelta nello scambio dei dati)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Ciao scusami se ti disturbo ancora,

    Guardarmi un po di documentazione in giro mi sembra che l'approccioa xml-rpc sia il più versatile dato la chiamata al metodo.

    Ho però problemi nel creare la struttura xml addeguata.

    Ovvero, le mie necessità sono avere un xml che contenga i parametri di autenticazione.
    Una struttura di informazioni organizzata non troppo semplice
    Cioè
    Array di interventi :
    Per ogni intervento, oltre alle informazioni dell'intervento, devo ricevere anche le informazioni dei vari allegati (che al loro interno contengono n informazioni)...

    Strutture così complesse non ne ho trovate in giro e soprattutto non ho trovato documentazioni che ti aiutino a costruire la struttura xml-rpc in modo adeguata.

    Sai consigliarmi qualche dispensa che descrive la struttura da utilizzare in modo dettagliata?

    Grazie mille
    Che mestiere difficile.....essere da soli ancora di più

  8. #8
    La rappresentazione dell'intervento la devi decidere te, cercando di fare una cosa che si adatti alle esigenze e che sia sufficientemente flessibile da rappresentare ogni tipo di intervento. C'hai poco da cercare dispense a riguardo diciamo che avrai un oggetto intervento con N allegati, ogni allegato ha un set di attributi (che immagino sia un insieme finito) oppure un array di attributi (se il set è dinamico). Cioè così ad occhio non mi pare una struttura molto complessa, ma non conosco esigenze e situazione difficile da dire.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    mmmm, leggendo su doc html.it sembra che ci sono delle parole riservate e una struttura ben determinata....
    ho provato a buttare giù una bozza ma non so assolutamente dire se è corretta o meno.
    Codice PHP:
    <?xml version=&#8221;1.0”?>
    <methodCall>
        <methodName>classe.metodo</methodName>
        <params>
            <param>
                <value>
                    <!--STRUCT PER I DATI DI ACCESSO-->
                    <struct>
                      <member>
                        <Name>User</Name>
                        <value>
                          <string>utente_auticazione</string>
                        </value>
                      </member>
                      <member>
                        <Name>Password</Name>
                        <value>
                          <string>Password</string>
                        </value>
                      </member>
                    </struct>
                </value>
            </param>
            <param>
                <value>
                    <!--ARRAY DI STRUCT INTERVENTI 1....N-->
                    <array>
                        <data>
                            <value>    
                                <!--STRUCT INTERVENTO 1-->
                                <struct>
                                    <member>
                                        <Name>intervento1.dato1</Name>
                                        <value>
                                            <string>valore.dato1</string>
                                        </value>
                                    </member>
                                    <member>
                                        <Name>intervento.datoN</Name>
                                        <value>
                                            <string>valore.datoN</string>
                                        </value>
                                    </member>
                                    <!-- IL TERZO MEMBER CORRISPONDE ALL'ALLEGATO 1 
                                           E LA STRUTTURA NEL VALUE CORRISPONDE AGLI 
                                           ATTRIBUTI DELL'ALLEGATO 1 -->
                                    <member>
                                        <Name>Allegato 1</Name>
                                        <value>
                                            <struct>
                                                <member>
                                                    <Name>allegato.dato1</Name>
                                                    <value>
                                                        <string>valore.dato1</string>
                                                    </value>
                                                </member>
                                                <member>
                                                    <Name>allegato.dato2</Name>
                                                    <value>
                                                        <string>valore.dato2</string>
                                                    </value>
                                                </member>
                                            </struct>
                                        </value>
                                    </member>
                                    <member>
                                        <Name>Allegato 2</Name>
                                        <value>
                                            <struct>
                                                <member>
                                                    <Name>allegato.dato1</Name>
                                                    <value>
                                                        <string>valore.dato1</string>
                                                    </value>
                                                </member>
                                                <member>
                                                    <Name>allegato.dato2</Name>
                                                    <value>
                                                        <string>valore.dato2</string>
                                                    </value>
                                                </member>
                                            </struct>
                                        </value>
                                    </member>                                
                                </struct>
                            </value>
                            <value>
                                <!-- STRUCT INTERVENTO 2 -->
                                <struct>
                                    <member>
                                        <Name>intervento1.dato1</Name>
                                        <value>
                                            <string>valore.dato1</string>
                                        </value>
                                    </member>
                                    <member>
                                        <Name>intervento.dato2</Name>
                                        <value>
                                            <string>valore.dato2</string>
                                        </value>
                                    </member>
                                    <member>
                                        <Name>Allegato 1</Name>
                                        <value>
                                            <struct>
                                                <member>
                                                    <Name>allegato.dato1</Name>
                                                    <value>
                                                        <string>valore.dato1</string>
                                                    </value>
                                                </member>
                                                <member>
                                                    <Name>allegato.dato2</Name>
                                                    <value>
                                                        <string>valore.dato2</string>
                                                    </value>
                                                </member>
                                            </struct>
                                        </value>
                                    </member>
                                    <member>
                                        <Name>Allegato 2</Name>
                                        <value>
                                            <struct>
                                                <member>
                                                    <Name>allegato.dato1</Name>
                                                    <value>
                                                        <string>valore.dato1</string>
                                                    </value>
                                                </member>
                                                <member>
                                                    <Name>allegato.dato2</Name>
                                                    <value>
                                                        <string>valore.dato2</string>
                                                    </value>
                                                </member>
                                            </struct>
                                        </value>
                                    </member>                                
                                </struct>
                            </value>                        
                        </data>
                    </array>
                </value>
            </param>        
        </params>
    </methodCall>
    Ultima modifica di Fractals87; 01-10-2013 a 11:44
    Che mestiere difficile.....essere da soli ancora di più

  10. #10
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    aspetta prima o poi riusciro a mantenere identazione
    Che mestiere difficile.....essere da soli ancora di più

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.