Java Design Patterns

Diplomado – Certificación
Duración: 250 horas.
Horario: Sabatino de 8:00 a 15:00 horas.
Incluye:
1. Curso presencial de 250 horas.
2.- Material oficial de Oracle University (e-kit´s) de los siguientes cursos:
- Java Design Patterns
- Developing Web Services Using Java Technology
- Java Performance Tuning and Optimization
- Architect Enterprise Applications with Java EE
3.- 1 voucher de certificación a elegir con 6 meses de vigencia.
Requisitos:
Es Indispensable traer lap-top con las siguientes características:
1. Procesador: Intel(R) Core(TM) i5 ó i7 Quad Core a 2.0 GHz o un procesador equivalente
en Intel o AMD de cuatro núcleos.
2. Tipo de Sistema Operativo Windows 7 u 8 a 64 Bits.
3. Mínimo de memoria RAM: 12 GB.
4. Mínimo de espacio en Disco 150 GB disponibles.
Java Design Patterns
Reviewing Object-Oriented Principles in Java
Describe how OO concepts apply to Java
Describe how OO principles apply to Java
List the goals of an OO language
Interpret Unified Modeling Language (UML) notation and create UML diagrams
Identify selected design patterns
Reviewing Gang of Four Patterns
List key behavioral, creational and structural patterns
Apply the Facade pattern
Apply the Strategy pattern
Apply the Observer pattern
Apply the Composite pattern
Review the Model-View-Controller (MVC) patterns
Implementing Patterns in Java
Use implementation patterns designed for Java
List forces affecting class, state, and behavioral patterns
Describe how patterns, idioms and refactoring differ from each other
Exploring Changes in Java EE Technology
Describe the design goals of the Java EE model
Describe improvements in the Java EE 6 model
Implementing Integration Patterns
Describe design patterns for the integration tier
Review Java EE integration changes that apply design patterns
Identify use cases for applying integration tier patterns
Implementing Patterns in Business Components
Describe the role of an enterprise bean
Describe design patterns for the business tier
Implementing Infrastructural Patterns in Java EE
Describe the role of infrastructural Java EE patterns
Describe the Service Starter pattern
Describe the Singleton pattern
Describe the Bean Locator pattern
Describe the Resource Binder pattern
Implementing More Infrastructure Patterns
Describe how Java EE interceptors work
Describe the Dependency Injection Extender pattern
Describe the Payload Extractor pattern
Describe the Context Holder pattern
Describe the Thread Tracker pattern
Exploring Anti-Patterns
Describe the Law of Leaky Abstractions
Define AntiPatterns
Describe Integration Tier AntiPatterns
Describe Business Tier AntiPatterns
Describe Presentation Tier AntiPatterns
Selecting Patterns for Architecture
Define the roles of architect, designer, and developer
Describe the relationship between design patterns and architecture
List guidelines for applying patterns to an architectural solution
Java Frameworks (Spring, Hibernate, PrimeFaces, JQuery,
Struts 2, Maven)
Maven
¿Qué es Maven?
Características Clave
POM – Project Object Model
Project Unique Identifier – GAV
Repositorios
Gestión de Dependencias
Dependency Scope
Ciclo de vida de Construcción (Build lifecycle)
Arquitectura de Plugins
Práctica - Construcción de un proyecto con maven
Práctica - Integración con Eclipse
Spring
¿Qué es Spring?
Spring Core
Inversión de Control (IoC)
Inyección de dependencias (DI)
Spring Bean Factory y Application Context
Ciclo de Vida
Definición de Beans.
Configuración por XML
Configuración por Anotaciones.
Práctica - Singleton y Prototype
Práctica - Definición de componentes orientado a Interfaces
Práctica - Convertidor de número a letra multi-idioma
Hibernate 4
¿Qué es un ORM?
¿Qué es Hibernate?
Arquitectura
Dependencias Maven
Mapeo de Entidades
Configuración de Hibernate
Sesiones y Transacciones
Uso de Hibernate (CRUD)
Relación uno a uno
Relación uno a muchos
Claves primarias y tipos de dato
Componentes y enumerados
Consultas personalizadas con Query y HQL
Struts 2
Creación de proyecto web
Ciclo de Vida
Configuración Struts 2
Actions
Formularios con Struts
Value Stack
Interceptores
Configuración con Anotaciones
jQuery
JSON
Ajax
DOM
Selectores
RIA – jQuery y jTable (Demostración)
Integración proyecto empresarial multi-modulo
Requerimiento funcional del sistema propuesto
Definición de arquitectura
Desarrollo de módulos del proyecto con maven
Definición Capa Dominio
Definición Capa Persistencia
Definición Capa Persistencia – Hibernate
Definición Capa Persistencia – Spring JDBC (ejemplo extra)
Definición Capa Servicio
Definición Capa Utilerias
Definición Capa Web
Implementación de aplicación web orientada a servicios
Developing Web Services Using Java Technology
Introduction to Web Services
Explore the need for web services
Define a web service and describe the motivation behind developing and using web
services in business software
Describe the characteristics of a web service
Describe the two major approaches to developing web services
Describe the advantages of developing web services within a JavaEE container.
JAX-WS-based Web Services
Understand how to create web services using JAX-WS
Understand how to deploy web services providers using JavaSE
Understand how to create and deploy simple web services clients using JavaSE.
SOAP and WSDL
Understand the basic structure of a SOAP message, and how it is encapsulated by
transports
Understand how WSDL defines a web service, including its message representation and
transport mechanism
Understand the different styles of SOAP messages that a web service can use, and their
trade-offs
Customize a web service to control the style of SOAP message that that web service will
use
JAX-WS and JavaEE
Understand how to deploy POJO web services to a web container
Understand how to define a web service in terms of an Enterprise Java Bean
Understand how to deploy an EJB web service to an EJB container
Describe the benefits associated with implementing a web service as an EJB
Implementing More Complex Web Services Using JAX-WS
Apply JAXB to pass complex objects to and from a web service
Understand how to map Java exceptions from a web service endpoint to SOAP faults
Understand how to inject attributes into JAX-WS web service endpoints
Describe JAX-WS artifacts that can be injected and how to use them
AX-WS Web Service Clients
Understand how to create web service clients using JAX-WS
Understand how to create web service clients using JAX-WS that support asynchronous
interactions
Introduction to RESTful Web Services
Understand what RESTful Web Services are
Understand the five principles behind RESTful Web Services
Understand the advantages and disadvantages of a RESTful approach.
JAX-RS-based Web Services
Understand how the five principles of RESTful web services map to JAX-RS constructs
Understand how to implement REST web services using JAX-RS
Understand how to deploy REST web services using Jersey, an implementation of JAX-RS
JAX-RS-based Web Service Clients
Understand how to create JAX-RS clients using URL and HttpURLConnection.
Understand how to create JAX-RS clients using the Jersey Client API.
JAX-RS and JavaEE
Understand how to deploy POJO web services to a web container
Understand how to define a web service in terms of an Enterprise Java Bean
Understand how to deploy an EJB web service to an EJB container
Describe the benefits associated with implementing a web service as an EJB
Implementing More Complex Web Services Using JAX-RS and Jersey
Understand how to produce and consume custom types.
Define JAX-RS web services that provide results by linking to other resources.
Understand how to manage exceptions. • Define JAX-RS web services in terms of
resources and sub-resources.
Understand the different scopes defined by JAX-RS for web services endpoints.
Trade-Offs Associated with the Java Web Services APIs
Understand the trade-offs involved in the choice to implement a web service using either
JAX-WS or JAX-RS technology.
Web Services Design Patterns
Describe web services-based design patterns
Describe web services-based deployment patterns
Best Practices and Design Patterns for Use with JAX-WS
Describe JAX-WS-specific design patterns
Recognize and apply best practices associated with implementing web services using JAXWS
Best Practices and Design Patterns for Use with JAX-RS
Describe JAX-RS-specific design patterns
Recognize and apply best practices associated with implementing web services using JAXRS
Java Performance Tuning and Optimization
Introduction to Java Performance Tuning
Course Introduction
Course Agenda
JVM and Peformance Overview
JVM Overview
Performance Principles
Common Performance Problems
Performance Methodology
Development and Performance
Monitoring Operating System Performance
Monitor CPU Usage
Monitor Network I/O
Monitor Disk I/O
Monitor Virtual Memory Usage
Monitor and Identify Lock Contention
Monitoring the JVM
HotSpot Generational Garbage Collector
Monitor the Garbage Collector with Command Line Tools
Monitor the Garbage Collector with VisualVM
Monitor the JIT Compiler
Throughput and Responsiveness
Performance Profiling
NetBeans Profiler, Oracle Solaris Studio, and jmap/jhat
Profile CPU Usage
Profile JVM Heap
Find Memory Leaks
Identify Lock Contention
Heap Profiling Anti-patters
Method Profiling Anti-patterns
Garbage Collection Schemes
Garbage Collection
Generational Garbage Collection
GC Performance Metrics
Garbage Collection Algorithms
Types of Garbage Collectors
JVM Ergonomics
Garbage Collection Tuning
Tune the Garbage Collection
Select the Garbage Collector
Interpret GC Output
Language Level Concerns and Garbage Collection
The best practices for Object Allocation
Invoking the Garbage Collector
Reference Types in Java
The use of Finalizers
Performance Tuning at the Language Level
String-efficient Java Applications
Collection Classes
Using Threads
Using I/O Efficiently
Architect Enterprise Applications with Java EE
Introducing Enterprise Architecture
What is Enterprise Architecture?
An Architect’s Roles and Responsibilities
Introducing Fundamental Architectural Concepts
Distinguish between architecture and design
Architectural Patterns
Architectural Deliverable Artifacts
What is an Enterprise Architecture Framework
4 + 1 View Model
Architectural Modeling Using UML
Architecture Workflow
What is an Enterprise Architecture Framework
Developing a Security Architecture
Analyzing the Impact of Security in Distributed Computing
Examining Security in the Java EE Technology
Understanding Web Services Security
Understanding Non-Functional Requirements
Examining Non-Functional Requirements (NFRs)
Common Practices for Improving Qualities
Prioritizing Quality-of-Service (QoS) Requirements
Inspecting QoS Requirements for Trade-offs
Defining Common Problems and Solutions: Risk Factors and System Flexibility
Identifying Risk Factors
Designing a Flexible Object Model
Defining Common Problems and Solutions: Network, Transaction and Capacity Planning
Describing Network Communication Guidelines
Justifying the Use of Transactions
Planning System Capacity
Java EE 6 Overview
Java EE 6 Goals
Java EE Containers
Classic Java EE 5 Architecture
Impact of Java EE 6 on Architecture
Developing an Architecture for the Client Tier
Client Tier Development Roles
Information Architecture Client Concerns
Selecting User Interface Devices and Technologies
Discovering Reusability in the Client Tier
Deployment Strategies for the User Interface
Security Concerns in the Client Tier
Testing
Developing an Architecture for the Web Tier
Responsibilities of the Web Tier
Separation of Concerns
Comparing Web Tier Frameworks
Providing Security in the Web Tier
Scaling the Web Tier
Developing an Architecture for the Business Tier
Business Tier Technologies
Architecting the Domain Model
Development Best Practices
Developing an Architecture for the Integration and Resource Tiers
Examining Enterprise Information System Integration
Reviewing Java Integration Technologies
Applying Integration Patterns
Examining Service-Oriented Architecture (SOA)
Evaluating the Software Architecture
Evaluating Software Architectures
Evaluating Java EE Technologies
Creating System Prototypes
Selecting Servers and Frameworks