Enterprise Applications - PowerPoint PPT Presentation

1 / 39
About This Presentation
Title:

Enterprise Applications

Description:

They all have well thought out solutions to the '-ilities' of ... Computer Desktop Encyclopedia. Recoverability. Single point of failure. Clustered servers ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 40
Provided by: daniela156
Category:

less

Transcript and Presenter's Notes

Title: Enterprise Applications


1
Enterprise Applications Java/J2EE Technologies
Dr. Douglas C. Schmidt d.schmidt_at_vanderbilt.ed
u http//www.dre.vanderbilt.edu/schmidt/
Professor of EECS Vanderbilt University
Nashville, Tennessee
2
Agenda
  • What makes an application Enterprise?
  • Java/J2EE to develop Enterprise Applications
  • EJB Specification
  • JBoss Application Server AOP
  • What is an Architects role?

3
Enterprise Architectures
  • They all have well thought out solutions to the
    -ilities of software development.

4
Enterprise -ilities
  • Availability
  • Dependability
  • Distributability
  • Maintainability
  • Reusability
  • Reliability
  • Scalability
  • Recoverability
  • Etc

5
Availability
  • The accessibility of a system resource in a
    timely manner for example, the measurement of a
    system's uptime.

6
Dependability
  • ".. the trustworthiness of a computing system
    which allows reliance to be justifiably placed on
    the service it delivers .."
  • IFIP WG10.4 on DEPENDABLE COMPUTING AND FAULT
    TOLERANCE

7
Distributability
  • Involve Multiple Environments/Servers
  • Can span across geographical locations
  • Hand held devices to Multiprocessor Servers

8
Maintainability
  • You are developing tomorrows legacy code
  • To keep up or carry on continue.
  • To keep in a condition of good repair or
    efficiency.
  • What makes a system maintainable?

9
Reusability
  • To use again, especially after salvaging or
    special treatment or processing.
  • Reduces duplicate code / Copy Paste
  • Easier to maintain
  • Faster to develop

10
Reliability
  • The trustworthiness to do what the system is
    expected or designed to do.
  • Available 24-7-365
  • Performs within acceptable thresholds

11
Scalability
  • Refers to how much a system can be expanded. The
    term by itself implies a positive capability. For
    example, "the device is known for its
    scalability" means that it can be made to serve a
    larger number of users without breaking down or
    requiring major changes in procedure.
  • Computer Desktop Encyclopedia

12
Recoverability
  • Single point of failure
  • Clustered servers
  • Emergency backup plans
  • Disaster backup plans

13
Questions / Comments?
14
Java/J2EE to develop Enterprise Applications
  • EE Enterprise Edition
  • Specifications and Standards
  • Enabled Vendors to build Application Servers
  • Focus on Business Logic, not on infrastructure
  • Removed some complexities, introduced others

15
Standards Specifications
Some but not all
  • EJB
  • JSP
  • JAXP
  • JMS
  • JNDI
  • JMX
  • Servlets
  • JDBC
  • JTA
  • JCA
  • RMI
  • JNI

16
J2EE Architecture
17
Containers
  • Containers provide the runtime support for J2EE
    application components. Containers provide a
    federated view of the underlying J2EE APIs to the
    application components. J2EE application
    components never interact directly with other
    J2EE application components. They use the
    protocols and methods of the container for
    interacting with each other and with platform
    services. Interposing a container between the
    application components and the J2EE services
    allows the container to transparently inject the
    services defined by the components deployment
    descriptors, such as declarative transaction
    management, security checks, resource pooling,
    and state management.
  • -J2EE Specification v1.4

18
EJB Specification
  • Session, Entity, and Message Driven Beans
  • Instance Lifecycle
  • Declarative Transaction Management
  • Security
  • Threading/Locking
  • Remote/Local Invocation

19
Session Beans
  • Executes on behalf of a single client.
  • Can be transaction-aware.
  • Updates shared data in an underlying database.
  • Does not represent directly shared data in the
    database, although it may access and update such
    data.
  • Is relatively short-lived.
  • Is removed when the EJB container crashes. The
    client has to re-establish a new session object
    to continue computation.
  • Can be either Stateful or Stateless.

20
When to use Session Beans
  • Session Façade pattern
  • Front end a web service
  • Manage transactions, threading, pooling, etc.
  • Expose a remote interface

21
Entity Beans
  • Provides an object view of data in the database.
  • Allows shared access from multiple users.
  • Can be long-lived (lives as long as the data in
    the database).
  • The entity, its primary key, and its remote
    reference survive the crash of the EJB container.

22
When to use Entity Beans
  • Services that have a small limited object model.
  • Object model needs to perform CrUD operations.
  • No complex joins are needed to retrieve data.
  • No need to walk complex object graphs.

23
Message Driven Beans
  • Executes upon receipt of a single client message
    (JMS).
  • Is asynchronously invoked.
  • Can be transaction-aware.
  • May update shared data in an underlying database.
  • Does not represent directly shared data in the
    database, although it may access and update such
    data.
  • Is relatively short-lived.
  • Is stateless.
  • Is removed when the EJB container crashes. The
    container has to re-establish a new
    message-driven object to continue computation.

24
When to use MDB
  • Distributed systems
  • JMS
  • Asynchronous calls
  • Manage Transactions, threading, pooling, etc.

25
Bean Lifecycle
26
Declarative Transactions
  • Declare the transaction level through
    configuration of a bean.
  • Container manages these transactions for you.
  • Valid transaction Values
  • Not Supported
  • Required
  • Supports
  • Requires New
  • Mandatory
  • Never

27
Application Servers
  • Implement the specification for EJB containers.
  • Provide environment which allows developers to
    focus on business logic.

28
JBoss Application Server
  • J2EE application server open source
  • www.jboss.org
  • EJB Container and more
  • Implements Specification through Interceptors
    AOP-like

29
AOP Aspect Oriented Programming
  • Aspect-Oriented Programming (AOP) complements
    OO programming by allowing the developer to
    dynamically modify the static OO model to create
    a system that can grow to meet new requirements.
    Just as objects in the real world can change
    their states during their lifecycles, an
    application can adopt new characteristics as it
    develops.
  • -Graham ORegan

30
JBoss EJB Interceptor Stack
31
Implementing Declarative Transactions using
Interceptors
  • Not Supported
  • Required
  • Supports
  • Requires New
  • Mandatory
  • Never

32
Not Supported
33
Required
34
Supports
35
Requires New
36
Mandatory
37
Never
38
Custom Interceptors
  • AOP Aspect Oriented Programming
  • Logging
  • Timing
  • Metrics
  • Any business logic that should be applied widely

39
Developers Focus on Business Logic
Write a Comment
User Comments (0)
About PowerShow.com