View
215
Download
2
Tags:
Embed Size (px)
Citation preview
An architecture for webb applications, J2EE
A quick look at Java 2 Enterprise Edition
J2EE Overview
A framework for Enterprise Applications Scalable Distributed Transactional Losely coupled Multi-tired Portable Secure Access to different systems
J2EE Overview
Built on top of Java 2 Standard Edition, J2SE Access to all of J2SE-APIs 100% Java
J2EE Overview
J2EE is a specifaction, not a produkt No vendor lock in
Several implementations BEA (Weblogic) IBM (Websphere) Oracle (Oracle9iAS and OC4J) JBoss Ironflare (Orion) Jakarta Tomcat
J2EE Overview – Content of J2EE Enterprise Java Beans, EJB Java Servlets Java Server Pages, JSP Java Messaging Service, JMS Java Database Connectivity, JDBC JavaMail Java Transaction API, JTA Connector Architecture
J2EE Overview – Content of J2EE RMI/IIOP Java Naming and Directory Interface, JNDI Webservices, in version 1.4
J2EE Overview – Benefits of J2EE Separates business logic from system code Separates busines logic from presentation Deploy-time configuration Scalable from start Distributed from start Component model on the server = easier
team work Declarative security and transactions
Containers and Components
Containers and Components
A J2EE Application server provides containers for all components of J2EE
There is one container per J2EE component The Application server runs the entire J2EE
solution
Containers and Components
The Application server handles all system level programming Security
Authorization – Is the user allowed to do this operation? Authentication – Is the user who he says? Validate credentials
Transactions Threading Object life time management Caching Object persistence Database Connection pooling
Containers and Components
Several clients – one system
Enterprise Java Beans
The core of J2EE Server side components Three base types of EJB
Session Beans Entity Beans Message Driven Beans
Transactional components Bean managed or Container managed
Deploy time configuration of security and transactions
Enterprise Java Beans - Architecture
Enterprise Java Beans – Session Beans Stateless and statefull beans Handles busines logic Acts as frontend for Entity beans
Enterprise Java Beans – Entity Beans Handels data Mapped on Database tables Container managed (CMP) and Bean
Managed Persistence (BMP) CMP releaves the developer from writing SQL
code Minimizes the risk for database lock-in.
EJB-QL – a query language for EJBs
Enterprise Java Beans – Message Driven Beans Activated by a JMS queue Asynchronous execution No need for the client to wait for an answer
Java Messaging Service, JMS
A messaging API for Java A Sender sends a message to a JMS Queue A Listener listens for messages on a Queue Guarantied delivery Asynchronous processing
After the Sender has sent its message there is no need to wait for the Listener to get it
Great for scalability Good for operations that doesn’t have to occur at once, for
example logging
JavaMail
A high level API for sending and receiving mail No need to know everything about the underlying
protocolls Support for IMAP, POP and SMTP
Java Transaction API, JTA
The easy way to handle complex transactions You can have transactions between different
components A mailserver, a database and a JMS system can
participate in the same transaction, given that they support it
Based on XA The mechanism behind the transactions of
EJBs
Java Connector Architecture, JCA Hook into existing legacy systems You can write a connector for basically
anything Anything with a Connector can be plugged
into the J2EE Server Simplifies system integration
RMI/IIOP
Integration with other systems through Corba Call your J2EE Components from Visual
Basic, Delphi, C++ and C Java might not be the best or only choice for your
clients
Java Naming and Directory Interface, JNDI Very fundamental functionality in J2EE The way that distributed objects are located Any kind of objects can be stored in JNDI All objects are stored in a hierarchical way The way the Home interface for EJBs are
located
Java Naming and Directory Interface, JNDI Used to store connection pools for JDBC Context.lookup(“java:comp/env/jdbc/Pool1”)
Private context from within components Defined with a <resource-ref> in deployment
descriptors Context.lookup(“Pool1”)
Global context from the outside
Web Development
The web is static by nature Based on HTTP A stateless network environment The stateless nature is what have made the
Internet into what it is today
HTTP
A very simple and readable protocol Text based
Several methods GET
The basic request to get a page POST
Used from forms in the web pages DELETE HEAD
HTTP
A typical browser request for www.dn.se/index.html Connect to www.dn.se GET /index.html HTTP/1.0 Disconnect
CGI
Common Gateway Interface An early interface for making the web more
dynamic Executes programs on the server Cumbersome programming and bad resource
management Basically each request starts a new process on the
server
Java Servlets
Extensions of the web server One of the front ends to the J2EE system Generates HTML with print statements Good for implementing control logic Support for sessions Multithreaded by nature Not so good for generation nice layout
Java Server Pages (JSP)
HTML with embedded Java code Good for presentation Compiled to a Servlet at runtime Easy for web designers to use Support for Java Beans and Custom tags
Servlets and JSP
Servlets and JSPs are often used together The Servlet handles the request The Servlets calls Java Beans or EJBs to
handle the business logic The Servlest forwards to a JSP The JSP handles the Presentation Model View Controller, MVS
Other technologies for the web Microsoft Active Server Pages
Embed VB code in your HTML Similar to JSPs
PHP Quite like ASP, but open source and available on
all platform. Used at many sites today Coldfusion Webobjects (Mac) Zope
Next time
The next session will be all about Servlet programming