350 likes | 361 Views
Preparing for the Sun Certified Enterprise Architect Exam 1. Resources & Topics. Benefits of Certification. A credible entity validates your expertise Supercharges your resume Gives you authority on the given topic Separates you from 95% of the competition Says you are self-motivated
E N D
Preparing for the Sun Certified Enterprise Architect Exam 1 Resources & Topics
Benefits of Certification • A credible entity validates your expertise • Supercharges your resume • Gives you authority on the given topic • Separates you from 95% of the competition • Says you are self-motivated • Helps you to capitalize on opportunities in your current company - Java Cert. Helped me.
Challenges of Studying for SCEA • Lack of very comprehensive study-guide books - Not like Java Programmer Certification • Can be boring at times. Takes discipline. • Have to study about things that you may not have great experience in - for me: Legacy, Security, 23 Design Patterns. • Memorize, memorize, memorize
SCEA Examshttp://suned.sun.com/US/certification/java/java_archj2ee.html “Prior to purchasing the assignment for the Sun Certified Enterprise Architect program, you must have successfully completed the Sun Certified Enterprise Architect multiple choice exam (CX-310-051). * Step 1: Sun Certified Enterprise Architect for J2EE Technology, Knowledge-based Multiple Choice Exam (CX-310-051) ($150) * Step 2: Sun Certified Enterprise Architect for J2EE Technology, Assignment (CX-310-300A) ($250) * Step 3: Sun Certified Enterprise Architect for J2EE Technology, Essay Exam (CX-310-061) ($150)”
Example Resources - See Web • Only book: Sun Certified Enterprise Architect for J2EE Technology Study Guide -- Mark Cade, Simon Roberts; Paperback. Better than nothing. - Buy it. • SCEA@Whiz - Sun Java Architect Certification 6 Mock Tests on latest pattern of SCEA, Interactive Quiz, Highly Customizable, Quick Revision Tips ... $50 and worth it. • CERTIFICATION GURU - http://www.certificationguru.com/javacertification.htm -Information, tutorials, links to resources. • Expensive courses at Sun
Topics on Test - See Certification Guru, Table of Contents in Book • Architecture - what is it? Know their terms! • Development Life-Cycle • UML • Design Patterns - 23 • Security • EJB - life cycle • MVC • Legacy Connectivity • Internationalization • Protocols - HTTP, JRMP, RMII-IIOP • J2EE Overview • Messaging - Not covered in book
Sample of Technologies for SCEA Why the failure rate is > 40% for Exam 1 !!!
Service Level Requirements Performance Scalability Reliability Availability Extensibility Manageability Security Functional Requirements - I.E. Components Use 1GHz CPU Use N-Tier layout Use Java 2 Security Components Use Asynchronous Messaging Keep account for each user Know your Requirements
J2EE Overview - Study to understand how APIs interact in J2EE • Application Server can host 1:N J2EE Containers. Containers are Environment for EJB and Web Applications. • J2EE APIs • J2SE - have a working knowledge, especially Applets, Internationalization, Security, Encryption • JDBC - API for connecting to Specific Databases, abstractly • Java IDL - Incorporates CORBA into Java. Alternative to RMI. Java-CORBA-Java • RMI-IIOP - Allows Java-CORBA-Any language interaction
J2EE API’s (continued) • EJB - “A component architecture for the development and deployment of component-based distributed business applications.” (Cade) • Servlets - Java’s replacement for CGI • JSP - Better than servlets for mixing HTML with Java Code • Java Message Server (JMS) - An API (abstraction) of underlying MOM. Enables P2P and Publish Subscribe. • JNDI - know that it is used to hook up client apps with Home Interfaces for EJB • Java Transaction API (JTA) - know how kinds of EJBs and J2EE containers use it. Not easy. • Java Mail • JavaBeans Activation Framework
J2EE Application Modelhttp://java.sun.com/j2ee/sdk_1.2.1/techdocs/guides/j2ee-overview/Introduction.fm.html#7916 Two Tier N-Tier (3 Tiers) “Originally, the two-tier, client-server application model promised improved scalability and functionality. Unfortunately, the complexity of delivering EIS [Enterprise Information Systems] services directly to every user and the administrative problems caused by installing and maintaining business logic on every user machine have proved to be major limitations. “
Typical J2EE Purchasing Applicationhttp://java.sun.com/j2ee/sdk_1.2.1/techdocs/guides/j2ee-overview/Example.fm.html
J2EE Purchasing App - Functional Componentshttp://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/sample-app/sample-app1.3.1a3.html
J2EE Technologies Used Abovehttp://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/sample-app/sample-app1.3.1a3.html
Use of Remote and Home Interfaces into EJB Container by Clients- Typical Clients: JSP, Servlets, Applets, Session EJBs using Entity EJBs
EJB’s Accessed through Remote, Local, and Home Interfaces - Client never touches EJB directly!
Notice Remote at Top of Hierarchy • Implies Stubs and Skeletons - Proxy Pattern • Client thinks it is working with CustomerHome and Customer Object, but really is working with CustomerHome Stub and Customer EJBObject Stub. • The Home and EJBObject are generated by container and are container’s way of managing EJBs by adding: • Transactions • Persistence • Security
Client Uses Home Interface to Create, Find, Remove EJBObjects Context initial = new InitialContext(); //JNDI Context e.g. LDAP CustomerHome home = // ... obtain a reference that // implements the home interface. Object objref = initial.lookup("java:comp/env/ejb/SimpleCustomer"); CustomerHome customerHome = (CustomerHome)PortableRemoteObject.narrow(objref, CustomerHome.class); //got the stub // Use the home interface to create a // new instance of the Customer bean. Customer customer = home.create(customerID); //stub calls create
Client has to import packages for JNDI and EJB import java.util.*; import javax.naming.Context; //JNDI import javax.naming.InitialContext; // JNDI import javax.rmi.PortableRemoteObject; //JNDI to EJB
EJBObject Interface from Stub import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface Customer extends EJBObject { public Name getName() throws RemoteException; public void setName(Name name) throws RemoteException; public Address getAddress() throws RemoteException; public void setAddress(Address address) throws RemoteException; } // using a business method on the Customer. customer.setName(someName);
EJB is Highly Managed RMI for Remote Home Objects. Local Home in EJB 2.0
Client can call the methods.Container routes through EJBObject Skeleton to Customer EJB import javax.ejb.EntityBean; public class CustomerBean implements EntityBean { //Map to database attributes Address myAddress; Name myName; CreditCard myCreditCard; public Name getName() { return myName; } public void setName(Name name) { myName = name; } public Address getAddress() { return myAddress; } public void setAddress(Address address) { myAddress = address; } ... EJB LIFECYCLE METHODS GO HERE }
EJB LIFECYCLE Methods for Entity Beans(Same methods but different consequences for Session EJBs) Method Summary void ejbActivate() A container invokes this method when the instance is taken out of the POOL of available instances to become associated with a specific EJB object. INSTANCE VARIABLES NOT INITIALIZED. void ejbLoad() A container invokes this method to instruct the instance to synchronize its state by loading it state from the underlying database. - AFTER GETTING FROM POOL LOAD ATTRIBUTES FROM DB void ejbPassivate() A container invokes this method on an instance before the instance becomes disassociated with a specific EJB object. - RETURNS IT TO THE POOL void ejbRemove() A container invokes this method before it removes the EJB object that is currently associated with the instance. - DELETES THE ROW(S) FROM THE DATABASE void ejbStore() A container invokes this method to instruct the instance to synchronize its state by storing it to the underlying database. - UPDATES THE DATABASE void setEntityContext(EntityContext ctx) Set the associated entity context. - SECURITY & TRANS void unsetEntityContext() Unset the associated entity context.
Session Beans For Workflow. Not meant for representing 1 Row in DB • Use Statefull Session EJBs to maintain Client State. E.G. Shopping Cart. Instance attributes persist on behalf of Client. Are serialized out to disk when passivated. • Use Stateless Session EJBs to perform “in-and-out” operations. Instance attributes are not persisted. Exist only for management of bean. E.G. Good for listing a Catalog.
With EJB 2.1 Message Driven Beans came in. These use JMS+MOM
Putting it Together 1. When container starts up it pools uninitialized Entity Beans for User + Account 2. Pools also occur for Stateless Session Beans which list the Catalog and Order Message Beans which use JMS to Queue up orders 3. When a Client Connects to the Top HTML page JSP’s are used to produce HTML pages for WORKFLOW OPERATIONS: Signon, Customer Account Access, & Catalog Listing 4. As customer interacts with HTML Pages produced by JSP - a Stateful Session Bean builds up an Order in a Shopping Cart 5. When Customer Checks Out , Shopping Cart Stateful Session Bean Uses P2P to put an Order Message on a Queue to be retrieved by waiting Queue Listener (the order taking system).
Unfortunately EJBs and J2EE Web Interactions are NOT all you have to know to pass this test!!!! Readers are directed to download the free SCEA Sample test from Whizlabs at: http://www.whizlabs.com/scea/scea.html