2012-06-20 16 views
9

Un servicio web es una función a la que pueden acceder otros programas a través de la web (Http). Para aclarar un poco, cuando creas un sitio web en PHP que genera HTML, su objetivo es el navegador y, por extensión, el ser humano que lee la página en el navegador. Un servicio web no está dirigido a humanos sino a otros programas.¿Qué significan las aplicaciones web RESTful?

  1. SOAP y REST son dos formas de crear WebServices. Corrígeme si yo estoy equivocado?
  2. ¿De qué otras maneras puedo crear un servicio web?
  3. ¿Qué significa completamente la aplicación web RESTful?
+3

Esto probablemente pertenece a http://programmers.stackexchange.com o incluso en [Google] (http://google.com). – lanzz

+0

Anuncio 1 No necesariamente. Las dos formas son Big Web Services y RESTful Web Services. Es un poco más complicado que solo usar o no usar SOAP. SOAP se puede usar de acuerdo con REST. Ad. 3 Lee la tesis de Roy Fielding para enterarte. También recomiendo leer en ROA (Resource Oriented Architecture), que es algo más específico que el concepto de REST. También es el diseño REST más comúnmente aplicado. A menudo se confunde con REST en sí mismo. – toniedzwiedz

+0

Un sitio web servido HTTP no está dirigido a humanos también, pero ante todo en navegadores HTTP;) Así que WWW que sirve documentos de hipertexto * es * un servicio web. – hakre

Respuesta

4
  1. correcta
  2. El W3C define una como "un sistema de software diseñado para apoyar la interacción interoperable de máquina a máquina en red" "Web service".
  3. Un servicio completamente RESTful es aquel que se adhiere a todos o las restricciones arquitectónicas como se establece en la tesis de Roy Fielding, Architectural Styles and the Design of Network-based Software Architectures. Es una lectura larga y hay muchas interpretaciones. Un buen comienzo sería familiarizarse con el Richardson Maturity Model. NOTA: La mayoría de los servicios web que dicen ser RESTful están solo en level 2 en ese modelo.
0

Creo que para entender qué es un servicio completamente RESTful debe comprender la diferencia entre los servicios RESTful y los servicios web estándar. Es bastante buena exaplained en JEE6 Tutorial por Oracle:

WebServices

NonRESTful (En Java como JAX-WS): servicios web grandes utilizan mensajes XML que siguen el protocolo simple de acceso a objetos estándar (SOAP), un definitorias lenguaje XML una arquitectura de mensaje y formatos de mensaje. Dichos sistemas a menudo contienen una descripción legible por máquina de de las operaciones ofrecidas por el servicio, escritas en el Lenguaje de descripción de servicios web (WSDL), un lenguaje XML para definir interfaces sintácticamente. El formato de mensaje SOAP y el lenguaje de definición de interfaz WSDL han ganado adopción generalizada. Muchas herramientas de desarrollo, como NetBeans IDE, pueden reducir la complejidad de en el desarrollo de aplicaciones de servicios web. Un diseño basado en SOAP debe incluir los siguientes elementos.

■ Se debe establecer un contrato formal para describir la interfaz que ofrece el servicio web. WSDL se puede utilizar para describir los detalles del contrato, que pueden incluir mensajes, operaciones , enlaces y la ubicación del servicio web. También puede procesar los mensajes SOAP en un servicio JAX-WS sin publicar un WSDL.

■ La arquitectura debe abordar complejos requisitos no funcionales. Muchas especificaciones del servicio web abordan dichos requisitos y establecen un vocabulario común para ellos. Los ejemplos incluyen transacciones, seguridad, direccionamiento, confianza, coordinación, etc.

■ La arquitectura necesita manejar el procesamiento asincrónico y la invocación.En tales casos, la infraestructura provista por las normas, como Web Services Reliable Messaging (WSRM) y API, como JAX-WS, con su invocación asincrónica del lado del cliente compatible, puede aprovecharse de la caja.

Servicios web RESTful (en Java como JAX-RS) En Java EE 6, JAX-RS proporciona la funcionalidad para los servicios web de Transferencia de estado representacional (RESTful) . REST es muy adecuado para escenarios de integración básicos e improvisados. Los servicios web RESTful, a menudo mejor integrados con HTTP que los servicios basados ​​en SOAP, no requieren los mensajes XML o las definiciones de API de servicio WSDL. Project Jersey es la implementación de referencia lista para producción para la especificación JAX-RS. Jersey implementa soporte para las anotaciones definidas en la especificación JAX-RS, por lo que es fácil para los desarrolladores crear servicios web RESTful con Java y Java Virtual Machine (JVM).

Tipos de servicios Web Debido a que los servicios web RESTful utilizar existente W3C conocido e Internet Engineering Task Force (IETF) estándares (HTTP, XML, URI, MIME) y tienen una infraestructura ligera que permite que los servicios que se construirán con herramientas mínimas, el desarrollo de servicios web RESTful es de bajo costo y, por lo tanto, tiene una barrera muy baja para su adopción. Puede utilizar una herramienta de desarrollo como NetBeans IDE para reducir aún más la complejidad del desarrollo de servicios web RESTful. Un diseño RESTful puede ser apropiado cuando se cumplen las siguientes condiciones.

■ Los servicios web son completamente apátridas. Una buena prueba es considerar si la interacción puede sobrevivir a un reinicio del servidor.

■ Se puede aprovechar una infraestructura de almacenamiento en caché para mejorar el rendimiento. Si los datos que devuelve el servicio web no se generan dinámicamente y se pueden almacenar en caché, la infraestructura de almacenamiento en caché que los servidores web y otros intermediarios proporcionan inherentemente se puede aprovechar para mejorar el rendimiento . Sin embargo, el desarrollador debe tener cuidado porque tales cachés están limitados al método HTTP GET para la mayoría de los servidores.

■ El productor del servicio y el consumidor del servicio tienen una comprensión mutua del contexto y del contenido que se está transfiriendo. Debido a que no existe una forma formal de describir la interfaz de los servicios web , ambas partes deben acordar de forma no coincidente los esquemas que describen los datos que se intercambian y las formas de procesarlos de manera significativa. En el mundo real, la mayoría de las aplicaciones comerciales que exponen servicios como implementaciones RESTful también distribuyen los denominados kits de herramientas de valor agregado que describen las interfaces para desarrolladores en los populares lenguajes de programación .

■ El ancho de banda es particularmente importante y debe ser limitado. REST es particularmente útil para dispositivos de perfil limitado , como PDA y teléfonos móviles, para los cuales se debe restringir la sobrecarga de los encabezados y capas adicionales de elementos SOAP en la carga útil XML.

■ La entrega de servicios web o la agregación en sitios web existentes se pueden habilitar fácilmente con un estilo RESTful . Los desarrolladores pueden usar tecnologías como JAX-RS y Asynchronous JavaScript con XML (AJAX) y kits de herramientas como Direct Web Remoting (DWR) para consumir los servicios en sus aplicaciones web.En lugar de comenzar desde cero, los servicios pueden ser expuestos con XML y consumidos por páginas HTML sin refactorizar significativamente la arquitectura de sitio web existente . Los desarrolladores existentes serán más productivos porque son agregando algo que ya conocen, en lugar de tener que empezar desde cero con nueva tecnología.

decidir qué tipo de servicio Web para utilizar

Básicamente, usted querría usar los servicios web RESTful para la integración a través de Internet y el uso de grandes servicios web en escenarios de integración de aplicaciones empresariales que han avanzado calidad de servicio (QoS) requisitos.

■ WebServices: trata sobre los requisitos avanzados de QoS que ocurren comúnmente en la empresa informática. [..]

■ RESTfull: hace que sea más fácil escribir aplicaciones web que aplican algunas o todas las restricciones del estilo REST para inducir propiedades deseables en la aplicación, como el acoplamiento flojo (la evolución del servidor es más fácil sin rompiendo clientes existentes), escalabilidad (inicio pequeño y crecer) y simplicidad arquitectónica (use componentes disponibles en el mercado, tales como proxies o enrutadores HTTP ). Elegiría utilizar JAX-RS para su aplicación web porque es más fácil para que muchos tipos de clientes consuman servicios web RESTful mientras habilita el lado del servidor para que evolucione y escale el lado del servidor a . Los clientes pueden optar por consumir algunos o todos los aspectos del servicio y combinar el con otros servicios basados ​​en la web.

Cuestiones relacionadas