Comprensione della differenza tra servizi Web e livello di servizio

6

La mia comprensione di un servizio Web e di un livello di servizio è la seguente:

Livello servizio : un livello di astrazione che espone un insieme di operazioni comuni che possono essere utilizzate da più utenti. Ad esempio, ho un database contenente i dati dei clienti. Più applicazioni potrebbero voler aggiungere / aggiornare / eliminare dati in questo archivio dati. Ogni applicazione avrà la logica per aggiungere / aggiornare / cancellare i dati nell'archivio dati - quindi la duplicazione della logica. Invece, vorrei fornire un livello di servizio che espone metodi per aggiungere / aggiornare / eliminare le informazioni sui clienti. Quindi la logica non è più duplicata e le applicazioni devono semplicemente usare il mio livello di servizio per svolgere queste attività. Il dominio specifico in cui opera il livello di servizio qui si trova sulle informazioni del cliente.

Webservices : qualsiasi macchina per il trasferimento dei dati sul Web può essere eseguita utilizzando i servizi web. L'implementazione del webservice può essere SOAP, REST, vanilla RMI, ecc. Ei dati possono essere serializzati come XML, JSON, binario, ecc ... Supponendo di esporre un webservice basato su SOAP per il caso d'uso elencato nel mio esempio sopra , Potrei fornire un'interfaccia basata su SOAP o REST per aggiungere / eliminare / aggiornare le informazioni sui clienti. Il dominio qui è anche il cliente.

Sulla base della mia comprensione, ritengo che i servizi web siano un sottoinsieme del livello di servizio. L'implementazione per il caso d'uso di esempio può essere fornita nella forma di un file java .jar o di una DLL che fornisce API pertinenti per eseguire l'attività. Tutte le applicazioni richieste dovranno scaricare il file .jar o DLL appropriato per eseguire azioni sui dati dei clienti. Mentre webservice è specifico per la comunicazione machine-machine sul web.

La mia comprensione è corretta?

    
posta Punter Vicky 05.11.2015 - 22:07
fonte

3 risposte

9

Un livello di servizio è un livello in un'applicazione che nasconde i dettagli specifici dell'implementazione per un sistema e fornisce un'uniforme e interfaccia coerente con le operazioni in quel sistema.

Un servizio web è uno schema di comunicazione tra i dispositivi.

Il livello di servizio definisce un limite per il sistema in cui i sistemi esterni possono interagire con esso. Se lo fai puramente in codice fornendo una DLL, altri sistemi si interfacciano direttamente con il tuo livello di servizio. In alternativa, puoi fornire un servizio web sulla tua DLL, nel qual caso altri sistemi si interfacciano con il webservice, che si interfaccia con la DLL.

Confrontalo con un negozio che ha sia un contatore fisico che un negozio online. I venditori sono il "livello di servizio": "nascondono" i dettagli di implementazione relativi alla registrazione di una vendita nel registro Point of Sale, gestiscono le procedure che si occupano dell'esecuzione di acquisti aggiuntivi per un prodotto esaurito, mettere il denaro dal cliente nel posto giusto e così via.

Nel negozio online, il tuo sito web funge da "servizio web": un cliente non deve più parlare con un venditore, ma effettua un ordine attraverso il sito web. Questo ordine viene passato a un venditore, che esegue di nuovo le stesse cose delineate. Il modello di comunicazione è diverso, ma il cliente si preoccupa solo di ottenere il prodotto e sa che ha una varietà di modi per farlo.

    
risposta data 13.11.2015 - 09:24
fonte
2

Il livello di servizio è un insieme di funzioni aziendali disponibili in un'applicazione. Ed è più di un confine logico.

Solitamente queste funzioni sono esposte in un'applicazione che utilizza uno o più endpoint come UI, webservice o processo di importazione dati.

Quindi un servizio Web non è un sottoinsieme di un livello di servizio, ma è un modo di esporlo.

    
risposta data 13.11.2015 - 12:54
fonte
2

Un servizio web è un servizio, disponibile su una rete basata sul Web, ovvero accessibile tramite HTTP (non necessariamente su Internet).

Un servizio è un'unità logica di software, distribuita su una particolare posizione in una rete, pensata per essere utilizzata da altre unità software.

Un livello di servizio è un livello architettonico, costituito da servizi correlati logicamente.

Elaborazione:

Servizio Web

Nell'era pre-REST, la definizione più accettata di servizio web era la definizione fornita da W3C

A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.

Al giorno d'oggi, il termine viene utilizzato anche per i servizi conformi a REST, quindi questa definizione deve essere ampliata. La parola "Web" deriva dal World Wide Web, quindi è un web come www, cioè basato su HTTP, ma non necessariamente in tutto il mondo. Ecco perché penso che la distinzione tra un servizio web e tutti gli altri servizi sia che un servizio web è accessibile tramite HTTP.

servizio

Un servizio è l'entità principale di un'architettura orientata ai servizi.

Servizi, componenti e oggetti condividono tutte le proprietà di unità di software liberamente accoppiate, offrendo un insieme di metodi correlati logicamente, nascondendo la loro implementazione dietro un'interfaccia. I componenti / oggetti sono inclusi nelle applicazioni come JAR, DLL o qualsiasi altra cosa. In altre parole, ogni applicazione esegue le proprie istanze.

I servizi sono diversi da componenti / oggetti nel senso che vengono distribuiti separatamente. Più applicazioni possono utilizzare la stessa istanza del servizio. Ogni servizio ha la propria posizione di rete. Questo è paragonabile a ciò che si intende per SaaS (Software as a Service): anziché spedire una copia del software al cliente, più clienti accedono allo stesso servizio via Internet.

I servizi in genere consistono di uno o più componenti e componenti costituiti da uno o più oggetti (vedi wikipedia ).

Livello servizio

Questa è una combinazione della parola 'servizio', come sopra definito, e la parola 'livello', che si riferisce a un livello di astrazione in un'architettura a strati. Tipicamente, un database centrale è incapsulato da un numero di servizi: ogni servizio in quel livello può accedere al database, ma tutti gli altri software dovrebbero accedere al database attraverso quel livello. Tuttavia, i servizi non sono necessariamente organizzati nei livelli di servizio. Al contrario, per aumentare l'indipendenza dei servizi, sarebbe meglio lasciare che ogni servizio abbia il proprio spazio di archiviazione, non accessibile da altri servizi (anche se potrebbero esserci motivi per allentare questo principio). Di solito una SOA non ha un livello di servizio, ma una rete di servizi.

    
risposta data 13.11.2015 - 14:31
fonte

Leggi altre domande sui tag