Download Que es una aplicación empresarial

Document related concepts
no text concepts found
Transcript
Introducción al
Desarrollo de
Aplicaciones
Empresariales
Ing. Yim Apestegui F
• Una aplicación empresarial es un
sistema que integra el manejo de
diversas entidades del negocio. Por
ejemplo, tener el inventario, la
facturación, la caja, la planilla y la
contabilidad bajo un solo sistema
corporativo.
09/03/2015
Que es una aplicación
empresarial
2
•
•
•
•
•
•
•
Material de reposición
Alamacen central
Facturación
Caja
Contabilidad
Recursos humanos
Servicio al cliente
Ing. Yim Apestegui F
• Admisión
• Seguimiento de
expedientes
• Exámenes biológicos
(laboratorio)
• Exámenes fisiológicos
• Consultas
• Hospitalización
• Farmacia
09/03/2015
Aplicación Empresarial
Hospitalaria
3
Ing. Yim Apestegui F
09/03/2015
Aplicación Empresarial Hospitalaria
4
09/03/2015
Todas las grandes como las
medianas y pequeñas empresas
tienen una cosa en común: sus
aplicaciones empresariales revisten
vital importancia. Empresas de
todos los tamaños ejecutan SAP,
Oracle, Exchange y otras muchas
aplicaciones
empresariales
simplifican la gestión y presentan
soluciones de infraestructura para
implementarlas más rápidamente y
a más bajo coste.
Ing. Yim Apestegui F
HOY…
5
Ing. Yim Apestegui F
09/03/2015
¿Por qué?
6
Ing. Yim Apestegui F
• Java Enterprise Edition: plataforma de desarrollo
de aplicaciones para empresas, basado en EJBs.
• EJB (Enterprise Java Beans): especificación de
componentes server-side.
• Nos permite escribir aplicaciones distribuidas
escalables, fiables y seguras, sin tener que
escribir el framework de objetos distribuidos uno
mismo; ya se ha escrito para nosotros.
09/03/2015
Definición
7
Java (J2SE)
EJB 1.0, 1.1
JDBC (Java Database Connectivity) 2.0
JTA (Java Transaction Service) 1.0.
CORBA.
RMI/IIOP.
Java Servlets 2.2
JSP (Java Server Pages) 1.1
JNDI 1.2
JavaMail 1.1
JMS (Java Messaging Service) 1.0: API.
XML
Ing. Yim Apestegui F
•
•
•
•
•
•
•
•
•
•
•
•
09/03/2015
Elementos
8
9
Ing. Yim Apestegui F
09/03/2015
• No se requiere tanta experiencia: caja negra.
• Ensamblado más rápido (gráfico...)
• Coste menor.
Ing. Yim Apestegui F
• Es código que implementa un conjunto de interfaces
perfectamente bien definidas.
• No son aplicaciones enteras, sino piezas de puzzle.
• Para qué:
09/03/2015
Recordando…
¿Qué es un componente?
10
Ing. Yim Apestegui F
• Herramientas de creación.
• Contenedor de gestión de componentes desplegados
(deployed): entorno runtime y conjunto de servicios comunes.
• Herramientas de despliegue y mantenimiento de
componentes.
09/03/2015
Arquitectura de componentes
11
1. Applets: desplegados en una web page, con el
appletviewer como contenedor.
2. Servlets: desplegados en un web server, con el
servlet engine del ws como contendor.
3. EJBs: desplegados en el application server, con el
motor del servidor como contenedor.
Los dos primeros son client-side. El tercero es serverside.
Ing. Yim Apestegui F
1. Java Beans: son componentes de desarrollo.
2. EJBs: son componentes de despliegue.
09/03/2015
Componentes en Java
12
• Capa de presentación.
• Capa de lógica de negocio.
• Capa de datos.
• En n capas:
• Cuando la arquitectura 3-tier no tiene ninguna limitación física.
Ing. Yim Apestegui F
• Arquitectura en dos capas.
• En tres capas:
09/03/2015
Arquitectura N-tier
13
Problemas de la 2-tier
Ing. Yim Apestegui F
• Costes de desarrollo altos: los drivers ODBC, JDBC, han de ser
instalados en ambas capas.
• El cambio del driver de la bd implica cambios en todos los
clientes y servidores.
• Migración de la lógica de negocio es cara: implica
reinstalaciones en todos los clientes.
• Costes de conexión a BBDD son altos (uno por cliente).
• Prestaciones de red.
09/03/2015
• Capa de presentación + capa de lógica de negocio:
• Capa de lógica de negocio + capa de datos
• Stored procedures: ¿qué pasa si cambio la bd?
14
Entonces Tenemos:
Presentación: en el espacio de uno o más servidores web, vía ASPs,
JSPs, servlets, etc.
Lógica de negocio: en uno o más servidores de aplicaciones.
Datos: en una o más bbdd, almacenando procedimientos.
2.
3.
4.
5.
6.
7.
Los costes son menores: los drivers en la parte servidora.
Modificación de bbdd menor: clientes no acceden a la bbdd.
Migración de la lógica de negocio es mínima: clientes
independientes.
Se puede conseguir mayor seguridad mediante firewalls.
Recursos pueden ser reutilizados, y “pooled”.
 Prestaciones: siguen sufriendo. Costes de mantenimiento altos.
09/03/2015
Ubicación de capas:
Ing. Yim Apestegui F
1.
15
Ing. Yim Apestegui F
09/03/2015
Arquitectura JEE
16
17
Ing. Yim Apestegui F
09/03/2015
Qué necesita una arquitectura en N
capas
Broker de petición de métodos.
Resource pooling.
Gestión del ciclo de vida de componentes.
Gestión del balance de carga de cada capa.
Entorno seguro.
Gestión de redes y sistemas: monitorización y control.
Autorización de usuarios.
...
Ing. Yim Apestegui F
•
•
•
•
•
•
•
•
09/03/2015
• Muchos Componentes:
• ¿Y si reutilizamos componentes ya creados?
18
Ing. Yim Apestegui F
• Microsoft DNA (Distributed interNet Applications
architecture): producto.
• Oracle JEE: especificación.
• OMG CORBA: complementaria
• Oracle Internet Platform: complementaria...
• Microsoft .NET:
09/03/2015
Opciones ….
19
Ing. Yim Apestegui F
• Bean provider: componentes reutilizables (as given, by customization, by
extension).
• Container provider: runtime.
• Server provider: lógica del app. Server.
• Application assembler.
• Deployer.
• Administrador de sistemas.
09/03/2015
Elementos de EJBs
20
21
Ing. Yim Apestegui F
09/03/2015