35
Dr. Paul Dorsey Dulcian, Inc. www.dulcian.com Building Complex Java Applications with Oracle 9i JDeveloper

Dr. Paul Dorsey Dulcian, Inc. Building Complex Java Applications with Oracle 9i JDeveloper

Embed Size (px)

Citation preview

Page 1: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Dr. Paul DorseyDulcian, Inc.

www.dulcian.com

Building Complex Java Applications with Oracle 9i JDeveloper

Page 2: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Survey

Who is using Oracle JDeveloper for anything? in test in production

Who is doing web development? JDev

JSP UIX Web services

.net Other

Page 3: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JDeveloper History Oracle bought some

code for Borland’s J-Builder in 1997.

JDeveloper 1.0 (1998) More or less useless

JDeveloper 2.0 (1999) Still useless

JDeveloper 3.0 (2000) BC4J & DAC Finally the right idea!

JDeveloper 3.2 (2001) Bug fixes First useful version

JDeveloper 9i (2002) First good version Big rewrite Change in direction

Page 4: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Where Does JDeveloper Fit?

A Java development tool JDeveloper has lots of market competition

Visual Café - Symantec JBuilder Forte

A Java development tool that works with Oracle No real competition

Page 5: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Where JDeveloper fits today

Good tool for building Java applications Best tool for building Oracle-based Java applications Most of the solution for building JSPs or UIXs

Page 6: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JDeveloper in the Development World

Weaknesses Inefficient for application development Evolving support for JSP development

Strengths Good IDE Extensible - wizards, property inspectors

(customizers), toolbars, code generators Excellent Oracle database connectivity Supports all Java development Good user interface

Rated high by reviewers, much better than 3.2 release

Extremely important!

Page 7: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JDeveloper’s Short-Term Vision

Close the gap with Form Builder on development efficiency for Web Development - JSP/UIX 6-12 months

Support full enterprise-level data modeling 1-2 years

Java client support is “mature.” Add other UML pieces

Use cases

Page 8: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Is Java all you need to deploy on the Web?

NO!!!!Java Deployment

JSP - Web Applet – Web internal Applications – Client/Server

Each alternative requires different tools and languages

Page 9: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Using Form Builder(the good old days)

Required Tools Forms TOAD

Required Languages SQL PL/SQL

Forms Client/Server

Page 10: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Java Applications

Required Tools JDeveloper TOAD

Required Languages Java XML JDBC SQLJ SQL, PL/SQL

Client-server

Java program runs on PCs JVM

Page 11: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Java Applets

Required Tools JDeveloper TOAD Apache or IAS

Required Languages Java XML JDBC SQLJ SQL,PL/SQL

Java applications running over a browser

Other problems - Security

Firewalls

Secure Sockets

Page 12: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Web Module (JSPs)

Required Tools JDeveloper TOAD Apache or IAS DreamWeaver or FrontPage

Required Languages Java XML – a little JDBC SQLJ SQL, PL/SQL HTML JavaScript

Sell over the InternetJava back end, HTML front end

Other problems - Security

Firewalls

Secure Sockets

Page 13: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Using Java

For PL/SQL programmers wanting to move to Java, there are some important conceptual differences to understand.

Learning Java is more than just learning a new syntax.

You need to take an object-oriented approach.Get Martin Fowler’s book: Refactoring:

Improving the Design of Existing Code(Addison-Wesley Pub Co, 1999)

Page 14: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JDeveloper’s Long-Term Vision

A fully integrated design and development environment Centralized repository

Full UML integration The vision of what

Designer and Developer never fully achieved

Probably never integrate into Designer….maybe

JSP is the main development direction.

Page 15: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Is JDeveloper ready for production use?

Client/Server style application development Yes (but it will take time)

Web development Probably (but it will take a LONG time)

UIX support Faster JSPs 9.05 end of year

Page 16: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

BC4J - Overview

Main advantage over other development tools Primary way of handling database DML operations Overcomes hurdle of complex database interface to

handle web-based applications BC4J features:

Builds a set of Java classes that wrap the DML commands and reference an XML document that stores the data structure

Classes make JDBC calls to the database to take over insert, update, delete and lock functions.

Page 17: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

BC4J - Advantages

BC4J classes can implement complex validation. Need to think carefully about whether this is the appropriate

place for this function

Reduced development time Can cache data to be shared among multiple users

Allows for tuning capabilities

Page 18: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Three areas of BC4J

1. Entities and Associations Cached copy of a portion of the database An entity is linked to, at most, 1 table Not needed for query-only objects

2. View objects and view link objects View objects that sit on top of entities (or nothing)

3. Data model Collection of views What the UI applications interact with

Page 19: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Default Generator

Data ModelDept Emp 1Emp 2

Views & view links

Emp Dept*1

filtered view

Entities & Associations Emp Dept*

1

DBMS Tables

Emp DeptFK

Page 20: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

BC4J Files

XML – redundantly stores data structure of relational database

Java classes – contain complex logic and application calls used by other parts of application

Java library – provided by Oracle to handle JDBC generation

Page 21: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Now 100% Java

Slightly faster IDE Some compilation is faster. All in all – a little faster. Much nicer user interface

Page 22: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JDeveloper Class Diagram

Page 23: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

UML Modeling

Java classes Quite good Useful?

BC4J Only entity objects (not view objects)

EJBs, Web Services Not sure I care

Data Modeling Use Dulcian’s BRIM™

Page 24: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JDeveloper Activity Modeler

Swim lanes and activities Vaguely familiar if you know Designer Workflow BRIM™ generates more code.

Page 25: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Model-View-Controller (MVC)

ViewOutput pageJClient

SwingJ2EE

HTML Servlet JSP XML

ControllerBusiness RulesNavigationControls contentAlways JAVA

(mostly)

Page 26: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Model

Model Connect UI to the

database BC4J EJB

But it gets messy… Controller functions can

be anywhere View

JClient Java in the application

J2EE JavaScript

Model BC4J explicitly supports

business rules EJBs are Java so they

support anything

Database Triggers

Page 27: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JDeveloper is 2 products(actually more)

JClient Very complex Client/Server Can do anything

J2EE JSP Framework

Struts UIX

Page 28: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JClient

Swing components Java BC4J Lots of coding Needed for very complex

applications Less to learn than J2EE

Page 29: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

J2EE (You’re not in Kansas anymore)

The world is getting simpler, but less flexible Unless you work hard

Fully open architecture

Page 30: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

J2EE – The path to enlightenment

Build basic JSP Using the JDeveloper Wizards By hand

Build basic UIX application Using the JDeveloper Wizards By hand

Page 31: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

References Oracle 9i JDeveloper Handbook,

Koletzke, Dorsey & Faderman, (Oracle Press, 2002) ISBN: 0072223847

Oracle 9iAS: Building J2EE Applications, Morrisseau-Leroy (Oracle Press, 2002) ISBN: 0072226145

Oracle 9i Application Server Portal Handbook, Vandivier & Cox (Oracle Press, 2001) ISBN: 0072222492

Oracle 9i JDBC Programming, Jason Price, (Oracle Press, 2002) ISBN: 0072222549 (not needed if you use BC4J)

Java2: The Complete Reference (5th Edition), Herbert Schildt, (McGraw-Hill, 2002) ISBN: 0072224207

Struts Kick Start, Turner & Bedell, (SAMS, 2002) ISBN: 0672324725

Oracle9i XML Handbook, Chang, Scardina & Kiritzov, (Oracle Press, 2001) ISBN: 007213495X

Refactoring: Improving the Design of Existing Code, Martin Fowler (Addison-Wesley, 1999) ISBN: 0201485672

Oracle 9i Web Development, Bradley D. Brown (Oracle Press, 2001) ISBN: 0072193883

The Java Class Libraries – Volumes 1, 2, 3, Chan & Lee, (Addison-Wesley)

The Java Tutorial (series), Campione, et. al (Addison-Wesley)

Page 32: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

JSP/Java Extensions

Look for third party resources. Type “Java chart” into any web search engine

Don’t reinvent the wheel.

Page 33: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

More Information about JDev 9i

otn.oracle.com Products area The discussion forums

are quite active.

ODTUG lists

Oracle support

Page 34: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Share your Knowledge:Call for Articles for the

SELECT Journal Help contribute your knowledge to the larger Oracle

community: Make the SELECT Journal an even more valuable resource. Articles wanted on topics of interest to the Oracle community. Sign up to be a reviewer of articles.

Submit articles, questions, … to [email protected].

Page 35: Dr. Paul Dorsey Dulcian, Inc.  Building Complex Java Applications with Oracle 9i JDeveloper

Contact Information

Dr. Paul Dorsey – [email protected] website - www.dulcian.com

Developer AdvancedForms & ReportsDeveloper AdvancedForms & Reports Designer

HandbookDesignerHandbook

Design Using UMLObject ModelingDesign Using UMLObject Modeling