J2EE Overview Software engineering group Computer science faculty Binus University.

Slides:



Advertisements
Similar presentations
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialistica in Informatica – Università di Trento.
Advertisements

11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
JNDI Java Naming Directory Interface JNDI is an API specified in Java that provides naming and directory functionality to applications written in Java.
Introduction to Servlets Based on: Hall, Brown, Core Servlets and JavaServer Pages.
An architecture for webb applications, J2EE
Introduction to Java 2 Enterprise Edition About myself –Neutrinos, Cancer Research, IT Applications Today’s topic: J2EE –Context –Advantages –Components.
An introduction to Java Servlet Programming
Java 2 – Enterprise Edition Kevin J. LaFata April 21, 2003 UM – St. Louis.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Introduction to Servlet & JSP
Comp2513 Java Servlet Basics Daniel L. Silver, Ph.D.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Java Server and Servlet CS616 Team 9 Kim Doyle, Susan Kroha, Arunima Palchowdhury, Wei Xu.
CS 483 Enterprise and Web Application Programming
Chapter 4 Servlets Concept of Servlets (What, Why, and How) Servlet API Third-party tools to run servlets Examples of Using Servlets HTML tag with GET.
Gayle J Yaverbaum, PhD Professor of Information Systems Penn State Harrisburg.
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Introduction to Java EE (J2EE)
Distributed Multitiered Applications The J2EE platform uses a multitiered distributed application model. Application logic is divided into components 1.
Chapter 4: Core Web Technologies
Enterprise Java Beans CS-422. Application Servers In the late 1980s and though the mid 1990s a number of corporations (Broadvision, Netscape…) marketed.
J2EE Part 2: Enterprise JavaBeans CSCI 4300 Images and code samples from jGuru EJB tutorial,
Enterprise Java Beans - (EJB)
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
Seminar: Enterprise JavaBeans. Agenda Agenda Java™ 2 Platform Java™ 2 Platform Java™ 2 Platform,Enterprise Edition(J2EE) Java™ 2 Platform,Enterprise Edition(J2EE)
Entity Java Beans Jorg Janke Open Source ERP & CRM.
Objectives Java Servlet Web Components
Enterprise JavaBeans Umer Farooq CS6704: Design Patterns & Component FrameworksFebruary 25, 2002.
Enterprise JavaBeans. Lesson 1: Introduction to Server-Side Component Software.
Self-executing Java, J2EE James Atlas July 29, 2008.
EJB Framework.  As we know, EJB is the center of the J2EE architecture that provides a sturdy framework for building enterprise applications. The major.
Comp2513 JavaBeans, EJB and J2EE Daniel L. Silver, Ph.D.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
A TUTORIAL TO USING EJBs by SHREERAM IYER 09/17/2001.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Java Servlets & Java Server Pages Lecture July 2013.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
1 Java EE Programming Enterprise JavaBeans. 2 Topics J2EE Overview Enterprise JavaBeans Overview Enterprise Entity Beans Case Study How to build them.
@2008 Huynh Ngoc Tin Chapter #2 JAVA SERVLET PRGRAMMING.
Java Servlets and Java Server Pages Norman White Stern School of Business.
Enterprise Java Overview Panos Konstantinidis Java Developer JUG Leader & Java Champion
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, Responds oriented other.
1 Introduction to Servlets. Topics Web Applications and the Java Server. HTTP protocol. Servlets 2.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
J2EE Chris Hundersmarck Maria Baron Jeff Webb.  Java 2 Platform, Micro Edition (J2ME)  Java 2 Platform, Standard Edition (J2SE)  Java 2 Platform, Enterprise.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
Java Servlets and Java Server Pages
HTTP protocol Java Servlets. HTTP protocol Web system communicates with end-user via HTTP protocol HTTP protocol methods: GET, POST, HEAD, PUT, OPTIONS,
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Enterprise Java Beans N.V.RAJASEKHAR REDDY. Definition of EJB EJBs are the components that are the set of classes and interfaces deployed within a container.
©NIIT Introducing Enterprise JavaBeans (EJB) Lesson 1A / Slide 1 of 43J2EE Server Components Objectives In this lesson, you will learn about: The features.
Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.
Alan L. Batongbacal CS 4244 / 01 Nov 2000
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
Speaker Name Speaker Title Speaker Title Oracle Corporation Olivier Le Diouris Principal Product Manager Oracle Corporation Building Servlet and JSP Applications.
©NIIT Session Beans Lesson 1B/ Slide 1 of 37J2EE Server Components Objectives In this lesson, you will learn to: Describe the characteristics of session.
J2EE Platform Overview (Application Architecture)
Introduction to Servlets
Introduction to J2EE Architecture
Understanding and Designing with EJB
Enterprise Java Beans.
Presentation transcript:

J2EE Overview Software engineering group Computer science faculty Binus University

Presentation Overview  Introduction to J2EE  Explain the major technologies within the J2EE designation  J2EE applications  J2EE servers

The Java 2 Platform  Platform introduced June, 1999  J2SE – Java 2 Standard Edition  Java for the desktop / workstation   J2ME – Java 2 Micro Edition  Java for the consumer device   J2EE - Java 2 Enterprise Edition  Java for the server 

The Java 2 Platform

J2EE Technologies  Java Servlets  JSP  EJB  JMS  JDBC  JNDI  JTA / JTS  JavaMail  JAAS  XML  …

J2EE Components

Java Servlets  Servlets are the Java platform technology of choice for extending and enhancing web servers.  Servlets provide a component-based, platform-independent method for building web-based applications, without the performance limitations of CGI programs.

Java Servlets  Servlets have access to the entire family of Java APIs, including the JDBC TM API to access enterprise databases.JDBC TM API  Servlets can also access a library of HTTP- specific calls and receive all the benefits of the mature Java language, including portability, performance, reusability, and crash protection

Anatomy of a Servlet  init() – the init() function is called when the servlet is initialized by the server. This often happens on the first doGet() or doPut() call of the servlet.  destroy() – this function is called when the servlet is being destroyed by the server, typically when the server process is being stopped.

Anatomy of a Servlet  doGet() – the doGet() function is called when the servlet is called via an HTTP GET.  doPost() – the doPost() function is called when the servlet is called via an HTTP POST.  POSTs are a good way to get input from HTML forms

Anatomy of a Servlet  HTTPServletRequest object  Information about an HTTP request  Headers  Query String  Session  Cookies  HTTPServletResponse object  Used for formatting an HTTP response  Headers  Status codes  Cookies

Sample Servlet import java.io.*; //Apache Tomcat sample code import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(" "); out.println(" "); out.println(" "); out.println(" Hello World! "); out.println(" "); out.println(" Hello World! "); out.println(" "); }

JSP – JavaServer Pages  JavaServer Pages technology uses XML-like tags and scriptlets written in the Java programming language to encapsulate the logic that generates the content for the page.  Any and all formatting (HTML or XML) tags are passed directly back to the response page.  By separating the page logic from its design and display and supporting a reusable component-based design, JSP technology makes it faster and easier than ever to build web-based applications.

Sample JSP Day of month: is Year: is Month: is Time: is Date: is Day: is Day Of Year: is Week Of Year: is era: is DST Offset: is Zone Offset: is

EJB – Enterprise Java Beans  Enterprise JavaBeans TM is the server-side component architecture for the J2EE TM platform.J2EE TM platform  EJB TM enables rapid and simplified development of distributed, transactional, secure and portable Java applications.  Current Specification: 2.0 – 4/16/2001

EJB – Enterprise Java Beans  Enterprise Java Beans are components that are deployed into containers  The container provides services  Loading / Initialization  Transactions  Persistence  Communication with EJB clients  Enterprise Naming Context (JNDI name space)

Anatomy of an EJB  Remote Interface  Methods that can be accessed by the outside world.  Extends javax.ejb.EJBObject  Remote Home Interface  Life-cycle methods (create, findByPrimaryKey)  Extends javax.ejb.EJBHome which extends java.rmi.Remote  Bean class  The class performing the actual business process  Implements an interface based on type of bean

Anatomy of an EJB  EJB 2.0 New Interfaces  New Interfaces allow bean to bean method calls within the same container  Local Interface  Similar to the remote interface, but without RMI  Extends javax.ejb.EJBLocalObject  Local Home Interface  Similar to the remote home interface, but without RMI  Extends javax.ejb.EJBLocalHome

Client / EJB Relationship  How does a client application (Java class) utilize EJBs?  Lookup - JNDI ENC  Network protocol - RMI  EJB container creates object with RemoteHome and Home interfaces – this object passes calls to the bean class

EJB – Enterprise Java Beans  Entity Beans  Session Beans  Message Beans  New in EJB 2.0

EJB – Entity Beans  Entity beans are classes that map to individual entities – typically, an Entity bean references a row in a database table, providing an object representation of that database object.  For example, an entity bean could represent a customer, and changing the values in that entity bean would cause updates to that database row  Entity beans provide an abstraction layer so that working with the entity is not specific to the storage mechanism for that entity.

Entity Beans - Persistence  Container Managed Persistence (CMP)  The EJB container automatically persists the EJB objects, usually to a relational database where each type of object is represented as a table, and each instance of the object is a row in that table  Bean Managed Persistence (BMP)  The EJB container calls bean methods when it is appropriate for the bean to load, save or update data, enforcing transactions without transaction code written by the bean developer

EJB – Session Beans  Session beans perform work for a client application  For example, a session bean could charge a credit card for a specific transaction.

Session Beans – State  Stateful – A stateful bean maintains a conversational state with a client. The client perceives that it is only talking to one bean, and that bean maintains information between calls  Stateless – A stateless bean maintains no client information between method calls – the container can substitute beans as necessary between method calls

EJB – Session Bean Example package org.jboss.docs.interest; import javax.ejb.EJBObject; import java.rmi.RemoteException; /** This interface defines the `Remote' interface for the `Interest' EJB. Its single method is the only method exposed to the outside world. The class InterestBean implements the method. */ public interface Interest extends EJBObject { /** Calculates the compound interest on the sum `principle', with interest rate per period `rate' over `periods' time periods. This method also prints a message to standard output; this is picked up by the EJB server and logged. In this way we can demonstrate that the method is actually being executed on the server, rather than the client. */ public double calculateCompoundInterest(double principle, double rate, double periods) throws RemoteException; }

EJB – Session Bean Example package org.jboss.docs.interest; import java.io.Serializable; import java.rmi.RemoteException; import javax.ejb.CreateException; import javax.ejb.EJBHome; /** This interface defines the 'home' interface for the 'Interest' EJB. */ public interface InterestHome extends EJBHome { /** Creates an instance of the `InterestBean' class on the server, and returns a remote reference to an Interest interface on the client. */ Interest create() throws RemoteException, CreateException; }

EJB – Session Bean Example package org.jboss.docs.interest; import java.rmi.RemoteException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; /** This class contains the implementation for the 'calculateCompoundInterest' method exposed by this Bean. It includes empty method bodies for the methods prescribe by the SessionBean interface; these don't need to do anything in this simple example. */ public class InterestBean implements SessionBean { public double calculateCompoundInterest(double principle, double rate, double periods) { System.out.println("Someone called `calculateCompoundInterest!'"); return principle * Math.pow(1+rate, periods) - principle; } public void ejbCreate() {} public void ejbPostCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {} }

EJB – Session Bean Example JBoss Interest Sample Application Interest EJB Interest org.jboss.docs.interest.InterestHome org.jboss.docs.interest.Interest org.jboss.docs.interest.InterestBean Stateless Bean

EJB – Session Bean Example package org.jboss.docs.interest; import javax.naming.InitialContext; import javax.rmi.PortableRemoteObject; class InterestClient { /** This method does all the work. It creates an instance of the Interest EJB on the EJB server, and calls its `calculateCompoundInterest()' method, then prints the result of the calculation. */ public static void main(String[] args) { try { InitialContext jndiContext = new InitialContext(); ref = jndiContext.lookup("interest/Interest"); InterestHome home = (InterestHome) PortableRemoteObject.narrow(ref, InterestHome.class); Interest interest = home.create(); //Create an Interest object from the Home interface System.out.println(interest.calculateCompoundInterest(1000, 0.10, 2)); } catch(Exception e) { System.out.println(e.toString()); }

EJB – Message Beans  Message beans are classes that receive asynchronous notification from a Java Message Service server  For example, a message bean could be activated when vendor sends a purchase order to a JMS queue.

JMS – Java Message Service  Enterprise messaging provides a reliable, flexible service for the asynchronous exchange of critical business data and events throughout an enterprise. The JMS API adds to this a common API and provider framework that enables the development of portable, message based applications in the Java programming language.

JMS – Java Message Service JMS Queue JMS Topic

JMS – Java Message Service  The JMS API in the J2EE 1.3 platform has the following new features:  A new kind of enterprise bean, the message-driven bean, enables the asynchronous consumption of messages.  Message sends and receives can participate in Java Transaction API (JTA) transactions.Java Transaction API (JTA)

JMS – Java Message Service  Why should I use JMS?  Loosely-coupled systems  Connectionless  Removes dependence on client and server platform / programming language / version  Publish / Subscribe metaphor  Send / receive information with many, unknown clients  Integration with other messaging systems  IBM MQ-Series  Microsoft Message Queue

JDBC – Data Access API  JDBC TM technology is an API that lets you access virtually any tabular data source from the Java TM programming language.  Cross-DBMS connectivity to a wide range of SQL databases  Access to other tabular data sources, such as spreadsheets or flat files.

JDBC – Driver Types  Level 1 - A JDBC-ODBC bridge provides JDBC API access via one or more ODBC drivers.  Level 2 - A native-API partly Java technology- enabled driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS.  Level 3 - A net-protocol fully Java technology- enabled driver translates JDBC API calls into a DBMS-independent net protocol which is then translated to a DBMS protocol by a server.  Level 4 - A native-protocol fully Java technology- enabled driver converts JDBC technology calls into the network protocol used by DBMSs directly.

JNDI – Java Naming and Directory Interface  JNDI is an API specified in Java tm that provides naming and directory functionality to applications written in Java. It is designed especially for Java by using Java's object model.  Using JNDI, Java applications can store and retrieve named Java objects of any type.  JNDI provides methods for performing standard directory operations, such as associating attributes with objects and searching for objects using their attributes.  JNDI allows Java applications to take advantage of information in a variety of existing naming and directory services, such as LDAP, NDS, DNS, and NIS(YP), and allows Java applications to coexist with legacy applications and systems.

JNDI - Layers

JNDI – Common Uses  JNDI ENC – “enterprise naming context”  EJB lookup within a J2EE app server  LDAP integration  Dynamic registration of services and clients  Peer to Peer computing

JNDI – Session Bean Example package org.jboss.docs.interest; import javax.naming.InitialContext; import javax.rmi.PortableRemoteObject; class InterestClient { /** This method does all the work. It creates an instance of the Interest EJB on the EJB server, and calls its `calculateCompoundInterest()' method, then prints the result of the calculation. */ public static void main(String[] args) { try { InitialContext jndiContext = new InitialContext(); ref = jndiContext.lookup("interest/Interest"); InterestHome home = (InterestHome) PortableRemoteObject.narrow(ref, InterestHome.class); Interest interest = home.create(); //Create an Interest object from the Home interface System.out.println(interest.calculateCompoundInterest(1000, 0.10, 2)); } catch(Exception e) { System.out.println(e.toString()); }

JTA / JTS – Transactions  The Java Transaction API (JTA) and the Java Transaction Service (JTS) allow J2EE application servers to take the burden of transaction management off of the component developer.  Developers can define the transactional properties of Enterprise JavaBeans TM technology based components during design or deployment using declarative statements in the deployment descriptor.  The application server takes over the transaction management responsibilities.

JavaMail  The JavaMail TM 1.2 API provides a set of abstract classes that model a mail system.  The API provides a platform independent and protocol independent framework to build Java technology-based mail and messaging applications.  J2EE contains JAF – JavaBeans Activation Framework since it is required by JavaMail  Supports common mail protocols  IMAP  POP  SMTP  MIME

JAAS – Java Authentication and Authorization Service  Authentication of users, to reliably and securely determine who is currently executing Java code, regardless of whether the code is running as an application, an applet, a bean, or a servlet; and  Authorization of users to ensure they have the access control rights (permissions) required to do the actions performed.  Sample authentication modules using:  Java TM Naming and Directory Interface (JNDI)  Unix Operating Environment  Windows NT  Kerberos  Keystore

XML  J2EE 1.3 includes JAXP 1.1 support, as well as Servlet Filters and XML JSP TM documents.  The Java TM API for XML Processing ("JAXP") supports processing of XML documents using DOM, SAX, and XSLT.  The portability and extensibility of both XML and Java make them the ideal choice for the flexibility and wide availability requirements of this new web.

J2EE Connectors  The J2EE Connector architecture defines a standard architecture for connecting the J2EE platform to heterogeneous EISs (Enterprise Information Systems).  Examples of EISs include ERP, mainframe transaction processing, database systems, and legacy applications not written in the Java programming language.

J2EE Applications

J2EE Deployment  JAR – Java ARchive  Java class file  EJBs  WAR - Web ARchive  Servlets  JSPs  EAR - Enterprise ARchive  Contains other JARs and WARs to form an entire application  Deployment descriptors  XML  Required for EJB JARs, WARs, EARs

J2EE Servers  Application Server  As of Sept ’01 - MetaGroup Survey by sales $$  BEA Weblogic - 37%  IBM Websphere – 22%  Oracle – 11%  Iplanet – 5%  Other- 12%  Open-source  Jboss –  Sun’s listing of J2EE compatible servers -

J2EE Servers  Servlet / JSP Servers  Most of the commercial application servers also include servlet / JSP support  Open-Source  Apache Tomcat  Jetty  Sun’s listing of servlet / JSP servers -

J2EE Development Tools  Major IDEs support J2EE in some form  Wizards for EJB / Servlets  Custom editors for JSP  Deployment descriptor support  Deployment support for application servers  Embedded servers for testing within IDE

Learning more…  Enterprise JavaBeans – 3 rd Edition  Richard Monson-Haefel  O’Reilly © 2001  JBoss documentation   Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition  Nicholas Kassem and the Enterprise Team  Addison Wesley © 2000  Core Servlets and JavaServer Pages (JSP)  Marty Hall  Prentice Hall © 2000

Learning more…  J2EE Tutorial -  J2EE Developers Guide - GuideTOC.html GuideTOC.html  JNDI -  JMS -  JDBC -  Servlets -  JSP -  JAXP -