Qué servicios web hay. ¿Qué es un servicio web? Implementación técnica de servicios web.

Un servicio web (servicio) es un programa que organiza la interacción entre sitios. La información de un portal se transfiere a otro.

Por ejemplo, hay una aerolínea. Ella tiene muchos vuelos, respectivamente, muchos boletos. Transmite información a través de un servicio web al sitio del agregador de viajes turísticos. Un usuario que ingrese al agregador podrá comprar boletos para esta aerolínea allí mismo.

Otro ejemplo de servicios web es un sitio de seguimiento meteorológico que brinda información sobre las condiciones climáticas en una ciudad en particular o en un país en general. Esta información también es utilizada a menudo por terceros.

La información en Internet es diversa. Los sitios son administrados diferentes sistemas. Se utilizan diferentes protocolos de transmisión y cifrado. Los servicios web simplifican el intercambio de información entre diferentes sitios.

Protocolos y arquitectura de servicios web

Puede definir 3 instancias que interactúan entre sí: catálogo, contratista y cliente. Después de crear el servicio, el ejecutante lo registra en el catálogo y el cliente encuentra el servicio allí.

El mecanismo de intercambio de datos se forma en la Descripción de servicios web. Es una especificación que cubre los formatos de reenvío, los tipos de contenido y los protocolos de transporte que se utilizan en el intercambio de información entre el cliente y el transportista del servicio.

Hoy en día, varias tecnologías se utilizan con mayor frecuencia para implementar varios servicios web:

  1. TCP/IP es un protocolo que es entendido por casi todo el mundo Equipo de red, desde mainframes hasta dispositivos portables y PDA.
  2. HTML es un lenguaje de marcado universal que se utiliza para mostrar contenido en dispositivos de consumo.
  3. XML es una herramienta universal para manejar todo tipo de datos. Sobre su base también pueden funcionar otros protocolos de intercambio de información: SOAP y WSDL.
  4. UDDI es una fuente universal de reconocimiento, integración y descripción. Funciona, por regla general, en redes privadas y aún no ha encontrado suficiente distribución.

La versatilidad de las tecnologías presentadas es la base para entender los servicios web. Trabajan en tecnologías estándar que son independientes de los proveedores de aplicaciones y otros recursos de red. Se puede utilizar en cualquier sistemas operativos, servidores de aplicaciones, lenguajes de programación, etc.

Ventajas

  • Creación de las condiciones necesarias para la interacción de los componentes del software, independientemente de la plataforma.
  • Los servicios web se basan en protocolos estándar abiertos. Mediante la introducción de XML, es fácil crear y configurar servicios web.
  • El uso de HTTP garantiza la interacción de los sistemas a través del acceso entre redes.

desventajas

  • Bajo rendimiento y gran cantidad de tráfico, en comparación con los sistemas RMI, CORBA, DCOM, debido al uso de mensajes XML en el contexto del texto.
  • Nivel de seguridad. Todos los servicios web modernos deben implementar codificación y requieren la autorización del usuario. Si HTTPS es suficiente aquí o si se necesitan protocolos más confiables, como el cifrado XML, SAML, etc., se decide durante el desarrollo.

Tareas de servicio web

Los servicios web se pueden utilizar en muchas áreas.

transacciones B2B

La integración de los procesos va en seguida, sin participación de las personas. Por ejemplo, actualizar el catálogo de una tienda online con nuevos productos. Se llevan al almacén y el almacenista marca la llegada en la base de datos. La información se transfiere automáticamente a la tienda en línea. Y el comprador, en lugar de marcar “Agotado” en la ficha del producto, ve su cantidad.

Integración de servicios empresariales

Si la empresa utiliza programas corporativos, el servicio web ayudará a configurar su trabajo conjunto.

Creación de un sistema cliente-servidor

Los servicios se utilizan para personalizar el funcionamiento del cliente y del servidor. Esto te da los siguientes beneficios:

  • no se puede vender solo software, pero hacer acceso pago al servicio web;
  • más fácil de resolver problemas utilizando software de terceros;
  • es más fácil organizar el acceso a los contenidos y materiales del servidor.

Un servicio web es una aplicación que simplifica la configuración técnica de las interacciones de los recursos.

El mecanismo de servicios web de 1C:Enterprise se basa en el uso de objetos de metadatos del mismo nombre, es decir, objetos de configuración de la rama "Servicios web".

1. DEFINICIONES GENERALES

Intentemos dar una definición generalizada del término "servicio web".

web-Servicio es una tecnología de red que proporciona interprograma interacción(entre diferentes aplicaciones) basado en estándares web. Los servicios web permiten acceder de una aplicación a otra y al mismo tiempo realizar ciertas funciones.

Un servicio web se identifica mediante una cadena URI (Uniform Resource Identifier), un identificador de recurso uniforme (esta es una cadena de caracteres que le permite identificar un recurso).

El servicio web tiene una interfaz de programación presentada en el formato WSDL(Lenguaje de descripción de servicios web): un lenguaje para describir servicios web y acceder a ellos, basado en el lenguaje XML (especificación http://www.w3.org/TR/wsdl). Diseñado para una vista unificada interfaces externas servicios web y se utiliza para que otro programa sepa que este programa tiene dicho "servicio" (es decir, el primer programa en el sitio web presenta información sobre sus servicios en el formato de archivo WSDL).

Otros sistemas interactúan con el servicio web mediante el intercambio de mensajes SOAP (Simple Object Access Protocol), un protocolo para intercambiar mensajes estructurados en un entorno informático distribuido (http://www.w3.org/TR/especificación de SOAP). Como cualquier protocolo basado en texto, SOAP se puede usar con cualquier protocolo de capa de aplicación: SMTP, FTP, HTTPS y más, pero la mayoría de las veces SOAP se usa sobre HTTP.

Figura 1. Concepto de servicio web.

SOAP se utiliza para mensajes XML arbitrarios y llamadas a procedimientos remotos (RPC).

Así, entre el servicio web y la aplicación se intercambian documentos XML en forma de mensajes. Los estándares de servicios web definen:

Formato del mensaje, interfaz a la que se envía el mensaje;

Reglas para vincular el contenido del mensaje a la aplicación que implementa el servicio y viceversa;

Mecanismos de publicación y búsqueda de interfaces.

El uso más simple y obvio de los servicios web es obtener datos de referencia de los servicios públicos disponibles en Internet. Por ejemplo, Aeroflot proporciona información sobre sus vuelos a través de un servicio web, el Banco de Rusia, información sobre tipos de cambio, valores, organizaciones de crédito, puede haber muchas opciones.

2. WEB-SERVICIOS EN EL SISTEMA "1C: EMPRESA"

1C: la solución de aplicación Enterprise 8 puede ser:

Proveedor de servicios web;

En el sistema 1C:Enterprise 8, los servicios web son uno de los mecanismos de plataforma utilizados para la integración con otros sistemas de información y aplicaciones 1C:Enterprise 8 entre sí.

En otras palabras, 1C:Enterprise puede exportar su funcionalidad a través de servicios web. Sus definiciones se establecen en el árbol de configuración y quedan disponibles para usuarios arbitrarios. sistemas de información al publicarlos en un servidor web.

El mecanismo de servicios web en 1C:Enterprise es un medio de soportar la arquitectura orientada a servicios (SOA), lo que significa que los programas usan "servicios" para intercambiar datos entre sí.

Para que la funcionalidad de 1C:Enterprise esté disponible para consumidores externos de servicios web, debe hacer lo siguiente:

Cree la cantidad requerida de servicios web en la configuración;

Crear un servicio Web es:

Además del árbol de metadatos del objeto de configuración del servicio web;

Descripción de las operaciones que este servicio Web puede realizar;

Descripción de los parámetros de operación.

El objeto de configuración del servicio web contiene un módulo que crea procedimientos en el lenguaje incorporado que se ejecutan cuando se llama a determinadas operaciones del servicio web. Los tipos de parámetros de operación del servicio web se describen mediante tipos XDTO y pueden ser valores XDTO u objetos XDTO.

La llamada al servicio web es así:

Se selecciona una conexión adecuada a la base de datos del conjunto de conexiones; en ausencia de una conexión requerida, se crea una conexión;

Se crea una nueva sesión;

Se llama al método de servicio web solicitado.

El mecanismo de servicios web implementado en 1C:Enterprise admite los siguientes estándares:

Perfil básico WS-I 1.1;

SSL 3.0/TLS 1.0.

3. ESTUDIANDOWEB-SERVICIOS EN EL SISTEMA "1C: EMPRESA"

Un servicio web es un programa al que pueden acceder otros programas a través de Internet (http). Por ejemplo, suponga que tiene una función que proporciona texto HTML. El propósito de la aplicación es un navegador web que muestra los resultados y una persona puede leer fácilmente este texto en la página.

Por otro lado, el público objetivo de un servicio web son otros programas u otros servicios web que consumen los datos servidos por el servicio web. Normalmente, la salida está en un lenguaje estándar que otros programas pueden entender. Tome el ejemplo anterior, si un servicio web genera texto en formato XML, entonces otros servicios web que pueden leer o comprender XML pueden usar esa salida.

El principal beneficio de un servicio web es que las aplicaciones se pueden escribir en cualquier idioma, pero pueden comunicarse y comunicarse entre sí a través de un servicio web. Las aplicaciones de software escritas en diferentes lenguajes de programación y que se ejecutan en diferentes plataformas pueden usar servicios web para el intercambio de datos a través de Internet (HTTP). Esta interacción (por ejemplo, entre Java y Python, o aplicaciones de windows y Linux) está asociado al uso de estándares abiertos (XML, SOAP, HTTP).

  • SOAP (Protocolo simple de acceso a objetos)
  • UDDI (Descripción Universal, Descubrimiento e Integración)
  • WSDL (lenguaje de descripción de servicios web)

¿Cuántos tipos diferentes de servicios web hay?

Principalmente, hay dos tipos de servicios web, Protocolo simple de acceso a objetos (SOAP) y Transferencia de estado representacional (REST).

  • El servicio web SOAP acepta una solicitud XML y genera una salida XML.
  • El servicio web REST es más genérico y puede aceptar XML y JSON como solicitud y generar resultados en XML, JSON o incluso HTML.

Este tema se puede estudiar con más detalle en el nuestro.

Hemos revisado conceptos generales mecanismo « web-servicios". Refresquemos algunos conocimientos.

Los servicios web se utilizan para intercambiar datos entre un servidor y un cliente; el formato XML se utiliza para “empaquetar” datos para el entendimiento mutuo entre ambos participantes en la comunicación.

CAPÍTULOyo

EJEMPLO DE IMPLEMENTACIÓNWEB-SERVICIO EN EL SISTEMA "1C: EMPRESA"

UNA TAREA: Es necesario crear un servicio web, referente al cual los clientes puedan determinar toda la información necesaria para sus aplicaciones.

La tarea es de demostración y sirve solo como ejemplo para comprender y aprender el mecanismo.web-servicios.

DECISIÓN:

Paso 1. Vamos a crear un nuevo base de información sin configuración para desarrollar una nueva configuración.

Paso 2 Agreguemos algunos objetos nuevos a la configuración.

Directorio "Clientes";

Documento "Solicitud";

Enumeración "Estados de las Solicitudes".

Paso 3 Vamos a crear un nuevo paquete XDTO.

¿Por qué y para qué estamos creando un paquete XDTO? Puede leer más sobre el uso del mecanismo XDTO en el "Capítulo 16. Guía del desarrollador" y.

Notemos brevemente que el mecanismo XDTO es manera universal representaciones de datos para la interacción con varias fuentes de datos externas y sistemas de software.

En nuestro caso, se crea un paquete XDTO para describir el valor de retorno del servicio web.

Expanda la rama “General” → “Paquetes XDTO” → Agregar…

Especifique el nombre del paquete XDTO " DocumentosDatos' y su espacio de nombres http://localhost/request o http://192.168.1.76/request (para facilitar la comprensión y el aprendizaje, especificamos dirección IP local la computadora donde está instalado el servidor web (servidores web compatibles: IIS o Apache)). Cada servicio web se puede identificar de forma única por su nombre y el URI del espacio de nombres al que pertenece.

Nuestro paquete contiene dos tipos de objetos XDTO:

1) Cliente- transferir los datos del elemento de directorio "Clientes".

- Nombre ;

2) documento- transferir los datos del documento "Solicitud"

Este tipo de objeto XDTO contendrá las siguientes propiedades:

- Cliente- Tipo de cliente del espacio de nombres http://192.168.1.76/request; es una referencia al objeto XDTO que definimos anteriormente;

- Estado- tipo de cadena del espacio de nombres http://www.w3.org/2001/XMLSchema;

- número- tipo de cadena del espacio de nombres http://www.w3.org/2001/XMLSchema.

Etapa 4 Agregar un nuevo servicio web a la configuración

Expanda la rama "General" → "Servicios web" → Agregar ...

Para el servicio web, especifique los siguientes valores de propiedad:

Nombre - DocumentosDatos

Espacios de nombres URI - http://192.168.1.76/solicitud

Paquetes XDTO - DocumentosDatosohttp://192.168.1.76/solicitud

Nombre del archivo de publicación - solicitud.1cws

Paso 5 Para el servicio web creado, definimos la operación " obtener datos»

Valores de propiedad de la operación:

Tipo de retorno - Documento (http://192.168.1.76/request)

Posiblemente valor vacío - Verdadero

Nombre del procedimiento - obtener datos.

Paso 6 Operación obtener datos defina el parámetro Cliente con los siguientes valores de propiedad:

Tipo de valor - tipo cuerda del espacio de nombres http://www.w3.org/2001/XMLSchema;

Dirección de transferencia - aporte.

Paso 7 Abramos el módulo del servicio web creado y coloquemos en él la función Get(), que se ejecutará cuando se llame a este servicio web.

Function GetData(Customer) // Obtener los tipos de objetos XDTO ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Documento"); // Obtener el cliente ClientReference = Directorios.Clientes.FindByName(Cliente); Si no se ha completado el valor (ClientReference), se devuelve indefinido; Terminara si; Solicitud = Nueva Solicitud; Request.Text = "SELECCIONE PRIMERO 1 | Ticket.Referencia, | REPRESENTACIÓN(Ticket.Status) COMO Estado, | Ticket.Número |DE | Documento.Ticket COMO Ticket |DONDE | Ticket.Cliente = &Cliente"; Request.SetParameter("Cliente", ClientReference); Resultado de la consulta = Consulta. Ejecutar (); Si QueryResult.Empty() Entonces Devuelve Indefinido; Terminara si; Selección = QueryResult.Select(); Selección.Siguiente(); Documento = Selección.Referencia.GetObject(); // Crear un objeto de ticket XDTO Ticket = FactoryXDTO.Create(TicketType); Aplicación.Número = Muestra.Número; Cliente = FactoryXDTO.Create(ClientType); Cliente.Nombre = ReferenciaCliente.Nombre; Aplicación.Cliente = Cliente; Aplicación.Estado = Selección.Estado; // Solicitud de devolución Solicitud de devolución; funciones finales

Paso 8 Publiquemos el servicio web creado en el servidor web.

Elemento del menú del configurador: "Administración" → "Publicación en un servidor web".

En la pestaña "Servicios web", configure el indicador "Publicar servicios web" y también marque la casilla junto a nuestro nuevo servicio web.

CAPÍTULOYo

EJEMPLO DE REFERENCIA AWEB- 1C: SERVICIO EMPRESARIAL DESDE UNA APLICACIÓN DE TERCEROS

El objetivo principal del mecanismo de servicios web en 1C:Enterprise es transferir los datos necesarios a aplicaciones de terceros.

Consideremos un ejemplo de desarrollo de una aplicación en Delphi llamando a nuestro servicio web de la primera sección de este artículo.

Paso 1. Creemos un nuevo proyecto y coloquemos varios controles en el formulario.

Campo de texto: se utiliza para mostrar la información recibida del servicio web;

Dos botones: borrar el campo de texto y acceder al servicio web;

El campo de entrada es un parámetro pasado al servicio web.

Paso 2 Importación del archivo WSDL

Como resultado, obtenemos un nuevo módulo. solicitud(definimos tal nombre directamente en 1C). Este módulo contiene toda la información necesaria sobre el servicio web.

Paso 3 Escribir un controlador de llamadas de servicio web

La variable DocumentDataPortType ya está definida en el módulo solicitud

Etapa 4 Inicie la aplicación y verifique.

CAPÍTULOtercero

EJEMPLO DE REFERENCIA AWEB-SERVICIO EN EL SISTEMA "1C: EMPRESA"

Paso 1. Vamos a crear un nuevo procesamiento externo llamado "WEB_Service"

Paso 2 Para el procesamiento, definimos nueva forma

Paso 3 Especifique varios detalles para el formulario

Cliente - escriba "Cadena"

ClientReturn - escriba "Cadena"

NumberReturn - escriba "Cadena"

StatusReturn - Tipo "Cadena".

Mostraremos los detalles en el formulario.

Etapa 4 Agreguemos el comando de formulario " para obtener datos»

Especificar un controlador de comandos

&OnClient Procedimiento GetData(Comando) GetDataOnServer(Cliente); Fin del procedimiento Procedimiento GetDataOnServer(Client) // Crear un proxy WS basado en el enlace y ejecutar la operación Get() Definición = New WSDefinitions("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; Proxy = New WSProxy(Definición, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); RequestData = Proxy.GetData(Cliente); Si OrderData = Undefined Entonces ClientReturn = "Undefined"; StatusReturn = "Indefinido"; ReturnNumber = "Indefinido"; Retorno; Terminara si; CustomerReturn = RequestData.Customer.Name; StatusReturn = RequestData.Status; ReturnNumber = RequestData.Numder; Procedimiento final

1C:Enterprise puede utilizar los servicios web proporcionados por otros proveedores de dos formas:

Mediante el uso estático enlaces creados en el árbol de configuración;

"una ventaja": alta velocidad de trabajo;

"menos": volver a importar la descripción WSDL utilizando el configurador y guardar la configuración modificada.

Mediante el uso dinámica enlaces creados mediante el lenguaje incorporado

(respectivamente, los "contras" de los estáticos para los dinámicos son "ventajas")

CAPÍTULOIV

DEPURACIÓN DE SERVICIOS WEB EN EL SISTEMA 1C:ENTERPRISE

Para un servicio web local, necesita:

Paso 1. Coloque el archivo del cliente donde se inicia el sistema 1C webservicecfg.xml con el siguiente contenido

Paso 2 Archivar por defecto. vrd publicar configuración agregar línea

Paso 3 En el configurador, seleccione el elemento de menú

"Depuración" → "Conexión" → "Conexión automática" → "Servicios web en el servidor"

Etapa 4 Haga clic en el botón "Aceptar"

Para la versión del servidor, también debe ejecutar el servidor 1c en modo de depuración con la tecla /depurar