Quando ho bisogno di servizi web?

5

Ci sono delle linee guida generali per capire quando dovrei prendere in considerazione l'uso (come cibo per cani) e fornire servizi web, e quando non dovrei preoccuparmi di loro? O qualsiasi materiale di lettura a cui puoi indirizzarmi?

Il mio progetto è in PHP, ma non mi interessa se è indipendente dal linguaggio.

    
posta rlb.usa 19.10.2011 - 19:57
fonte

3 risposte

9

Fondamentalmente, dovresti implementare un servizio web quando hai funzionalità che, per qualsiasi ragione, richiedono la centralizzazione su un computer che controlli, ma che deve essere direttamente accessibile dagli utenti su molti computer che potresti non controllare.

In genere, le ragioni di tale centralizzazione sono:

  • La funzionalità richiede l'accesso a un archivio dati dinamico di grandi dimensioni che sarebbe impossibile da distribuire nella sua interezza a tutti gli utenti.
  • La funzionalità richiede un notevole muscolo computazionale che, di nuovo, sarebbe impossibile da fornire a tutti gli utenti o aspettarsi che siano disponibili.
  • La funzionalità esiste per fornire una sorta di accesso controllato alle informazioni o alle informazioni riservate. Semplicemente non puoi fidarti di nulla sul lato remoto di una connessione Internet.
  • La funzionalità deve essere indipendente dalla piattaforma in modo che possa essere utilizzata dai programmi eseguiti su una varietà di piattaforme. Nessuno linguaggio di programmazione è indipendente dalla piattaforma al 100%, ma molti livelli di comunicazione (come WSDL / SOAP e HTML / HTTP) sono.

In tutti i casi, è necessario distinguere la funzionalità di cui si parla in quanto più coinvolgente del servire pagine web. Il meccanismo effettivo utilizzato è in realtà molto simile, ma il destinatario previsto non è un browser (e quindi un utente finale ha semplicemente bisogno di un'interfaccia utente), ma un codice (che utilizzerà i risultati del proprio servizio nel proprio programma per i propri scopi).

Per fare questo, esponi le tue funzionalità come un servizio web, a cui i clienti possono inviare richieste e alle quali puoi scegliere, se tutto sembra kosher, rispondere.

    
risposta data 19.10.2011 - 20:55
fonte
8

Non c'è una risposta esaustiva a questo - dipende da molte variabili.

In generale, si dovrebbe implementare un servizio Web quando è necessario fornire un'API (internamente e / o esternamente) che avrà più utenti (come in diverse applicazioni) e che dovrebbe essere consumata sulla rete (usando HTTP ).

Se c'è solo un'applicazione che utilizzerà l'API (o almeno l'unica attesa ), non c'è molto senso nel creare un servizio web (metterei in dubbio la necessità di un'API in tal caso).

    
risposta data 19.10.2011 - 20:06
fonte
3

Non ne so abbastanza del tuo progetto. Oltre alle altre risposte già pubblicate, i servizi Web consentono ai consumatori di dati di accedere ai dati su Internet senza sapere come vengono memorizzati i dati o dove sono archiviati o persino il formato della memoria. Il contratto tra il cliente e il servizio è tutto ciò che devi sapere.

Se ti aspetti che la tua applicazione venga utilizzata da molti sistemi e non vuoi esporre il tuo modello di dati o la logica usata per accedere a questi dati per qualsiasi motivo a questi altri sistemi e desideri comunque ottenerne alcuni o tutti i dati, Web Services è un buon candidato per questo.

I servizi Web sono il fulcro di SOA. SOA consente al tuo sistema di integrarsi e integrarsi più facilmente. Per il consumatore del servizio, è sempre più semplice usare il servizio piuttosto che costruirne i meccanismi.

I servizi Web sono indipendenti dalla piattaforma. È possibile chiamare il servizio per ottenere i dati indipendentemente dalla tecnologia del servizio. Tuttavia, sia il consumatore del servizio che il servizio devono concordare sul formato di scambio dei dati, ecc.

"Attualmente ci sono due scuole di pensiero nello sviluppo di servizi web: il tradizionale approccio basato sugli standard (SOAP) e concettualmente più semplice e il nuovo ragazzo più trendy sul blocco (REST)." Vedi Rest vs SOAP

I servizi Web sono una buona scelta quando si accede a dati su diversi database poiché astrae le origini dati.

I servizi Web vengono utilizzati dagli archivi dati che utilizzano NoSQL, come Amazon SimpleDb e altri. I servizi Web sono utilizzati dagli strumenti di Business Process Modeling per creare processi dai flussi BPM.

I servizi Web e le SOA sono oggi soggetti importanti nell'IT. Ci sono interi libri dedicati a questi argomenti.

Il sito Molti video ha molti video sull'argomento.

    
risposta data 19.10.2011 - 22:47
fonte

Leggi altre domande sui tag