Grupo de apoyo a la preparación de la XXII convocatoria de oposiciones al Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado
PLATAFORMAS HABITUALES. El objetivo de este documento es proporcionar alternativas de plataforma para nuestro proyecto, analizando sus características y justificando la elección de una plataforma concreta. Las plataformas que se analizan en esta guía son Java EE, Microsoft .NET, LAMP y Ruby on Rails.
Plataforma Java EE Características.
Tecnología basada en estándar. Ofrecida por numerosas empresas. Lenguaje de programación Java. Librerías a través de APIs Java.
Ventajas: Orientación a estándar. Múltiples proveedores. Múltiples SO. Un único lenguaje de programación, facilita el mantenimiento. Facilidad para encontrar personal cualificado. Cierta flexibilidad en la configuración. Gran cantidad de componentes asociados. Inconvenientes: Necesidad de emplear servidores de gama alta para obtener buenos rendimientos. Configuración y administración pueden ser difíciles. Mala compatibilidad entre versiones.
Elementos relacionados.
Servlets y JSP para la creación de páginas dinámicas. Acceso a BBDD mediante JDBC, SQL/J, Java Persistence API. Soporte para servicios web. Transacciones mediante Java Transaction API. JNDI para servicios de directorio. Mensajería a través de JMS (Java Message Service). Correo electrónico a través de Java Mail Technology.
1
Grupo de apoyo a la preparación de la XXII convocatoria de oposiciones al Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado
Tratamiento de ficheros XML a través de Java API for XML (JAXP) y Streaming API for XML (StAX). JAAS para autenticación y control de acceso.
A continuación se muestran algunos ejemplos de servidores de aplicaciones, contenedores servlets, frameworks de desarrollo java, gestores de BD, APIs de la capa de negocio y frameworks/tecnologías de la capa de presentación: Nota: si en el cuarto ejercicio os decantáis por una solución Java EE, puede que sea necesario detallar el servidor de aplicaciones que vayáis a utilizar, así como el resto de elementos que se indican en la tabla siguiente. Por ese motivo, es útil conocer las ventajas e inconvenientes de cada una de las alternativas, de cara a llevar preparado esta posible pregunta en el examen.
2
Grupo de apoyo a la preparación de la XXII convocatoria de oposiciones al Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado Servidores de aplicaciones WebLogic Application Server (propietario, Oracle)
Contenedores Frameworks de servlets Java
Gestor de BD
Capa de presentación
Entornos de desarrollo
Struts (implementación modelo MVC)
EJB 3.0: implementa la lógica de negocio. Pueden ser: Message-Driven EJBs Session EJBs
MySQL
JSP
Netbeans IDE
JBoss Application Server (código abierto)
JSF (Java Server Faces): basado en MVC
Entidades JPA: soporte de persistencia
Oracle
Struts
Eclipse
Apache Geronimo (código abierto),
Hibernate
SQL Server
jQuery
JBuilder
Glassfish (código abierto)
Spring
DB2
JOnAS (código abierto)
Java Persistence API
IBM WebSphere
Tomcat
Capa de negocio
JDeveloper
3
Grupo de apoyo a la preparación de la XXII convocatoria de oposiciones al Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado
Plataforma .NET Características.
Producto de Microsoft. Librerías a través de .NET Framework. Varios lenguajes de programación.
Ventajas: Herramientas de desarrollo sencillas. Facilidad para encontrar personal cualificado. Fácil administración y configuración. Gran cantidad de componentes asociados. Flexibilidad en el desarrollo por el uso de varios lenguajes de programación. Inconvenientes: Plataforma proporcionada por una única compañía. El uso de varios lenguajes de programación afecta negativamente a la mantenibilidad. Únicamente SO Windows. Necesidad de emplear servidores de gama alta para obtener buenos rendimientos. Poca flexibilidad en la configuración. Precio de las licencias.
Elementos relacionados.
Creación de páginas dinámicas a través de ASP.NET. Acceso a BBDD a través de ADO.NET. Soporte para servicios web. Transacciones mediante MS-DTC. ADSI para servicios de directorio. Mensajería a través de MSMQ. Herramienta de desarrollo: Visual Studio .NET
Algunos servidores relacionados: BizTalk server: integración de aplicaciones y workflows. SQL server: base de datos. Exchange server: mensajería. SharePoint: colaboración, gestión documental y portales. Directorio Activo: servicio de directorio LDAP.
4
Grupo de apoyo a la preparación de la XXII convocatoria de oposiciones al Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado
A continuación se muestra la tecnología a utilizar en base a la arquitectura de capas, así como los posibles entornos de desarrollo para la plataforma .NET: Capa de negocio Componentes .NET
Capa de presentación
Capa de acceso a datos
ASP. NET
ADO.NET
ModernUI
Entornos de desarrollo Microsoft Visual Studio .NET
Servidor web IIS (Internet Information Server)
ASP.NET MVC
5
Grupo de apoyo a la preparación de la XXII convocatoria de oposiciones al Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado
Plataforma Java EE vs Plataforma .NET A continuación se muestra un cuadro comparativo entre la tecnología Java EE y la tecnología .NET: .NET
Java EE
Tipología
Producto
Estándar
Lenguaje de programación
Visual Basic .NET, Visual C# .NET, Visual C++ .NET, Java VBScript, Jscript, JScript .NET, XML, Visual J++, COBOL, Perl, Eiffel, Python, Pascal, Mercury, Mondrian, Oberon, Salford FTN95 (Fortran), SmallTalk, Dyalog APL
Plataforma
Windows
Diversas
Máquina virtual
CLR (Common Language Runtime)
JVM (Java Virtual Machine) / JRE (Java Runtime Environment)
Lenguaje interpretado
MSIL
Java bytecodes
Clientes Web
ASP.NET
JSP/Servlets
Servidores de aplicaciones
IIS
Diversos
Acceso a bases de datos
ADO.NET
JDBC
6
Grupo de apoyo a la preparación de la XXII convocatoria de oposiciones al Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado
Plataforma LAMP (Linux, Apache, MySQL, PHP/Perl/Python) Características.
Las diferentes herramientas que integran la solución global son software libre.
Ventajas: Bajo coste de adquisición. Puede obtener buenos rendimientos en servidores de gama baja/media. Flexibilidad en la configuración. Gran cantidad de frameworks. Gran cantidad de componentes asociados. Buena compatibilidad entre versiones. Múltiples SO. Sin coste de licencia. Inconvenientes: Dificultad para encontrar personal cualificado: típicamente las organizaciones poseen personal cualificado en .NET y/o Java EE. Administración compleja. Configuración compleja.
7
Grupo de apoyo a la preparación de la XXII convocatoria de oposiciones al Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado
Plataforma Ruby on Rails Características.
Ruby on Rails, también conocido como RoR o Rails, es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura Modelo Vista Controlador (MVC).
Ventajas Permite crear productos de alta calidad mucho más rápido y de forma más mantenible que otras tecnologías. Velocidad de desarrollo Inconvenientes Comunidades y soporte Procesamiento lento
Elementos relacionados.
Soporte de servidores Web: o Para desarrollo y pruebas: Mongrel o WEBrick. o Para servidores en producción: Passenger, una suerte de mod_rails para Apache. Nginx Mongrel Apache Lighttpd con FastCGI Sobre Apache, mod ruby puede mejorar considerablemente el rendimiento, aunque su uso no se recomienda porque no es seguro utilizar múltiples aplicaciones RoR sobre Apache Soporte de Bases de Datos o Se recomienda usar un SGBDR para almacenamiento de datos. o Soporta la biblioteca SQLite por defecto. o Se soportan diferentes SGBDRs, incluyendo MySQL, PostgreSQL, IBM DB2 y Oracle. Entorno de Trabajo o Aptana, Netbeans, TextMate, Gmate, Sublime Text
8