MarcosDeDesarrolloI 03

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 38

SERVIDOR WEB

Un servidor es un dispositivo virtual que le brinda espacio y estructura


a los sitios web para que almacenen sus datos y manejen sus páginas.
Un servidor web es un software y un hardware que utiliza el protocolo
HTTP (Hypertext Transfer Protocol) y otros protocolos para responder a
las peticiones de los clientes realizadas a través de la World Wide Web.
La principal función de un servidor web es mostrar el contenido de un
sitio web almacenando, procesando y entregando las páginas web a los
usuarios. Además de HTTP, los servidores web también soportan SMTP
(Simple Mail Transfer Protocol) y FTP (File Transfer Protocol), utilizados
para el correo electrónico, la transferencia de archivos y el
almacenamiento.
El hardware del servidor web está conectado a internet y permite el
intercambio de datos con otros dispositivos conectados, mientras que
el software del servidor web controla el modo en que un usuario
accede a los archivos alojados. Ejemplos de servidores web: Apache,
Microsoft IIS, Sun Java System Web Server, Ngnix o Lighttp entre otros.
Sistema Operativo Se encarga de que el hardware funcione y logre interactuar con los
servicios que corre el sistema (Unix, Linux o Windows)
Sistemas de Archivos Es una guía lógica que permite que el sistema pueda ubicar, ordenar y
filtrar datos en el disco duro, con el fin de que podamos leerlos, CA
modificarlos o eliminarlos. RAC
Software servidor Son los diferentes tipos de servidores web especializados en transmitir TE
HTTP el contenido vía web (Apache, Nginx, IIS, Caddy, etc.) RÍSTI
CAS
Virtual Hosting Permite que bajo el mismo web server e IP se alojen en varios sitios
web distinto. DE
Despacho de ficheros Los ficheros estáticos brindan soporte para alojar y despachar archivos
estáticos y dinámicos como: JPG, GIF, PNG, BMP, CSS, TXT, HTML, Javascript, MP3 y MP4. Los UN
ficheros dinámicos funcionan para información en PHP, ASP, Python, SER
Ruby y GO. VI
Monitoreo de Red y Permite monitorear el tránsito de red, paquetes que entran y salen, así DOR
Límites como servicios de sistema y uso de hardware como: el uso del
almacenamiento; consumo de RAM, etc. WEB
Sistemas de Cifrado de la comunicación entre el servidor web y el cliente vía HTTPS
Seguridad
SERVIDORES DE APLICACIONES
Un servidor de aplicaciones es un programa de servidor que
proporciona la lógica del negocio y el entorno de ejecución en una red
distribuida para un programa de aplicación, es donde la aplicación se
ejecuta realmente, ofreciendo respuestas personalizadas y dinámicas a
las peticiones de los cliente que tienen acceso a dicha aplicación.
En palabras más simples se puede conocer como una máquina que
brinda servicios a los dispositivos conectados en la red permitiendo
ejecutar estas aplicaciones sin tenerlas instaladas en el dispositivo a
utilizar.
Los ejemplos incluirían Apache Tomcat, WebSphere, JBoss, GlassFish,
etc.
CA • Suelen ser dispositivos de alta gama que permitan siempre estar
RAC
TE encendidos y disponibles.
RÍSTI • Ofrece un software de conectividad o también conocido como
CAS middleware que se encarga de la parte de confiabilidad y seguridad
entre las comunicaciones de servidores y los servicios en la red.
DE
• Ofrece una interfaz para programación de aplicaciones (API) que se
UN puede definir como un módulo de software para la interacción y la
SER intercomunicación con otros sistemas o interfaces por lo cual no es
VI
DOR
necesario considerar aspectos físicos del computador como el sistema
operativo, o la cantidad de clientes que se intenten conectar.
DE • Ofrece soporte para su buen funcionamiento en web en los diversos
estándares (HTML, IIOP, SSL, JDBC, entre otros) y con sistemas de
APLI
CA datos y dispositivos.
CIO • Permite sistemas distribuidos adquiriendo características como:
NES Disponibilidad, Mantenimiento y Escalabilidad.
SERVIDORES DE BASES DE DATOS
Un servidor de base de datos o database server es un tipo de hardware
que ejecuta software de base de datos. Este software permite a los
usuarios o empresas almacenar, administrar, recuperar, actualizar o
cambiar archivos, registros de información y otras formas de datos
digitales.
Sus dos componentes principales son las funciones de back-end y los
servicios orientados al cliente. El back-end de un servidor de base de
datos almacena todos los archivos e información digitales, mientras
que los servicios orientados al cliente permiten a los usuarios acceder,
modificar, agregar o monitorear los datos almacenados en el servidor
de la base de datos.
• Algunos ejemplos son MySQL server, PostgreSQL server, Microsoft
SQL Server, MongoDB server, etc.
CARACTERÍSTICAS DE LOS SERVIDORES DE
BASES DE DATOS
• Gestión central y protección de datos: ofrecen una ubicación central
para administrar y mantener los datos.
• Múltiples usuarios y facilidad para compartir datos: acceso de
múltiples usuarios a las bases de datos, donde se incluyen permisos
para actualizar, eliminar o recuperar datos.
• Funcionamiento de los database server: funcionan al contener el
almacenamiento de la base de datos y el espacio de memoria, junto
con un sistema de administración de bases de datos (DBMS). El DBMS
es la aplicación que utilizan los clientes para acceder a su información
digital a través del servidor de base de datos.
APLICACIÓN WEB
• 1. Front-end: es la interfaz gráfica para los usuarios basada en el
navegador web, se encuentra en el primer nivel.
• 2. Servidor de aplicaciones y la Interfaz para Programación de
Aplicaciones (API): Es la aplicación lógica del negocio comportándose
como intermediario entre de la comunicación de la interfaz del front-
end y las bases de datos en el back-end, se encuentra en el segundo
nivel.
• 3. Back-end: Son las bases de datos para almacenamiento y
transacciones de los datos, se encuentra en el tercer nivel.
CONTENEDORES
Son paquetes de software que incluyen todos los elementos necesarios
para ejecutar productos en cualquier entorno. Como virtualizan el
sistema operativo, se pueden ejecutar en cualquier parte, desde un
centro de datos privado hasta la nube pública o incluso el portátil
personal de un desarrollador. La creación de contenedores permite a
los equipos de desarrollo moverse con rapidez, desplegar software con
eficacia y funcionar a una escala sin precedentes.
DEFINICIÓN
Los contenedores son paquetes ligeros que incluyen el código de las
aplicaciones junto con sus dependencias, como versiones concretas de
entornos de ejecución de ciertos lenguajes de programación y
bibliotecas indispensables para ejecutar los servicios de software.

Con los contenedores resulta muy fácil compartir recursos de CPU,


memoria, almacenamiento y red a nivel de sistema operativo. Además,
constituyen un mecanismo de empaquetado lógico en el que se
pueden abstraer las aplicaciones del entorno en el que se ejecutan
realmente.
VENTAJAS DE LOS CONTENEDORES
Separación de Permiten separar de forma clara las responsabilidades, ya que los
responsabilidades desarrolladores se centran en la lógica y las dependencias de las
aplicaciones, mientras que los equipos de operaciones de TI se dedican
a desplegarlas y gestionarlas sin preocuparse por detalles concretos,
como versiones de software o configuraciones específicas.
Portabilidad de las
cargas de trabajo Resulta fácil desarrollarlos y desplegarlos en sistemas operativos Linux,
Windows y Mac; en máquinas virtuales o servidores físicos; en equipos
de desarrolladores o centros de datos; y, por supuesto, en la nube
pública.

Aislamiento de Virtualizan los recursos de CPU, memoria, almacenamiento y red a


aplicaciones
nivel de sistema operativo, lo que proporciona a los desarrolladores
una vista del sistema operativo aislado lógicamente de las demás
aplicaciones.
CONTENEDORES O MÁQUINAS VIRTUALES
Es probable que sepas cómo funcionan las máquinas virtuales: un
sistema operativo invitado, como Linux o Windows, se ejecuta en un
sistema operativo anfitrión con acceso al hardware subyacente. Los
contenedores permiten empaquetar las aplicaciones con bibliotecas y
otras dependencias, de modo que proporcionan entornos aislados para
ejecutar servicios de software.
• Los contenedores son mucho más ligeros que las máquinas virtuales.
• Los contenedores virtualizan a nivel de sistema operativo y las
máquinas virtuales, a nivel de hardware.
• Los contenedores comparten el kernel del sistema operativo y no
utilizan tanta memoria como la que necesitan las máquinas virtuales.
USOS DE LOS CONTENEDORES
Desarrollo Los contenedores permiten que los desarrolladores avancen
ágil con mucha más rapidez, ya que se pueden despreocupar de
las dependencias y los entornos.

Operaciones Los contenedores son ligeros y te permiten utilizar los


eficientes recursos de computación indispensables, ni más ni menos.
Así puedes ejecutar tus aplicaciones de manera eficiente.

Ejecución Los contenedores se pueden ejecutar casi en cualquier


en cualquier lugar. Donde quieras ejecutar el software, podrás usar
lugar contenedores.
TIPOS DE CONTENEDORES
• Linux Containers
• Windows Server Containers
• Docker
EJEMPLOS DE CONTENEDORES
• Sun Java System Application Server
• Sun Java System Web Server
• Tomcat para Java Web Services Development Pack
• Oracle Glassfish Server
EJB (Enterprise JavaBeans)
Enterprise JavaBeans (EJB) es una arquitectura de componentes de
servidor que simplifica el proceso de construcción de aplicaciones de
componentes empresariales distribuidos en java.

Además es una arquitectura para el desarrollo y despliegue de


aplicaciones de negocio basadas en componentes.

Son escalables, transaccionales y de multiusuario seguro. Estas


aplicaciones se pueden escribir una vez, y luego desplegar en cualquier
plataforma de servidor que soporta la especificación de Enterprise
JavaBeans.
Los EJB:

• Se ejecutan en un contenedor EJB (en un servidor de aplicaciones).


• Implementan la lógica de negocio de la aplicación.
• Son reusables.
• Se pueden adaptar y configurar en el despliegue.
• Son accedidos por medio de una interfaz.
• Su localización es generada por el Java Naming and Directory Interface
(JNDI).
• Pueden ser accedidos remotamente por medio de Java Remote Method
Invocation (RMI).

Existen tres tipos de EJB : Entity Beans, Session Beans y Message-driven Beans.
Entity Beans
Los Entity Beans representan entidades de negocio y proveen acceso a
datos a través de métodos. Se basan en la idea del mapeo
objeto/relacional (ORM).
Su objetivo es encapsular los objetos del lado del servidor que
almacenan los datos. Los EJB de entidad presentan la característica
fundamental de la persistencia.
Son de dos tipos: BMP (Bean Managed Persistence) donde se delega
las tareas de persistir, buscar y recuperar entidades y CMP (Container
Managed Persistence) donde la persistencia la gestiona el contenedor
de forma en el que el desarrollador no se preocupa de las sentencias
SQL de inserción, recuperación, etc.
Session Beans
Los Session Beans gestionan el flujo de la información en el servidor. Un
Session EJB permite realizar cierta lógica solicitada por un cliente ya sea
un JSP|Servlet, Applet e inclusive otro EJB.
Son de tres tipos: Stateless Session Beans no mantienen el estado entre
invocaciones, Stateful Session Beans guardan el estado entre
invocaciones de un mismo cliente y Singleton Session Beans si se quiere
reutilizar objetos y tener un único objeto al que pueden acceder
múltiples clientes.
Bean: Es una clase destinada a almacenar una cantidad
de datos para nuestro programa. Su fin es encapsular
información, para reutilizar código fuente, estructurando
el código fuente en unidades lo más sencillas posible.
¿Cuándo usar stateless, stateful o singleton en un bean de sesión?

Se recomienda el uso de stateful cuando se cumpla una de las siguientes


situaciones:
• El estado del bean representa la interacción entre el bean y un cliente
específico.
• El bean necesita mantener información acerca del cliente a lo largo de
varias invocaciones de métodos.
• El bean es mediador entre el cliente y los otros componentes de la
aplicación, presentando una vista simplificada para el cliente.
Para incrementar el rendimiento, se podrían utilizar stateless session
bean en alguna de las siguientes situaciones:
• El estado del bean no tiene datos para un cliente en específico.
• En un único método de invocación, el bean realiza una tarea genérica
para todos los clientes. Por ejemplo, se podría utilizar un stateless
session bean para mandar un email que confirme una compra online.
• El bean implementa un servicio web.

Los singleton session bean son apropiados en las siguientes


circunstancias:
• El estado necesita ser compartido a través de la aplicación.
• Un único enterprise bean necesita ser accedido por múltiples hebras
concurrentemente.
Message-driven Beans
Son los únicos beans con funcionamiento asíncrono. Usando el Java
Messaging System (JMS), se suscriben a un tema (topic) o a una cola
(queue) y se activan al recibir un mensaje dirigido a dicho tema o cola.
No requieren de su instanciación por parte del cliente.
Permiten modelar la lógica de negocio mediante colas JMS.
MVC (Modelo Vista Controlador)
Es un patrón de arquitectura de software que separa los datos de una
aplicación, la interfaz que ve el usuario de la lógica del negocio en tres
componentes distintos.
• Vista (View): Representa la interfaz de usuario y todas las
herramientas con las cuales el usuario hace uso del programa.
• Modelo (Model): Es donde esta toda la lógica del negocio, la
representación de todo el sistema incluido la interacción con una
base de datos, si es que el programa así lo requiere.
• Controlador (Controller): Este componente es el que responde a la
interacción (eventos) que hace el usuario en la interfaz y realiza las
peticiones al modelo para pasar estos a la vista.
La arquitectura MVC propone, independientemente de las tecnologías
o entornos en los que se base el sistema a desarrollar, la separación de
los componentes de una aplicación en tres grupos (o capas) principales.

El Modelo contiene principalmente las entidades que representan el


dominio, la lógica de negocio, y los mecanismos de persistencia de
nuestro sistema.
En la Vista encontraremos los componentes responsables de generar la
interfaz con el exterior, por regla general, aunque no exclusivamente, el
UI de nuestra aplicación.
En el Controlador se encuentran los componentes capaces de procesar
las interacciones del usuario, consultar o actualizar el Modelo, y
seleccionar las Vistas apropiadas en cada momento.
Unidad de Persistencia (JPA)
Java Persistence API, más conocida por su sigla JPA, es la API de
persistencia desarrollada para la plataforma Java EE e incluida en el
estándar EJB3. Esta API busca unificar la manera en que funcionan las
utilidades que proveen un mapeo 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, como
pasaba con EJB2, y permitir usar objetos regulares (conocidos como
POJOs).

Los POJOs son objetos que no contienen ningún tipo de


lógica compleja y por norma general sólo suele contener su
constructor y getters o setters, además no tienen extensión o
implementación de ninguna clase o interfaz.
Características
• Es una especificación que define un marco de trabajo para la
manipulación de objetos relacionales en aplicaciones Java.
• Simplifican el desarrollo de aplicaciones que necesitan acceder a
datos almacenados en una base de datos relacional.
• Se basa en el paradigma de programación orientada a objetos, lo que
significa que los datos se representan como objetos y las operaciones
se realizan sobre estos objetos.
• Ofrece una forma consistente de acceder a datos almacenados en
una base de datos relacional, independientemente del proveedor de
JPA que se esté utilizando.
Componentes principales de JPA
JPA se compone de tres componentes principales:
1. El proveedor de JPA: esta es la implementación de JPA que se usa en
un proyecto. Hay varios proveedores disponibles, como Hibernate,
EclipseLink y DataNucleus.
2. El mapeador de objetos relacionales (ORM): este es el componente
que se encarga de convertir los objetos Java en formato SQL y
viceversa. JPA viene con un mapeador ORM integrado, pero también se
pueden usar otros mapeadores ORM.
3. La API de persistencia: esta es la interfaz que se utiliza para
interactuar con la base de datos mediante JPA.
Generalmente cuando se empieza a trabajar con bases de datos en Java lo
primero que se utiliza es el API de JDBC el cual nos permite realizar consultas
directas a la base de datos a través de consultas SQL nativas. JDBC
representaba un gran problema ya que Java es un lenguaje orientado a
objetos y se tenía que convertir los atributos de las clases en una consulta
SQL como SELECT, INSERT, UPDATE, DELTE, etc. lo que ocasionaba un gran
esfuerzo de trabajo y un provocaba muchos errores en tiempo de ejecución.

JPA es la propuesta estándar que ofrece Java para implementar un Object


Relational Mapping (ORM).
El mapeo objeto relacional, ORM, es una técnica utilizada para convertir
clases (y sus relaciones) de un sistema que utiliza un lenguaje de
programación orientado a objetos a el modelado de una base de datos
relacional. Dicho mapeo se realiza mediante una serie de indicaciones que se
realizan utilizando un concepto llamado Annotations.
Anotaciones más utilizadas
JavaServer Faces (JSF)
JavaServer Faces (JSF) es una infraestructura de interfaz de usuario o una
interfaz de programación de aplicaciones (API) que facilita el desarrollo de
aplicaciones web Java.
Los principales componentes de la tecnología JSF son:
• Una API para: Representar componentes de Interfaz de Usuario (UI) y
gestionar su estado.
• Manejar eventos, validar en el servidor y conversión de datos.
• Definir la navegación de páginas.
• Soporte de internacionalización y accesibilidad.
• Dos librerías de etiquetas JSP personalizadas para expresar componentes
en una página JSP y enlazar los componentes a objetos del servidor.
Características
JSF proporciona las siguientes características destacables:
• Definición de las interfaces de usuario mediante vistas que
agrupan componentes gráficos.
• Conexión de los componentes gráficos con los datos de la aplicación
mediante los denominados beans gestionados.
• Conversión de datos y validación automática de la entrada del usuario.
• Navegación entre vistas.
• Internacionalización
• A partir de la especificación 2.0 un modelo estándar de comunicación Ajax
entre la vista y el servidor.
Algunas de las características más importantes de JSF en la actualidad:
• Framework estándar definido en la especificación Java EE.
• Soporte en todos los servidores de aplicaciones y en las herramientas
de desarrollo: Eclipse, GlassFish, etc.
• Entornos gráficos para desarrollar rápidamente aplicaciones JSF.
• Gran variedad de implementaciones de componentes.
• Fácil integración con frameworks en la capa de negocio y de
persistencia: Spring, JPA, etc.
• Comunidad muy activa en la actualidad; podemos encontrar
fácilmente soporte en foros, artículos, tutoriales, etc.

Todo esto, sumado a la madurez demostrada con la especificación 2.0


hace que JSF sea una tecnología que tenemos que conocer
obligatoriamente y que plateemos seriamente su utilización en
proyectos Java EE.
JSF brinda una serie de etiquetas “core” usadas para manejo de eventos, atributos,
validación, conversión de datos, administración de componentes entre otros

También podría gustarte