Posts Tagged ‘oracle’

Lessons Learned from Oracle WebCenter Sites Training

January 18, 2012

We recently participated in Oracle WebCenter Sites training, provided for partners by the Oracle Fusion Middleware Architecture Team (“A-Team”). Oracle offered insight into architecting and implementing the WebCenter Sites Solution, and committed to assisting partners like Fishbowl through initial client implementations.

The promise of WebCenter Sites (formerly FatWire) is a very high-performance website delivery platform along with a business-focused WYSIWYG Web Content Management (WCM) solution. The main benefit of Sites is high-performance site delivery. High-performance, dynamic content sites require a caching layer between visitors and the content management system. With some solutions, this requires (potentially) endless meetings to figure out how to balance business needs for content/publishing timeliness against website and proxy limitations and finessing time-to-live settings on the cache server(s). However, the WebCenter Sites’ Content Server can communicate with tightly-coupled caching server(s) when any content asset has been updated and the caching server retrieves the updates. This dynamic “edge caching” model results in highly-efficient caching and allows for lower hardware costs compared to less-aware caching models.

Website types that are the best fit for WebCenter Sites include consumer websites where page-response time is a premium. Consumers won’t wait for your site to download when the competition’s site is responding more quickly. Site types include brochureware sites; product and services marketing websites; news/media websites; eCommerce sites (Sites is frequently used as the product catalog “behind” the shopping cart) and financial services sites. This technology works best when implemented for clients who can express the financial value of site traffic and performance and are willing to invest in improving site response times and the content editor experience.

If none of the use cases we’ve described apply to your website needs, then Oracle WebCenter Sites may not be the right technology for your environment. Each use case is different, and realistic implementation timeframes exceed three months with significant investment required. We have other tools available to meet the range of website needs, including portal and WCM tools for intranet, extranet and public-facing websites all leveraging the Oracle WebCenter platform. Contact us for more information on which strategy is right for you.

jQuery and UCM – Client Side Ajax UCM Interaction

June 11, 2010

The web is evolving, and users are wanting better interaction with their apps within the web browser.  This means faster site loads and action feedback to the user and not a browser loading a page.

Bex recently posted about his jQuery plugin to UCM to make service calls, and I thought I’d share something that I whipped up a few months back that has been an internal project of mine.  I think it’s about time it saw the light of day and help give more options to the web developers of the world.

My prototype is a javascript service wrapper javascript object, called fb.js, creates several util functions to help aid the execution of service calls with a max of 1 line of IdocScript on your site.

The first thing to do is to set the url for the ajax call.  The preferred method is to override the variable in fb.js that holds all of this.  Do this by defining this line in your javascript file.

fb.vars.cgiRoot = "<$HttpCgiRoot$>";

Now we can build out our function.  Each function takes 2 parameters objects, a callbacks object and a parameters object.  The callbacks object has the hooks into the 5 events jQuery ajax method gives you.  These are, beforeSend, success, failure, complete, and error.  By defining functions in the callback object, you can hook into any event and change you page very easily.

For example:

var callbacks = new Object();
callsbacks.beforeSendFunction = function(){alert("about to ping server")};
callbacks.successFunction = function(responseText){
alert(responseText.LocalData.StatusMessage);
};

The second object is the parameters object.  This one is as easy as passing in parameters as you would for service calls.  For example :

var parameters = new Object();
parameters.IdcService = "MY_CUSTOM_SERVICE";
parameters.MyCustomParameter = "VariableValueHere";
parameters.IsJson = "1";

Now we can execute the service.

fb.util.executeService(callsbacks, parameters);

Now the real power comes when you want to start interpreting result sets.  you can use a method I created to get back a 2D array object that contains the row and then the item.  An example of this would be.

var callbacks = new Object();
callbacks.successFunction = function(responseText){
var contentItem = fb.util.returnResultSetObject(responseText, "DOC_INFO");
alert(contentItem[0]["dDocTitle"]);
alert(contentItem[0]["xComments"]);
};
var parameters = new Object();
parameters.dDocName = "ID_10000";
fb.util.getDocInfoByName(callbacks, parameters);

This can also be applied to search results to loop and create your table.

var callbacks = new Object();
callbacks = fb.defaultCallbacks(callbacks);
callbacks.successFunction() = function(responseText){
var searchObj = fb.util.returnResultSetObject(responseText, "SearchResults");
for (var i = 0; i < searchObj.length; i++){
var htmlString = "tr td" + searchObj[i]['dDocName'] + "/td td" + searchObj[i]['dDocTitle'] + "/td td" + searchObj[i]['dDocAuthor'] + "/td /tr";
$("#resultsTable > tbody:last").append(htmlString);
}
};
var parameters = new Object();
parameters.pageCount = "4";
parameters.resultCount = "50";
parameters.QueryText = "Press Release";
parameters = fb.defaultParameters(parameters);
fb.util.getSearchResults(callbacks, parameters);

Now, you may be saying at this point that this is a lot to define to execute the method.  That is why I have started some functions in the main js file called “fb.defaultParameters(parameters)” and “fb.defaultCallbacks(callbacks)”.  By passing in your objects to these methods before you run your service, it will fill in the blanks, so to speak, with default parameters needed to execute the function.

Because I have defined the GET_SEARCH_RESULTS service call within my default parameters, I know there are certain required parameters that need to passed before I execute the service.  These are, QueryText, startRow, endRow, resultCount and others.  I also decided that, I don’t really want to deal with start and end row, so I decided that when I pass in the pageNumber parameter, I calculate the start and end row based off of either the default resultCount parameter set in fb.vars or the one passed into the function.  This can be seen in the above method where I create the table rows.

I currently have 3 predefined for you to use with the ability to add execute any service you want.


fb.util.pingServer(callbacks);

fb.util.getSearchResults(callbacks, parameters);

fb.util.docInfoByName(callbacks, parameters);

with the master execute service function being


fb.util.executeService(callbacks, parameters);

What I have done is allow you to hook into as many events that you want with the ajax functions, but also incorporate a “defaultFunctions” and “defaultParameters” functions that will assume and fill in parameters that may have been missed or not necessary to keep defining.

For your viewing pleasure, I have set up a prototype site that is Mobile device friendly using 100% javascript hosted on a 10gR3 content server.  Keep in mind that this has not be polished, but a POC of what you can do with the proper execute service javascript wrapper calling the shots.

Please visit http://www.fishbowlsolutions.com/mobile for the example.

The Changing Face of Enterprise Content Management

May 17, 2010

Content management systems are increasingly becoming back end “black box” content stores. This trend towards commoditization puts a decreasing importance on the system and an increasing importance on the ways in which the system capabilities are surfaced. There are several trends that I have observed and continue to see manifest though customer interactions, blog chatter and market awareness.

I am seeing a resurgence in portal fronted web applications. The difference between these and the all-or-nothing portals that were popular 5-10 years ago is that these that leverage rich ECM capabilities on the back end to provide versioning, document libraries, digital asset management, conversion, transcoding, workflow and other “rich” ECM features.

I am seeing WCM systems that are splitting into two camps -
1. Rich WCM that is fully integrated with and takes advantage of sophisticated ECM capabilities
2. Light-Weight WCM that is more like free public blogging software that is quick, cheap and easy but lacking sophistication of top-end systems.

I am seeing “in application” ECM capabilities surface in back-office and process applications like PeopleSoft, JD Edwards and Siebel. It is noted that EMC/Documentum’s recent announcement about their change of direction alludes powerfully toward a deeper relationship with SAP.

I am also seeing something of a retrenchment in the pure-play content management space. Basic capabilities are being re-discovered, often to the exclusion of other, more advanced features. This seems to be due, in part, to three factors:

  1. The SharePoint effect: basic content management catching on with the average worker rather than just the content management professional.
  2. The rise of niche web 2.0 capabilities in the office setting that do one thing well: for example Yammer does micro-blogging in the enterprise well but is disconnected from other information management strategies
  3. The continued consolidation of software and features from the big enterprise vendors: Oracle boasts massive storage capacity and ingestion speeds when their ECM system is combined with RAC database clusters, Exadata machines, SUN servers etc.

(more…)

Oracle’s 2009 CM Architect of the Year Joins Fishbowl Solutions

February 22, 2010

Every year at Open World, Oracle bestows several “Architect of the Year” awards on key people from strategic Oracle customers that achieve global greatness. In 2009 the Content Management Architect of the Year award went to Jerry Aber of MoneyGram.

Jerry worked closely with Fishbowl Solutions to achieve that success (including up to 50% productivity gains). Today, Jerry joins Fishbowl on our solutions architecture and leadership teams.

Not only does this mean that we continue to grow despite the economy, but also that we are attracting the top talent in the space.
Check out Fishbowl Solutions.com for more info.

Please drop a comment and welcome Jerry!

Enterprise Information Management – 7 Trends & Why You Should Care

February 19, 2010

This is from a keynote presentation I gave earlier this month.
A webinar on the same topic will be coming soon.


Follow

Get every new post delivered to your Inbox.

Join 310 other followers