LitwareHR v2: from SaaS to S+S

Unless you have been abducted by aliens a few months ago and just returned to earth I am pretty sure you have heard of Software + Services or S+S (if you have been abducted and just returned, hence not heard about S+S, I suppose you have bigger issues to deal with than knowing what S+S is right now...). Anyway, for people not abducted by aliens and therefore looking for S+S guidance, I am pleased to announce LitwareHR v2.

This release extends LitwareHR, the reference SaaS application we released a few months back, and provides guidance on building S+S solutions taking advantage of the full spectrum of what S+S offers (Client, Server and Services) as shown in the picture below:


In a S+S world, solutions are not either pure SaaS (a.k.a. "in the cloud") or fully "on premise", rather they are a combination of local software and Internet services interacting with one another: local software making “cloud” services better and cloud services making local software better.

From a guidance perspective, LitwareHR v2, takes all the foundation we built around multi-tenant / try before you buy / meta data driven "online services" released in v1 and augments it with:

- a rich client WPF based front end showing guidance in disconnected/offline scenarios as well as allowing "power users" to tap into rich visualization and local resources

- a "cloud service", in this case Silverlight Streaming by Windows Live handling video resumes posted by applicants

As usual, we focused much more on the HOW than completeness of features; another way of saying this is that LitwareHR v2 is meant to be deep architecture guidance not a fully features HR solution.

Based on frequent requests, also included in the release is a new Multi-Tenant Database Performance Guide, which provides tests results and guidance to compare the performance and scalability of different extensibility patterns in multi-tenant SQL 2005 databases (extension tables vs. XML data types vs. fixed columns). Some screen shots to give you an idea of what you will get below:


Next step: download the release (bits and documentation) here: . There you will find both LitwareHR v2 and the performance guide.


FYI: the code is released under the permissive license so read the license (or have it read by your lawyer) but the license (as its name indicates) is very permissive; we expect to see a lot of people being "inspired" (copy/paste?) by it.

Feedback, comments, questions as usual very welcome. And make sure to check out Eugenio's blog I am sure he will publish some additional info soon.




For those interested in bit more info before going to codeplex and downloading the bits, below some more info about the release.


Architecture Challenges Demonstrated

· Designing a “back-end as a service”:

o Multi-tenancy 

o Application customization: metadata driven application for tenant extensions at the UI, business logic and data access layers.

o Performance and scalability of extensible, multi-tenant applications.

o Service Layer design: functional web services and meta-data web services to enable different consumption experiences (multi-head application)

o Claims based authorization

o Tenant resource provisioning

· Designing “front ends” for SaaS applications:

o Designing extensible web clients

o Smart Client with tenant customization, offline operations, claims based authorization and integration with local resources (Desktop search)

· Taking advantage of “Cloud Services”:

o Integration with Silverlight streaming from the UI (Web and Smart Client) and services layer (programmatic access).

· Performance assessment of database extensibility methods

o Using XML data types vs. fixed columns vs. extension tables with different loads, concurrent users and usage patterns (select vs. update vs. insert)

Some Release highlights

· LitwareHR enhancements highlights:

1. Platform upgrade. Updated LitwareHR v2.0 to run on Windows Sever 2008 and Microsoft Visual Studio 2008 (Beta 2) . This included leveraging new technologies like Active Directory Lightweight Directory Services (ADSLDS) , new management APIs and IIS7.

2. Data access performance improvement. Based on the results of the Multi-Tenant Database Performance test (see below) updated LitwareHR data access code and tables design.

3. Services Enhancements. Created new services leveraging Windows Communication Foundation 3.5 features to enable RSS & REST interfaces.

4. Silverlight Streaming mash-up.  Augmented LitwareHR services with Silverlight Streaming Services. Demonstrated in the “Submit Video Resume” feature.

5. Smart Client Application. Updated the original WPF based Smart Client showing consumption of LitwareHR functional and meta-data services even with offline support

6. Vista Gadget. Extended LitwareHR UX a Vista Gadgets consuming REST interfaces.

7. Improved guidance deployment. Moved from the old document + readme + bunch of scripts approach to a 100% automated one, including dependencies checking and configuration.




· Multi-tenant Database Performance Guide:

1. Database extensibility patterns comparison: performance test results for common database extension methods: XML data types vs. Fixed columns vs. Extension tables.

2. Test Tools, Scripts and Documentation. In addition to the results of our own testing, we are shipping the tools, scripts and instructions for anybody to repro this tests in their own environments and conditions.