Castle in the clouds – SaaS Enabling JavaServer Faces applications (JavaOne 2009, Technical Session)

4

I have just uploaded my presentation at JavaOne for the Technical Session I am presenting tomorrow: Castle in the clouds – SaaS Enabling JavaServer Faces applications (12.10, Esplanade 302, TS-4390). I have also prepared the demos – and they are interesting at the very least. You will find the slideshow embedded in this article (linked from SlideShare) below.

SaaS applications are typically web applications that serve users in many customer organizations from a single instance that runs in the cloud, controlled by the SaaS provider. All customers share a single instance of the application while having private data access. SaaS applications are usually multi-lingual (or at least multi-terminology), multi-time zone and -country and run 24/7. There is a number of common requirements for SaaS applications, such as: self service management of users and roles, customization of the application for the needs of a specific customer organization including hiding and adding fields and changing the boilerplate text, specification of customer specific default values and validation rules and influencing the look and feel. Deep link navigation into the SaaS application should be supported as well as the ability to embed context sensitive links from the SaaS application. In addition, facilities for importing and exporting data to and from the SaaS application are crucial as well as support for ‘SOA on the cloud’ : SaaS application should publish Services for retrieving and manipulating data as well as registering listeners that the SaaS application invokes when specific events occur.

This presentation tells our story of the development of three SaaS style applications based on JavaServer Faces over the past two years. It will introduce the best practices we have arrived at for implementing the requirements listed above. The presentation will include several demonstrations of both the customization and the service interface of JSF based SaaS applications.

 

 

Even shorter:
SaaS applications serve users in many organizations from a single application instance that runs in the remote cloud. SaaS applications are usually multi-lingual (or at least multi-terminology) and run 24/7. Common requirements for SaaS applications include: customization including hiding and adding fields and managing boilerplate text and influencing the look & feel. Deep link navigation into the SaaS application allows visual integration between the SaaS application and local apps or SaaS running in another cloud. Facilities for importing and exporting data to and from the SaaS application are crucial. SaaS applications ideally also publish Services for retrieving and manipulating data as well as allow registration of listeners – applications outside the SaaS cloud that are invoked by the SaaS application when specific events occur.

This is our story of developing three SaaS JSF applications in the past two years. It shows the best practices we have arrived at for implementing SaaS requirements. It includes demos of both the customization and the service interface.

Target Audience

Experienced Java Web Developers, preferably familiar with JavaServer Faces

Key Points

What are typical requirements for SaaS style web applications?
Best practices for implementing customization features in JSF applications
How to implement deep link navigation into JSF web applications
An infrastructure for registering and notifying remote listeners for business events in JSF applications

Outline

Intro of SaaS style application
Brief overview of our business cases + discussion on typical requirements for SaaS application
Focus on Customization (various aspects)
Focus on (remote) Integration (deep link, service api, remote event listeners)
Summary & road ahead

Code Samples:
Approach to factory, organization (customer) and user level application settings
Deep Link navigation into JSF application
Register Remote Listener with SaaS application + notification upon business event

Share.

About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director for Fusion Middleware. Consultant, trainer and instructor on diverse areas including Oracle Database (SQL & PLSQL), Service Oriented Architecture, BPM, ADF, Java in various shapes and forms and many other things. Author of the Oracle Press book: Oracle SOA Suite 11g Handbook. Frequent presenter on conferences such as JavaOne, Oracle OpenWorld, ODTUG Kaleidoscope, Devoxx and OBUG. Presenter for Oracle University Celebrity specials.

4 Comments

  1. Thanks for presentation.
    Very useful & worked fine with my interfce.
    If demo code available ,please do share information.

  2. Dear Lucas,

    After reading your article I questioned myself regarding one thing. Are SAAS applications/services different from traditional web apps?

    If so what is the difference? As in general terms people assume that any application over the web is SAAS.

    Need your thoughts

    Amit

  3. Lucas,

    Thanks for the presentation.. A little difficult to follow from your blog..

    It sounds like you have generated a few standard Interfaces… what are they…

    Could you expand on the slide 7 integration across the cloud… especially identity management.

    Also the last slide mentions demo code… is this available?..

    Anyway you guys do great blogs.

    Thanks Craig