Quali servizi web ci sono? Cos'è un servizio web? Implementazione tecnica dei servizi web

Il servizio Web (servizio) è un programma che organizza l'interazione tra i siti. Le informazioni da un portale vengono trasferite a un altro.

Ad esempio, c'è una compagnia aerea. Ha molti voli, il che significa che ha molti biglietti. Trasmette informazioni attraverso un servizio web a un sito aggregatore di viaggi. Un utente che accede all'aggregatore potrà acquistare direttamente lì i biglietti per questa compagnia aerea.

Un altro esempio di servizi Web è un sito di monitoraggio meteorologico che contiene informazioni sulle condizioni meteorologiche in una specifica città o paese nel suo complesso. Queste informazioni vengono spesso utilizzate anche da terze parti.

Le informazioni su Internet sono varie. I siti sono gestiti sistemi diversi. Vengono utilizzati diversi protocolli di trasmissione e crittografia. I servizi web semplificano lo scambio di informazioni tra diversi siti.

Architettura e protocolli dei servizi web

È possibile definire 3 autorità che interagiscono tra loro: catalogo, appaltatore e cliente. Dopo aver creato il servizio, l'appaltatore lo registra nel catalogo e il cliente trova lì il servizio.

Il meccanismo di scambio dei dati è definito nella Descrizione dei servizi Web. Si tratta di una specifica che copre formati di inoltro, tipi di contenuto, protocolli di trasporto utilizzati nel processo di scambio di informazioni tra il cliente e il trasportatore del servizio.

Oggi, diverse tecnologie vengono spesso utilizzate per implementare vari servizi web:

  1. TCP/IP è un protocollo compreso praticamente da chiunque apparecchiature di rete, dai mainframe a dispositivi portatili e PDA.
  2. HTML è un linguaggio di markup universale utilizzato per visualizzare contenuti sui dispositivi consumer.
  3. XML è uno strumento universale per l'elaborazione di tutti i tipi di dati. Altri protocolli di scambio di informazioni possono funzionare sulla sua base: SOAP e WSDL.
  4. UDDI è una fonte universale di riconoscimento, integrazione e descrizione. Funziona, di regola, nelle reti private e non ha ancora trovato una distribuzione sufficiente.

La versatilità delle tecnologie presentate è la base per comprendere i servizi web. Operano su tecnologie standard indipendenti dai fornitori di applicazioni e da altre risorse di rete. Può essere utilizzato in qualsiasi sistemi operativi, server applicativi, linguaggi di programmazione, ecc.

Vantaggi

  • Creare le condizioni necessarie per l'interazione dei componenti software, indipendentemente dalla piattaforma.
  • I servizi Web si basano su protocolli standard aperti. Grazie all'introduzione di XML, la creazione e la configurazione dei servizi web è semplificata.
  • L'utilizzo di HTTP garantisce l'interazione dei sistemi attraverso l'accesso alla rete.

Screpolatura

  • Basse prestazioni e grande volume di traffico, rispetto ai sistemi RMI, CORBA, DCOM, a causa dell'uso di messaggi XML nel contesto del testo.
  • Livello di sicurezza. Tutti i servizi Web moderni devono implementare la codifica e richiedere l'autorizzazione dell'utente. Durante lo sviluppo si decide se HTTPS è sufficiente o se sono necessari protocolli più affidabili, come la crittografia XML, SAML, ecc.

Attività dei servizi Web

I servizi Web possono essere utilizzati in molte aree.

Transazioni B2B

L'integrazione dei processi avviene immediatamente, senza la partecipazione delle persone. Ad esempio, aggiornando il catalogo del negozio online con nuovi prodotti. Vengono portati al magazzino e il magazziniere annota l'arrivo nel database. Le informazioni vengono automaticamente trasferite al negozio online. E l'acquirente, invece di contrassegnare "Esaurito" sulla scheda prodotto, ne vede la quantità.

Integrazione dei servizi aziendali

Se l'azienda utilizza programmi aziendali, il servizio web aiuterà a organizzare il lavoro congiunto.

Creazione di un sistema client-server

I servizi vengono utilizzati per configurare il funzionamento del client e del server. Ciò offre vantaggi:

  • non puoi venderlo da solo Software, ma rendono l'accesso al servizio web a pagamento;
  • È più semplice risolvere i problemi utilizzando software di terze parti;
  • è più semplice organizzare l'accesso ai contenuti e ai materiali del server.

Un servizio web è un'applicazione che semplifica la configurazione tecnica dell'interazione delle risorse.

Il meccanismo dei servizi Web del sistema 1C:Enterprise si basa sull'utilizzo di oggetti di metadati con lo stesso nome, ovvero oggetti di configurazione dal ramo “Web services”.

1. DEFINIZIONI GENERALI

Proviamo a dare una definizione generale del termine “Web service”.

ragnatela-servizioè una tecnologia di rete che fornisce programma trasversale interazione(tra diverse applicazioni) in base standard web. I servizi Web consentono di accedere da un'applicazione all'altra e allo stesso tempo svolgere determinate funzioni.

Un servizio web è identificato da una stringa URI (Uniform Resource Identifier) ​​- un identificatore di risorsa unificato (si tratta di una stringa di caratteri che consente di identificare una risorsa).

Il servizio web ha un'interfaccia software presentata nel formato WSDL(Web Services Description Language) - un linguaggio per descrivere i servizi web e accedervi, basato sul linguaggio XML (specifica http://www.w3.org/TR/wsdl). Progettato per una presentazione unificata interfacce esterne servizi web e viene utilizzato per far sapere a un altro programma che questo programma dispone di tale "servizio" (ovvero, il primo programma sul sito Web pubblica informazioni sui suoi servizi nel formato file WSDL).

Altri sistemi interagiscono con il servizio web scambiando messaggi SOAP (Simple Object Access Protocol) - un protocollo per lo scambio di messaggi strutturati in un ambiente informatico distribuito (specifica http://www.w3.org/TR/soap). Come qualsiasi protocollo di testo, SOAP può essere utilizzato con qualsiasi protocollo a livello di applicazione: SMTP, FTP, HTTPS e altri, ma molto spesso SOAP viene utilizzato su HTTP.

Figura 1. Concetto di servizio Web.

SOAP viene utilizzato per scambiare messaggi arbitrari in formato XML e chiamate di procedura remota (RPC).

Pertanto, i documenti XML formattati come messaggi vengono scambiati tra il servizio web e l'applicazione. Gli standard dei servizi Web definiscono:

Formato del messaggio, interfaccia a cui viene inviato il messaggio;

Regole per collegare il contenuto del messaggio all'applicazione che implementa il servizio e viceversa;

Meccanismi per le interfacce di pubblicazione e ricerca.

L'esempio più semplice e ovvio di utilizzo dei servizi web è l'ottenimento di dati di riferimento dai servizi pubblici disponibili su Internet. Ad esempio, Aeroflot fornisce informazioni sui suoi voli tramite un servizio Web, la Banca di Russia fornisce informazioni sui tassi di cambio, titoli, istituti di credito: le opzioni possono essere molte.

2. RAGNATELA- SERVIZI NEL SISTEMA 1C:ENTERPRISE

La soluzione applicativa 1C:Enterprise 8 può essere:

Fornitore di servizi web;

Nel sistema 1C:Enterprise 8, i servizi Web sono uno dei meccanismi della piattaforma utilizzati per l'integrazione con altri sistemi informativi e applicazioni 1C:Enterprise 8.

In altre parole, il sistema 1C:Enterprise può esportare le proprie funzionalità tramite servizi Web. Le loro definizioni sono specificate nell'albero di configurazione e diventano disponibili a chiunque sistemi di informazione pubblicandoli su un server web.

Il meccanismo dei servizi Web nel sistema 1C:Enterprise è un mezzo per supportare l'architettura orientata ai servizi (SOA), il che significa che i programmi utilizzano "servizi" per scambiare dati tra loro.

Affinché la funzionalità del sistema 1C:Enterprise sia disponibile per i consumatori esterni dei servizi Web, è necessario eseguire i seguenti passaggi:

Creare il numero richiesto di servizi Web nella configurazione;

La creazione di un servizio Web consiste in:

Nell'aggiungere un oggetto di configurazione del servizio Web all'albero dei metadati;

Descrizioni delle operazioni che questo servizio Web può eseguire;

Descrizione dei parametri di funzionamento.

L'oggetto di configurazione del servizio Web contiene un modulo in cui vengono create procedure nel linguaggio integrato che vengono eseguite quando vengono chiamate determinate operazioni del servizio Web. I tipi di parametri operativi del servizio Web vengono descritti utilizzando i tipi XDTO e possono essere valori XDTO o oggetti XDTO.

Il servizio Web viene chiamato come segue:

Dal pool di connessioni viene selezionata una connessione adeguata all'infobase; se non è richiesta alcuna connessione, viene creata una connessione;

Viene creata una nuova sessione;

Viene richiamato il metodo del servizio Web richiesto.

Il meccanismo dei servizi Web implementato nel sistema 1C:Enterprise supporta i seguenti standard:

Profilo base WS-I 1.1;

SSL 3.0/TLS 1.0.

3. STUDIANDORAGNATELA- SERVIZI NEL SISTEMA 1C:ENTERPRISE

Un servizio Web è un programma a cui possono accedere altri programmi su Internet (http). Ad esempio, supponiamo che tu abbia una funzione che fornisce testo in formato HTML. Lo scopo dell'applicazione è che il browser web visualizzi i risultati e una persona sarà in grado di leggere facilmente questo testo sulla pagina.

D'altra parte, il pubblico target di un servizio web sono altri programmi o altri servizi web che consumano i dati serviti dal servizio web. In genere l'output è in un linguaggio standard che può essere compreso da altri programmi. Prendiamo l'esempio precedente, se un servizio Web restituisce testo in formato XML, altri servizi Web in grado di leggere o comprendere XML possono utilizzare tale output.

Il vantaggio principale di un servizio web è che le applicazioni possono essere scritte in qualsiasi linguaggio, ma possono comunicare e scambiare dati tra loro attraverso il servizio web. Le applicazioni software scritte in diversi linguaggi di programmazione e in esecuzione su diverse piattaforme possono utilizzare servizi Web per comunicare su Internet (HTTP). Questa è un'interazione (ad esempio tra Java e Python, oppure Applicazioni Windows e Linux) è associato all'uso di standard aperti (XML, SOAP, HTTP).

  • SOAP (protocollo di accesso semplice agli oggetti)
  • UDDI (Descrizione universale, scoperta e integrazione)
  • WSDL (linguaggio di descrizione dei servizi Web)

Quanti diversi tipi di servizi web esistono?

Principalmente, esistono due tipi di servizi Web, SOAP (Simple Object Access Protocol) e Representational State Transfer (REST).

  • Il servizio Web SOAP accetta una richiesta in formato XML e genera output in formato XML.
  • Il servizio Web REST è più versatile e può accettare XML e JSON come richiesta e generare output in XML, JSON o anche HTML

Questo problema può essere studiato più in dettaglio sul nostro.

Abbiamo rivisto concetti generali utilizzo del meccanismo « ragnatela-Servizi". Rinfreschiamo alcune conoscenze.

I servizi Web vengono utilizzati per scambiare dati tra un server e un client; Il formato XML viene utilizzato per “impacchettare” i dati allo scopo di una comprensione reciproca tra entrambi i partecipanti alla comunicazione.

CAPITOLOIO

ESEMPIO DI IMPLEMENTAZIONERAGNATELA- SERVIZIO NEL SISTEMA 1C:ENTERPRISE

COMPITO:È necessario creare un servizio web, accedendo al quale i client possono ricavare tutte le informazioni necessarie sulle loro applicazioni.

Il compito è una dimostrazione e serve solo come esempio per comprendere e insegnare il meccanismoragnatela-Servizi.

SOLUZIONE:

Passo 1. Creiamone uno nuovo base informativa senza configurazione per sviluppare una nuova configurazione.

Passo 2. Aggiungiamo diversi nuovi oggetti alla configurazione

Elenco "Clienti";

Documento "Domanda";

Enumerazione "Stati della richiesta".

Passaggio 3. Creiamo un nuovo pacchetto XDTO.

Perché e per quale scopo stiamo creando un pacchetto XDTO? Ulteriori informazioni sull'utilizzo del meccanismo XDTO sono disponibili nel "Capitolo 16. Guida per lo sviluppatore" e .

Notiamo brevemente che il meccanismo XDTO è in modo universale rappresentazioni di dati per l'interazione con varie fonti di dati esterne e sistemi software.

Nel nostro caso, viene creato un pacchetto XDTO per descrivere il valore restituito dal servizio web.

Espandiamo il ramo “Generale” → “Pacchetti XDTO” → Aggiungi…

Specifichiamo il nome del pacchetto XDTO " DocumentiDati" e il suo namespace http://localhost/request o http://192.168.1.76/request (per facilitare la comprensione e il processo di apprendimento, indichiamo indirizzo IP locale computer su cui è installato il server web (server web supportati: IIS o Apache)). Ogni servizio Web può essere identificato in modo univoco dal suo nome e dall'URI del namespace a cui appartiene.

Il nostro pacchetto contiene due tipi di oggetti XDTO:

1) Cliente- trasferire i dati dall'elemento della directory “Clienti”.

- Nome ;

2) Documento- trasferire i dati dal documento “Applicazione”.

Questo tipo di oggetto XDTO conterrà le seguenti proprietà:

- Cliente- Tipo di cliente dal namespace http://192.168.1.76/request ; rappresenta un riferimento all'oggetto XDTO che abbiamo definito sopra;

- Stato- tipo stringa dal namespace http://www.w3.org/2001/XMLSchema ;

- Numero- tipo di stringa dallo spazio dei nomi http://www.w3.org/2001/XMLSchema.

Passaggio 4. Aggiungiamo un nuovo servizio Web alla configurazione

Espandiamo il ramo “Generale” → “Servizi Web” → Aggiungi…

Per il servizio Web, specifichiamo i seguenti valori delle proprietà:

Nome - DocumentiDati

URI dello spazio dei nomi - http://192.168.1.76/richiesta

Pacchetti XDTO - DocumentiDatiOhttp://192.168.1.76/richiesta

Nome del file di pubblicazione - richiesta.1cws

Passaggio 5. Per il servizio Web creato definiremo il funzionamento” Ottieni dati»

Valori delle proprietà dell'operazione:

Tipo di reso - Documento (http://192.168.1.76/request)

Possibilmente valore vuoto - VERO

Nome della procedura - Ottieni dati.

Passaggio 6. All'operazione Ottieni dati Definiamo il parametro Customer con i seguenti valori di proprietà:

Tipo di valore: tipo corda dal namespace http://www.w3.org/2001/XMLSchema;

Direzione di trasmissione - ingresso.

Passaggio 7 Apriamo il modulo del servizio Web creato e inseriamo al suo interno la funzione Get(), che verrà eseguita quando verrà chiamato questo servizio Web.

Function GetData(Customer) // Ottieni i tipi di oggetti XDTO ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Documento"); // Ottieni il client ClientLink = Directories.Clients.FindByName(Customer); Se non è stato compilato il valore (ClientRef), allora restituisce Non definito; finisci se; Richiesta = Nuova richiesta; Request.Text = "SELEZIONA TOP 1 | Application.Link, | REPRESENTATION(Application.Status) Stato AS, | Application.Number |FROM | Document.Request AS Applicazione |WHERE | Application.Client = &Client"; Request.SetParameter("Client", ClientLink); RichiestaRisultato = Richiesta.Esegui(); Se QueryResult.Empty() Allora restituisce Unfine; finisci se; Selezione = QueryResult.Select(); Selezione.Avanti(); Documento = Selection.Link.GetObject(); // Crea un oggetto XDTO di un ordine Order = FactoryXDTO.Create(OrderType); Applicazione.Numero = Campione.Numero; Cliente = FactoryXDTO.Create(ClientType); Cliente.Nome = ClienteLink.Nome; Applicazione.Cliente = Cliente; Applicazione.Status = Selezione.Status; // Restituisce la richiesta Restituisce l'applicazione; EndFunction

Passaggio 8 Pubblichiamo il servizio Web creato sul server web.

Voce di menu Configuratore: “Amministrazione” → “Pubblicazione su server Web”.

Nella scheda "Servizi Web", imposta la casella di controllo "Pubblica servizi Web" e seleziona anche la casella accanto al nostro nuovo servizio Web.

CAPITOLOII

ESEMPIO DI RICORSO ARAGNATELA-AL SERVIZIO DEL SISTEMA 1C:ENTERPRISE DA UN'APPLICAZIONE DI TERZE PARTI

Lo scopo principale del meccanismo dei servizi Web nel sistema 1C:Enterprise è trasferire i dati necessari ad applicazioni di terze parti.

Consideriamo un esempio di sviluppo di un'applicazione in Delphi che chiama il nostro servizio web dalla prima sezione di questo articolo.

Passo 1. Creiamo un nuovo progetto e posizioniamo diversi controlli sul modulo

Campo testo - utilizzato per visualizzare le informazioni ricevute dal servizio web;

Due pulsanti: cancellazione del campo di testo e accesso al servizio web;

Un campo di input è un parametro passato al servizio web.

Passo 2. Importazione di un file WSDL

Di conseguenza, otteniamo un nuovo modulo richiesta(abbiamo definito questo nome direttamente in 1C). Questo modulo contiene tutte le informazioni necessarie sul servizio web.

Passaggio 3. Scriviamo un gestore delle chiamate del servizio web

La variabile DocumentDataPortType è già definita nel modulo richiesta

Passaggio 4. Avvia l'applicazione ed esegui il test.

CAPITOLOIII

ESEMPIO DI RICORSO ARAGNATELA-SERVIZIO NEL SISTEMA 1C:ENTERPRISE

Passo 1. Creiamo una nuova elaborazione esterna con il nome "WEB_Service"

Passo 2. Per l'elaborazione definiamo nuova uniforme

Passaggio 3. Indicheremo diversi dettagli sul modulo

Cliente: digita "Stringa"

ClientReturn: digita "Stringa"

NumberReturn - digita "Stringa"

StatusReturn: digitare "Stringa".

Mostreremo i dettagli nel modulo.

Passaggio 4. Aggiungiamo un comando del modulo " Per ottenere dati»

Specifichiamo il gestore del comando

Procedura &OnClient GetData(comando) GetDataOnServer(Client); Fine della procedura Procedura GetDataOnServer(Client) // Crea un proxy WS basato sul collegamento ed esegui l'operazione Get() Definition = New WSDefinitions("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; Proxy = Nuovo WSProxy(Definizione, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); Dati dell'applicazione = Proxy.GetData(Client); Se Dati applicazione = Non definito Allora ClientReturn = "Non definito"; StatusReturn = "Non definito"; ReturnNumber = "Non definito"; Ritorno; finisci se; CustomerReturn = Dati applicazione.Cliente.Nome; StatusReturn = Dati dell'applicazione.Status; Numero restituito = Dati applicazione.Numder; Fine della procedura

Il sistema 1C:Enterprise può utilizzare servizi web forniti da altri provider in due modalità:

Usando statico collegamenti creati nell'albero di configurazione;

"più": ad alta velocità;

"meno": reimportare la descrizione WSDL utilizzando il configuratore e salvare la configurazione modificata.

Usando dinamico collegamenti creati da strumenti linguistici integrati

(di conseguenza, i “contro” di quelli statici per quelli dinamici sono “pro”)

CAPITOLOIV

DEBUG DI SERVIZI WEB NEL SISTEMA 1C:ENTERPRISE

Per un servizio web locale è necessario:

Passo 1. Posiziona il file sul client su cui viene eseguito il sistema 1C webservicecfg.xml con il seguente contenuto

Passo 2. Archiviare predefinito. vrd pubblica la configurazione aggiungi la riga

Passaggio 3. Nel configuratore selezionare la voce di menu

“Debug” → “Connessione” → “Connessione automatica” → “Servizi web sul server”

Passaggio 4. Fare clic sul pulsante "OK".

Per l'opzione server, è necessario eseguire anche il server 1c in modalità debug con la chiave /debug