WEB DATABASE PUBLISHING



Similar documents
Oracle Application Server

Enabling the Information Age

Lecture 2. Internet: who talks with whom?

Querying Databases Using the DB Query and JDBC Query Nodes

FileMaker 11. ODBC and JDBC Guide

Using the PL/SQL Cartridge of the Oracle Application Server to Deploy Web Applications. Connie Begovich Oak Ridge National Laboratory

Migrating helpdesk to a new server

Oracle WebServer User s Guide

LabVIEW Internet Toolkit User Guide

Oracle Exam 1z0-102 Oracle Weblogic Server 11g: System Administration I Version: 9.0 [ Total Questions: 111 ]

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide

Internet Information TE Services 5.0. Training Division, NIC New Delhi

Oracle EXAM - 1Z Oracle Weblogic Server 11g: System Administration I. Buy Full Product.

FileMaker 12. ODBC and JDBC Guide

MS Enterprise Library 5.0 (Logging Application Block)

FileMaker 13. ODBC and JDBC Guide

XIA Configuration Server

Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords

StreamServe Persuasion SP5 Control Center

FileMaker Server 13. FileMaker Server Help

*Described in the Release Notes. Generally this step will be performed by the admin end-users.

FileMaker 14. ODBC and JDBC Guide

Client/server is a network architecture that divides functions into client and server

3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management

How-to configure Auditing for IDENTIKEY Authentication Server 3.2 to a remote Oracle Database on a standalone Microsoft machine.

S y s t e m A r c h i t e c t u r e

1Z Oracle Weblogic Server 11g: System Administration I. Version: Demo. Page <<1/7>>

Lotus Domino Security

FileMaker Server 11. FileMaker Server Help

DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010

FileMaker Server 12. FileMaker Server Help

Hardening IIS Servers

Log Analyzer Reference

Business Application Services Testing

Aradial Installation Guide

1z0-102 Q&A. DEMO Version

Contents About the Contract Management Post Installation Administrator's Guide... 5 Viewing and Modifying Contract Management Settings...

MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC

FileMaker Server 10 Help

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP system v10 with Microsoft Exchange Outlook Web Access 2007

ADO and SQL Server Security

Crawl Proxy Installation and Configuration Guide

FileMaker Server 14. FileMaker Server Help

Oracle Service Bus Examples and Tutorials

OVERVIEW OF ASP. What is ASP. Why ASP

Oracle9i Application Server: Options for Running Active Server Pages. An Oracle White Paper July 2001

Building Java Servlets with Oracle JDeveloper

Oracle SQL Developer for Database Developers. An Oracle White Paper September 2008

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with IBM WebSphere 7

Configuring Load Balancing. Oracle Applications Release 10.7 NCA Windows NT Edition. Gary Burch. April 15, 1998

DEPLOYMENT GUIDE Version 1.1. Deploying the BIG-IP LTM v10 with Citrix Presentation Server 4.5

Web Application Vulnerability Testing with Nessus

Customer Bank Account Management System Technical Specification Document

If your organization is not already

WS_FTP Server. User Guide

National Fire Incident Reporting System (NFIRS 5.0) Configuration Tool User's Guide


Cloud Services. Introduction...2 Overview...2. Security considerations Installation...3 Server Configuration...4

ODBC Client Driver Help Kepware, Inc.

HP Application Lifecycle Management

FileMaker Server 9. Custom Web Publishing with PHP

Avatier Identity Management Suite

CONFIGURING A WEB SERVER AND TESTING WEBSPEED

SalesLogix. SalesLogix v6 Architecture, Customization and Integration

Click Studios. Passwordstate. Password Discovery, Reset and Validation. Requirements

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP System v10 with Microsoft IIS 7.0 and 7.5

IceWarp Server. Log Analyzer. Version 10

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

StreamServe Persuasion SP5 StreamStudio

HOW TO CONFIGURE SQL SERVER REPORTING SERVICES IN ORDER TO DEPLOY REPORTING SERVICES REPORTS FOR DYNAMICS GP

CTIS 256 Web Technologies II. Week # 1 Serkan GENÇ

Introduction. Introduction: Database management system. Introduction: DBS concepts & architecture. Introduction: DBS versus File system

An Introduction To The Web File Manager

CA Workload Automation Agent for Databases

FROM RELATIONAL TO OBJECT DATABASE MANAGEMENT SYSTEMS

Deploying the Barracuda Load Balancer with Microsoft Exchange Server 2010 Version 2.6. Introduction. Table of Contents

Web Pages. Static Web Pages SHTML

Deploying the BIG-IP LTM System and Microsoft Outlook Web Access

Web Page Redirect. Application Note

Device Log Export ENGLISH

DBX. SQL database extension for Splunk. Siegfried Puchbauer

for Networks Installation Guide for the application on the server August 2014 (GUIDE 2) Lucid Exact Version 1.7-N and later

Sophos UTM Web Application Firewall for Microsoft Exchange connectivity

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with Oracle Application Server 10g

for Networks Installation Guide for the application on the server July 2014 (GUIDE 2) Lucid Rapid Version 6.05-N and later

Deploying the BIG-IP LTM system and Microsoft Windows Server 2003 Terminal Services

Cloud Services. Introduction...2 Overview...2 Simple Setup...2

Architecture and Data Flow Overview. BlackBerry Enterprise Service Version: Quick Reference

An Oracle White Paper January Integrating Oracle Application Express with Oracle Access Manager. Revision 1

SysPatrol - Server Security Monitor

Configuring Nex-Gen Web Load Balancer

Introduction: Database management system

Elements of Advanced Java Programming

StreamServe Persuasion SP4 StreamServe Connect for SAP - Business Processes

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ MEng. Nguyễn CaoĐạt

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

DEPLOYMENT GUIDE. Deploying the BIG-IP LTM v9.x with Microsoft Windows Server 2008 Terminal Services

Enterprise Manager. Version 6.2. Installation Guide

Transcription:

WEB DATABASE PUBLISHING 1. Basic concepts of WEB database publishing (WEBDBP) 2. WEBDBP structures 3. CGI concepts 4. Cold Fusion 5. API - concepts 6. Structure of Oracle Application Server 7. Listeners 8. ORB - WRB 9. Cartridges 10. DAD 11. PL-SQL cartridge

Basic concepts of WEB database publishing Merging of two current technologies: internet/intranet publishing + database management some benefits of internet/intranet publishing: - no special investment required for clients - universal interface - wide area access - platform independence some benefits of database management - large amount of data - integrity checking - flexibility some drawbacks: - not the fastest solution - not every data types can be managed - security difficulties key words: WEB HTML HTTP CGI API SQL ODBC JDBC Java CGI API Transaction Middleware Internet Intranet Corba

WEBDBP structures It is based on the client-server technology Client request service Server This basic structure is called 2-tier structure The main basic communication modes: - RPC, remote procedure call - Message-based Logical functional components: - Presentation Services - Presentation Logic - Business Logic - Distribution Services - Database Logic - Database Services - File Services

The 2-tier structures Fat clients: Most of the functional modules of the application are performed on the clients Lite clients: Only few functional modules of the application are performed on the clients Remote Data Client-Server Architecture Client Presentation Business logic Data logic Server Data services File services Remote Presentation Client-Server Architecture Client Presentation Server Business logic Data logic Data & file services Split Logic Data Client-Server Architecture Client Presentation Business logic Server Business logic Data logic

Data logic Data & file services The 3-tier Structures Usual distribution: 1. tier: Presentation logic, lite client 2. tier: Business logic, application server 3. tier: Database logic, database server The 3-tier structure can be extended to n-tier structure, containing several special application servers The WEBDBP is based on the 3-tier client-server model The three layers: 1. tier : the client, it is a browser the browser is connected to the web-server 2. tier : the web-server it is connected to both the browser as to the database it can pass static and dynamic HTML documents to the clients 3. tier : the database - server it is connected to the web server

A special module is required to create a connection between the database and the web server Processing of a userrequest 1. user sends a request from the browser to the web server 2. the web server detects that a database access is required 3. the web server passes control to the server extension modul 4. the extension modul formulates a command for the database 5. the extension modul sends a request to the database server 6. the database server processes the request 7. the database server sends the result back to the extension program 8. the extension modul generates a result page 9. the result page is transfered back to the web server 10. the web server sends the result page to the client The web server can processes several requests parallel

The database server can processes several requests parallel

Mixed WEB Database Systems It is based on the 2-tier structure instead of the 3 tier structure. The browser downloads a database client program and executes it as a client site extension module. This database client uses a session-oriented protocol with the database server. This communication channel is independent from the web server. Browser --- web server client database application --- database server The client database program is based on the usual interface. It can perform the usual input validations.

CGI - concepts The WEB Server can access and span an external program that can perform among others database manipulation too. The output of the external program is posted back to the Web Server. The Web Server communicates with a CGI program through environment variables and through the operating system s standard input/output. Browser WEB Server CGI program Environment variables DBMS data source You can develop CGI programs in many languages but PERL, C, shell scripts are the most common.

Data transfer to the CGI program Two methods of the data transfer: GET method POST method In the case of GET method the program receives the data in the QUERY_STRING variable. The program parses this variable to get the values. In the case of POST metyhod, the parameters are passed through the standard input chanel. The program reads data from the stdin. Drawbacks of the CGI-DB solution: - every connection too the data source, DBMS needs a new process, new allocations - CGI programs lacked any method for cooperating with each others

COLD FUSION Cold Fusion is a database application development tool that enables the rapid creation of dynamic, database WEB applications. Cold Fusion is based primary on the CGI concepts. It allows developing schemas, so called templates of HTML pages to describe the database connection at a higher level. The database connection is described with the special HTML-DBML language instead of a lowlevel procedural language. Benefits: - no code required - based on database connection standards - flexible it allows - connection to data sources via ODBC - querying the database - updating, inserting, deleting data - validation rules for field entries - formatting of field entries - implementing conditional statements - dynamic data manipulations

- variable handling Structure of the Cold client: browser request html page Fusion server: web server cgi connection to cold fusion server connection: cold fusion server reads the given template file performs the actions given in the template file connection to data sources vie ODBC performing data manipulation generating the result page web server passes the result page to the browser Browser WEB Server CGI program Template file Environment variables ODBC DBMS data source

1. Request HTML page 2. Template files 3. ODBC data sources Request HTML pages Cold Fusion Components referencing to the cold fusion server: URL = node:/cgipath/dbml.exe?template=tname& where dbml.exe - name of the cold fusion server tname - name of the template file the POST parameter passing method is required <FORM ACTION=" /cgipath/dbml.exe?template=in1.dbm" METHOD=POST>.. <INPUT TYPE=SUBMIT..> </FORM>

The fields of the form are passed to the cold fusion server

Template files Components It combines normal HTML and DBML commands <command parameter-list> Special DBML commands Insertion of new record: <DBINSERT DATASOURCE = dsn TABLENAME = table > dsn : ODBC DSN identifier table : table name the cold fusion detects the field structure of the table and stores the parameter values into the fields of the new records html page field and database table field are connected to each others upon the name (both must have the same name)

Components Updating table records <DBINSERT DATASOURCE = dsn TABLENAME = table > dsn : ODBC DSN identifier table : table name the cold fusion detects the field structure of the table and stores the parameter values into the fields of the new records The table must have a key and there must exist parameter values for the key and the fields to be modified. Creating Queries <DBQUERY NAME = name DATASOURCE = dsn SQL = query > name: query identifier dsn : ODBC DSN identifier query : SQL SELECT command the SELECT command can refer to dynamic parameters dynamic parameter: - html form parameter - URL parameter - CGI environment information

Query in ColdFusion reference to a dynamic variable : #varname# SQL = " SELECT * FROM Books WHERE price > #iprice# " Displaying output values on the result page <DBOUTPUT QUERY = name > display format description </DBOUTPUT> The format description section may contain dynamic field variables that correspond to the fields of the result table. field reference : #queryname.fieldname# the output is generated for every records of the result table. <DBOUTPUT QUERY = phone > <HR> #phone.firstname# #phone.lastname# Phone: #phone.phone# <BR> </DBOUTPUT>

Query in ColdFusion Presenting the results in tabular formats <DBTABLE QUERY = name > <DBCOL HEADER = heading1 TEXT = #field1# > <DBCOL HEADER = heading2 TEXT = #field2# >. </DBTABLE> Basic input field validation and formatting for input field fname - requiring entry <INPUT TYPE=HIDDEN NAME=fname_required> - simple type checking <INPUT TYPE=HIDDEN NAME=fname_type> - range checking <INPUT TYPE=HIDDEN NAME=fname_range

VALUE="MIN=v1 MAX=v2"> Template control flow the cold fusion allows conditional processing of statements <DBIF value operator value > html part A <DBELSE> html part B </DBIF> Sending SMTP mails: <DBMAIL TO = to FROM = from SUBJECT = subject > letter text </DBMAIL> The letter text may contain dynamic variables too.

API - concepts In this structure the server exrension program is implemented as a part of the server, as a DLL or a shared object WEB Server API Shared object Browser DBMS data source Server API s are the methods that you can use to extend the server functionality. - it is faster than CGI API s are specific for the WEB server. - NSAPI Netscape - MS ISAPI Microsoft. It is strongly coupled with the WEB server

MIIS HTTP-ODBC structure Browser W3svc ISAPI HTML CGI ODBC Two description files Data Source description.idc Template for display the result.htx Browser 1 URL= /A.IDC?.. W3svc 5 Result page ISAPI 2 A.IDC Data source ODBC 3 4 B.HTX

MSIIS ISAPI elements IDC parameters - data source (ODBC DSN) - template file identifier - SQL Statement Template elements - normal HTML commands - special HTML commands: - <%begindetail%>..<%enddetail%> loop on the result record set - <%name%> parameter, data field value - <%if%>..<%endif%> conditional statements

Structure of Oracle Application Server Effective connection to the Oracle DBMS Easy, flexible programming tool Primary node DBMS Secondary node Secondary node primary node : it contains the WRB, listeners and cartridges secondary node : it contains some of the components mentioned above Components of the OAS WRB Listener resource manager cartridge server factory monitoring authentication. Application Cartridges ORB name server, log server, ORB server,.

Steps of operation Browser Oracle DBMS 1 8 5 Listener 2 7 WRB 6 Application Cartridges 4 3 ORB. Request 1. browser 2. listener 3. WRB(ORB) 4 cartridges 5 DBMS Result 5 DBMS 6 cartridges 7 WRB (ORB) 8 listener 9 browser

Application Programming Models An application can include several instances of the same cartridge The work is distributed among the instances, the load is balanced - request-response model : each client request is processed individually. two subsequent request from the same client may be responded by two different instances - session model : subsequent requests from the same client are handled by the same instance. the connection breaks after a given amount of time-out. - transaction model : all requests from the same URL are processed within the context of the same transaction. The client can send commit or roll-back messages.

Security schemes Authentication schemes: - basic authentication: users, password management, protection of files, directories - digest authentication: similar to basic authentication, but it sends passwords encrypted across the network Restriction schemes: - IP based restrictions only request from specific IP addresses can access the protected files, directories - Domain based restrictions similar to the domain based restrictions except it uses domain names instead of IP addresses

OAS Manager The components of OAS Manager System: - OAS Manager : to manage the WEB site - OPAS Utilities : to install, to log, to perform some special administrator tasks OAS Manager The components of OAS Manager System: - OAS Manager : to manage the WEB site - OAS Utilities : to install, to log, to perform some special administrator tasks menu of the OAS Manager - site manger - OAS - Logging - Security - DB Access - ORB configuartion - HTTP Listeners - Applications Start and stop node manager manually owsctl start -nodemgr owsctl stop -nodemgr

owsctl status -nodemgrl Listeners OAS Manager Listeners - Node Manager Listener - Administration Utility Listener Node manager Listener it is present on each node of the site it is the first process of the OAS default port is: 8888 it has a username/password protection to manage it manually start : owsctl start -nodemgr stop owsctl stop -nodemgr status: owsctl status -nodemgr Administration Utility Listener it is used to run some demos and samples it is used to run log analyzer default port is : 8889 it is managed by the OAS Manger web site

Listeners The OAS listeners like other listeners can handle - static page requests - dynamic, CGI page request and - Oracle DBMS connection request Listener parameter - listener name - port number - host name - root directory - user id - maximum number of connections - URL of redirection server - configuration directory - initial file - directory mappings Directory mappings It allows to define virtual file system by mapping specific virtual pathnames used in the URL to file system specific filenames of local directories. http://node.uni.edu/test/a.html root : virtual : /

physical : /usr2/locals/htp ORB - WRB Object Request Broker ORB provides a distributed-object computing environment through which clients and servers interacts. Neither the client nor the server needs to be concerned with the location of the other or the transporting, converting data between the different sites. Responsibilities of the ORB: - finding appropriate object implementation to handle client reqiuests - preparing those implementations to receive requests - communicating the data - returning results to the clients Client Server request forwards response forwards request response ORB

Cartridges and Applications cartridge: - it contains configuration data to locate application logic - it contains code to execute the application logic cartridges provide runtime environment for specific programming languages like Java - every cartridge has a virtual path to access it some cartridge level parameters: - virtual path for the catridge - security schema - main/max instances - min/max threads per instance Application: it contains one or more cartridges of the same cartridge type when application runs it creates instances of its cartridges within the cartridge server process

Application and cartridge lifecycles if OAS starts up it starts up the minimum number of cartridge servers for each application each cartridge sever then starts up the minimum number of cartridge instances if minimum number is configured to 0, a cartridge server or cartridge instance is started up only it is required explicitly by a client request a new cartridge instance is started up if there are more requests than cartridge instances some cartridge are able to start up several threads per instances Possible scenarios scenario A : one thread and one instance in a cartridge server scenario B : several threads and one instance in a cartridge server scenario C : several instances but only one thread per instance in a cartridge server

Cartridges types the following cartridges are supported in OAS4 - PL/SQL cartridge: it executes the PL/SQL procedures stored in the database - JWEB cartridge : it runs Java applications. The access to the Oracle database can be processed by the following ways: - pl2java Java utility set - JDBC - LiveHTML cartridge: it interprets server-side include SSI HTML documents - Perl cartridge: it runs Perl scripts - C cartridge : it runs C applications - JCorba cartridge: it runs CORBA objects written in Java - ODBC cartridge : to access ODBC databases like Informix, Sybase Proposed scenarios: PL/SQL, JWEB cartridges : scenario A or C LiveHTML or Perl cartridges : scenario A C, Jcorba cartridges : scenario A or B or C

DAD Database Access Descriptor A database may be local or remote The DAD's contain the configuration data to needed by the OAS to connect to the Oracle database. configuration data - DAD name - database user name - use password - database location - database SID or connect string TNS_ADMIN directory TNSNAMES.ORA configuration file Example1.world = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = Production1) (PORT = 1521) ) (CONNECT_DATA = (SID = SID1) ) )

PL-SQL cartridge It invokes stored procedures written in PL/SQL Cartridge parameters: - name - virtual path - DAD - level or error messages - protection The DAD describes the access to the Oracle database Identifications, activization of a PL/SQL cartridge: http://host/virtual-path/stored-proc?parameters steps of execution: 1. listener 2. WRB gets the request 3. cartridge server is activated 4. access to the database (DAD) 5. procedure execution 6. generation of result page 7. result page is passed back to the browser

Development of a PL/SQL cartridges 1. create a new pl/sql cartridge 2 create dad 3. create stored procedure 4. creating html file to invoke the procedure A toolkit provided by the Oracle can be used to implement the HTML specific features in the PL- SQL environment. Components, packages of the PLSQL Toolkit: - htp (htf) : procedures to generate HTML tags - owa : subprograms required by the PLSQL cartridge - owa_util : utility subprograms to perform dynamic SQL calls - owa_pattern : string manipulation - owa_image : retrieve coordinates where the user clicked on the image - owa_cookie : procedures to send or receive HTTP cookies

Sample PL-SQL applications 1. Creating and Loading the Stored Procedure onto the Database 2. Installing the PL/SQL Cartridge Packages and Creating a DAD 3. Reloading 4. Creating an HTML Page to Invoke the Procedure Sample procedure The current_users procedure retrieves the contents of the all_users table and formats it as an HTML table. create or replace procedure current_users AS ignore boolean; BEGIN htp.htmlopen; htp.headopen; htp.title(`current Users'); htp.headclose; htp.bodyopen; htp.header(1, `Current Users'); ignore := owa_util.tableprint(`all_users'); htp.bodyclose; htp.htmlclose; END;