Friday, May 2, 2008

Understanding the Cloud Computing/SaaS/PaaS markets: a Map of the Players in the Industry

The Cloud Computing/SaaS/PaaS space is loaded with interesting vendors, and the space is booming. If you are trying to navigate this world and need a guide, this blog entry will help. We have assembled a visual map of the industry, showing how the major players fit into the overall space. It will give you an overview of who's who, and what types of solutions are being offered.

NOTE: a newer version of this map is now available. Click here to navigate to the most recent research.

I was greatly assisted by Kent Dickson, VP of Product Management for SaaS at BEA, in building this map. Steve Bobrowski, Director of SaaS Evangelism, also contributed comments. Thanks to both!

Defining the Markets

Before we look at the map, we need to define the major areas that we are covering. Note that in many ways these markets overlap so trying to differentiate which solution is in which is not a meaningful exercise. Needless to say, drawing out the map is a subjective effort, and not all solutions fit neatly into their assigned bucket. The purpose of the visual map is not to address subtleties, but to draw the industry in general terms.

Cloud Computing

Cloud computing refers to the virtualization of the data center, such that server machines are not thought of individually but as just a commodity in a greater collection of server machines. Cloud computing solutions in general strive to eliminate the need for an application deployer to be aware of the actual physical machines that are used to host the application. Some have called this idea “hardware as a service”.

Solutions that are most closely associated with the Cloud Computing market are indicated with the image icon on the map.

Software as a Service (SaaS)

An application that is delivered through the SaaS model typically is done so:

  • Over the internet,
  • Remotely by a third party, with little/no opportunity to bring that application in-house
  • With a usage-based pricing model

Solutions that are most closely associated with the SaaS market are indicated with the image icon on the map.

Platform as a Service (PaaS)

When a vendor offers a Platform as a Service, they are offering an integrated platform to build, test, and deploy custom applications. The PaaS is offered to you in a SaaS model (remote, usage-based). Dion Hinchliffe recently published a comprehensive whitepaper on this topic.

The PaaS market is indicated with the image icon in the map view.

Core Cloud Services

After defining the 3 markets, there remains a set of solutions that contribute to all as fundamental building blocks. In other words, these solutions address cross cutting concerns.

In the map they are marked with a distinct icon image to set them apart.

The Visual Map

Below is the visual map as promised. You will find a larger version hosted here. An explanation of each category and a full clickable URL list of the solutions is offered below the map.

If you wish to make changes, the original mind map drawing file assets are located here. Please post comments with your thoughts, or use this map as a basis for your own vision of the industry. Please give credit back to the original source (see Creative Commons) if you do.

SaaSMap_LairdDickson_May08

Defining the Solution Groupings

In the map, we grouped solutions according to the problems they aim to solve. This section details the intent of each category.

Please note that for every category, there are more vendors that could be included. We are not attempting to provide a comprehensive list of every player in the industry. THINKStrategies created the SaaS Showplace if that is what you are looking for.

This map only shows solutions that are both 1) available in some form today, and 2) have significant mindshare in the industry. Feedback is appreciated if you disagree with any solution that was included or excluded.

Left Side

Cloud Providers - vendors who provide server hardware in commodity form, as a virtualized cloud

Cloud Deployment - solutions surrounding the deployment of applications to a virtualized cloud

Virtual Appliances - packaging and virtualization format solutions for provisioning applications into a cloud

Topology Management - solutions focused on the coordination of many virtual appliances (app, DB, network) in the cloud to form a full deployment

Billing, Contract Management - solutions that provide metering, billing, pricing, and contract management to help charge for use of a system

Security - solutions focused on solving security requirements in these markets

Data - services that deliver/retain data for applications

Hosters 2.0 - Hosting Service Providers with SaaS focus. Perhaps a controversial grouping and impossible to define, these hosters tend to appear over and over in these markets

Nerd Stuff - geeky topics fall into this category. MapReduce is mechanism for solving large computing tasks, like Google Search indexing

Right Side

On Demand Apps - the heart of the SaaS market, only a few depicted here but we could add "...and a cast of thousands". These are the end application products offered for consumption in a SaaS model

Integration as a Service - service solutions that help in integrating multiple systems, possibly multiple SaaS systems

Content as a Service - hosted content repositories

BPM and Workflow - service based offerings for managing workflow and process

Platform as a Service - incarnations of the PaaS concept

Reference Solutions List (with clickable links)

Cloud Computing,
SaaS, and PaaS
Industries
2008

Technorati Tags: ,,,
Comments from the original blog:
  • Very useful chart. You've misspelled Itensil (not Intensil)in the BPM as a service node -- the website link works though, so don't change that. I'd argue that Itensil is really a PaaS product with pre-built workflow, and invite your readers to have a look and let me know if you agree.

    Posted by: kpatterson on May 16, 2008 at 12:34 PM

  • FYI - I will be working on an updated map shortly. The feedback is still rolling in. thanks for all the email/comments.

    Google - yes, they are listed as a PaaS with their new App Engine offering

    MorpheXchange.com - thanks for the note, just published an entry on them on my Cloud/PaaS/SaaS microfeed

    And thanks to OpSource for the mention today of the map in their monthly newsletter.

    Posted by: plaird on May 14, 2008 at 1:24 PM

  • Very interesting article. Just two questions -- Did Google recently add an offering to the cloud computing space ? Is a company called mediamax.com involved in the storage-as-a -service category ?

    Posted by: hsr0508 on May 14, 2008 at 11:22 AM

  • I'm a bit cautious of messing with the wiki list Peter but may I also point you to MorpheXchange.com as one of the emergent PaaS players particularly incorporating open source technologies to guard against the lock in fear. Incidentally, the platform has opened itself to Java after debuting Rails. Check them out. Best. alain

    Posted by: friarminor on May 13, 2008 at 9:34 AM

  • Peter Thanks for the feedback, much appreciated. Looking forward for your comment on my post:)

    Posted by: natishalom on May 6, 2008 at 8:03 PM

  • Nati - thanks for the comment, this is what I am looking for. Responses:

    Rightscale, MySQL, Coherence, GigaSpaces, etc: maybe not all of those, but I also have been getting emails offline, and will need to make a v1.1 of the map to include a handful of corrections/omissions. The feedback is still coming in, so will wait a little while. I don't want the map to turn into a 1000 node monster, so I want to be very selective. Jeff Kaplan's SaaS Showplace is the comprehensive source backing all of this.

    Oracle SaaS Platform: this was a late addition, and upon further reflection not exactly right. I now see the Platform bucket broken into two, with PaaS (minus ORCL). Then with a new bucket perhaps containing on-prem platform software that is "SaaS ready". Still noodling on this though.

    Your blog: thanks for the link, I wasn't following your feed, now I am. I would agree in general about lock-in, not totally on board will all of your conclusions. I am deciding whether to add a comment to your blog, write a response blog entry, or succumb to laziness and just let it be. :)

    Cheers - PJL

    Posted by: plaird on May 6, 2008 at 10:23 AM

  • Interesting review. It captures many of the players in this emerging space.
    I think that your missing some important platforms such as RightScale.
    I also wanted to point out that one of the main problems with Platform as a Service that are mentioned is the fact that offer radically proprietary solution. In your list there are few that i rarely heard of in that context such as Oracle SaaS platform..
    I recently wrote a post describing other platform choice that can help building SaaS applications in a way that could be easily ported to any cloud environment. It support also existing Java/Spring and .Net frameworks. In this way you don't have to switch entirely to completely different proprietary framework to leverage the value of cloud based environment.
    The post is available here:
    Google App Engine - what about existing applications?
    You can also view Dave Rosenberg post that points to other frameworks on that regard Sun's OpenSolaris on EC2--overcast but not completely Cloudy
    On the data services side i think that your missing few important and common services that are used by many of the applications running on cloud today such as MySQL, and other data-caching services such as Oracle-Coherence, GigaSpaces, Terracotta, Memcache etc. Some of which integrates with SimpleDB thus providing in-memory front end for better performance and reliability. (See example here SimpleDB such as the one with SimpleDB)

    Posted by: natishalom on May 6, 2008 at 4:51 AM

  • Hi Jim - good questions.

    A lot of parallels are drawn between the ASPs of the 90's and the SaaS providers of today. One of the key differentiators is that SaaS does not require the tenant to make a large upfront payment like they did in the ASP/outsourced model. SaaS is offered with usage based pricing - e.g. you pay $50 per user per month. There are other differentiators, but that is key.

    As for the zero customization solutions being very limited, I think you are right. Per-tenant customizations are critical for the enterprise, be it UI, data model, business process, etc. I think all SaaS vendors are working on solving this, and some have solutions today.

    I posted a list of SaaS podcasts which offer a much more in-depth response to your questions. I found them very helpful in explaining what is happening in the industry.

    Thanks for the comment! PJL

    Posted by: plaird on May 5, 2008 at 10:30 AM

  • This topic is getting a ton of exposure right now, I just finished the Wired article on Amazon's EC2 http://www.wired.com/techbiz/it/magazine/16-05/mf_amazon I have a number of questions on this topic, I'll start with Isn't this simply Outsourcing 2.0? IBM,AmDocs,etc... host infrastructure for many of our customers, you happen to know the hardware, os, and IP of the machine it is running on, change it to a cloud of resources (virtualize and absract it), and change the pricing model...Voila outsourcing 2.0. SaaS gives you more than outsourcing, but SaaS to me is not going anywhere fast, and is only riding the buzz of cloud computing. Cookie-cutter (no customization) solutions offering no diversity from the competition who are all using the same service. I see value in the space, but I have the feeling this is more hype than real value.

    Posted by: jcalise on May 3, 2008 at 10:14 PM

  • Great article Peter, I now have a much better idea of the space. Did not realize was that many players involved. Thanks for sharing this data! Cheers, --alex

    Posted by: atoussai on May 3, 2008 at 7:59 PM

  • Excellent break down of the space, and a great reference to use going forward.

    Posted by: jcalise on May 2, 2008 at 10:45 AM

Sunday, April 27, 2008

Mining Twitter for the Enterprise: Survey your Customers' Candid Thoughts using a Social Web 2.0 Service

One BEA customer recently posted on Twitter: "hating weblogic". Another said: "F@#% you weblogic for not handling HTTP 500 errors properly."

Whether you personally participate in one of the numerous internet social platforms or not, some of your customers are out there. WebLogic isn't the only brand being discussed - name the brand and there are customers voicing their opinions on these platforms.

This blog entry focuses on Twitter, and shows how you can mine Twitter for feedback on your brand using a tool called TweetScan. Because of the very informal nature of Twitter, and it's low barrier to participate, it is a good channel of candid opinions on your brand. Companies like Comcast have already used TweetScan to identify and remedy customer relationship problems in a highly proactive manner. How is your brand perceived on Twitter?

 NOTE: this blog entry was originally posted April 27th, 2008 on my previous blogging system (dev2dev.bea.com).

What is Twitter?

Twitter is a service that allows you to publicly post messages in small doses - 140 characters or less. The basic idea is to answer the question What are you doing? but you can use those 140 characters to say whatever you want.

While blogs are a great source of public opinion, they tend to be more filtered because they require more effort to produce. Twitter lowers the barrier to post dramatically, and therefore is a better medium for capturing those minor annoyances and random thoughts we all have throughout our day. There is also less of a imperative to post something interesting - your readers only need to invest the time to read 140 characters and not paragraphs of a blog entry.

 

Me and Twitter

I am a reluctant poster to Twitter. Do people really care that I just ate dinner or that I am about to watch a movie? Not really, apparently, as I don't have too many followers. Granted, I haven't been at it that long, but is this time well spent?

Is participating in Twitter worth your time?

I really don't know, and certainly am not an expert. But I suspect it depends on how you view Twitter specifically, or the other social platforms in general. Are you using it to get something done, improve your social life, for pure entertainment, or what.

Sarah Perez  talks through the issue in her blog Real People Don't Have Time for Social Media, and an e-consultancy article "Social media's inconvenient truth" expands on it.

   "But there's an inconvenient truth that proponents of these sites tend to ignore - the average person just doesn't have the ability to participate fully in social media."

 

TweetScan - Improving the Signal to Noise Ratio for Observers

The silver lining is you don't have to participate to acquire great value from these social computing tools. Lots of people are using Twitter as a medium for publishing their unfiltered thoughts. As simply an observer, you can use these platforms to great advantage. But how?

A problem that cannot be ignored is the amount of noise on these platforms. While Twitter is a wealth of information on customers' opinions and comments, much of this is chaff - "sitting on toilet listening to lily Allen". But buried within the mountain of irrelevance are some nuggets of useful information - "Angry at BEA. Why doesn't WebLogic play nice in OSGi?".

With just plain old Twitter, its impossible to separate the crud from the gold. TweetScan is the solution - it is a search engine built on top of Twitter to help you find the diamonds in the rough, especially when you are focused on a searchable keyword like your product brand.

image

 

Monitoring your Customer's View of your Brand

Savvy marketing and customer relationship people have started to take advantage of TweetScan to help manage their PR and to capture raw customer data. Michael Arrington's adventure with Comcast is the most famous.

Michael Arrington was having trouble with his Comcast internet account. Calls to their service center didn't provide a relief, and so he fired off some Twitter posts in anger. Being who he is, others picked up on this and triggered a fire storm of net activity. Then something wonderful happened:

"And this brings me to the point of this post. Within 20 minutes of my first Twitter message I got a call from a Comcast executive in Philadelphia who wanted to know how he could help. He said he monitors Twitter and blogs to get an understanding of what people are saying about Comcast, and so he saw the discussion break out around my messages."

As far as PR and customer relationships go, this is a fantastic show of force by Comcast. But not everyone who posts to Twitter is a famous net personality like Michael. It is fair to assume that Comcast cannot afford to provide the same level of response to the average joes out there. At least one on one. Instead, Comcast can monitor the Twitter channel and detect general patterns in service problems. Michael sums up how this can benefit Comcast (and its customers):

"Well before most people they have identified blogs, and particularly Twitter, as an excellent early warning system to flag possible brand implosions."

A few more references to using Twitter like this:

  • Blip.TV - Blip.TV used TweetScan to eavesdrop on its customers and detected and resolved a service problem using this approach.
  • Using Twitter as a Research Tool - Krishna De talks about using Twitter derived information for research.

 

WebLogic on TweetScan

The brand I care about is WebLogic. As an architect on WebLogic Portal, I am heavily invested in this brand. Up until now, the primary way we received feedback on the product have been these channels:

  • Monitoring the WebLogic newsgroups
  • Customer support cases
  • Direct interactions with customers

All of these have been effective, but it is interesting to see how TweetScan can provide a new channel for feedback. Here are some selected entries in the current search for "weblogic" on TweetScan, with a focus on the negative posts:

We see negative comments on the newsgroups. But these Twitter posts are far more unfiltered and more of the flavor "how do you feel about weblogic", as opposed to the newsgroups/support cases which are "what is not working for you with weblogic". Now, most Twitter posts by definition don't have nearly enough information to really understand the underlying issue. But you get a flavor of what your customers are feeling, and you can always follow up for clarification by asking the user to clarify offline.

And to be clear, this list is fairly typical of ANY brand you search on. Pick a brand, and do the search, and you find a litany of complaints and negative comments. This is normal. Check your pride at the door before searching on your brand. Twitter posts on brands usually err on the side of being flames, not praises.

 

Comments from original blog:
  • Jott - looks useful. Notice they have a "custom service" capability where you can give it a server URL to HTTP POST the messages to, instead of predefined endpoint like Twitter. I love open systems.

    Posted by: plaird on April 30, 2008 at 10:39 AM

  • Excellent post, Peter, on an important topic.

    As people become increasingly frustrated with voice mail systems and email auto-responders when trying to report problems to companies, tools like blogs and Twitter will become the means by which honked-off customers express their frustrations. That trend will grow, and with it the need for companies to get proactive, pay attention, and track these sites and services in order to manage customer satisfaction and public relations.

    BTW: In conjunction with Twitter, I also use Jott, a free service that transcribes voice messages to text, and pushes those messages out to my Twitter account, or to one of my blogs, or directly to an email to a contact -- all based on how I configure the service. Cool stuff: I just dial the Jott number, use voice commands to select the message destination, then recite my message. Unless there's a lot of background noise, the transcription is pretty good, and it's a lot easier and faster (for me, anyway) than trying to type a Twitter post on a tiny cellphone keypad.

    Posted by: brhubart on April 29, 2008 at 1:38 PM

  • Someone asked offline what my twitter handle is so they can follow me:

    Follow: plaird

    Posted by: plaird on April 28, 2008 at 8:41 AM

  • I am no Michael Arington - by any stretch of the imagination. I'm just a guy. Last week I had a similar experience with twitter based support from SlideShare. The best thing is I sent out just 1 twitter message in frustration and within 10 minutes, 2 employees of SlideShare contacted me via twitter to give me the low down on the problem I was having. I blogged the story under How Twitter-Enabled Customer Support Saved the Day. I was completely blown away and felt much more special than my individual status really warranted. Extremly powerful use of technology. Dennis Stevenson blogs.ittoolbox.com/cio/origina-thinking

    Posted by: denthewise on April 27, 2008 at 8:52 PM

Thursday, April 24, 2008

SaaS Podcast Links and Notes - Key Insights into the World of SaaS, Platform as a Service (PAAS), On Demand

About two months ago I had 14 hours to spend alone in a car - I was meeting some friends out in Telluride and decided to drive it from my home near Boulder Colorado. Fortunately, I prepared myself. I stocked up on a collection of tech podcasts and made productive use of the time as I rolled through the beautiful mountains. Because I am the architect for BEA's SaaS Platform (code name Genesis), a fair number of the podcasts were focused on SaaS. This blog entry recaps the key insights from some of those SaaS podcasts. Links are provided to the original audio.

NOTE: this blog entry was originally posted April 24th, 2008 on my previous blogging system (dev2dev.bea.com).

SaaS at BEA

For those that know me as an architect on WebLogic Portal, this blog entry may seem odd. What does SaaS have to do with WLP, or even BEA?

The answer is I took on responsibility for the BEA SaaS Platform architecture a few months back and have been hard at work defining that (and not blogging, if you notice the gap in posts). The idea at BEA is to provide a platform for building SaaS applications that includes features like metering and billing, multi-tenancy, and cloud provisioning.

If you pay attention to the space, you will notice that 2008 appears to be the year of Platform as a Service (PAAS). Perhaps I will explain what is going on with that in a future blog entry. This post is focused on podcasts. For those of you are interested in learning about SaaS, I have provided links to podcasts that I found very helpful in understanding the business of SaaS.

 

The Podcasts

Here is the collection of podcasts that I would recommend.

 

Podcast Title SaaS is Mainstream
Podcast Participants Jeff Kaplan (THINKStrategies), Paul Gillin
Podcast Series SaaSAdvantage Series, SaaSCon
Podcast Link  SaaSAdvantage #1

Podcast Notes:

  • Compliance/security issues were expected to prevent the adoption of SaaS, but are actually helping.
  • SaaS vendors are savvy on compliance, and implement it as well/better than IT can.
  • SaaS vendors have been certified on compliance standards such as SAS-70.

Further Reading:

 

Podcast Title Living in a SaaS World
Podcast Participants Mitchell Ashley, Jeff Kaplan
Podcast Series Converging on Microsoft, NetworkWorld
Podcast Link  SaaS Podcast

Podcast Notes:

  • SaaS and IT
    • SaaS growing faster than Gartner thinks, because Gartner just interviews IT.
    • A fair amount of SaaS is sponsored directly by the business, outside of IT.
    • However, more SaaS solutions are now targeting IT instead of trying to work around IT
  • Microsoft SaaS Strategy
    • They are very cautious, so much to lose
    • Microsoft Live solution is an experiment
    • They can’t alienate their all important VAR sales channel
  • Channel sales and Offering SaaS products
    • Role of the sales channel changes
    • Historically have helped to implement complexity
    • SaaS removes complexity
    • Channel partners must evolve into advisors, not just implementors
  • Business buyers of SaaS are trying to figure out the sourcing model for apps
    • Outsourcing is changing from major deals (outsourcing entire IT dept) to focused SaaS deals
    • “Outtasking” more appropriate name for this

Further Reading:

 

Podcast Title What is Saas (Part II)
Podcast Participants Jeff Kaplan
Podcast Series WhatIs.com
Podcast Link  WhatIs Podcast

Podcast Notes:

  • Industry is ready for SaaS
    • Cost conscious, especially now with possible recession in the US
    • Outsourcing of IT functions is now a proven model
    • Internet bandwidth is in place to support this (to the office, home)
    • 75% of IT budget locked in maintenance, not a successful model
    • TCO is proven to be lower with SaaS
  • How ISVs need to adapt when selling a SaaS solution:
    • Technology – must adopt web application model for delivering product
    • Revenue model – subscription model requires longer time to receive revenue
    • Must continually invest in the relationship – not a one time sale
    • Lower switching costs mean more competitive market

Further Reading:

 

Podcast Title Lecayla Session
Podcast Participants Conor Halpin, Jeff Kaplan
Podcast Series Spotlight on SaaS, THINKStrategies
Podcast Link  Lecayla Podcast

Podcast Notes:

  • Per user pricing is the obvious, but is not a totally effective billing model
    • Easy to turn into a compete-on-price model with competitors
      • If the other guy charges $20 less per user, it's too easy for the customer to focus on that.
    • All users are not equal, some will use the system every day, some twice a year
    • Key is to bill based on added value – transactional events
    • One of Lecayla’s tenants offers a hybrid model to their customers
      • User based for frequent users
      • Transaction based for infrequent users
  • Vendors with existing perpetual license products are afraid of cannibalization
    • Can avoid by pricing based on type of usage as well as transactional
    • Example: BI vendors make a ton of money off of end of quarter financial roll ups
      • Low transaction volume, but high value transactions and very time sensitive
      • Priced out of low end markets that are high transaction volume, low value per transaction
      • Can continue on-premise model for former, SaaS for the latter
    • Enforce through contract

Further Reading:

 

Podcast Title Understanding SaaS Architecture
Podcast Participants Gianpaolo Carraro, Fred Chong (MSFT),
Paul Gillin
Podcast Series SaaSAdvantage Series, SaaSCon
Podcast Link  SaasAdvantage Podcast #8

Podcast Notes:

  • SaaS barrier: Loss of control
    • Lack of workarounds if the software doesn’t provide what you need
      • Cannot just query the DB
    • Ops and SLAs are in the hands of the SaaS vendor
    • Internet connections aren’t as reliable as LAN
  • SLA issues
    • Outages
    • Data security
    • Termination terms – how to extract the data
    • Compliance issues
    • Response times, backups

Further Reading:

 

Podcast Title Understanding SaaS Architecture
Podcast Participants Colleen Smith (Progress Software), Dana Gardner
Podcast Series Briefings Direct  (Interarbor)
Podcast Link  Progress Podcast

Podcast Notes:

  • Business Implications of SAAS Software
    • Cash flow
    • Down market opportunities (long tail)
    • SMB opportunities
  • ASP vs. SAAS
    • ASP was all about hosting
    • ASPs did not manage application
    • No multi-tenancy with ASPs
    • ASPs had no application expertise
  • Why time is right for SaaS
    • Cost of computing is low – web browser is the distribution
    • Long tail is reachable – new Geos, adjacent markets, low end
    • Computing clouds
  • Business Service Providers
    • Combination of SOA and SAAS
    • BSP provides an end to end service
    • Vertically focused

 

Podcast Title Software as a Service and IBM
Podcast Participants Dave Mitchell (IBM), Scott Laningham
Podcast Series IBM developerWorks
Podcast Link  Mitchell Podcast

Podcast Notes:

  • What is SaaS?
    • SAAS is all about transfer of risk to the ISV
    • SAAS implies a subscription model/pay as you go
    • SAAS is served remotely, with little/no option to bring back in house
  • What is ASP?
    • Software is purchased up front by the customer, not a subscription
    • Hosted remotely, but can be brought back in house
  • Ajax/RIA is enabling more applications to become SaaS
    • SaaS requires a web application
    • RIA/Ajax allows more applications to become viable as web applications

 

Wednesday, April 23, 2008

WebLogic Portal: Exposing Portlets (JSR 168, WSRP, JSF, Struts, etc) as Enterprise Google Gadgets

Wondering how to expose Google Gadgets from WebLogic Portal? As promised, this is the second entry in a two part series talking about Google Gadgets. The first entry explained how to build a simple gadget. Now we will explore how to surface a Java portlet as a gadget using WebLogic Portal. Exposing a Google Gadget from any WLP portlet type (JSR 168, WSRP, JSP, Pageflow, JSF, Web Clip, etc) requires no coding - just a simple XML configuration file. This blog entry will show you exactly how to do it.

NOTE: this blog entry was originally posted April 23rd, 2008 on my previous blogging system (dev2dev.bea.com).

History of the Integration

As I mentioned in the first posting we have been doing demos of WLP portlets as Google Gadgets for a long time - since the second half of 2006 with our WLP 9.2 release. This was all possible because of a feature introduced in that release called Portlet Publishing. Portlet Publishing allows any WLP hosted portlet to be exposed as a URL. If you understand the basics of Google Gadgets, you can hopefully see how this feature can be used to turn any portlet into a gadget simply by referencing that portlet's URL in the gadget descriptor.

Early demos used a servlet to dynamically generate the appropriate Google Gadget descriptor on the fly. We even experimented with clever hacks to enable Single Sign On between iGoogle and WLP. We worked with the Google Gadget engineering team to explore ideas in this area.

But in the end we decided not to productize the integration. This is due in large part because authoring the Google Gadget descriptor for a portlet is quite easy, and therefore an official feature wouldn't add tremendous value. Additionally, we were concerned about the supportability of such a feature, for example what would happen if the descriptor format changed. Also, the explorations around authentication were not enterprise quality approaches, and so not something we wanted to promote.

Therefore, at this time WLP does not offer a "Generate Google Gadget..." option in the IDE, or provide any other specific feature. However, as this blog entry will show, using the FULLY supported feature of Portlet Publishing, you can expose your portlets as gadgets with NO CODING required.

Portlet Publishing

Before we can talk about generating a Google Gadget, we need to take a look at Portlet Publishing. Once again, this feature exposes any WLP hosted portlet as a URL - an HTTP addressable end-point. The power of this feature is that any thing that can consume an HTTP end-point (e.g., an IFrame within any webpage) can be host to a WLP portlet. It is important to note that Portlet Publishing works for all WLP portlet types, like JSR 168, WSRP, JSF, Struts, Web Clipper, etc.

This means that with a single deployment of your portlet on WLP, it can be used over the following channels simultaneously:

  • Directly embedded in a standard WLP portal/desktop
  • Directly embedded in any JSP hosted on the WLP server (see the portalFacet JSP tag)
  • Federated to external WSRP consumers (WSRP is a web services standard for consuming remote portlets)
  • Federated to any consumer of HTTP, notably browsers via IFrames and XmlHttpRequests (which means ANY website on the planet)

image

In WLP 9.2 and WLP 10, Portlet Publishing was limited to the library instances of portlets. This meant user preferences were not supported through the HTTP channel. However, with WLP 10.2, Portlet Publishing has been augmented to allow for Desktop Instances (and thus user preferences) to be exposed over the HTTP channel. Consult the documentation for more details on this point.

To consume portlets published over the HTTP channel in any web page, you can inject the portlet into the HTML using one of these techniques:

  • An inline frame (iframe) that points to the URL to the portlet
  • DOM Injection - using simple JavaScript that WLP provides, you can dynamically inject the portlet into the page using Ajax (XmlHttpRequest)

Once again, consult the documentation for more details on these points.

Exposing your WLP Portlet as a Google Gadget

You have hopefully read my previous blog entry on how to build a simple Google Gadget. This section builds on that knowledge. Essentially, we will author a Google Gadget descriptor that points at a WLP portlet exposed over HTTP (via Portlet Publishing).

To make this entry as simple as possible, we will use the library definition form of the Portlet Publishing URL. For example, assume you have a portlet that is exposed at this URL:

http://wlp.bea.com/dvt/portlets/wlp/stackWLP.portlet

If you are unfamiliar with WLP, the .portlet file is a file based XML document that describes a portlet's meta data. In this case, it has been deployed in the portlets/wlp directory of the dvt webapp. When directly addressed, Portlet Publishing kicks in and serves up the portlet implementation associated with this .portlet file (this is the library definition approach to publishing).

You can now easily author a gadget descriptor that targets that URL, and thus exposes that portlet as a Google Gadget:

<?xml version="1.0" encoding="UTF-8" ?>

  <Module>

<ModulePrefs

title="WLP Portlet Gadget"

height="120"

author="Peter Laird"

  />

  <Content href="http://wlp.bea.com/dvt/portlets/wlp/stackWLP.portlet" type="url" />

</Module>

Copy this gadget descriptor to a public web server, and then add this gadget to your iGoogle portal as I showed in my previous post. And Presto!

The Fine Print

Some details to think about:

Titlebars: WLP will by default render a titlebar to the portlet, and so will iGoogle. To avoid nested titlebars, use the "light" decoration option with Portlet Publishing desktop portlet instances.

Authentication: if you have a cookie based web SSO solution in place, your users will automatically be logged into the WLP server even when the user navigates to iGoogle (by virtue of how iframes work). In other circumstances, you will need to provide a login screen within the portlet.

image Add to Google button: it is often nice to have an "Add to Google" button on the portlet. This is easily done by just copying the URL pattern seen on other sites that provide such a button. You will essentially need to embed the URL to your gadget descriptor into the button link.

Preferences: you will need to decide what to do with preferences. WLP manages preferences on the server side. If your portlet is exposed over multiple channels, stick with that. However, if the portlet will ONLY be consumed as a Google Gadget, you may consider using the Google provided preference service.

JavaScript Libraries: Google provides a number of JavaScript libraries for Gadget developers. When developing a portlet that will only be exposed as a gadget, feel free to use these. However, if the portlet will be exposed over multiple channels (like on a WLP desktop), be aware that none of the Google libraries have been certified within WLP.

References

 

Tuesday, April 22, 2008

Introduction to Google Gadgets

We have been showing how to expose WebLogic Portal portlets as Google Gadgets for almost two years now. Embarrassingly enough, we haven't written any blogs or articles on HOW to do it. We have answered email questions about it, but nothing public. This two part blog series will correct that omission. You will hopefully see that it is really quite simple to do. This first entry will talk about building a generic Google Gadget (without WLP), and then the following entry will show how to convert any WLP portlet into a gadget.

NOTE: this blog entry was originally posted April 22nd, 2008 on my previous blogging system (dev2dev.bea.com).

What are Google Gadgets, and iGoogle, please?

Google Gadgets are web based widgets/portlets/[insert your favorite web component term here] that are based on technology provided by Google specifically to make federating gadgets easy. To see gadgets in action, the best place to try them out is on the iGoogle portal.

Gadgets can really do anything. This example shows an eBay integrated gadget that allows a user to interact with their eBay account within the gadget:

image

The technology provided by Google can be lumped into these buckets

  • An xml file format for describing a gadget (called the descriptor)
  • A gadget preferences model - for storing user specific preferences for a gadget external to the gadget implementation
  • Various JavaScript libraries for doing useful things
  • An online directory of pre-built gadgets
  • iGoogle - the reference platform for users to use gadgets
  • Google Gadgets for your Webpage - a JavaScript mechanism for including a gadget on ANY web page

Several things are notably missing from what Google provides with regard to gadgets

  • Gadget hosting - aside from a few official Google gadgets, all the gadgets are hosted independently by their creators
  • Gadget validation - treat every gadget with suspicion; even though it is flying the colors of a well known brand it may be hosted by a guy in a basement.
  • Authentication - there is no provided mechanism for gadgets to inherit authentication from the consuming page, notably no single sign on with iGoogle

Finally, note that there is another gadget technology offered by Google called Desktop Gadgets. There gadgets are targeted toward Google Desktop, and aren't related to the gadgets we are discussing.

The Google Gadget Phenomenon - why should you even care?

Google Gadgets and iGoogle were the fastest growing product offered by Google in 2006 and had strong growth again in 2007

“The star performer for [2007] was Google’s personalized start page service iGoogle which increased traffic in the 12 months to November by 267.64%.” (TechCrunch)

Useful Gadgets get heavily used:

“The Google gadget ecosystem received 960 million pageviews last week” (Niall Kennedy)

These metrics are largely based on use of gadgets and iGoogle in the consumer space. But consider how your enterprise can benefit from deploying Google Gadgets:

  • A new channel to your customers within iGoogle
  • Offered as a widget to your customers to place on their own web pages
  • A new channel to your partners/employees within iGoogle

Building a Simple Google Gadget - as easy as falling off a bike?

This section discusses the express route to building a gadget. Steps to build:

  1. Create a gadget implementation, which is nothing more than an HTML document served from a public web server.
  2. Create a gadget XML descriptor, that refers to the gadget implementation.
  3. Add the gadget to iGoogle.

Step 1: Create the Gadget Implementation

Save this HTML into a file on a public web server.

<html>

<body>

Hello World.

</body>

</html>

Step 2: Create the Gadget Descriptor

Save this XML into a file on a public web server (I have also hosted one publicly here for now: http://wlp.bea.com/blogs/simplestGadget.xml). You will need to update the href included in the body to the URL to your HTML document created by step 1.

<?xml version="1.0" encoding="UTF-8" ?>

<Module>

<ModulePrefs

title="Simplest Gadget"

directory_title="Simplest Gadget"

title_url="http://wlp.bea.com"

description="Very very simple gadget."

height="120"

author="Peter Laird"

/>

<Content href="http://wlp.bea.com/blogs/simplest.html" type="url" />

</Module>

Step 3: Add the gadget to iGoogle

Login to iGoogle, and then click the Add Stuff link, and then Add Feed or Gadget link. Provide the URL to the XML document created in step 2.

image

Step 4: Enjoy!

image 

Next Steps

In the next blog post, I will show how to expose any WLP portlet as a Google Gadget. Stay tuned!

References

I only covered a small part of the Google Gadget technology. Their developer documentation is excellent, so please refer to it for more details:

Technorati Tags: ,

Monday, December 17, 2007

Deploying the ALBPM Workspace into WebLogic Portal

Customers that purchase both WebLogic Portal (WLP) and AquaLogic Business Process Management (ALBPM) will certainly want them to work together. Specifically, customers want to be able to deploy the ALBPM Workspace user interface as portlets on a WLP portal. This blog explains how to do that, and provides a script to help automate the most tedious steps.

NOTE: this blog entry was originally posted December 17th, 2007 on my previous blogging system (dev2dev.bea.com).

Use Case

The ALBPM Workspace contains a total of 4 portlets. By default, they deploy in their own pre-built web application. But if you have both ALBPM and WLP in your environment, it would be useful to be able to deploy the portlets into WLP.

The four portlets are:

  • Actions Menu: lists the operations the user can perform, like create a new process
  • Views Menu: lists the various views available, like process inbox and bookmarks
  • Worklist: displays the list as directed by the Views menu, like the list of active processes
  • Instance Detail: shows the details of a specific process

A view of the completed Workspace on WLP:

albpmOnWLP

Integration Implementation

Behind the scenes, there are some challenges to this project. First, when the user authenticates with WLP, they shouldn't have to also sign into ALBPM. Fortunately, ALBPM implemented an SSO mechanism in ALBPM 6.0. This can be enabled via a couple of checkboxes during the configuration of ALBPM (more on this later).

Second, the portlets and all supporting file based artifacts need to be brought into the WLP Web Project. While most of this is straightforward, it is an error prone operation. Also, merging in the necessary web.xml entries for the ALBPM workspace into the stock WLP web.xml is tricky. A simple error can create headaches. This part screams for an automated solution.

To make this integration as easy as possible, I have created a distribution that contains movies and an Ant script. The movies will to help guide you through the process. The Ant script removes a lot of tedious steps from the process.

Note: while this integration guide and script are deemed reliable, they are not officially supported. The official documentation is the supported source of information on this integration.

ALBPM 6.0 Workspace for WLP 10

There is official documentation to explain how to integrate the products. But sometimes seeing the integration is the best teacher. Therefore, the distribution that I have created includes a series of movies. Additionally, it contains an overview presentation on the process of integrating the products. Finally, the actual deployment of the ALBPM Workspace onto WLP is scripted via an Ant script that I provide.

I have hosted the files of the distribution in this location:

ALBPM 6.0 Workspace for WLP 10 Download Center

Note: to view the Flash FLV movies you will need an FLV player, such as the free FLVPlayer

ALBPM_for_WLP_slides.zip and ALBPM_for_WLP_slides_movie.zip

Start with these. One zip contains the Powerpoint presentation, the other contains a movie of me talking through the slides. This deck explains what the integration is all about, and the high level steps needed to perform the integration.

ALBPM_for_WLP_movie1.zip, ALBPM_for_WLP_movie2.zip, ALBPM_for_WLP_movie3.zip

These zip files contain detailed walk throughs of various parts of the integration. View these movies in order, and use the Pause button so you can follow along while you perform the integration on your machine.

ALBPM_for_WLP_script.zip

This zip contains the Ant script and associated files that will automate the ALBPM Workspace deployment into WLP. This script does a ton of file copying and also includes some new files (.portlets) to make this a smooth process. While you can do all of this by hand, the script gets the job done quickly and correctly.

Acknowledgements

I didn't complete this project by myself. The ALBPM Development and QA teams (Eduardo, Nico, Mariana, Alex, Mariano, and others) did a lot of work on sorting out the process to get the products integrated. Additionally, some folks from BEA Professional Services (Paddy in particular) helped get this going. THANKS!

Additional Resources

Need more information? Here are some good links to get you started:

  • WLP Download - download WebLogic Portal (minimum version 10.0)
  • ALBPM Download - download AquaLogic BPM (minimum version 6.0 MP1)
  • ALBPM for WLP Official Documentation - official docs for integrating the products
  • Alex Toussaint's Blog - ALBPM product manager's blog
  • Jesper Joergensen's Blog - ALBPM product marketing blog
  • Josh Lannin's Blog - WLP products manager's blog, check out the 5 part WLP futures series
Add to Technorati Favorites
Technorati Tags: ,

Comments from the original blog:
  • Hi Praveen -

    Yes, something with the Apache config is doing strange things with that. We just did a lot of Apache work to speed up the WLP demos, and I am nervous to touch it to sort out the issue. I have found that Firefox, not IE, should be able to download the files fine. Can you try that?

    PJL

    Posted by: plaird on May 5, 2008 at 11:16 AM

  • Peter, thanks a lot. It seems like a very useful information but I am not able to download using the hyperlinks. Can you pls help me in getting these? my emailID: awasthypr@saic.com Thanks again!!

    Posted by: praveenawasthy on May 5, 2008 at 2:15 AM

  • ALBPM 6.0 MP2 Update

    I produced the script and movies against ALBPM 6.0 MP1. However, I tested against 6.0 MP2 with success (with one caveat).

    The only issue is that there are some JSPs in the ALBPM MP2 workspace that cause the Workshop IDE (WLW) to report build failures (about 45). You will need to disable JSP validation for the WLP web project to get around this.

    Project Properties->Validation->uncheck the JSP validator

    I have updated the presentation to include this GOTCHA, and will also work with the ALBPM team to discover the root cause.

    Thank you Neville for reporting the issue.

    PJL

    Posted by: plaird on January 8, 2008 at 9:31 AM

  • Kunai -

    Sorry about that, I was using an 3rd party file share to host the files. I have rehosted the files on our WLP demo server at wlp.bea.com. I updated the link in the blog too.

    Thanks for the note!

    Posted by: plaird on January 3, 2008 at 11:35 AM

  • Peter, I'm about to get started on deploying ALBPM Workspace on WLP and I would've loved to have downloaded your slides, movies on the subject. However, it appears that the hyperlinks for these downloads have been disabled. Is there any other way we can exchange this information? Please feel free to send an email at "kunal.r.shah@citi.com" Regards, Kunal R Shah

    Posted by: kunalrshah on January 3, 2008 at 11:07 AM

Thursday, October 18, 2007

AquaLogic Commerce Services 5.1 for BEA Workshop 9.2

BEA released AquaLogic Commerce Services this year to help BEA customers with their commerce initatives. ALCS is a product that offers a storefront and comprehensive merchandising capabilities out of the box. If you need to build a commerce solution for your business, ALCS makes it quick and easy. This blog entry describes a supplemental distribution that allows BEA Workshop developers to get up and running easily on ALCS.

NOTE: this blog entry was originally posted October 18th, 2007 on my previous blogging system (dev2dev.bea.com).

NOTE: as of 2009, the ALCS product has been discontinued.

AquaLogic Commerce Services

This blog entry will not focus on the ALCS product itself, but if you have not seen it here is a quick overview. It is a full solution for developing commerce projects for the enterprise. ALCS provides a fully customizable commerce solution that offers many features for both developers and merchandisers.

Features at a Glance

  • Complete storefront delivered in the box - a powerful web shopping experience
  • Merchant Tools - catalog management, promotion management, analytics
  • CSR Tools - order management, fulfillment
  • SEO - world class SEO capabilities to drive customers to your door step
  • Ajax one page checkout - fast track your customers through the checkout process
  • Developer friendly - productive development experience based on Velocity and Spring MVC technologies
  • Extensibility - highly customizable and extensible architecture offers complete control over the solution
  • SOA foundation - features exposed via web services, and integrated into the BEA SOA story
  • Scalability - built on enterprise Java technology, ALCS can scale to meet the demands of the largest commerce projects

For more detailed information on the features in the product, please check out the product information page.

Introducing ALCS 5.1 for WLW 9.2

One of the benefits of ALCS for BEA customers is that it deploys to WebLogic Server and integrates with WebLogic Portal. It fits in with the products that you already know and love. This makes deployment consistent with other projects you have deployed on the WebLogic stack.

However, for the ALCS 5.1 release the development environment out of the box is not aligned with the BEA Workshop IDE. This will get sorted out for the next release of ALCS. Until then, I have created a supplemental solution for ALCS 5.1 that allows for easy integration with BEA Workshop 9.2.

Called ALCS 5.1 for WLW 9.2, the supplemental download has the following features:

  • Script target to reprovision the ALCS sample application into the Workshop project structure (aka WTP)
  • Script target to reskin the sample store from "Snap it Up" to "Avitek Digital" (credit to Dan Tortorici!)
  • Script target to add in prominent disclaimer/promotion announcements to the store

The download available on dev2dev CodeShare includes ample instructions and a presentation that provides more context.

 DOWNLOAD ALCS 5.1 for WLW 9.2

Additional Resources

To get started with ALCS, also consult the following documentation: