58
CS-422 Enterprise Computing Preview

CS-422 Enterprise Computing Preview

  • Upload
    swann

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

CS-422 Enterprise Computing Preview. Client Server Strategies. CGI (Common Gateway Interface) Active Server Pages Personal Home Pages (PHP) MS Active Server Pages (ASP) Cold Fusion Java Servlets and JSP Enterprise Java Beans. CGI. Program run by web server in response to client request - PowerPoint PPT Presentation

Citation preview

Page 1: CS-422 Enterprise Computing Preview

CS-422Enterprise Computing

Preview

Page 2: CS-422 Enterprise Computing Preview

Client Server Strategies

• CGI (Common Gateway Interface)

• Active Server Pages– Personal Home Pages (PHP)– MS Active Server Pages (ASP)– Cold Fusion

• Java Servlets and JSP

• Enterprise Java Beans

Page 3: CS-422 Enterprise Computing Preview

CGI

• Program run by web server in response to client request

• perl, C, C++, VB, Java, python, tcl• handles submitted HTML forms data and

dynamically creates a web page in real time and returns it to the requesting client

• Old Technology; pre- HTTP, rooted in gopher• reliable• resource hog

Page 4: CS-422 Enterprise Computing Preview

CGI (more)

• Very useful used in conjunction with Java based clients for things like:– Report Generation (WebFocus)

– Data retrieval (files and RDBMS)

– Persistent object storage (files)

• Could almost be replaced by server side Java • Hard to maintain program state

– must rely on programming tricks• cookies, hidden variables

Page 5: CS-422 Enterprise Computing Preview

CGI (more)

Browser

Web

Server

CGI

ProgramDB

Static Web page with forms tags

<form action=/CGI-BIN/AAA.PL>

Page 6: CS-422 Enterprise Computing Preview

CGI (more)

• If another user requests a CGI while the CGI is already running; the web server spawns a child process and runs another instance of the CGI there.

• For frequently run CGIs there may be many copies in the machine at the same time

• …resource hog (web servers that run a lot of CGIs will use all of the memory you can afford)

Page 7: CS-422 Enterprise Computing Preview

CGI (more)

Browser

Web

Server

CGI

Program

DBCGI

Program

CGI

Program

Browser Browser

Page 8: CS-422 Enterprise Computing Preview

Active Server Page Technologies

• HTML pages that appear to be database aware • HTML with an embedded scripting language and

either CGI or proprietary server support are used to make forms objects appear to be database aware

• Main contenders:– PHP (Open Source)

– Microsoft Active Server Pages (OEM Product)

– Cold Fusion (OEM Product)

– Java Server Pages (Open licensing from Sun)

Page 9: CS-422 Enterprise Computing Preview

PHP (Personal Home Pages)

• Core Technologies– HTML – PHP Script– JavaScript

• Platforms– Primarily LINUX, Apache– Windows– UNIX

• Databases– Primarily used with MySQL (Open Source)– Oracle, DB2 (MyODBC Open Source Database Driver))

Page 10: CS-422 Enterprise Computing Preview

PHP (More)• How it works

– PHP processor usually installs as a CGI that is invoked in response to a request for a .php file (on Windows NT can run as a service)

– the CGI retrieves the requested file, parses it looking for PHP tags

– PHP tags are resolved and the tag is replaces by that resolution

• Benefits– Cheap, Open Source

– Easy to learn • special HTML-like tags

• very reminiscent of C

– many Open Source, domain specific add ons available

• Problems– Support is typical of Open Source (but quality is high)

Page 11: CS-422 Enterprise Computing Preview

PHP (typical) Architecture

MySQL DB

HTML

JavaScriptApache Web

Server

PHP CGI

Page 12: CS-422 Enterprise Computing Preview

Microsoft Active Server Pages

• Core technologies– MS Internet Information Server

– MS Internet Explorer (IE4.0)

– VBScript

– Java

– ActiveX

– SQL Server & Access

– DCOM

Page 13: CS-422 Enterprise Computing Preview

Microsoft Active Server Pages

• Works only on Windows (NT Server and W2000 Server)

Page 14: CS-422 Enterprise Computing Preview

Microsoft ASP Architecture

Data Base, (Access

SQLServer)

VBScript

HTML

JavaScript VBScript

IIS

Java

ActiveX

IE 4.0

Page 15: CS-422 Enterprise Computing Preview

Microsoft ASP• How it works

– IIS retrieves the requested file, parses it looking for Jscript/VBScript and resolves the script by replacing it with the resolution (values/text)

• Benefits– A 100% MS solution, important for many corporate IS shops

– Easy to learn • based on VB

• skills are readily available from the large number of VB programmers

– easy accessibility to Windows API and DLLs

• Problems– Security has always been a problem due to MS frequent OS and

product release cycle

Page 16: CS-422 Enterprise Computing Preview

Cold Fusion

• Core Technologies– Proprietary, tag based, embedded scripting language

– Javascript, Java

• Platforms– NT, LINUX, Solaris

– Apache, Netscape/iPlanet, IIS

• Databases– Access, MS SQL Server (NT W/2000 Only)

– Sybase, Oracle, DB2

– MySQL (requires MYODBC driver)

Page 17: CS-422 Enterprise Computing Preview

Cold Fusion Architecture

Database

HTML

JavaScript Web Server

ColdFusion

Server

ODBC

JDBC

Native

Java

Page 18: CS-422 Enterprise Computing Preview

Cold Fusion• How it works

– Web server receives request for .cfm file and passes the request to the CF server. CF Server parses the file returning all non- CF tags to the requesting browser and resolving the CF tags into their resolved text/values

• Benefits– Multi-platform– Easy to learn

• tag based (looks like HTML, gives web community comfort that its just some additional tags)

– much support available via the web, wide following in the web community

• Problems– OEM pricing (current price of $5K/server)

Page 19: CS-422 Enterprise Computing Preview

Java Servlets

• Core Technologies– Java

– HTML, Javascript

• Platforms– NT, LINUX, Solaris

– Apache/Tomcat, Netscape/iPlanet, JRun

• Databases – all JDBC enabled (DB2, Oracle, Sybase, Informix)

Page 20: CS-422 Enterprise Computing Preview

Java Servlet Architecture

HTML

JavaScript Web Server with servlet

engine & JRE

Database

Servlet

Cache

Page 21: CS-422 Enterprise Computing Preview

Java Servlets

• How it works– Web server receives request for servlet (name is mapped to a class file

by Java web server) . Servlet is loaded into cache and run in the JRE. HTML produced by servlet is returned to browser

• Benefits– Cross platform as long as compliant servlet engine is availabe– Easy to learn for Java/C++ programmers – much support available via the web– faster than interpretive technologies (like PHP, ASP, CF)

• Problems– still hard to find skills– still considered to be “bleeding edge” by many IS shops

Page 22: CS-422 Enterprise Computing Preview

Java Server Pages

• Core Technologies– Java

– HTML, Javascript

• Platforms– NT, LINUX, Solaris

– Apache/Tomcat, Netscape/iPlanet, JRun

• Databases – all JDBC enabled (DB2, Oracle, Sybase, Informix)

Page 23: CS-422 Enterprise Computing Preview

JSP Architecture

HTML

JavaScript Web Server

with JSP engine & JRE

Database

Servlet

Cache

Page 24: CS-422 Enterprise Computing Preview

What is a JSP

• Combination of HTML, Javascript, and a set of Java tags (5)– Java tags allow java code and calls to Javabeans

to be embedded in line– Java tags also allow control of the Java runtime

environment

Page 25: CS-422 Enterprise Computing Preview

Java Server Pages

• How it works– Web server receives request for .jsp. JSP engine converts the page

to source code for a Java Servlet, source is compiled by javac and class is moved to cache for deployment

• Benefits– Cross platform as long as compliant engine is availabe

– Allows Integrated Product Team development

– faster than interpretive technologies (like PHP, ASP, CF)

• Problems– still hard to find skills

– still considered to be “very bleeding edge” by many IS shops

Page 26: CS-422 Enterprise Computing Preview

Deployment Strategies

Page 27: CS-422 Enterprise Computing Preview

2-Tier Client Server

• Java based Client; application or applet

• JDBC

• Database

Page 28: CS-422 Enterprise Computing Preview

2-Tier Client-Server - application

JDBC Enabled Database

Java Client Application using JDBC APIs

This application architecture is simple but won’t scale to very many users

TCP/IP

Page 29: CS-422 Enterprise Computing Preview

2-Tier Client-Server - applet

Webserver

JDBC Enabled DB

Unix or WindowsBrowser

JVM

HTML

Webserver and DB must be on same IP address

applet

Page 30: CS-422 Enterprise Computing Preview

2-Tier Problems

• Client has to do everything

• DBs aren’t meant to handle large numbers of transient connections (connections are often more expensive than the db transaction being done)

• Good only for infrequently used apps

Page 31: CS-422 Enterprise Computing Preview

3-Tier Client-Server

• Java based Client; application or applet

• Server/middleware

• Database

Page 32: CS-422 Enterprise Computing Preview

3-Tier Client Server

Client

Client

Client

Server DB

Sockets

JavaIDL

JavaRMIJDBC

Native

Page 33: CS-422 Enterprise Computing Preview

3-Tier Advantages

• Server can manage database connections efficiently

• Client can focus on business logic

• Server can preformat data for client

• Running server on high performance hardware can improve client perceived performance

Page 34: CS-422 Enterprise Computing Preview

JavaIDL

• In Java we cannot separate a class’s definition from its implementation as we can in C++– Header files– Implementation files

• CORBA allows the separation of definition and implementation

Page 35: CS-422 Enterprise Computing Preview

JavaIDL

• CORBA uses IDL for defining interfaces, language specific IDL compilers are available– create target language skeletons and stubs to be

used by developers for building CORBA clients and servers

– CORBA objects talk to each other via interfaces

Page 36: CS-422 Enterprise Computing Preview

CORBA Object Communications

Object A Object B

Interface Interface

IIOP

Page 37: CS-422 Enterprise Computing Preview

Conceptually ...

Client

Client

Client

Server

Server

Server

ORB

Page 38: CS-422 Enterprise Computing Preview

What happens...

• Server objects register their methods with the orb naming service

• Client binds to the orb naming server for a server object method

• Naming service returns location of server object and disconnects

• Client connects to server at returned location

Page 39: CS-422 Enterprise Computing Preview

Really though...

Client

Client

Client

Server

Server

Server

ORB

Services

Registration

1

2

3

Page 40: CS-422 Enterprise Computing Preview

This is very simplified

• Very…

Page 41: CS-422 Enterprise Computing Preview

Other ORB services...

• Depending on vendor implementation:– automatic failover for servers– load balancing– real time, online database

Page 42: CS-422 Enterprise Computing Preview

Orb Info• The Visigenics VisiBroker Orb is built into

Netscape Communicator 4.0 to aviod having to download 100+ Corba class files; Netscape browser is ready to be a CORBA client

• Borland bought Visigenics

• Borland’s and Visigenics vision is a CORBA based world

• Why didn’t Microsoft buy Visigenics?

Page 43: CS-422 Enterprise Computing Preview

Why MS didn’t buyVisigenics

• Wrong vision…

• MS Vision is DCOM not CORBA

Page 44: CS-422 Enterprise Computing Preview

CORBA +’s & -’s

• Very robust and scalable

• Language independent

• Multi-platform

• very steep learning curve

• specification addresses functionality not a standardized API– every ORB programs differently

Page 45: CS-422 Enterprise Computing Preview

Remote Method Invocation

• Similar to C++ RPCs• Instead of creating and instantiating

an object on your machine create it on another machine and communicate with it as if it were a local object

• eliminates much CORBA overhead• comes with JDK (unlike CORBA)

Page 46: CS-422 Enterprise Computing Preview

RMI

• RMI classes let you generate stubs and skeleton layers like JavaIDL

• Remote reference Layer translates stub and skeletion calls to native transport calls on the host architecture and carries out remote reference protocols

Page 47: CS-422 Enterprise Computing Preview

RMI Model

Transport

Client Server

Stubs Skeletons

RemoteReference

RemoteReference

Page 48: CS-422 Enterprise Computing Preview

RMI

• Currently RMI uses its own “on the wire” protocol that is based on the Java serialization API

• IIOP over RMI is a currently an option for CORBA compatibility

Page 49: CS-422 Enterprise Computing Preview

Enterprise Java Beans

• Java, server side component technology

• Application Server Based Technology (IBM Websphere, BEA Weblogic, Silverstream, Macromedia JRun

• Draws heavily on RMI, CORBA

Page 50: CS-422 Enterprise Computing Preview

EJB Architecture

Browser

Application Server

EJB Container

Transactions

Security

EJB Server Database

Page 51: CS-422 Enterprise Computing Preview

Transaction Management

• EJBs are transactional by nature– can be non-transactional but defined for

distributed transactions– two-phase commit protocol– uses Java Transaction Service (JTS)

• Java binding for CORBA Object Transaction Service (OTS)

• spans multiple transactions across multiple database on multiple platforms

• insures interoperability with other EJB servers

Page 52: CS-422 Enterprise Computing Preview

Persistance

• EJBs provide a simple programming model for managing object persistance– beans can manage their own persistance– persistance can be managed by the EJB

container– big improvement over active server page

technologies

Page 53: CS-422 Enterprise Computing Preview

Security

• Java policy based security– J2EE– built into JDK since ver 1.1

Page 54: CS-422 Enterprise Computing Preview

EJB Server

• Provides services for the EJB container

• provides distributed transaction management

Page 55: CS-422 Enterprise Computing Preview

EJB Container

• EJB Life cycle management (creation to destruction)

• implicit transaction control

• persistance management

• transparent distribution services

• security services

• isolates the developer from platform dependent APIs

Page 56: CS-422 Enterprise Computing Preview

Standards based approach

• Based on industry standards (TCP/IP, IIOP, DCOM…)

• the model applies to both small scale and large scale applications

• transparent access to backend databases (direct JDBC/JSQL access is allowed)

Page 57: CS-422 Enterprise Computing Preview

Benefits

• Highly scaleable– load balancing– automatic failover– managed persistance– high transaction rates– portability

Page 58: CS-422 Enterprise Computing Preview

Problems

• High capital and software investment

• Steep learning curve

• Considered “bleeding edge”and therefore high risk by most IS shops.