All posts by Ariel Schapiro

Picture with B Gates



Signs of SaaS evangelism

During the last trip I’ve found some signs of SaaS evangelism around Seattle area:

  1. Tenant-based security applied to restaurants restrooms in downtown Seattle:


  1. "Try before you buy" experience in Chinese restaurant             (in Sea-Tac airport):


Has any of you found any "SaaS hints" anywhere else? ūüôā

WF 3.5 Certification exams design session

Last week I’ve been participating on the design of the upcoming TS (Technology Specialist) certification exams for WF 3.5. (formerly known as "70-504: TS: .NET Framework 3.5 – Windows Workflow Foundation")

The sessions have been organized by the Microsoft Learning team and hosted by Howard Dierking, who did a great job on helping us to discuss about the most important aspects of WF to test.

He explained the refactoring of the exam stack and how having TS exams which are specific to a single technology and then PRO exams which are more scenario oriented can help software companies on measuring their applicants skills.

From left to right, the Subject Matter Experts that worked on that design sessions are: Ariel Schapiro, Serge Luca, Alfred Myers, Brian Myers (author of "Introduction to Windows Workflow Foundation" book) and Mark Dunn.


It was really interesting to see how many points of view around the same subject help enormously in the design of an exam; good work guys!

Two more southies (Matias Woloski and Johnny Halife) participated in the WCF design sessions that took place one week before WF’s.

Some SaaS Links

I’m sure this is not all of the material around, but here is¬†a brief list of¬†Software as a Service¬†links that I¬†find useful. Feel free to propose more links. Enjoy ūüôā


SaaS Workshop

Fred Chong, Gianpaolo Carraro, Erik Weis and Matias Woloski gave a 3-day workshop on SaaS, at Microsoft HQ in Redmond.

Attending Microsoft employees and ISVs used a SaaS reference application based on LitwareHR to get inside of the architectural challenges solutions for data model configuration, tenant provisioning, workflow configuration and security.

Check Matias’s post¬†for more details.

Microsoft Provisioning System (MPS): Overview

These days I’ve been investigating on what Microsoft Hosting Solutions and Microsoft Provisioning System can do, how they work and how they would be applied to SaaS hosting environments, such as LitwareHR reference application’s.

MPS is an extensible Windows-based platform that provides an XML-based framework that allows to create customized provisioning solutions for Web, data, and application hosting. This solution includes tasks such as adding new users, updating directory entries, and provisioning applications and services.

MPS’s providers make possible to automate the tasks required to provision and manage services within a data center. They accept XML requests from the Provisioning Engine and execute provisioning tasks against their respective applications.

MPS’s Provisioning Engine acts as a provisioning process coordinator and performs data monitoring and logging services. The Provisioning Engine interprets high-level XML requests and expands them into tasks.


  1. Using the Web-based interface, submit an XML-based provisioning request.

  2. The provisioning Engine parses the XML request and expands the request into multiple low-level actions. The provisioning Engine processes the request based on the MPF Configuration database.

  3. The Provisioning Engine then routes the XML requests to the appropriate Providers.

  4. The Provider implements the low-level provisioning tasks by making API calls to the appropriate applications. The provisioning request is complete.

Context: MPS as part of the Solution for Windows Based Hosting


Installed elements:

The following are the main things I installed to get a deeper notion of MPS. You can get them here:

  • MPS SDK:

    • Includes MPS Manager: Administration console for MPF (next bullet), used to configure and monitor the components in an MPF installation.


  • Microsoft Provisioning Framework (MPF): platform for building, deploying, managing, and extending hosted services running on Windows:
    • Provisioning Framework: The framework contains both client and server components. The client and SOAP ISAPI receive incoming provisioning requests. The following server components manage transaction processing and data storage:
      • Provisioning engines
      • Queue managers (Provisioning Queue Manager Service)
      • Configuration database
      • Transaction logs
      • Audit log
      • Auditing and recovery managers (Provisioning Auditing and Recovery Service)
    • Standard providers and namespaces: MPF ships with a number of providers and named procedures that support:
      • Microsoft Active Directory
      • Execution of scripts and commands
      • Error remapping for localization and context-sensitive applications
      • Windows file system and registry
      • HTTP and SOAP requests
      • SQL Server
      • Application installation using Microsoft Windows Installer
    • API’s: contain methods used to submit requests to the provisioning framework and to develop custom providers.
  • MPF Resource Kit:


Useful Links:

“Tenant Provisioning” Screencast released

Some weeks ago, we published a screencast on Datacenter Provisioning, the process of installing in a SaaS provider datacenter, the structure needed in order to support LitwareHR‘s application.

Once this is completed, tenants will be able to start trying the application. First of all, they will have to create a tenant account at LitwareHR so they can use the application.
The process that takes care of allocating the resources that tenant will use is called "Tenant Provisioning". The screencast shows the "behind the scenes" actions of this service:

Watch the screencast here and tell us what you think here.

Buenos Aires SaaS Technight: overview

Last Friday Roberto Schatz, Ramiro Iturregui, Matias Woloski and I introduced SaaS at Buenos Aires Microsoft HQ.

Audience was mainly ISV’s, some of them already implementing SaaS ideas and looking for more guidance.

After making an introduction of the main ideas (the long tail, architecture challenges, etc.), we role played LitwareHR demo (one guy from the audience played "Contoso’s" CEO role and another one "Fabrikam’s") and we showed some "behind the scene" code details and diagrams.

After finishing, architects and developers from the audience came close to make more questions so the discussion went on.


Some feedback received by the end:

  • People who went to see what is SaaS: now have less doubts, with more information to get their organizations involved.
  • People who went to get some SaaS implementation guidance:
    • liked the xaml activation approach for dynamic business processes: many of them haven’t used WF and some said they would use LitwareHR xaml activation code as reference.
    • focused their questions on critical data isolation and dynamic business processes
    • one ISV told Matias they implemented datamodel configuration by the use of views for retrieving tenant’s entity data (like in LitwareHR), but discarded it due to performance issues. After reading the multitenant data architecture article they implemented a "separate schema" approach (each tenant data in separate tables) with a database pool.

Modern Cow Developers

Looking for blogs related to SaaS I found one of those funny post that compares software development with something else. In this case James Green‘s “cow milking” includes Scrum and SaaS. Although SaaS is not a software development methodolgy or process, is still funny:

WATERFALL:¬† 18 months ago, one cow went into the milking shead.¬† The method was sound, but you don’t need milk any more.

AGILE:¬† Only milk when necessary.¬

EXTREME PROGRAMMING:  You have two cows.  They milk each other.

TEST-DRIVEN DEVELOPMENT:  Know the bucket before milking any cows.

OPEN SOURCE:¬† I have a cow, you and some other guy from Norway milk it on weekends or whenever you have some free time.¬

CONTINUOUS INTEGRATION:  Your team of two cows checks-in to the milking sheds every day.  Everyone has access to the milk.  Everyone feels good.

SERVICE-ORIENTED ARCHITECTURE:  We agree a schema for a cow.  No one feels dependant on any breed of cow, but no one has actually seen a complete cow.

SCRUM:  There is a backlog of milk orders.  Cows decide how they are to be milked.  Every 30 days the cows, pigs and chickens agree on an amount of potentially shippable milk.  The pigs and chickens get to decide when no more milk is needed.

SaaS:¬† You don’t own the cows.¬† You rent access to them and pay for it out of OpEx.¬† Owning cows is outside of core business – you just need some milk.


Any other?

I’m it. Tagged!

I’ve been tagged by Matí­as Woloski and Julian dominguez. As part of this game, I have to reveal five things about me that most people don’t know and then pass the ball by tagging 5 more people.

1. I’m 25 years old, I live in Buenos Aires, Argentina and work for Southworks. I’m finishing my software engineering studies at the University of Buenos Aires.

2. Some sports: Being a kid, I used to play chess like a mad (I even played in some tournaments). Then I kicked the chess board and started playing tennis (also like mad). After some years of competitions I changed my tennis racquet for a couple of rowing oars: at around 15 years old I joined a rowing team and this time we rowed like mad! (training from 6 to 9 times a week). During the week we used to row at night, after school. It was one of the greatest experiences in life: a healthy mix of sport, team work, hard work and travel around the country. Now I’m not as much as a sports man but I started playing squash on a weekly basis.

3. I love traveling: if possible, every time to a different place. This planet has a lot of very diverse places, cultures, people… Followed by that motivation I visited places like Spain, Portugal, France, England, Scotland, Nederland, Germany, Austria, Switzerland, Czech Republic, Belgium, Turkey, Israel, Egypt, United States, Mexico, Chile. Since my girlfriend loves traveling as much as I do, she also joined me (or I joined her ?) traveling through Costa Rica, Colombia, Venezuela, Peru, Bolivia, Brazil…and Argentina. Still there is a lot to visit

4. I love sushi: my girlfriend shares this passion too, so some months ago we bought a rice maker and when we have some spare time we make (and eat!) our own niguiris, and makis.

5. Some sports, part II: I jumped out of an airplane once (hopefully with a parachute) and landed on a Mexican beach. Another once in a lifetime thing I did was jumping from a crane with a rope tied to my legs (some call that "bungee jumping"). A more lasting practice I enjoy a lot is snorkeling (another common thing with my girlfriend :)): when I get the chance I can be in the sea for hours…maybe because is difficult to jump from the water?


Now is my turn to tag. I pass the ball to Ezequiel Bella, Fred Chong, Marty collins, Mariano Szklanny and Jony Menasches.