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.