LP520: Advanced J2EE Design Patterns Duration: 5 days are laced throughout the course, designed to reinforce fundamental skills and concepts learned in the lessons. Because these lessons, labs and projects are presented in a building block fashion, students will gain a solid understanding of not only the core concepts, but also how all the pieces fit together in a complete application. At the end of each lesson, developers will be tested with a set of review questions to ensure that he/she has fully understands that topic. Overview J2EE technology is rapidly gaining acceptance and many large and small projects are being implemented using this technology. Despite its maturity and relatively easy programming model (compared to CORBA, for instance), it is very easy to end up writing non-optimal applications. This is primarily due to the vastness of the technology and a lack of application development guidelines that help Architects, Designers and Developers leverage the technology. Student Materials Student Materials include a Student Guide complete with a detailed written lab books, as well as our workshop-specific Student Developer Resource CD, complete with workshop labs and solutions; workshop software, pertinent javadocs, technical education papers, specifications and freeware. This course provides practical guidelines that are critical for successfully developing and deploying applications using the J2EE technology. The primary focus is on providing guidelines for JSP, Servlet and EJB (including Message Driven Beans) patterns that enhance application evolution and performance. The course is modularized so that it may be tailored for a specific audience. • • Who Can Benefit • Technical managers, architects and developers who want a thorough understanding of J2EE Patterns Essentials • Java developers who want to build distributed object-oriented multi-tier systems Prerequisites • • • • • Experienced programmers with strong Java One year of Java programming experience Basic knowledge of distributed computing, (RMI and/or CORBA/Java, J2EE) Working Knowledge of Servlets, JSP & EJB Multi-tier application and database experience helpful Workshop Overview Throughout the five-day course, students will be led through a series of progressively advanced topics, where each topic consists of lecture, group discussion, comprehensive hands-on lab exercises, and lab review. Multiple detailed lab exercises and demonstrations Skills Gained • • • • • • • • • • • • • • • • • Understand Tag Libraries and how to leverage them in JSPs. Understand Servlet design patterns: Reduce View/Controller coupling using a Command pattern based dispatcher Create clean servlet systems using State pattern based controllers and the URL Mapper pattern Efficiently access EJBs from Servlets using the EJB Home Cacher & Shadow-Method patterns Understand EJB design patterns: Choose the best kind of EJB for a particular job Use the Synchronous Façade pattern to encapsulate workflow logic and access to Entity Beans Use the Asynchronous Façade pattern to encapsulate access to EJB and JMS resources and perform asynchronous method invocation on them Use Program Logic Factoring in EJB Use Stateful Session Beans and the Iterator pattern to cache and serve data iteratively Improve Entity Bean performance and usability with the Value-Object, Bulk getter/setter and Sub-set Value Object patterns Use the Updateable View pattern & triggers to abstract multiple tables with Entity Beans Use the BMP multi-table façade to abstract multiple tables Understand and use the Creational and Destructional Dependency pattern Use the Home Method pattern for group operations on EJB Use the Common Interface pattern Learn Entity Bean best practices Understand and use CMP Relationships _________________________________________________________________________________________________ www.pec.stedwards.edu www.seupec.com Hands-On Learning Throughout this in-depth workshop students will be led through a series of progressively advanced topics, where each topic consists of lecture, group discussion, comprehensive hands-on lab exercises, and lab review. This training is about 50% hands-on lab and 50% lecture. Over 15 complete lab projects are laced throughout the course, designed to reinforce fundamental skills and concepts learned in the lessons. Because these lessons, labs and projects are presented in a building block fashion, students will gain a solid understanding of not only the core concepts, but also how all the pieces fit together in a complete multi-tier internet business application. At the end of each lesson, developers will be tested with a set of review questions to ensure that he/she has fully understands that topic. Detailed Course Outline Session 1: J2EE Architecture, terminologies and MVC • Overview of J2EE & the core J2EE APIs • The MVC architecture in J2EE and the roles of JSPs, Servlets and EJBs in this architecture Session 2: JSP Programming • Brief introduction to basic JSP programming • Tag Libraries - creating and using custom tags • Program Logic Factoring using Tags • Demo or Lab: Extensive Tag Library Lab Session 3: Patterns for HTTPServlets • Overview of Servlet Technology • State Pattern based Controller • URL Mapper Pattern • EJB Home Cacher Pattern • Shadow Method Pattern • Command Pattern Servlet Dispatcher • Demo or Lab: Hands-on review or demo of a variety of Core Patterns: State Pattern; URL Mapper; Shadow Method; Command Pattern Session 4: Patterns for EJBs • Comparison of Session and Entity Beans • Patterns for Session Beans • • • • • • • • • • • • • • • • • • • • • • Façade Pattern Lab: Façade Pattern; Asynchronous Façade Pattern Asynchronous Façade Pattern Program Logic Factoring and EJBs Lab: PLF in EJBs Stateful Session EJB and the Iterator Pattern Lab: Iterator Pattern lab Stateless Session EJB and the Iterator Pattern Lab: Stateless Iterator using Singleton Lab Common Interface Pattern Lab Common Interface Lab Bootstrap Session Layer Pattern Lab: Bootstrap Session Layer Pattern Patterns for Entity Beans Value Object and Bulk Getter/Setter Pattern Lab: Lab for illustrating Value object and get/set pattern Subset Value Object Pattern Lab: Subset Value Object Lab Updateable View Pattern Lab: Updateable View without Trigger Lab Updateable View Pattern using Triggers Lab: Trigger based Updateable View pattern lab Why Choose This Course? • • • Students will learn how to code, use (and reuse!) essential advanced J2EE skills and concepts properly, using best coding practices, grounding them for advanced J2EE curriculum, and will be prepared for independent study. Each lesson has performance driven objectives that ensure students will learn technologies and hands-on skills core to essential web services development – nothing more, nothing less. Progressive labs are designed in such a way that students get a firm grasp on fundamental skills while they work toward building a complete web services application. All lessons have clear objectives, are fundamental to learning core EJB programming practices, and are reinforced by hands-on code labs and solid practical examples. A detailed Work Book accompanies this course to guide students through hands-on exercises and projects. Formal written exercises, tutorials and code solutions ensure hands-on work is clear, concise and useful, both during class and afterwards. Solution code is presented in an easy to use self-study format for future use and _________________________________________________________________________________________________ www.pec.stedwards.edu www.seupec.com • • • • • review. Trivera’s instructors and course authors are also skilled mentors, J2EE/EJB & web services developers and architects. We believe that learning, using and maintaining solid software execution and delivery methods are as important as gaining sharp coding skills. Best Practices for software development and execution, beyond technical coding skills, are enforced throughout all of our courses. We have a long-standing relationship with IBM. In 1999 and 2000, our team trained over 500 IBM Visual Age for Java developers in EJB technologies to prepare them to write the WebSphere Application Server product line. We also authored several Enterprise Java seminars on their behalf, delivering them globally to IBM clients, partners, and technology team members. We have written custom EJB and J2EE development courses for: Sun Microsystems (SL-351); Perot Systems, SilverStream, IBM, Unify, BEA and others. Our team was selected to write the online J2EE, EJB, EJB CMP-CMR and Web Services Tutorial Series for IBM developerWorks® (www.ibm.com) These are the same instructors who train our classes and author the courseware. Most of our trainers/consultants have also authored additional articles on web services, EJB< Struts, J2EE and advanced Java topics, and are recognized speakers and presenters on the industry technical seminar circuit. Our team is comprised on several successful published authors. Members of our team have written or contributed to: Mastering Eclipse (6/04); Professional Jakarta Struts (Wiley, 2003),; Using Java Tools for Extreme Programming; Mastering Resin; Mastering TomCat and others. For Additional Information All courses can be brought onsite for a private presentation, customized to suit your unique requirements or goals. Our team of development experts, architects and mentors are also available to help your team design and deliver your critical development project, while transferring critical skills to your team through our unique Collaborative Mentoring Programs and educational services. ________________________________________________________________________________________ www.pec.stedwards.edu www.seupec.com