1
ο Overview⇒ Choosing the Environment⇒ Two-Tier Advantages
ο Case study: Oracle 8.1.6⇒ Extensions⇒ Middleware Checklist⇒ Application Development⇒ The Bet is on Java⇒ JServer
ο Examples: Applications build on Oracle using Java⇒ 3-tier architecture with fat clients⇒ 3-tier architecture with thin clients⇒ 2-tier architecture with thin clients⇒ Performance Comparison
ο Summary
2
ο Multi-vendor middleware applications are not always the best solution, e.g.⇒ If the expected amount of data and number of users is relatively small⇒ If the necessary infrastructure for a full fledged n-tier approach is missing
ο All major database vendors offer now middleware extensions, such as⇒ TP-Monitors⇒ Persistent queuing and Message Broker⇒ Object Request Brokers and EJB/DCOM compliant application services⇒ Generalized programming interfaces, such as JDBC, ODBC, http, POP3,...⇒ Vertical market functionality
ο To the outside such so-called TP-Light applications appear as 2-tier systems
ο As a concrete example we will take a look at Oracle⇒ Largest enterprise database vendor⇒ Expands agressively its range of products and services
ο Many/most of the observations apply to the other database vendors
ο Less components to integrate andinterface
ο A single provider can offer someintegration guarantees
ο The components/ modules shouldhave little overlap
ο Less communication overhead
ο Smaller, faster applications
ο Less development environments tomaster
ο Single programming languagepossible
3
ο Development (o)⇒ Various language and APIs⇒ Tools, libraries
ο Services (o)⇒ Connection logic⇒ Standard wrappers⇒ Transactional interfaces
ο Control (-)⇒ System monitors⇒ Communication tools⇒ Load balancing, priority scheduling
ο Storage (+)⇒ Persistent queues, buffering⇒ Replication, distribution⇒ Backups
+ complete o some - minimal
4
ο PL/SQL is here to stay⇒ Still the fastest for data access (20x),
native datatypes⇒ Huge amounts of legacy code⇒ Limited functionality⇒ Cumbersome development
environments
ο Available Java APIs⇒ Call Java from PL/SQL and vice versa⇒ Stored Procedures, Triggers (intern)⇒ CORBA, EJB (multi-tier applications)⇒ JDBC/SQLJ (extern)
ο Java Development: e.g. JDeveloper 3.1⇒ Free from http://technet.oracle.com⇒ Modern environment⇒ Many libraries (XML, Infobus, ..)
ο Complete Java integration on the way⇒ Most extension API’s directly callable
(DBMS Libraries, vertical marketextensions, Java Message Service )
⇒ New extensions are written in Java(e.g. 8i FileSystem)
⇒ Object services available (Visigenics 3.2 Corba ORB, EJB 1.1,replication through IIOP)
⇒ Service tools are ported to Java (DBA management pack, databaseadministration, replication manager)
ο What are the goals?⇒ Java programming on all tiers⇒ Middleware functionality is either used
implicitly (e.g. connection balancing)or explicitly through interfaces
⇒ Code base compatibility among oracleserver released for different platforms
5
ο Compatibility of internal Java VM⇒ Up to Java 1.2.1, JDBC 2.0⇒ Some limitations; e.g. no GUI code⇒ Distributed transactions (8.1.7)
ο Performance compared to external JVM⇒ Poor responsiveness (8.1.6)⇒ Slow execution of java code in
general⇒ Good scalability: low memory usage -
30KB per user versus 1MB⇒ Fast data processing
ο 8.1.7 Solution 1: New Connection Logic⇒ Apache now the Oracle Listener⇒ Direct pl/sql calls through http
ο 8.1.7 Solution 2: Native Compilation⇒ Translation of JDBC to native calls⇒ Java- or byte- code translated to C,
then compiled to binaries, e.g. core
ο Three-tier architecture⇒ Fat Java client with local data and
connection libraries⇒ Link to middle layer through RMI⇒ JDBC connection to databases with
some stored procedures
ο Advantages in development⇒ Complete control⇒ Common Java codebase possible⇒ “Easy” deployment
ο Disadvantages in development⇒ Complex program environments⇒ Integration of other middleware
services difficult
ο -> best for larger projects
6
ο Three-tier architecture⇒ Thin clients access through browsers⇒ Java servlets are the application logic⇒ Database services through JDBC
ο Advantages in development⇒ Professional, exchangeable, full
featured products available⇒ Superior scalability⇒ Industry standard connections to
other middleware
ο Disadvantages in development⇒ Higher transfer overhead⇒ Complex installation and interfaces
ο -> typical web-based database solution
ο Two-Tier architecture⇒ Thin clients access through browsers⇒ The webserver is implemented in
Java and loaded as storedprocedures
ο Advantages in development⇒ Binary code calling native Oracle
methods is fast⇒ One data transfer⇒ Less components to worry about
ο Disadvantages in development⇒ Stored procedures have limitations
(e.g. no GUI code)⇒ Loading and debugging is slow
ο -> currently best as glue code
7
ο What was measured
ο Demo: External Webserver
ο Demo: Internal Webserver
ο Oracle nicely showcases current middleware trends
ο It strives to become the global internet application platform (8 i == internet)
ο Middleware extensions are added at a fast pace
ο Compared to established middleware services, such as TP-Monitors, theprovided functionality is still “light”
ο The choice of services to be used in the application determines its architecture
ο Nevertheless, there are many benefits for application developers
ο Java is Oracle’s language of choice to tie the pieces together
ο Using Java it is possible to develop for all tiers in one language
Top Related