I wrote in an article about Self Service
some time ago
"I get the sense that there is a growing interest in the construction of Customer Portals and the general Web 2.0 'buzz' where people need to bring all types of data up into customer facing applications that blend information and capabilities from a range of enterprise applications." .... "The main tools for doing this within a Sage CRM world would be client side web services requests and hidden IFRAMES in the Custom Content of screens. All these are used to create clever 'Mashups'."
Web 2.0 is a phrase often applied to the trend of changing a users experience of the Web away from a collection of web sites to a full-fledged computing platform serving web applications to end users. From a Web Based application perspective I see this a move away from point solutions to blended sites. A trivial example of this may be thinking about looking for property in a neighbourhood using one website and then looking at photos of that neighbourhood on flickr or another photo sharing site. A Web 2.0 Website would automatically bring the photos from flickr into the property listing.
A Sage CRM example would be where we are able to open up a Company Screen and see there information from a web based time and billing system, a route map from google maps and the account balance from the ERP system.
From way back in the old eWare and ACCPAC days we had a phrase called the Web and Wireless Framework which was way of describing how our CRM application is structured and designed (with Meta Data) to support very easy backend integration with 3rd Party systems and then is able to bring that data to the browser and mobile device.
There are plenty of examples on the blog discussing how information from 3rd Party Systems can be blended into the interface using the server side APIs, either the Internal COM API or the ASP COM API. (See https://community.sagecrm.com/blogs/hints_tips_and_tricks/archive/2007/08/22/changing-a-summary-screen-e-g-company-summary-screen.aspx
Server side integration is one thing, however in the hosted environment or in a generalised web environment we simply may not be able to blend data from within the server but will have to add this within the browser.
Here we can think about the points that I first mentioned back in that November posting. One of these techniques could be could be AJAX. There is a fairly nice summary of this on the wikipedia site (http://en.wikipedia.org/wiki/Ajax_%28programming%29
The technology that is used in the Sage CRM screens is continually being evaluated with considerable effort being made to ensure that our software demonstrates high standards of performance and salability. This is all the attributes that we would want from a Web 2.0 application.
Part of the work is looking at ways the individual pages (for example the Opportunity Summary page) can be made more responsive.
If we consider Sage CRM form controls like the field type "Search Select Advanced" this is an example of how the pages within Sage CRM have been made more responsive by allowing the exchange of only a small amount of data with the server. The Search Select Advanced happens to use an <iframe> to carry out the lookup to the foreign fields. For example looking up Company names from the Opportunity screen. Techniques like this in Sage CRM are design so that as we look up additional information the entire web page does not have to be reloaded.
We can certainly use AJAX and other techniques with our own customizations. Each Meta Data defined screen and list within Sage CRM has a Custom Content box which offers the implementing partner scope to put any client side code or browser executed code that they want into the HTML that is returned to the browser.
For example here you could add in use of the XMLHttpRequest object to exchange data asynchronously with the web server. Any data retrieved can be easily positioned with the screen because of the Sage CRM behaviour of using unique ID parameters on its rendered HTML tags.
<SPAN class=VIEWBOXCAPTION id = _CaptQry_Count>#text</SPAN>
<SPAN class=VIEWBOX id= _DataQry_Count>#text</SPAN>
The XMLHttpRequest object can be used to transfer XML and other text data to and from a web server using HTTP. It is typically used to make a Web Services request.
Again there are plenty of posts on the blog about using the Sage CRM Web Services API. And Lastly
Application design using our SDKs can create many other Web 2.0 features. Both the Web Services API and the Self Service API can very easily be used to create RSS and ATOM feeds. - This is actually discussed on the DPP training classes (Lesson 15 - https://community.sagecrm.com/files/folders/training_resources_-_slide_presentations_and_graphics/entry426.aspx
Again this is only available currently to DPP members but I will write on this another time.