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,MVP
Ayman El-Hattab
 
ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep Sharda
Er. Sndp Srda
 
Silverlight Document Search Engine
Silverlight Document Search EngineSilverlight Document Search Engine
Silverlight Document Search Engine
Mustata Bogdan
 
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
WSO2
 
Ibm 1 Wps Arch
Ibm 1 Wps ArchIbm 1 Wps Arch
Ibm 1 Wps Arch
luohd
 
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
Strongback Consulting
 

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
 
Datasheet scriptspluginforrd
Datasheet scriptspluginforrdDatasheet scriptspluginforrd
Datasheet scriptspluginforrd
MidVision
 
Indukuri_resume_UI5
Indukuri_resume_UI5Indukuri_resume_UI5
Indukuri_resume_UI5
Ravi Varma
 
Raj Wpf Controls
Raj Wpf ControlsRaj Wpf Controls
Raj Wpf Controls
rramabad
 

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

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

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