Enterprise applications java j2ee technologies
This presentation is the property of its rightful owner.
Sponsored Links
1 / 39

Enterprise Applications & Java/J2EE Technologies PowerPoint PPT Presentation


  • 180 Views
  • Uploaded on
  • Presentation posted in: General

Enterprise Applications & Java/J2EE Technologies. Dr. Douglas C. Schmidt [email protected] http://www.dre.vanderbilt.edu/~schmidt/. Professor of EECS Vanderbilt University Nashville, Tennessee. Agenda. What makes an application “Enterprise”?

Download Presentation

Enterprise Applications & Java/J2EE Technologies

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Enterprise applications java j2ee technologies

Enterprise Applications & Java/J2EE Technologies

Dr. Douglas C. Schmidt

[email protected]

http://www.dre.vanderbilt.edu/~schmidt/

Professor of EECS Vanderbilt University Nashville, Tennessee


Agenda

Agenda

  • What makes an application “Enterprise”?

  • Java/J2EE to develop Enterprise Applications

  • EJB Specification

  • JBoss Application Server + AOP

  • What is an Architect’s role?


Enterprise architectures

Enterprise Architectures

  • They all have well thought out solutions to the “-ilities” of software development.


Enterprise ilities

Enterprise = “-ilities”

  • Availability

  • Dependability

  • Distributability

  • Maintainability

  • Reusability

  • Reliability

  • Scalability

  • Recoverability

  • Etc…


Availability

Availability

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


Dependability

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


Distributability

Distributability

  • Involve Multiple Environments/Servers

  • Can span across geographical locations

  • Hand held devices to Multiprocessor Servers


Maintainability

Maintainability

  • “You are developing tomorrow’s legacy code”

  • To keep up or carry on; continue.

  • To keep in a condition of good repair or efficiency.

    • What makes a system maintainable?


Reusability

Reusability

  • To use again, especially after salvaging or special treatment or processing.

  • Reduces duplicate code / “Copy & Paste”

  • Easier to maintain

  • Faster to develop


Reliability

Reliability

  • The trustworthiness to do what the system is expected or designed to do.

  • Available 24-7-365

  • Performs within acceptable thresholds


Scalability

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


Recoverability

Recoverability

  • Single point of failure

  • Clustered servers

  • Emergency backup plans

  • Disaster backup plans


Questions comments

Questions / Comments?


Java j2ee to develop enterprise applications

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


Standards specifications

EJB

JSP

JAXP

JMS

JNDI

JMX

Servlets

JDBC

JTA

JCA

RMI

JNI

Standards & Specifications

Some but not all…


J2ee architecture

J2EE Architecture


Containers

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


Ejb specification

EJB Specification

  • Session, Entity, and Message Driven Beans

  • Instance Lifecycle

  • Declarative Transaction Management

  • Security

  • Threading/Locking

  • Remote/Local Invocation


Session beans

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.


When to use session beans

When to use Session Beans

  • Session Façade pattern

  • Front end a web service

  • Manage transactions, threading, pooling, etc.

  • Expose a remote interface


Entity beans

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.


When to use entity beans

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.


Message driven beans

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.


When to use mdb

When to use MDB

  • Distributed systems

  • JMS

  • Asynchronous calls

  • Manage Transactions, threading, pooling, etc.


Bean lifecycle

Bean Lifecycle


Declarative transactions

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


Application servers

Application Servers

  • Implement the specification for EJB containers.

  • Provide environment which allows developers to focus on business logic.


Jboss application server

JBoss Application Server

  • J2EE application server – open source

  • www.jboss.org

  • EJB Container and more

  • Implements Specification through “Interceptors” – AOP-like


Aop aspect oriented programming

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 O’Regan


Jboss ejb interceptor stack

JBoss EJB Interceptor Stack


Implementing declarative transactions using interceptors

Implementing Declarative Transactions using Interceptors

  • Not Supported

  • Required

  • Supports

  • Requires New

  • Mandatory

  • Never


Not supported

Not Supported


Required

Required


Supports

Supports


Requires new

Requires New


Mandatory

Mandatory


Never

Never


Custom interceptors

Custom Interceptors

  • AOP – Aspect Oriented Programming

  • Logging

  • Timing

  • Metrics

  • Any business logic that should be applied widely


Developers focus on business logic

Developers Focus on Business Logic


  • Login