CS-422 Enterprise Computing Preview. Client Server Strategies CGI (Common Gateway Interface) Active Server Pages –Personal Home Pages (PHP) –MS Active.

Slides:



Advertisements
Similar presentations
Overview Environment for Internet database connectivity
Advertisements

Welcome to Middleware Joseph Amrithraj
Lecture plan Information retrieval (from week 11)
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
COM vs. CORBA.
Time Scalability Single User Unlimited Users 100s of Users Several Users PC based Single user Late 1980sNow PC based, file-level locking Single user or.
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
BICS546 Client/Server Database Application Development.
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 1.
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
Time Scalability Single User Unlimited Users 100s of Users Several Users PC based Single user Late 1980sNow PC based, file-level locking Single user or.
Introduction to Web Interface Technology (CSE2030)
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Advanced Distributed Software Architectures and Technology group ADSaT 1 Application Architectures Ian Gorton, Paul Greenfield.
8 Server Side Scripting.
Web-based Software Development - An introduction.
Server-side Technologies
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
INTRODUCTION TO WEB DATABASE PROGRAMMING
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
Common Object Request Broker Architecture (CORBA) CS-328.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
Week 7 Lecture Web Database Development Samuel Conn, Asst. Professor
CIS 285 ROBINSON WINTER 2005 CIS 285 Web Application Development with Java CIS 285 Sinclair Community College Instructor: Mary Robinson.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Enterprise Java Beans CS-422. Application Servers In the late 1980s and though the mid 1990s a number of corporations (Broadvision, Netscape…) marketed.
Modern Software Technologies Java™, J2EE™, JSP™, JDBC™ by Radoslav Tr. Ivanov
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Introduction to Internet Programming (Web Based Application)
Fundamentals of Database Chapter 7 Database Technologies.
第十四章 J2EE 入门 Introduction What is J2EE ?
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
Java Servlets and Java Server Pages Norman White Stern School of Business.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Introduction and Principles Web Server Scripting.
Java Servlets and Java Server Pages
1 Connecting Databases to the Web January 31 th, 2000 Seree Chinodom.
Glink for Java: applet, application and an API for integrating access to Bull, IBM, UNIX and Minitel systems with your Java based e-business applications.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
Java Server Pages Can web pages be created specially for each user?
Web-based Software Development - An introduction
Netscape Application Server
Outline SOAP and Web Services in relation to Distributed Objects
Java RMI CS-328 Internet Programming.
What is RMI? Remote Method Invocation
Outline SOAP and Web Services in relation to Distributed Objects
PHP / MySQL Introduction
Web App vs Mobile App.
MSIS 655 Advanced Business Applications Programming
Inventory of Distributed Computing Concepts
Quality Assurance for Component-Based Software Development
CS-422 Enterprise Computing Preview. Client Server Strategies CGI (Common Gateway Interface) Active Server Pages –Personal Home Pages (PHP) –MS Active.
Presentation transcript:

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

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

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 WindowsBrowser 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 ServerDB 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 IIOP

Conceptually... Client 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 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 ClientServer 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.