Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • iAS Layout This provides a snapshot of the building blocks that make up iAS. Apache 8i Cache Forms Reports Discoverer
  • Web Request Flow 1. A listener/dispatcher receives an HTTP request from a client. If the request is for an Apache modules, the request is handled by the corresponding module. The listener examines the URL and determines which cartridge should handle the request. If the request is for a static document then it is handle by the listener itself, via the http core functionality. 2. Request for non static files such as security, redirection, CGI, Perl, Java Servlets, SSI and other applications is handle by the corresponding module. 3. Request handle by the mod_Jserv, such as Jservlets and JSP are pass from the mod_jserv module to a separate process running a JVM, Java Virtual Machine. This is service by yet another process ( on a separate port). 4. JVM executes the Java Servlet/JSP and returns the html to the mod_jserv. 5. The apache core, http code, code return the resulting html page.
  • PL WEB

    1. 1. i AS: Single Integrated Product 8 i Cache Browser Apache mod PL/SQL mod jserv JDK Servlets Files Oracle8 i HTTP/ HTTPS Forms Reports Discoverer EJB Servlets PL/SQL SQL mod_ose EJB Servlets PL/SQL SQL Database Cache mod_rewrite
    2. 2. Why Apache ? <ul><li>De-Facto Standard Web Listener </li></ul><ul><ul><li>Over 59% market share today </li></ul></ul><ul><ul><li>Serves as the HTTP entry point to i AS </li></ul></ul><ul><li>Scalable </li></ul><ul><ul><li>Replicate across many middle tier nodes </li></ul></ul><ul><ul><li>Load-balanced access through network load balancers (Local / Distributed Director, IP round robin, etc.) </li></ul></ul><ul><li>Extensible </li></ul><ul><ul><li>Delegate handling of HTTP requests to mods </li></ul></ul>
    3. 3. Apache “ Mods” <ul><li>Standard and Oracle “Mods” </li></ul><ul><ul><li>modJserv: Stateless Servlets in JVM pools </li></ul></ul><ul><ul><li>modRewrite : Rerouting/writing of requests </li></ul></ul><ul><ul><li>modPerl : Perl script processing </li></ul></ul><ul><ul><li>modPLSQL: Stateless PL/SQL </li></ul></ul><ul><ul><li>modSSL: Supported SSL </li></ul></ul><ul><ul><li>modAuth : Authentication services </li></ul></ul>
    4. 4. mod_plsql <ul><li>Generates HTML files from PL/SQL code. </li></ul><ul><li>Allows dynamic creation of web content from inside the database, including serving images and documents. </li></ul><ul><li>Is the replacement for the PL/SQL Cartridge in OAS and earlier versions of Oracle WebServer. </li></ul><ul><li>Enabler of many 11i Self-Service Modules and Oracle Portal </li></ul>Client Apache Listener PL/SQL Engine Generates HTML Oracle 8i/9i mod_plsql
    5. 5. Example PL/SQL Code for mod_plsql <ul><li>create or replace procedure TestHTMLPage is </li></ul><ul><li>begin </li></ul><ul><li>htp.htmlOpen; -- prints <HTML> </li></ul><ul><li>htp.headOpen; -- prints <HEAD> </li></ul><ul><li>htp.title(‘Test HTML Page’); -- prints <TITLE> </li></ul><ul><li>htp.headClose; -- prints </HEAD> </li></ul><ul><li>htp.bodyOpen; -- prints <BODY> </li></ul><ul><li>htp.tableOpen(‘border=2’); -- prints <TABLE…> </li></ul><ul><li>htp.tableRowOpen; -- prints <TR> </li></ul><ul><li>htp.tableData(‘This will be in the 1 st column’); htp.tableRowClose; </li></ul><ul><li>htp.tableRowOpen; </li></ul><ul><li>htp.tableData(‘This will be in the 2 nd column’); </li></ul><ul><li>htp.tableRowClose; </li></ul><ul><li>htp.tableClose; </li></ul><ul><li>htp.bodyClose; </li></ul><ul><li>htp.htmlClose; -- prints </HTML> </li></ul><ul><li>end; </li></ul>
    6. 6. mod_JServ <ul><li>Like mod_plsql, but for running Java code, specifically servlets and JSPs (Java Server Pages) </li></ul><ul><li>The java runs in Java Virtual Machine (JVM) configured for Apache </li></ul>
    7. 7. Example Servlet Code <ul><li>public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { </li></ul><ul><li>response.setContentType(&quot;text/html&quot;); </li></ul><ul><li>PrintWriter out = new PrintWriter (response.getOutputStream()); </li></ul><ul><li>out.println(&quot;<html> &quot;); </li></ul><ul><li>out.println(&quot;<head><title>Test HTML Page</title></head> &quot;); </li></ul><ul><li>out.println(&quot;<body> &quot;); </li></ul><ul><li>out.println(“<table border=2>”); </li></ul><ul><li>out.println(“<tr>”); </li></ul><ul><li>out.println(“<td>This will be in the 1 st column</td>”); </li></ul><ul><li>out.println(“<td>This will be in the 2 nd column</td>”); </li></ul><ul><li>out.println(“</tr>”); </li></ul><ul><li>out.println(“</table>”); </li></ul><ul><li>out.println(“</body> ”); </li></ul><ul><li>out.close(); </li></ul><ul><li>} </li></ul>
    8. 8. Web Request Flow Web client Listener 1 JVM Mod_auth Mod_JServ 2 3 Modules 5 4 CGI 2 Dynamic content Database