Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients...

7
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

Transcript of Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients...

Page 1: Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients ⇒ 2-tier architecture with thin clients ⇒ Performance Comparison ο Summary 2

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

Page 2: Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients ⇒ 2-tier architecture with thin clients ⇒ Performance Comparison ο Summary 2

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

Page 3: Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients ⇒ 2-tier architecture with thin clients ⇒ Performance Comparison ο Summary 2

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

Page 4: Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients ⇒ 2-tier architecture with thin clients ⇒ Performance Comparison ο Summary 2

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

Page 5: Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients ⇒ 2-tier architecture with thin clients ⇒ Performance Comparison ο Summary 2

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

Page 6: Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients ⇒ 2-tier architecture with thin clients ⇒ Performance Comparison ο Summary 2

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

Page 7: Overview - ETH Z⇒ 3-tier architecture with fat clients ⇒ 3-tier architecture with thin clients ⇒ 2-tier architecture with thin clients ⇒ Performance Comparison ο Summary 2

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