25 de abril

El término REST zumbando desde hace bastante tiempo a través de Internet. Pero, ¿qué es REST y cómo implementar REST en Java?
Esta pregunta ha estado en la sesión de JAX "API Java para Servicios Web REST" Stefan Tilkov cree INNOQ y me explicó con toda naturalidad. A continuación me gustaría resumir brevemente lo más importante para mí esta sesión y la esperanza de que el portaobjetos toda vn Stefan Tilkov se puede descargar desde el sitio web JAX pronto.

Sin embargo, a descansar.

Si usted mira alrededor de la Internet un poco para descansar, descansar, hay muchas comparaciones con otras técnicas, tales como el descanso frente a SOA, REST vs. SOAP y REST vs WS-* (la abreviatura de la gama más amplia de las normas en el entorno web).
Según Stefan RESTO Tilkov es comparable a lo mejor de los servicios web, sino más bien acerca de sus experiencias, un enfoque diferente a altos niveles de SOA para alcanzar las metas.

Originalmente, el término REST (Re de presentación S tate T TRANSFERENCIA) a partir de una tesis de Roy Fielding (ver wikipedia ) se utiliza en el lenguaje de hoy, sino en el sentido de la totalidad "REST" utilizar el Hypertext Transfer Protocol (HTTP).

Tras las declaraciones Tilkovs, el descanso puede reducirse a cinco puntos básicos:

  1. todas las cosas tienen un ID, técnicamente implementado a través de Internet en la URI único
  2. Las cosas están interconectadas
  3. El uso de métodos estándar (interfaz uniforme), los métodos técnicos de HTTP
    GET - para la obtención de información en caché opcional
    PUT - crear o modificar un identificador conocido
    POST - Crear o adjuntar un recurso sub-(sub-recursos)
    DELETE - (lógico) la eliminación
    CABEZA - Muestra la información del encabezado (por ejemplo, tamaño de un archivo antes de cargarlo hacia abajo)
    OPCIONES - Retorno de los métodos que están disponibles en un recurso.
  4. Permitir a las diferentes representaciones (también conocido como la negociación de contenido), tales como XML o cadena JSON
  5. la comunicación sin estado como lo es en el protocolo HTTP especifica.

¿Cuáles son las ventajas de descanso?

  • apoyo universal en cualquier idioma (por ejemplo Java, C, Perl, PHP, Ruby, C #,. NET ...) y muchas herramientas (como wget, curl)
  • Una escala muy bueno
  • integración en la red real, a través de la plena utilización de los códigos de estado HTTP, incluyendo su
  • La compatibilidad con XML, pero también otros formatos como JSON (JavaScript Object Notation

Sin embargo, como las aplicaciones se pueden implementar con el apoyo REST con Java?

Respuesta: por la Java Specification Request (JSR) número 311, que consiste en especificar un API Java para Servicios Web REST. Stefan Tilkov toma parte activa en este Spezikation, la implementación de referencia JERSEY existe actualmente en la versión 0.7.
Es un framework web que implementa el RESTO entorno Java muy bien Grails .

Que vale la pena para hacer frente a REST muestra el hecho de que Google está en el proceso muchos de sus interfaces de SOAP (por ejemplo, para búsquedas ) basada en REST ejecución.

gklinkmann escrito por \ \ tags: , , , , , ,

27 de noviembre

El lenguaje de un conjunto de PHP proporciona una función llamada long2ip largo. Convierte una dirección de Internet (IPv4) a una cadena que contiene el formato de punto ("puntos-format"). Por ejemplo,

1440097712 -> 85.214.37.176 // www.k-oo.de 

En Java, he echaremos mucho de menos ayer. Afortunadamente no había en la documentación de PHP proporciona una pura versión de PHP del algoritmo de conversión (por Gabriel Malca). La traducción era entonces simplemente:

  A
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
  long2Ip ( long longValue ) { long2ip público cadena estática (valor a largo plazo) {
      new StringBuffer ( ) ; IP = new StringBuffer StringBuffer ();

      longValue < 0 ) { if (int valor <0) {
         long ) ( longValue + Math . pow ( 2 , 32 ) ) ; int valor = (long) (int valor de Matemáticas + pow (2, 32).);
      }

      int i = 3 ; i >= 0 ; i -- ) { for (int i = 3; i> = 0, i -) {
         int ) ( longValue / Math . pow ( 256 ,i ) ) ) ; . IP append ((int) (valor a largo / Matemáticas prisionero de guerra (256, i)).);
         int ) ( longValue / Math . pow ( 256 ,i ) ) * Math . pow ( 256 ,i ) ; valor int - = (int) * Matemáticas pow (256, i) (int valor / Matemáticas prisionero de guerra (256, i).),.

         i > 0 ) ip. append ( "." ) ; if (i> 0) ip append ('.').;
      }

       ( ) ; toString retorno IP ().;
 } 

Este pequeño fragmento de código siempre se puede utilizar cualquier objeto como para cambiar.

gklinkmann escrito por \ \ tags: , ,