Title: Building Complex Java Applications with Oracle 9i JDeveloper
1Building Complex Java Applications with Oracle 9i
JDeveloper
Dr. Paul Dorsey Dulcian, Inc. www.dulcian.com
2Survey
- Who is using Oracle JDeveloper for anything?
- in test
- in production
- Who is doing web development?
- JDev
- JSP
- UIX
- Web services
- .net
- Other
3JDeveloper History
- Oracle bought some code for Borlands 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
4Where 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
5Where 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
6JDeveloper 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
7JDevelopers 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
8Is 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
9Using Form Builder(the good old days)
Forms Client/Server
- Required Tools
- Forms
- TOAD
- Required Languages
- SQL
- PL/SQL
10Java Applications
- Client-server
- Java program runs on PCs JVM
- Required Tools
- JDeveloper
- TOAD
- Required Languages
- Java
- XML
- JDBC
- SQLJ
- SQL, PL/SQL
11Java Applets
Java applications running over a browser
- Required Tools
- JDeveloper
- TOAD
- Apache or IAS
- Required Languages
- Java
- XML
- JDBC
- SQLJ
- SQL,PL/SQL
- Other problems - Security
- Firewalls
- Secure Sockets
12Web Module (JSPs)
- Sell over the Internet
- Java back end, HTML front end
- Required Tools
- JDeveloper
- TOAD
- Apache or IAS
- DreamWeaver or FrontPage
- Required Languages
- Java
- XML a little
- JDBC
- SQLJ
- SQL, PL/SQL
- HTML
- JavaScript
13Using 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 Fowlers book Refactoring Improving
the Design of Existing Code(Addison-Wesley Pub
Co, 1999)
14JDevelopers 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.
15Is 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
16BC4J - 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.
17BC4J - 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
18Three 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
19Default Generator
20BC4J 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
21Now 100 Java
- Slightly faster IDE
- Some compilation is faster.
- All in all a little faster.
- Much nicer user interface
22JDeveloper Class Diagram
23UML Modeling
- Java classes
- Quite good
- Useful?
- BC4J
- Only entity objects (not view objects)
- EJBs, Web Services
- Not sure I care
- Data Modeling
- Use Dulcians BRIM
24JDeveloper Activity Modeler
- Swim lanes and activities
- Vaguely familiar if you know Designer
- Workflow
- BRIM generates more code.
25Model-View-Controller (MVC)
- View
- Output page
- JClient
- Swing
- J2EE
- HTML
- Servlet
- JSP
- XML
- Controller
- Business Rules
- Navigation
- Controls content
- Always JAVA (mostly)
26Model
- 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
27JDeveloper is 2 products(actually more)
- JClient
- Very complex
- Client/Server
- Can do anything
- J2EE
- JSP
- Framework
- Struts
- UIX
28JClient
- Swing components
- Java
- BC4J
- Lots of coding
- Needed for very complex applications
- Less to learn than J2EE
29J2EE (Youre not in Kansas anymore)
- The world is getting simpler, but less flexible
- Unless you work hard
- Fully open architecture
30J2EE The path to enlightenment
- Build basic JSP
- Using the JDeveloper Wizards
- By hand
- Build basic UIX application
- Using the JDeveloper Wizards
- By hand
31References
- 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)
32JSP/Java Extensions
- Look for third party resources.
- Type Java chart into any web search engine
- Dont reinvent the wheel.
33More Information about JDev 9i
- otn.oracle.com
- Products area
- The discussion forums are quite active.
- ODTUG lists
- Oracle support
34Share your KnowledgeCall 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 select_at_ioug.org.
35Contact Information
- Dr. Paul Dorsey paul_dorsey_at_dulcian.com
- Dulcian website - www.dulcian.com