SlideShare una empresa de Scribd logo
1 de 61
Reaching Out from PL/SQL Lucas Jellema – AMIS (Nieuwegein, The Netherlands) Oracle  Open World 2011
Ask what you can do for your country?! Do not ask what your country can do for you
and Also Ask what you (through PL/SQL & the Database) can do for your “environment”?! By all means, ask what the world around you can mean for your PL/SQL application
Database (SQL & PL/SQL)
SOA Database (SQL & PL/SQL)
JDBC, SQL Net, DB Link RSS File  (Excel, PDF,…) File, O/S Email Queue Database (SQL & PL/SQL) Chat (IM) WebService User Interface REST
The Human Side of Things
EMP
Challenges
EMP
Q
Job receiveMailsendEmail retrieve_emails JSP_WRAPPER ` EMAILS Mail Server AQ Process_email notify_email_event EMP
Java Stored Procedures Java Classes can be loaded into Oracle Database  as Java Stored Procedures The “JSPs” are wrapped with a PL/SQL wrapper When invoked no different from normal PL/SQL units JSPs are in same session and transaction JSPs are static Java Stored Procedures can complement PL/SQL for example in dealings with O/S, Mail Server, Application Server, IM Server, TCP/IP, Embedded, Devices JMX is exposed by Java-in-Database to monitor
Java Stored Procedures – Java behind PL/SQL wrapper
1 ,[object Object],2 ,[object Object],3 ,[object Object],4 ,[object Object],5 ,[object Object],[object Object]
Other scenario with database as initiator of the dialog An Update of an Employee’s Salary takes place After Update Row level trigger fires creates job to send out an email to have someone approve the salary raise Sets the status of the salary to ‘awaiting approval’ Email is sent to approver Approvers sends an answer Decision and comments Answer is received & processed by database Status of salary record is updated
Libraries for: ,[object Object]
 Translation,
 Calculation,
 Encryption,
 …Email CommunicationProtocols:  http, ftp, tcpip, sms,  grid, JDBC, JDBC-ODBC, .Net, … JMS Operating System& File System EJB
http http ftp webdav dbms_epg (mod_plsql) XMLDB utl_mail external table utl_file
APEX The Ultimate Database User Interface dbms_epg (mod_plsql)
Database Reaching Out to Human partners DBMS_EPG (or good old mod_plsql) Expose HTML and RSS & Process HTTP requests XMLDB Expose and allow manipulation of resources through HTTP, FTP and WEBDAV Stored Java Procedures to Interact with Mail Server, Chat; leverage  Process human file formats (PDF, Excel, images, …) Supplied packages: UTL_MAIL, UTL_FILE
Expose Stored Procedures via HTTP Stored Procedures and Packages can be configured to handle HTTP requests Using the supplied DBMS_EPG package They compose the HTTP response by writing strings to the HTP.P procedure Or return binary documents using wpg_docload Database infrastructure handles HTTP communication  including security, headers, get/post parameters Embedded PLSQL Gateway – powering APEX and other PL/SQL based HTML UI Expose RESTful Web Services Publish RSS Feeds Asynchronous HTTP notifications
Publish package as http-based API using dbms_epg Hide database protocol Not its physical location nor the schema, and user authentication HTTP communication is truly cross technology Browser, Java, .Net, JavaScript & RIA clients, … Is also possibly remote, across networks, firewalls etc.  easier than normal JDBC connections Can publish in various formats Text, HTML, CSV, JSON, XML, RSS Use case:cross-technology, internal no WS*/ESB http
Simple DBMS_EPG example sys scott scott
Machinations
Call for decoupling Minimize dependencies and maximize interoperability and reuse Through decoupling: Encapsulate functionality, legacy and complexity Interact through well defined interfaces Support standard protocols and cross technology facilities (XML, HTTP, JSON, SQL) Leverage asynchronous exchange whenever relevant Take care of the data(base) ‘No SQL’ approach: SQL is encapsulated inside database API (View and Package) SQL is not left to application developers or 3rd party frameworks Data integrity is enforced inside the database
Extreme Encapsulation View on top of table(collection) With instead of trigger handling DML Data queried from NUMBERS is produced in PL/SQL – no underlying table involved Data manipulated in NUMBERS is processed in memory View Numbers Package P
Extreme Encapsulation
JDBC, SQL Net, DB Link Chat (IM) RSS Email File, O/S http http AQjms http ftp webdav Queue utl_http (httpuritype) dbms_epg (mod_plsql) AdvancedQueuing Database (SQL & PL/SQL) XMLDB WebService JDBC/ODBCOCI, DB Link REST utl_mail external table utl_tcp utl_file native dbws
XML Relational/Oracle Type WebLogic Server Database Native DB WebService HTTP EPG http PL/SQL package ADF BC/SDO WS JSON/ CSV JDBC SOA Suite SDO XML XML & XSD WS JAX-WS Ref Cursor JPublisher WS DB Types & Coll XML AQ Types AQ View JMS Queue utl_file, BFILE, URITYPE JMS Oracle Service Bus Table EJB/JPA EJB Other (Email, FTP/File, XMPP/Chat) XMLDB File FTP UMS Chat/IM XMPP Server File/FTP Server Email Server
Be a good host Provide services Views for easy querying Stored Procedure based APIs For data retrieval and data manipulation Queues as way-in (publish) as well as way-out (allow subscription) for events Send change notifications Http based push messages Query Result Change Notification
The Super Host Query Result Change Notification
Query Result Change Notification Continuous Query Notification: Send an event when the result set for a query changes Background process calls PL/SQL Handler or Java Listener or OCI client when thecommit has occurred Event contains rowidof changed rows Used for: Refreshing specificdata caches (middletier, global context) (custom) Replication Java Listener PL/SQL
Database to Middle Tier to Client notification through http Session cache Application Scope  event handler D 4 3 9 C 5 A servlet servlet 1 8 2 HTTP B Proce-dure 7 UTL_HTTP EMP Job 6
Cross Tier Push Web Browser JEE Application Server evtlsnr servlet RDBMS job trg
More Interaction from & to the database Files into the database Database to leverage O/S Stored Java for non-human interactions WebServices – publish and consume Engage Middle Tier as ‘agent’
The browser in your databaseIntroducing UTL_HTTP ≈ select  utl_http.request         ( 'http://technology.amis.nl/blog/?feed=rss2'         , null         ) from    dual
The database can ask the middle tier to access and provide services Get information from (or to) services on the intranet or internet  Publish/Send information to the internet (RSS, email, chat) Can tell the middle tier Interesting events  Alert about (im)pending issues, attempted rule violations, … The outcome of batch calculations DB vs. Middle Tier:Security, Functionality, Load Balance WebLogic Server 11g SOA Suite 11g Web App AQ
Happy Chatting – IM from the Database Database can call a middletier service using utl_httpor HTTPURITYPE Passing in the destinationand the message content This Service sends it onwards to the Google Talk Server WebLogic Server 11g Service Service CHAT_MGR
Database actively informs on events WebLogic Server 11g Service Service CHAT_MGR EMP
Chat Manager package create or replace package body chat_mgr as c_im_destination      CONSTANT varchar2(100):= 'im_account';  c_im_service_base_url CONSTANT varchar2(100):= 'http://host/service?';  c_amp                 constant varchar2(5)   := chr(38); procedure send_im_message( p_msg in varchar2) is   l_response varchar2(32000); begin   l_response:= utl_http.request                ( c_im_service_base_url               ||'imDestination='||c_im_destination               ||c_amp||'msgBody='||replace(p_msg,' ', '%20')                , null                ); end send_im_message; end chat_mgr;
Emp Informer create or replace trigger mananager_sal_update_watcher before insert or update of sal on emp for each row when (new.job ='MANAGER'       and new.sal > 4000       and new.sal > nvl(old.sal,0)) declare   l_msg varchar2(32000); begin   l_msg:= 'Selfenrichment '   ||'Salary of '||:new.ename   ||' ( manager in Department '||:new.deptno||') '   ||'is changed to '||:new.sal   ;   chat_mgr.send_im_message   ( p_msg => l_msg   ); end;
The Talking Database Details on the Employee. Employee name is Smith, his job is Analyst. He works in department 20… EMP
The Talking Database audio/mpeg, binary data http PL/SQLexposed through dbms_epg
RESTfulWebServices Simple, stateless, light weight, http-based message exchange protocol Use standard get, put, post, delete operations Use URL to pass resource reference Small, easy-to-understand messages Typically XML or JSON based Not using SOAP,  or the WS*-stack Often used directly from User Interface – (AJAX enabled) JavaScript RESTful services are primary communication mechanism for Mobile Apps
RESTful architecture http http RESTful PL/SQL APIexposed through dbms_epg
RESTful resource navigation
Publish REST-ful HTTP API – directly on top of the RDBMS
Publish REST-ful HTTP API – directly on top of the RDBMS
Consuming REST-ful services Invoking a REST-ful service is simply making an HTTP request to some URL Can be done through: utl_http httpuritype Stored Java Result can be processed as just a string or as XML, JSON or other format OSS Libraries can help with special formats, for example PL/JSON for JSON
SOAP WebServices All messages (input and output) are XML The message consists of two parts inside an envelope (a SOAP XML wrapper) The header with meta-data The body with the contents to be handled by or returned by the service The WebService Definition Language (WSDL) document describes the service An XML Schema Document (XSD) describes the structure of the XML messages XSD is like an ERD or Table Design
Calling ‘formal’  WS* andSOAP based Web Services Invoking a SOAP WS* service is making an HTTP request to some URL Can be done through: utl_http Stored Java utl_dbws Request and Responseare both SOAP-wrapped XML messages Using XMLDB functionality including XML Type these can easily by composed, transformed, validated and parsed
Oracle RDBMS 11g – Native Database WebServices Database Schema can be published through native database web services Each package corresponds with a WSDL With an operation for each Procedure or Function Auto-mapping from PL/SQL input and output parameters to WSDL (XSD) Types WSDL and XSD are dynamically generated A generic Query Service (across schema) is exposed To execute user defined queries With support for pagination and some formatting ,[object Object]

Más contenido relacionado

Destacado

Case study what you can take to the bank(primary functions)
Case study   what you can take to the bank(primary functions)Case study   what you can take to the bank(primary functions)
Case study what you can take to the bank(primary functions)rehaniltifat
 
Designpatternscard
DesignpatternscardDesignpatternscard
Designpatternscardkyutae.kang
 
Transcript of Presentation(Simple & Compound Interest) for Audience
Transcript of Presentation(Simple & Compound Interest) for AudienceTranscript of Presentation(Simple & Compound Interest) for Audience
Transcript of Presentation(Simple & Compound Interest) for Audiencerehaniltifat
 
11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilarrehaniltifat
 
09 Managing Dependencies
09 Managing Dependencies09 Managing Dependencies
09 Managing Dependenciesrehaniltifat
 
07 Using Oracle-Supported Package in Application Development
07 Using Oracle-Supported Package in Application Development07 Using Oracle-Supported Package in Application Development
07 Using Oracle-Supported Package in Application Developmentrehaniltifat
 
06 Using More Package Concepts
06 Using More Package Concepts06 Using More Package Concepts
06 Using More Package Conceptsrehaniltifat
 
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...rehaniltifat
 
08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadata08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadatarehaniltifat
 
05 Creating Stored Procedures
05 Creating Stored Procedures05 Creating Stored Procedures
05 Creating Stored Proceduresrehaniltifat
 
Remote DBA Experts 11g Features
Remote DBA Experts 11g FeaturesRemote DBA Experts 11g Features
Remote DBA Experts 11g FeaturesRemote DBA Experts
 

Destacado (11)

Case study what you can take to the bank(primary functions)
Case study   what you can take to the bank(primary functions)Case study   what you can take to the bank(primary functions)
Case study what you can take to the bank(primary functions)
 
Designpatternscard
DesignpatternscardDesignpatternscard
Designpatternscard
 
Transcript of Presentation(Simple & Compound Interest) for Audience
Transcript of Presentation(Simple & Compound Interest) for AudienceTranscript of Presentation(Simple & Compound Interest) for Audience
Transcript of Presentation(Simple & Compound Interest) for Audience
 
11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar
 
09 Managing Dependencies
09 Managing Dependencies09 Managing Dependencies
09 Managing Dependencies
 
07 Using Oracle-Supported Package in Application Development
07 Using Oracle-Supported Package in Application Development07 Using Oracle-Supported Package in Application Development
07 Using Oracle-Supported Package in Application Development
 
06 Using More Package Concepts
06 Using More Package Concepts06 Using More Package Concepts
06 Using More Package Concepts
 
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
 
08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadata08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadata
 
05 Creating Stored Procedures
05 Creating Stored Procedures05 Creating Stored Procedures
05 Creating Stored Procedures
 
Remote DBA Experts 11g Features
Remote DBA Experts 11g FeaturesRemote DBA Experts 11g Features
Remote DBA Experts 11g Features
 

Más de Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

Más de Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Último

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Último (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Reaching out from PL/SQL (Oracle Open World 2011)

  • 1. Reaching Out from PL/SQL Lucas Jellema – AMIS (Nieuwegein, The Netherlands) Oracle Open World 2011
  • 2. Ask what you can do for your country?! Do not ask what your country can do for you
  • 3. and Also Ask what you (through PL/SQL & the Database) can do for your “environment”?! By all means, ask what the world around you can mean for your PL/SQL application
  • 4. Database (SQL & PL/SQL)
  • 5. SOA Database (SQL & PL/SQL)
  • 6. JDBC, SQL Net, DB Link RSS File (Excel, PDF,…) File, O/S Email Queue Database (SQL & PL/SQL) Chat (IM) WebService User Interface REST
  • 7. The Human Side of Things
  • 8. EMP
  • 10. EMP
  • 11.
  • 12.
  • 13. Q
  • 14. Job receiveMailsendEmail retrieve_emails JSP_WRAPPER ` EMAILS Mail Server AQ Process_email notify_email_event EMP
  • 15. Java Stored Procedures Java Classes can be loaded into Oracle Database as Java Stored Procedures The “JSPs” are wrapped with a PL/SQL wrapper When invoked no different from normal PL/SQL units JSPs are in same session and transaction JSPs are static Java Stored Procedures can complement PL/SQL for example in dealings with O/S, Mail Server, Application Server, IM Server, TCP/IP, Embedded, Devices JMX is exposed by Java-in-Database to monitor
  • 16. Java Stored Procedures – Java behind PL/SQL wrapper
  • 17.
  • 18. Other scenario with database as initiator of the dialog An Update of an Employee’s Salary takes place After Update Row level trigger fires creates job to send out an email to have someone approve the salary raise Sets the status of the salary to ‘awaiting approval’ Email is sent to approver Approvers sends an answer Decision and comments Answer is received & processed by database Status of salary record is updated
  • 19.
  • 20.
  • 24. …Email CommunicationProtocols: http, ftp, tcpip, sms, grid, JDBC, JDBC-ODBC, .Net, … JMS Operating System& File System EJB
  • 25. http http ftp webdav dbms_epg (mod_plsql) XMLDB utl_mail external table utl_file
  • 26. APEX The Ultimate Database User Interface dbms_epg (mod_plsql)
  • 27. Database Reaching Out to Human partners DBMS_EPG (or good old mod_plsql) Expose HTML and RSS & Process HTTP requests XMLDB Expose and allow manipulation of resources through HTTP, FTP and WEBDAV Stored Java Procedures to Interact with Mail Server, Chat; leverage Process human file formats (PDF, Excel, images, …) Supplied packages: UTL_MAIL, UTL_FILE
  • 28. Expose Stored Procedures via HTTP Stored Procedures and Packages can be configured to handle HTTP requests Using the supplied DBMS_EPG package They compose the HTTP response by writing strings to the HTP.P procedure Or return binary documents using wpg_docload Database infrastructure handles HTTP communication including security, headers, get/post parameters Embedded PLSQL Gateway – powering APEX and other PL/SQL based HTML UI Expose RESTful Web Services Publish RSS Feeds Asynchronous HTTP notifications
  • 29. Publish package as http-based API using dbms_epg Hide database protocol Not its physical location nor the schema, and user authentication HTTP communication is truly cross technology Browser, Java, .Net, JavaScript & RIA clients, … Is also possibly remote, across networks, firewalls etc. easier than normal JDBC connections Can publish in various formats Text, HTML, CSV, JSON, XML, RSS Use case:cross-technology, internal no WS*/ESB http
  • 30. Simple DBMS_EPG example sys scott scott
  • 32. Call for decoupling Minimize dependencies and maximize interoperability and reuse Through decoupling: Encapsulate functionality, legacy and complexity Interact through well defined interfaces Support standard protocols and cross technology facilities (XML, HTTP, JSON, SQL) Leverage asynchronous exchange whenever relevant Take care of the data(base) ‘No SQL’ approach: SQL is encapsulated inside database API (View and Package) SQL is not left to application developers or 3rd party frameworks Data integrity is enforced inside the database
  • 33. Extreme Encapsulation View on top of table(collection) With instead of trigger handling DML Data queried from NUMBERS is produced in PL/SQL – no underlying table involved Data manipulated in NUMBERS is processed in memory View Numbers Package P
  • 35. JDBC, SQL Net, DB Link Chat (IM) RSS Email File, O/S http http AQjms http ftp webdav Queue utl_http (httpuritype) dbms_epg (mod_plsql) AdvancedQueuing Database (SQL & PL/SQL) XMLDB WebService JDBC/ODBCOCI, DB Link REST utl_mail external table utl_tcp utl_file native dbws
  • 36. XML Relational/Oracle Type WebLogic Server Database Native DB WebService HTTP EPG http PL/SQL package ADF BC/SDO WS JSON/ CSV JDBC SOA Suite SDO XML XML & XSD WS JAX-WS Ref Cursor JPublisher WS DB Types & Coll XML AQ Types AQ View JMS Queue utl_file, BFILE, URITYPE JMS Oracle Service Bus Table EJB/JPA EJB Other (Email, FTP/File, XMPP/Chat) XMLDB File FTP UMS Chat/IM XMPP Server File/FTP Server Email Server
  • 37. Be a good host Provide services Views for easy querying Stored Procedure based APIs For data retrieval and data manipulation Queues as way-in (publish) as well as way-out (allow subscription) for events Send change notifications Http based push messages Query Result Change Notification
  • 38. The Super Host Query Result Change Notification
  • 39. Query Result Change Notification Continuous Query Notification: Send an event when the result set for a query changes Background process calls PL/SQL Handler or Java Listener or OCI client when thecommit has occurred Event contains rowidof changed rows Used for: Refreshing specificdata caches (middletier, global context) (custom) Replication Java Listener PL/SQL
  • 40. Database to Middle Tier to Client notification through http Session cache Application Scope event handler D 4 3 9 C 5 A servlet servlet 1 8 2 HTTP B Proce-dure 7 UTL_HTTP EMP Job 6
  • 41. Cross Tier Push Web Browser JEE Application Server evtlsnr servlet RDBMS job trg
  • 42. More Interaction from & to the database Files into the database Database to leverage O/S Stored Java for non-human interactions WebServices – publish and consume Engage Middle Tier as ‘agent’
  • 43. The browser in your databaseIntroducing UTL_HTTP ≈ select utl_http.request ( 'http://technology.amis.nl/blog/?feed=rss2' , null ) from dual
  • 44. The database can ask the middle tier to access and provide services Get information from (or to) services on the intranet or internet Publish/Send information to the internet (RSS, email, chat) Can tell the middle tier Interesting events Alert about (im)pending issues, attempted rule violations, … The outcome of batch calculations DB vs. Middle Tier:Security, Functionality, Load Balance WebLogic Server 11g SOA Suite 11g Web App AQ
  • 45. Happy Chatting – IM from the Database Database can call a middletier service using utl_httpor HTTPURITYPE Passing in the destinationand the message content This Service sends it onwards to the Google Talk Server WebLogic Server 11g Service Service CHAT_MGR
  • 46. Database actively informs on events WebLogic Server 11g Service Service CHAT_MGR EMP
  • 47. Chat Manager package create or replace package body chat_mgr as c_im_destination CONSTANT varchar2(100):= 'im_account'; c_im_service_base_url CONSTANT varchar2(100):= 'http://host/service?'; c_amp constant varchar2(5) := chr(38); procedure send_im_message( p_msg in varchar2) is l_response varchar2(32000); begin l_response:= utl_http.request ( c_im_service_base_url ||'imDestination='||c_im_destination ||c_amp||'msgBody='||replace(p_msg,' ', '%20') , null ); end send_im_message; end chat_mgr;
  • 48. Emp Informer create or replace trigger mananager_sal_update_watcher before insert or update of sal on emp for each row when (new.job ='MANAGER' and new.sal > 4000 and new.sal > nvl(old.sal,0)) declare l_msg varchar2(32000); begin l_msg:= 'Selfenrichment ' ||'Salary of '||:new.ename ||' ( manager in Department '||:new.deptno||') ' ||'is changed to '||:new.sal ; chat_mgr.send_im_message ( p_msg => l_msg ); end;
  • 49. The Talking Database Details on the Employee. Employee name is Smith, his job is Analyst. He works in department 20… EMP
  • 50. The Talking Database audio/mpeg, binary data http PL/SQLexposed through dbms_epg
  • 51.
  • 52.
  • 53. RESTfulWebServices Simple, stateless, light weight, http-based message exchange protocol Use standard get, put, post, delete operations Use URL to pass resource reference Small, easy-to-understand messages Typically XML or JSON based Not using SOAP, or the WS*-stack Often used directly from User Interface – (AJAX enabled) JavaScript RESTful services are primary communication mechanism for Mobile Apps
  • 54. RESTful architecture http http RESTful PL/SQL APIexposed through dbms_epg
  • 56. Publish REST-ful HTTP API – directly on top of the RDBMS
  • 57. Publish REST-ful HTTP API – directly on top of the RDBMS
  • 58. Consuming REST-ful services Invoking a REST-ful service is simply making an HTTP request to some URL Can be done through: utl_http httpuritype Stored Java Result can be processed as just a string or as XML, JSON or other format OSS Libraries can help with special formats, for example PL/JSON for JSON
  • 59. SOAP WebServices All messages (input and output) are XML The message consists of two parts inside an envelope (a SOAP XML wrapper) The header with meta-data The body with the contents to be handled by or returned by the service The WebService Definition Language (WSDL) document describes the service An XML Schema Document (XSD) describes the structure of the XML messages XSD is like an ERD or Table Design
  • 60. Calling ‘formal’ WS* andSOAP based Web Services Invoking a SOAP WS* service is making an HTTP request to some URL Can be done through: utl_http Stored Java utl_dbws Request and Responseare both SOAP-wrapped XML messages Using XMLDB functionality including XML Type these can easily by composed, transformed, validated and parsed
  • 61.
  • 62. Limited control over WSDL & XSD
  • 63.
  • 64. Session Plugging Sunday – Gold Nuggets in ADF (S32502)3.15-4.15, Moscone West-2000 Tuesday – Reaching Out from PL/SQL (S08625 )10.15-11.15, Mariott Marquis, Salon 7 Tuesday – (JavaOne) Cross Tier Push Architecture (Don’t call us, we’ll push you) (S24722)4.30-5.15 PM, Hotel Nikko, Monterey I/II Wednesday – Push to the Limit: Rich and Proactive User Interfaces with Oracle ADF (S08620)5-6 PM, Mariott Marquis, Golden Gate A Thursday –Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (S08623)4-5 PM, Moscone West – 2020

Notas del editor

  1. PL/SQL applications do not live on an island. Increasingly, applications need relate to the rest of the world. Either to make themselves and the services they provide accessible to external parties - that may not speak PL/SQL at all - or to access information or enlist help from external services. PL/SQL can do much more than invoke other PL/SQL applications or execute SQL as it provides many inbound and outbound channels for such interactions. This session demonstrates a number of channels and discusses when and why to use them and how to use them, including  HTTP and WebServices for RSS, SOAP and REST, Java for JDBC, JMS, Email and Chat. The demos include PL/SQL responding to requests as well as pushing messages out to external consumers.
  2. By reaching out I help ensure that the (Oracle) database keeps its rightful place in the IT landscape of organizations ( as well as the database developers)
  3. Screenshot:Frank sends email to Maggie – with a query on EmployeesAfter some time, a response is sent to this particular email – by the queue listener using the JSP to send(list of employee data, corresponding with “query”)
  4. The job is scheduled to run every minuteIt calls upon the Java Stored Procedure to retrieve the newly arrived email-messages – in a specific accountFor each message, an email event is enqueue in the AQ Queue. The new email-messages are subsequently removed.A queue listener has been registered on the queue with email eventsEvery email (event) is dequeued and processedThe email can contain query statements – in some form – that the processor knows how to handleThe reply to the query is then sent in an email message that forms the response to the original email messageNote: other listeners could dequeue the email events and process them in other waysIncoming messages from other sources could be retrieved and processed in a similar way as email messages (VOIP, SMS, IM/Chat, Twitter)The database can both send and retrieve messages from such serversNote: Java is much better equipped than plain PL/SQL (that really only has utl_http, utl_tcp, utl_smtp) for customized, flexible, advanced interaction with a wide range of infrastructures and technologies.
  5. Write functional JavaFor example in JDeveloperUsing the full richness of the IDE and of the Java Language (and libraries)Wrap with PL/SQL Map Java & PL/SQL data types Load into DatabaseCustom classes and libraries (JAR-files)Set appropriate privilegesInvoke JSP through a normal PL/SQL interface
  6. Challenge:Link email sent out to response received (some identification is required)Structure of the answer: how to recognize the decision and comment
  7. Java is much better equipped than plain PL/SQL (that really only has utl_http, utl_tcp, utl_smtp) for customized, flexible, advanced interaction with a wide range of infrastructures and technologies.Java libraries can help to generate PDF, create and/or read Word and Excel etc.Through JMS – external Java applications can be accessed in a decoupled way. For example: Complex Event Processor
  8. Java is much better equipped than plain PL/SQL (that really only has utl_http, utl_tcp, utl_smtp) for customized, flexible, advanced interaction with a wide range of infrastructures and technologies.Java libraries can help to generate PDF, create and/or read Word and Excel etc.Through JMS – external Java applications can be accessed in a decoupled way. For example: Complex Event Processor
  9. http://tylermuth.wordpress.com/2008/02/04/image-caching-in-plsql-applications/
  10. 1.8.3.1 Continuous Query Notification EnhancementsContinuous Query Notification has been enhanced to provide notifications when the result set for a query changes on the server. These notifications can be registered at the row-level, rather than just at the table-level. Thus, alerts will only be sent when changes to the specific rows selected have been modified.Applications, such as Radio Frequency Identification (RFID), can now receive notifications directly from the database rather than build this functionality into the application.
  11. http://technology.amis.nl/blog/?p=2498
  12. http://technology.amis.nl/blog/?p=2498