Webcenter Interaction Blogs (aka Aqualogic Interaction)

February 06, 2010

Matt Chiste

Wall of Shame Rant: Beware Shady WCI Consultant Resellers

The views and opinions expressed herein are not necessarily the views and opinions of Integryst, LLC.  No, wait.  They are.

I hate spam.  Spam in my mind is like getting mugged at knifepoint for a nickel.  Sure you’re not completely destitute when it’s over, but you just feel dirty knowing that that shady character is going to turn around and keep mugging millions of others.  It’s the people that buy these goods and services that keep shady operators operating, but hey – I don’t blame you, Mr. Penis Extender Guy.  I blame the Nigerian Prince who keeps emailing me in the first place.

I had an idea last year – even registered the domain name counterattackspam.com – that is simple in its premise:  Set up a “white-hat” botnet that would launch denial of service attacks on spammers so that the next Nigerian prince gets 10 million fake bank account numbers trying to help him move his millions across international lines, submit millions of fake credit card numbers to the V1gr1a vendors to steal for their own illicit purposes, or simply launch a DDOS attack on the site to knock it offline and protect Grandma Mildred from making a mistake buying from these people.  My opinion is that if you hand that mugger a fake nickel and he gets busted for counterfeiting when he tries to spend it, the ends justify the means.  But apparently my legal counsel (thanks Bill!) advises me that there are numerous ways to run afoul of the law on this according to the Virginia Computer Crimes Act, Virginia Code § 18.2-152.1 et seq.  So, in the absence of doing anything interesting (or illegal), I submit my idea to the world for someone else to implement.

The definition of spam is a bit nebulous:  I have a lot of contacts I’ve worked with over the years.  If I email one of them an unsolicited – but personalized – message, is that “spam”?  I’d say no; it’s just reaching see how they’re doing and see if there’s any way to help them out.  If I email all of them the same form message, is that spam?  A little greyer, to be sure, and something I wouldn’t do. 

Before I get into the root of this rant, just know that there are still a lot of reputable, experienced firms out there that can help with your AquaLogic, WebCenter, or “Enterprise 2.0” needs.  I started Integryst with a specific focus on honesty, integrity, and excellent service.  And I know it sounds idealistic, but I’m just as interested in you having a successful WebCenter Integration as you using Integryst to do so.  As such, here are some other great firms who can help you out (disclaimers included):

  1. Function1 (I cofounded this company in 2007, and while I left in Jan 2009, as of this writing I still have a vested interest)
  2. PPC (I count several consultants here among my personal friends, but they’re some of the most talented people I know in the industry)
  3. Idhasoft (I have partnered with this firm on at least one proposal, and they’ve got another of my personal friends/college roommates among their ranks)
  4. Oracle (I worked for Plumtree and then BEA, leaving shortly before Oracle acquired BEA, but I still have lots of friends and colleagues there)

Want to hear the actual Rant?  Click on…

When I got the below spam message, I saw only vague promises of “Web 2.0” and a link to a web site that’s clearly a “body shop” type of organization with no specific mention of WCI that I could find.  The message didn’t even come from this guy’s work email – he used an Earthlink account, and there was no way to remove myself from the mailing list.  Spam indeed: welcome to the Hall of Shame, Joe.

Spam

Look, I understand WebCenter is a small market, and it’s tough to break into it and/or get noticed – even if you’re an established vendor with a large staff and huge client roster.  I do a lot of subcontracting, and realize some clients are more comfortable using established firms with a longer history and more administrative support, rather than contracting directly with a small shop like my own.  But, before hiring one of these guys who blindly spams people from an Earthlink account and doesn’t even have the courtesy to provide information about removing yourself from “the list” – think twice.  Do your homework, look for references, and find out what the organization is all about.  Blindly use a middle-man like this guy and you’re doing the rest of us a disservice, just like Mr. “I DO Want To Make $400/hr Stuffing Envelopes”!

by Matt Chiste at February 06, 2010 07:21 PM

February 05, 2010

Function1

The Elephant(s) in the Room – Part 2. A Gentle Intro to Sharepoint 2007 for WCI/ALUI Customers.

circus-elephant

Who says you can’t teach an old elephant new tricks?  In an effort to offer the best portal services available, Function1 has been spending a lot of time with Microsoft Office SharePoint server. Microsoft is a traditional market leader in the many spaces, and its most recent incarnation of SharePoint has the technology baked-in to live up to the hype. Instead of just taking Microsoft’s word for how totally radical the software is, we did our own digging into the benefits and problems SharePoint has had over the years.   And we’ve been quite impressed by the integration of server and client side software, and by the general architecture of the MOSS solution. So much so, we believe the most recent SharePoint releases are viable contenders for customers who want to migrate away from WCI to another  enterprise portal solution.

Before we get started, some terminology:

  • WebCenter Interaction (WCI) – The Plumtree->BEA Product Stack that you’re probably running now.
  • WSS (Windows SharePoint Services) – The foundation of the SharePoint server platform. This is also the gateway for developers to interact with SharePoint behind the scenes.
  • MOSS (Microsoft Office SharePoint Server) – The presentation layer and pre-built components that make up the portal aspect of SharePoint.
  • Web Parts – The individual components that make up a Sharepoint site.  For WCI users, these are portlets.
  • Web Sites – The areas of pages and web parts that combine to create a portal. For WCI users, this is the equivalent of a community.

From here on, I’ll refer to MOSS as simply SharePoint.

The History, Myth, and Legend

SharePoint has been competing in the portal space for a long time. SharePoint 2001 was Microsoft’s first endeavor in portal technology and was primarily a document storage solution. SharePoint 2003 built on this technology, but was plagued with scalability and usability issues. By the time 2007 rolled around, Microsoft had already been given a bad wrap for their portal technology and the myths surrounding the product became legend.  But the Sharepoint 2007 release went a long way to discrediting Microsoft’s critics.  With the 2007 release, in our opinion, Microsoft made the jump from “departmental document sharing sites” to “ready-for-primetime enterprise solution”.

SharePoint makes sense for customers with a heavy investment in Microsoft technology (Server, .Net Framework, SQL Server, and Office)

Microsoft was not at the forefront of Portal technology in 2003, but this gave the company the late adopter advantage of learning from other company’s mistakes. Instead of reinventing the wheel, Microsoft took the very best of portal technology from competing products and created a fully integrated suite of tools. Tight integration has been built from the Web to the Desktop through Office Tools, and from the Web to the Developer’s desktop through Visual Studio and SharePoint Designer. There’s also WEB 2.0 goodies like blogs and wikis, as well as a workflow and document management solution right out of the box.

What you need to install to get started

The reasoning for integrating middleware is similar for both Oracle and Microsoft. If you buy the portal product, life will be so much easier if you just buy all their connecting products too. Microsoft SharePoint is no exception with tight integration in Microsoft Office, Exchange, and Developer tools.

There are a few moving parts needed for for a basic SharePoint installation.

  • Microsoft Server 2003/2008 – This is self-explanatory, but the point we’d like to make is that you can use 32 or 64bit flavors of the server software. This is something we’ve been missing from Oracle WCI 10gR3.
  • Active Directory – Although not required for a SharePoint installation, many of the security features and some of the add-ons require an AD source.
  • IIS (Internet Information Services) – Microsoft’s web hosting platform handles application pools, memory management, and the .NET framework. SharePoint plugs right into existing IIS environments as a new website.
  • SQL Server – Continuing on the theme of one company to rule them all, the database needs to be a SQL Server flavor. There are no alternatives to this, unlike WCI 10gR3 which had a number of database options.
  • .NET Framework – Microsoft’s development container (it actually contains a number of languages) for the development of custom applications. Also the development base for WSS and MOSS.
  • WSS (Windows Shared Services) – The nuts and bolts of any SharePoint deployment. This set of services includes web farm management, a persistence layer, workflow, content management, and search.
  • MOSS (Microsoft Office SharePoint Server) – The interface, websites, and web parts that make up the user experience. Also includes integration with Office tools and SharePoint Designer.
  • Visual Studio 2008 – Although not a requirement to get started, any development with the .NET framework will include Visual Studio. If you’d like a solution that includes source control, we suggest the team edition.

A Familiar Face

One of the benefits to having a Microsoft development team working on a portal product is the common user interface found in the SharePoint administrator and user experiences. Many of the menus are “office-like” and have been made even more so in SharePoint 2010 where the ribbon style interface has been employed. Behind the scenes, SharePoint employs AJAX and rich-text editing throughout the SharePoint experience. What Microsoft lacks in cutting-edge portal technology, it makes up for in robust engineering of the portal components.

Scalability and Availability

In the past, the weakest link in SharePoint deployments has been the limited amount of scalability and availability options for a systems administrator. SharePoint 2007 changes all that. With the 2007 release, Microsoft dismantled the SharePoint solution into a number of independent services that can be deployed on clustered, distributed, and virtual machines. Services communicate through the common WSS interface allowing for stateless services across a server farm. For smaller organizations, we found scalability goes both ways. SharePoint can actually run on a single computer (although highly frowned upon). Resource usage for a small organization is nominal compared to Oracle’s WebCenter 11g base deployment. Microsoft has also allowed organizations to expand on an existing SharePoint installation by reconfiguring and adding to server farms as needed.

On the availability front, load balancing can be employed through a hardware device or Microsoft’s load balancing software solution. SQL Server contains Mirroring capabilities, and content can be distributed between multiple data stores to maximize server hardware.

Thank Goodness for Documentation

Plumtree Portal/ALUI/WCI  has never been credited to have a broad base of documentation, knowledgebase articles, examples, and blogs from users. As a former BEA consultant, I have felt the pain customer’s go through when trying to troubleshoot an undocumented problem. Oracle, similarly, has little documentation from real world WebCenter 11g users, because the product is so new to the market. SharePoint, on the other hand, has been widely used in various industries and there is a ton of documentation out there to support a SharePoint shop. From developer examples to 3rd party add-ons to UI Themes, the SharePoint community is verbose.


I’m sold, lets get on the SharePoint train!

Not so fast. Much like Oracle WebCenter 11g, there is no real clear path on migrating content from WCI to SharePoint. Although the technologies have similar portal components, SharePoint is a database driven solution whereas WCI was split between databases and file system storage. Don’t expect a migration plan from Microsoft’s rival, but that’s where we are hoping to help. As portal experts, we have the tools and knowledge to help you make the move from WCI to SharePoint. No, we haven’t received payola from Microsoft, we just want our customers to have the best solution for their investment. If you’re thinking about moving from WCI to SharePoint, or are just interested in more information about SharePoint Server in general, contact us. We’re happy to get you up to speed on your options.

by jeremy at February 05, 2010 01:46 AM

February 03, 2010

Matt Chiste

Bug Blog 1: WordPress Commenting with Large User-Agent headers

I love blogging to help others out with Plumtree / ALUI / WCI issues, and to contribute to the “The WebCenter Interaction” portal ecosystem. But I have a confession to make: A big reason I blog is to create my own reference tool. I find myself always forgetting the syntax for Remotely Rebooting Windows Servers just when I need it, or the console command to use when the number of Remote Desktop Connections are maxed out in Windows.

I know I’ve overcome challenges like these in the past, but can’t remember the command syntax or how I did it. So I do a Google search for something like site:integryst.com wordpress rather than a general search where I have to dig through thousands of responses.

My first WebCenter-related tip for this post is to use “site:integryst.com” or “site:function1.com” in your Google queries for WebCenter tips you know you’ve seen before but can’t quite remember where they are.

Secondly, I’ve been looking at integrating the WordPress blog into the WCI portal.  As of this writing, I’ve basically been getting acquainted with the technology and have gotten the UI pretty much down by simply mirroring the portal UI in Wordpress.  This blog is a good example of that, as is the Health Buzz Blog (check out the blog, which is running Wordpress, and click the nav links on the left, which link to the portal).  Next up for WordPress blog integration is Authentication, Authorization, and Search.

But that’s not the real reason I started this post. The real reason was that I found myself debugging a WordPress (2.8.6) bug knowing in the back of my mind that I’ve seen this before but forgetting how I fixed it. The bug is that when a user submits a comment to a blog post, the page that comes back is a 404 error and the comment isn’t recorded. Turns out – after a crash course in PHP and way too long doing diagnostics and printing debug statements – my browser has a User-Agent header that’s larger than 255 characters. This causes Wordpress to fail deep in its core, and it improperly redirects the browser after a comment is posted without showing or logging any error messages.

The solution (and maybe I’ll remember this the next time I run into it without spending another hour looking for my own bug report): increase the size of the comment_agent column in wp_comments:
ALTER TABLE wp.wp_comments MODIFY COLUMN comment_agent VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

Astute readers will notice that I’m a little behind in my WordPress versions; the latest as of this writing is 2.9.1.  However, as this is as much of a test/demo environment as a “real” web site, I’m testing out Wordpress MU, which is a couple of revs back due to the additional functionality: Wordpress MU (multi-user) is what would allow us to provide each portal user and community with their own blogs.

Interested in getting an industry-leading blog integrated with your WCI portal?  Drop a comment here, contact me, and/or stay tuned!

by Matt Chiste at February 03, 2010 02:45 AM

January 29, 2010

Matt Chiste

The Four Tenets of Portal Integration

Thinking about integrating applications into a portal (like, convenitently, WebCenter Interaction)?  I have, and am (Blogs and Wikis, anyone?). 

If so, whether you’re looking at a third-party application, open-source code base, or are planning to develop your own custom application, there are Four Tenets of Portal Integration you should consider.  Check them out!

  1. User Interface.  Ideally, you’d run the application behind the portal gateway as a portlet, and have the portal add the necessary styles, headers, and footers to provide your users with a seamless experience.  But that isn’t always feasible (more on this another time).  Sometimes you have to fake the funk, and simply get your 3rd-party application to LOOK LIKE the portal, so that even though the URL changes as users navigate from the portal to the application, it’s still a seamless experience.  This blog is an example of that; you’re looking at a WordPress blog, but the other couple of pages on this site are running WebCenter Interaction - did you notice the font changes?
  2. Authentication.  Again, gatewaying is the best way to ensure this happens seamlessly; when I log into the portal and navigate to another application like this blog (whether through the gateway or directly to the application’s URL), I don’t want to have to log in again.  Authentication refers to verifying that I am who I confirm I am – and I only want to confirm this once without having to maintain two accounts in two different systems.
  3. Authorization.  This one’s even harder than Authentication; any out-of-the-box application will have its own authorization system, which defines who can see or do what they have privileges for once they’re authenticated.  In the portal world, this means that I as an adminstrator of the portal should be able to configure the security of the application the same way – and with the same groups – as I do the portal itself.
  4. Search.  Back to user experience:  one of the biggest benfits of the portal is a consistent user experience.  And one of the biggest unifying services (aside from those mentioned above) is Search.  When I’m in the portal and do a search, I want to search not only the objects within the portal – including communities, pages, portlets, and the Knowledge Directory – I want those results to be integrated with the results from my external application.

So there you have it; if you get all four of these integration points knocked, you can officially consider your application “fully integrated” with the portal.  Notice there’s a huge amount of leeway here (such as “gatewaying is not necessarily mandatory”); following on the promise of the portal itself, “Integration” is all about a consistent user experience, regardless of back-end technology being used.  Your users shouldn’t have to know what back-end applications they’re actually using; it should all be completely seamless.

by Matt Chiste at January 29, 2010 09:31 AM

January 28, 2010

Function1

In which Function1.com plays with broken links and is redirected to its room

Let’s take a break for a moment from the world of portals, be it WebCenter or WebCenter Interaction, and take a look at the exciting life and times of our web site, Function1.com.

When we very recently refreshed our web site’s design, we also decided to change our blogging platform from MovableType to WordPress. As expected, as part of the migration we carefully migrated all of our blog content to our new site. However, we almost overlooked one detail that could potentially have both made our content inaccessible to some of our readers, as well as hampered our site’s search engine rankings.

Some background information: the URLs for the old blog posts were in the form http://www.function1.com/site/[year]/[month]/[post title].html. The URLs for the new blog posts are in the form http://www.function1.com/[year]/[month]/[post title]. For example, the old blog post http://www.function1.com/site/2007/12/check-search-server-status-the.html can now be found at http://www.function1.com/2007/12/check-search-server-status-the-hard-way/

So what’s the problem? Broken links, better known as 404 errors. Take a look at the following screenshot from Google Webmaster Tools:

Function1.com Crawl errors

Function1.com Crawl errors on Google Webmaster Tools

Other sites are linking to our content, and specifically to our blog posts, and that is important to us. The table in the screenshot represents just a small subset of the links from other sites for which Google is now reporting crawl errors; this manifests into a lot of content that is sitting on our blog but is inaccessible because it’s being referenced by an invalidated URL. If people stumble across pages linking to our old blog posts, we of course want them to be able to get to our content. Now, do a Google search for “site:www.function1.com/site/”. As you can see, Google still holds a reference to many of our old URLs. Yes, Google is aware of the URLs of our new links (for example, through our sitemap), but we don’t want to lose the history we’ve established with Google, especially since Big G really does care about our old links going dead.

If all of the above didn’t make sense, here’s a made up example: what if Yahoo! decided to change its name to Oohay!, and in the process moved its domain from Yahoo.com to Oohay.com? The news stories, sports scores, images, movies, and all the other content would still exist, and we can be sure that Google would eventually discover all of the new URLs. But all of the old links to the content would effectively be severed, and as far as the search engines are concerned, it would be like one site completely shut down and a brand new site sprung up. The PageRank that the old URLs had earned would be blown away.

In comes our hero, the 301 redirect. The 301 HTTP status code tells the browser that a requested resource has permanently moved to a new location. In other words, we can configure our web server so that a request for http://www.function1.com/site/2007/12/check-search-server-status-the.html returns with a message to the browser that the resource has moved permanentely, and that the new location is http://www.function1.com/2007/12/check-search-server-status-the-hard-way/

To implement these redirects, I set aside some time setting up an .htaccess file that would hold the mappings for all of our old blog post URLs and some other old paths to the valid URLs. Again, the point is to make sure that our content is still accessible via the old URLs but is still ultimately located at the new URLs. Due to the number of blog posts that had to be redirected, I ended up writing a script to do a lot of this for me. If you are interested in the script, check it out at http://github.com/mshafrir/MovableType-to-WordPress-.htaccess-Generator/blob/master/htaccess.py. In any case, here’s a look at a slice of our current .htaccess file.


# Sample .htaccess file

#
# Explicit redirects of the October, 2009 blog posts
redirect 301 /site/2009/10/-google-web-toolkit-gwt.html http://www.function1.com/2009/12/integrating-a-google-web-toolkit-application-with-wci-and-the-imageserver/

redirect 301 /site/2009/10/oracle-open-world-and-the-nigh.html http://www.function1.com/2009/12/oracle-open-world-and-the-night-obama-stayed-at-my-hotel/

redirect 301 /site/2009/10/function1corp-attending-oow09.html http://www.function1.com/2009/10/function1corp-attending-oow09/

redirect 301 /site/2009/10/getting-the-band-back-together.html http://www.function1.com/2009/10/getting-the-band-back-together-function1-welcomes-casey-goodman-and-mike-shafrir/

#
# Redirects using regular expression matching

# Redirect http://www.function1.com/site/year/month/day/
# -> http://www.function1.com/year/month/day/
RedirectMatch 301 ^/site/([0-9][0-9][0-9][0-9])/([0-9][0-9])/([0-9][0-9])/$ http://www.function1.com/$1/$2/$3/

# Redirect http://www.function1.com/site/year/month/
# -> http://www.function1.com/year/month/
RedirectMatch 301 ^/site/([0-9][0-9][0-9][0-9])/([0-9][0-9])/$ http://www.function1.com/$1/$2/

# Redirect http://www.function1.com/site/year/
# -> http://www.function1.com/year/
RedirectMatch 301 ^/site/([0-9][0-9][0-9][0-9])/$ http://www.function1.com/$1/

For further reading, here’s an article on .htaccess files and 301 redirects.

And just to make sure I’m not making all this up, do a search for “site:www.function1.com/site/” on Google. Choose any link in the results, but before you click on it, note the URL in green. Finally, click on your chosen link, note that the content you expected came up, and then compare the URL in your location bar with the URL on the search results page. You’ve just observed 301 redirects in action.

Hopefully you’ve learned a little bit about the issues and risks that can arise from changing your site’s URL structure which may come about from migrating your site’s blogging platform or content management system (CMS). Please feel free to post your comments or questions below.

by Mike at January 28, 2010 11:16 PM

January 26, 2010

Matt Chiste

Free Oracle WebCenter Interaction Code!

Sorry if the title of this post sounded sensational; this code has been around forever.  In fact, it’s kind of ancient, and as far as I can tell hasn’t had new submissions in years.  But for those of you looking for the old BEA “CodeShare” repository, this is the link you’re looking for.  All the classics are here: Lotus Notes / SAP / PeopleSoft / Exchange Portlet Suites, Java Portlet Tools, the Publisher Blog Templates, Sample Code (including some under-publicized Social Network portlets).

You won’t need any of this stuff today (or tomorrow), but someday when you’re pulling your hair out and thinking to yourself “if only BEA’s CodeShare was still around!”, this is the link you’re looking for: https://aqualogic-interaction.samplecode.oracle.com/ (free registration/login required).

codesamples

by Matt Chiste at January 26, 2010 04:54 AM

January 25, 2010

Brian Harrison

Where's The WCI Knowledge On My Oracle Support?

Have you been frustrated by how difficult it is to navigate the My Oracle Support "Product Tree" when searching for WebCenter Interaction knowledge articles?

Do you find yourself confused by the number of articles returned from your keyword searches for knowledge that have absolutely nothing to do with WCI Products?

Is there really any knowledge base for WCI products at all?

The answer is yes! In fact it's very healthy and getting healthier every day. Across the breadth of the the WCI Products (Portal, Collab, Publisher, Analytics...etc.) there are hundreds of current and updated knowledge articles available on MOS. New knowledge is created from almost every support case where the issue was not otherwise solved by existing knowledge or documentation. The Support Team is reviewing and publishing an average of 20 new articles a month, each of them solutions culled from actual customer engagements.

We recognize that it can be difficult to navigate the "product tree" to narrow the scope of your search results to ensure it's limited to the knowledge created specifically for the WCI products.
To help make it easier for WCI customers to get to the right knowledge as quickly as possible we've created a valuable link to use anytime you want to search MOS for
WCI product knowledge. The link will limit your search to only the products in the WCI family.

Click this link: WCI Search

The link should take you right to the WCI KM search section on MOS (after you log in) and all you need do from there is enter your key words and "Search". We encourage you to review the articles here.

Let Us Know How We're Doing

Did an article help you resolve your issue and avoid having to log a service request?

Was the article perfectly written and exactly what you needed?

Was the article more complicated than it should have been or somehow incomplete?

Make sure you "rate" the article after you've viewed it and feel free to make comments that might help us improve an article. Look for the "Rate This Document" icon at the bottom of the view window for the article and click there. The feedback goes directly to the team that created the article is actively reviewed in an effort to improve on the knowledge already provided
or to help generate new knowledge as needed. The Support Team is striving to ensure that the right information is available at the right time.

by brian.harrison at January 25, 2010 06:03 PM

January 22, 2010

Matt Chiste

Fix KD Handling of HTML Docs

In ALUI 6.5, and following through to 10gR3 and the latest patches, Oracle changed the way documents are opened in the Knowledge Directory.  This change was to get a little better browser compatibility so that when a user clicks on a document in the KD, the user is always presented with the usual Open/Save Dialog box.

Many WCI clients have HTML files in their Knowledge Directories, whether they’re crawled in from Publisher, Collaboration Server, or uploaded from some other source.  In version 6.1 and before, the behavior of the portal was simply to open these files directly in the browser, but that changed with 6.5.  Unfortunately, Oracle has asserted that this is “expected behavior” and while an enhancement request has been submitted, there are no promises about the behavior changing in 11g. The good news is that there’s a relatively simple fix for this behavior.  Unfortunately, the “relatively simple” fix assumes you’ve got BigIP load balancing requests to your portal, but if not, hopefully this post will give you some ideas on how to resolve the problem in your environment.

The problem is caused by the portal returning an HTTP header called “Content-Disposition”:

Content Disposition Header
Content Disposition Header

The trick is to remove this header for HTML documents.  I’ve tried writing ISAPI filters unsuccessfully, but for the clients that needed the fix, they had BigIP. 

Hit the link to see the BigIP iRule to resolve this issue.

if { [HTTP::header Content-Disposition] contains "attachment"}
{
    if { [HTTP::header Content-Type] contains "text/html" }
    {
        HTTP::header remove "Content-Disposition"
    }
}

bigip-disposition

This iRule simply says “if there’s a Content-Disposition Header, and the Content Type is HTML, remove that header”.

by Matt Chiste at January 22, 2010 04:45 AM

January 21, 2010

Function1

The Elephant in the Room – A Gentle Intro to WebCenter 11g for WCI/ALUI customers

In 2006, the famous (infamous? I can never get those two words straight) street artist Banksy put on a show in an LA warehouse named, “Barely Legal”.  The centerpiece of the show was “The Elephant In The Room”, a painted live elephant that seemed like, IMO,  a pretty blase metaphor all dressed up in shock and awe.  But I’m sure there was deeper meaning that I was missing…what do I know about art anyways?  In any case, it’s a new decade now, and I don’t need to literally paint an elephant to point out that there’s an elephant in the room for WCI customers: Oracle WebCenter 11g.  I’m sure you’ve all seen some of the marketing around Oracle’s new portal platform, and maybe even seen a demo or two.  But here at Function1, we’ve been spent a lot of time and effort digging past the marketing material to try to understand the real value proposition of WebCenter 11g, both for new portal customers, and for existing WCI customers.  So, without further adieu, a gentle introduction to WebCenter 11g for WCI customers.

Since marketing people seem to like to give similar names to completely different things, let’s start with some terminology :

  • WebCenter Interaction (WCI) – The Plumtree->BEA Product Stack that you’re probably running now
  • WebCenter Suite 11g - Oracle owns 3 portal products:  WCI (Plumtree->BEA acquisition), BEA Portal (BEA acquisition), and WebCenter (Oracle Organic product).  WebCenter Suite is the blanket license you can buy to acquire all three of these portal products.
  • WebCenter Framework – A set of ADF components and APIs that let developers tap into the Oracle product stack
  • WebCenter Services – A set of pre-built business components (Blogs, Wikis, Social Graph, etc) that developers can utilize to build applications.  These are essentially out of the box portlets
  • WebCenter Spaces – The homegrown out of the box Oracle portal product
  • WebCenter 11g - The term used for collectively referring to Oracle WebCenter Spaces, WebCenter Services, and WebCenter Framework

The rest of this post will focus on WebCenter 11g, and the components that comprise it.  So what is Oracle WebCenter 11g?

At heart, WebCenter is a development platform

If you take nothing else away from reading this, remember that WebCenter is a development platform first.  Specifically, WebCenter is an integrated, end-to-end Java development solution for delivering enterprise applications.  This differs dramatically from the WCI approach.  In the WCI world, product is first, and development is second.  The focus of WCI is to provide a configurable, out of the box portal experience for users.  WebCenter, on the other hand, is geared towards providing developers a set of components and APIs that can be pieced together to build and deliver enterprise applications.  The addition of WebCenter Spaces (the WebCenter Portal) to the stack is just one method to surface custom WebCenter apps.

WebCenter makes sense for customers with a heavy investment in Java and Oracle

If you’re a .NET shop thinking about replacing WCI, you should probably stop reading now and start thinking about Sharepoint (We’ll have a similar intro to Sharepoint for WCI users post up soon).  Sure, WebCenter is committed to open development standards, which means you can write .NET portlets and wrap them in WSRP so that they get consumed through WebCenter Spaces.  But going down this road is kind of like putting ketchup on a nice steak.  Yeah, you can do it, but why would you want to?  At the end of the day you’re just wasting time and money.  If you wanted something to put ketchup on, you should have just had the burger for dinner.  If you’re going to eat steak; eat steak.  If you’re a Microsoft shop, let your developers build their stuff in Visual Studio and take advantage of the tight integration with the Sharepoint platform.  If you’re an Oracle shop, let your developers build their code in JDeveloper and take advantage of the tight integration with the Weblogic App server and the rest of the WebCenter/Oracle platform.

WebCenter is a way to surface Oracle’s Fusion Middleware stack

Oracle is probably happy that you pony up the cash to use WebCenter, but they really want you to run your enterprise on Oracle software.  Not coincidentally, there are APIs and components built into the WebCenter Framework that allow you to nicely integrate and surface Fusion middleware components.  Things like their BPEL engine, SOA suite, etc.  If you’ve invested in Fusion, the addition of WebCenter might be a nice way for you to tie a bunch of disparate middleware components together.

OK, so what do I get out of the box?

Just because WebCenter is targeted at development shops doesn’t mean that Oracle left you high and dry if you just want to install products and get going.  Out of the box, you get a portal environment in WebCenter Spaces.  The portal provides you Group Spaces (i.e. WCI communities), Personal Spaces (i.e. WCI my pages), user customization, and a security model.  The user security model is built on top of Weblogic Server security.  This means that, out of the box, your users are going to be stored in the LDAP user store embedded in WebLogic.  You can, however, delegate security out to your corporate LDAP/AD, or integrate with an SSO solution.  In addition, you get the functionality (i.e. pre-built portlets) of WebCenter Services.  These services include Document Collaboration, Blogs, Wikis, Tasklists, Tagging, Search, Activity Streams, Calendaring, and more.  You also get a limited use license for Oracle Universal Content Management (UCM).  UCM is the Oracle branding for their Stellent acquisition, and the product is actually quite mature and worthwhile as an enterprise content management solution.  For more info on UCM, take a look here.

Great, so what do I have to install and manage to make this stuff work?

This is kind of a loaded question, as the answer changes depending on how much Oracle functionality you want to expose through WebCenter.  At a bare minimum, however, you’re probably going to have the following components in your WebCenter environment.

  • JDK 1.6 – Yep.  It’s the JDK.  You’re running Java, so you need the Java runtime and associated toolkits
  • Weblogic Server – Oracle’s J2EE app server of choice since the BEA acquisition.  Note that Weblogic Server licenses are an additional cost in the procurement of WebCenter
  • Database – WebCenter has support for both Oracle and SQL Server databases.  Not sure why you’d be running SQL Server if you have so much other Oracle product, but you can if you want to.  There are several schemas that get installed as part of the WebCenter installation to manage meta-data for the various applications in the stack.
  • UCM – With the release of UCM 11g this summer, things will change a bit and UCM will just be another WAR/EAR that you deploy to Weblogic server.  For the time being however, plan on installing a standalone Java server that runs the UCM application.
  • WebCenter WAR files - Deployed and manged in Weblogic server are various WAR files for running WebCenter components (Spaces, Services, etc)
  • Apache – You probably don’t really need Apache, but everybody seems to like to stick it in front of Weblogic for serving up static HTML content.
  • JDeveloper – Like it or not, it’s the IDE your developers are going to be using for composing WebCenter applications.

And what if I’m concerned about things like scalability and high availability?

This is one area where I’m personally quite happy with the way Oracle did things.  Because everything is deployed to a J2EE container, you can architect your solution as a traditional 3-tier web application.  Install a hardware load balancer for web request distribution and fail over.  Scale out your web tier horizontally as needed for load and high availability.  Cluster your app servers.  And use your Database vendor’s replication solution of choice (Oracle RAC, etc).  One item of note here is that we’ve found WebCenter applications to be quite RAM intensive (moreso than even most Java Apps).  Luckily, like talk, RAM is cheap.  So plan on loading up your servers with a bunch of RAM to avoid a painful user experience.  Also, consider how you’re licensing WebCenter.  If you’re paying by Server/CPU/Power Unit/whatever term they use these days, building out a large fault tolerant environment can get pretty costly, and you might be better served to just look into an ELA/all you can eat model.

So, what kind of skillsets should I have on my team?

IMO, you’re going to want some number of the following resources on your team to run a WebCenter project successfully:

  • Java developers- You’ll want these guys to be familiar with J2EE and JSF.  If you’re really lucky, they’ll know all about Oracle ADF (Oracle’s proprietary extension to JSF) as the ADF learning curve is non-trivial.  It would probably also be good if they have experience developing in JDeveloper.
  • System Architect – Somebody who can plan your hosting environment for you and knows how all the pieces fit together.  i.e. somebody who understands your network topology and can tell you which segment of the network to stick servers in.  Somebody who can implement a highly available solution.  Somebody who can tell you how much horsepower you’re going to need to run your environment, and, additionally, how you can scale to meet increased demand.
  • Weblogic Expert – The vast majority of the components you use, and the code you write, is going to get deployed to Weblogic Server.  Having production support who know the in’s and out’s of Weblogic is a good idea.
  • Functional People – These are the same functional folks that you’d have for any portal project.  They’re going to help define governance, drive development, and generally take care of the important stuff that your tech guys don’t want anything to do with.

I’m sold, how do I migrate?

This is, literally, the million dollar question.  Your first step towards migration is moving your licenses over from WCI to WebCenter Suite.  Once you’ve gotten over the sticker shock of doing so, the world is your oyster.  Except…uh…there’s no migration plan from Oracle; no real roadmap to help you get from point A to point B.  And that’s where we hope to fit into the equation.  Function1 understands both the WCI and WebCenter environments.  We can help you get the most out of your WebCenter installation, without completely throwing away your investment in WCI and starting from scratch.  If you’re thinking about moving from WCI to WebCenter, or are just interested in more information about WebCenter in general, give us a ring or drop us a line.  We’re happy to come out and talk to you.

Oh, and one other thing…

Some of us on the Function1 team delivered a much more detailed deep dive presentation on WebCenter recently.  As a show of team unity, we all decided to grow moustaches.  As a thanks for reading this whole post, here’s a picture of our best ’stache.

Sadly, he has nothing on this guy.

by Brian Hak at January 21, 2010 11:00 PM

Brian Harrison

SSO integration with WCI - Webinar

Hey there all you WCI crazy people. I know that it has been a while since you heard from me, but with OpenWorld and then the holidays, there really wasn't much for me to talk about. This is now going to change, so you can expect to see more from this blog over the next few months.To kick things off, I have an announcement to make to all of you:

What are the best practices for implementing an SSO tool with the WebCenter Interaction (formerly "ALUI") Portal Application?

What specific requirements for configuring the WCI Portal to accept and integrate standard SSO Cookies from any vendor's application?

What are some of the known pitfalls to avoid when configuring the Portal to work with an SSO tool?

These are just some of the main areas that will be covered in this one hour webinar which will demonstrate the SSO / Portal configuration in action.
Our demonstration will focus on areas where Technical Support sees the largest numbers of customer questions become support incidents in an effort to
help avoid the need to create an incident to get the configuration working properly in the customer environment. The SSO tool we will use in this demonstration will be
Oracle's OAM tool (10.1.4.0.1 Webgate), but we will highlight important points for integrating any vendor's SSO tool. Please join us for what we think will be
a valuable and relevant learning session.

Webinar information:

Conference Title WCI SSO Integration
Conference ID 6192555
Date and Time 10-Feb-2010 11:00 AM
Duration 1 Hour
Timezone (UTC-08:00) US Pacific Time

Dial-in Number 1-866-682-4770

Conference Code: 5256472 Security Code: 6472525


Direct Link to the conference: https://strtc.oracle.com/imtapp/app/sch_mtg_details.uix?mID=6192555

by brian.harrison at January 21, 2010 09:47 PM

January 20, 2010

Bill Benac

ALUI/WCI SSO Login Sequence and Log Files

sequence.gifYou can't trust your web server logs to tell you how many pages your portal users view. When logging in, especially under SSO, the login sequence generates several "GET /portal/server.pt " lines. I dug into this today, and the results may be helpful as you look to infer portal usage from log files.

Yesterday I turned to IIS logs to determine some usage patterns in the portals I work with where users can enter through two different SSO systems. I started my search by looking at how many times SSOLogin.aspx occurred for each SSO system (hosted on different servers). When the results appeared material, today I wondered whether the load for the systems are different. Do the users of one SSO system have a more engaged portal session?

First I counted simply "GET /portal/server.pt" in the log files, and I though one set of users had far more pages per session than did the other. However, I then realized that gateway images were returned by my search pattern, so I added a space: "GET /portal/server.pt " This made the traffic look much more similar.

But I still didn't know how many actual pages the user sees. What happens in the login sequence?

What I found was:

* It is hard to identify actual pages per visit because the IIS log sometimes shows 3 and sometimes 4 requests per login.
* A user's login generates three lines in the IIS log with "GET /<virtualdirectory>/server.pt/ "  when the user enters the portal through http(s)://<portalhost>/
* A user's login generates four lines in the IIS log with "GET /<virtualdirectory>/server.pt/ "  when the user enters the portal through http(s)://<portalhost>/<virtualdirectory>/server.pt

The login sequence as found in IIS logs looks similar to this:

1. The unidentified user enters without specifying the <virtualdirectory>/server.pt, then redirects to the SSO login


2. The SSO-authenticated user is redirected to the portal from the WSSO login
/portal/server.pt 

3. The SSO-authenticated user is directed to the portal's SSOLogin sequence to process the SSO token and become portal-authenticated
/portal/sso/SSOLogin.aspx 

4. The portal-authenticated user runs a login sequence to determine the proper home page behavior
/portal/server.pt open=space&name=Login&dljr= 

5. The user lands on the proper home page
/portal/server.pt/community/superstuff/204 

I hope that's helpful.

by bill at January 20, 2010 08:02 PM

Function1

Integrating a Google Web Toolkit application with WCI and the imageserver

Google Web Toolkit (GWT) is an open-source web development toolkit that facilitates building rich, Javascript-based applications entirely through Java coding. It is very useful in speeding up complex application development, as well as in multi-developer projects where Java’s static typing enforces convention across the board. Function1 has employed GWT in the development of its product line and on the client site.

A GWT application code consists of the generated GWT static resource files (HTML, Javascript, and CSS) on the front end, and server-side service code on the middle and back end. For performance reasons, static resource files are often deployed to the image server. And as of version 1.6, Google Web Toolkit easily allows for seamlessly changing the location of the generated GWT static resource files from the default location in the war deployment.

If you do wish to pursue separating the generated static resources from the backing server code, there are a few steps to take. The primary reason for this change is to avoid potential cross-domain issues that will arise from separating your resources; your imageserver may be running on imageserver.domain.com:80, while your application service might be running on appserver.domain.com:7001.

For this example, we’ll assume your application is called formbuilder.

  • Under the war folder that GWT generates, you will find a folder with your application name, formbuilder. Copy that folder to a target folder on the image server, such as /imageserver/RemoteGadgets/formbuilder/gwt/.
  • On the GWT entry point JSP page, you’ll make two changes. The first is to create a Javascript variable that stores the gatewayed URL of the servlet. The second is to change the GWT entry point Javascript reference.

GWT portlet before.png

  • After the changes, your JSP will look something like the screenshot below.

GWT portlet after.png

  • Finally, in the Java class that implements the EntryPoint interface, you will reference the gatewayed service URL using GWT’s Javascript Native Interface (JNSI).

FormBuilderApp.png


Bonus tip: As discussed earlier in this post, Google Web Toolkit provides tools to create rich, complex web applications entirely through Java code. GWT was built with cross-browser compatibility in mind, but not all generated HTML is treated equally. For example, adding a widget that generates a block level element into a container that generates an inline element may result in an “Error: Invalid source HTML for this operation.” error in Internet Explorer. When building in GWT, remember that while you are coding in Java, your output is HTML + CSS + Javascript. As with any web application, be sure to test your GWT app in a variety of browsers.

by Mike at January 20, 2010 07:37 PM

January 18, 2010

Matt Chiste

WebCenter Analytics Status Check

We’ve all done countless restarts of the portal stack, and many of us have done countless WebCenter 10gR3 Analytics upgrades.  This one’s a quick and easy tip to ensure that Analytics is actually working after a restart or upgrade.

I used to check if ALUI Analytics was working by simply going to the Analytics Console in the portal and viewing traffic data.  But this is only half the picture: if you’ve just done an upgrade or reboot, getting valid traffic reports only shows you that the Analytics CONSOLE/UI is running.  It doesn’t tell you if the COLLECTOR is running and properly capturing metrics.

Instead, whenever I’m testing whether the full Analytics stack is working, I check the Collector and the UI by simply doing a quick search for a unique term.  For example, I can search for MATTTEST, which is a string I’m reasonably sure noone else has searched for today:

WebCenter Analytics Search

WebCenter Analytics Search

Next, go to the Analytics Console and check to make sure that that search term appears in the list of Phrases by going to the Analytics Console, then “Other Metrics”, then “Search”.  There you can view results for “Today” and make sure that a) your search query was accurately captured by the Analytics Collector, and b) the Analytics Console is properly reporting it:

Analytics Results

Analytics Results

by Matt Chiste at January 18, 2010 03:41 AM

January 15, 2010

Ross Brodbeck

Google Translate is Awesome

I am not sure this is even enough for a blog post, but… well it is. Here are just a few the of cool things you can do with Google Translate:

  1. Use the new audio capability to generate audio translations of text, automatically.
  2. Use the translate API to translate your entire web page by simply including some javascript.
  3. Programmatically translate stuff using the unofficial Java API. There is probably one for .NET, but I haven’t tried it.
  4. Translate bits and pieces of your web site, on demand, using a very cool jQuery plugin called Sunday Morning.

by hross at January 15, 2010 12:30 AM

January 14, 2010

Matt Chiste

Cool Tools 1: Snipping Tool

Let’s start out this blog with a continuation of a series we started at Function1, Cool Tools.  For this feature, I’ll occasionally add tools I use on a regular basis that have some sort of relevance to WebCenter Interaction (aka Plumtree Portal, aka AquaLogic User Interaction, aka ALUI - yeah, we’re all in a perpetual state of adopting the new names since BEA aquired Plumtree and Oracle acquired BEA).

Today’s featured app is a simple one but I’m still always surprised at the number of screen shots I get where people hit “print screen”, then paste that screen capture into Word, then attach that Word document to an email.

There’s a better way!  In Vista and Windows 7, you can use Microsoft’s “Snipping Tool” to quickly capture selected areas of your screen to the clipboard.  Just run C:\windows\system32\SnippingTool.exe (I add a shortcut to the app in my Quick Launch bar for easy access), and you’ll never be far from a quick and easy way to take screen captures.

Once you launch the tool, you’ll get a simple interface:

snipping_tool

… and the screen will “grey out”.  Then, you just highlight what part of the screen you want to copy and the Snipping Tool will automatically copy the image to your clipboard.  Go to an email in Outlook and click paste (or hit CTRL-V), and viola! – you’ve got a screen image of only the relevant part of the screen you’d like to share. 

The really cool thing is you can highlight text and draw arrows on the screen cap to point out areas of the snapshot you’re referring to, and Snipping Tool will automatically update the image on the clipboard.

by Matt Chiste at January 14, 2010 03:20 AM

January 11, 2010

Function1

Welcome to 2010

Baby New YearHowdy all, and welcome to to the new decade.  To kick off the new year in style, you may have noticed that we re-branded our website.  New look and feel, new content, and new back-end engine:  we swapped Movable Type out in favor of Wordpress.  So what do you think?  Like it?  Love it?  Hate it?  Doesn’t make all that much of a difference in your life?  Leave a comment and let us know.

As a company, Function1 is pretty excited about the opportunity that 2010 brings.  While continuing our focus on WCI, we’ve also been investing in new technologies to the company (namely, WebCenter Suite and Sharepoint), and spending time developing kick-ass software.  Stay tuned for more info about our software offerings and musings about WebCenter and Sharepoint in the coming months.

As always, thanks for reading…we hope the new year finds you happy, healthy, and prosperous.

by Brian Hak at January 11, 2010 06:17 PM

Ross Brodbeck

Synchronizing Email with Ruby

Recently, I was in the midst of a Windows 7 installation when my company decided to migrate my email to a new mail server. As we in the IT world are aware, migrations rarely go as planned. It seemed like as good a time as any for me to start a project I have long considered: migrating all of my email to Gmail.

I guess this is technically something I’m not supposed to do. Then again, it is no less secure than downloading and sending email using my local laptop and a standard email client (provided the passwords/accounts are properly encrypted). Either way, I love Gmail for personal email and there is no way my entire work organization is going to switch to Gmail, so I decided to set up my own little synchronization process.

Here is what I did:

1.) Enable IMAP on my Gmail account. My work email is already IMAP, so this let me drag and drop folders from one mail account to another using Thunderbird. Once all my folders were migrated, I only had to worry about new email in my inbox.

2.) Set up a synchronization process from my work email to my Gmail account. Transferring mail itself is pretty simple. There is an RFC that defines what mail messages look like, so they are the same data from one mail account to the other. The trick is moving them automatically.

Since I already have a Linux host that runs full time (this site), it seemed like my most sane option would be to write something that I could schedule using cron. Since I am a member of the cargo cult, I thought I could pretty easily find something on Google written in Java.

After some searching, though, it seemed like the best and simplest examples were all written in Ruby. Unfortunately, none of them did exactly what I wanted so I figured I would have to write a bit of code. Before I began this endeavor, I knew nothing about Ruby (yes, I am way behind), but it seemed like a good time to learn.

I started off with some setup:

http://wiki.dreamhost.com/Ruby

http://wiki.dreamhost.com/index.php/Ruby_on_Rails

Next I went with a few blogs/docs and some source from the beginnings of larch:

http://ruby-doc.org/stdlib/libdoc/net/imap/rdoc/classes/Net/IMAP.html

http://wonko.com/post/ruby_script_to_sync_email_from_any_imap_server_to_gmail

http://codeclimber.blogspot.com/2008/06/using-ruby-for-imap-with-gmail.html

While I like larch, it doesn’t delete from my inbox, has way more features than I need, and it is more object oriented (and thus harder to understand) than I would like. Since I am a Ruby novice, I wanted something simple that I could make sure was working. Here is what I came up with:

#! ~/run/bin/ruby
require 'net/imap'

puts "Synchronizing mailboxes..."

# create destination imap
dest = Net::IMAP.new("imap.gmail.com",993,true)
dest.login("my.account@gmail.com", "password")

# create source imap
source = Net::IMAP.new("imap.work.com",993,true)
source.login("my.account@work.com", "password")

puts "Logins complete. Checking source mailbox for mail."

source.select('INBOX')
source.search(["NOT", "DELETED"]).each do |message_id|
        puts "Found message: #{message_id}"
        msg = source.fetch(message_id, ['RFC822', 'FLAGS',
                  'INTERNALDATE'])[0]

        puts "Transferring message with id: #{message_id}"
        dest.append('INBOX', msg.attr['RFC822'], msg.attr['FLAGS'],
            msg.attr['INTERNALDATE'])

        puts "Deleting message from source inbox."
        source.store(message_id, "+FLAGS", [:Deleted])
end
puts "Transfer complete. Logging out."

source.logout()
source.disconnect()

dest.logout()
dest.disconnect()

puts "done."

 

Simple, huh? I set this up to run as a cron job every ten minutes and that’s all it took.

by hross at January 11, 2010 01:42 PM

January 10, 2010

Matt Chiste

Happy New Year!

Happy New Year all!  As most of you know, I’ve spent the past year establishing Integryst as another premier Web Center Interaction (or AquaLogic Interaction or Plumtree Foundation) consulting and software development organization.  I’d like to thank all my clients in 2009 for the great year, and look forward to 2010!  My New Year’s resolution is to get my blog back up and running; I’ve got a year’s worth of entries that I’ve been stockpiling, so expect some pretty regular updates this year!

As always, check out Function1’s Blog, which is always good for some incredibly educational and entertaining posts as well.  If you’re the RSS type, definitely subscribe to Kenan Shifflet’s RSS Feed Aggregator for All Things ALUI - he keeps track of all WCI/BEA/Plumtree feeds and aggregates them so you don’t have to!

logo

by Matt Chiste at January 10, 2010 01:02 AM

December 11, 2009

Function1

Oracle Open World and the Night Obama Stayed at my Hotel

Living in the DC area, you get used to sharing a city with the President. You see his motorcade driving down Connecticut Ave., he’s grabbing a half smoke at Ben’s Chili Bowl, your friend saw him on a random Starbucks visit.  In short, you just get used to him being around.

obama.jpg

So it wasn’t any big deal for this DC metro native when I heard that Obama was going to be in San Francisco at the tail end of Oracle Open World (un-related to the conference).  No big deal that is, until I found out that the freakin’ President was staying at my hotel.  At that point, all bets were off and I was as star-struck as anybody else in the general vicinity.  Sitting in the hotel lobby bar was a pretty surreal experience.  Nobody was supposed to know that Obama was on his way, but everybody did.  The bomb squad, the shut down city block, and the guys with bomb-sniffing dogs walking through the lobby were all pretty good tip-offs that something was going on.  Add that to the fact that nobody could enter or leave the building, and most of the staff told whomever asked that the President was coming, and there was a definite buzz in the air.  Hotel suits walking around aimlessly primping themselves, the guy next to me at the bar telling us all the he was going to invite Obama to go have a smoke, and everybody testing out their cellphone cameras to make sure they could take a snapshot when the moment was right.
The tension building…we waited.  Ice melted in drinks.  We waited some more, and some more.  And Obama never showed.  We were all so wrapped up in the idea of getting to see the President that nobody stopped to think that they’d probably take him through a service elevator for security reasons.  So he was there, all the signs of the President were at the hotel, but we just never saw him.
And the story was largely the same for WCI at Open World.  Throughout the conference, we saw signs of WCI.  Customers using the product, a few Oracle folks who worked on the product, but we hardly saw WCI itself.  All in all, I think there were two or three public sessions that focused on WCI.  Compare this to ump-teen sessions focusing on UCM and WebCenter, and reading between the lines isn’t too difficult.  In my opinion, Oracle has moved on from WCI, and is betting its future in the portal/content management space on WebCenter and UCM.
The story isn’t all bleak for WCI customers though.  We had a chance to talk with the WCI product manager, and he shared a few re-assuring tidbits with us:
  • Oracle will continue to support the entire WCI product stack for another 8ish years
  • WCI will continue to support Windows/.NET environments
  • There will be a WCI 11g release coming out sometime next year with new functionality
So there is going to be a new WCI release: great news right?  Kind of.  The cause for concern about this new release for existing WCI customers, in my opinion, is that most of the new functionality is going to be focused on bolting pieces of UCM and WebCenter Spaces into WCI.  This tells me that more and more Oracle development resources, QA resources, etc. are being focused on WebCenter, WebCenter Spaces, and UCM, while less internal priority is being given to WCI.  In short, it seems like Oracle is maintaining and marginally enhancing the WCI stack in order to keep the existing customer base happy.  This is a nice gesture on their part, but nobody wants their technology investment to be in a company’s red-headed stepson.
So what to do?  If you’re a new portal customer and want to go down the Oracle path, I feel strongly that choosing WebCenter is hands-down your best option.  The story for existing WCI customers is a little more muddled.  I think it’s important to take an honest stock of your portal deployment:
  • Does the existing functionality cover offer everything you want, and everything you’re likely going to want for the next few years?
  • Is your project more in a maintenance mode than in active development?
  • Is .NET support extremely important to you?
If the answer to most of the above questions is “Yes”.  Then your best best is probably just to stay on WCI and ride out the technology.  You’ll save on license conversion costs, and you’ll forgo the hassle of migrating all your existing data.
On the other hand, eventual migration from WCI to WebCenter makes a lot of sense:
  • If your portal deployment is a core piece of your corporate infrastructure
  • If your users rely on the technology evolving to include new core features
  • If you want to “future-proof” your investment and continue to use Oracle product
  • If you’re a strong Java shop
  • If you’re interested in, or have an existing investment in Oracle UCM
Keep in mind, however, that the jump from WCI to WebCenter won’t be a small one.  While the technologies have similar names, they are fundamentally different.  They have different architectures and design principals, and require a different skillset to maintain and enhance.  And, to date, Oracle has no clear migration plan to get you from Point A to Point B.  Lucky for you however, there are people like these guys who are on top of both the technologies and willing to help :)  Drop us a line if you’re considering a move from WCI to WebCenter and want to bounce some ideas around.

by Brian Hak at December 11, 2009 09:27 PM

Running WCI 10gR3 on Windows 2008

Howdy all.  It’s been a long week, so this one is short and sweet.  No witty anecdotes, no flowery prose and mixed metaphors, and minimal run-on sentences.  Just the facts before I shut down my machine for a bit.

Running WCI on Windows 2008 isn’t officially supported, but it’s kind of ridiculous to have to run your environments on an OS going on 7 years old.  We’re running the entire WCI stack swimmingly on Win2K8 internally, but there are a few things to know if you’re going to try to do an install yourself.
1) The installers will fail miserably if you don’t run them as an administrator and in compatibility mode.  We ran our installers in Windows 2003 compatibility mode without problem.
2) You need to do a command line install of the portal.  To do this, edit the example-silent.properties config file that comes with the installer, and then run:

WebCenterInteraction_10.3.0.0.0.exe -f example-silent.properties


silent_install.pngAnnoyingly, you get no feedback at all on the state of the install when running this way.  Your  DOS prompt will return immediately, but have no fear, the installer is running.  Open up Task Manager, and look for the “WebCenterInteraction…” process.  Once it disappears, the installer is done.


3) Portal does an OS check when it starts up, and doesn’t like you running on a non-supported platform.  Luckily, the check it does is pretty easy to trick.  Just tell Java to set the OS.name environment variable to Windows 2003 when you start your app server.  For Weblogic and Tomcat, you’ll want to add something like this to the script you’re using to start the server:

set JAVA_OPTS=-Dos.name=”windows 2003″


4) Oh, and one other thing.  Even when you do all the above, you /might/ have problems with getting configuration manager to lay down correctly.  Luckily, Configuration manager is just a straight forward web app.  We made it work by running the installer on a Win2K3 box, and just copying over the entire configmgr directory.  Works like a charm.

And that’s all she wrote.  Have fun, and good luck.  Just to brighten up this post a little bit, here’s a picture of my just completed, first ever piece of handmade stained glass…enjoy :)

stained_glass.jpg

by Brian Hak at December 11, 2009 09:27 PM