SlideShare ist ein Scribd-Unternehmen logo
1 von 80
SOA for PL/SQL
Developers
OPP 2010
28th October, 2010
Lucas Jellema
AMIS, The Netherlands
WebLogic Server 11g
SOA Suite 11g
Blogger
Presenter
Author
SOA is not…
• XML
• WebService
• SOAP
• Middle Tier or Application Server
• Java
• High level – abstract – architecture
• Unrelated to the database and PL/SQL
• Complex
only/always
SOA = BAD
SOA =
Business
Agility through
Decoupling
Decoupling
≈
Managing Dependencies
minimize impact of change while
maximizing reusability
Types of decoupling
• Functional
– Interface - Encapsulation of implementation
• Design by Contract, Implement by Design
• Design Time
– Separate teams working in parallel based on mutually
agreed interface definitions
• Technical
– No proprietary technology, protocol, message format
– Standards based (XML, HTTP, RSS, WSDL…)
• Temporal
– Asynchronous communication (separate response)
Objectives (1/2)
• Business Agility
– (Faster) responses to (new and changing) market
demands and user requirements
• IT Flexibility
– Optimize locally without impact ‘globally’
– Prepare for future developments
• Lower costs
– Through reuse, better integration, decoupling,
automation of manual tasks & human coordination
Objectives (2/2)
• (longer term) Higher Quality and Faster
(traceable) Process execution
– Automated data exchange cross boundaries
– Workflow and task orientation
• integrated, cross department, in a controlled way based
on sound understanding of the business processes
– Business Event driven interaction
• Manage risks and fear
Common Characteristics in SOA
• Cross Boundaries
– Cross Technology - .Net, Uniface, Java, Tibco
– Cross Channel – Back Office, Web, PDA, API
– Cross User Group – Internal, Agents, Self Service
– Cross Domain – Multiple departments & systems
– Cross Enterprise – Interact with external partners
• Data synchronization or consolidation
• Management whim Vision
• From Database angle: providing services
What is a service?
• Standards based callable, reusable functionality
according to an interaction contract
• In terms of functionality (WSDL – compare
Package Specification)
– What are the input parameters
– What are the output parameters (if any)
– What are the exceptions
– How (when, where) is the
response delivered
– Implementation is hidden!
What is a service (2)?
• In terms of operational QoS (Quality of Service)
define in a Service Level Agreement (SLA)
– Availability
– Stability & Release schedule
– Response Time
– Peak load capacity
– Price
– Reliability, Confidentiality
– Address, protocol
Services in various shapes
• Library (dll, jar)
• Java Class (public methods) or an EJB
(interface)
• URL
• RSS feed
• Portlet (UI Service)
• SOAP WebService
• Database View or Package Specification
• ….
If it exposes a clear,
standardized interface
Example of a service call?
• Browser sends
http request to a URL
– Text based message
with headers and body
What is a service call?
• Server returns a response
– Another text based
message with headers
and body
SOA Concepts in the database
Key SOA concepts and lessons
• Functional interface, hiding implementation details
– for example Package specification
Design by Contract
Encapsulation
Decoupling
Assertion
specification
body
Encapsulation
specification
body
specification
body
Decoupling
Contract Specification Assertions
function func ( p_name in varchar2
,p_sal in number
,p_hiredate in date
)
return number
function func ( p_name in varchar2
,p_sal in number
,p_hiredate in date
)
return number
Expectation
regarding Valid Input
Agreed Contract
Indication of possible
Exceptions
Description of
output value
-- Description of this function
--
-- %param p_name Name of an Employee
-- {*} Requirement Name must be provided
--
-- %param p_sal Salary of the Employee
-- {*} Requirement Salary must be greater than zero
--
-- %param p_hiredate Hiredate
-- {*} Requirement Hiredate must be in the Future
--
-- %raises DBC.AssertFail
-- When a Parameter does not match the requirement
--
-- %raises EmployeeNotFound
-- When a an employee with p_name can not be found
--
-- %return
-- The value returned is an integer: 0 < return <= 4
Key SOA concepts and lessons
• Functional interface, hiding implementation details
– Simple View API (possibly with IOT) – with complex joins,
analytical functions, advanced SQL and PL/SQL integration
– Package specification
API Services for consumers
• Views – for encapsulation of (legacy) model, multi-table
join, collection integration, SQL hiding (but still SQL)
• PL/SQL – for encapsulation, cursor based data retrieval,
DML hiding, table decoupling (no SQL)
View
Providing a ‘business object’ API
• DML API: can be a View – aided by Instead Of trigger
• Insert of one new row in
USERS_VW can actually
be four new records
– USER, PERSON,
EMAIL_TYPE
EMAIL_ADDRESS
USERS
PERSONS EMAIL_
ADDRESSES
EMAIL_TYPE
USERS
*
* *
*
FIY Data Service API: returning
cursors
• Fetch it Yourself!
• Cursor opened to be fetched from
– Data is gathered and
pre-processed before being returned
– SQL is wrapped
• And can be constructed at run-time
– Access privileges are taken care of
– Cursors can be handled elegantly
in most client languages and technologies
• For example Java: JDBC ResultSet
Prompt
Prompt
Prompt
Prompt
Prompt
Prompt Prompt Prompt Prompt
A
ct
ie
A
ct
ie
HRM_API
CURSOR
Demo
• Create a database “service”
– for retrieving a department, its employees and the
manager for each employee
– that is promotes decoupling and encapsulates
implementation
– that can be extended to also support
data manipulation
• Leveraging Types and Collections
to support nested structures
such as master-details DEPT EMP
DEPARTMENTS
HRM
Service
API
SQL
PL/
SQL
•Cursor
•Collection
•XML
Key SOA concepts and lessons
• Functional interface, hiding implementation details
– Package specification
– View API
• Reusable, standardized services as flexible building
blocks
• Aggregate and Combine into more valuable reusables
• Governance: security, management of services, SLAs
– Allow for configuration without development or
deployment effort
• Decoupling in every aspect!
Coupling & Decoupling in Oracle RDBMS
Decoupling
• Package Specification
• Views (+ Instead of Trigger)
• Triggers in general
• DBMS_JOB
• Advanced Queuing
• Publish (intranet) XML
& WebService
• %TYPE instead of hardcoded
data type
• Centrally managed
“parameter (injection) service”
– instead of local constants
– instead of hard coded values
• Use generic (SOA) services
Coupling
• Database Link
• SYSDATE and USER
• Application performing SQL
against tables
– SQL all over the place
• Access database from DMZ or
even outside firewall
– Publish WebService or Web
Application on Internet
• Too frequent use of
dbms_output.put_line
• Copy and paste of code
• Poorly documented code
• Use of exotic features
summary
Decoupling Applications & Data
Data
Application
(User Interface)
Application
(User Interface)
Data
Decoupling Applications & Data
Application
(User Interface)
Data
Application
(User Interface)
Decoupling Applications & Data
(User Interface) Application
Workflow
Engine
Email
IM
Fax
CMS
‘formal’ SOA infrastructure
Enterprise Service Bus
Data
Service Service Service
App 2
Data
Service
External
Partner
Service
App 1
The Enterprise Service Bus
• Should first of all be considered ‘a pattern’
• Virtualizes services – hides the real service from
consumers
– Deals with the physical location of the services
– Interacts with the technology used to implement services
• Adapts synchronous to a-synchronous and vv.
• Can use multiple real services to offer one virtual
(composite) service
• Allows callers to use a generic, canonical message
structure that it will transform to the service contract
– It may even allow callers to use their own “lingo”
Canonical Data Model
• Common Business Language
– Esperanto for service invokers
Data
Data
ServiceService
Clients
Customers
The Enterprise Service Bus (2)
• Handles various QoS & SLA aspects
– sometimes in concert with tools like OWSM
– Encryption, signing, authentication
– Retry and fallback
– “Throttle” (prevent peak loads)
• Does monitoring, tracking & auditing,
reporting, notification and escalation
• Works with Adapters to access technologies
– like RDBMS (SQL, PL/SQL), AQ and JMS, File
System, FTP, Java, E-Business Suite
Tables & Business Rules
Views
PL/SQL “Services”
Oracle
Forms
Forms
DWH
External Partners
Web Application
Email
Server
Java based
SQL*
Loader
Modern Architecture
and the role of the database
Tables & Business Rules
Views
PL/SQL “Services”
Oracle
Forms
Forms
External Partners
Web Application
Email
Server
Java based
(extranet)
Web Application
Internal Users
(outside
intranet/firewall)
“Mobile
Enabled”
ADF 11g
ADF 11g
Enterprise Service and Process Bus
(SOA Suite 11g: BPEL, Mediator,
Human Task, Business Rules, Technology Adapters)
files
UCM
(Document
Management)
DWH
Operational
Dashboard
APEX
Tables & Business Rules
Views
PL/SQL “Services”
Oracle
Forms
Forms
External Partners
Web Application
Email
Server
Java based
(extranet)
Web Application
Internal Users
(outside
intranet/firewall)
“Mobile
Enabled”
ADF 11g
ADF 11g
Enterprise Service and Process Bus
(SOA Suite 11g: BPEL, Mediator,
Human Task, Business Rules, Technology Adapters)
files
UCM
(Document
Management)
DWH
Operational
Dashboard
APEX
The SOA Suite 11g
• The engine that
– runs applications that implement the WebServices
– implements the Enterprise Service Bus [pattern]
– Lives inside the WebLogic Server application server
WebLogic Server 11g
SOA Suite 11g
WebServices
SOA Suite 11g Composite
Applications
• SOA Composite Applications consist of special
components that process XML messages:
– Decision Logic (go left or right, discount is X)
– Human Workflow
(end user must act)
– BPEL (service
orchestration)
– Mediator (filter,
transform and route
messages)
SOA Suite 11g – calling out to
external service and adapters
• SOA Composite Applications can call out to external
WebServices and Adapters
• Adapters connect to various technologies
– Database
(SQL & PL/SQL)
– Advanced Queuing
– File & FTP
– JMS, MQ Series, EBS
TCP/IP Sockets
• Adapters can trigger
application execution
Publish Services from the Database
• Describe Services in WSDL and XSL
– Specify operations, input and output parameters
– Describe complex data structures of
parameters
• Publish Database-based Services
– Plain URL services through PL/SQL packages
• based on MOD_PLSQL, XML DB or DBMS_EPG
– Full blown SOAP WebServices
• 11g Native WebService (publish PL/SQL package), use
UTL_DBWS, JPublisher for Java proxy class in AppServer
– Leverage SOA Suite to expose Database functionality
• Through the database adapter in SOA Suite/WLS
#1 SOA task: Publish PL/SQL
Package through ESB
• Use Database Adapter to create
Service, combine with ESB Routing Service
• Use case:
– external access to services
– virtualize location and technology of service –
• route to service based on content of the request
– virtualize part of contract of service
• Package-derived XSD not suitable for consumers
– handle peak loads
– monitor service levels and trace service access
WS*
Demo
• Create SOA Composite application
• Configure Database Adapter to interact with
HRM_SERVICE_API package
• Create a Mediator to transform XML message
from the db adapter to the desired format
XSD for the HRM WebService
Transform XML
Demo
• Create SOA Composite application
• Configure Database Adapter to interact with
HRM_SERVICE_API package
• Create a Mediator to transform XML message
from the db adapter to the desired format
• Deploy SOA Composite in SOA Suite in WLS
• Test the Web Service based on the PL/SQL
package based on the DEPT and EMP table
SOA Composite Application
exposes Hrm Web Service
Enterprise Service Bus
in action
• One team responsible for exposing
services to external consumers
– Working with those customers for establishing the
contract and testing across the firewall
– This team built from internally provided services
• Team two worked inside database – providing
package based API for granular services
• Team three created ESB level database
adapter and routing/mapping services
WS*
Business Events
Dealer
Order
Event
Pool
Sales Desk
Marketing
Customer Relations
Shipping
Event Driven Architecture
• EDA (is also Extremely Decoupled Architecture)
• Any system – including database – reports events
that may be interesting to other parties
• The Event backbone (could be the ESB)
– Defines Event Types (name, structure of payload)
– Registers Event Listeners (“please call me when the event
occurs and send the details”)
– Receives events – instances of the predefined event type
with payload and timestamp
• Propagate events to all registered listeners
• Without blocking the event producer
Event Driven Architecture
(EDA)
Data
Service Service Service
App 2
Data
Service
External
Partner
Service
App 1
Leveraging SOA Suite 11g
from the database
• The database can call out to the SOA Suite 11g
– With UTL_HTTP or Stored Java (2-way,
synchronous)
– Through Advanced Queuing or Database Adapter
polling (one way)
WebLogic Server 11g
SOA Suite 11g AQ
AQ
Call the “getOilPrice Service”
• We need to know the oil price
for some calculations…
• But that price is not constant,
we need the current price
•
• We do not want the
exact market price, we have
our own contracts
• Let’s define a constant in a
package
• Oh, well, let’s call a
WebService – Yahoo?
• Ah, the Purchasing
department publishes a
WebService for such data
Calling a Web Service
• Send an XML document to a URL via HTTP
– Request message contains headers and body
• Service (server) returns another XML document
– Response message contains headers and body
• Response can be a fault (a WebService exception)
• Headers are used for meta-data
– Sender (identity, address), Return address
– Encryption, digitally signed,
– Type of content, type of compression
PurchasingPrices available via SOAP
• PurchasingPrices Service is available as a (SOAP
based) WebService (implemented using BPEL)
– Service and WSDL are available (URLs are known)
PurchasingPrices available via SOAP
• SOAP call over HTTP can be made from PL/SQL
– Using UTL_HTTP
• Assemble SOAP message
– Envelope
– Payload
• Name of product
– Make HTTP Post request
– Process Response
• Retrieve and Return the product price
– “re-Publish” service as PL/SQL function
WebLogic Server 11g
SOA Suite 11g
PurchasingPrices available via SOAP
WebLogic Server 11g
SOA Suite 11g
Publishing events to the EDN
from within the database
• Publishing events to the Event Delivery Network
from table triggers or PL/SQL APIs
– Is best done via Advanced Queuing
• The same route in reverse can consume events from
EDN into the database
The database can ask the middle
tier for other services as well
• Get information from (or to) services on the intranet
or internet (‘please get us the NBA scores ’)
• Publish/Send information to the internet
(RSS, email, chat)
• Can tell the middle tier
– Interesting events
and data changes
• Trigger cache refresh!
– Alert about (im)pending issues,
attempted rule violations, …
– The outcome of batch calculcations
WebLogic Server 11g
SOA Suite 11g
AQ
Web App
summary
Complex Event Processing
to process on behalf of database
events
JMS
HTTP
JMX
File
DB
Complex Event
Processor
Event
Consumer
Alert
JMS
Dashboard
SOA Application
DB
Data Warehouse
WebService
File
The Data Avalanche
• The league of real time events
– Continuous stream of a multitude of tiny events with
hardly any payload, most of which are not interesting at all
– Sent from physical sensors (temperature, pressure, RFID,
security gates), process sensors, Twitter, manufacturing
equipment, database triggers, web servers, ESBs, stock
trade tickers, sport statistics, RSS, network switches, …
Making Sense of Non-sense
Complex Event Processing
• Useful information could be hidden in those streams
of events – and CEP extracts it
– By detecting patterns, deviations, aggregations in these
event streams
– CEP publishes ‘meaningful’ (business) events to report its
findings – by executing some Event Processing Langugae
events
Complex Event
Processor
Continuous Query Language (CQL)
• Standard extension/complement to SQL
– For handling large volumes of continuously arriving events
– Executing the queries continuously
• Operates on streams of continually arriving events
instead of static relational data sets
– Events can be enriched with context
– Results keep being produced as event stream
• Is used for comparing events of same type, to find
– Trends and Patterns
– Exceptions
– Aggregates
Complex Event
Processor
summary
Business Agility through
Decoupling
PL/SQL Package
PL/SQL Package
PL/SQL Package
PL/SQL Package
PL/SQL Package
PL/SQL Package
PL/SQL Package
PL/SQL Package
PL/SQL Package
PL/SQL Package
True Injection
Dependency_Injector
After Logon
trigger
setMailServer
EMAILER
setInterestRate
setVatRate
TAX_CALC
setFileInName
setLogLevel
LOGGER
setUrlProxy
RSS_READER
Configuration Values
mailserver
interest_rate
vat_rate
file_in_name
log_level
url_proxy
emailer
tax_calc
tax_calc
logger
logger
rss_reader
amislin32
4.5
17.6
app_log_x
debug
amisvm2…
property package value
Decoupling from Table to ESB+
http
WEBDAVFTP
http
WS/SOAP
WS*
WS*
WS*
WSRP
coupled
complex
Increasingly decoupled
• More hiding of the implementation
• More Formal Interface Contract
• Less (proprietary) technology & more
standards for interacting
• Less exposure of (legacy) data model
• More support for asynchronous interaction
• More reuse potential
• Pervasive throughout enterprise
• More suitable for external consumption
Comes at a cost…
• More run time overhead
– Additional tiers
– XML serialization and deserialization
• More infrastructure
– Burden of Administration
– License Costs
– Hardware
• Broader skills palette – more stuff to master
• Harder to get started
Summary
• SOA is about decoupling, integration & reuse
• SOA Suite 11g runs service implementations
– That can access database and other technologies
through adapters – either inbound or outbound
• Database can access services from utl_http
– Or AQ, Database polling or File polling
• SOA Suite hooks into database via SQL,
PL/SQL, AQ or even XML DB file protocols
• Many SOA concepts can be applied without
the SOA Suite, using standard DB features
Tables & Business Rules
Views
PL/SQL “Services”
Oracle
Forms
Forms
External Partners
Web Application
Email
Server
Java based
(extranet)
Web Application
Internal Users
(outside
intranet/firewall)
“Mobile
Enabled”
ADF 11g
ADF 11g
Enterprise Service and Process Bus
(SOA Suite 11g: BPEL, Mediator,
Human Task, Business Rules, Technology Adapters)
files
UCM
(Document
Management)
DWH
Operational
Dashboard
APEX
Resources
• Presentation and demos are on our blog
– http://technology.amis.nl/blog
• Contact me at:
– lucas.jellema@
amis.nl

Weitere ähnliche Inhalte

Was ist angesagt?

Indexes and Indexing in Oracle 12c
Indexes and Indexing in Oracle 12cIndexes and Indexing in Oracle 12c
Indexes and Indexing in Oracle 12cOren Nakdimon
 
Procedures and triggers in SQL
Procedures and triggers in SQLProcedures and triggers in SQL
Procedures and triggers in SQLVikash Sharma
 
On hand quantities import
On hand quantities importOn hand quantities import
On hand quantities importMuhammad Luqman
 
Oracle database performance tuning
Oracle database performance tuningOracle database performance tuning
Oracle database performance tuningYogiji Creations
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19cMaria Colgan
 
MySQL 8.0 EXPLAIN ANALYZE
MySQL 8.0 EXPLAIN ANALYZEMySQL 8.0 EXPLAIN ANALYZE
MySQL 8.0 EXPLAIN ANALYZENorvald Ryeng
 
Less06 networking
Less06 networkingLess06 networking
Less06 networkingAmit Bhalla
 
Ame how to diagnose issues with the default approver list in purchasing when ...
Ame how to diagnose issues with the default approver list in purchasing when ...Ame how to diagnose issues with the default approver list in purchasing when ...
Ame how to diagnose issues with the default approver list in purchasing when ...Abdul Rahman Fouad Thabit
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder
 
JSON in Oracle 18c and 19c
JSON in Oracle 18c and 19cJSON in Oracle 18c and 19c
JSON in Oracle 18c and 19cstewashton
 
Retrieving data using the sql select statement
Retrieving data using the sql select statementRetrieving data using the sql select statement
Retrieving data using the sql select statementSyed Zaid Irshad
 
Oracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSOracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSDoug Gault
 
PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts Bharat Kalia
 

Was ist angesagt? (20)

Indexes and Indexing in Oracle 12c
Indexes and Indexing in Oracle 12cIndexes and Indexing in Oracle 12c
Indexes and Indexing in Oracle 12c
 
Procedures and triggers in SQL
Procedures and triggers in SQLProcedures and triggers in SQL
Procedures and triggers in SQL
 
SQL JOINS
SQL JOINSSQL JOINS
SQL JOINS
 
On hand quantities import
On hand quantities importOn hand quantities import
On hand quantities import
 
Oracle database performance tuning
Oracle database performance tuningOracle database performance tuning
Oracle database performance tuning
 
MYSQL - PHP Database Connectivity
MYSQL - PHP Database ConnectivityMYSQL - PHP Database Connectivity
MYSQL - PHP Database Connectivity
 
Alerts in r12
Alerts in r12Alerts in r12
Alerts in r12
 
Php with MYSQL Database
Php with MYSQL DatabasePhp with MYSQL Database
Php with MYSQL Database
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19c
 
Mysql
MysqlMysql
Mysql
 
MySQL 8.0 EXPLAIN ANALYZE
MySQL 8.0 EXPLAIN ANALYZEMySQL 8.0 EXPLAIN ANALYZE
MySQL 8.0 EXPLAIN ANALYZE
 
Rapid Home Provisioning
Rapid Home ProvisioningRapid Home Provisioning
Rapid Home Provisioning
 
Less06 networking
Less06 networkingLess06 networking
Less06 networking
 
Ame how to diagnose issues with the default approver list in purchasing when ...
Ame how to diagnose issues with the default approver list in purchasing when ...Ame how to diagnose issues with the default approver list in purchasing when ...
Ame how to diagnose issues with the default approver list in purchasing when ...
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools short
 
JSON in Oracle 18c and 19c
JSON in Oracle 18c and 19cJSON in Oracle 18c and 19c
JSON in Oracle 18c and 19c
 
Retrieving data using the sql select statement
Retrieving data using the sql select statementRetrieving data using the sql select statement
Retrieving data using the sql select statement
 
Oracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDSOracle Office Hours - Exposing REST services with APEX and ORDS
Oracle Office Hours - Exposing REST services with APEX and ORDS
 
Oracle hrms bg setup examples
Oracle hrms bg setup examplesOracle hrms bg setup examples
Oracle hrms bg setup examples
 
PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts
 

Andere mochten auch

Introducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database ProfessionalsIntroducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database ProfessionalsLucas Jellema
 
ORACLE PL SQL FOR BEGINNERS
ORACLE PL SQL FOR BEGINNERSORACLE PL SQL FOR BEGINNERS
ORACLE PL SQL FOR BEGINNERSmohdoracle
 
How soa makes_moving_to_the_cloud_easier
How soa makes_moving_to_the_cloud_easierHow soa makes_moving_to_the_cloud_easier
How soa makes_moving_to_the_cloud_easierrobbinspaul
 
Oracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented WorldOracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented WorldOracleContractors
 
Pattern driven Enterprise Architecture
Pattern driven Enterprise ArchitecturePattern driven Enterprise Architecture
Pattern driven Enterprise ArchitectureWSO2
 
Advanced PLSQL Optimizing for Better Performance
Advanced PLSQL Optimizing for Better PerformanceAdvanced PLSQL Optimizing for Better Performance
Advanced PLSQL Optimizing for Better PerformanceZohar Elkayam
 
ICTA Technology Meetup 06 - Enterprise Application Design Patterns
ICTA Technology Meetup 06 - Enterprise Application Design PatternsICTA Technology Meetup 06 - Enterprise Application Design Patterns
ICTA Technology Meetup 06 - Enterprise Application Design PatternsCrishantha Nanayakkara
 
Oracle SQL, PL/SQL Performance tuning
Oracle SQL, PL/SQL Performance tuningOracle SQL, PL/SQL Performance tuning
Oracle SQL, PL/SQL Performance tuningSmitha Padmanabhan
 
Oracle 11g PL/SQL notes
Oracle 11g PL/SQL notesOracle 11g PL/SQL notes
Oracle 11g PL/SQL notesanilakduygu
 
Take Full Advantage of the Oracle PL/SQL Compiler
Take Full Advantage of the Oracle PL/SQL CompilerTake Full Advantage of the Oracle PL/SQL Compiler
Take Full Advantage of the Oracle PL/SQL CompilerSteven Feuerstein
 
PL/SQL Fundamentals I
PL/SQL Fundamentals IPL/SQL Fundamentals I
PL/SQL Fundamentals INick Buytaert
 
DBMS lab manual
DBMS lab manualDBMS lab manual
DBMS lab manualmaha tce
 
All About PL/SQL Collections
All About PL/SQL CollectionsAll About PL/SQL Collections
All About PL/SQL CollectionsSteven Feuerstein
 
Role of integration in Digital Transformation
Role of integration in Digital TransformationRole of integration in Digital Transformation
Role of integration in Digital TransformationWSO2
 

Andere mochten auch (20)

Introducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database ProfessionalsIntroducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
 
ORACLE PL SQL FOR BEGINNERS
ORACLE PL SQL FOR BEGINNERSORACLE PL SQL FOR BEGINNERS
ORACLE PL SQL FOR BEGINNERS
 
How soa makes_moving_to_the_cloud_easier
How soa makes_moving_to_the_cloud_easierHow soa makes_moving_to_the_cloud_easier
How soa makes_moving_to_the_cloud_easier
 
Plsql les04
Plsql les04Plsql les04
Plsql les04
 
plsql les06
 plsql les06 plsql les06
plsql les06
 
Oracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented WorldOracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented World
 
plsql les01
 plsql les01 plsql les01
plsql les01
 
Pattern driven Enterprise Architecture
Pattern driven Enterprise ArchitecturePattern driven Enterprise Architecture
Pattern driven Enterprise Architecture
 
Advanced PLSQL Optimizing for Better Performance
Advanced PLSQL Optimizing for Better PerformanceAdvanced PLSQL Optimizing for Better Performance
Advanced PLSQL Optimizing for Better Performance
 
ICTA Technology Meetup 06 - Enterprise Application Design Patterns
ICTA Technology Meetup 06 - Enterprise Application Design PatternsICTA Technology Meetup 06 - Enterprise Application Design Patterns
ICTA Technology Meetup 06 - Enterprise Application Design Patterns
 
Oracle SQL, PL/SQL Performance tuning
Oracle SQL, PL/SQL Performance tuningOracle SQL, PL/SQL Performance tuning
Oracle SQL, PL/SQL Performance tuning
 
Oracle 11g PL/SQL notes
Oracle 11g PL/SQL notesOracle 11g PL/SQL notes
Oracle 11g PL/SQL notes
 
Take Full Advantage of the Oracle PL/SQL Compiler
Take Full Advantage of the Oracle PL/SQL CompilerTake Full Advantage of the Oracle PL/SQL Compiler
Take Full Advantage of the Oracle PL/SQL Compiler
 
PL/SQL Fundamentals I
PL/SQL Fundamentals IPL/SQL Fundamentals I
PL/SQL Fundamentals I
 
Dbms viva questions
Dbms viva questionsDbms viva questions
Dbms viva questions
 
DBMS lab manual
DBMS lab manualDBMS lab manual
DBMS lab manual
 
All About PL/SQL Collections
All About PL/SQL CollectionsAll About PL/SQL Collections
All About PL/SQL Collections
 
Role of integration in Digital Transformation
Role of integration in Digital TransformationRole of integration in Digital Transformation
Role of integration in Digital Transformation
 
Dbms lab questions
Dbms lab questionsDbms lab questions
Dbms lab questions
 
DBMS Practical File
DBMS Practical FileDBMS Practical File
DBMS Practical File
 

Ähnlich wie SOA for PL/SQL Developer (OPP 2010)

Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaModern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaLucas Jellema
 
OUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA SuiteOUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA SuiteJon Petter Hjulstad
 
SUE AGILE Architecture (English)
SUE AGILE Architecture (English)SUE AGILE Architecture (English)
SUE AGILE Architecture (English)Sabino Labarile
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOAThe Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOALucas Jellema
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africamagnifics
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africamagnificsairam
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africamagnificsmile
 
A CMD Core Model for CLARIN Web Services
A CMD Core Model for CLARIN Web ServicesA CMD Core Model for CLARIN Web Services
A CMD Core Model for CLARIN Web ServicesMenzo Windhouwer
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaGuido Schmutz
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...Lucas Jellema
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25Jon Petter Hjulstad
 
Scim2012 q1update chrisphillips
Scim2012 q1update chrisphillipsScim2012 q1update chrisphillips
Scim2012 q1update chrisphillipsChris Phillips
 
SQL Server Workshop for Developers - Visual Studio Live! NY 2012
SQL Server Workshop for Developers - Visual Studio Live! NY 2012SQL Server Workshop for Developers - Visual Studio Live! NY 2012
SQL Server Workshop for Developers - Visual Studio Live! NY 2012Andrew Brust
 
Virtuoso Universal Server Overview
Virtuoso Universal Server OverviewVirtuoso Universal Server Overview
Virtuoso Universal Server Overviewrumito
 
How AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudHow AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudLDAPCon
 
Introduction to SalesForce
Introduction to SalesForceIntroduction to SalesForce
Introduction to SalesForceSujit Kumar
 

Ähnlich wie SOA for PL/SQL Developer (OPP 2010) (20)

Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaModern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas Jellema
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
 
OUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA SuiteOUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA Suite
 
SUE AGILE Architecture (English)
SUE AGILE Architecture (English)SUE AGILE Architecture (English)
SUE AGILE Architecture (English)
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOAThe Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOA
 
Oracle OpenWorld 2014 Review Part Four - PaaS Middleware
Oracle OpenWorld 2014 Review Part Four - PaaS MiddlewareOracle OpenWorld 2014 Review Part Four - PaaS Middleware
Oracle OpenWorld 2014 Review Part Four - PaaS Middleware
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africa
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africa
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africa
 
A CMD Core Model for CLARIN Web Services
A CMD Core Model for CLARIN Web ServicesA CMD Core Model for CLARIN Web Services
A CMD Core Model for CLARIN Web Services
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas JellemaAMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25
 
Scim2012 q1update chrisphillips
Scim2012 q1update chrisphillipsScim2012 q1update chrisphillips
Scim2012 q1update chrisphillips
 
oracle service bus
oracle service busoracle service bus
oracle service bus
 
SQL Server Workshop for Developers - Visual Studio Live! NY 2012
SQL Server Workshop for Developers - Visual Studio Live! NY 2012SQL Server Workshop for Developers - Visual Studio Live! NY 2012
SQL Server Workshop for Developers - Visual Studio Live! NY 2012
 
Virtuoso Universal Server Overview
Virtuoso Universal Server OverviewVirtuoso Universal Server Overview
Virtuoso Universal Server Overview
 
How AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudHow AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloud
 
Introduction to SalesForce
Introduction to SalesForceIntroduction to SalesForce
Introduction to SalesForce
 

Mehr von 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
 

Mehr von 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 ...
 

SOA for PL/SQL Developer (OPP 2010)

  • 1. SOA for PL/SQL Developers OPP 2010 28th October, 2010 Lucas Jellema AMIS, The Netherlands WebLogic Server 11g SOA Suite 11g
  • 3. SOA is not… • XML • WebService • SOAP • Middle Tier or Application Server • Java • High level – abstract – architecture • Unrelated to the database and PL/SQL • Complex only/always
  • 6. Decoupling ≈ Managing Dependencies minimize impact of change while maximizing reusability
  • 7. Types of decoupling • Functional – Interface - Encapsulation of implementation • Design by Contract, Implement by Design • Design Time – Separate teams working in parallel based on mutually agreed interface definitions • Technical – No proprietary technology, protocol, message format – Standards based (XML, HTTP, RSS, WSDL…) • Temporal – Asynchronous communication (separate response)
  • 8. Objectives (1/2) • Business Agility – (Faster) responses to (new and changing) market demands and user requirements • IT Flexibility – Optimize locally without impact ‘globally’ – Prepare for future developments • Lower costs – Through reuse, better integration, decoupling, automation of manual tasks & human coordination
  • 9. Objectives (2/2) • (longer term) Higher Quality and Faster (traceable) Process execution – Automated data exchange cross boundaries – Workflow and task orientation • integrated, cross department, in a controlled way based on sound understanding of the business processes – Business Event driven interaction • Manage risks and fear
  • 10. Common Characteristics in SOA • Cross Boundaries – Cross Technology - .Net, Uniface, Java, Tibco – Cross Channel – Back Office, Web, PDA, API – Cross User Group – Internal, Agents, Self Service – Cross Domain – Multiple departments & systems – Cross Enterprise – Interact with external partners • Data synchronization or consolidation • Management whim Vision • From Database angle: providing services
  • 11. What is a service? • Standards based callable, reusable functionality according to an interaction contract • In terms of functionality (WSDL – compare Package Specification) – What are the input parameters – What are the output parameters (if any) – What are the exceptions – How (when, where) is the response delivered – Implementation is hidden!
  • 12. What is a service (2)? • In terms of operational QoS (Quality of Service) define in a Service Level Agreement (SLA) – Availability – Stability & Release schedule – Response Time – Peak load capacity – Price – Reliability, Confidentiality – Address, protocol
  • 13. Services in various shapes • Library (dll, jar) • Java Class (public methods) or an EJB (interface) • URL • RSS feed • Portlet (UI Service) • SOAP WebService • Database View or Package Specification • …. If it exposes a clear, standardized interface
  • 14. Example of a service call? • Browser sends http request to a URL – Text based message with headers and body
  • 15. What is a service call? • Server returns a response – Another text based message with headers and body
  • 16. SOA Concepts in the database
  • 17. Key SOA concepts and lessons • Functional interface, hiding implementation details – for example Package specification
  • 22. function func ( p_name in varchar2 ,p_sal in number ,p_hiredate in date ) return number
  • 23. function func ( p_name in varchar2 ,p_sal in number ,p_hiredate in date ) return number Expectation regarding Valid Input Agreed Contract Indication of possible Exceptions Description of output value
  • 24. -- Description of this function -- -- %param p_name Name of an Employee -- {*} Requirement Name must be provided -- -- %param p_sal Salary of the Employee -- {*} Requirement Salary must be greater than zero -- -- %param p_hiredate Hiredate -- {*} Requirement Hiredate must be in the Future -- -- %raises DBC.AssertFail -- When a Parameter does not match the requirement -- -- %raises EmployeeNotFound -- When a an employee with p_name can not be found -- -- %return -- The value returned is an integer: 0 < return <= 4
  • 25. Key SOA concepts and lessons • Functional interface, hiding implementation details – Simple View API (possibly with IOT) – with complex joins, analytical functions, advanced SQL and PL/SQL integration – Package specification
  • 26. API Services for consumers • Views – for encapsulation of (legacy) model, multi-table join, collection integration, SQL hiding (but still SQL) • PL/SQL – for encapsulation, cursor based data retrieval, DML hiding, table decoupling (no SQL) View
  • 27. Providing a ‘business object’ API • DML API: can be a View – aided by Instead Of trigger • Insert of one new row in USERS_VW can actually be four new records – USER, PERSON, EMAIL_TYPE EMAIL_ADDRESS USERS PERSONS EMAIL_ ADDRESSES EMAIL_TYPE USERS * * * *
  • 28. FIY Data Service API: returning cursors • Fetch it Yourself! • Cursor opened to be fetched from – Data is gathered and pre-processed before being returned – SQL is wrapped • And can be constructed at run-time – Access privileges are taken care of – Cursors can be handled elegantly in most client languages and technologies • For example Java: JDBC ResultSet Prompt Prompt Prompt Prompt Prompt Prompt Prompt Prompt Prompt A ct ie A ct ie HRM_API CURSOR
  • 29. Demo • Create a database “service” – for retrieving a department, its employees and the manager for each employee – that is promotes decoupling and encapsulates implementation – that can be extended to also support data manipulation • Leveraging Types and Collections to support nested structures such as master-details DEPT EMP DEPARTMENTS HRM Service API SQL PL/ SQL •Cursor •Collection •XML
  • 30. Key SOA concepts and lessons • Functional interface, hiding implementation details – Package specification – View API • Reusable, standardized services as flexible building blocks • Aggregate and Combine into more valuable reusables • Governance: security, management of services, SLAs – Allow for configuration without development or deployment effort • Decoupling in every aspect!
  • 31. Coupling & Decoupling in Oracle RDBMS Decoupling • Package Specification • Views (+ Instead of Trigger) • Triggers in general • DBMS_JOB • Advanced Queuing • Publish (intranet) XML & WebService • %TYPE instead of hardcoded data type • Centrally managed “parameter (injection) service” – instead of local constants – instead of hard coded values • Use generic (SOA) services Coupling • Database Link • SYSDATE and USER • Application performing SQL against tables – SQL all over the place • Access database from DMZ or even outside firewall – Publish WebService or Web Application on Internet • Too frequent use of dbms_output.put_line • Copy and paste of code • Poorly documented code • Use of exotic features summary
  • 32. Decoupling Applications & Data Data Application (User Interface) Application (User Interface) Data
  • 33. Decoupling Applications & Data Application (User Interface) Data Application (User Interface)
  • 34. Decoupling Applications & Data (User Interface) Application Workflow Engine Email IM Fax CMS
  • 36. Enterprise Service Bus Data Service Service Service App 2 Data Service External Partner Service App 1
  • 37. The Enterprise Service Bus • Should first of all be considered ‘a pattern’ • Virtualizes services – hides the real service from consumers – Deals with the physical location of the services – Interacts with the technology used to implement services • Adapts synchronous to a-synchronous and vv. • Can use multiple real services to offer one virtual (composite) service • Allows callers to use a generic, canonical message structure that it will transform to the service contract – It may even allow callers to use their own “lingo”
  • 38. Canonical Data Model • Common Business Language – Esperanto for service invokers Data Data ServiceService Clients Customers
  • 39. The Enterprise Service Bus (2) • Handles various QoS & SLA aspects – sometimes in concert with tools like OWSM – Encryption, signing, authentication – Retry and fallback – “Throttle” (prevent peak loads) • Does monitoring, tracking & auditing, reporting, notification and escalation • Works with Adapters to access technologies – like RDBMS (SQL, PL/SQL), AQ and JMS, File System, FTP, Java, E-Business Suite
  • 40. Tables & Business Rules Views PL/SQL “Services” Oracle Forms Forms DWH External Partners Web Application Email Server Java based SQL* Loader Modern Architecture and the role of the database
  • 41. Tables & Business Rules Views PL/SQL “Services” Oracle Forms Forms External Partners Web Application Email Server Java based (extranet) Web Application Internal Users (outside intranet/firewall) “Mobile Enabled” ADF 11g ADF 11g Enterprise Service and Process Bus (SOA Suite 11g: BPEL, Mediator, Human Task, Business Rules, Technology Adapters) files UCM (Document Management) DWH Operational Dashboard APEX
  • 42. Tables & Business Rules Views PL/SQL “Services” Oracle Forms Forms External Partners Web Application Email Server Java based (extranet) Web Application Internal Users (outside intranet/firewall) “Mobile Enabled” ADF 11g ADF 11g Enterprise Service and Process Bus (SOA Suite 11g: BPEL, Mediator, Human Task, Business Rules, Technology Adapters) files UCM (Document Management) DWH Operational Dashboard APEX
  • 43. The SOA Suite 11g • The engine that – runs applications that implement the WebServices – implements the Enterprise Service Bus [pattern] – Lives inside the WebLogic Server application server WebLogic Server 11g SOA Suite 11g WebServices
  • 44. SOA Suite 11g Composite Applications • SOA Composite Applications consist of special components that process XML messages: – Decision Logic (go left or right, discount is X) – Human Workflow (end user must act) – BPEL (service orchestration) – Mediator (filter, transform and route messages)
  • 45. SOA Suite 11g – calling out to external service and adapters • SOA Composite Applications can call out to external WebServices and Adapters • Adapters connect to various technologies – Database (SQL & PL/SQL) – Advanced Queuing – File & FTP – JMS, MQ Series, EBS TCP/IP Sockets • Adapters can trigger application execution
  • 46. Publish Services from the Database • Describe Services in WSDL and XSL – Specify operations, input and output parameters – Describe complex data structures of parameters • Publish Database-based Services – Plain URL services through PL/SQL packages • based on MOD_PLSQL, XML DB or DBMS_EPG – Full blown SOAP WebServices • 11g Native WebService (publish PL/SQL package), use UTL_DBWS, JPublisher for Java proxy class in AppServer – Leverage SOA Suite to expose Database functionality • Through the database adapter in SOA Suite/WLS
  • 47. #1 SOA task: Publish PL/SQL Package through ESB • Use Database Adapter to create Service, combine with ESB Routing Service • Use case: – external access to services – virtualize location and technology of service – • route to service based on content of the request – virtualize part of contract of service • Package-derived XSD not suitable for consumers – handle peak loads – monitor service levels and trace service access WS*
  • 48. Demo • Create SOA Composite application • Configure Database Adapter to interact with HRM_SERVICE_API package • Create a Mediator to transform XML message from the db adapter to the desired format
  • 49. XSD for the HRM WebService
  • 51. Demo • Create SOA Composite application • Configure Database Adapter to interact with HRM_SERVICE_API package • Create a Mediator to transform XML message from the db adapter to the desired format • Deploy SOA Composite in SOA Suite in WLS • Test the Web Service based on the PL/SQL package based on the DEPT and EMP table
  • 53. Enterprise Service Bus in action • One team responsible for exposing services to external consumers – Working with those customers for establishing the contract and testing across the firewall – This team built from internally provided services • Team two worked inside database – providing package based API for granular services • Team three created ESB level database adapter and routing/mapping services WS*
  • 55. Event Driven Architecture • EDA (is also Extremely Decoupled Architecture) • Any system – including database – reports events that may be interesting to other parties • The Event backbone (could be the ESB) – Defines Event Types (name, structure of payload) – Registers Event Listeners (“please call me when the event occurs and send the details”) – Receives events – instances of the predefined event type with payload and timestamp • Propagate events to all registered listeners • Without blocking the event producer
  • 56. Event Driven Architecture (EDA) Data Service Service Service App 2 Data Service External Partner Service App 1
  • 57. Leveraging SOA Suite 11g from the database • The database can call out to the SOA Suite 11g – With UTL_HTTP or Stored Java (2-way, synchronous) – Through Advanced Queuing or Database Adapter polling (one way) WebLogic Server 11g SOA Suite 11g AQ AQ
  • 58. Call the “getOilPrice Service” • We need to know the oil price for some calculations… • But that price is not constant, we need the current price • • We do not want the exact market price, we have our own contracts • Let’s define a constant in a package • Oh, well, let’s call a WebService – Yahoo? • Ah, the Purchasing department publishes a WebService for such data
  • 59. Calling a Web Service • Send an XML document to a URL via HTTP – Request message contains headers and body • Service (server) returns another XML document – Response message contains headers and body • Response can be a fault (a WebService exception) • Headers are used for meta-data – Sender (identity, address), Return address – Encryption, digitally signed, – Type of content, type of compression
  • 60. PurchasingPrices available via SOAP • PurchasingPrices Service is available as a (SOAP based) WebService (implemented using BPEL) – Service and WSDL are available (URLs are known)
  • 61. PurchasingPrices available via SOAP • SOAP call over HTTP can be made from PL/SQL – Using UTL_HTTP • Assemble SOAP message – Envelope – Payload • Name of product – Make HTTP Post request – Process Response • Retrieve and Return the product price – “re-Publish” service as PL/SQL function WebLogic Server 11g SOA Suite 11g
  • 62. PurchasingPrices available via SOAP WebLogic Server 11g SOA Suite 11g
  • 63. Publishing events to the EDN from within the database • Publishing events to the Event Delivery Network from table triggers or PL/SQL APIs – Is best done via Advanced Queuing • The same route in reverse can consume events from EDN into the database
  • 64. The database can ask the middle tier for other services as well • Get information from (or to) services on the intranet or internet (‘please get us the NBA scores ’) • Publish/Send information to the internet (RSS, email, chat) • Can tell the middle tier – Interesting events and data changes • Trigger cache refresh! – Alert about (im)pending issues, attempted rule violations, … – The outcome of batch calculcations WebLogic Server 11g SOA Suite 11g AQ Web App summary
  • 65. Complex Event Processing to process on behalf of database events JMS HTTP JMX File DB Complex Event Processor Event Consumer Alert JMS Dashboard SOA Application DB Data Warehouse WebService File
  • 66. The Data Avalanche • The league of real time events – Continuous stream of a multitude of tiny events with hardly any payload, most of which are not interesting at all – Sent from physical sensors (temperature, pressure, RFID, security gates), process sensors, Twitter, manufacturing equipment, database triggers, web servers, ESBs, stock trade tickers, sport statistics, RSS, network switches, …
  • 67. Making Sense of Non-sense Complex Event Processing • Useful information could be hidden in those streams of events – and CEP extracts it – By detecting patterns, deviations, aggregations in these event streams – CEP publishes ‘meaningful’ (business) events to report its findings – by executing some Event Processing Langugae events Complex Event Processor
  • 68. Continuous Query Language (CQL) • Standard extension/complement to SQL – For handling large volumes of continuously arriving events – Executing the queries continuously • Operates on streams of continually arriving events instead of static relational data sets – Events can be enriched with context – Results keep being produced as event stream • Is used for comparing events of same type, to find – Trends and Patterns – Exceptions – Aggregates Complex Event Processor summary
  • 70.
  • 71.
  • 72. PL/SQL Package PL/SQL Package PL/SQL Package PL/SQL Package PL/SQL Package
  • 73. PL/SQL Package PL/SQL Package PL/SQL Package PL/SQL Package PL/SQL Package
  • 74. True Injection Dependency_Injector After Logon trigger setMailServer EMAILER setInterestRate setVatRate TAX_CALC setFileInName setLogLevel LOGGER setUrlProxy RSS_READER Configuration Values mailserver interest_rate vat_rate file_in_name log_level url_proxy emailer tax_calc tax_calc logger logger rss_reader amislin32 4.5 17.6 app_log_x debug amisvm2… property package value
  • 75. Decoupling from Table to ESB+ http WEBDAVFTP http WS/SOAP WS* WS* WS* WSRP coupled complex
  • 76. Increasingly decoupled • More hiding of the implementation • More Formal Interface Contract • Less (proprietary) technology & more standards for interacting • Less exposure of (legacy) data model • More support for asynchronous interaction • More reuse potential • Pervasive throughout enterprise • More suitable for external consumption
  • 77. Comes at a cost… • More run time overhead – Additional tiers – XML serialization and deserialization • More infrastructure – Burden of Administration – License Costs – Hardware • Broader skills palette – more stuff to master • Harder to get started
  • 78. Summary • SOA is about decoupling, integration & reuse • SOA Suite 11g runs service implementations – That can access database and other technologies through adapters – either inbound or outbound • Database can access services from utl_http – Or AQ, Database polling or File polling • SOA Suite hooks into database via SQL, PL/SQL, AQ or even XML DB file protocols • Many SOA concepts can be applied without the SOA Suite, using standard DB features
  • 79. Tables & Business Rules Views PL/SQL “Services” Oracle Forms Forms External Partners Web Application Email Server Java based (extranet) Web Application Internal Users (outside intranet/firewall) “Mobile Enabled” ADF 11g ADF 11g Enterprise Service and Process Bus (SOA Suite 11g: BPEL, Mediator, Human Task, Business Rules, Technology Adapters) files UCM (Document Management) DWH Operational Dashboard APEX
  • 80. Resources • Presentation and demos are on our blog – http://technology.amis.nl/blog • Contact me at: – lucas.jellema@ amis.nl

Hinweis der Redaktion

  1. ENCAPSULATION (hide implementation from consumers)Encapsulation: wijziging van implementatiezonderuiterlijkegevolgen; netter organiserenDecoupling: views, pl/sqlapiAssertion: verifieren van afgesproken contract
  2. When developing stored procedures, you agreed upon a specific interface, the signature of the stored procedure. Implicitly you agreed upon a contract. One using the Stored Procedure will know which parameters to supply and what will be returned by the stored procedure.In order to implement the stored procedure you make certain assumption about the supplied values for the parameters.Using Assertions you can make sure that the user of the Stored Procedures is faithful to the contract.Talen: webservices, javaElementen in contractDatatype (aantal, type, eisenaaninhoud)ExceptionsReturn SLA elementen: side effects – transactions/ nietbeschikbaarFunctionelebeschrijving
  3. Deel van assertions is er, datatype
  4. Call BPEL: http://ora-rich.blogspot.com/2007/06/calling-bpel-process-from-plsql.html
  5. Call BPEL: http://ora-rich.blogspot.com/2007/06/calling-bpel-process-from-plsql.html
  6. Call BPEL: http://ora-rich.blogspot.com/2007/06/calling-bpel-process-from-plsql.html
  7. Call BPEL: http://ora-rich.blogspot.com/2007/06/calling-bpel-process-from-plsql.html
  8. Demo in plain SQL: http://technology.amis.nl/blog/3569/simple-event-processing-using-sql-with-analytical-functions-to-detect-traffic-patterns
  9. Nice and optimistic interpretation:We do not want to burden you with the task(s) ofcalling us, keeping up to date with our latest contact details, being familiar with our internal procedures Let us handle the nitty gritty and just tell you what you need to know when you should know it
  10. EmailDirectoryurllogging
  11. EmailDirectoryurllogging