Sei sulla pagina 1di 13

Java Enterprise Edition, JEE

 JSR 366 – Java EE 8 Platform


 JSR 365 – Contexts and Dependency Injection (CDI) 2.0
 JSR 367 – The Java API for JSON Binding (JSON-B) 1.0
 JSR 369 – Java Servlet 4.0
 JSR 370 – Java API for RESTful Web Services (JAX-RS) 2.1
 JSR 372 – JavaServer Faces (JSF) 2.3
 JSR 374 – Java API for JSON Processing (JSON-P)1.1
 JSR 375 – Java EE Security API 1.0
 JSR 380 – Bean Validation 2.0
 JSR 250 – Common Annotations 1.3
 JSR 338 – Java Persistence 2.2
 JSR 356 – Java API for WebSocket 1.1
 JSR 919 – JavaMail 1.6

Apis para app webs


Java WebSockets
Comunicación entre servidor y cliente. proporcionar comunicaciones bidireccionales, full-
duplex, cliente / servidor en tiempo real. El servidor puede enviar datos al cliente en cualquier
momento. Debido a que se ejecuta sobre TCP, también proporciona una comunicación de bajo
nivel de baja latencia y reduce la sobrecarga de cada mensaje . Ejemplo un chat

paquete javax.websocket

The Java API for JSON Binding (JSON-B)


JSON-B es una capa de enlace estándar para convertir objetos Java a / de mensajes JSON

public static void main(String[] args) {


// Create a dog instance

Dog dog = new Main.Dog(); dog.name = "Falco";

dog.age = 4;

dog.bitable = false;
// Create Jsonb and serialize

Jsonb jsonb = JsonbBuilder.create();

String result = jsonb.toJson(dog);

System.out.println(result);

// Deserialize back dog =


jsonb.fromJson("{\"name\":\"Falco\",\"age\":4,\"bitable\":false}", Dog.class); }
Gson (también conocido como Google Gson) es una biblioteca de código abierto para
el lenguaje de programación Java que permite la serialización y deserialización
entre objetos Java y su representación en notación JSON.
Permite la conversión entre objetos Java y JSON de una manera sencilla, simplemente
invocando los métodos toJson() o fromJson()

Java Servelet
Servlet es una clase en el lenguaje de programación Java, utilizada para ampliar las
capacidades de un servidor. Aunque los servlets pueden responder a cualquier tipo de
solicitudes, éstos son utilizados comúnmente para extender las aplicaciones alojadas por
servidores web, de tal manera que pueden ser vistos como applets de Java que se ejecutan en
servidores en vez de navegadores web. Este tipo de servlets son la contraparte Java de otras
tecnologías de contenido dinámico Web, como PHP y ASP.NET.

La palabra servlet deriva de otra anterior, applet, que se refiere a pequeños programas que se
ejecutan en el contexto de un navegador web.

El uso más común de los servlets es generar páginas web de forma dinámica a partir de los
parámetros de la petición que envíe el navegador web.

Podemos crear un Servlet haciendo uso del paquete javax.servlet .

Interface HttpServletRequest
Interface HttpServletResponse

Api json Processing (JSON-P)


JSON Processing (JSON-P) es una API Java para procesar (por ejemplo, analizar, generar,
transformar y consultar) mensajes JSON. Produce y consume texto JSON de forma continua
(similar a StAX API para XML) y permite construir un modelo de objetos Java para texto JSON
utilizando clases de API (similar a DOM API para XML).

JsonGenerator (javax.json.stream)

Crear Json

JsonParser (javax.json.stream)

Traduccir json

Java Server Page (JSP)


JavaServer Pages Standard Tag Library (JSTL)
4 librerias:

 core, iteraciones, condicionales, manipulación de URL y otras funciones generales.


 xml, para la manipulación de XML y para XML-Transformation.
 sql, para gestionar conexiones a bases de datos.
 fmt, para la internacionalización y formateo de las cadenas de caracteres como cifras

Apis App empresa


Contexts and Dependency Injection (CDI)
En CDI los objetos manejados se llaman beans, igual que en Spring. El
método preferido de CDI para configurar el contexto es el de anotaciones
sobre los mismos beans. CDI es un inyector de dependencias por tipos, al
igual que Spring cuando utilizamos la anotación @Autowired .
Dependency injection
@Injection
Bean validation

Enterprise JavaBeans
(también conocidas por sus siglas EJB) son una de las interfaces de programación de
aplicaciones (API) que forman parte del estándar de construcción de aplicaciones
empresariales J2EE(ahora JEE) de Oracle Corporation (inicialmente desarrollado por Sun
Microsystems).
Su especificación detalla cómo los servidores de aplicaciones proveen objetos desde el
lado del servidor, que son precisamente los EJB:

 Comunicación remota utilizando CORBA.


 Transacciones.
 Control de la concurrencia.
 Eventos utilizando JMS (Java Messaging Service).
 Servicios de nombres y de directorio.
 Seguridad.
 Ubicación de componentes en un servidor de aplicaciones.
La especificación de EJB define los papeles jugados por el contenedor de EJB y los EJB,
además de disponer los EJB en un contenedor.
No hay que confundir los Enterprise JavaBeans con los JavaBeans. Los JavaBeans
también son un modelo de componentes creado por Oracle - Sun Microsystems para la
construcción de aplicaciones, pero no pueden utilizarse en entornos de objetos distribuidos
al no soportar nativamente la invocación remota (RMI).
Interceptors
permiten realizar alguna acción antes de que los métodos sean llamados. Aunque está mal
usar la palabra definida en la definición, es un modo de interceptar invocaciones a
métodos para de esta forma poder realizar alguna tarea previa a su ejecución o posterior a
ella. También se pueden encadenar interceptores para realizar varias tareas diferentes. Un
uso muy común suele ser para realizar tareas como generar logs de los métodos
ejecutados.
Existen cuatro tipos de interceptores:

 Interceptores a nivel del constructor: @AroundConstruct


 Interceptores a nivel de método: @AroundInvoke

 Interceptores asociados a timeout de métodos: @AroundTimeout (solo se usan en


EJB con servicios de timer)

 Interceptores a nivel de ciclo de vida: @PostConstruct y @PreDestroy

Java Perssitence
Java Persistence API, más conocida por sus siglas JPA, es la API de persistencia
desarrollada para la plataforma Java EE
Es un framework del lenguaje de programación Java que maneja datos relacionales en
aplicaciones usando la Plataforma Java en sus ediciones Standard (Java SE) y Enterprise
(Java EE).
 La API en sí misma, definida en el paquete javax.persistence

 El lenguaje de consulta Java Persistence Query Language (JPQL).

 Metadatos objeto/relacional.

El objetivo que persigue el diseño de esta API es no perder las ventajas de la orientación a
objetos al interactuar con una base de datos (siguiendo el patrón de mapeo objeto-
relacional), como sí pasaba con EJB2, y permitir usar objetos regulares (conocidos
como POJOs).
Una entidad de persistencia (entity) es una clase de Java ligera, cuyo estado es persistido
de manera asociada a una tabla en una base de datos relacional. Las instancias de estas
entidades corresponden a un registro (conjunto de datos representados en una fila) en la
tabla. Normalmente las entidades están relacionadas a otras entidades, y estas relaciones
son expresadas a través de meta datos objeto/relacional. Los meta datos del
objeto/relacional pueden ser especificados directamente en el fichero de la clase, usando
las anotaciones de Java (annotations), o en un documento descriptivo XML, el cual es
distribuido junto con la aplicación.

Java Message Service


La API Java Message Service (en español servicio de mensajes Java), también conocida por sus
siglas JMS, es la solución creada por Sun Microsystems para el uso de colas de mensajes. Este
es un estándar de mensajería que permite a los componentes de aplicaciones basados en la
plataforma Java2 crear, enviar, recibir y leer mensajes. También hace posible la comunicación
confiable de manera asíncrona.

Java Transaction API (JTA)


JavaMail

Java EE Connector Architecture (JCA)


es una solución tecnológica basada en el Lenguaje de programación Java para conectar
servidores de aplicaciones y sistemas de información empresarial (EIS) como parte de
soluciones de integración de aplicación de empresa (EAI). Mientras JDBC se usa
específicamente para conectar aplicaciones Java a Bases de datos, JCA es una
arquitectura más genérica para conectarse a sistemas heredados (incluyendo bases de
datos). JCA fue desarrollado bajo el Java Community Process como JSR 16 (JCA 1.0),
JSR 112 (JCA 1.5) y JSR 322 (JCA 1.6).

Java Database Connectivity, JDBC,


es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de
programación Java, independientemente del sistema operativo donde se ejecute o de la base
de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se
utilice.

El API JDBC se presenta como una colección de interfaces Java y métodos de gestión de
manejadores de conexión hacia cada modelo específico de base de datos. Un manejador de
conexiones hacia un modelo de base de datos en particular es un conjunto de clases
que implementan las interfaces Java y que utilizan los métodos de registro para declarar los
tipos de localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de
datos particular, el usuario ejecuta su programa junto con la biblioteca de conexión apropiada
al modelo de su base de datos, y accede a ella estableciendo una conexión; para ello provee el
localizador a la base de datos y los parámetros de conexión específicos. A partir de allí puede
realizar cualquier tipo de tarea con la base de datos a la que tenga permiso: consulta,
actualización, creación, modificación y borrado de tablas, ejecución de procedimientos
almacenados en la base de datos, etc.

Drivers JDBC

Los drivers JDBC drivers son adaptadores del lado del cliente (instalados en la máquina cliente,
no en el servidor) que convierten la petición proveniente del programa JAVA a un protocolo
que el SGBD pueda entender.

 Driver JDBC Tipo 1 (tambien llamado Puente JDBC-ODBC) convierte el método JDBC a
una llamada a una función ODBC. Utiliza los drivers ODBC para conectar con la base de
datos.

 Driver JDBC Tipo 2 (también llamado driver API-Nativo) convierte el método JDBC a
llamas nativas de la API de la base de datos. Es más rápido que el puente JDBC-ODBC
pero se necesita instalar la librería cliente de la base de datos en la máquina cliente y
el driver es dependiente de la plataforma.

 Driver JDBC Tipo 3. Hace uso de un Middleware entre el JDBC y el SGBD.

 Driver JDBC Tipo 4 (también llamado Driver Java Puro directo a la base de datos). Es
independiente a la plataforma.

Paquete java.sql[editar]

JDBC ofrece el paquete java.sql, en el que existen clases muy útiles para trabajar con bases de
datos.

Clase Descripción

DriverManager Para cargar un driver

Connection Para establecer conexiones con las bases de datos

Statement Para ejecutar sentencias SQL y enviarlas a las BBDD

La ruta de ejecución está predeterminada en el servidor de base de


PreparedStatement
datos que le permite ser ejecutado varias veces
ResultSet Para almacenar el resultado de la consulta

Web Services

Servicios web
es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para
intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en
lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden
utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet.
La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las
organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación
de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de
servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para
definir de manera más exhaustiva estos estándares. Es una máquina que atiende las peticiones
de los clientes web y les envía los recursos solicitados.
En la arquitectura de servicios web existen tres partes: proveedor de servicios web, el que
pide el servicio web y el publicador. El proveedor de servicios envia al publicador del
servicio un fichero WSDL con la definición del servicio web. El que pide el servicio contacta
con el publicador y descubre quien es el proveedor (protocolo WSDL) y contacta con el
proveedor (protocolo SOAP). El proveedor valida la peticion de servicio y envia el dato
estructurado en formato XML utlizando el protocolo SOAP. El fichero XML es validado de
nuevo por el que pide el servicio utilizando un fichero XSD.

Estándares empleados

 Web Services Protocol Stack: conjunto de servicios y protocolos de los servicios web.

 XML (Extensible Markup Language): formato estándar para los datos que se vayan a
intercambiar.

 SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call):
protocolos sobre los que se establece el intercambio.

 Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra
mediante protocolos normales como Hypertext Transfer Protocol (HTTP), File Transfer
Protocol (FTP), o Simple Mail Transfer Protocol(SMTP).

 WSDL (Web Services Description Language): es el lenguaje de la interfaz pública para


los servicios web. Es una descripción basada en XML de los requisitos funcionales
necesarios para establecer una comunicación con los servicios web.

 UDDI (Universal Description, Discovery and Integration): protocolo para publicar la


información de los servicios web. Permite comprobar qué servicios web están
disponibles.
 WS-Security (Web Service Security): protocolo de seguridad aceptado como estándar
por OASIS (Organization for the Advancement of Structured Information Standards).
Garantiza la autenticación de los actores y la confidencialidad de los mensajes
enviados.

 REST (Representational State Transfer): arquitectura que, haciendo uso del


protocolo HTTP, proporciona una API que utiliza cada uno de sus métodos (GET, POST,
PUT, DELETE, etcétera) para poder realizar diferentes operaciones entre la aplicación
que ofrece el servicio web y el cliente.

 GraphQL, arquitectura alternativa a REST.

Ventajas de los servicios web[editar]

 Aportan interoperabilidad entre aplicaciones de software independientemente de sus


propiedades o de las plataformas sobre las que se instalen.

 Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen
más fácil acceder a su contenido y entender su funcionamiento.

 Permiten que servicios y software de diferentes compañías ubicadas en diferentes


lugares geográficos puedan ser combinados fácilmente para proveer servicios
integrados.

Inconvenientes de los servicios web

 Para realizar transacciones no pueden compararse en su grado de desarrollo con los


estándares abiertos de computación distribuida como CORBA (Common Object
Request Broker Architecture).

 Su rendimiento es bajo si se compara con otros modelos de computación distribuida,


tales como Java Remote Method Invocation (RMI), CORBA o Distributed Component
Object Model (DCOM). Es uno de los inconvenientes derivados de adoptar un formato
basado en texto. Y es que entre los objetivos de XML no se encuentra la concisión ni la
eficacia de procesamiento.

 Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas


reglas tratan de bloquear o auditar la comunicación entre programas a ambos lados de
la barrera.

Razones para crear servicios Web

La principal razón para usar servicios Web es que se pueden utilizar con HTTP
sobre Transmission Control Protocol (TCP) en el puerto de red 80. Dado que las organizaciones
protegen sus redes mediante firewalls (que filtran y bloquean gran parte del tráfico de
Internet), cierran casi todos los puertos TCP salvo el 80, que es, precisamente, el que usan
los navegadores web. Los servicios Web utilizan este puerto, por la simple razón de que no
resultan bloqueados. Es importante señalar que los servicios web se pueden utilizar sobre
cualquier protocolo, sin embargo, TCP es el más común.

Otra razón es que, antes de que existiera SOAP, no había buenas interfaces para acceder a las
funcionalidades de otras computadoras en red. Las que había eran ad hoc y poco conocidas,
tales como Electronic Data Interchange (EDI), Remote Procedure Call (RPC), u otras API.
Una tercera razón por la que los servicios Web son muy prácticos es que pueden aportar gran
independencia entre la aplicación que usa el servicio Web y el propio servicio. De esta forma,
los cambios a lo largo del tiempo en uno no deben afectar al otro. Esta flexibilidad será cada
vez más importante, dado que la tendencia a construir grandes aplicaciones a partir de
componentes distribuidos más pequeños es cada día más utilizada.

Se espera que para los próximos años mejoren la calidad y cantidad de servicios ofrecidos
basados en los nuevos estándares.

Plataformas

Servidores de aplicaciones para servicios Web:

 JBoss servidor de aplicaciones J2EE Open Source de Red Hat inc.

 Oracle Fusion Middleware

 IBM Lotus Domino a partir de la versión 7.0

 Axis y el servidor Jakarta Tomcat (de Apache)

 ColdFusion MX de Macromedia

 Java Web Services Development Pack (JWSDP) de Sun Microsystems (basado


en Jakarta Tomcat)

 JOnAS (parte de ObjectWeb una iniciativa de código abierto)

 Microsoft .NET

 Novell exteNd (basado en la plataforma J2EE)

 WebLogic

 WebSphere

 JAX-WS con GlassFish

 Zope es un servidor de aplicaciones Web orientado a objetos desarrollado en


el lenguaje de programación Python

 VERASTREAM de AttachmateWRQ para modernizar o integrar aplicaciones host IBM y


VT

Java API for RESTful Web Services (JAX-RS)


proporciona soporte en la creación de servicios web de acuerdo con el estilo
arquitectónico Representational State Transfer (REST).1 JAX-RS usa anotaciones, introducidas
en Java SE 5, para simplificar el desarrollo y despliegue de los clientes y puntos finales de los
servicios web
A partir de la versión 1.1 en adelante, JAX-RS es una parte oficial de Java EE 6. Una
característica notable de ser parte oficial de Java EE es que no se requiere configuración para
comenzar a usar JAX-RS. Para los entornos que no son Java EE 6 se requiere una (pequeña)
entrada en el descriptor de despliegue web.xml.

Especificación
JAX-RS proporciona algunas anotaciones para ayudar a mapear una clase recurso (un POJO) como
un recurso web. Entre estas anotaciones se incluyen:

@Path especifica la ruta de acceso relativa para una clase recurso o método.

@GET, @PUT, @POST, @DELETE y @HEAD especifican el tipo de petición HTTP de un recurso.

@Produces especifica los tipos de medios MIME de respuesta.

@Consumes especifica los tipos de medios de petición aceptados.

Además, proporciona anotaciones adicionales para los parámetros de método para extraer
información de la solicitud. Todas las anotaciones @*Param toman una clave de alguna forma que
se utiliza para buscar el valor requerido.

@PathParam enlaza el parámetro a un segmento de ruta.

@QueryParam enlaza el parámetro al valor de un parámetro de consulta HTTP.

@MatrixParam enlaza el parámetro al valor de un parámetro de matriz de HTTP.

@HeaderParam enlaza el parámetro a un valor de cabecera HTTP.

@CookieParam enlaza el parámetro a un valor de cookie.

@FormParam enlaza el parámetro a un valor de formulario.

@DefaultValue especifica un valor por defecto para los enlaces anteriores cuando la clave no es
encontrada.

@Context devuelve todo el contexto del objeto. (Por ejemplo: @Context HttpServletRequest
request)

Implementación
Entre las implementaciones de JAX-RS se incluyen:2

 Apache CXF, un framework de servicios web de código abierto.


 Jersey, la implementación de referencia de Sun (ahora Oracle).
 RESTeasy, implementación de JBoss.
 Restlet, creado por Jerome Louvel, un pionero en frameworks de REST.
 Apache Wink, proyecto de Apache Software Foundation Incubator, el módulo del
servidor implementa JAX-RS.
 JBoss, la librería org.jboss.resteasy da soporte de JAX-RS sobre la
plataforma JBoss.

Jersey
De acuerdo con el Tutorial de Java EE 6, Volumen 1: Jersey es la implementación de
referencia de calidad de producción de Sun para JSR 311: JAX-RS: The Java API for
RESTful Web Services. Jersey implementa soporte para las anotaciones definidas en la
JSR-311, lo que facilita a los desarrolladores crear servicios web RESTful con Java y la
JVM de Java. Jersey también añade características adicionales no especificadas por la
JSR.3

REST (Transferencia de estado transaccional)


estilo de arquitectura software para sistemas hipermedia distribuidos como la World Wide
Web. El término se originó en el año 2000, en una tesis doctoral sobre la web escrita
por Roy Fielding, uno de los principales autores de la especificación del protocolo HTTP y
ha pasado a ser ampliamente utilizado por la comunidad de desarrollo.

describir cualquier interfaz entre sistemas que utilice directamente HTTP para obtener datos o
indicar la ejecución de operaciones sobre los datos, en cualquier formato (XML, JSON, etc) sin
las abstracciones adicionales de los protocolos basados en patrones de intercambio de
mensajes, como por ejemplo SOAP. Es posible diseñar sistemas de servicios web de acuerdo
con el estilo arquitectural REST de Fielding y también es posible diseñar interfaces XMLHTTP de
acuerdo con el estilo de llamada a procedimiento remoto (RPC), pero sin usar SOAP. Estos dos
usos diferentes del término REST causan cierta confusión en las discusiones técnicas,
aunque RPC no es un ejemplo de REST.

REST afirma que la web ha disfrutado de escalabilidad como resultado de una serie de diseños
fundamentales clave:

 Un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la


información necesaria para comprender la petición. Como resultado, ni el cliente ni el
servidor necesitan recordar ningún estado de las comunicaciones entre mensajes. Sin
embargo, en la práctica, muchas aplicaciones basadas en HTTP utilizan cookies y otros
mecanismos para mantener el estado de la sesión (algunas de estas prácticas, como la
reescritura de URLs, no son permitidas por REST)

 Un conjunto de operaciones bien definidas que se aplican a todos los recursos de


información: HTTP en sí define un conjunto pequeño de operaciones, las más
importantes son POST, GET, PUT y DELETE. Con frecuencia estas operaciones se
equiparan a las operaciones CRUD en bases de datos (CLAB en castellano:
crear,leer,actualizar,borrar) que se requieren para la persistencia de datos, aunque
POST no encaja exactamente en este esquema.

 Una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso
es direccionable únicamente a través de su URI.

 El uso de hipermedios, tanto para la información de la aplicación como para las


transiciones de estado de la aplicación: la representación de este estado en un sistema
REST son típicamente HTML o XML. Como resultado de esto, es posible navegar de un
recurso REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de
registros u otra infraestructura adicional.

Enterprise Web Services

Web Services Metadata for Java platform


para estandarizar el desarrollo de las interfaces de los servicios web para la plataforma Java.
Con las anotaciones de JSR 181, puede anotar una clase de implementación de servicios web o
una interfaz de servicios web. Permite a los desarrolladores crear servicios web Java portátiles
a partir de una simple clase de objetos antiguos de Java simple (POJO) al agregar anotaciones,
y también ayuda a generar un servicio web con un asistente o al publicar el servicio en un
servidor.

Algunas de las anotaciones especificadas por este JSR son:

 @WebService
 @WebMethod
 @Oneway
 @WebParam
 @WebResult
 @HandlerChain
 @SOAPBinding

JAX-RPC (Java API for XML-based RPC, Java Application Programming


Interface for Extensible Markup Language - based Remote Procedure Call) permite
a una aplicación Java invocar un servicio web (Web Service o WS) basado en Java con una
descripción conocida sin dejar de ser consistente con su descripción Web Services Description
Language (WSDL). Se puede ver como Java Remote Method Invocation (Java RMI) sobre
servicios web.

JAX-RPC 1 está en desuso con Java EE 6.1 El servicio JAX-RPC utiliza estándares del W3C (World
Wide Web Consortium) como WSDL.2

JAX-RPC 2.0 fue renombrado a JAX-WS 2.0 (Java API for XML Web Services).

Java API for XML Registries (JAXR)


JAXR proporciona una API de Java uniforme y estándar para acceder a diferentes tipos de
registros de metadatos basados en XML.

Administración y Seguridad.

Java EE Security API


J2EE Management

Especificaciones relacionadas con Java EE en Java SE

Java Management eXtensions, JMX

es la tecnología que define una arquitectura de gestión, la API (Application Programming


Interface), los patrones de diseño, y los servicios para la monitorización/administración de
aplicaciones basadas en Java
SOAP with Attachments API for Java o SAAJ
suministra una manera estándar de enviar documentos XML sobre Internet desde la
plataforma Java.

SAAJ permite a los desarrolladores producir y consumir mensajes que sean conformes a la
especificación SOAP 1.1 y a la nota SOAP with Attachments(SOAP con Adjuntos).

Los desarrolladores pueden usar también esto para escribir aplicaciones de


mensajería SOAP directamente en lugar de usar JAX-RPC o JAX-WS.

Streaming API for XML (StAX)


es una interfaz de programación de aplicaciones (API) para leer y escribir
documentos XML, originaria de la comunidad del lenguaje de programación Java.
Tradicionalmente, las APIs XML son de uno de tos dos tipos:

 basadas en DOM - todo el documento es leído en memoria como una estructura de


árbol para acceso aleatorio por la aplicación llamante
 basadas en eventos - la aplicación se registra para recibir eventos según las entidades
se encuentran en el documento de origen.
Ambos tienen ventajas, el primero (por ejemplo, DOM) permite acceso aleatorio al
documento, el segundo (por ejemplo, SAX) requiere una pequeña huella de memoria y es
típicamente mucho más rápido.
Estos dos paradigmas de acceso pueden ser considerados como polos opuestos. Una API
basada en un árbol permite acceso y manipulación ilimitados y aleatorios, mientras que
una API basada en eventos es un pase de 'una sola vez' a través del documento de
origen.
StAX fue diseñado como un término medio entre estos dos polos opuestos. En el
paradigma StAX, el punto de entrada de programación es un cursor que representa un
punto dentro del documento. La aplicación mueve el cursor hacia adelante ("tirando" de la
información del analizador según necesita). Esto es diferente de una API basada en
eventos, como SAX, que "empuja" los datos a la aplicación (requiriendo que la aplicación
mantenga el estado entre los eventos puesto que es necesario para realizar un
seguimiento de la ubicación dentro del documento).

API de Java para XML Processing , JAXP


proporciona la capacidad de validar y analizar XML documentos. Tiene tres interfaces básicas
de análisis:

 la interfaz de análisis Document Object Model o la interfaz DOM


 la API simple para la interfaz de análisis XML o la interfaz SAX
 la API Streaming para XML o StAX interfaz (parte de JDK 6; tarro separada para JDK 5)

Además de las interfaces de análisis sintáctico, la API proporciona una interfaz XSLT para
proporcionar datos y transformaciones estructurales en un documento XML.

Java Architecture for XML Binding (JAXB)


permite a los desarrolladores Java asignar clases de Java a representaciones XML. JAXB
proporciona dos características principales: la capacidad de serializar las referencias de objetos
Java a XML y la inversa, es decir, deserializar XML en objetos Java. En otras palabras, JAXB
permite almacenar y recuperar datos en memoria en cualquier formato XML, sin la necesidad
de implementar un conjunto específico de rutinas de carga y guardado de XML para la
estructura de clases del programa. Es similar a xsd.exe y XmlSerializer en .NET Framework.

JAX-WS (Java API for XML Web Services)


es una interfaz de programación de aplicaciones (API) de Java en Extensible Markup
Language (XML) para la creación de servicios web (WS). Es parte de la plataforma Java
EE de Sun Microsystems. Al igual que las otras API de Java EE, JAX-WS utiliza anotaciones,
introducidas en Java SE 5, para simplificar el desarrollo y despliegue de los clientes y puntos
finales de servicios web. Es parte del Java Web Services Development Pack.

La implementación de referencia de JAX-WS se desarrolla como un proyecto de código


abierto y forma parte del proyecto GlassFish, un servidor de aplicaciones Java EE de código
abierto. Se llama JAX-WS RI (por Reference Implementation) y se dice que es la
implementación de calidad de producción (contrariamente a la implementación de referencia
antigua que era una prueba de concepto). Esta implementación de referencia es ahora parte
de la distribución Metro.1

JAX-WS también es uno de los fundamentos de WSIT.

JavaBeans Activation Framework (JAF)

https://docs.oracle.com/javaee/7/tutorial/index.html

Potrebbero piacerti anche