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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 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

    http://download.oracle.com/docs/cd/E12839_01/web.1111/b31974/ad_persist.htm#CIHHEHCF

    Favorites, Groups & Events

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

    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. 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
    5. 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
    6. 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
    7. 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
    8. Application ‘levels of reality’
      Factory
      Customer
      Customer
      Organization B
      Organization A
      End User
      End User
    9. Application Mode Switcher
      Application Managers can switch between Application Modes
      To view and manipulate the application at the selected level
    10. 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
    11. Proposal
      Let’s approach every end user application as a SaaS application!
      Both standard and custom applications
    12. 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
    13. 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
    14. 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
    15. 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
    16. 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
    17. 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
    18. Integrating Application Settings during development
      #{user.settings['NAME']}
    19. 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
    20. 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…
    21. 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!)
    22. 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
    23. 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
    24. Run Time form-customization
      Design time base edition
      Apply Marketing Label X
      Apply Marketing Label Y
    25. Run Time form-customizationDefine label specific settings
    26. 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
    27. 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
    28. 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
    29. 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
    30. Parallel Application Versions
      Application X
      VERSION 1
      Application X
      VERSION 2
      Release 2
      Release 3
      Base Release
    31. 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
    32. 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
    33. 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
    34. 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
    35. 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
    36. Publishing ADF Application as (remotely embeddable) Portlet
    37. 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)
    38. Demonstrating Deep Link Navigation
      41
      SaaS A
      HTMLPages
      Portlet API
      • To Do list shows task “Handle promotion for Employee Scott”
      • 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 loaded
      Service API
      RSS
      ToDo
      News
      WorkflowEngine
    39. 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
    40. 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
    41. Demonstrating cross-cloud event listeners
      44
      SaaS A
      Portlet API
      • Register App D’s Update Employee service as Event Listener for SaaS event
      • 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
    42. 45
    43. 46
      Register Event Listener by calling the WebService
    44. SaaS in the Multi-Org world
      SaaS B
      SaaS A

      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
    45. 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!
    46. 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
    47. Resources
      Presentation and demos are on our blog
      http://technology.amis.nl/blog
      Contact me at:lucas.jellema@amis.nl

    + Lucas JellemaLucas Jellema, 1 month ago

    custom

    350 views, 0 favs, 1 embeds more stats

    Software as a service (SaaS) applications serve use more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 350
      • 228 on SlideShare
      • 122 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds
    • 122 views on http://technology.amis.nl

    more

    All embeds
    • 122 views on http://technology.amis.nl

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories