Download 4. marco teórico

Document related concepts
no text concepts found
Transcript
UNIVERSIDAD DE GUADALAJARA
CENTRO UNIVERSITARIO DE CIENCIAS
ECONÓMICO ADMINISTRATIVAS
MAESTRÍA EN TECNOLOGÍAS DE LA INFORMACIÓN
Certificación Internacional: “Oracle Certified Expert, Java
EE 6 Web Component Developer” y “Oracle Certified
Expert, Java EE 6 Java Persistence API Developer”
Protocolo de proyecto para obtener el grado de Maestro en
Tecnologías de la Información
Jonatan Alejandro Rico Irvine
Zapopan, Jalisco, México a 20 de Mayo del 2013
ÍNDICE
1. RESUMEN ........................................................................................ 3
2. INTRODUCCIÓN................................................................................ 3
3. JUSTIFICACIÓN ................................................................................ 5
4. MARCO TEÓRICO .............................................................................. 5
4.1 CONCEPTOS BÁSICOS .................................................................. 5
4.1.1 ARQUITECTURA MULTICAPA DISTRIBUIDA ................................ 5
4.1.2 PROTOCOLO HTTP .................................................................. 7
4.1.3 HTML .................................................................................... 7
4.1.4 BASE DE DATOS RELACIONAL .................................................. 8
4.1.5 PARADIGMA ORIENTADO A OBJETOS ........................................ 8
4.1.6 MAPEO OBJETO-RELACIONAL ................................................... 9
4.2 CONTENIDO TEMÁTICO ................................................................. 9
4.2.1 ORACLE CERTIFIED EXPERT, JAVA EE 6 WEB COMPONENT
DEVELOPER .................................................................................... 9
4.2.2 ORACLE CERTIFIED EXPERT, JAVA EE 6 JAVA PERSISTENCE API
DEVELOPER .................................................................................. 11
5. PLAN DE TRABAJO .......................................................................... 13
6. BIBLIOGRAFÍA................................................................................ 14
1. RESUMEN
En este documento se analizan dos certificaciones sobre tecnologías
que forman parte de la plataforma Java Enterprise Edition (JEE) como
propuesta de titulación basada en la modalidad de Certificación Internacional
para el programa de la Maestría en Tecnologías de la Información.
Se describe el Programa de Certificaciones Oracle y se ubican dentro
de éste las certificaciones “Oracle Certified Expert, Java EE 6 Web
Component Developer” y “Oracle Certified Expert, Java EE 6 Java
Persistence API Developer”, objeto de este documento.
Posteriormente se introducen de forma breve los conceptos más
importantes que son utilizados por las tecnologías cubiertas en las
certificaciones mencionadas, se describen los detalles de ambas
certificaciones y se lista el contenido temático de las mismas.
Por último, se presenta el plan de actividades y un calendario estimado
de trabajo.
2. INTRODUCCIÓN
El propósito de este documento es presentar una propuesta de
titulación basada en la modalidad de Certificación Internacional para el
programa de la Maestría en Tecnologías de la Información.
En esta propuesta se analizan dos certificaciones sobre tecnologías que
forman parte de la plataforma Java Enterprise Edition (JEE), utilizada para el
desarrollo de aplicaciones multicapa distribuidas [1]:

Oracle Certified Expert, Java EE 6 Web Component Developer: su
objetivo es acreditar los conocimientos y habilidades requeridas para
desarrollar aplicaciones que hacen un uso óptimo de las tecnologías
JSP y Servlet responsables de atender la comunicación entre equipos a
través del protocolo HTTP y de la generación de contenido, típicamente
HTML, en la capa Web de una aplicación [2].

Oracle Certified Expert, Java EE 6 Java Persistence API Developer: su
objetivo es acreditar los conocimientos y habilidades requeridas para
desarrollar aplicaciones que hacen un uso óptimo de la tecnología Java
Persistence API (JPA) encargada de la persistencia de la información
en una Base de datos Relacional a partir de un modelo Orientado a
Objetos [3].
Ambas certificaciones pertenecen al programa Oracle Certified Expert
Program que a su vez forma parte del programa Oracle Certification Program
que consiste en 4 categorías [4]:

Oracle Certified Associate: es típicamente el primer paso para obtener
la certificación Oracle Certified Professional. La certificación OCA
asegura de que el individuo tiene las habilidades fundamentales y
posee una base sólida en los productos de Oracle [4].

Oracle Certified Professional: acredita las habilidades profesionales y
pericia técnica requeridas para manejar, desarrollar o implementar
bases de datos o aplicaciones en entornos empresariales [4].

Oracle Certified Master: acredita el nivel más alto de habilidades,
conocimiento y destreza comprobada. Estos profesionales están
calificados para responder las preguntas más difíciles y resolver los
problemas más complejos [4].

Oracle Certified Expert Program: acredita la competencia en
tecnologías, arquitecturas o dominios específicos no cubiertos por las
certificaciones Certified Associate y Certified Professional [4].
La Figura 2.1 muestra las certificaciones (y sus prerrequisitos)
disponibles para la plataforma Java:
Figura 2.1 Certificaciones de la plataforma Java. (Wikimedia, 2013)
3. JUSTIFICACIÓN
En la actualidad, el acceso a Internet se ha extendido prácticamente a
todos los sectores sociales, industriales y gubernamentales alrededor del
mundo. A nivel nacional se han realizado propuestas para lograr una
cobertura universal en un lapso de 3 años con proyectos como la ampliación
de la infraestructura de fibra óptica de CFE y los trabajos vinculados con el
despeje y licitación de la banda de 700MHz [5]. El número de usuarios en el
territorio nacional se estimó de 40.9 millones en Abril del 2012 [6], según la
última Encuesta Nacional sobre Disponibilidad y Uso de Tecnologías de la
Información en los Hogares (ENDUTIH) que realiza el INEGI. Esto ha
permitido la creación y uso de servicios en línea que proveen nuevas formas
de comunicación, entretenimiento, educación, interacción social, entre
muchos otros, que demandan un alto grado de rendimiento, disponibilidad,
seguridad y tolerancia a fallos. A su vez, el desarrollo de estos servicios ha
provocado un aumento en la demanda de profesionales certificados
altamente calificados en Ciencias de la Tecnología y en particular de las
Tecnologías de la Información [7] [8], por este motivo es importante
conocer al detalle las tecnologías que habilitan la implementación de dichos
servicios.
Las certificaciones “Oracle Certified Expert, Java EE 6 Web Component
Developer” y “Oracle Certified Expert, Java EE 6 Java Persistence API
Developer” cubren dos aspectos esenciales para el desarrollo de servicios en
línea sobre la plataforma JEE, el procesamiento de la comunicación mediante
el protocolo HTTP y la persistencia de la información.
4. MARCO TEÓRICO
En esta sección se resumen brevemente los conceptos básicos
utilizados por las tecnologías cubiertas en las certificaciones “Oracle Certified
Expert, Java EE 6 Web Component Developer” y “Oracle Certified Expert,
Java EE 6 Java Persistence API Developer”. Posteriormente se incluye el
contenido temático de dichas certificaciones.
4.1 CONCEPTOS BÁSICOS
4.1.1 ARQUITECTURA MULTICAPA DISTRIBUIDA
En la arquitectura multicapa distribuida, la lógica de
dividida en componentes de acuerdo a su función y los
conforman la aplicación pueden ser distribuidos en
dependiendo de la capa a la que pertenece el componente
las aplicaciones es
componentes que
varias máquinas,
[1] (Figura 4.1).
Una aplicación Web puede dividirse en cuatro capas [1] (Figura 4.1):

Capa Cliente (Client Tier, en inglés) está compuesta del navegador
utilizado por el usuario para interactuar con las páginas Web dinámicas
mediante el protocolo HTTP.

Capa Web (Web Tier, en inglés) atiende las peticiones HTTP realizadas
por la Capa Cliente generando páginas Web dinámicas.

Capa de Negocios (Business Tier, en inglés) toma decisiones lógicas,
realiza cálculos y procesa la información en base a las peticiones del
usuario. También se comunica con la Capa de Datos para la
persistencia y recuperación de la información.

Capa de Datos (Enterprise Information System Tier, en inglés) se
encarga de la persistencia de la información en una Base de Datos.
Figura 4.1 Aplicaciones multicapa en la plataforma JEE. (Oracle, 2013)
4.1.2 PROTOCOLO HTTP
El protocolo de transferencia de hipertexto o HTTP (por su siglas en
inglés) es un protocolo a nivel de aplicación para sistemas de información
hipermedia distribuidos y colaborativos. HTTP se ha utilizado en la World
Wide Web (Web) desde 1990 [9].
HTTP es un protocol de Petición/Respuesta (Request/Response, en
inglés), un cliente envía una petición al servidor especificando los
parámetros que definen el contenido de la petición y el servidor envía una
respuesta que incluye el estado de la petición y el contenido de la solicitud
[9] (Figura 4.2).
Figura 4.2 Petición/Respuesta HTTP. (ShvetsGroup, 2011)
4.1.3 HTML
El lenguaje de marcado de hipertexto o HTML (por sus siglas en inglés)
es el lenguaje de publicación de la Web. Es utilizado para definir la
estructura y presentación del contenido en las páginas Web [10]. Esto se
logra marcando las distintas partes del contenido por medio de etiquetas
[10] (Figura 4.3).
Figura 4.3 Documento HTML. (W3C, 2013)
4.1.4 BASE DE DATOS RELACIONAL
Una base de datos relacional es aquella que utiliza el modelo de datos
relacional. El modelo fue introducido por Tedd Codd de IBM Research en
1970 y representa la base de datos como una colección de relaciones. En
términos sencillos cada relación se asemeja a una tabla en la que cada fila
representa un conjunto de valores relacionados entre sí y las columnas
definen las características de dichos valores [11].
En términos específicos del modelo relacional una fila se demonina
Tupla (Tuple, en inglés), una columna es un Atributo (Attribute, en inglés) y
una tabla se denomina Relación (Relation, en inglés) [11] (Figura 4.4).
Figura 4.4 Conceptos Base de Datos Relacional. (Wikipedia, 2008)
4.1.5 PARADIGMA ORIENTADO A OBJETOS
El paradigma Orientado a Objetos es un paradiga de programación que
representa los elementos de un programa mediante un concepto llamado
Objeto (Object, en inglés). Los Objetos se componen de Atributos (Fields ó
Attributes, en inglés) que representan su Estado (State, en inglés) y
Métodos (Methods, en inglés) que definen su Comportamiento (behavior, en
inglés) [12] (Figura 4.5).
La base del paradigma Orientado a Objetos, es un proceso llamado
Abstracción (Abstraction) mediante el cual se crea un modelo que identifica
los Objetos, sus Atributos y Métodos que representan el problema a resolver
[13] (Figura 4.6).
Figura 4.5 Concepto de Objeto. (Oracle,
2013)
Figura 4.6 Modelo de una bicicleta.
(Oracle, 2013)
4.1.6 MAPEO OBJETO-RELACIONAL
El Mapeo Objeto-Relacional (Object-Relational Mapping, en inglés) es
una capa de persistencia que conecta Objetos en un sistema Orientado a
Objetos con información almacenada en una Base de Datos Relacional [14].
El uso del Mapeo Objeto-Relacional permite aplicar el diseño, análisis y
técnicas de programación Orientada a Objetos mientras se mantienen
ocultos los detalles específicos de la Base de Datos Relacional [14] (Figura
4.7).
Figura 4.7 Mapeo Objeto-Relacional. (Cloudsopedia)
4.2 CONTENIDO TEMÁTICO
4.2.1 ORACLE CERTIFIED EXPERT, JAVA EE 6 WEB COMPONENT
DEVELOPER
La certificación consta de un examen, el cual, está compuesto de 57
preguntas de opción múltiple, se otorgan 140 minutos para completarlo y el
puntaje de aprobación es del 64% [15].
A continuación se presenta el contenido temático del examen, en
inglés [15]:







Introduction to Java Servlets
o Describe web applications, CGI, and the role of Java
o Describe benefits of Java servlet technology
o Create a simple Java Servlet
o Define three-tier architecture
o Define Model-View-Controller (MVC) architecture
Introduction to Java Server Pages
o Describe why Servlets are not the whole solution
o Describe essentials of JSPs
o Understand the fundamentals and reasons for MVC architecture
Implementing an MVC Design
o Code a controller using a servlet
o Code a view using a JSP
o Forward control from a servlet to a JSP
o Understand fundamentals of EL
o Implement a simple MVC system
The servlet's environment
o Understand more details of the HTTP protocol
o Understand fundamentals of HTML forms
o Understand fundamentals of the HttpServlet and related APIs
o Write code that manages client sessions and cookies
Container facilities for servlets and JSPs
o Understand the purpose and structure of deployment descriptors
o Control context root and servlet mapping
o Create and use context and init parameters
o Use annotations to configure servlets
More view facilities
o Understand the four data scopes
o Understand and use EL dot and array access operators with Java
Beans, arrays, and collections
o Understand and use EL implicit objects
o Create and use arithmetic expressions in EL
o Identify the need for iteration and selection in the view, and use
JSTL tags to address those needs
Developing JSP pages
o Understand the origins, benefits, and weaknesses of JSPs
o Describe JSP technology, the conversion of JSPs to servlets, and
the lifecycle of JSPs
o Understand JSP scripting elements, declarations and directives
o Use JSP implicit variables
o Understand and use jsp: tags





Developing JSP pages using custom tags
o Relate the JSTL to common job roles in web application
development and understand the use of tags in JSP development
o Recognize correct syntax for tags
o Configure a JSP to use tags from the JSTL
o Write JSP code using several standard tags
o List capabilities of JSTL tags/span>
More Controller facilities
o Understand the servlet lifecycle
o Describe and use more advanced elements of the servlet APIs
o Create filters and use them in web applications
More options for the Model
o Understand the roles of JDBC and JPA
o Understand the many elements that make up the model
o Understand fundamentals of connecting to a database using
JDBC or JPA
Asynchronous web applications
o Understand the interactions that are essential to asynchronous
web pages
o Understand the role of AJAX-style client side programming
o Implement asynchronous servlets using the facilities of Java EE 6
Web application security
o Understand the role of the container in security
o Describe and implement four authentication models
o Force the use of encryption between a web application and the
client browser
o Understand the role of JAAS in pluggable/extensible
authentication for web applications
4.2.2 ORACLE CERTIFIED EXPERT, JAVA EE 6 JAVA PERSISTENCE API
DEVELOPER
La certificación consta de un examen, el cual, está compuesto de 64
preguntas de opción múltiple, se otorgan 135 minutos para completarlo y el
puntaje de aprobación es del 61% [16].
A continuación se presenta el contenido temático del examen, en
inglés [16]:


Overview of the Java Persistence API
o Describe the basics of Object Relational Mapping (ORM)
o Define the key concepts of the Java Persistence API (entity,
entity manager, and persistence unit)
Introducing the Auction Application







Describe the auction application
Define the domain objects of the auction application
Describe the implementation model for the auction system
Persistence API Entities
Describe the difference between objects and entities
Describe the difference between persistent fields and properties
Identify and use common Java Persistence API annotations, such
as @Entity, @Id, @Table, and @Column
Understanding the Entity Manager
o Describe the relationship between an entity manager, a
persistence context, and a persistence unit
o Describe the difference between a container-managed entity
manager and an application-managed entity manager
o Describe the entity life cycle
Modeling Entity Relationships
o Examine association relationships in the data and object models
o Use relationship properties to define associations
o Implement one-to-one unidirectional associations
o Implement one-to-one bidirectional associations
o Implement many-to-one/one-to-many bidirectional associations
o Implement many-to-many bidirectional associations
o Implement many-to-many unidirectional associations
o Examine fetch and cascade mode settings
Entity Inheritance and Object-Relational Mapping
o Examine entity inheritance
o Examining object/relational inheritance hierarchy mapping
strategies
o Inherit from an entity class
o Inherit using a mapped superclass
o Inherit from a non-entity class
o Examine inheritance mapping strategies
o Use an embeddable class
Persisting Enums and Collections
o Persist entities that contain enums with @Enumerated
o Persist entities that contain lists with @ElementCollection
o Persist entities that contain maps with @ElementCollection
Introduction to Querying
o Find an Entity by its primary key
o Understand basic Java Persistence API query language queries
o Understand native SQL queries
o Understand basic Criteria API queries
Using the Java Persistence API Query Language
o Examine the Java Persistence API query language
o Create and use the SELECT statement
o
o
o
Java
o
o
o




o Create and use the UPDATE statement
o Create and use the DELETE statement
Using the Java Persistence API Criteria API
o Contrast queries that use the Criteria API with queries that use
the Java Persistence query language
o Describe the metamodel object approach to querying
o Create Criteria API queries
Using the Java Persistence API in a Container
o Use the Java Persistence API from a servlet
o Use the Java Persistence API from a stateless session bean
Implementing Transactions and Locking
o Describe the transaction demarcation management
o Implement container-managed transactions (CMT)
o Interact programmatically with an ongoing CMT transaction
o Implement bean-managed transactions (BMT)
o Apply transactions to the Java Persistence API
Advanced Java Persistence API Concepts
o Specify composite primary keys
o Override mappings with the @AttributeOverride and
@AssociationOverride annotations
o Understand entity listeners and callback methods
5. PLAN DE TRABAJO
La Figura 5.1 muestra el plan de actividades y el calendario estimado
de trabajo:
Oracle Certified Expert, Java EE 6 Web Component Developer
Preparación: libros,
especificaciones, etc.
Preparación:
exámenes de prueba
Examen Certificación
Oracle Certified Expert, Java EE 6 Java Persistence API Developer
Preparación: libros,
especificaciones, etc.
Preparación:
exámenes de prueba
Figura 5.1 Calendario estimado de trabajo.
Dic. / 1
Nov. / 4
Nov. / 3
Nov. / 2
Nov. / 1
Oct. / 4
Oct. / 3
Oct. / 2
Oct. / 1
Sep. / 4
Sep. / 3
Sep. / 2
Sep. / 1
Ago. / 4
Ago. / 3
Ago. / 2
Ago. / 1
Jul. / 4
Jul. / 3
Jul. / 2
Mes / Semana
(2013)
Jul. / 1
Examen Certificación
6. BIBLIOGRAFÍA
[1]
E. Jendrock, E. Cervera-Navarro, I. Evans, et al. (2013). The Java EE 6 Tutorial.
Oracle, Sitio Web: http://docs.oracle.com/javaee/6/tutorial/doc/. California, USA.
[2]
Oracle. (2013). Oracle Certified Expert, Java EE 6 Web Component Developer.
Oracle, Sitio Web: http://education.oracle.com/pls/web_prod-plqdad/db_pages.getpage?page_id=458&get_params=p_track_id:JEE6WCD.
[3]
Oracle. (2013). Oracle Certified Expert, Java EE 6 Java Persistence API Developer.
Oracle, Sitio Web: http://education.oracle.com/pls/web_prod-plqdad/db_pages.getpage?page_id=458&get_params=p_track_id:JEE6JP.
[4]
Oracle. (2013). Oracle Certification Program Categories. Oracle, Sitio Web:
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=146.
[5]
COFETEL. (2012). Comunicado de Prensa No. 39/2012. COFETEL, Sitio Web:
http://www.cft.gob.mx:8080/portal/wp-content/uploads/2012/09/Comunicado-39Cofetel-aprueba-resoluciones-para-impulsar-la-conectividad-en-zonas-rurales-sep26-2012.pdf. Distrito Federal, México.
[6]
COFETEL. (2012). Boletín de Prensa No. 437/12. COFETEL, Sitio Web:
http://www.cft.gob.mx:8080/portal/wp-content/uploads/2012/11/Comunicadoconjunto-COFETEL-INEGI-Nov-29-2012.pdf. Aguascalientes, México.
[7]
MexicoFIRST. (2011) Necesidades de Capital Humano con certificación intermedia y
avanzada. MexicoFirst, Sitio Web: http://www.mexicofirst.org/images/pdf/white_paper_atkearney.pdf.
[8]
E. Zuñiga. (2013). Cisco y la brecha tecnológica en IT. Alto Nivel, Sitio Web:
http://www.altonivel.com.mx/34781-la-otra-brecha-tecnologica-habra-empleo-perono-personal.html.
[9]
R. Fielding, J. Gettys, et al. (1999). RFC 2616: Hypertext Transfer Protocol –
HTTP/1.1. IETF, Sitio Web: http://tools.ietf.org/html/rfc2616.
[10]
W3C. (2013). HTML/Training/What is HTML. W3C, Sitio Web:
http://www.w3.org/community/webed/wiki/HTML/Training/What_is_HTML.
[11]
R. Elmasri, S. Navathe. (2002). Fundamentos de Sistemas de Bases de Datos, 3ra.
Edición. Addison Wesley. Madrid.
[12]
M. O’Docherty. (2005). Object-Oriented Analysis and Design, Understanding System
Development with UML 2.0. John Wiley & Sons Ltd. England.
[13]
J. Barker. (2000). Beginning Java Objects: From Concepts to Code. Apress. USA.
[14]
T. Mahler. (2013). Object Relational Mapping. Cunningham & Cunningham, Inc., Sitio
Web: http://c2.com/cgi/wiki?ObjectRelationalMapping.
[15]
Oracle. (2013). Java EE 6 Web Component Developer Certified Expert Exam. Oracle,
Sitio Web: http://education.oracle.com/pls/web_prod-plqdad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-899.
[16]
Oracle. (2013). Java EE 6 Java Persistence API Developer Certified Expert Exam.
Oracle, Sitio Web: http://education.oracle.com/pls/web_prod-plqdad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-898.