SlideShare a Scribd company logo
1 of 51
Castle in the Clouds: SaaS-Enabling Oracle ADF Faces Applications Oracle Open World 2009 Wednesday, 14thOctober Lucas Jellema  AMIS, The Netherlands
Overview What makes an application ‘SaaS’? And why provide an application as SaaS Requirements of SaaS applications Focus on Customization Integration & SOA across the cloud Deep Linking, Mash Up and UI Services Services API Remote Events Listeners Summary and Road Ahead
Software as a Servicecommon characteristics Single instance of standard application & database Running in a shared infrastructure, 24/7 Managed by central administration team Delivered over the internet to web browsers Used by individuals from many organizations Multi-tenant with multiple users each Globally distributed & multi-lingual user community Licence model based on usage metrics Service Level Agreement to specify quality of service
Software as a Service(perceived) benefits Small up-front investment Quick startup – ‘turn on the software tap’  Professional administration with guaranteed performance and application availability Low TCO through ‘economies of scale’ Dynamic Scalability Rapid evolution of new features and bug resolution – quick deployment Quick adoption of new technology Community to create, foster & share best practices
Software as a Serviceconcerns & potential disadvantages Dependence on 3rd party for Security, Availability & Performance, Scalability Data outside the own infrastructure Standard application – not at all tailor-made Our own terminology, fields, default values, validation rules, workflow How does SaaS application integrate with Our SOA & EDA, Mash Up/Portal and Workflow Identity Management and Single Sign On  How to prevent lock-in with the SaaS provider
SaaSRequirements: Integration across the cloud Make SaaS application integrate with IT backbone of the organization using the SaaS SOA & EDA, workflow management, identity management, email server and other shared central facilities Two-way, based on open standards, geared towards both programmatic and UI integration
SaaS Requirements Customization Allow organizations and individuals to tailor the ‘standard’ application for better fit Within the single instance of the SaaS application Easy, dynamic, run-time, self-service in browser Multi-version on single ‘url and database’ SaaS customers can upgrade to new versions of the SaaS application when they want to
Application ‘levels of reality’ Factory Customer Customer Organization B Organization A End User End User
Application Mode Switcher Application Managers can switch between Application Modes To view and manipulate the application at the selected level
Application Rollout process… Development in the Factory Production-time refining Customer (organization) specific implementation By SaaS Helpdesk, on site consultant, Application Admin End User (dynamic, run-time) Personalization
Proposal Let’s approach every end user application as a SaaS application! Both standard and custom applications
Desirable SaaS features & facilities Dynamic, Wiki-like, context-sensitive help Integration with incident registration Automatic passing of page, context data & logging ‘Simulate user’ option for the service desk SLA metrics and application usage monitoring Self Service style application management ‘Toggle’ between factory, organization and user Integrated workflow & collaboration Communication (email, chat), task list, tagging, … “Register interest in” – notification of events
Customization Allow tailoring of terminology to organization Dynamic, run-time resource bundle management Resource Bundles per organization (and individual) Support for adding/hiding fields Configuration of application behavior through organization and user level preferences Personalization (my…) features for fine tuning Workflow and task configuration Configure menus and add new items Fine tune look & feel – e.g. skins, styles, logos
Customizing terminology  Boilerplate text – prompt, title, button label, messages, help,… - come from resource bundles Built in support for i18n – language & country Typically held in property files deployed in WAR We need to implement resource bundles that can be updated and refreshed at run time Or at least extended with any overrides of default values keys that support the notion of organization specific versions of bundle entries in addition to factory ones maintenance facilities with self service support That presents bundle entries in understandable format
Implementing Self Service Customization of Resource Bundles Resource Bundle implemented as class (extend ListResourceBundle) that read from database Keys are constructed as: <base_key>_<org_id> And even <base_key>_<org_id>_<user_id> JSF page refers to resources through intermediate bean: #{bundleHandler[‘baseKey’]} The bundleHandler bean first tries user specific key; if not found then org key and then base key It can also access several resource bundles – first the dynamic, database based one with overrides
Custom(izing) fields Some fields are never used by some organizations and are therefore ‘in the way’ or they may even be legally forbidden in a country! Every organization finds the application lacking with one or more fields but no two organizations ahree on which fields… To allow optimal customization, a SaaS application ideally allows Customization of standard items Addition of custom items embedded in pages And associated with data records like ‘regular’ items
Application Settings for customizing application behavior Some Application Behavior is developed as dynamically configurable Through Preferences or Application Settings Display: Locale, Format, Units for Height and Weight (converter parameters), feature on/off Business logic: Default Values for new records, Validation parameters, Field & Button Authorization Styling: Images, Fonts, Colors, Skins/Themes Settings can be configured at Factory (default), Organization and User level At run-time through self service pages
Integrating Application Settings during development #{user.settings['NAME']}
Application Settings Data Model Application  Settings Customized  Settings *  Name o Factory Value o Allowable Values o Description o Data Type o Level Updatable o Updatable By *  OrgId o Value o UserId o Comment mm/dd/yyyy Date Format dd-mm-yyyy dd-mm-yy Use Photo N Y Y Metric/Imperial m N … i
Application Personalization We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals I’m not…
Personalization Features – My… options My Navigation History My Favorites (quick links, bookmarks) My own custom properties (‘flex fields’) My Date Format, Weight/Height units, Currency, Default Values My lingo in titles, labels, prompts & messages Personalized Menu-structure … (my logo!)
Demo SaaS style Customization in JSF Run Time Management of Organization specific Resource Bundles Change the boilerplate text defined in the factory Create organization and user specific resources Influencing application behavior through application settings at organization level Configure date format pattern Specify customized highlight definitions Toggle between user/organisation/factory scope
Run Time form-customization One application, multiple marketing labels Each label requires a slightly different set of items – in a potentially different sequence To be defined and applied at run-time Solution: After the JSF component tree is built in memory, let a JSF PhaseListener traverse it and Set rendered to false Change the order of panelFormLayout children based on the current context and the meta data
Run Time form-customization Design time base edition Apply Marketing Label X Apply Marketing Label Y
Run Time form-customizationDefine label specific settings
ADF Customization facilitiesRun Time ‘Change Persistence’ ADF Change Persistence: built-in run-time customizations for several components Table, Collapsible/Disclosable Panels, Panel Splitter Change persistence can also be leveraged programmatically for custom run-time changes changing an attribute value, adding or removing a facet, adding or removing a child component, reordering child components, moving a child component to a different parent
ADF Customization facilitiesDesign time ADF Customization Developer uses declarative customization Start with the base application Create specialized versions of XML based application artefacts like JSF page definition For every possible context in one or more dimensions At run time: users work with an application specially  customized based on the actual context Multiple versions of artefactsare managed in the MDS repository
ADF Customization facilitiesRun time WebCenter Composer Application manager or content editor can ‘edit’ the application at run time Add or remove items in customizable regions Rich content elements, portletsand registered taskflows Edit content, configure portlets, rearrange items Create new pages with dynamic content items
Multi-version SaaS Application Pre Oracle Database 11gR2: tough! separate database schemas and dynamic data source selection With Oracle Database 11gR2: easy! Using Edition Based Redefinition Multiple versions of database objects in the same schema – on a common set of tables The application (version) specifies at connect time which ‘edition’  of the database to use Come to my session S310492 Monday 17:30 - 18:30, Moscone South, Room 305
Parallel Application Versions Application X VERSION 1 Application X VERSION 2 Release 2 Release 3 Base Release
SOA across the cloud SaaS A SaaS B CMS Social API internet internal LDAP WorkflowEngine App D App C Validation Service Service API Service API CMS Email IM Fax 34
Integration and SOA across the cloud Service API as programmatic alternative to UI RSS, SOAP, REST Event Listener registration to be notified by SaaS Service Registration (Dependency Injection)   Authentication/Authorization, Translation, Validation, Workflow, Communication Identity cross referencing (SaaS & local identifier) Deep Link API for context sensitive navigation UI Services (Portlets) to fit into Mashups & Portals Data Export, Synch & Import – bulk facilities “internet service bus” – integrating multiple SaaSs 35
SOA across the cloud: data & operations 36 SaaS A service  dependency injection SaaS B CMS Social API Export Service API Service API RSS listenerregistration internet internal LDAP WorkflowEngine App D App C Validation Service Service API Service API CMS Email IM Fax
SOA across the cloud: UI / Navigation / Process/Presentation 37 SaaS B SaaS A Deep link Interface CMS Deep link Interface Social API Portlet API HTMLPages Portlet API RSS RSS internet internal ToDo News WorkflowEngine App D App C Portlet API Portlet API RSS CMS Email IM Fax
SaaS A SaaS A service  dependency injection SaaS B SaaS B Deep link Interface CMS CMS Deep link Interface Portlet API HTMLPages Portlet API Export RSS Service API Service API RSS RSS listenerregistration internet internet internal internal ToDo News LDAP WorkflowEngine WorkflowEngine App D App C App D App C Portlet API Portlet API Validation Service Service API Service API RSS CMS CMS Email IM Fax Email IM Fax 38
Publishing ADF Application as (remotely embeddable) Portlet
Publishing ADF Application as (remotely embeddable) Portlet Any ADF Task Flow can be published as a standard (WSRP) Portlet Using WebCenter Framework Without development restrictions Well, … almost that is Note that ADF applicationscan consume remoteportlets as well Using WebCenter WebCenter (Remote Portlet Provider)
Demonstrating Deep Link Navigation 41 SaaS A HTMLPages Portlet API ,[object Object]
Selecting this task will bring up a popup loaded through a deep link into SaaS A
Presenting the ‘Update Job’ page with the details of Scott loadedService API RSS ToDo News WorkflowEngine
Implementing Deep Linking in JSF URL like http://host/SaaSApp/UpdateJob/Scott Cookie provides hook for Single Sign On  ServletFilter intercepts and redirects to proper JSF page – after storing parameters in the request JSF PhaseListener intercepts the request to the page and prepares the backing beans Using the request parameters JSF page is rendered with proper data context When the user is done, the JSF application could  update the task by calling the workflow engine SAPI publish a SaaS event 42
Demonstrating the SaaS Service API SaaS A HTMLPages Create a new Employee  Call the SaaS API to propagate the new employee record Right after succesful transaction commit Inspect the new record in the SaaS UI Portlet API Service API RSS App D
Demonstrating cross-cloud event listeners 44 SaaS A Portlet API ,[object Object]
Update a salary in the SaaS UI
Event is routed to the remote listener that calls the App D Service API that “does something with it”Service API RSS listenerregistration App D Service API DB
45
46 Register Event Listener by calling the WebService

More Related Content

What's hot

SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVPSharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVPAyman El-Hattab
 
ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaEr. Sndp Srda
 
Greate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADFGreate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADFMohamed Shahpoup
 
Web programming and development - Introduction
Web programming and development - IntroductionWeb programming and development - Introduction
Web programming and development - IntroductionJoel Briza
 
Silverlight Document Search Engine
Silverlight Document Search EngineSilverlight Document Search Engine
Silverlight Document Search EngineMustata Bogdan
 
SharePoint and Azure - A Match Made in the Clouds
SharePoint and Azure - A Match Made in the CloudsSharePoint and Azure - A Match Made in the Clouds
SharePoint and Azure - A Match Made in the CloudsShailen Sukul
 
Exploring REST Purity and Pragmatism - Tuesday, November 6, 2012
Exploring REST Purity and Pragmatism - Tuesday, November 6, 2012Exploring REST Purity and Pragmatism - Tuesday, November 6, 2012
Exploring REST Purity and Pragmatism - Tuesday, November 6, 2012WSO2
 
Introduction to Force.com
Introduction to Force.comIntroduction to Force.com
Introduction to Force.comIMC Institute
 
Ibm 1 Wps Arch
Ibm 1 Wps ArchIbm 1 Wps Arch
Ibm 1 Wps Archluohd
 
Midlogic technical presentation 2005
Midlogic technical presentation 2005Midlogic technical presentation 2005
Midlogic technical presentation 2005Tuomas Kumpula
 
Oracle adf online training
Oracle adf online trainingOracle adf online training
Oracle adf online trainingo2education
 
CSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSSCSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSSAlexei Skachykhin
 
IBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic InvestmentIBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic InvestmentStrongback Consulting
 
oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...Nancy Thomas
 
SharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekSharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekShailen Sukul
 

What's hot (20)

SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVPSharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
 
Intro to Force.com Webinar presentation
Intro to Force.com Webinar presentationIntro to Force.com Webinar presentation
Intro to Force.com Webinar presentation
 
Api presentation
Api presentationApi presentation
Api presentation
 
ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep Sharda
 
Greate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADFGreate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADF
 
Oracle adf
Oracle adfOracle adf
Oracle adf
 
uppada_kishore_resume (1)
uppada_kishore_resume (1)uppada_kishore_resume (1)
uppada_kishore_resume (1)
 
37727897 Oaf Basics
37727897 Oaf Basics37727897 Oaf Basics
37727897 Oaf Basics
 
Web programming and development - Introduction
Web programming and development - IntroductionWeb programming and development - Introduction
Web programming and development - Introduction
 
Silverlight Document Search Engine
Silverlight Document Search EngineSilverlight Document Search Engine
Silverlight Document Search Engine
 
SharePoint and Azure - A Match Made in the Clouds
SharePoint and Azure - A Match Made in the CloudsSharePoint and Azure - A Match Made in the Clouds
SharePoint and Azure - A Match Made in the Clouds
 
Exploring REST Purity and Pragmatism - Tuesday, November 6, 2012
Exploring REST Purity and Pragmatism - Tuesday, November 6, 2012Exploring REST Purity and Pragmatism - Tuesday, November 6, 2012
Exploring REST Purity and Pragmatism - Tuesday, November 6, 2012
 
Introduction to Force.com
Introduction to Force.comIntroduction to Force.com
Introduction to Force.com
 
Ibm 1 Wps Arch
Ibm 1 Wps ArchIbm 1 Wps Arch
Ibm 1 Wps Arch
 
Midlogic technical presentation 2005
Midlogic technical presentation 2005Midlogic technical presentation 2005
Midlogic technical presentation 2005
 
Oracle adf online training
Oracle adf online trainingOracle adf online training
Oracle adf online training
 
CSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSSCSS Architecture: Writing Maintainable CSS
CSS Architecture: Writing Maintainable CSS
 
IBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic InvestmentIBM Innovate 2013: Making Rational HATS a Strategic Investment
IBM Innovate 2013: Making Rational HATS a Strategic Investment
 
oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...
 
SharePoint 2013 Sneak Peek
SharePoint 2013 Sneak PeekSharePoint 2013 Sneak Peek
SharePoint 2013 Sneak Peek
 

Similar to Castle in the Clouds: SaaS-Enabling Oracle ADF Faces Applications

Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Lucas Jellema
 
Andy West – Director of Technology Architecture, Pearson
Andy West – Director of Technology Architecture, PearsonAndy West – Director of Technology Architecture, Pearson
Andy West – Director of Technology Architecture, PearsonRightScale
 
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...Brian O'Gorman
 
Introduction On Integrating Translation Applications, Wcm To Achieve A Common...
Introduction On Integrating Translation Applications, Wcm To Achieve A Common...Introduction On Integrating Translation Applications, Wcm To Achieve A Common...
Introduction On Integrating Translation Applications, Wcm To Achieve A Common...Dhiraj Makam
 
Cms an overview
Cms an overviewCms an overview
Cms an overviewkmusthu
 
CCI 2019 - PowerApps for Enterprise Developers
CCI 2019 - PowerApps for Enterprise DevelopersCCI 2019 - PowerApps for Enterprise Developers
CCI 2019 - PowerApps for Enterprise Developerswalk2talk srl
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathonaaronwso2
 
Datasheet scriptspluginforrd
Datasheet scriptspluginforrdDatasheet scriptspluginforrd
Datasheet scriptspluginforrdMidVision
 
Indukuri_resume_UI5
Indukuri_resume_UI5Indukuri_resume_UI5
Indukuri_resume_UI5Ravi Varma
 
Dev day paris020415
Dev day paris020415Dev day paris020415
Dev day paris020415pdufourSFDC
 
WSO2 Product Release Webinar: WSO2 Dashboard Server 2.0
WSO2 Product Release Webinar: WSO2 Dashboard Server 2.0WSO2 Product Release Webinar: WSO2 Dashboard Server 2.0
WSO2 Product Release Webinar: WSO2 Dashboard Server 2.0WSO2
 
Raj Wpf Controls
Raj Wpf ControlsRaj Wpf Controls
Raj Wpf Controlsrramabad
 
Drools & jBPM Info Sheet
Drools & jBPM Info SheetDrools & jBPM Info Sheet
Drools & jBPM Info SheetMark Proctor
 
M.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comM.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comArun Somu Panneerselvam
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glancekanimozhin
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapShay Hassidim
 
“Salesforce Multi-tenant architecture”,
“Salesforce Multi-tenant architecture”,“Salesforce Multi-tenant architecture”,
“Salesforce Multi-tenant architecture”,Manik Singh
 

Similar to Castle in the Clouds: SaaS-Enabling Oracle ADF Faces Applications (20)

Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
Castle in the Clouds: SaaS Enabling JavaServer™ Faces Applications (JavaOne 2...
 
IBM WebSphere Portal
IBM WebSphere PortalIBM WebSphere Portal
IBM WebSphere Portal
 
Andy West – Director of Technology Architecture, Pearson
Andy West – Director of Technology Architecture, PearsonAndy West – Director of Technology Architecture, Pearson
Andy West – Director of Technology Architecture, Pearson
 
Training Agenda
Training AgendaTraining Agenda
Training Agenda
 
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
 
Introduction On Integrating Translation Applications, Wcm To Achieve A Common...
Introduction On Integrating Translation Applications, Wcm To Achieve A Common...Introduction On Integrating Translation Applications, Wcm To Achieve A Common...
Introduction On Integrating Translation Applications, Wcm To Achieve A Common...
 
Cms an overview
Cms an overviewCms an overview
Cms an overview
 
CCI 2019 - PowerApps for Enterprise Developers
CCI 2019 - PowerApps for Enterprise DevelopersCCI 2019 - PowerApps for Enterprise Developers
CCI 2019 - PowerApps for Enterprise Developers
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon
 
Datasheet scriptspluginforrd
Datasheet scriptspluginforrdDatasheet scriptspluginforrd
Datasheet scriptspluginforrd
 
Indukuri_resume_UI5
Indukuri_resume_UI5Indukuri_resume_UI5
Indukuri_resume_UI5
 
Dev day paris020415
Dev day paris020415Dev day paris020415
Dev day paris020415
 
WSO2 Product Release Webinar: WSO2 Dashboard Server 2.0
WSO2 Product Release Webinar: WSO2 Dashboard Server 2.0WSO2 Product Release Webinar: WSO2 Dashboard Server 2.0
WSO2 Product Release Webinar: WSO2 Dashboard Server 2.0
 
Raj Wpf Controls
Raj Wpf ControlsRaj Wpf Controls
Raj Wpf Controls
 
Drools & jBPM Info Sheet
Drools & jBPM Info SheetDrools & jBPM Info Sheet
Drools & jBPM Info Sheet
 
M.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comM.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.com
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 Xap
 
“Salesforce Multi-tenant architecture”,
“Salesforce Multi-tenant architecture”,“Salesforce Multi-tenant architecture”,
“Salesforce Multi-tenant architecture”,
 
Dssc Intro
Dssc IntroDssc Intro
Dssc Intro
 

More from 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
 

More from 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 ...
 

Recently uploaded

How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingScyllaDB
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jNeo4j
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?Paolo Missier
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideStefan Dietze
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...ScyllaDB
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxFIDO Alliance
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 

Recently uploaded (20)

How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 

Castle in the Clouds: SaaS-Enabling Oracle ADF Faces Applications

  • 1. Castle in the Clouds: SaaS-Enabling Oracle ADF Faces Applications Oracle Open World 2009 Wednesday, 14thOctober Lucas Jellema AMIS, The Netherlands
  • 2. Overview What makes an application ‘SaaS’? And why provide an application as SaaS Requirements of SaaS applications Focus on Customization Integration & SOA across the cloud Deep Linking, Mash Up and UI Services Services API Remote Events Listeners Summary and Road Ahead
  • 3. Software as a Servicecommon characteristics Single instance of standard application & database Running in a shared infrastructure, 24/7 Managed by central administration team Delivered over the internet to web browsers Used by individuals from many organizations Multi-tenant with multiple users each Globally distributed & multi-lingual user community Licence model based on usage metrics Service Level Agreement to specify quality of service
  • 4.
  • 5. Software as a Service(perceived) benefits Small up-front investment Quick startup – ‘turn on the software tap’ Professional administration with guaranteed performance and application availability Low TCO through ‘economies of scale’ Dynamic Scalability Rapid evolution of new features and bug resolution – quick deployment Quick adoption of new technology Community to create, foster & share best practices
  • 6. Software as a Serviceconcerns & potential disadvantages Dependence on 3rd party for Security, Availability & Performance, Scalability Data outside the own infrastructure Standard application – not at all tailor-made Our own terminology, fields, default values, validation rules, workflow How does SaaS application integrate with Our SOA & EDA, Mash Up/Portal and Workflow Identity Management and Single Sign On How to prevent lock-in with the SaaS provider
  • 7. SaaSRequirements: Integration across the cloud Make SaaS application integrate with IT backbone of the organization using the SaaS SOA & EDA, workflow management, identity management, email server and other shared central facilities Two-way, based on open standards, geared towards both programmatic and UI integration
  • 8. SaaS Requirements Customization Allow organizations and individuals to tailor the ‘standard’ application for better fit Within the single instance of the SaaS application Easy, dynamic, run-time, self-service in browser Multi-version on single ‘url and database’ SaaS customers can upgrade to new versions of the SaaS application when they want to
  • 9. Application ‘levels of reality’ Factory Customer Customer Organization B Organization A End User End User
  • 10. Application Mode Switcher Application Managers can switch between Application Modes To view and manipulate the application at the selected level
  • 11. Application Rollout process… Development in the Factory Production-time refining Customer (organization) specific implementation By SaaS Helpdesk, on site consultant, Application Admin End User (dynamic, run-time) Personalization
  • 12. Proposal Let’s approach every end user application as a SaaS application! Both standard and custom applications
  • 13. Desirable SaaS features & facilities Dynamic, Wiki-like, context-sensitive help Integration with incident registration Automatic passing of page, context data & logging ‘Simulate user’ option for the service desk SLA metrics and application usage monitoring Self Service style application management ‘Toggle’ between factory, organization and user Integrated workflow & collaboration Communication (email, chat), task list, tagging, … “Register interest in” – notification of events
  • 14. Customization Allow tailoring of terminology to organization Dynamic, run-time resource bundle management Resource Bundles per organization (and individual) Support for adding/hiding fields Configuration of application behavior through organization and user level preferences Personalization (my…) features for fine tuning Workflow and task configuration Configure menus and add new items Fine tune look & feel – e.g. skins, styles, logos
  • 15. Customizing terminology Boilerplate text – prompt, title, button label, messages, help,… - come from resource bundles Built in support for i18n – language & country Typically held in property files deployed in WAR We need to implement resource bundles that can be updated and refreshed at run time Or at least extended with any overrides of default values keys that support the notion of organization specific versions of bundle entries in addition to factory ones maintenance facilities with self service support That presents bundle entries in understandable format
  • 16. Implementing Self Service Customization of Resource Bundles Resource Bundle implemented as class (extend ListResourceBundle) that read from database Keys are constructed as: <base_key>_<org_id> And even <base_key>_<org_id>_<user_id> JSF page refers to resources through intermediate bean: #{bundleHandler[‘baseKey’]} The bundleHandler bean first tries user specific key; if not found then org key and then base key It can also access several resource bundles – first the dynamic, database based one with overrides
  • 17. Custom(izing) fields Some fields are never used by some organizations and are therefore ‘in the way’ or they may even be legally forbidden in a country! Every organization finds the application lacking with one or more fields but no two organizations ahree on which fields… To allow optimal customization, a SaaS application ideally allows Customization of standard items Addition of custom items embedded in pages And associated with data records like ‘regular’ items
  • 18. Application Settings for customizing application behavior Some Application Behavior is developed as dynamically configurable Through Preferences or Application Settings Display: Locale, Format, Units for Height and Weight (converter parameters), feature on/off Business logic: Default Values for new records, Validation parameters, Field & Button Authorization Styling: Images, Fonts, Colors, Skins/Themes Settings can be configured at Factory (default), Organization and User level At run-time through self service pages
  • 19. Integrating Application Settings during development #{user.settings['NAME']}
  • 20. Application Settings Data Model Application Settings Customized Settings * Name o Factory Value o Allowable Values o Description o Data Type o Level Updatable o Updatable By * OrgId o Value o UserId o Comment mm/dd/yyyy Date Format dd-mm-yyyy dd-mm-yy Use Photo N Y Y Metric/Imperial m N … i
  • 21. Application Personalization We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals We are all individuals I’m not…
  • 22. Personalization Features – My… options My Navigation History My Favorites (quick links, bookmarks) My own custom properties (‘flex fields’) My Date Format, Weight/Height units, Currency, Default Values My lingo in titles, labels, prompts & messages Personalized Menu-structure … (my logo!)
  • 23. Demo SaaS style Customization in JSF Run Time Management of Organization specific Resource Bundles Change the boilerplate text defined in the factory Create organization and user specific resources Influencing application behavior through application settings at organization level Configure date format pattern Specify customized highlight definitions Toggle between user/organisation/factory scope
  • 24.
  • 25.
  • 26. Run Time form-customization One application, multiple marketing labels Each label requires a slightly different set of items – in a potentially different sequence To be defined and applied at run-time Solution: After the JSF component tree is built in memory, let a JSF PhaseListener traverse it and Set rendered to false Change the order of panelFormLayout children based on the current context and the meta data
  • 27. Run Time form-customization Design time base edition Apply Marketing Label X Apply Marketing Label Y
  • 28. Run Time form-customizationDefine label specific settings
  • 29. ADF Customization facilitiesRun Time ‘Change Persistence’ ADF Change Persistence: built-in run-time customizations for several components Table, Collapsible/Disclosable Panels, Panel Splitter Change persistence can also be leveraged programmatically for custom run-time changes changing an attribute value, adding or removing a facet, adding or removing a child component, reordering child components, moving a child component to a different parent
  • 30. ADF Customization facilitiesDesign time ADF Customization Developer uses declarative customization Start with the base application Create specialized versions of XML based application artefacts like JSF page definition For every possible context in one or more dimensions At run time: users work with an application specially customized based on the actual context Multiple versions of artefactsare managed in the MDS repository
  • 31. ADF Customization facilitiesRun time WebCenter Composer Application manager or content editor can ‘edit’ the application at run time Add or remove items in customizable regions Rich content elements, portletsand registered taskflows Edit content, configure portlets, rearrange items Create new pages with dynamic content items
  • 32. Multi-version SaaS Application Pre Oracle Database 11gR2: tough! separate database schemas and dynamic data source selection With Oracle Database 11gR2: easy! Using Edition Based Redefinition Multiple versions of database objects in the same schema – on a common set of tables The application (version) specifies at connect time which ‘edition’ of the database to use Come to my session S310492 Monday 17:30 - 18:30, Moscone South, Room 305
  • 33. Parallel Application Versions Application X VERSION 1 Application X VERSION 2 Release 2 Release 3 Base Release
  • 34. SOA across the cloud SaaS A SaaS B CMS Social API internet internal LDAP WorkflowEngine App D App C Validation Service Service API Service API CMS Email IM Fax 34
  • 35. Integration and SOA across the cloud Service API as programmatic alternative to UI RSS, SOAP, REST Event Listener registration to be notified by SaaS Service Registration (Dependency Injection) Authentication/Authorization, Translation, Validation, Workflow, Communication Identity cross referencing (SaaS & local identifier) Deep Link API for context sensitive navigation UI Services (Portlets) to fit into Mashups & Portals Data Export, Synch & Import – bulk facilities “internet service bus” – integrating multiple SaaSs 35
  • 36. SOA across the cloud: data & operations 36 SaaS A service dependency injection SaaS B CMS Social API Export Service API Service API RSS listenerregistration internet internal LDAP WorkflowEngine App D App C Validation Service Service API Service API CMS Email IM Fax
  • 37. SOA across the cloud: UI / Navigation / Process/Presentation 37 SaaS B SaaS A Deep link Interface CMS Deep link Interface Social API Portlet API HTMLPages Portlet API RSS RSS internet internal ToDo News WorkflowEngine App D App C Portlet API Portlet API RSS CMS Email IM Fax
  • 38. SaaS A SaaS A service dependency injection SaaS B SaaS B Deep link Interface CMS CMS Deep link Interface Portlet API HTMLPages Portlet API Export RSS Service API Service API RSS RSS listenerregistration internet internet internal internal ToDo News LDAP WorkflowEngine WorkflowEngine App D App C App D App C Portlet API Portlet API Validation Service Service API Service API RSS CMS CMS Email IM Fax Email IM Fax 38
  • 39. Publishing ADF Application as (remotely embeddable) Portlet
  • 40. Publishing ADF Application as (remotely embeddable) Portlet Any ADF Task Flow can be published as a standard (WSRP) Portlet Using WebCenter Framework Without development restrictions Well, … almost that is Note that ADF applicationscan consume remoteportlets as well Using WebCenter WebCenter (Remote Portlet Provider)
  • 41.
  • 42. Selecting this task will bring up a popup loaded through a deep link into SaaS A
  • 43. Presenting the ‘Update Job’ page with the details of Scott loadedService API RSS ToDo News WorkflowEngine
  • 44. Implementing Deep Linking in JSF URL like http://host/SaaSApp/UpdateJob/Scott Cookie provides hook for Single Sign On ServletFilter intercepts and redirects to proper JSF page – after storing parameters in the request JSF PhaseListener intercepts the request to the page and prepares the backing beans Using the request parameters JSF page is rendered with proper data context When the user is done, the JSF application could update the task by calling the workflow engine SAPI publish a SaaS event 42
  • 45. Demonstrating the SaaS Service API SaaS A HTMLPages Create a new Employee Call the SaaS API to propagate the new employee record Right after succesful transaction commit Inspect the new record in the SaaS UI Portlet API Service API RSS App D
  • 46.
  • 47. Update a salary in the SaaS UI
  • 48. Event is routed to the remote listener that calls the App D Service API that “does something with it”Service API RSS listenerregistration App D Service API DB
  • 49. 45
  • 50. 46 Register Event Listener by calling the WebService
  • 51.
  • 52. SaaS in the Multi-Org world SaaS B SaaS A br />CMS Social API Export Service API Service API RSS Portlet API Portlet API HTMLPages internet App Y App X App D Service API Service API Service API App Z WorkflowEngine 48
  • 53. 49 Summary and ConclusionSaaS and the road ahead SaaSapplications need special facilities Customization & personalization Service API (UI and programmatic), Event support SLA management, metrics monitoring & self service Multiple parallel application versions Most applications could do with the same facilities: let’s regard all applications as SaaS!
  • 54. 50 Summary and Conclusions Enterprise Service Bus and Portal/Mashup connect the SaaSapplications With WebServices API and Event/Listener model Through embeddable Portlets with params/events ADF Faces & EL support dynamic front ends Custom facilities like dynamic resource bundles ADF design-time customization and WebCenter Composer run-time customization Multi-version is enabled through Oracle Database 11gR2 Edition Based Redefinition
  • 55. Resources Presentation and demos are on our blog http://technology.amis.nl/blog Contact me at:lucas.jellema@amis.nl

Editor's Notes

  1. Data by 3rd party:No access from internal systems security risks foreign regulation & legislation (Patriot Act)Risk SaaS provider collapseSwitch to another SaaS providerIntegration how to programmatically interact with SaaS application how to push events from SaaS to local EDA/Enterprise Service Bus how to synchronize data between SaaS and local database how to integrate application in (local) Portal and Mashup: publish UI Services (Portlets) from SaaS
  2. http://download.oracle.com/docs/cd/E12839_01/web.1111/b31974/ad_persist.htm#CIHHEHCF