64
www.quontrasolutions.c om [email protected] om info@quontrasolutions .com roduction to J2EE Patterns Online Training C

Introduction to j2ee patterns online training class

Embed Size (px)

DESCRIPTION

Quontra Solutions is leading provider of IT career advice, Training and consulting services for IT Professional and corporates across USA. We train individuals or Corporate via online or class Room training in all IT tools and Technologies. We always strive to bring out innovative methods along with the traditional teaching techniques which enhance the overall experience of the students and teachers to extract the return on Investments, high efficiency and scalability. The company’s architecture is based on the insights from the marketplace, business analytics and strategies keeping intact the fundamental principles in mind, helps us to compete and win in today’s environment without changing any quality in training. The support, service and training provided by Quontra solutions for various customers assures a “stay up to date” easy transition from previous to current in terms of technology. Our advertisers and promoters are none other than the clients you have been associated with us

Citation preview

Page 1: Introduction to j2ee patterns online training class

www.quontrasolutions.com [email protected]

[email protected]

Introduction to J2EE Patterns Online Training Classes

Page 2: Introduction to j2ee patterns online training class

Design Patterns• A pattern is a proven solution to a problem in

a context.

• Christopher Alexander says each pattern is a three-part rule which expresses a relation between a certain context, a problem, and a solution.

• Design patterns represent a solutions to problems that arise when developing software within a particular context.

www.quontrasolutions.com [email protected]

Page 3: Introduction to j2ee patterns online training class

Categorizing Pattern

Patterns, then, represent expert solutions to

recurring problems in a context and thus have

been captured at many levels of abstraction

and in numerous domains. Numerous

categories are:

• Design • Architectural

www.quontrasolutions.com [email protected]

Page 4: Introduction to j2ee patterns online training class

MVC Design Pattern

• Name (essence of the pattern)

– Model View Controller MVC

• Context (where does this problem occur)

– MVC is an architectural pattern that is used when developing interactive application such as a shopping cart on the Internet.

• Problem (definition of the reoccurring difficulty)

– User interfaces change often, especially on the internet where look-and-feel is a competitive issue. Also, the same information is presented in different ways. The core business logic and data is

stable.

www.quontrasolutions.com [email protected]

[email protected]

Page 5: Introduction to j2ee patterns online training class

MVC Pattern

• Solution (how do you solve the problem)– Use the software engineering principle of “separation of concerns” to divide

the application into three areas:

• Model encapsulates the core data and functionality• View encapsulates the presentation of the data there

can be many views of the common data• Controller accepts input from the user and makes

request from the model for the data to produce a new view.

www.quontrasolutions.com [email protected]

[email protected]

Page 6: Introduction to j2ee patterns online training class

MVC Architecture

• The Model represents the structure of the data in the application, as well as application-specific operations on those data.

• A View (of which there may be many) presents data in some form to a user, in the context of some application function.

www.quontrasolutions.com [email protected]

Page 7: Introduction to j2ee patterns online training class

Intercepting Filter• Context: The presentation-tier request

handling mechanism receives many different types of requests, which require varied types of processing before forwarding to handler.

• Problem: Preprocessing and post-processing of a client Web request and response are required.

• Solution: Create pluggable filters to process common services in a standard manner without requiring changes to core request processing code.

www.quontrasolutions.com [email protected]

[email protected]

Page 8: Introduction to j2ee patterns online training class

Intercepting Filter• Used for common services such as security,

logging, debugging etc.

• These filters are components that are independent of the main application code.

• Filters allow on the fly transformations of payload and header of both the request into a resource and the response from a resource.

www.quontrasolutions.com [email protected]

Page 9: Introduction to j2ee patterns online training class

Writing a Filter• Implement the javax.servlet.Filter interface

• Container will call the doFilter() method.

• The doFilter method will modify the request or response and then call the next filter in the filter chain.

• The FilterManager manages filter processing. It creates the FilterChain with the appropriate filters, in the correct order, and initiates processing.

www.quontrasolutions.com [email protected]

Page 10: Introduction to j2ee patterns online training class

Filter Configuration• Configuring filter in the deployment descriptor

( web.xml )• <filter> • <filter-name>Image Filter</filter-name> • <filter-class>com.acme.ImageFilter</filter-

class> • </filter> • <filter-mapping> • <filter-name>Image Filter</filter-name> • <url-pattern>/*</url-pattern> • </filter-mapping>

www.quontrasolutions.com [email protected]

Page 11: Introduction to j2ee patterns online training class

Interceptor Filter Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 12: Introduction to j2ee patterns online training class

Filter: Sequence Diagramwww.quontrasolutions.com [email protected]

[email protected]

Page 13: Introduction to j2ee patterns online training class

Front Controller• Context: The presentation-tier request

handling mechanism must control and coordinate processing of each user across multiple requests, in either a centralized or decentralized manner.

• Problem: The system requires a centralized access point for presentation-tier request handling to support the integration of system services, content retrieval, view management, and navigation.

www.quontrasolutions.com [email protected]

Page 14: Introduction to j2ee patterns online training class

Front Controller• Solution: Use a controller as the initial point

of contact for handling a request.

• The controller manages the handling of the request, including invoking security services such as authentication and authorization, delegating business processing, managing the choice of an appropriate view, handling errors, and managing the selection of content creation strategies.

www.quontrasolutions.com [email protected]

[email protected]

Page 15: Introduction to j2ee patterns online training class

Front Controller• The controller provides a centralized entry

point that controls and manages Web request handling.

• Helps to reduce the code in form of scriptlets in JSP page and promotes code reuse across requests.

• The Controller coordinates with a dispatcher component for view management and navigation.

www.quontrasolutions.com [email protected]

Page 16: Introduction to j2ee patterns online training class

Front Controller Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 17: Introduction to j2ee patterns online training class

Controller: Sequence Diagramwww.quontrasolutions.com [email protected]

[email protected]

Page 18: Introduction to j2ee patterns online training class

View Helper

• Context: The system creates presentation content, which requires processing of dynamic business data.

• Problem: Presentation tier changes occur often and are difficult to develop and maintain when business data access logic and presentation formatting logic are interwoven.

• This makes the system less flexible, less reusable, and generally less resilient to change and reduces modularity.

www.quontrasolutions.co.uk [email protected]

Page 19: Introduction to j2ee patterns online training class

View Helper• Solution: A view contains formatting code,

delegating its processing responsibilities to its helper classes, implemented as JavaBeans or custom tags.

• Helpers also store the view's intermediate data model and serve as business data adapters.

• Encapsulating business logic in a helper instead of a view makes our application more modular and facilitates component reuse.

www.quontrasolutions.com [email protected]

Page 20: Introduction to j2ee patterns online training class

View Helper Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 21: Introduction to j2ee patterns online training class

View Helper: Sequence Diagramwww.quontrasolutions.com [email protected]

[email protected]

Page 22: Introduction to j2ee patterns online training class

Dispatcher View• Context: System controls flow of execution and

access to presentation processing, which is responsible for generating dynamic content.

• Problem: There is no centralized component for managing access control, content retrieval or view management, and there is duplicate control code scattered throughout various views.

Page 23: Introduction to j2ee patterns online training class

Dispatcher View• Solution: Combine a controller and dispatcher

with views and helpers to handle client requests and prepare a dynamic presentation as the response.

• Controllers do not delegate content retrieval to helpers, because these activities are deferred to the time of view processing.

• A dispatcher is responsible for view management and navigation and can be encapsulated either within a controller, a view.

www.quontrasolutions.com [email protected]

Page 24: Introduction to j2ee patterns online training class

Dispatcher View• Dispatcher pattern and the Service to Worker

pattern describe a similar structure.

• Unlike the Service to Worker pattern, the Dispatcher View pattern suggests deferring content retrieval to the time of view processing.

• In the Dispatcher View pattern, the dispatcher typically plays a limited to moderate role in view management.

www.quontrasolutions.com [email protected]

Page 25: Introduction to j2ee patterns online training class

Dispatcher View• A limited role for the dispatcher occurs when

no outside resources are utilized in order to choose the view. For example:

• http://some.server.com/servlet/Controller? next=login.jsp

Page 26: Introduction to j2ee patterns online training class

Dispatcher View Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 27: Introduction to j2ee patterns online training class

Dispatcher View: Sequence Diagram

www.quontrasolutions.com [email protected]

[email protected]

Page 28: Introduction to j2ee patterns online training class

Service to Worker

• Context: The system controls flow of execution and access to business data, from which it creates presentation content.

• Problem: There is no centralized component for managing access control, content retrieval, or view management, and there is duplicate control code scattered throughout various views.

www.quontrasolutions.com [email protected]

[email protected]

Page 29: Introduction to j2ee patterns online training class

Service to Worker

• Solution: Combine a controller and dispatcher with views and helpers to handle client requests and prepare a dynamic presentation as the response.

• Controllers delegate content retrieval to helpers, which manage the population of the intermediate model for the view.

www.quontrasolutions.com [email protected]

Page 30: Introduction to j2ee patterns online training class

Service to Worker

• In the Service to Worker pattern, the dispatcher typically plays a moderate to large role in view management.

• In Service to Worker pattern, the dispatcher can be more sophisticated and may invoke a business service to determine the appropriate view to display.

• The shared structure of Service to Worker and Dispatcher View consists of a controller working with a dispatcher, views, and helpers.

www.quontrasolutions.com [email protected]

Page 31: Introduction to j2ee patterns online training class

Service to Worker Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 32: Introduction to j2ee patterns online training class

Service to Worker: Sequence Diagram

www.quontrasolutions.com [email protected]

[email protected]

Page 33: Introduction to j2ee patterns online training class

Business Delegate• Context: A multi-tiered, distributed system requires remote

method invocations to send and receive data across tiers. Clients are exposed to the complexity of dealing with distributed components.

• Problem: Presentation-tier components interact directly with business services, exposing the underlying implementation details of the business service API to the presentation tier.

• The presentation-tier components are vulnerable to changes in implementation of the business services.

• There is a detrimental impact on network performance because presentation-tier components using the business service API make too many invocations over the network, with no client-side caching mechanism or aggregating service.

www.quontrasolutions.com [email protected]

Page 34: Introduction to j2ee patterns online training class

Business Delegate• Solution: Use a Business Delegate to reduce

coupling between presentation-tier clients and business services.

• The Business Delegate hides the underlying implementation details of the business service, such as lookup and access details of the EJB architecture.

• Business Delegate reduces the coupling between presentation-tier clients and the system's business services, and other tiers.

www.quontrasolutions.com [email protected]

Page 35: Introduction to j2ee patterns online training class

Business Delegate Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 36: Introduction to j2ee patterns online training class

Business Delegate: Sequence Diagramwww.quontrasolutions.com [email protected]

[email protected]

Page 37: Introduction to j2ee patterns online training class

Delegate: Sequence Diagram with IDwww.quontrasolutions.com [email protected]

[email protected]

Page 38: Introduction to j2ee patterns online training class

Session Facade• Context: Enterprise beans encapsulate

business logic and business data and expose their interfaces, and thus the complexity of the distributed services, to the client tier.

• Problem:

• Tight coupling, which leads to direct dependence between clients and business objects;

www.quontrasolutions.com [email protected]

[email protected]

Page 39: Introduction to j2ee patterns online training class

Session Facade: The Problem• The client must represent and implement the

complex interactions regarding business object lookups and creations.

• The client grows larger and more complex to fulfill increasing requirements.

• The client becomes very susceptible to changes in the business object layer;

• The client is unnecessarily exposed to the underlying complexity of the system.

www.quontrasolutions.com [email protected]

[email protected]

Page 40: Introduction to j2ee patterns online training class

Session Facade• Solution: Use a session bean as a facade to

encapsulate the complexity of interactions between the business objects participating in a workflow.

• The Session Facade manages the business objects, and provides a uniform coarse-grained service access layer to clients.

www.quontrasolutions.com [email protected]

[email protected]

Page 41: Introduction to j2ee patterns online training class

Session Facade• The session bean (representing the Session

Facade) manages the relationships between business objects.

• The session bean also manages the life cycle of these participants by creating, locating (looking up), modifying, and deleting them as required by the workflow.

www.quontrasolutions.com [email protected]

[email protected]

Page 42: Introduction to j2ee patterns online training class

Session Facade Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 43: Introduction to j2ee patterns online training class

Session Facade: Sequence Diagramwww.quontrasolutions.com [email protected]

[email protected]

Page 44: Introduction to j2ee patterns online training class

Service Locator• Context: Service lookup and creation involves

complex interfaces and network operations.

• Problem: The J2EE clients must either locate the service component or create a new component in order to interact with the service components such as EJB and JMS.

• The JNDI API enables clients to obtain an initial context object that holds the component name to object bindings and is valid for the client session.

www.quontrasolutions.com [email protected]

Page 45: Introduction to j2ee patterns online training class

Service Locator• Solution: Use a Service Locator object to

abstract all JNDI usage and to hide the complexities of initial context creation, EJB home object lookup, and EJB object re-creation.

• Multiple clients can reuse the Service Locator object to reduce code complexity, provide a single point of control, and improve performance by providing a caching facility.

www.quontrasolutions.com [email protected]

[email protected]

Page 46: Introduction to j2ee patterns online training class

Service Locator Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 47: Introduction to j2ee patterns online training class

Service Locator: Sequence Diagram

Page 48: Introduction to j2ee patterns online training class

Transfer Object Assembler• Context: The server-side business

components are implemented using session beans, entity beans, DAOs etc.

• Application clients frequently need to access data that is composed from multiple objects.

• Problem: Application clients typically require the data for the model or parts of the model to present to the user or to use for an intermediate processing step before providing some service.

www.quontrasolutions.com [email protected]

[email protected]

Page 49: Introduction to j2ee patterns online training class

Transfer Object Assembler• A tight coupling between the client and the

distributed components of the model over the network.

• Client accesses the numerous distributed components degrading the perfroamnce.

• The client must reconstruct the model after obtaining the model's parts from the distributed components.

• Changes to the model require changes to the client as client tightly coupled to the model.

www.quontrasolutions.com [email protected]

Page 50: Introduction to j2ee patterns online training class

Transfer Object Assembler• Solution: Use a Transfer Object Assembler to

build the required model or sub-model.

• The Transfer Object Assembler uses Transfer Objects to retrieve data from various business objects and other objects that define the model or part of the model.

• Transfer Object Assembler constructs a immutable composite Transfer Object that represents data from different business components for the model

www.quontrasolutions.com [email protected]

Page 51: Introduction to j2ee patterns online training class

Transfer Object Assembler Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 52: Introduction to j2ee patterns online training class

Transfer Object Assembler: Sequencewww.quontrasolutions.com [email protected]

[email protected]

Page 53: Introduction to j2ee patterns online training class

Transfer Object• Context: Application clients need to exchange

data with enterprise beans.

• Problem: Some methods exposed by the business components return data to the client.

• The client invokes a business object's get methods multiple times until it obtains all the attribute values.

• Every method call made to the business service object is potentially remote.

www.quontrasolutions.com [email protected]

Page 54: Introduction to j2ee patterns online training class

Transfer Object: Problem• In EJB application such remote invocations use

the network layer regardless of the proximity of the client to the bean, creating a network overhead.

• As the usage of the remote methods increases, application performance can significantly degrade.

• Therefore, using multiple calls to get methods that return single attribute values is inefficient for obtaining data values from an enterprise bean.

www.quontrasolutions.com [email protected]

[email protected]

Page 55: Introduction to j2ee patterns online training class

Transfer Object• Solution: Use a Transfer Object to encapsulate

the business data.

• A single method call is used to send and retrieve the Transfer Object.

• When the client requests the enterprise bean for the business data, the enterprise bean can construct the Transfer Object, populate it with its attribute values, and pass it by value to the client.

Page 56: Introduction to j2ee patterns online training class

Transfer Object Pattern

Page 57: Introduction to j2ee patterns online training class

Transfer Object: Sequence Diagram

Page 58: Introduction to j2ee patterns online training class

Updater Transfer Object: Sequencewww.quontrasolutions.com [email protected]

[email protected]

Page 59: Introduction to j2ee patterns online training class

Data Access Object• Context: Access to data varies depending on

the source of the data.

• Access to persistent storage, such as database, varies depending on type of storage and the vendor implementation.

• Problem: Persistent storage is implemented with different mechanisms, with marked differences in the APIs to access the different persistent storage mechanisms.

www.quontrasolutions.com [email protected]

[email protected]

Page 60: Introduction to j2ee patterns online training class

Data Access Object: Problem

• Applications that need to access data from a legacy or disparate system are often required to use APIs that may be proprietary, creating a direct dependency between application code and data access code.

• Including the connectivity and data access code within these components introduces a tight coupling between the components and the data source implementation making it

www.quontrasolutions.com [email protected]

[email protected]

Page 61: Introduction to j2ee patterns online training class

Data Access Object• Solution: Use a Data Access Object (DAO) to

abstract and encapsulate all access to the data source.

• The DAO manages the connection with the data source to obtain and store data.

• The DAO completely hides the data source implementation details from its clients.

• The DAO adapts to different storage schemes without affecting its clients or business components

Page 62: Introduction to j2ee patterns online training class

Data Access Object Patternwww.quontrasolutions.com [email protected]

[email protected]

Page 63: Introduction to j2ee patterns online training class

Data Access Object: Sequence Diagramwww.quontrasolutions.com [email protected]

[email protected]

Page 64: Introduction to j2ee patterns online training class

www.quontrasolutions.com

For More Details Contact us

Quontra Solutions

[email protected]

[email protected]

Visit: http://Www.quontrasolutions.com

Email: [email protected]

Call us: (404) 900 - 9988