Xunta A2 T 27 Arquitecturas Net 19
Xunta A2 T 27 Arquitecturas Net 19
Xunta A2 T 27 Arquitecturas Net 19
ARQUITECTURAS J2EE.
1
tiene soporte multiplataforma, .NET funciona slo bajo la familia de
Sistemas Operativos Windows. Mientras JEE se basa exclusivamente en el
lenguaje Java, en .NET se permiten muchos lenguajes de alto nivel, aunque
en la prctica los principales sean C# y VB .NET. JEE lleva ms aos de
experiencia en el mercado, mientras que .NET es ms reciente. Asimismo
JEE presenta mayor soporte en cuanto a soluciones y posibilidades de
software libre, que son muy escasas y de poca calidad en .NET. Con JEE se
puede instalar una infraestructura de alto rendimiento de manera
completamente gratuita.
27.2 ARQUITECTURA WEB EN .NET
3
El entorno de desarrollo compila el cdigo fuente en cualquiera de los
lenguajes soportados a un cdigo intermedio denominado CIL (en ingls
Common Intermediate Language) de manera anloga al BYTECODE de Java.
A este lenguaje intermedia se llega empleando la especificacin CLS (en
ingls Common Language Specification) donde se especifican unas reglas
necesarias para crear el cdigo intermedio CIL compatible con el CLR.
Asimismo, el CLR dispone de compiladores como JIT (en ingls Just InTime )
o AOT (en ingls Ahead Of Time) adaptados a cada lenguaje.
JIT genera el cdigo mquina real en cada mquina a partir de ese cdigo
intermedio consiguiendo independencia del hardware. Esta compilacin se
hace en tiempo de ejecucin a medida que la aplicacin o servicio invoca
mtodos o funciones. Para agilizar el procesamiento este cdigo mquina
obtenido en tiempo de ejecucin se guarda en la memoria cach
actualizndose tan slo cuando se produce algn cambio en el cdigo
fuente, momento en el que se repite el proceso. Por el contrario, AOT
compila el cdigo antes de ejecutarse con lo cual logra un mayor
rendimiento en ejecucin pero menos independencia de la plataforma. En
lo tocante a JIT normalmente se distingue entre:
1) Jitter estndar. Compila el cdigo CIL a nativo bajo demanda.
2) Jitter econmico. No optimiza, traduce cada instruccin as precisa
menos tiempo y memoria de compilacin.
3) Prejitter. Realiza una compilacin esttica de un componente
software completo.
4
Integracin multilenguaje, ya que cada lenguaje con un
compilador a CIL puede integrarse en la plataforma, con lo cual cada
componente en ese lenguaje puede integrarse una aplicacin o
servicio web .NET.
Seguridad. Por el aislamiento del cdigo de usuario respecto de los
accesos a datos y otras partes crticas del Sistema Operativo.
5
acceso o modificacin de los mismos. Algunos de estos atributos
seran SharedState, para estados compartidos, Synchronization, para
permitir la capacidad de sincronizar procesos en el host o
ExternalProcessmemt que indica si los procesos en el host se pueden
controlar externamente a travs de la API.
6
g) Motor de interaccin COM. Realiza funciones de conversin de
datos y mensajes o marshaling desde y hacia objetos COM, lo que
permite la integracin con aplicacin Legacy.
h) Motor de depuracin. Permite realizar un seguimiento de la
ejecucin del cdigo aunque mezcle diferentes lenguajes.
i) API multihilo (en ingls multithread). Proporciona una API y las
clases necesarias para gestionar la ejecucin de hilos paralelos.
j) Gestor de excepciones. Realiza la gestin estructurada e
integracin con Windows Structured Exception Handling de
excepciones aunque el error provenga de diferentes lenguajes en un
mismo componente e incluso en el cdigo an no ejecutado. Este
cdigo puede incluir excepciones SHE del tipo C++ o resultados
HRESULTS tpicos de COM.
k) API de la Biblioteca de Clases Base (BCB). Interfaz con la BCB
del marco de trabajo que realiza la integracin del cdigo con el
motor de ejecucin.
Figura 2: Ensamblados.
7
TRADUCCIN TEXTO FIGURA 2: Manifiesto. Otros ensamblados. Archivos
externos.
La Biblioteca de Clases Base es una API de alto nivel para permitir acceder
a los servicios que ofrece el CLR a travs de objetos en una jerarqua
denominada espacio de nombres. Agrupa las funcionalidades de uso
8
frecuente permitiendo su redefinicin. Se encuentra implementada en CIL
por lo que puede integrarse en cualquier otro lenguaje. Es un conjunto de
clases, interfaces y tipos valor que son la base sobre la que se crearn las
aplicaciones, componentes y controles del .NET Framework. Permite
realizar operaciones como: soporte para diferentes idiomas, generacin de
nmeros aleatorios, manipulacin de grficos e imgenes, operaciones
sobre fechas y otros tipos de datos, integracin con APIS antiguas,
operaciones de compilacin de cdigo adaptada a los diferentes lenguajes
de .NET, elementos para interfaces de usuario, tratamiento de excepciones,
acceso a datos, encriptacin, administracin de memoria, control de
procesos, etc.
Espacio
Utilidad y objetos
de nombres
Tipos bsicos, tablas, excepciones, fechas, recolector de
System
basura, etc.
System.Collection
Manipulacin de colecciones como pilas, colas, hash, etc.
s
Arquitectura ADO.NET (Objetos DataSet, DataTable,
System.Data
DataRow, DataView, ...)
System.IO Manipulacin de Y/S archivos y otros orgenes de datos
System.Net Gestin de comunicaciones de red (TPC/IP, Sockets, ...)
System.Security Gestin de las polticas de seguridad del CLR
Acceso y manipulacin de datos en documentos XML con
compatibilidad con el W3C (Transformaciones en
System.XML
System.Xml.Xls y serializacin para servicios web en
System.XML.Serialization)
Servicios para gestin de cach, seguridad y
System.Web configuracin para Servicios Web, estado de las sesiones
e interfaces de usuario
System.Web.Serv
Gestin de los requerimientos de Servicios Web
ices
Controles para interfaces de usuario HTMLControl para
System.Web.UI mapeo de etiquetas HTML y WebControl para estructurar
controles de usuario avanzados como DataGrids
9
System.Windows.
Creacin de la IU del cliente
Forms
Acceso a funcionalidades grficas bsicas de la GDI+
System.Drawing (Funcionalidades avanzadas en System.Drawing.Imaging,
System.Drawing.Text y System.Drawing.Drawing2D)
Acceso a metadatos sobre los ensamblados, mdulos,
System.Reflectio
miembros, parmetros y otras entidades del cdigo
n
administrado
Proporciona compatibilidad basada en estndares JSON,
System.JSON nota de objetos JavaScript (en ingls JavaScript Object
Notation)
System.Threadin
Manipulacin de procesos e hilos de ejecucin
g
Proporciona clases para manipular las codificacin de
System.Text caracteres UNICODE y UFT-8 conversin de bloques de
caracteres en bloques de bytes y viceversa
Contiene clases que permiten crear y administrar
System.Transacti
transacciones, admitiendo participantes distribuidos,
ons
notificaciones de fase e inscripciones duraderas
System.Resource Proporciona clases e interfaces que permiten crear,
s almacenar y administrar recursos de localizacin
System.Runtime. Proporciona la interfaz para acceso remoto y marco para
Remoting la implantacin de sistemas de componentes distribuidos
Clases para realizar la compilacin y ejecucin de cdigo
Microsoft.CSharp
en C# (Lo mismo para otros lenguajes)
10
entra en escena el principal elemento del marco, el Dataset, que recoge los
resultados cargados a partir de un origen. A su vez, puede particularizarse
con otros elementos de la base de datos con objetos como: DataTable,
DataView, DataRelation, DataRow, DataColum o Constraint. Los objetivos
de diseo principales de este marco son:
12
1. Servicios de usuarios. Se encuentran en la primera lnea de
interaccin con los usuarios y proporcionan la interfaz de acceso al
sistema que deriva en llamadas a los componentes del nivel de
Servicios corporativos. En ocasiones se consideran dentro de este
nivel procesos fuera de las interfaces de usuario, como
procedimientos de control o automatizados que no requieren la
presencia de un usuario.
2. Servicios corporativos. Encapsulan la lgica corporativa
proporcionando una API de las funcionalidades bsicas del sistema.
Esto permite abstraer los servicios de usuario de la lgica corporativa
y mantener diferentes servicios de usuario a partir de las mismas
funcionalidades. Cada funcionalidad puede precisar disponer de
varios servicios corporativos.
3. Servicios de datos. Sera la parte ms aislada del usuario,
proporcionando el acceso a datos y a otros sistemas o servidores.
Establecen diferentes API genricas de las que pueden hacer uso los
Servicios corporativos. Contienen una amplia gama de orgenes de
datos y sistemas de servidor, encapsulando reglas de acceso y
formatos de datos.
13
realiza por paso de mensajes forzando un modelo SOA distribuido.
3) EAI (en ingls Enterprise Integration Application). Especifica una
serie de requerimientos de integracin y comunicacin en sistemas
regulados por los patrones de integracin Mediacin y Federacin,
donde un sistema EAI hace funciones de Hub o bus de
comunicaciones.
27.3 ARQUITECTURA WEB EN J2EE
14
del mismo modo estn disponibles test de compatibilidad. La forma ms
habitual para la VM es mediante un compilador JIT pero tambin permite
interpretacin. Del mismo modo se permite ejecucin segura mediante el
modelo de las Java Applets. Programas de cliente que se ejecutan en una
VM dentro del navegador despus de descargar va HTTP cdigo del
servidor, que se ejecuta en una Sandbox muy restringida.
15
son las JDBC 3.0 y 4.0, que incluyen los paquetes java.sql y javax.sql.
3) JSTL (en ingls Java Server Pages Standard Tag Library). Proporciona
las funcionalidades para etiquetas en las pginas JSP.
4) RMI-IIOP (en ingls Remote Method Invocation-Internet Inter-ORB
Protocol). Proporciona la API para permitir comunicaciones en
aplicacin distribuidas a travs de JAVA RMI, por ejemplo para
acceder a componentes EJB. Los protocolos ms habituales son JRMP,
de RMI e IIOP, de CORBA.
5) IDL (en ingls Java Interfaz Definition Language). Permite la
comunicacin de clientes con servicios CORBA a travs del protocolo
IIOP, servicios SOAP o RPC.
6) JNDI (en ingls Java Naming and Directory Interfaz). Proporciona el
servicio de nombres y directorios, indicando el contexto de cada
objeto y las relaciones entre ellos. Se divide en dos interfaces, la API
de programacin y una SPI que permite conectar con proveedores de
servicios de nombres y directorios siendo los principales LDAP,
CORBA y RMI.
7) JAXP (en ingls Java API for XML Processing). Soporta el
procesamiento de documentos XML que cumplan con los esquemas
del W3C a travs de DOM, SAX y XSLT.
8) JMS (en ingls Java Message Service). Proporciona la API de envo de
mensajes para comunicarse con un MOM (en ingls Message-
Oriented Middleware), una abstraccin independiente del proveedor
para comunicaciones entre sistemas.
9) JavaMail. Proporciona la interfaz para controlar el envo y recepcin
de correos electrnicos. Puede soportar el formato MIME gracias a su
integracin con marco de trabajo JAF.
10) JAF (en ingls Java Beans Activation Framework). API que proporciona
el marco de trabajo para activacin que soporta las peticiones de
otros paquetes.
11) JTA (en ingls Java Transaction API). Orientada hacia el manejo de
16
transacciones y a permitir la comunicacin entre contenedor y
componentes del servidor de aplicaciones como los monitores
transaccionales y los administradores de recursos.
12) JAX-RPC (en ingls Java API for XML-based RPC). Proporciona soporte
para comunicaciones remotas de tipo RPC entre clientes y servicios
web con los estndares HTTP y SOAP. Soporta otros estndares como
WSDL, as como SSL y TTL para autenticacin. El SAAJ (en ingls
SOAP with attachments API for Java) aade la posibilidad de archivos
o notas aportados con los mensajes.
17
De manera general conviene considerar a la plataforma como JEE, si bien,
existen diferentes ediciones, siendo las principales:
1) J2ME. (en ingls Java 2 Platform Micro Edition). Para desarrollo de
aplicaciones para dispositivos mviles, electrodomsticos y equipos
PDA. Se desarroll mediante el JPC bajo a especificacin JSR 68.
2) J2SE. (en ingls Java 2 Platform Standard Edition). Para desarrollo de
aplicaciones de uso general en estaciones de trabajo. Se desarroll
mediante el JPC bajo diferentes especificaciones segn las versiones
existentes: 1.4, 5.0 y 6.
3) J2EE. (en ingls Java 2 Platform Entreprise Edition). Para desarrollo de
aplicaciones destinadas a servidores de aplicaciones para dar soporte
a sistemas distribuidos en N capas. Estandarizada por el JPC a partir
de la versin 1.4 suele denominarse JEE.
Para cada edicin puede distinguirse entre la SDK (en ingls Software
Development Kit), con el software y recursos destinados al desarrollo de
aplicaciones y el JRE (en ingls Java Runtime Environment) con el entorno y
libreras principales para permitir la ejecucin de las aplicaciones.
19
o SwingML.
20
De manera anloga se establece el modelo de los Bean de mensajera, que
realizan comunicacin asncrona mediante JMS en un servidor MOM (en
ingls Messaging Oriented Middleware), que puede ser un servidor externo
al servidor de aplicaciones. Tambin funciona con un patrn Fachada
centralizando las llamadas remotas.
21
4) JDO (en ingls Java Data Objects). Sistema de persistencia estndar a
partir de una especificacin JEE, aadiendo adems de la
correspondencia entre el modelo relacional y los objetos, la
posibilidad de permitir definir los objetos sobre la base de datos. Las
implementaciones de uso ms extendido son OJB, XORM, Kodo JDO o
LIDO.
22
empleando protocolos basados en XML como SOAP o SAAJ. Los
clientes acceden al servicio a partir de su interfaz definida ante WSDL
(en ingls Web Service Definition Language) o insertada en algn
registro de servicios web.
23
persistencia, control del flujo, etc.
24
servicios incorpora: Xplus, Hibernate, TopLink, OpenJPA, JORAM como
implementacin de JMS, varios protocolos RMI (IIOP, JRMP, IRMI),
soporte LDAP, servicios web Axis y otros muchos.
e) Glassfish. Alternativa libre de Sun, ahora Oracle, que tiene como
base el framework para persistencia Toplink. Incorpora adems
mdulos para soporte EJB, JAX-RS, JSF, RMI, JMS, servicios web, en la
lnea de los anteriores, y novedades como Apache Flix, una
implementacin de OSGi (en ingls Open Services Gateway) y Grizzly
que hace uso de la nueva API de Java de E/S (NIO) para mejorar la
escalabilidad.
25
principalmente Flash. Implementa parte de los servicios JEE pero
puede integrarse con otros servidores de aplicaciones como
WebSphere o Jboss, pudiendo desplegarse cmo aplicacin Java.
Adems lleva incorporado el servidor de aplicaciones Adobe JRun.
Destaca por el soporte en tecnologas AJAX, Flex, PDF, RSS, Flash
Remoting, integracin .NET y herramientas de administracin
avanzadas.
26
27
TRADUCCIN TEXTO ESQUEMA: Proyecto Mono. Motor de generacin de
IU. Multilenguaje. Ventajas. Comprobacin de la seguridad de tipos.
Recoleccin de basura. Soporte multihilo. Descripcin. Espacios de
nombres. Controles de usuario. NIVELES LGICOS. Servicios de usuario.
Servicios Corporativos. Servicios de datos. Componentes. Especificaciones.
Contenedores. Servicios. Lgica de negocio. Servidores de aplicaciones.
27.5. REFERENCIAS
Varios autores.
Biblioteca MSDN de Microsoft. (2003).
Benjamn Aumaille.
J2EE. Desarrollo de aplicaciones Web. (2002).
28