Un servidor es el lenguaje informático, es el ordenador y programas que están al
servicio de otros de estos. Atiende y responde a las peticiones que le hacen los otros ordenadores. Los otros ordenadores, que le hacen peticiones, serán los "clientes" del servidor. Un servidor deberá estar siempre encendido, ya que si se apaga dejará de dar servicio a los demás. La red más conocida y más grande es Internet, y está llena de servidores. Suele haber servidores dentro de redes pequeñas y particulares y dependiendo del servicio que disponga, tiene que disponer de software (programas) específicos capaces de ofrecer esos servicios. Cuando un cliente pide datos o una funcionalidad de un servidor, lo hace enviando una solicitud a través de la red. El servidor recibe dicha solicitud y responde con la información correspondiente. A menudo, un servidor realizará numerosas tareas adicionales como parte de una sola solicitud y respuesta, como verificar la identidad del solicitante, asegurarse de que el cliente tenga permiso para acceder a los datos o recursos solicitados. Hay algunos servicios que proporcionan los servidores tales como:
∙ Servicios HTTP y HTTPS para Páginas Web
∙ DNS o servicios de nombres de dominio ∙ Bases de Datos ∙ SMTP para envió y recepción de correos electrónicos. ∙ IMAP o POP3 para consulta de correos electrónicos. ∙ FTP o FTPS para transferencia de archivos ∙ SSH para acceso a terminales en servidores. ∙ DHCP otorga direcciones IP para el acceso a Internet ∙ Servicios de Autenticación ∙ Servicios de sincronización de tiempo NTP ∙ Servicios de Información ∙ Servicios de compartición de Archivos SOA La arquitectura orientada a los servicios es un tipo de diseño de software que permite reutilizar sus elementos gracias a las interfaces de servicios que se comunican a través de una red con un lenguaje común. Un servicio es una unidad autónoma de una o más funciones del software diseñado para realizar una tarea específica, como recuperar cierta información o ejecutar una operación. Contiene las integraciones de datos y código que se necesitan para llevar a cabo una función empresarial cumple. Cada servicio de una SOA incorpora el código y las integraciones de datos necesarias para ejecutar una función de negocios completa y discreta. Las interfaces de servicio brindan un acoplamiento suelto, lo que significa que se pueden llamar con poco o ningún conocimiento sobre la forma de implementación de la integración subyacente. Los servicios se exponen utilizando protocolos de red estándar, como SOAP/HTTP o JSON/HTTP, para enviar solicitudes para leer o cambiar datos. Los servicios se publican de tal forma que permite a los desarrolladores encontrarlos rápidamente y reutilizarlos para ensamblar nuevas aplicaciones. Sus elementos esenciales del SOA consisten en: 1. Proveedor de servicios 2. Agente o registro de servicios 3. Usuario de servicio o persona que lo solicita SOAP El Simple Object Access Protocol es un protocolo ligero para el intercambio de información en entornos descentralizados y distribuidos. Los mensajes SOAP son las transmisiones de información de remitentes a destinatarios. Los mensajes SOAP se pueden combinar para crear patrones de petición/respuesta. El objetivo del modelo de datos SOAP es proporcionar una abstracción independiente del lenguaje para tipos de datos utilizados por tipos de lenguajes de programación comunes. Consta de:
∙ Tipos XSD simples. Por ejemplo int, string y date.
∙ Tipos compuestos. Hay dos especies de tipos compuestos, structs y arrays. Structs son tipos agregados en los que cada elemento tiene un nombre o código XML exclusivo. Arrays tienen elementos que se identifican por la posición, no por el nombre. El envío de una solicitud de datos a una API de SOAP se puede administrar a través de cualquiera de los protocolos de la capa de la aplicación: HTTP (para los exploradores web), SMTP (para el correo electrónico), TCP, entre otros. WDSL El Web Services Description Language es una especificación estándar para describir servicios basados en XML de red. Proporciona a los proveedores de servicios un modo sencillo de describir el formato básico de las peticiones a sus sistemas independientemente de la implementación del motor de ejecución subyacente. WSDL define un formato XML para describir servicios de red como un conjunto de puntos finales que operan en mensajes que contienen información orientada a documentos u orientada a procedimientos. Primero se describen las operaciones y mensajes de forma abstracta y luego se enlazan a un protocolo de red y formato de mensaje concreto para definir un punto final. Los documentos WSDL permiten a los desarrolladores exponer sus aplicaciones como servicios accesibles de red en Internet. Mediante UDDI y WSIL, otras aplicaciones pueden encontrar documentos WSDL y enlazarlos para ejecutar transacciones o realizar otros procesos de empresa. API Una interfaz de programación de aplicaciones son mecanismos que permiten a dos componentes de software comunicarse entre sí mediante un conjunto de definiciones y protocolos. Por ejemplo, el sistema de software del instituto de meteorología contiene datos meteorológicos diarios. La aplicación meteorológica de su teléfono “habla” con este sistema a través de las API y le muestra las actualizaciones meteorológicas diarias en su teléfono. La arquitectura de las API suele explicarse en términos de cliente y servidor. La aplicación que envía la solicitud se llama cliente, y la que envía la respuesta se llama servidor. Una API de servicios web es una interfaz de procesamiento de aplicaciones entre un servidor web y un navegador web. Todos los servicios web son API, pero no todas las API son servicios web. La API de REST es un tipo especial de API web que utiliza el estilo arquitectónico estándar explicado anteriormente. REST La transferencia de estado representacional define un conjunto de funciones como GET, PUT, DELETE, etc. Que son los clientes pueden utilizar para acceder a los datos del servidor. Los clientes y servidores intercambian datos mediante HTTP. Su ausencia de estado significa que los servidores no guardan los datos del cliente entre las solicitudes. Las solicitudes de los clientes al servidor son similares a las URL que se escriben en el navegador para visitar un sitio web, siendo su respuesta con datos simples sin representación gráfica de una página web. REST es cualquier interfaz entre sistemas que use HTTP para obtener datos o generar operaciones sobre esos datos en todos los formatos posibles, como XML y JSON. Sus características son:
∙ Protocolo cliente/servidor sin estado: cada petición HTTP contiene toda la
información necesaria para ejecutarla, lo que permite que ni cliente ni servidor necesiten recordar ningún estado previo para satisfacerla. ∙ Los objetos en REST siempre se manipulan a partir de la URI: Esto facilita acceder a la información para su modificación o borrado para compartir su ubicación exacta con terceros. ∙ Interfaz uniforme: aplica acciones concretas sobre los recursos, siempre y cuando estén identificados con una URI. ∙ Sistema de capas: arquitectura jerárquica entre los componentes. ∙ Uso de hipermedios: Es una extensión del concepto de hipertexto. El concepto de hipermedia explica la capacidad de una interfaz de desarrollo de aplicaciones de proporcionar al cliente y al usuario los enlaces adecuados para ejecutar acciones concretas sobre los datos. WEBService Un servicio web es un software con un formato basado en texto que funciona con Internet. Este sistema se encarga de permitir la transmisión de solicitudes y respuestas entre diferentes servidores o aplicaciones, sin importar las diferencias que existan entre los lenguajes de programación en el que fueron desarrolladas o la plataforma en la que se ejecutan. Es un servicio que hace posible la comunicación entre máquinas y el intercambio de datos entre aplicaciones a través de una red de Internet. Gracias a los servicios web es posible realizar una gran cantidad de interacciones cotidianas entre aplicaciones. Su funcionamiento se da a través de las interacciones que se producen entre los componentes de su arquitectura. Su arquitectura se basa en el uso de tres componentes principales:
∙ El proveedor del servicio web o service provider.
∙ El solicitante del servicio web o service requester. ∙ El corredor de servicios o service bróker. En el aspecto técnico, lo primero que sucede para el funcionamiento de un web service es que el proveedor de servicios envía un archivo WSDL con la definición del servicio web al corredor de servicios. Los servicios web de tipo RESTful tienen algunas diferencias, ya que a comparación del protocolo SOAP, el protocolo REST no está estructurado bajo estándares definidos y es más ligero. Debido a la forma en la que se estructura un servicio web y su funcionamiento, la complejidad de su uso es reducida y, por ello, es también más accesible. Incluso, existen herramientas que hacen que su creación sea aún más rápida y fácil.