Enterprise Computing (Powerpoint)

judgedrunkshipΔιακομιστές

17 Νοε 2013 (πριν από 3 χρόνια και 10 μήνες)

100 εμφανίσεις

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


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

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

CGI (more)

Browser

Web

Server

CGI

Program

DB

Static Web page with forms tags

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

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)

CGI (more)

Browser

Web

Server

CGI

Program

DB

CGI

Program

CGI

Program

Browser

Browser

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)

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))

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)

PHP (typical) Architecture

MySQL DB

HTML

JavaScript

Apache Web
Server

PHP CGI

Microsoft Active Server Pages


Core technologies


MS Internet Information Server


MS Internet Explorer (IE4.0)


VBScript


Java


ActiveX


SQL Server & Access


DCOM

Microsoft Active Server Pages


Works only on Windows (NT Server
and W2000 Server)


Microsoft ASP Architecture

Data Base,
(Access
SQLServer)

VBScript

HTML

JavaScript
VBScript

IIS

Java

ActiveX

IE 4.0

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

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)

Cold Fusion Architecture

Database

HTML

JavaScript


Web Server

ColdFusion

Server

ODBC

JDBC

Native

Java

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)

Java Servlets


Core Technologies


Java


HTML, Javascript


Platforms


NT, LINUX, Solaris


Apache/Tomcat, Netscape/iPlanet, JRun


Databases




all JDBC enabled (DB2, Oracle, Sybase, Informix)

Java Servlet Architecture

HTML

JavaScript


Web Server
with servlet
engine & JRE

Database

Servlet

Cache

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

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)

JSP Architecture

HTML

JavaScript


Web Server
with JSP
engine & JRE

Database

Servlet

Cache

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

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

Deployment Strategies

2
-
Tier Client Server


Java based Client; application or
applet


JDBC


Database

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

2
-
Tier Client
-
Server
-

applet

Webserver

JDBC
Enabled DB

Unix or Windows

Browser


JVM

HTML

Webserver and DB must be on same IP address

applet

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

3
-
Tier Client
-
Server


Java based Client; application or
applet


Server/middleware


Database

3
-
Tier Client Server

Client

Client

Client

Server

DB

Sockets

JavaIDL

JavaRMI

JDBC

Native

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

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

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

CORBA Object Communications

Object A

Object B

Interface

Interface

IIOP

Conceptually ...

Client

Client

Client

Server

Server

Server

ORB

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

Really though...

Client

Client

Client

Server

Server

Server

ORB

Services

Registration

1

2

3

This is very simplified


Very…


Other ORB services...


Depending on vendor
implementation:


automatic failover for servers


load balancing


real time, online database

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?

Why MS didn’t buyVisigenics


Wrong vision…


MS Vision is DCOM not CORBA

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

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)

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

RMI Model

Transport

Client

Server

Stubs

Skeletons

Remote

Reference

Remote

Reference

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

Enterprise Java Beans


Java, server side component
technology


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


Draws heavily on RMI, CORBA

EJB Architecture

Browser

Application Server

EJB Container

Transactions

Security

EJB Server

Database

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

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

Security


Java policy based security


J2EE


built into JDK since ver 1.1


EJB Server


Provides services for the EJB
container


provides distributed transaction
management

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

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)

Benefits


Highly scaleable


load balancing


automatic failover


managed persistance


high transaction rates


portability


Problems


High capital and software investment


Steep learning curve


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