Welcome to MSDN Blogs Sign in | Join | Help

Syndication

News

Locations of visitors to this page
Brilliant Application of Software Plus Services in the Irish Motor Industry

CarsNow - Contact Management System for Car Dealerships

Recently I came across a superb example of innovative software built for the Software plus Service model using the Microsoft platform. The application addresses a business need in a high value business which seems to be crying out for attention. CarsNow provides a contact management system for car dealership customers and provides capabilities that the industry has not had access to until now.

Furthermore, CarsNow provides a slick user interface with Silverlight and ASP.Net AJAX and delivers it over the Web using a pure Software as a Service model or using an on-premise model, if desired.

The Business View

Most car dealerships operate a business involving sales of new and used cars, trade-ins and sales of finance to facilitate new purchases. Customers come through the doors of the showroom based on recommendations from friends, in off the street and some bring repeat business since their first ever car purchase. Understanding the different models and nuances is extremely valuable and usually distinguishes excellent sales people from their peers. Capturing a customer’s requirements for a type of car or colour, age as an enquiry is a basic necessity if the garage is to satisfy the customer.

businessView

Matching the Customers Needs

In many garages, customers enquire about cars by dropping in or over the phone. Enquiries get logged in the personal diaries of the salespeople and most enquiries get followed up. However, many opportunities are delayed or lost due to poor follow up procedures.

Often there is no car in stock that matches the customer’s requirement (right colour but wrong year, saloon yes but no leather seats). If a used car arrives into stock a week later that matches the customer’s requirements pure luck might kick in and the salesperson just might remember the colour and make the customer wanted. More often the salesperson isn’t even the one bringing in a potential match because his colleague is dealing with the stock intake. After accepting a customer’s enquiry data CarsNow will automatically match those requirements against new stock received by all the sales team in the dealership. This matching can happen on the day or a month later and doesn’t rely on the memory of the sales person.

matching

Integrated Finance and Car Sales

One of the major sources of income in retail car sales comes from selling finance packages for new and used cars. Typically the “Business Manager” looks after arranging the right finance package for the particular car deal.

CarsNow offers a seamless transition from the forecourt and sales floor to the Business Manager’s office by referring the customer details and deal details through to the business manager with a single mouse click. CarsNow has the ability to integrate with several Financial Institutions to get their current best rates for the deal in question so that the business manager can offer the best package to the client. On occasions where even the best rate is not working out for the client the business manager can have the details of the client’s next favourite car.

finance

Business Activity Monitoring – Value in the data

In many cases, understanding the reality of what is going on the shop floor is a blind spot for dealership managers. How many enquiries were not matched with stock? How many used cars are in stock and for how long? By how much is that €100,000 Mercedes depreciating per month? Who is the busiest sales person this morning, in the last hour, over the last month? How many enquiries are being converted to sales? How much stock has a sales person brought in? Can we stop him/her bringing in more stock until the current stock list is reduced? These are questions which are hugely important to the dealer and which the CarsNow system answers in real time.

BAMSales

There is even more value in the enquiry data alone for the manufacturing industry. For examples questions like: Of new car enquiries how many did not materialise because of long lead times from the manufacturer or because the car is not available in silver and leather? How many enquiries resulted in the week following the new advertising campaign?

These questions are also important to dealers but offer even more potential for the manufacturers’ production planning and marketing departments.

BusinessMonitor1

Aggregated Data – Centralised in the Cloud – The sum of the parts.....

Keeping all the data centrally provides significant benefits in terms of the manageability of the system, maintaining backups etc but it also means that the data package is not distributed on hard disks through the country/ continent and provides a single holistic source of activity in the industry on a city, county, country. The data is held in SQL Server and can therefore benefit from SQL Server’s Business Intelligence features which will enable executives to discover trends and view the data over geographically over dealerships, city, county, country, region etc. The possibilities are endless.

Populating the greater WEB

When CarsNow captures the used car inventory of the dealership it maintains this data as a master copy for the dealership. Most car dealers have embraced the worldwide Web and will typically go through the tedious process of manually updating several popular car advertising Websites. With CarsNow, once the data is in the system, it can automatically update the popular Websites with the car data and save dealers the tedium of having to manage the data manually.

greaterweb

CarsNow already has the interfaces in production for www.carzone.ie and www.cbg.ie which themselves feed the data on to numerous other Web presences.

Technical Architecture

The figure below shows the various subsystems and flows that make up the CarsNow application. CarsNow is built on Microsoft technology right the way through form the WEB user interface using ASP.NET AJAX and Silverlight to the back end database hosted on SQL Server .

arch

Multi-Tenant Data Model

Avida have been absolutely paranoid with respect to privacy of data across dealerships. In general, a tenant of the system is a dealership but there is an added dimension to the hierarchy such that a dealership can spread across more than one location.

Privacy is also enforced between locations of the same dealership (as each may be run as a separate business unit within the group). There are areas where this paranoia is a little relaxed when it comes to reporting across locations in the same dealership. Every record in the database underlying the system is keyed and related to a particular dealership / tenant. Many of the queries on the database use SQL Server 2005 views to extract only the data for the particular dealership.

WEB User Interface

CarsNow uses the latest user interface technologies from Microsoft including ASP.NET AJAX and Silverlight. Both ensure that a very slick and high quality user interface is available to users who have no more than a browser to access the system.

Mobile Component

Avida are developing a mobile client component which will be used to record details about the trade in car. Presently an appraisal book is used to record the trade in car details. This book has a diagram of a car and all dents and scratches are recorded on the diagram and notes are taken regarding any necessary repairs. The mobile client will be used to take photos of the car and then allow the salesperson to record on the vehicle the problems with notes by keypad and stylus. This will then synchronise via wireless broadband with the Web app. The pictures taken (were appropriate) will also be used when the car is brought into stock. This will facilitate the quicker turnaround from a car coming into stock to being up on consumer Web sites. By having the car earlier on consumer Web sites, the turnover of stock is increased, stocking charges reduced and as a result higher profitability is possible.

Development Environment

Avida developed CarsNow using Visual Studio 2005 in conjunction with the ASP.NET AJAX add in. The development environment has now been ported to the Visual Studio 2008 RTM (release to manufacture) version.

Moving to Visual Studio 2008 was a straightforward decision as it is the platform of choice for developing ASP.NET AJAX and Silverlight applications for developers.

Technologies used include:

· ASP.NET AJAX

· Silverlight 1.0

· .NET 2.0 framework

· MS SQL Server 2005

· Web Server – MS IIS 6.0 (Internet Information Server)

For David Reichental of Avida the reasons for choosing the Microsoft platform were straightforward. “Microsoft offered a tightly integrated development environment that gives developers access to the latest technology standards in the Web arena. Having met some of the leaders of the development and servers tools group at Microsoft I was particularly impressed with the vision for the technology and how Microsoft has taken on board feedback from the IT community”

Silverlight was chosen as the basis for the Rich Media aspects because Avida’s development team are already familiar with the development Microsoft tools for Silverlight. Also, given the roadmap for Silverlight, it is clear that more and more of the .NET functionality will be made available to Silverlight developers through the same (or very similar) APIs and tools that the team use today for .NET development.

Role Base Authorisation

Within CarsNow there are several roles which users may have. There are cars sales people, finance specialists, managers, owners etc. Each user type is presented with the set of screens appropriate to their role. For example, some of the Business Activity Monitor capabilities are only available to managers as they provide a view of sensitive data.

Deployment Options – Software Plus Services

There are a number of ways in which CarsNow can be deployed and made available to dealerships.

Software as a Service (Saas)

The typical installation model for CarsNow is to make use of the CarsNow data centre and have the application code hosted for the dealership. This makes like easier for the dealership who really only to worry about having a browser installed on the PC. According to David Reichental: ”The main reason for choosing the Saas model was that there is practically no deployment effort for a new garage and the same is true when it comes to rolling out upgrades. Customers just get our software upgrades automatically. Some dealerships have very advanced IT and have a server environment for the sales department and for those the on-premise model is an option. However, there are also many cases when the sales people are looking to have a desktop PC. Using the Saas model meant we minimised the deployment hurdle”

On-Premise

The dealership customer base is not only differentiated by the level of their existing IT investments but is also geographically spread. Not all dealerships have access to fast broadband connections so there is also the option of an on-premise server install with CarsNow. It is the same codebase but the system has just one tenant.

Posted Thursday, December 20, 2007 4:41 PM by Cormac Keogh | 0 Comments

Links related to Lead Enterprise Architect Program User Experience

For those that attended the LEAP session on User Experience yesterday. Here are some links that might be useful :

Simon Guests blog page is at http://simonguest.com

and his presentation is available at http://simonguest.com/pages/MyPresentations.aspx

 

There was a couple of things I didn't show you yesterday but didn't have a good connection, namely :

 

ASP.NET AJAX

The ASP.NET site at http://www.asp.net  in particular the library of ASP.NET AJAX controls that are available to you for your ASP.NET web pages :

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Accordion/Accordion.aspx

 

Silverlight

Resources can be found at  :  http://silverlight.net

A good example of a site developed with Silverlight is at :
http://premium.quiksilverlive.com/


There are lots of sample applications at http://silverlight.net/showcase/Default.aspx

 

Accessibility

Regarding the accessibility guidelines that is mandated for use in government applications it seems like a MUST that if use the personas approach to development at least one (if not all) personas take the mandatory requirements on board.

There is some constraint checking for the Web Content Accessibility Guidelines (WCAG) (these are published by the W3C's Web Accessibility Initiative ) built into Visual Studio 2005 and 2008.  For those in the public sector I found this link on Channel 9 which might be useful : http://channel9.msdn.com/ShowPost.aspx?PostID=130659

There is also a partner who has built a AJAX Control library for accessibility. I don't know how good or bad it is but their details are at :http://www.componentsource.com/products/telerik-radcontrols-asp-net/index.html

del.icio.us Tags: , , , , ,

Posted Friday, November 09, 2007 3:32 PM by Cormac Keogh | 0 Comments

Super Rich Internet Application using Silverlight

Just a short post to point out a superb example of social networking, video and delivered with a superb user experience. Done with Silverlight.

Really worth a look

http://premium.quiksilverlive.com/

Cormac

Posted Friday, September 28, 2007 10:54 AM by Cormac Keogh | 1 Comments

Multi-Channel Customer Service with SOA

I am currently looking into various SOA and multi-channel offerings which are available from Microsoft. The Customer Care Framework (CCF) is another such offering which has many successful deployments in very high profile banks and telcos worldwide such as Bank of America, Bellsouth, El Pais, Telemar, Nawras.

CCF uses an SOA middle tier to wrap services provided by back-end systems and CRM access.

It can therefore leverages all the advantages of the SOA approach in facilitating collaboration between systems, abstraction of services that can be implemented by several systems, “progressive renovation” (abstract and shield so that you can change at a controlled pace).

As a result it has been used to demonstrate these advantages in circumstances such as post merger consolidation of systems such that the big bang and rip and replace paradigms need not apply. More on the SOA piece below…

CCF is very much a multi-channel customer care framework. Many different channels are supported for customer interactions and undoubtedly new ones can be added. Currently supported are:

· Telephone

· Speech Enables Voice Recognition

· Smart Phone

· Web Chat

· Email

· Self-Service Web Portal

Another key part to CCF is the functionality provided to the agent or Customer Service Representative (CSR). This is provided through the agent desktop, which provides an aggregation of CRM and Line of business applications within the enterprise.

The Agent Desktop

The agent desktop application provides a rich customer centric user interface to the Customer Service Representative (CSR) of the data gleaned from the various line-of-business applications (via WEB Services) or CRM systems in the back-end. The Agent Desktop provides integration with the telephone system using an abstraction layer that supports both the TAPI and TSAPI interfaces. This covers just about every telephone system. Support for additional APIs can also be added. CCF also integrates with Microsoft Speech Server for access to IVR applications.

The agent desktop is built using the Application Integration Framework. This provides a container for “hosting” user interfaces applications and can connect directly to the back-end system or use the middle tier which can offer data abstraction and caching.

The front end of CCF also offers Instant Messaging as a channel for CSRs to request backup on a particular issue. The CCF front end is built and deployed such that configuration data is held centrally which eases installation and support for roaming agents and roaming desktops. Customer context and state are also managed centrally such that a case can be efficiently transferred between agents and across channels. There is also a workflow capability within the agent desktop.

The Application Integration Framework can be used to integrate the following types of user facing applications: Web-based,TN3270, Java Swing Applications, ActiveX and legacy Windows Applications, .NET Framework (WinForm) Applications, Citrix Applications and other.

Server

On the server side of CCF is the Business Application Aggregation Module (BAAM) which leverages several technologies to do what the name suggests:

· Biztalk Server is used to aggregate across back-end mainframe and other applications to create XML Web Services entry-points to those systems.

· Enterprise Single Sign-On is also provided as a Biztalk Service. This includes support for RACF and various other authentication and authorization schemes.

· BAAM provides BAM (Business Activity Monitoring too thanks to the Biztalk Server BAM component. Regardless of the channel the customer has used to interact on the key metrics are monitored and managed centrally providing a consolidated view of key performance indicators.

The key point for me with CCF is that the degree to which the WEB Services Layer abstracts the business functionality is an implementation choice. Customers can use the Agent Desktop as a thin façade on existing business function by implementing a straight through approach to their WEB Services or choose to abstract, consolidate, standardize and re-use at the WEB Services layer.

With CCF there is no need to boil the ocean on day one. You can fill the kettle and serve the tea to your customers in the first week (week 2 for lakes and rivers, week 3 for the ocean).

Click here for more information on CCF

Posted Friday, August 24, 2007 1:28 PM by Cormac Keogh | 0 Comments

Banking on SOA and .NET

Here is a brief one-pager of what I found interesting about a Case Study on a significant SOA project at a large Australian bank.

 

The CommSee application started off as a CRM application. However, CommSee became a single platform for delivery of business functionality to the banks user community. I suspect this is the world’s largest example of scope creep !!  (see below for a possible explanation).

 

Architecturally there are many parts and modules in CommSee. However, two major layers stand out to me:

1.       A front-end container which brings together all the UI pieces used by the business including legacy VB6 applications and new CommSee Winparts.

2.       The Services Oriented Framework Architecture (SOFA)

 

Both the front end component and the server side were built using .NET technology from Microsoft and the application serves some 30,000 users.

 

The front-end container may be interesting for any bank, or other large corporation, with a similar User Interface legacy (i.e. scattered across many technologies like Java, HTML, VB, ...) or for those who wish to bring users to their work through a single window which provides rich user experience.  The mini apps in the container are developed as Winparts which can be orchestrated tog ether to deliver a specific function. Legacy user interfaces are brought into the container using DLL injection.

 

The SOFA framework is interesting from a number of points. It shows how SOA services have been delivered by the bank as both “private” (directly needed by specific WinParts) and “public” those services which are most likely to be re-used across applications. Also the bank used IBM’s IFW to help define the interfaces to the public services. Some “public” services required state management as they are exposing long-running transactions.  Biztalk Server was used for the necessary modelling, orchestration and state management. Oh yes, as a large bank there are of course many mainframes running critical line-of business applications. Integration with these from the rich user interface to the mainframe is through Microsoft’s Host Integration Server .

 

About the scope creep question

So how come it was acceptable to the project team to have the scope go apparently out of control - from CRM to what CommSee is today. This leads to the delivery approach of the team which was particularly agile. Vertical drops through the stack i.e. WinPart in the UI through to underlying service and database were delivered for specifically focussed functions one at a time or by a single team at a time i.e. slivers of functionality.  This allowed a quick turnaround to end users and delivery of function. So, my guess is, that the apparent scope creep has to do with the fact that the team were “delivering” and therefore received a mandate to keep on going.

 

The trade-off with the above approach is that can be many services that are not necessarily as generalised and reusable across business function as they could potentially be. Then again, many other projects under-deliver because of too much navel-gazing. The classification of those services as “private” does imply that this was a deliberate decision to allow for quick delivery to the business. The discovery of a re-usable service could always result in it being promoted to “public” in any case.

 

Both the UI container and the SOFA layer were built on .NET and where architected in such a way as to position the bank to take full advantage of both of Windows Communication Foundation (www.msdn.com/wcf) and Windows Presentation Foundation (www.msdn.com/wpf)

 

In summary, there are a lot of interesting aspects to the CommSee application:  the SOFA layer, the UI container, the use of IFW, the use of .NET technology and the development approach.  If you would like to read more have a look at the full case study at :  http://msdn2.microsoft.com/en-us/library/bb190159.aspx

Posted Thursday, August 23, 2007 2:49 PM by Cormac Keogh | 0 Comments

Software as a Service

I recently started a new job at Microsoft.  During the interview process I was asked what I thought about “Software as a Service” to which I replied “sounds like a great idea” (but was secretly doing a LiveSearch” in the background). After a couple of “auto pilot” sentences in the interview I realised that “Software as a Service” is familiar territory after all. My previous role (current at the time - architecture of payment infrastructure for banks) was actually quite immersed in the same area but, of course, wasn’t using the same terminology.  In the financial services world, where I have spent the last number of years, banks have been providing software as a service for a long time.  “White labelling” (as it’s called there) allows one bank (or service bureau often owned by a bank or group of banks) to host software on behalf of another in such a way that each individual bank can have its own style and labelling applied as if it was hosted locally. The end customer (for example logging on to do their web banking) doesn’t know the difference. Application Service Providers is also a term that has been used to describe the same thing in the past. 

About the Terminology ....Software as a Service

In my opinion, the terminology used today, which attempts to categorise the shift of how and where software (and business functionality) is physically located being is not particularly helpful.

Clearly there is a shift going on. Software which we have traditionally seen as located in the data-centre or on the desktop is now available outside by connecting to remote sites and it’s fair to call that Software as a Service. Particular attention is being focussed on Customer Relationship Management CRM because of the off-premise availability of products such as Dynamics CRM and Salesforce.com. Given the sensitivity of the data involved, CRM is probably the last arena I would have expected to be SaaS to take off in but there seems to be no doubt that it has and is. There are also off-premise sources of Office Productivity software.  

.... Software + Services

Another term commonly used is Software + Services which recognises the problems with the absoluteness of the “Software as a Services” term. With Software + Services there is a spectrum of deployment models. The extremes of the spectrum are : all the software footprint is On Premise (desktop or customer datacentre)  and all off premise (except the Operating System and browser). Within the range of those extremes are many different offerings which are available today. There are a couple of ways of categorising the Hybrid possibilities along this spectrum

1)      Hybrid offerings such that there is a combination of on–premise software (over and above the OS and browser). Examples include:

a.       Live Gaming - Xbox Live - Xbox on premise 

b.   Windows Live - some client + online service

c.      Security - Anti Virus software + signature downloads

d.      Office Online (MS Office + sharing of content online)

e.      Digital music services  iTunes, Zune Marketplace

2)      Hybrid Offerings such that a mix of online and offline usability options available. For example online service model when there is a good connection available but offline usage when there is a bad connectivity.

 

 

....  Business as an Online Service (BAAOS)

The categorisation of “Software as a Service”, and even the term “Software + Services”, force me to think of existing software businesses and the changes that are happening to them. There is a danger therefore of holding back our imaginations.  A better term in my opinion would be “business as an online service”, which I guess doesn’t have the same ring to it. We think of telecoms as a utility business. Voice telecoms is being redefined by the availability of broadband and software from Skype which provides global “peer to peer” real time voice for a fraction of the cost that local utility providers provide a similar service. But what’s really new ? When it comes to categorising a voice telecom service one could say that software was always used by the utility company and one way or another we were all subscribing to pay for the use of that software as we paid our monthly phone bills. Now Skype provide the same business service and it’s the centralised hosted software which they provide that allows us to connect with our global peers at low cost.  They do allow us use their “software as a service”. It’s not just Skype of course.  From a PABX perspective, Microsoft are providing voice, video, desktop sharing etc support through Office Communicator and Exchange and Windows Live already provides global voice, meeting  support and chat with Messenger as a hosted services, of course.

The important thing about the Skype service (and others) is the business service that’s provided:  a peer to peer voice connection. Less emphasis should be placed on the how it is being done. For phone calls the consumer probably just cares about the quality of service, cost, ease of consumption and reach.

If we blinker our imaginations to just the shift in location of traditionally licensed software to online equivalents then we could miss out on new business models that can emerge based on the new ecosystem provided by the internet – even the ones we already take for granted - online banking, online auctioning, online advertising, on-line peer to peer payments.

 

Building an Online Business Service

I think I’ll just have to get over the terminology thing. In any case, regardless of the terminology used, for those aspects of an offering that are to be made available as a shared and on-line  there are many things that should be considered when building these services.  As this is just my very first blog I don’t plan on getting into each one right now but I will highlight some of the things that come to mind :

1.       Scalability of the platform

2.       Extensibility:  Allowing tenants to have at a minimum a different logo/branding at the front end and possibly different business processes or variations on a template process.

3.       Data Driven process configuration. i.e. All tenants have the same code and different behaviours are encoded in configuration code.

4.       Access to configurability: via standard WEB Services interfaces.

5.       Integration points back to the tenant (callbacks). If access back to client systems is necessary then use of standard interfaces (business content and communications protocol) helps a lot.

6.        Integration points back to other backend service providers on behalf of the tenant. Again use of standard interfaces (business content and communications protocol).Pre-built integration can be a significant advantage of the business service provider.

7.       Security including authentication, encryption, non-repudiation

8.       Separation of data – at worst this can mean separate database instances for each tenant. At best a well defined data model such that each tenant’s data is always keyed separately.

9.       Profiling of Tenants

10.   Profiling of end users

11.   Authorisation around roles combined with authorisation around relationships to tenants. For example, it’s not enough that certain screens or functions be limited to individuals who have the correct role but data must be kept separate (from a visibility point of view) such that employees of one organisation cannot view data belonging to another.

12.   Use of standard interfaces (non-User Interface) for access to the service. Helps with the scalability when trying to onboard new tenants. Minimise the amount of mapping required were possible. Or adjust the price of the service when mappings are required.

Posted Wednesday, August 01, 2007 5:35 PM by Cormac Keogh | 1 Comments

Page view tracker