El desarrollo de una aplicación N-Capas es un estilo de programación en el cual se separan lógicamente cada uno de los elementos de la aplicación, esto es, cada una de las capas en la que estará formada nuestra aplicación.
Una serie de pasos predecibles que ayude a crear un resultado de alta calidad y a tiempo.
Es un conjunto estructurado de actividades para: Especificar, diseñar, implementar y probar software.
El desarrollo de una aplicación N-Capas es un estilo de programación en el cual se separan lógicamente cada uno de los elementos de la aplicación, esto es, cada una de las capas en la que estará formada nuestra aplicación.
Una serie de pasos predecibles que ayude a crear un resultado de alta calidad y a tiempo.
Es un conjunto estructurado de actividades para: Especificar, diseñar, implementar y probar software.
I1M2011-T4: Definición de funciones en HaskellJosé A. Alonso
Se presentan los patrones básicos de definición de funciones en Haskell: por composición, con condicionales, con guardas y con equiparación de patrones.
Este es el 4º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m/temas.html
Presentación de introducción a la tecnología Java.
Presentación con fines educativos y sin fines de lucro, las imágenes, logos y temas son derechos reservados de sus propietarios.
I1M2011-T4: Definición de funciones en HaskellJosé A. Alonso
Se presentan los patrones básicos de definición de funciones en Haskell: por composición, con condicionales, con guardas y con equiparación de patrones.
Este es el 4º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m/temas.html
Presentación de introducción a la tecnología Java.
Presentación con fines educativos y sin fines de lucro, las imágenes, logos y temas son derechos reservados de sus propietarios.
Completa introducción a Google Web Toolkit con aplicaciones de ejemplo.
Google Web Toolkit permite el desarrollo de aplicaciones RIA basadas en AJAX utilizando como lenguaje de programación Java.
Una de las dificultades de programar con JSP son los scriptlets, ya que debes combinar codigo Java y etiquetas HTML.
El uso de etiquetas JSTL es mucho mas fácil que programar scriptlets, es por esa razón que debes considerar utilizarlas, ya que tendrás un codigo mucho mas estructurado y fácil de leer.
El desarrollo de una aplicación web debe utilizar la arquitectura en capas.
El patrón MVC te ayuda a definir cuales son las capas que debes utilizar al momento de desarrollar una aplicación.
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
1. Page 1
Introducción Basiuca a aplicaciones Web en JAVA
1ra Parte
D. Rodrigo Zottola Pareja - Ing. en Computación
2014
2. Objetivos
Una mirada a las tecnologías Web Para JAVA.
Leve introducción al desarrollo de aplicaciones
empresariales con JAVA EE
Base a próximos seminarios.
Page 2 D. Rodrigo Zottola Pareja - Ing. en Computación
3. Aplicación web
Una aplicación web es cualquier aplicación que es accedida vía web
por una red como internet o una intranet.
En general aquellos programas informáticos que son ejecutados en el
entorno del navegador
Programas codificados con algún lenguaje soportado por el navegador
confiándose en el navegador web para que reproduzca (renderice) la
aplicación.
Page 3
D. Rodrigo Zottola Pareja - Ing. en Computación
4. Aplicaciones Empresariales
Caracteristicas:
Page 4
Mantenibilidad
Fiabilidad
Extensibilidad
Manejabilidad
Transaccional.
-Propiedades ACID: Atomicity(atomicidad), Consistency(coherencia),
Isolation (aislamiento), Durability (permanencia).
Escalables.
Disponibilidad.
Seguridad y confiabilidad
Integración de las aplicaciones y de los datos
Portabilidad
D. Rodrigo Zottola Pareja - Ing. en Computación
5. Arquitecturas
Arquitectura (80/90)cliente-servidor de dos capas (arquitectura de nivel
2): del lado del cliente se incluía tanto la lógica del negocio como la
lógica de la presentación; del lado del servidor se incluían los datos
alojados en bases o almacenes de datos
Computador
Computador
La arquitectura cliente-servidor de tres capas (arquitectura de nivel 3)
separa la lógica de presentación (que permanece del lado del cliente)
de la lógica del negocio (servidor de negocio), permaneciendo los datos
alojados en bases de datos del servidor.
Page 5
Computador
SERVIDOR
DE
ARCHIVOS
SERVIDOR DBMS
Y
DATOS
Cl iente 1
Cl iente 2
Cl iente N
Cl ientes FRONT-END,
Val idación y Formateo
de Datos
Capa Intermedia
MONITOR
TP
Servicios y lógica de
Apl icación
Pool de Conexiones a
B.D
SERVIDOR DBMS
Y
DATOS
Base de Datos
Sol icitud de Servicio
D. Rodrigo Zottola Pareja - Ing. en Computación
6. Complejidades en la n Capas
Page 6
Más conocimientos de cómputo distribuido (DCOM, RMI,
CORBA, etc.)
Las capas se deben integrar eficientemente
Conocimiento para midleware y servicios (transacciones, pool
de conexiones, accesos a dbs, seguridad, networking, etc. ).
Administrar Conexiones Costosas :
DBMS
Middleware orientado a mensajes
EL uso de API's del Servidor Middleware dificulta la
mantenibilidad y limita la portabilidad.
D. Rodrigo Zottola Pareja - Ing. en Computación
7. JAVA Web - Que es J2EE?
Page 7
Java EE (Java Enterprise Edition): Plataforma Java para el
desarrollo de aplicaciones empresariales
Java EE es un conjunto de especificaciones de APIs Java para
la construcción de aplicaciones empresariales.(Clases abstracta
e interfaces)
Define estándares que son implementados por distintos
proveedores y fabricantes, no fuerza a emplear ningún producto
específico.
Ofrece un framework para el desarrollo de aplicaciones
distribuidas multicapa (3-tier, n-tier) basadas en Web
D. Rodrigo Zottola Pareja - Ing. en Computación
8. El enfoque de J2EE
Page 8
JEE soporta aplicaciones distribuidas que toma ventajas de las
tecnologías existentes y en desarrollo simplificando el proceso a
través de un modelo de aplicaciones basados en componentes.
Las aplicaciones desplegadas con la tecnología
J2EE:
Están estandarizadas
Siguen una guías de especificación estrictas
Están escritas en Java
Se pueden desplegar en cualquier servidor de aplicaciones
D. Rodrigo Zottola Pareja - Ing. en Computación
9. El enfoque de J2EE
Page 9
Componentes
Las Aplicaciones Clientes y Applets son componentes que se ejecutan en el lado del
cliente.
Java Servlet, JavaServer Pages son componentes Web que se ejecutan en
el lado del servidor.
Enterprise JavaBeans (EJB ) son componentes de negocio que se ejecutan
en el servidor de aplicación.
JAVA EE Clients
Web Clients
Application Clients
Applets
The JavaBeans Component Architecture
Java EE Server Communications
D. Rodrigo Zottola Pareja - Ing. en Computación
10. Contenedores en JAVA EE
Page 10
Los contenedores proveen Un entorno de ejecucion para
componentes JAVA.
Tambien brindan los servicios de seguridad, transacciones,
administracion del ciclo de vida, caching, persistencia,
comunicacion en la red
‒ Java EE server.
‒ EJB container
‒ Web container
‒ Application client container:
‒ Applet container
Web Services Support
‒ XML
‒ SOAP Transport Protocol
‒ WSDL Standard Format
D. Rodrigo Zottola Pareja - Ing. en Computación
11. J2EE - Evolucion
Page 11
D. Rodrigo Zottola Pareja - Ing. en Computación
12. J2EE - Capas
Page 12
D. Rodrigo Zottola Pareja - Ing. en Computación
13. Servidores de Aplicaciones
Page 13
Existen un gran número de fabricantes que venden servidores de
aplicaciones certificados Java EE.
Algunos ejemplos.
BEA WebLogic Server:
http://www.bea.com
IBM WebSphere ApplicationServer:
http://www.ibm.com
Sun Java System Application Server:
http://www.sun.com
Oracle Application Server:
http://www.oracle.com
D. Rodrigo Zottola Pareja - Ing. en Computación
14. Servidores de Aplicaciones
Page 14
Tomcat (proyecto de Apache):
http://tomcat.apache.org
JBoss:
http://www.jboss.com
GlassFish:
https://glassfish.dev.java.net
OpenEJB:
http://openejb.codehaus.org
Geronimo:
http://geronimo.apache.org
Portabilidad : Si solo se utilizan Api’s estándares en general es
posible instalar sobre cualquier servidor de aplicaciones según
Java EE, esto hace que no exista una dependencia con el
fabricante.
D. Rodrigo Zottola Pareja - Ing. en Computación
15. Tecnologías
Page 15
IDE’S :
ECLIPSE
NETBEANS
JDEVELOPER
SERVIDORES DE APLICACIONES
-Webologic(Oracle)
-Tomcat
-Galssfish
D. Rodrigo Zottola Pareja - Ing. en Computación
16. Patrones de Diseños
Mas usados
Page 16
FACADE: Su objetivo es proporcionar una interface simple para un
subsistema complejo, o estructurar subsistemas en capas (En pocas
palabras creo una clase a través de la cual el sistema cliente accederá a lo
que yo quiera que acceda).
SINGLETON: El patrón de diseño singleton (instancia única) está
diseñado para restringir la creación de objetos pertenecientes a
una clase o el valor de un tipo a un único objeto. Su intención consiste en
garantizar que una clase sólo tenga una instancia y proporcionar un punto
de acceso global a ella.(Obligo que solo se cree una instancia de una
clase.)
FACTORY: En diseño de software, el patrón de diseño Factory
Method consiste en utilizar una clase constructora (al estilo del Abstract
Factory) abstracta con unos cuantos métodos definidos y otro(s)
abstracto(s): el dedicado a la construcción de objetos de un subtipo de un
tipo determinado.
Service:
D. Rodrigo Zottola Pareja - Ing. en Computación
17. Back/Front – End
Page 17
Una aplicación usualmente se puede dividir en :
Front End: Es la parte que interactua con el usuario, la parte visual ,
el flujo de navegación, etc
Back End : Es el núcleo de la aplicación, la lógica del negocio , asi
como el modelo de datos, etc
La idea general es que el front-end es responsable de recoger
entradas de los usuarios, y ser procesadas de tal manera que
cumplan las especificaciones para que el back-end pueda usarlas.
La conexión entre front-end y el back-end es un tipo de interfaz.
Front-end y back-end son términos utilizados para caracterizar las
interfaces y servicios del programa en relación con el usuario inicial
de estas interfaces y servicios.
D. Rodrigo Zottola Pareja - Ing. en Computación
18. Back End - Capas
Page 18
D. Rodrigo Zottola Pareja - Ing. en Computación
19. Back End - Core
Page 19
Sirve indirectamente en apoyo de los servicios front-end. La
aplicación back-end puede interactuar directamente con el front-end.
Modelo de datos
Modelos de negocios
Base de Datos
ORM – Hibernate Mapeos de Clase
JPA hibernate
Hql
ANSI sql
D. Rodrigo Zottola Pareja - Ing. en Computación
20. Posibles componentes "Core"
Page 20
Managers (Facade)
DAO /JPAControllers
DTO/Beans/POJO
XML Mapping/ Annotations
D. Rodrigo Zottola Pareja - Ing. en Computación
21. Posibles componentes "Core"
Page 21
Manager (Facade): Es un conjunto de funciones para un sistema
cliente en particula
DAO : Solo contiene las metodos referentes al acceso a datos de
un DTO(ABM,count,etc)
DTO : Son clases JAVA planas o Beans especificos que sirven
para tranportar datos de una tabla especifica
Mapping : Archivos xml para mapear tablas a clases JAVA
D. Rodrigo Zottola Pareja - Ing. en Computación
22. Back End Capas
Page 22
D. Rodrigo Zottola Pareja - Ing. en Computación
23. Capa de Datos - Persistencia
Page 23
HIBERNATE : Es una herramienta de Mapeo objeto-relacional
para la plataforma Java (y disponible también para .Net con el
nombre de NHibernate) que facilita el mapeo de atributos entre una
base de datos relacional tradicional y el modelo de objetos de una
aplicación, mediante archivos declarativos (XML) que permiten
establecer estas relaciones.
JPA HIBERNATE (JAVA Persistence API) : JPA es un framework
de persistencia, que nos abstrae de las bases de datos y nos
brinda un estandar para persistir los datos en java.
JPA viene a solucionar el vacio que hay entre utilizar objetos y
persistirlos en una DB relacional.
D. Rodrigo Zottola Pareja - Ing. en Computación
24. Capa de Datos - Hibernate
Page 24
D. Rodrigo Zottola Pareja - Ing. en Computación
25. Hibernate - Ejemplo
Page 25
D. Rodrigo Zottola Pareja - Ing. en Computación
26. Front End - Intro
Page 26
D. Rodrigo Zottola Pareja - Ing. en Computación
27. Java Servlets
Page 27
Los Servlets son módulos que extienden los servidores orientados
a solicitud -respuesta, como los servidores web compatibles con
Java.
Clase usada en el servidor bajo el modelo de programación
solictud-respuesta (request - response)
Es la base de todos los frameworks WEb.
Define clases esecificas para HTTP.
D. Rodrigo Zottola Pareja - Ing. en Computación
28. Java Servlets
Page 28
Un Servlet es una clase Java que extiende de
javax.servlet.http.HttpServlet y que sobreescribe los métodos
doPost o doGet o ambos.
Un Servlet es una clase Java usada para extender la
capacidad de las aplicaciones basadas en el modelo
cliente servidor y ejecución petición respuesta.
Los Servlets son una potente herramienta para la generación
de contenido dinámico en la Web.
El Servlet Container es el componente encargado de la
creación, acceso y destrucción de los Servlets, controla su
ciclo de vida.
D. Rodrigo Zottola Pareja - Ing. en Computación
30. Que puede hacer un Servlet?
Page 30
Leer los datos enviados por un usuario
Usualmente de formularios en páginas Web
Pueden venir de applets de Java o programas cliente HTTP.
Buscar cualquier otra información sobre la petición que venga
incluida en esta
Detalles de las capacidades del navegador, cookies, nombre del host del
cliente, etc.
Generar los resultados
Puede requerir consults a Base de Datos, invocar a otras aplicaciones,
computar directamente la respuesta, etc.
Dar formato a los resultados en un documento
Incluir la información en una página HTML
Establecer los parámetros de la respuesta HTTP
Decirle al navegador el tipo de documento que se va a devolver, establecer las
cookies, etc.
Enviar el documento al cliente
32. Java Server Pages - JSP
Page 32
Un documento JSP, es una página dinámica de servidor Java.
Es un archivo de texto compuesto de :
1. Cabecera con importaciones y parametros.
2. Código cliente, normalmente HTML, XML y Javascript.
3. Código servidor Java, denominado Scriptlet y escrito
entre los caracteres
<% y %>.
4. Tags: instrucciones en formato XML, asociadas a clases
Java.
• Un JSP se transforma en un Servlet en tiempo de
ejecución.
35. Modelo MVC en JAVA
Page 35
D. Rodrigo Zottola Pareja - Ing. en Computación
36. Front End - MVC
Page 36
View
El usuario ingresa su información en la página identificacion.jsp.
Esta página tiene un formulario con
action=“identificarEmpleado.do” y submitea la información al
servlet IdentificarEmpleadoAction.java
Controller
El servlet (controller) accede al facade (model) para invocarle el
método identificarEmpleado(enpno,ename). Obtiene el resultado
(un EmpDTO o null) y forwardea el control a la siguiente página
según el resultado obtenido.
Model
El model está representado por el facade pero recordemos que
detrás de él se encuentran los objetos de negocio (Emp y Dept)
y (por último) la base de datos con las tablas EMP, DEPT y sus
relaciones
D. Rodrigo Zottola Pareja - Ing. en Computación
37. Frameworks JAVA MVC
Page 37
STRUTS Y STRUTS2
http://struts.apache.org/
SPRING MVC
www.springsource.org
TILES (TEMPLATE)
JAVA SERVER PAGES (JSF)
www.javaserverfaces.org
FACELET TEMPLATES
OTROS FRAMWORKS
GROOVY
http://groovy.codehaus.org/
D. Rodrigo Zottola Pareja - Ing. en Computación
38. Spring - Modulos
Page 38
D. Rodrigo Zottola Pareja - Ing. en Computación
39. Frameworks and Tools JAVA
Page 39
Logueo de Errores:
Log4J
http://logging.apache.org/log4j/2.x/
LogBack
http://logback.qos.ch/
Gestión de proyectos
Maven
http://maven.apache.org/
Gradle
http://www.gradle.org/
Versionado
SVN
Git
D. Rodrigo Zottola Pareja - Ing. en Computación
40. Frameworks and Tools JAVA
Page 40
Templating:
Velocity
http://logging.apache.org/log4j/2.x/
Facelets
XMLParsing
JDOM
Springs Tools
Spring MVC Test
Spring Security
Testing
JUnit
TestNG
Mocking frameworks
Mockito
Jmockit
D. Rodrigo Zottola Pareja - Ing. en Computación
41. Libros de Referencia
Page 41
Arquitectura Java Sólida - Cecilio Álvarez Caules
Java a Fondo - Pablo Sznajdleder
SCJP Sun Certified Programmer for JAVA 6 Study
Guide.- Kathy Sierra/Bert Bates
Core J2EE™ Patterns: Best Practices and Design
Strategies, Second Edition - Deepak Alur, John Crupi,
Dan Malks
Arquitectura empresarial y software libre, J2EE -
Alberto Molpeceres Touris / Martín Pérez Mariñán
D. Rodrigo Zottola Pareja - Ing. en Computación
42. Links de referencia
Page 42
http://docs.oracle.com/javaee/7/tutorial/doc/
http://spring.io/docs
http://holamundojava.blogspot.com/
http://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema
5-1.pdf
http://es.wikipedia.org/
http://www.alegsa.com.ar/
http://jcesarperez.blogspot.com/2009/03/por-que-maven.html
http://www.fic.udc.es
http://www.slideshare.net/fernando_jmt/desarrollo-de-aplicaciones-
empresariales-con-java-ee
http://es.slideshare.net/cptanalatriste/arquitectura-y-diseo-de-aplicaciones-
java-ee
D. Rodrigo Zottola Pareja - Ing. en Computación
43. Enterprise JavaBeans
Page 43
Los EJB “viven” dentro del EJB container y este les provee una
serie de servicios que llamaremos servicios de plataforma. Por
ejemplo:
Seguridad
Multithreading
Networking (objetos distribuidos)
Transacciones
Connection Pooling
Para mas información un buen ejemplo es el siguiente.
http://holamundojava.blogspot.com/2006/11/enterprise-javabeans.
html
D. Rodrigo Zottola Pareja - Ing. en Computación
44. Page 44
Preguntas
?
D. Rodrigo Zottola Pareja - Ing. en Computación
45. Ing. D. Rodrigo Zottola Pareja -
drzottolapareja@gmail.com
Gracias
Zottola Pareja Darwin Rodrigo
Ing. en Computación
rodrigozeta@gmail.com