Java.- Java es un lenguaje de programación orientado a objetos, siendo uno de los lenguajes más
populares y más utilizados en todo el mundo, tanto en dispositivos móviles, aplicaciones web, aplicaciones de escritorio, etc. Su principal característica es que es un lenguaje independiente de la plataforma, es decir que cualquier aplicación desarrollada bajo la plataforma java puede funcionar en cualquier computador indistintamente del sistema operativo, ya que utiliza la máquina virtual de java que hace de puente entre la aplicación y el sistema operativo. Posee varias ventajas como: Independencia de plataforma, alto rendimiento, fácil de aprender, seguridad, flexibilidad, expandible y es de código libre.
Para el presente proyecto se utilizará Java EE en su versión 7, ya que cuenta con un conjunto de API y servicios para trabajar con aplicaciones web distribuidas multicapas, separando la capa de presentación, la del modelo y la de acceso a datos, basado en el patrón MVC.
Glassfish.- Glassfish es un servidor de aplicaciones de código libre que implementa las
tecnologías especificadas por Java EE que soporta las últimas versiones de tecnologías como JSP, JSF, Servlet, EJB, Persistencia Java, JAX-WS, etc. éste último utilizado para la implementación de nuestros servicios web SOAP, siendo una buena solución empresarial que son portátiles y escalables. Las últimas versiones de Glassfish tiene como características principales: modular, integrable y extensible.
Cabe recalcar que Glassfish es una implementación de JAVA EE y además posee soporte para Metro, JAX-WS y WSIT, tecnologías elegidas para la implementación de seguridad en los servicios web, estas tecnologías se detallarán más adelante.
MySQL.- My Structured Query Language, es un sistema de base de datos relacional, este motor
de base de datos fue seleccionado ya que es un software de código abierto por ende muy popular y el más utilizado en la actualidad gracias a su velocidad, rendimiento, robustez, soporta gran
54
cantidad de datos, facilidad de uso y portabilidad para trabajar en distintas plataformas y sistemas operativos. Dentro de las ventajas para utilizar este motor de base de datos se pueden citar las siguientes:
• Velocidad para realizar transacciones, siendo el de mejor rendimiento. • Facilidad de instalación y configuración.
• Gracias a su conectividad y seguridad hacen que su uso sea fiable en la web. • Soporta funciones y procedimientos almacenados.
• Seguridad en cuantos a permisos y privilegios.
Metro.- Es un framework para el desarrollo de servicios web de alto rendimiento, extensible y fácil
de usar, es parte o está incluido dentro del servidor de aplicaciones Glassfish a partir de su versión 2, aunque también está dentro de JBoss, Oracle WebLogic Server, pero puede ser utilizado también fuera de él. Este Metro es una colección de tecnologías tales como: JAX-WS, JAXB y WSIT, para la implementación y la interoperabilidad de servicios web. Metro permite utilizar HTTP a nivel de transporte, además la fiabilidad de mensajes (Reliability) mediante la implementación de especificaciones de WS-Security.
Los componentes principales de Metro son 2: JAX-WS RI y WSIT. Tecnologías que describiremos a continuación:
JAX-WS.- Es un API usado para la implementación de servicios web XML, JAX-WS promueve la
interoperabilidad SOAP, es parte de la plataforma Java EE y de la distribución de Metro descrita anteriormente, y es open source, Usa Java Architecture XML Binding (JAXB) para acceder procesar los documentos XML desde una aplicación java sin tener que ser experto en procesamiento XML.
JAX-WS permite desarrollar servicios web que se comunican a través de XML, utilizando mensajes orientados a llamadas a procedimientos remotos (RPC) representado en el protocolo SOAP, éste protocolo define la estructura y la codificación de las llamadas y respuestas de los mensajes a través de HTTP. Por eso una de las razones por la cual se utilizará este API es porque ayuda a ocultar la complejidad de los mensajes SOAP, incluyendo todas las funcionalidades de los mensajes SOAP como WS-Addressing.
WSIT.- Web Services Interoperability Technologies (WSIT), anteriormente conocido como
Proyecto Tango, es una tecnología de la pila de Metro, encargada de la interoperabilidad de servicios web, siendo la interoperabilidad la base principal de la orientación a servicios incluido en
55
este estudio. La seguridad soportada por WSIT es una implementación de OASIS WS-Security, WS-Trust, WS- Secure Conversation, WS-Security Policy, que proveen un framework para asegurar el intercambio de mensajes SOAP garantizando la interoperabilidad, integridad y la confidencialidad del contenido de los mensajes. WSIT se compone de una serie de Apis de Java y extensiones para el protocolo SOAP que permiten implementar características WS- Interoperability (WS-I) como se puede ver en la Figura 18:
Figura 18. Componentes WSIT
Fuente: (Patiño Castillo, 2014) Elaboración: (Patiño Castillo, 2014)
Netbeans IDE conjuntamente con WSIT provee de mecanismos de seguridad implementados por WSIT para configuración tanto en el servicio como en el cliente, Estos mecanismo son:
• Username Authentication with Symmetric Keys (UA) • Mutual Certificates Security (MCS)
• Transport Security (SSL)
• SAML Authorization over SSL (SA)
• SAML Sender Vouches with Certificates (SV) • STS Issued Token (STS) Core XML XML XML Namespace XML Infoset XML Schema Optimization SOAP MTOM WS-Addressing Bootstraping WSDL WS-Policy WS-MetadataExchange Seguridad WS-Security Policy WS-Security WS-Trust WS-SecureConv ersation Reliability WS-ReliableMessaging WS-Coordination WS-Atomic Transaction
56
El presente trabajo está enfocado a la seguridad de los servicios web, por tal razón nos referiremos a la parte de seguridad, optimización de mensajes y a la mensajería fiable utilizando: SOAP, WSDL, WS-Security Policy y WS-Security, y como mecanismos de autenticación: SAML Sender Vouches with Certificates, descritos a continuación: