A DBA Perspective to J2EE Debu Panda Principal Product Manager Oracle Application Server Development

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introduction.
Advertisements

11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
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.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
Introduction to Enterprise JavaBeans. Integrating Software Development Server-side Component Model Distributed Object Architecture –CORBA –DCOM –Java.
Overview of The Java Platform Solution for E-Business Applications : JSP, Servlet and EJB.
Copyright W. Howden1 Lecture 19: Intro to O/O Components.
Point Of Sale(POS) J2EE Application Department : Computer Science Degree : Master Student : Woojin Choi ID : (POS J2EE Application with JRun)
Introduction to Servlet & JSP
CS 483 Enterprise and Web Application Programming
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
Distributed System Using Java 2 Enterprise Edition (J2EE)
Enterprise Object Framework. What is EOF? Enterprise Objects Framework is a set of tools and resources that help you create applications that work with.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
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.
HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004.
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
A DBA Perspective on J2EE Debu Panda Principal Product Manager Oracle Corporation Session id:
Entity Beans BMP Celsina Bignoli
Middleware Technology (J2EE/EJB) Entity Bean. 2 Introduction to Entity Beans Persistence Concepts Entity beans are persistent objects that can be stored.
© D. Wong  Indexes  JDBC  JDBC in J2EE (Java 2 Enterprise Edition)
Container-Managed Persistence (CMP) Entity Beans Lesson 3A / Slide 1 of 42J2EE Server Components Objectives In this lesson, you will learn to: Identify.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Enterprise JavaBeans. Lesson 1: Introduction to Server-Side Component Software.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Introduction to J2EE Architecture Portions by Kunal Mehta.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
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.
Creating competitive advantage Copyright © 2003 Enterprise Java Beans Presenter: Wickramanayake HMKSK Version:0.1 Last Updated:
Introduction to Enterprise JavaBeans Topics In Systems Architecture Barry Herbold
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Session Beans Based on: Patel, Brose, Silverman, Mastering Enterprise JavaBeans 3.0.
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.
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 Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Copyright © 2002 ProsoftTraining. All rights reserved. Enterprise JavaBeans.
15 Copyright © 2004, Oracle. All rights reserved. Adding JAAS Security to the Client.
©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.
Enterprise JavaBeans. Lesson 1: Introduction to Server-Side Component Software.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Building J2EE Applications Based on Design Patterns with Business Components for Java Olivier LE DIOURIS Principal Product Manager Oracle Corporation.
CS 562 Advanced Java and Internet Application Computer Warehouse Web Application By Team Alpha :-  Puja Mehta (102163)  Mona Nagpure (102147)
Speaker Name Speaker Title Speaker Title Oracle Corporation Olivier Le Diouris Principal Product Manager Oracle Corporation Building Servlet and JSP Applications.
J2EE Platform Overview (Application Architecture)
Java Servlets By: Tejashri Udavant..
Introduction to J2EE Architecture
Distributed System Using Java 2 Enterprise Edition (J2EE)
Luca Simone Software Engineering 2 a.a. 2001/2002
Understanding and Designing with EJB
Component-based Applications
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Understanding and Designing with EJB
Enterprise Java Beans Bina Ramamurthy 4/5/2019 B.Ramamurthy.
Enterprise Java Beans.
Knowledge Byte In this section, you will learn about:
Presentation transcript:

A DBA Perspective to J2EE Debu Panda Principal Product Manager Oracle Application Server Development

Impedance Mismatch I love my tables DBA I love my objects and beans Developer

Agenda  Application Server Overview  J2EE Overview  Persistence Options and related concerns  Entity Bean Lifecycle for the DBAs  Messaging and Advanced Queuing  J2EE Security and OID/Single Sign On  Additional Resources and Next Steps

What is An application Server  Middleware between users and database systems  Provides frameworks for building and deploying applications – Security – Transactions – Business Intelligence – Self-service Portal – Web Services – Caching and Hi-Availability  Increasingly Application Servers are becoming an O/S for servers !  Major Players: Oracle, BEA, IBM

Web Services B2B Integration Application Integration Any Data Source Business Intelligence Wireless & Mobile Enterprise Portal Management & Security Business Services Framework Rapid Application Development Clustering & Caching Oracle Application Server 10 g Integrated Middleware Platform

Mind boggling J2EE J2EE JSP JDBC EJB JNDI JTA JMS Servlet JCA

What is J2EE?  Java 2 Enterprise Edition (J2EE) – Platform to build scalable and portable applications in Java – Relies on a number of Java specifications  Servlets, JSPs, EJB, JMS, JDBC, JTA, JNDI, etc.  DBAs care most about JDBC,JTA and EJB  JDBC – Java APIs for Database access  JTA – Java APIs to manage transactions  EJB – Enterprise JavaBeans  Oracle Application Server Containers for J2EE (OC4J) is J2EE 1.4 compliant

Develop J2EE Applications with Oracle Application Server Database OHS Browser JSP Servlets JTA JMS JNDI Java Mail JAAS Java VM Oracle Application Server JDBC J2EE Container JCA EJBs (Session, Entity, MDBs) EJB Client EJB Client CORBA Client CORBA Client RMI http RMI-over-IIOP

What is a J2EE Container  J2EE applications run in a special environment called a J2EE Container/Server  Oracle’s container is named OracleAS Containers for J2EE (OC4J) EJB Container Client EJB Bean Home Interfaces J2EE Server Web Container Servlet/JSP

J2EE Architecture Database and Legacy Systems Enterprise JavaBeans JSP Pages Servlets Web Browser Applets Application Clients Client TierWeb TierBusiness Tier EIS Tier JDBC / J2CA

What is JDBC  Standard API for accessing relational databases from Java – Issue SQL statements – Call server-side procedural logic  Conceptually similar to ODBC

 Translates JDBC method calls to vendor-specific database commands  Implements interfaces defined in the java.sql and javax.sql packages  Can also provide a vendor’s extensions to the JDBC standard Driver JDBC calls Database commands Database JDBC Driver Database

Oracle JDBC Drivers Oracle Database Remote Database Java Engine SQL Engine PL/SQL Engine Thin Driver (Type IV) OCI Driver (Type II) Java Sockets OCI C Library KPRB C Library Server-Side Internal Driver Server-Side Thin Driver Java Sockets

 Thin driver:  OCI driver:  Server-Side internal driver: : : Sample JDBC URLs for Oracle jdbc:oracle:kprb:

DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); Connection conn = DriverManager.getConnection "scott", "tiger"); Connecting to the Database 1.Register the driver 2.Connect to the database Issue statementCloseConnectProcess results

JNDI Data Sources  Newer way to access connection information  More flexible, portable than hard-coding URLs  Look up connection details by logical name  Typical for J2EE applications Context ctx = new InitialContext(); OracleDataSource ods = (OracleDataSource)ctx.lookup("jdbc/TestDB"); Connection conn = ods.getConnection(); JNDI API JNDI Lookup JDBC Connection Database LDAP CORBA/COS RMI DNS File System

Connection Pooling and Caching  Reuse an existing physical connection  Closing the connection releases it back to be reused  Useful for stateless applications  Maintaining a set of Pooled Connections is called Connection Caching Database PooledConnection JDBC Connection PooledConnection Connection Caching

Java Servlets and JSP Pages  Server-side Java components  Reside in the J2EE Web Tier  Dynamic Web content generation

Java Servlets  Fundamental Java API for Internet Communication  Typically HTML generation – Can also deliver other datatypes including binary – XML, WML, GIF…  Foundation for JavaServer Pages

public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.setContentType(“text/html”); out.println(" "); out.println(” Hello There! "); out.println(" "); out.close(); } Java Servlet Example

JavaServer Pages  HTML pages with embedded Java – In contrast to servlets (Java with embedded HTML )  Same performance and portability benefits from servlet technology but with the ease of use of HTML  Best of both worlds for Web designers and Web developers

Hello! Today is: JSP Example

What is EJB  Reusable components that run inside a container  Can be accessed either – Either local and remote Java programs – CORBA compliant client  EJB Container provides support for – Persistence – Access control – Transactions

Types of EJBs  Session Beans – encapsulate business logic – Transient in nature, cannot survive crash ! – Stateless – Perform a task e.g. charge a credit – Stateful – Maintains state between calls e.g. shopping cart  Entity Beans – persistent in nature – Representation of data – Two types Bean Managed Persistence (BMP), Container Managed Persistence (CMP)  Message Driven beans – A Java Message Service (JMS) listener (listens on a Topic or Queue) – Reliably consume message – Can work with Oracle Advanced Queueing

Enterprise JavaBean Review EJB client OC4J Enterprise Services Naming, Transactions, Security Database EJB container EJB bean EJB remote object EJB home object EJB remote interface EJB home interface JMS Listener MDB bean JMS client

Entity Beans Uncovered  Represent persistent objects  Have a Primary key for unique identification  BMP requires developers to code all persistence – Use JDBC to perform persistence  CMP requires container to do the persistence based on declarations – Container does database access based on declarations by developer

Container Managed Relationships  Only between CMP EJBs  Supports 1-1, 1-M, and M-M  Relationships can be unidirectional or bi-directional  Relationships are persistent just like EJBs  Can have DELETE-CASCADE property Customer id: int name: String creditRating: int Address id: int city: String zip: String *

Entity Bean Life Cycle Client EJB Container EJB Server create() Entity bean remove() ejbUnsetEntityContext() ejbRemove () ejbLoad() ejbStore() EJB object stub Bean constructor ejbCreate(…) primary key constructor ejbSetEntityContext() ejbPostCreate()

Entity Bean Lifecycle and database MethodOperationDB Operation ejbCreate()Create an entity bean instance INSERT to persist the bean instance ejbPostCreate()Set relationshipUPDATE foreign key or INSERT if deferred write ejbLoad()Load a bean instance using the supplied primary key SELECT statement to retrieve a database row ejbStore()Update the corresponding bean in the database UPDATE to a database row ejbRemove()Remove a bean instanceDELETE the record findByXXX()Find the beans based on a certain condition SELECT statement to fetch one or multiple rows

J2EE Persistence Options  J2EE standards based options are – Direct JDBC from web-tier or EJB session beans – Entity beans with Bean Managed Persistence – Entity beans with Container Managed Persistence  Additional technologies – Java-to-relational frameworks such as OracleAS TopLink – Oracle ADF (Application Development Framework)

Direct Access with JDBC  Developer codes all interactions with database – Queries, inserts, updates, deletes using JDBC API  Common design pattern used – Data Access Objects – Separates persistence from business logic – Avoids putting JDBC code directly in Servlet/JSPs  Nil to low overhead from container – Developer is responsible for opening/closing resources – Transactions managed programmatically  Concurrency considerations  DBA Concerns: Review SQL

Bean Managed Persistence  Using BMP – All database interactions are manually coded – Container calls your code when it performs an operation – Container still ultimately in control  Provides some implementation flexibility – Map to 1 or more tables, different storage systems – Make use of existing stored procedures  Performance perceptions and reality – Developer coded *may* be better than container generated – Inherent problem with (n + 1) SQL calls  DBA Concerns: Database schema is coded into bean, Review SQL

Container Managed Persistence  Using CMP – Developer specifies persistent attributes of object – Developer specifies how entity object maps to database – All JDBC code generated by container  Container is responsible for managing persistence  Container maintains relationships between objects  Requires less code than JDBC and BMP  Choice for persistence in J2EE Applications  DBA Concerns : Many !! If you are not using Oracle Application Server

CMP development and deployment Concerns  Container Managed Tables – Containers creates the tables and names those – Ask your developers to map to your schema  Container creates Primary key – If no primary key is assigned in Entity bean – OC4J names this column autoid by default  Container Managed Relationship – May create an extra table for maintaining relationship – You can use foreign key for mapping 1-M

Performance Concerns  Container generates the SQL – SQL statement that can cause performance degradation by making full table scans or unnecessary joins – Unnecessary Extra SQL statements  Developers specify finder methods that can make full table scans  How to tune database for use with CMPs

Optimizing CMP Entity beans for Oracle database  Reduce database operations  Use right concurrency mode and locking strategy  Tune your SQL/database

Reduce Database Operations  Enforce primary key constraint at database level – Avoid extra SQL for constraint checking by container  Exploit DELETE CASCADE at database level – Container generate multiple SQL statements  Defer EJB creation to end of transaction – This avoids an extra UPDATE statement  Batch update operations to end of transaction  Exploit eager loading of relationship  Reduce round trips with pre-fetch size  Avoid N+1 problem by switching off lazy-loading

Use Right Locking/Isolation Mode  Choose the right isolation level for entity beans – Avoid if possible at the bean level – COMMITTED performs better than Serializable  Choose right locking mode – Use Optimistic and Read-Only if possible – Pessimistic uses ‘SELECT FOR UPDATE’  Avoid database calls with Read-Only patterns

Database Tuning Tips for CMPs  Make sure that your finder /select method uses indexes.  Exploit statement caching by the container  Avoid findAll() on large tables as this makes full table scans  Most EJB systems are OLTP in nature so tuning redo is important  The basics of tuning any database are valid for EJBs  Use Statspack to find bottlenecks and tune your DB

OracleAS Toplink – The Most Compelling Option  Improves developer productivity by providing a flexible O-R Framework – Avoiding manual coding of interactions with database – Have years of experience in Java to Relational mapping  Can be used in any J2EE application – Servlets/JSPs / EJBs (BMP/CMP)  Reduces the load on database – Resolving the N+1 problem – By using caching data in the middle-tier and reading ‘Just In Time’ – Minimizing database calls  Utilize the features provided by databases  Respect and work with database locks

DB Configurations concern  Database user passwords – Used in data-sources for connection pooling – Stored in clear text, can be encrypted ! – Changes require restart of container  OC4J uses an Oracle database for commit coordinator for 2-Phase commit – Requires a 9i database as commit coordinator – Requires database links ?

Message Driven Beans  A message driven bean is a stateless, asynchronous bean for processing JMS messages  Exist within a pool, receive and process incoming messages from a JMS queue or topic  Invoked by the container to handle each incoming message from the queue or topic

JMS and Oracle AQ  OC4J uses two JMS providers – OC4J JMS – Internal/in-memory JMS – OracleJMS – based in Oracle AQ  JMS uses – Queues – single consumer – Topics – multiple consumers  OracleJMS persists messages in AQ tables – As DBAs you have to manage these objects

Security concepts  Identity management – Authentication – Is this the right guy? – Authorization – Does his/she have this privilege?  Encryption - Any body hearing?

Identity Management  Programmatic vs. Declarative  Programmatic – May use a Database to store user id/passwords – May use a LDAP compliant directory like OID  Declarative – JAZN-LDAP requires OID – Oracle’s Single Sign-on uses Oracle DB/OID

OID Architectural Overview Directory administration OID Oracle database Oracle Net connections LDAP over SSL OID clients LDAP

Benefits of OID  OID provides: – Delegated Administration Service (DAS) – Failover in cluster configurations – Support for Oracle Real Application Clusters – Oracle Directory Integration platform, to synchronize with other enterprise repositories including third-party LDAP directories – Password policy management

Security Vulnerability Area of Vulnerability A.Transport B.Transport C.Persistent Storage Web Servers Database Storage Sys NAS Application Servers Unprotected transaction zone! A. B. C.

Security threats to your Database Web Servers Database Storage Sys NAS Application Servers Unprotected transaction zone! Oracle10g, 9i, DB2, some other database? Server, mainframe, or something else? NAS, SAN, etc? Regardless of where the DATA is stored and how it is stored, the DATA must be must be protected against the many threats.

Summary  J2EE is a popular platform  Persistence is the greatest challenge for developers and may impact DBA’s life  DBAs and Developers work together to improve the quality of J2EE applications

otn.oracle.com Join Over 3,000,000 Developers! Free Software Downloads Free Technical Advice

 Develop your career with Oracle’s experts – Web services, Forms Upgrade to the Web, TopLink, Business Intelligence, Integration, J2EE, Linux  Connect with your peers  Sign up at FREE

A Q & Q U E S T I O N S A N S W E R S