Introducción a Java y BEA (2008)
Upcoming SlideShare
Loading in...5
×
 

Introducción a Java y BEA (2008)

on

  • 1,718 views

Presentación realizada en 2008 a un auditorio de jefes de proyecto y técnicos sin conocimientos de Java, con el fin de introducir conceptos básicos del desarrollo sobre una plataforma J2EE y ...

Presentación realizada en 2008 a un auditorio de jefes de proyecto y técnicos sin conocimientos de Java, con el fin de introducir conceptos básicos del desarrollo sobre una plataforma J2EE y algunas cuestiones concretas sobre BEA WebLogic.

Statistics

Views

Total Views
1,718
Views on SlideShare
1,707
Embed Views
11

Actions

Likes
0
Downloads
32
Comments
0

2 Embeds 11

https://www.linkedin.com 6
http://www.linkedin.com 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Web container A container that implements the Web component contract of the J2EE architecture. This contract specifies a runtime environment for Web components that includes security, concurrency, life-cycle management, transaction, deployment, and other services. A Web container provides the same services as a JSP container as well as a federated view of the J2EE platform APIs. A Web container is provided by a Web or J2EE server. Web server Software that provides services to access the Internet, an intranet, or an extranet. A Web server hosts Web sites, provides support for HTTP and other protocols, and executes server-side programs (such as CGI scripts or servlets) that perform certain functions. In the J2EE architecture, a Web server provides services to a Web container . For example, a Web container typically relies on a Web server to provide HTTP message handling. The J2EE architecture assumes that a Web container is hosted by a Web server from the same vendor, so it does not specify the contract between these two entities. A Web server can host one or more Web containers. EJB container A container that implements the EJB component contract of the J2EE architecture. This contract specifies a runtime environment for enterprise beans that includes security, concurrency, life-cycle management, transactions, deployment, naming, and other services. An EJB container is provided by an EJB or J2EE server.
  • Web container A container that implements the Web component contract of the J2EE architecture. This contract specifies a runtime environment for Web components that includes security, concurrency, life-cycle management, transaction, deployment, and other services. A Web container provides the same services as a JSP container as well as a federated view of the J2EE platform APIs. A Web container is provided by a Web or J2EE server. Web server Software that provides services to access the Internet, an intranet, or an extranet. A Web server hosts Web sites, provides support for HTTP and other protocols, and executes server-side programs (such as CGI scripts or servlets) that perform certain functions. In the J2EE architecture, a Web server provides services to a Web container . For example, a Web container typically relies on a Web server to provide HTTP message handling. The J2EE architecture assumes that a Web container is hosted by a Web server from the same vendor, so it does not specify the contract between these two entities. A Web server can host one or more Web containers. EJB container A container that implements the EJB component contract of the J2EE architecture. This contract specifies a runtime environment for enterprise beans that includes security, concurrency, life-cycle management, transactions, deployment, naming, and other services. An EJB container is provided by an EJB or J2EE server.
  • Web container A container that implements the Web component contract of the J2EE architecture. This contract specifies a runtime environment for Web components that includes security, concurrency, life-cycle management, transaction, deployment, and other services. A Web container provides the same services as a JSP container as well as a federated view of the J2EE platform APIs. A Web container is provided by a Web or J2EE server. Web server Software that provides services to access the Internet, an intranet, or an extranet. A Web server hosts Web sites, provides support for HTTP and other protocols, and executes server-side programs (such as CGI scripts or servlets) that perform certain functions. In the J2EE architecture, a Web server provides services to a Web container . For example, a Web container typically relies on a Web server to provide HTTP message handling. The J2EE architecture assumes that a Web container is hosted by a Web server from the same vendor, so it does not specify the contract between these two entities. A Web server can host one or more Web containers. EJB container A container that implements the EJB component contract of the J2EE architecture. This contract specifies a runtime environment for enterprise beans that includes security, concurrency, life-cycle management, transactions, deployment, naming, and other services. An EJB container is provided by an EJB or J2EE server.
  • Web container A container that implements the Web component contract of the J2EE architecture. This contract specifies a runtime environment for Web components that includes security, concurrency, life-cycle management, transaction, deployment, and other services. A Web container provides the same services as a JSP container as well as a federated view of the J2EE platform APIs. A Web container is provided by a Web or J2EE server. Web server Software that provides services to access the Internet, an intranet, or an extranet. A Web server hosts Web sites, provides support for HTTP and other protocols, and executes server-side programs (such as CGI scripts or servlets) that perform certain functions. In the J2EE architecture, a Web server provides services to a Web container . For example, a Web container typically relies on a Web server to provide HTTP message handling. The J2EE architecture assumes that a Web container is hosted by a Web server from the same vendor, so it does not specify the contract between these two entities. A Web server can host one or more Web containers. EJB container A container that implements the EJB component contract of the J2EE architecture. This contract specifies a runtime environment for enterprise beans that includes security, concurrency, life-cycle management, transactions, deployment, naming, and other services. An EJB container is provided by an EJB or J2EE server.
  • http://www.roseindia.net/servlets/HistoryOfWebApplication.shtml http://www.informit.com/guides/content.aspx?g=java&seqNum=278 http://www.adobe.com/devnet/server_archive/articles/evolution_of_jsp.html https://www.i-proving.ca/space/Technologies/A+Brief+History+of+Developing+Web+Applications
  • http://www.roseindia.net/servlets/HistoryOfWebApplication.shtml http://www.informit.com/guides/content.aspx?g=java&seqNum=278 http://www.adobe.com/devnet/server_archive/articles/evolution_of_jsp.html https://www.i-proving.ca/space/Technologies/A+Brief+History+of+Developing+Web+Applications
  • http://www.roseindia.net/servlets/HistoryOfWebApplication.shtml http://www.informit.com/guides/content.aspx?g=java&seqNum=278 http://www.adobe.com/devnet/server_archive/articles/evolution_of_jsp.html https://www.i-proving.ca/space/Technologies/A+Brief+History+of+Developing+Web+Applications http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Overview.html http://java.sun.com/developer/technicalArticles/javaserverpages/servlets_jsp/
  • http://www.roseindia.net/servlets/HistoryOfWebApplication.shtml http://www.informit.com/guides/content.aspx?g=java&seqNum=278 http://www.ibm.com/developerworks/java/library/j-jstl0211.html
  • http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html http://www.developer.com/java/other/article.php/3556176
  • http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/technologies/technologies2.html
  • http://developer.novell.com/tech/1035.html http://java.sun.com/developer/technicalArticles/Ecommerce/jms/
  • http://www.javaworld.com/javaworld/jw-08-2006/jw-0814-ejb.html?page=1
  • http://en.wikipedia.org/wiki/Design_Patterns
  • http://en.wikipedia.org/wiki/Design_Patterns
  • http://en.wikipedia.org/wiki/Design_Patterns
  • http://en.wikipedia.org/wiki/Design_Patterns
  • Más información: http://java.sun.com/blueprints/patterns/MVC-detailed.html Forces The same enterprise data needs to be accessed when presented in different views: e.g. HTML, WML, JFC/Swing, XML The same enterprise data needs to be updated through different interactions: e.g. link selections on an HTML page or WML card, button clicks on a JFC/Swing GUI, SOAP messages written in XML Supporting multiple types of views and interactions should not impact the components that provide the core functionality of the enterprise application Solution By applying the Model-View-Controller (MVC) architecture to a JavaTM 2 Platform, Enterprise Edition (J2EETM) application, you separate core business model functionality from the presentation and control logic that uses this functionality. Such separation allows multiple views to share the same enterprise data model, which makes supporting multiple clients easier to implement, test, and maintain. Participants & Responsibilities The MVC architecture has its roots in Smalltalk, where it was originally applied to map the traditional input, processing, and output tasks to the graphical user interaction model. However, it is straightforward to map these concepts into the domain of multi-tier enterprise applications. Model - The model represents enterprise data and the business rules that govern access to and updates of this data. Often the model serves as a software approximation to a real-world process, so simple real-world modeling techniques apply when defining the model. View -The view renders the contents of a model. It accesses enterprise data through the model and specifies how that data should be presented. It is the view's responsibility to maintain consistency in its presentation when the model changes. This can be achieved by using a push model, where the view registers itself with the model for change notifications, or a pull model, where the view is responsible for calling the model when it needs to retrieve the most current data. Controller - The controller translates interactions with the view into actions to be performed by the model. In a stand-alone GUI client, user interactions could be button clicks or menu selections, whereas in a Web application, they appear as GET and POST HTTP requests. The actions performed by the model include activating business processes or changing the state of the model. Based on the user interactions and the outcome of the model actions, the controller responds by selecting an appropriate view. Consequences Re-use of Model components. The separation of model and view allows multiple views to use the same enterprise model. Consequently, an enterprise application's model components are easier to implement, test, and maintain, since all access to the model goes through these components. Easier support for new types of clients. To support a new type of client, you simply write a view and some controller logic and wire them into the existing enterprise application. Increased design complexity. This pattern introduces some extra classes due to the separation of model, view, and controller.
  • http://en.wikipedia.org/wiki/Framework http://en.wikipedia.org/wiki/Software_framework
  • http://en.wikipedia.org/wiki/Framework http://en.wikipedia.org/wiki/Software_framework
  • http://www.oracle.com/technology/tech/java/newsletter/articles/jsf_pojo/index.html
  • http://www.oracle.com/technology/tech/java/newsletter/articles/jsf_pojo/index.html
  • http://www.oracle.com/technology/tech/java/newsletter/articles/jsf_pojo/index.html
  • http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/deployment/deployment2.html#1042292
  • http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/deployment/deployment2.html#1042292
  • http://edocs.bea.com/wls/docs100/intro/index.html http://edocs.bea.com/wls/docs100/domain_config/understand_domains.html
  • http://edocs.bea.com/wls/docs100/intro/index.html http://edocs.bea.com/wls/docs100/domain_config/understand_domains.html
  • http://edocs.bea.com/wls/docs100/intro/index.html
  • http://edocs.bea.com/wls/docs100/intro/index.html
  • http://en.wikipedia.org/wiki/High-availability_cluster
  • http://en.wikipedia.org/wiki/High-availability_cluster http://en.wikipedia.org/wiki/Computer_cluster
  • https://eclipse-tutorial.dev.java.net/eclipse-tutorial/part2.html
  • http://java.sun.com/javaee/reference/glossary/
  • http://java.sun.com/javaee/reference/glossary/
  • http://java.sun.com/javaee/reference/glossary/
  • http://java.sun.com/javaee/reference/glossary/

Introducción a Java y BEA (2008) Introducción a Java y BEA (2008) Presentation Transcript

  • Introducción al desarrollo Java y BEA Isidro José López Martínez martes, 29 de Abril de 2008
  • ÍNDICE
    • PRIMERA PARTE
    • Introducción
    • Especificaciones Java
    • Web Server vs. J2EE Server – Servidores J2EE
    • JRE/JDK/SDK
    • Gestión de memoria en Java
    • Clases Java y JavaBean
    • Evolución aplicaciones web y anotaciones
    • Capas de una aplicación Java EE
    • Comunicaciones asíncronas en Java: JMS
    • Componentes Java: Servlets, JSPs, EJB, Anotaciones…
  • ÍNDICE
    • SEGUNDA PARTE
    • Patrones de Diseño: GoF y J2EE
    • Patrón MVC
    • Frameworks
    • AJAX
    • Java Server Faces
    • Look&Feel de aplicaciones web: CSS
    • Componentes Java EE
    • Entorno de desarrollo en BEA
    • Conceptos arquitectura BEA
    • Alta disponibilidad
    • Seguridad en BEA
    • Acceso a SAP R/3 desde BEA WLS
    • Gestión del ciclo de vida
    • Metodologías ágiles
    • Web 2.0
  • Introducción
    • Universo Java:
      • SAP
      • No SAP
    • Mundo abierto: open source e integración
    • Entorno heterogéneo
    • Evolución continua
  • Introducción
    • ¿Qué es Java?
      • Lenguaje de programación: alto nivel, con estilo y sintaxis particulares.
      • Plataforma: donde corren las aplicaciones.
    • Origen de Java:
      • SUN Microsystems: lenguaje para electrónica de consumo (microondas, tostadoras…)
      • Búsqueda de:
        • Fiabilidad del código y facilidad de desarrollo (alto coste de C++)
        • Portabilidad (en C/C++ se compila para un chip concreto)
      • Oak (James Gosling): primer esbozo del lenguaje
      • Green: primer proyecto (sistema de control completo de los aparatos electrónicos y el entorno de un hogar)
      • Presentación en sociedad: agosto 1995
  • Introducción
    • Las plataformas del lenguaje de programación Java. Existen tres plataformas del lenguaje de programación Java:
      • Java Platform, Standard Edition (Java SE)
      • Java Platform, Enterprise Edition (Java EE)
      • Java Platform, Micro Edition (Java ME)
    • Componentes de la plataforma Java:
      • Java Virtual Machine ( JVM )
      • La máquina virtual Java es un programa, para un HW y una plataforma SW particulares, que ejecuta las aplicaciones Java.
      • Application Programming Interface ( API ).
      • Una API es un conjunto de componentes SW que pueden ser utilizados para crear otros componentes SW o aplicaciones.
    • Ventajas : independencia de la plataforma, potencia, estabilidad, facilidad de desarrollo (sic) y seguridad.
  • Introducción
  • Introducción
    • Java SE
    • When most people think of the Java programming language, they think of the Java SE API. Java SE’s API provides the core functionality of the Java programming language. It defines everything from the basic types and objects of the Java programming language to high-level classes that are used for networking, security, database access, graphical user interface (GUI) development, and XML parsing.
    • In addition to the core API, the Java SE platform consists of a virtual machine, development tools, deployment technologies, and other class libraries and toolkits commonly used in Java applications.
    • Java EE
    • The Java EE platform is built on top of the Java SE platform. Java EE provides an API and runtime environment for developing and running large-scale, multi-tiered, scalable, reliable, and secure network applications.
    • Java ME
    • The Java ME platform provides an API and a small-footprint virtual machine for running Java programming language applications on small devices, like cellular phones. The API is a subset of the Java SE API, along with special class libraries useful for small device application development. Java ME applications are often clients of Java EE application services.
  • Especificaciones Java
    • Especificación versus Producto: estándar de derecho  estándar de hecho
    • El Proceso de la Comunidad Java, o Java Community Process (JCP) , establecido en 1998, es un proceso formalizado que permite a las partes interesadas involucrarse en la definición de futuras versiones y características de la plataforma Java .
    • Miembros del JCP: SUN, BEA, IBM, SAP, Oracle, Eclipse, Apache, Siemens, Nortel, Nokia…
    • El proceso JCP conlleva el uso de Java Specification Request ( JSR ), las cuales son documentos formales que describen las especificaciones y tecnologías propuestas para que sean añadidas a la plataforma Java. Las revisiones publicas formales de JSRs son controladas antes de que los JSR se conviertan en final y sean votados por el Comité Ejecutivo JCP. Un JSR final suministra una implementación de referencia la cual da una implementación libre de la tecnología en código fuente y un Kit de Compatibilidad de Tecnología (TCK) para verificar la especificación de la API.
    Más información: http :// jcp.org /en/ home / index JavaServer Pages (JSP) 2.1 245 Plataforma Java 2, Edición Estándar (J2SE) 5.0 (Tiger) 176 Java Database Connectivity (JDBC) 4.0 221 JavaServer Faces (JSF) 1.2 252 Plataforma Java, Edición Empresas (Java EE) 5 244 Enterprise JavaBeans (EJB) 3.0 220 Especificación o Tecnología JSR
  • Conceptos sobre servidores
    • Web server vs. Application server ( http://www.javaworld.com/javaqa/2002-08/01-qa-0823-appvswebserver.html ):
    • Web server: maneja peticiones HTTP (proporciona páginas para ser vistas en un navegador web)
    • Application server: proporciona servicios de software (seguridad, gestión de transacciones, gestión de recursos…) y métodos/lógica de negocio que las aplicaciones cliente pueden invocar a través de determinados protocolos.
    • Contenedor : Entorno de ejecución que proporciona funcionalidades básicas como seguridad, gestión del ciclo de vida, gestión de transacciones, servicios de despliegue, gestión de recursos, etc. Cada diferente tipo de componente también proporciona determinados servicios específicos:
      • Web
      • EJB
      • Servlet
      • JSP
      • Applet
      • Application client
  • Conceptos sobre servidores
  • Conceptos sobre servidores
      • Web Server
      • Software that provides services to access the Internet, an intranet, or an extranet. A Web server hosts Web sites, provides support for HTTP and other protocols, and executes server-side programs (such as CGI scripts or servlets) that perform certain functions. In the J2EE architecture, a Web server provides services to a Web container.
      • Contenedor web ( = Servlet engine = contenedor de Servlets = contenedor de JSPs)  HTML + JSP + Servlets
        • Un contenedor web “implementa el contrato de componente web de la arquitectura Java EE”. Este contrato especifica un entorno de ejecución para componentes web que incluye seguridad, gestión del ciclo de vida, concurrencia, transacción, despliegue y otros servicios.
      • J2EE server (es un tipo de Application server)
        • The runtime portion of a J2EE product. A J2EE server provides EJB or web containers or both.
          • Contenedor web
          • Contenedor EJB:
            • A container that implements the EJB component contract of the J2EE architecture. This contract specifies a runtime environment for enterprise beans that includes security, concurrency, life-cycle management, transactions, deployment, naming, and other services. An EJB container is provided by an EJB or J2EE server.
  • Conceptos sobre servidores BEA WebLogic Server, IBM WebSphere, SAP Web Application Server, SUN GlassFish, Resin, JBoss Servidores J2EE Apache Tomcat Contenedores Web Apache HTTP Server, Jetty, Microsoft IIS (Internet Information Services) Servidores Web
  • Servidores J2EE
    • Servidor “Fully J2EE Compliant“: cumplen con todas las especificaciones J2EE indicadas por el JCP.
      • SAP NetWeaver Composition Environment 7.1 (SAP NW CE 7.1) – SAP WAS 7.1
      • BEA WLS 10.0
        • JSP 2.1
        • Servlet 2.5
        • EJB 3.0
        • JSF 1.0
    Java EE 5 (Mayo 2006)
      • BEA 9.x
        • JSP 1.3
        • Servlet 2.4
        • EJB 2.1
    J2EE 1.4 (Noviembre 2003)
      • SAP WAS 6.40
      • SAP WAS 7.0
      • BEA WLS 6.x
        • JSP 1.2
        • Servlet 2.3
        • EJB 2.0
    J2EE 1.3 (Septiembre 2001) Servidores certificados Componentes Especificación
  • JRE / SDK / JDK
    • J2SE Java Runtime Environment (JRE)
    • Aplicación Java que permite a los usuarios finales la ejecución de aplicaciones Java (incluido en Windows)
    • J2SE Software Development Kit (SDK)
    • Aplicación Java y librerías orientadas a los programadores, necesario para el desarrollo de aplicaciones Java (incluye el JRE)
    • SDK es un concepto genérico: el SDK de Java es más conocido como JDK (Java Development Kit).
    • Se pueden bajar de SUN, son ficheros ejecutables instalables (.exe).
  • JRE / SDK / JDK
    • Código fuente (source code): .java
    • Bytecode: .class
    • Proceso de compilación: .java  (javac.exe)  .class
    • Proceso de ejecución: .class  (java.exe)
    • Los objetos .class se ejecutan en una JVM particular.
  • JRE / SDK / JDK
    • Class Loader : Objeto responsable de cargar clases en un JVM para posibilitar su ejecución posterior. Pueden existir varios class loader en un mismo JVM.
  • Gestión de memoria en Java Gestión de memoria automática: garbage collector ´ El JVM (en la heap memory) almacena todos los objetos creados por un programa Java. Su creación viene determinada a través del operador Java “new”, siendo ocupada memoria heap en tiempo de ejecución. Garbage Collection es el proceso que automáticamente libera los objetos que ya no son referenciados en ninguna parte, relevando al programador de la tarea de liberar memoria. Resumiendo: el programador determina cuándo se crean los objetos, y el entorno de ejecución Java es responsable de gestionar el ciclo de vida de los objetos. Ejemplo: MiClase a = new MiClase(); //Realizo ciertas operaciones… a = null; //Buena práctica para “ayudar” al garbage collector
  • Clases Java
    • Clase Java: *.java
      • Atributos (=variables)
      • Métodos (=funciones)
    • Signature de un método: declaración del método (nombre del método, parámetros de entrada y salida)
    • Ejemplo clase Java:
      • package es.metromadrid.ejemplos.bea;
      • import java.lang.String;
      • public class ClaseJava {
      • private String saludo;
      • private String saludar (String nombrePersona) throws Exception {
      • saludo = "Hola, " + nombrePersona;
      • return saludo;
      • }
      • }
  • Clases JavaBean
    • POJO (Plain Old Java Object): objeto Java que no sigue ningún modelo de objetos Java, ni convenciones ni framework. Objeto que típicamente no hereda de ninguna clase superior. No requiere un contenedor para funcionar (es decir, se podrían ejecutar en un PC, en local).
    • Clase JavaBean ( ¡¡NO confundir con Enterprise Java Bean - EJB!! ):
    • POJO que cumple:
    • Es serializable (se puede transmitir por la red o escribir en disco)
    • Tiene un constructor vacío
    • Tiene atributos privados y métodos públicos de acceso getter/setter (lectura/escritura) a dichos atributos
    • Las clases JavaBean (o Bean) son muy utilizadas para:
    • Intercambio de información entre dos elementos (principalmente a través de la red o entre JVM)
    • Integración de lógica de negocio en JSP
  • Clases JavaBean
    • Ejemplo de clase JavaBean:
      • package es.metromadrid.ejemplos.bea;
      • import java.lang.String;
      • public class DatosPersonalesBean implements Serializable{
      • private String nombre; //Atributo privado
      • public DatosPersonalBean() {} //Método constructor vacío
      • public String getNombre() { //Método get de lectura del atributo
      • return nombre;
      • }
      • public void setNombre (String otroNombre) { //Método set de escritura del atributo
      • nombre = otroNombre;
      • }
      • }
  • Evolución aplicaciones web
      • Web applications
      • Are simply applications that a user accesses through a web browser over a network (such as the Internet). Webapps are based on the client-server computing model in which a client will send a request for a resource to a server. The server listens for these requests and responds by locating the resource, doing any processing, and sending the results back to the client in a standard format supported by most web browser such as HTML or XHTML.
      • Un poco de historia:
      • 1. Documentos HTML estáticos
      • 2. Common Gateway Interface (CGI):
        • Fue una de las primeras soluciones de lado servidor para permitir la generación de contenido dinámico
        • El web server pasa la petición a un programa externo (programa/script CGI)
        • Cada petición crea un nuevo proceso para ejecutar el programa CGI:
          • Alto consumo de recursos
          • Problemas de concurrencia y escalabilidad
        • Aplicaciones CGI son dependientes de plataforma
  • Evolución aplicaciones web
      • Programas CGI:
  • Evolución aplicaciones web
      • 3. Java Servlets ( http://www.adobe.com/devnet/server_archive/articles/evolution_of_jsp.html ) – Liberado en 1997:
        • Clases Java que aceptan peticiones HTTP GET/POST (requieren un contenedor web/de servlets).
        • No utilizan un proceso diferente por petición: las peticiones son manejadas por threads existentes en un mismo proceso (dependiente de CPU). Es mucho más ligero, rendimiento muy superior.
        • Portables, independientes de plataforma.
        • Problema: todo mezclado, elementos visuales y de negocio (código Java y HTML): if a web designer wanted to change the font or the color of some text, the web developer needed to change the servlet code, recompile it, and redeploy it to the servlet container.
      • 4. Java Server Pages (JSP) – Liberado en 1999
        • Permite meter código Java en documentos estáticos HTML.
        • Permite a los diseñadores web trabajar en el look and feel, mientras los desarrolladores trabajan en el contenido dinámico.
        • En el servidor, tras la primera invocación, se compila y convierte en un Servlet: primera invocación más lenta.
        • Integración con lógica de negocio: JavaBeans.
        • Problema:
          • Sigue siendo una mala práctica mezclar HTML con código Java (elementos scripting)
        • Solución: Tag Libraries
  • Evolución aplicaciones web
      • 5. Custom Tag Libraries:
      • Permite la utilización y creación por parte del usuario de etiquetas con funcionalidades generales: iteraciones, internacionalización, condicionantes, etc.
      • Permite que todo sea XML y no requiere conocimientos Java.
        • Ver http://articles.techrepublic.com.com/5100-22-1049525.html
        • Java Server Tags Library (JSTL): es una especificación, JSR-52, pertenece a JSP 1.2
          • Ejemplo:
          • <c:forEach var=&quot;i&quot; begin=&quot;1&quot; end=&quot;10&quot; step=&quot;1&quot;>
            • <c:out value=&quot;${i}&quot; /> <br />
          • </c:forEach>
        • Expression Language (EL ): se integra en JSP 2.0. Especificación de valores de atributos dinámicos en las JSP. Se representa con ${attributeValue}:
          • Ejemplo: <c:out value=&quot; ${user.firstName} &quot;/>
      • 6. Frameworks visualización/web (Vista + Controlador):
        • Ayudan a cumplir con buenas prácticas (paradigma MVC)
        • Se delegan tareas repetitivas al framework (navegación, comunicación entre componentes…).
        • Ejemplos:
          • SAP Web Dynpro
          • Struts (JSP + fichero XML “struts.xml”)
          • Java Server Faces (JSP + fichero XML “faces-config.xml”)
  • Java 5 Annotations
    • Annotation is a mechanism for associating a meta-tag with program elements and allowing the compiler or the VM to extract program behaviors from these annotated elements and generate interdependent codes when necessary
    • Desaparecen algunos ficheros XML (descriptores de despliegue), incrustando esa información en el propio código a través de anotaciones (annotations).
    • A partir de dichas anotaciones se generará la información requerida.
    • Existen algunas predefinidas, pero se pueden crear a medida.
    • Limitación : sólo funciona en componentes ejecutados en un contenedor (no funciona con POJOs)
    • Ejemplo
    • @Override
    • @SupressWarnings
    • @Deprecated
    • @EJB
  • Capas de una aplicación Java EE
    • Capa cliente
    • Capa web
    • Capa de negocio
    • Capa de integración
    • Capa EIS (Enterprise Information System)
  • Capas de una aplicación Java EE
    • CAPA CLIENTE
      • Thin client (cliente ligero):
        • Cliente web (HTML + navegador)
        • Applet: small client application written in the Java programming language that executes in the Java virtual machine installed in the web browser
      • Thick client (cliente pesado):
        • Cliente aplicación (Swing): interfaz de usuario rico, aplicación standalone.
    • CAPA WEB
      • Contenedor web:
        • Servlets : Java programming language classes that dynamically process requests and construct responses.
        • JSP pages : text-based documents that execute as servlets but allow a more natural approach to creating static content.
        • JavaServer Faces technology : it builds on servlets and JSP technology and provides a user interface component framework for web applications.
  • Capas de una aplicación Java EE
    • CAPA NEGOCIO
    • Business code, which is logic that solves or meets the needs of a particular business domain
      • Contenedor de EJB :
        • Enterprise Java Beans:
          • Session Bean (stateful/stateless): lógica de negocio (con o sin persistencia de estado)
          • Entity Bean : persistencia
          • Message-Driven Bean (MDB) : comunicación asíncrona
      • POJOs : clases Java “planas” (Plain Old Java Object)
    • CAPA INTEGRACIÓN:
    • Objetos creados para el acceso a sistemas externos, como puedan ser:
    • Base de datos : JDBC, frameworks de persistencia
    • SAP R/3: SAP JCo API, BEA Smart Connector
    • Documentum: Documentum Foundation Classes (DFC), Web Development Kit (WDK)
  • Capas de una aplicación Java EE
    • CAPA EIS:
    • The enterprise information system tier handles EIS software and includes enterprise infrastructure systems such as enterprise resource planning (ERP), mainframe transaction processing, database systems, and other legacy information systems
    • Más información: http :// java.sun.com / javaee /5/ docs / tutorial / doc / bnaay.html
  • Comunicación asíncrona en Java: JMS
    • Problema de la comunicación síncrona: el llamante se queda bloqueado y en espera hasta que el método llamado completa su ejecución
    • JMS (Java Message Service – JSR 914): MOM (Message Oriented Middleware)
      • Actores:
        • Productor : quien genera y envía el mensaje
        • Consumidor : quien recibe (consume) el mensaje
        • Sistema MOM
      • Escenarios
        • Point-to-point (queue destination): uno a uno
        • The messages are delivered to the destination, which is a queue, and then delivered to one of the consumers registered for the queue.
        • Publish/subscribe (topic destination): uno a varios
        • Messages are delivered to the topic destination, and then to all active consumers who have subscribed to the topic.
    • EJB MDB : consumidor de mensajes asíncronos
    • Consumo de mensajes:
      • Síncrono: el cliente se bloquea hasta la llegada de un mensaje
      • Asíncrono: el cliente es notificado de la llegada de un mensaje
  • Comunicación asíncrona en Java: JMS
  • Servlet
    • Fichero Servlet: *.java
      • public class EjemploServlet extends javax.servlet.http.HttpServlet {
      • protected void doGet(HttpServletRequest request,HttpServletResponse response)
      • throws ServletException, IOException {
      • doGet(request, response);
      • }
      • protected void doPost(HttpServletRequest request,HttpServletResponse response)
      • throws ServletException, IOException {
      • // create an HTML table.
      • out.println(&quot;<HTML>&quot;);
      • out.println(&quot;<HEAD><TITLE>Appointment Schedule</TITLE></HEAD>&quot;);
      • out.println(&quot;<BODY>&quot;);
      • out.println(&quot;<TABLE>&quot;);
      • out.println(&quot;<TR>&quot;);
      • out.println(&quot;<TD>Date</TD>&quot;);
      • out.println(&quot;</TABLE></BODY></HTML>&quot;);
      • }
      • }
    Volver
  • JSP
    • Fichero JSP: *.jsp
      • <%@ page language=&quot;java&quot; contentType=&quot;text/html;charset=UTF-8&quot;%>
      • <%@ taglib prefix=&quot;f&quot; uri=&quot;http://java.sun.com/jsf/core&quot;%>
      • <%@ taglib prefix=&quot;h&quot; uri=&quot;http://java.sun.com/jsf/html&quot;%>
      • <%@ taglib prefix=&quot;t&quot; uri=&quot;http://myfaces.apache.org/tomahawk&quot;%>
      • <html>
      • <f:view>
      • <head>
        • <meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;>
        • <title><h:outputText value=&quot;Bienvenido a Consola SMS&quot; /></title>
        • <t:stylesheet path=&quot;/hojaEstilo.css&quot; />
        • <jsp:include page=&quot;/paginas/CerrarSessionJS.jsp&quot; />
      • </head>
      • <body onload=&quot;listenerFormSubmit()&quot;>
      • <h:panelGrid cellspacing=&quot;0&quot;>
      • <jsp:include page=&quot;/paginas/encabezado.jsp&quot; />
      • <jsp:include page=&quot;/paginas/menurapido.jsp&quot; />
      • </h:panelGrid>
      • </body>
      • </f:view>
      • </html>
    Volver
  • EJB
    • Local / Remoto : JVM local / remota (una JVM remota es la existente en otro servidor, otra instancia, etc…)
    • EJB 2.x requiere hasta 6 objetos:
      • EJBHome: interfaz remota para los métodos del ciclo de vida (creación, eliminación, activación, pasivación…)
      • EJBLocalHome: interfaz local para los métodos del ciclo de vida
      • EJBObject: interfaz remota métodos de negocio
      • EJBLocalObject: interfaz local métodos de negocio
      • Clase Bean: implementación de los interfaces (inclusión de código, lógica de negocio, etc)
      • ejb-jar.xml: descriptor de despliegue
    • EJB 3 sólo requeriría 2/3 objetos:
      • Interfaz del Bean (local/remoto)
      • Clase implementación del Bean
      • Se puede utilizar ejb-jar.xml pero no sería necesario. En su lugar se utilizarían anotaciones:
        • @Remote
        • @Stateless
        • @Stateful
    Volver
  • CONTINUARÁ…
  • Patrones de diseño
    • ¿Qué es un patrón de diseño?
    • Soluciones reutilizables a problemas comunes en el diseño de software: no reinventemos la rueda.
    • No implica librerías, especificaciones ni productos concretos: es algo genérico.
    • Origen: a finales de los 70, arquitecto Christopher Alexander.
    • Representados con UML.
    • Dos grandes grupos: GoF patterns y J2EE patterns.
    • GoF patterns (1995) : genéricos, cualquier lenguaje orientado a objetos.
      • Creational patterns : These patterns have to do with class instantiation.
      • Ejemplos: Abstract Factory, Factory, Singleton…
      • Structural patterns : These concern class and object composition. They use inheritance to compose interfaces and define ways to compose objects to obtain new functionality.
      • Ejemplos: Adapter, Composite, Decorator, Facade, Proxy…
      • Behavioral patterns : about classes objects communication. They are specifically concerned with communication between objects.
      • Ejemplos: Command, Iterator, Observer, Strategy, Template…
  • Patrones J2EE
    • J2EE Patterns : exclusivos para Java.
      • Capa presentación
        • Front Controller
        • View Helper
      • Capa de negocio
        • Business Delegate
        • Session Façade
        • Transfer Objects
      • Capa de integración
        • Data Access Object
  • Ejemplo arquitectura de patrones
  • Patrón MVC
    • Model-View-Controller
    • Patrón arquitectural multi-capa: by applying the Model-View-Controller (MVC) architecture to a JavaTM 2 Platform, Enterprise Edition (J2EETM) application, you separate core business model functionality from the presentation and control logic that uses this functionality. Such separation allows multiple views to share the same enterprise data model, which makes supporting multiple clients easier to implement, test, and maintain.
    • En Java, típicamente se traducía en:
    • Vista: JSP
    • Controlador: Servlet
  • Frameworks
    • ¿Qué es un framework?
    • A software framework is a re-usable design for a software system (or subsystem). A software framework may include support programs, code libraries , a scripting language , or other software to help develop and glue together the different components of a software project. Various parts of the framework may be exposed through an API .
    • Tipos de framework:
      • Frameworks web
      • Frameworks AJAX
      • Frameworks de persistencia: O/R mapping (Objecto Relation Mapping)
      • Frameworks de logging
      • Frameworks de aplicación
      • Frameworks de pruebas
  • Frameworks
    • Frameworks web:
      • Struts (MVC): producto de Apache
      • Java Server Faces (MVC): especificación de JCP
      • SAP Web Dynpro (MVC): producto de SAP
    • Frameworks AJAX (AJAX enabled JSF components):
      • Apache myFaces
      • ICEfaces
      • Oracle ADF Faces: donado a proyecto Apache, renombrado como “Apache Trinidad”
      • jMaki
    • Frameworks de persistencia: O/R mapping (Objecto Relation Mapping):
      • Tabla = Clase Java
      • Campo = Atributo Java
      • El desarrollador sigue pensando en objetos: transparencia de la base de datos.
      • Java Data Object (JDO)
      • Hibernate
      • TopLink
      • Java Persistence API (JPA)
        • KODO (BEA)
        • Hibernate
        • OpenJPA
  • Frameworks
    • Frameworks logging:
      • Apache Log4j : producto integrado en BEA WLS (muy extendido)
      • Java Logging API : especificación JSR 47 (limitado respecto a Log4j)
    • Framework de aplicación:
      • Spring
    • Frameworks pruebas:
      • JUnit : enfocado a la realización de pruebas unitarias repetitivas.
    • Frameworks de templating:
      • Tiles (pertenece a Struts): generación y reutilización de plantillas (cabecera+menú lateral+pie de página+…)
  • AJAX (I)
    • AJAX es un acrónimo de Asynchronous JavaScript + XML .
    • AJAX no es una tecnología en sí mismo. En realidad, se trata de la unión de varias tecnologías que se desarrollan de forma autónoma y que se unen de formas nuevas y sorprendentes.
    • AJAX permite mejorar completamente la interacción del usuario con la aplicación , evitando las recargas constantes de la página, ya que el intercambio de información con el servidor se produce en un segundo plano.
  • AJAX (II)
    • El motor AJAX permite que la interacción del usuario con la aplicación suceda asincrónicamente (independientemente de la comunicación con el servidor). Así el usuario nunca estará mirando una ventana en blanco del navegador y un icono de reloj de arena esperando a que el servidor haga algo.
    • Las tecnologías que forman AJAX son:
      • XHTML y CSS, para crear una presentación basada en estándares.
      • DOM, para la interacción y manipulación dinámica de la presentación.
      • XML, XSLT y JSON, para el intercambio y la manipulación de información.
      • XMLHttpRequest, para el intercambio asíncrono de información.
      • JavaScript, para unir todas las demás tecnologías.
    • En la práctica, se utilizarán casi siempre controles gráficos (botones, tablas, menús desplegables, campos de texto…) que nos proporcionen de forma transparente la funcionalidad AJAX (a través de frameworks como, por ejemplo, ICEFaces o jMaki).
    • Ejemplos de AJAX : Google Maps, Gmail, Yahoo Mail, Outlook Web Access…
  • Java Server Faces
    • Framework web liberado como especificación Java :
      • JSF 1.0, JSF 1.1: JSR 127
      • JSF 1.2: JSR 252
      • JSF 2.0: JSR 314
    • El objetivo del framework es la simplificación del desarrollo del interfaz de usuario en aplicaciones Java EE.
    • El framework ofrece APIs que ayudan en la definición del flujo de navegación entre ventanas, la validación, conversión de valores, conversión, internacionalización, gestión de eventos de lado cliente, etc.
    • Utiliza páginas JSP como tecnología de visualización (aunque podría usar otras)
    • Utiliza Backing Beans (=JSF Managed Beans) : equivalente a JavaBeans, ayudan a enganchar la vista con “el mundo exterior”.
    • Faces-config.xml ; aquí se definen, entre otras cosas:
      • Reglas de navegación
      • Managed Beans
  • Look and feel de las aplicaciones: CSS
    • Hojas de estilo: CSS (Cascading Style Sheet)
    • Fichero de texto con extensión .css:
      • body { background: #FFFFFF}
      • h1 { font-size: 180%; font-weight: medium; margin-top: 0.28em; margin-bottom: 0.05em; color: Highlight }
      • a:link { color: #0000FF }
      • a:hover { color: #000080 }
    • Liquid layout: adaptación a diferentes resoluciones de usuario (alternativa a uso de tablas HTML)
    • Adaptación a dispositivos móviles :
      • Evita crear páginas JSP duplicadas
  • Componentes Java EE
    • Componente Java EE:
      • A Java EE component is a self-contained functional software unit that is assembled into a Java EE application with its related classes and files and that communicates with other components.
    • Ver http :// java.sun.com / javaee /5/ docs / tutorial / doc / bnaay.html
    • A component may be a single class, but more often is a collection of classes , interfaces, and resources. The J2EE platform offers five types of components : enterprise beans, servlets and JSP pages, applets, application clients, and connectors.
    • The J2EE platform specification provides a way to bundle one or more components into a module , which is the smallest unit of independent deployment for any component type . A module may be deployed directly into a J2EE container, or one or more modules may be combined to form a J2EE application.
  • Componentes Java EE
    • Módulos:
      • EAR (Enterprise Archive): componente desplegable . Despliega JAR, WAR.
      • JAR (Java Archive): componente no desplegable (tendrá que ser empaquetado en un EAR para su despliegue)
        • EJBs
        • Clases acceso a base de datos
        • Clases de utilidades
        • Si contiene EJBs, deberá incluir un fichero ejb-jar.xml (descriptor de despliegue)
      • WAR (Web Archive): componente desplegable de la capa web
        • Servlets
        • JSP
        • JSF
        • Clases de utilidades
        • Contiene web.xml
      • RAR (Resource Adapter Archive): conectores Java. Definicido en especificación JCA, para creación de conectores: http :// java.sun.com / javaee /5/ docs / tutorial / doc / bncjy.html
    • Cada módulo requiere una estructura de carpetas concreta (e.g., WAR requiere una carpeta WEB-INF con fichero web.xml). Similares a ficheros ZIP (descomprimibles con Winzip, WinRAR…).
    • Fichero XML descriptores de despliegue: especifica dependencias entre componentes, características del despliegue, etc.
  • Componentes Java EE
    • Referenciación de librerías
    • Se deben utilizar las llamadas “ Shared Libraries ”: capacidad para reutilizar librerías.
    • Evitar desplegar N veces una misma librería:
      • Evitar problemas de ClassLoader (problemas por clases duplicadas)
      • Disminuir tamaño componentes (ralentización despliegue)
      • Optimización de la mantenibilidad: cambio de versión en un único punto
      • BEA Shared Libraries permite versionado de librerías.
    • Pruebas unitarias
      • JUnit (para POJOs): clase ejecutable reutilizable que muestra visualmente el resultado (OK - Failure); muy útil también para tests de regresión, cobertura, etc...
      • JTiger (especial para Java EE 5, aprovecha anotaciones)
      • Jakarta Cactus (basado en JUnit, enfocado a los componentes del lado servidor: EJBs, Servlets…)
      • Java Unit EE
  • Entorno de desarrollo local
    • IDE (Integrated Development Environment):
      • BEA Workshop for WebLogic (W4W)
      • BEA Workshop Studio (WS): permite desplegar en Tomcat, IBM WAS, etc.
    • BEA W4W: basado en Eclipse 3.2
    • Entorno de desarrollo local:
      • BEA WLS 10.0 MP1
      • BEA W4W 10.1
      • JDK 1.5
      • Oracle Express Edition 10g
  • Despliegues en BEA WLS
    • Desplegar : subir al servidor de aplicaciones un desarrollo cualquiera realizado en local por un desarrollador.
    • Problemas :
      • Limitación del entorno de Desarrollo (IDE): sólo permite el despliegue directo en un servidor BEA WLS instalado en local.
      • El despliegue requiere el conocimiento de un usuario/contraseña con permisos de administración del BEA
    • Solución actual : mecanismo “manual” de despliegue, consistente en…
    • 1. FTP del desarrollador en el servidor central de BEA WLS
    • 2. Transmisión FTP del fichero EAR a desplegar
    • 3. Ejecución de un script que realiza el despliegue automáticamente (el desarrollador sólo tiene persmisos de ejecución sobre dicho script).
    • Posible solución futura: herramienta web para el despliegue automático.
  • Conceptos BEA WLS
    • Conceptos de BEA WLS:
      • Dominio
      • Servers (instancias):
        • Admin Server
        • Managed server
  • Dominios
    • A WebLogic Server administration domain is a logically related group of WebLogic Server resources.
    • Depending on your particular business needs and system administration practices, you might decide to organize your domains based on criteria such as:
      • Logical divisions of applications.
      • Physical location.
      • Size.
  • Servers The Administration Server operates as the central control entity for the configuration of the entire domain. It maintains the domain's configuration documents and distributes changes in the configuration documents to Managed Servers. You can also use the Administration Server as a central location from which to monitor all resources in a domain. Managed Servers host business applications (EJB), application components (web, libraries…), Web services, and their associated resources Resources services: JDBC data sources, Mail sessions, Security providers, diagnostics and monitoring services…
  • Alta disponibilidad
    • Objetivo: aumentar la disponibilidad de servicio de las aplicaciones
    • Soluciones (complementarias):
      • Cluster:
        • Redundancia de servidores
        • Eliminación de punto único de fallo.
      • Balanceador:
        • Balanceo de peticiones entrantes a la aplicación entre diversos servidores.
        • Puede ser SW (Apache Web Server) o HW (Nortel Alteon).
  • Alta disponibilidad
    • Configuraciones de un cluster:
    • Active/Active — Traffic intended for the failed node is either passed onto an existing node or load balanced across the remaining nodes. This is usually only possible when the nodes utilize a homogeneous software configuration.
    • Active/Passive — Provides a fully redundant instance of each node, which is only brought online when its associated primary node fails. This configuration typically requires the most amount of extra hardware.
    • Otras: N+1, N+M, N-to-1, N-to-N
  • Ejemplo HA: Entorno de Producción BEA
  • Seguridad en BEA: estándar Java EE
    • Conceptos de Seguridad en Java EE :
      • Realm: DB de usuarios/grupos con una política de autenticación común (e.g. LDAP).
      • Grupo: existentes en el realm
      • Usuario: existentes en el realm
      • Rol: específico de aplicación (diferente del concepto “rol” en SAP UME); it’s an abstract name for the permission to access a particular set of resources in an application.
      • Protección de recursos: securización de patrón de URL con un rol determinado
    • Seguridad en Java EE: ofrece seguridad declarativa en ficheros XML de la propia aplicación,
      • web.xml: declaración de roles y protección de recursos
      • weblogicic.xml (particular en cada plataforma): mapeo de roles con grupos/usuarios
      • ejb-jar.xml: securización de lógica de negocio
  • Seguridad en BEA: Access Manager
    • Gestión de usuarios: servidor LDAP  SUN Java Directory Server Enterprise Edition
    • BEA WLS permite su integración con el servidor LDAP
    • 79 requisitos de Gerencia de Seguridad, entre otros:
      • Detección de fallo de login por múltiples motivos
      • Detección de salida de aplicación y caducidad de sesión
    • Problema : Seguridad Java EE estándar junto con BEA y LDAP, no cubren todos.
      • Solución propuesta desde I+D: Access Manager (producto de SUN)
    • SUN AM:
      • Proporcionará todos los servicios de autenticación y autorización (incluyendo SSO).
      • Ignora toda la seguridad Java EE: disminuye la portabilidad.
      • En teoría cubre todos los requisitos de Seguridad
  • Seguridad en BEA: Access Manager
  • Seguridad en BEA: Access Manager
  • Seguridad en BEA: ALES
    • BEA AquaLogic Enterprise Security (ALES): herramienta BEA para tareas de autentificación/autorización
      • Elimina necesidad de incluir seguridad en fichero XML del propio componente EAR de la aplicación
      • Permite declaración de roles centralizada
      • Mapeo de usuarios-roles centralizado
      • Mapeo de roles-recursos
      • Visión de dependencias: análisis de impacto
      • Auditoría de logs
      • Propagación de identidad a/desde otros sistemas
      • Integra con:
        • LDAP
        • Subversion
  • Acceso a SAP R/3
    • Producto Smart Connector (BEA AquaLogic Service Bus - ALSB): antiguo producto iway de BEA
      • Basado en librerías SAP JCo.
      • Generación automática de Web Service a partir de una BAPI.
      • Herramienta web.
      • El IDE permite la generación dinámica de las clases Java necesarias para acceder al Web Service generado (a partir del fichero .wsdl).
  • Gestión del ciclo de vida
    • SCM: Source Control Management
      • Herramienta a utilizar: SubVersion (heredera de CVS)
      • Integración en Eclipse (subclipse) y Windows Explorer (Tortoise SVN)
      • Repositorio de código y control de versiones
      • Branches: desarrollo en paralelo (peticiones e incidencias)
      • Versions (Tags): cierre de entregas/versiones
  • Gestión del ciclo de vida
    • Problema: resolución de incidencias mientras se realice una OC o una fase adicional del proyecto.
      • Solución: creación de branches
  • Metodologías ágiles
    • Waterfall vs. Iterative style
      • Métrica 3: waterfall
      • Procesos ágiles: iterative
    • Predictive vs Adaptive planning:
      • Predictive
      • Adaptive: la predicción es una ilusión
    • Procesos ágiles:
      • http://agilemanifesto.org
      • Ejemplos: Extreme Programming (XP), Scrum, Feature Driven Development (FDD), Crystal…
      • Mis-understanding customers' requirements, missing deadlines, over-budget, conflicts between customers and developers and poor maintainability of legacy systems.
  • RUP
    • Rational Unified Process (RUP):
      • The Rational Unified Process is a Software Engineering Process . It provides a disciplined approach to
      • assigning tasks and responsibilities within a development organization. Its goal is to ensure the production
      • of high-quality software that meets the needs of its end-users, within a predictable schedule and budget.
      • Process framework: proporciona un vocabulario y una estructura abierta para hablar de procesos.
      • Apuesta por el desarrollo iterativo : Given today’s sophisticated software systems, it is not possible to
      • sequentially first define the entire problem, design the entire solution, build the software and then test the
      • product at the end.
      • Consta de cuatro fases:
        • Inception
        • Elaboration
        • Construction
        • Transition.
  • Web 2.0
    • Web 2.0:
      • es la representación de la evolución de las aplicaciones tradicionales hacia aplicaciones web enfocadas al usuario final.
      • es una actitud, no una tecnología.
      • aplicaciones que generen colaboración y de servicios que reemplacen las aplicaciones de escritorio. Algunos ejemplos:
        • Blogs
        • Wikipedia
        • Flickr
      • concepto RIA: Rich Internet Application
    • Tecnologías que dan vida a un proyecto Web 2.0:
      • Transformar software de escritorio hacia la plataforma del web.
      • Respeto a los estándares como el XHTML .
      • Separación de contenido del diseño con uso de hojas de estilo .
      • Sindicación de contenidos (e.g., formato de feed RSS – Really Simple Sindication).
      • AJAX (javascript ascincrónico y xml).
      • Uso de Flash , Flex o Lazlo.
      • Utilización de redes sociales al manejar usuarios y comunidades.
      • Dar control total a los usuarios en el manejo de su información.
      • Proveer APis o XML para que las aplicaciones puedan ser manipuladas por otros.
  • Tabla resumen Tabla resumen de herramientas, frameworks, tecnologías o librerías a utilizar por defecto en el desarrollo de aplicaciones Java: Look and feel de las vistas (JSP, HTML, etc) CSS Web Services JAX-WS Acceso y Reutilización de componentes librería BEA Shared Library / Optional packages Acceso a SAP R/3 BEA Smart Connector Persistencia (a través de DAOs) BEA Kodo JPA Logging y tracing Log4j Plantillas para las vistas Tiles Capa de negocio EJB 3.0 Capa web Java Server Faces Herramienta de SCM SubVersion IDE de desarrollo BEA Workshop for WebLogic Utilización Nombre
  • Glosario http://java.sun.com/javaee/reference/glossary/
  • Glosario Feature Driven Development FDD Enterprise Resource Planning ERP Expression Language EL Enterpise Java Bean EJB Enterprise Information System EIS Enterprise Archive EAR Documentum Foundation Classes DFC Documentum Foundation Classes DFC Concurrent Versions System CVS Cascading Style Sheet CSS Continuous Integration CI Common Gateway Interface CGI BEA WebLogic Server BEA WLS BEA AquaLogic Service Bus BEA ALSB BEA AquaLogic Enterprise Security BEA ALES Application Programming Interface API SUN Access Manager AM Asynchronous Javascript and XML AJAX Descripción Nombre Java Specification Request JSR Java Server Pages JSP Java Server Faces JSF Java Server Faces JSF Java Runtime Environment JRE Java Message Service JMS Java Development Kit JDK Java DataBase Connectivity JDBC Java Community Process JCP Java Community Process JCP Java Connector Architecture JCA Java Standard Edition Java SE Java Enterprise Edition Java EE Java Archive JAR Integrated Development Environment IDE Hyper Text Transfer Protocol HTTP Hyper Text Markup Language HTML High Availability HA Descripción Nombre
  • Glosario Source Control Management SCM SAP Web Application Server SAP WAS SAP Java Connector SAP JCo Rational Unified Process RUP Really Simple Sindication RSS Remote Method Invocation RMI Rich Internet Applications RIA Resource Adapter Archive RAR Plain Old Java Object POJO Object-Relational Mapping ORM Model-View-Controller MVC Message Oriented Middleware MOM Message Driven Bean MDB Lightweight Directory Access Protocol LDAP Java Virtual Machine JVM Java Transaction API JTA Java Server Tags Library JSTL Descripción Nombre Extreme Programming XP eXtensible Markup Language XML eXtensible HTML XHTML Web Development Kit (Documentum) WDK Web Archive WAR Unified Modeling Language UML Subversion SVN Secure Sockets Layer SSL Software Development Kit SDK Descripción Nombre
  • Ruegos y preguntas Gracias por vuestra atención