Application Design Concepts and Principles
Identify the effects of an object-oriented approach to system design including the effect of encapsulation, inheritance, and use of interfaces.
Identify how the Separation of Concerns principle applies to the component model of a Java EE application; including client, the web and business component containers, and the integration and resource layers.
Identify the correct interpretation of Separation of Concerns as it applies to the Java EE service layers, including component APIs, run-time containers, the operating system, and hardware resources.
Identify non-functional and quality-of-service requirements that influence application design, including trade-offs in performance, availability, and serviceability.
Identify the appropriate strategy for deploying client applications to desktop and mobile platforms, the principles for designing a user interface and the benefits of applying client-tier patterns.
Identify best practices for exception handling, logging, and business tier patterns.
Identify design patterns that address specific challenges in the web tier, including authentication, authorization, and scaling and clustering to meet demand.
Identify Java EE technologies, including JMS, JCA and Web Services, and design patterns that address specific challenges in enterprise integration.
Identify the challenges in integrating enterprise resources, the Java EE technologies that address them (including JPA and JDBC), and the communication protocols that support tier-to-tier communication (including RMI, IIOP, and CORBA).
Integration and Messaging
Identify the APIs available for a Java EE technology-based system to communicating with external resources, including JPA, JDBC, RMI, Web Services, JMS, and JCA. Outline the benefits and drawbacks of each approach.
Describe the technologies used to integrate business components with Web Services, including XML over HTTP, JSON, SOAP and REST.
Identify and detail the technologies used to integrate business components with external resources, including JMS and JCA.
Identify how a Service Oriented Architecture (SOA) facilitates system integration and best practices.
Business Tier Technologies
Identify the correct EJB technology to apply for a given scenario, including entity classes, session beans, message-driven beans, timers, interceptors, and POJOs.
Identify benefits and drawbacks of different persistence technologies such as BMP, CMP, and JPA, including ease of development, performance, scalability, extensibility, and security.
Identify the benefits and drawbacks of implementing Web Services in the EJB component container.
Select the appropriate use of JPA and JPQL in a given scenario.
Web Tier Technologies
Identify the benefits and drawbacks of using URL rewriting and cookies to manage HTTP session state.
Identify appropriate uses for JSP and Servlet technology, and JavaServer Faces in a given Java EE application.
Identify the benefits of using an EJB container with a web container instead of a web container alone.
Identify the differences between client pull and server push architectures.
Identify the benefits and drawbacks of using a browser to access asynchronous, lightweight processes on the server.
Demonstrate knowledge of Java EE design patterns including: Service Starter, Singleton, Bean Locator, Resource Binder, Dependency Inj ection, Payload Extractor, Context Holder, and Thread Tracker.
Select an appropriate pattern for a given application challenge from the following: Facade, Strategy, Observer, Composite, and Abstract Factory.
Identify a design pattern, using a description of its features, from the following: Facade, Strategy, Observer, Composite, and Abstract Factory.
Identify the use of the law of leaky abstractions or a specific anti-pattern in a given scenario.
Identify elements of the security model in the Java SE environment for remote clients, including Web Start, applets and the role of the SecurityManager class.
Select appropriate locations to implement Java EE security technologies or features in a UML component and deployment diagram.
Classify security threats to an enterprise application select measures an architect can propose to mitigate them.
Identify techniques associated with declarative and programmatic security, including the use of annotations, deployment descriptors, and JAAS technology.
Identify the security technologies that apply to an application’s code, messaging and transport layers