<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Michel's blog</title>
    <link>http://blog.baladisoftware.net/</link>
    <description>baladisoftware.net</description>
    <language>en-us</language>
    <copyright>Michel Baladi</copyright>
    <lastBuildDate>Thu, 18 Feb 2010 19:55:59 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>michel@baladisoftware.net</managingEditor>
    <webMaster>michel@baladisoftware.net</webMaster>
    <item>
      <trackback:ping>http://blog.baladisoftware.net/Trackback.aspx?guid=fa4f78f9-0dd8-4f56-87e6-55b486e203ef</trackback:ping>
      <pingback:server>http://blog.baladisoftware.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.baladisoftware.net/PermaLink,guid,fa4f78f9-0dd8-4f56-87e6-55b486e203ef.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://blog.baladisoftware.net/CommentView,guid,fa4f78f9-0dd8-4f56-87e6-55b486e203ef.aspx</wfw:comment>
      <wfw:commentRss>http://blog.baladisoftware.net/SyndicationService.asmx/GetEntryCommentsRss?guid=fa4f78f9-0dd8-4f56-87e6-55b486e203ef</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have seen a bunch of articles and blog posts about how to register an SPN to get
Kerberos to work for IIS web sites and WCF services (hosted in IIS or self-hosted).
I have noticed that many of them are inacurate when describing the service classes
and mixes up HOST and HTTP. 
</p>
        <p>
Here’s my take on the difference and which one to use when Kerberos is used together
with load balancing (NLB, Citrix NetScaler, F5 BigIP etc): 
</p>
        <p>
          <b>Load balancing IIS where IE is the client</b>
        </p>
        <ul>
          <li>
HOST service class is registered for the machine account (i.e. “Network Service”)</li>
          <li>
HTTP service class is an alias for the HOST service class (i.e. it’s also registered
to the machine account)</li>
          <li>
Browsers such as IE use the HTTP service class for Windows authentication (SPNEGO
to get Kerberos or NTLM). Note that it uses HTTP service class for both the HTTP and
HTTPS protocols.</li>
          <li>
When load balancing the web servers, the browser will go to the VIP of the load balancer
and the load balancer will forward the request to one IIS server where the application
pool runs under a domain account (not the machine account so we can have the same
account on all IIS nodes). Therefore we must register the HTTP service class to the
account (not the HOST service class as mentioned in some articles).</li>
        </ul>
        <p>
          <b>Load balancing WCF services (hosted in IIS or “self-hosted”) on an application
server and using WCF on the client side</b>
          <br />
WCF’s app.config file on the client side contains the expected identity of the server
(i.e. servicePrincipalName=”HOST/VIP-FQDN”, servicePrincipalName=”HTTP/VIP-FQDN” or
even servicePrincipalName=”DonaldDuck/VIP-FQDN”). Whatever the client specifies as
the expected SPN, must be registered on the domain (using the SetSpn tool) for the
account that runs the service (application pool identity when hosted in IIS and service
account when hosted in a Windows Service). 
</p>
        <img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=fa4f78f9-0dd8-4f56-87e6-55b486e203ef" />
      </body>
      <title>The difference between HOST and HTTP service classes when registering a SPN</title>
      <guid isPermaLink="false">http://blog.baladisoftware.net/PermaLink,guid,fa4f78f9-0dd8-4f56-87e6-55b486e203ef.aspx</guid>
      <link>http://blog.baladisoftware.net/PermaLink,guid,fa4f78f9-0dd8-4f56-87e6-55b486e203ef.aspx</link>
      <pubDate>Thu, 18 Feb 2010 19:55:59 GMT</pubDate>
      <description>&lt;p&gt;
I have seen a bunch of articles and blog posts about how to register an SPN to get
Kerberos to work for IIS web sites and WCF services (hosted in IIS or self-hosted).
I have noticed that many of them are inacurate when describing the service classes
and mixes up HOST and HTTP. 
&lt;/p&gt;
&lt;p&gt;
Here’s my take on the difference and which one to use when Kerberos is used together
with load balancing (NLB, Citrix NetScaler, F5 BigIP etc): 
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Load balancing IIS where IE is the client&lt;/b&gt; 
&lt;ul&gt;
&lt;li&gt;
HOST service class is registered for the machine account (i.e. “Network Service”)&lt;/li&gt;
&lt;li&gt;
HTTP service class is an alias for the HOST service class (i.e. it’s also registered
to the machine account)&lt;/li&gt;
&lt;li&gt;
Browsers such as IE use the HTTP service class for Windows authentication (SPNEGO
to get Kerberos or NTLM). Note that it uses HTTP service class for both the HTTP and
HTTPS protocols.&lt;/li&gt;
&lt;li&gt;
When load balancing the web servers, the browser will go to the VIP of the load balancer
and the load balancer will forward the request to one IIS server where the application
pool runs under a domain account (not the machine account so we can have the same
account on all IIS nodes). Therefore we must register the HTTP service class to the
account (not the HOST service class as mentioned in some articles).&lt;/li&gt;
&lt;/ul&gt;
&gt;
&lt;p&gt;
&lt;b&gt;Load balancing WCF services (hosted in IIS or “self-hosted”) on an application
server and using WCF on the client side&lt;/b&gt;
&lt;br&gt;
WCF’s app.config file on the client side contains the expected identity of the server
(i.e. servicePrincipalName=”HOST/VIP-FQDN”, servicePrincipalName=”HTTP/VIP-FQDN” or
even servicePrincipalName=”DonaldDuck/VIP-FQDN”). Whatever the client specifies as
the expected SPN, must be registered on the domain (using the SetSpn tool) for the
account that runs the service (application pool identity when hosted in IIS and service
account when hosted in a Windows Service). 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=fa4f78f9-0dd8-4f56-87e6-55b486e203ef" /&gt;</description>
      <comments>http://blog.baladisoftware.net/CommentView,guid,fa4f78f9-0dd8-4f56-87e6-55b486e203ef.aspx</comments>
      <category>Kerberos</category>
    </item>
    <item>
      <trackback:ping>http://blog.baladisoftware.net/Trackback.aspx?guid=9bd3efea-1289-45a7-9c53-aff4f0e85ed5</trackback:ping>
      <pingback:server>http://blog.baladisoftware.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.baladisoftware.net/PermaLink,guid,9bd3efea-1289-45a7-9c53-aff4f0e85ed5.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://blog.baladisoftware.net/CommentView,guid,9bd3efea-1289-45a7-9c53-aff4f0e85ed5.aspx</wfw:comment>
      <wfw:commentRss>http://blog.baladisoftware.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9bd3efea-1289-45a7-9c53-aff4f0e85ed5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When generating a script from an on-premise source database to be executed against
a SQL Azure in the cloud, there are numerous issues that have to be changed either
in the source database or in the generated script. Most of these issues are mentioned
in the <a href="http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/2e72f8a8-7e25-4149-98e6-2fd6c1506159/">discussions
group</a></p>
        <p>
          <a href="http://www.version2.dk/artikel/11841-sql-som-service">René</a> had the kindness
to point me to a tool on CodePlex called the <a href="http://sqlazuremw.codeplex.com/">“SQL
Azure Migration Wizard”</a>. It’s very early alpha, but when commercial tools like <a href="http://www.red-gate.com/messageboard/viewtopic.php?t=9463">RedGate
SQL Compare not supporting SQL Azure</a> (yet?), this migration wizard is a decent
second best. You can find the tool here: http://sqlazuremw.codeplex.com/
</p>
        <p>
[Updated 18-02-2010] RedGate has released a private build of SQL Compare that I'm
currently testing out. Wanna get you hands on the bits? Apply for it <a href="http://www.red-gate.com/Azure">here</a>. 
</p>
        <p>
I tried to move a small database (50 tables, 400 stored procedures and some ASP.NET
membership tables/sprocs/views). My own database migrated very smoothely over to SQL
Azure, with the exception of non-us collations.
</p>
        <p>
In my create table scripts I have command like this “…nvarchar(x) NOT NULL COLLATE
Danish_Norwegian_CI_AS”. When SQL Azure is officially released, it’s expected to support
non-us collations, but not at the column level. For now trying to set non-us collations
will result in the following error when using string functions in stored procedures:
“Cannot resolve collation conflict between 'Latin1_General_CS_AS' and ' Danish_Norwegian_CI_AS
' in equal to operation”. For now, until SQL Azure is released, I solved this by adding
the following to the TableStatement element in the “NotSupportedByAzureFile.Config”
file: NotSupported Text="\sCOLLATE Danish_Norwegian_CI_AS\s" ReplaceWith=" " SeverityLevel="0"
ReplaceString="true" DisplayWarning="true" WarningMessage="Removed COLLATE Danish_Norwegian_CI_AS
to use database default collation"<br />
This text replacement is executed on the generated script before the script is executed
against SQL Azure. 
</p>
Here are some other issues I ran into:<br />
• Tables worked fine to a new empty database, but to an existing database I got several
errors because a column default allready existed.<br />
• Table hints with the WITH keyword is no longer supported. In the ASP.NET membership
stored procedures there a statemets like this: “…FROM dbo.aspnet_Users u(NOLOCK)”
and this must be changed to “…FROM dbo.aspnet_Users u WITH (NOLOCK)”. Sometimes the
source database has the WITH keyword and sometimes its missing, the table alias varies
and there’s 15 or so different table hints to look for. Since I’m not the sharpest
RegEx head, I fixed this in the source database instead of trying to invent a fancy
regex to fix the generated script.<br />
• Data types ‘image’ and ‘ntext’ was replaced for tables, but not for stored procedures
and since there’s no specific config section for stored procedures, I use generic
TSQL section the following to the TSQL section in the “NotSupportedByAzureFile.Config”
file:<br />
NotSupported Text="\sntext" ReplaceWith=" nvarchar(max)" SeverityLevel="0" ReplaceString="true"
DisplayWarning="true" WarningMessage="Replaced column type [ntext] with [nvarchar](max)"<br />
NotSupported Text="\simage" ReplaceWith=" varbinary(max)" SeverityLevel="0" ReplaceString="true"
DisplayWarning="true" WarningMessage="Replaced column type [image] with [varbinary](max)"<br /><img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=9bd3efea-1289-45a7-9c53-aff4f0e85ed5" /></body>
      <title>SQL Azure Migration Wizard  - first impression</title>
      <guid isPermaLink="false">http://blog.baladisoftware.net/PermaLink,guid,9bd3efea-1289-45a7-9c53-aff4f0e85ed5.aspx</guid>
      <link>http://blog.baladisoftware.net/PermaLink,guid,9bd3efea-1289-45a7-9c53-aff4f0e85ed5.aspx</link>
      <pubDate>Wed, 02 Sep 2009 19:16:17 GMT</pubDate>
      <description>&lt;p&gt;
When generating a script from an on-premise source database to be executed against
a SQL Azure in the cloud, there are numerous issues that have to be changed either
in the source database or in the generated script. Most of these issues are mentioned
in the &lt;a href='http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/2e72f8a8-7e25-4149-98e6-2fd6c1506159/'&gt;discussions
group&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href='http://www.version2.dk/artikel/11841-sql-som-service'&gt;René&lt;/a&gt; had the kindness
to point me to a tool on CodePlex called the &lt;a href='http://sqlazuremw.codeplex.com/'&gt;“SQL
Azure Migration Wizard”&lt;/a&gt;. It’s very early alpha, but when commercial tools like &lt;a href='http://www.red-gate.com/messageboard/viewtopic.php?t=9463'&gt;RedGate
SQL Compare not supporting SQL Azure&lt;/a&gt; (yet?), this migration wizard is a decent
second best. You can find the tool here: http://sqlazuremw.codeplex.com/
&lt;/p&gt;
&lt;p&gt;
[Updated 18-02-2010] RedGate has released a private build of SQL Compare that I'm
currently testing out. Wanna get you hands on the bits? Apply for it &lt;a href='http://www.red-gate.com/Azure'&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
I tried to move a small database (50 tables, 400 stored procedures and some ASP.NET
membership tables/sprocs/views). My own database migrated very smoothely over to SQL
Azure, with the exception of non-us collations.
&lt;/p&gt;
&lt;p&gt;
In my create table scripts I have command like this “…nvarchar(x) NOT NULL COLLATE
Danish_Norwegian_CI_AS”. When SQL Azure is officially released, it’s expected to support
non-us collations, but not at the column level. For now trying to set non-us collations
will result in the following error when using string functions in stored procedures:
“Cannot resolve collation conflict between 'Latin1_General_CS_AS' and ' Danish_Norwegian_CI_AS
' in equal to operation”. For now, until SQL Azure is released, I solved this by adding
the following to the TableStatement element in the “NotSupportedByAzureFile.Config”
file: NotSupported Text="\sCOLLATE Danish_Norwegian_CI_AS\s" ReplaceWith=" " SeverityLevel="0"
ReplaceString="true" DisplayWarning="true" WarningMessage="Removed COLLATE Danish_Norwegian_CI_AS
to use database default collation"&lt;br /&gt;
This text replacement is executed on the generated script before the script is executed
against SQL Azure. 
&lt;/p&gt;
Here are some other issues I ran into:&lt;br /&gt;
• Tables worked fine to a new empty database, but to an existing database I got several
errors because a column default allready existed.&lt;br /&gt;
• Table hints with the WITH keyword is no longer supported. In the ASP.NET membership
stored procedures there a statemets like this: “…FROM dbo.aspnet_Users u(NOLOCK)”
and this must be changed to “…FROM dbo.aspnet_Users u WITH (NOLOCK)”. Sometimes the
source database has the WITH keyword and sometimes its missing, the table alias varies
and there’s 15 or so different table hints to look for. Since I’m not the sharpest
RegEx head, I fixed this in the source database instead of trying to invent a fancy
regex to fix the generated script.&lt;br /&gt;
• Data types ‘image’ and ‘ntext’ was replaced for tables, but not for stored procedures
and since there’s no specific config section for stored procedures, I use generic
TSQL section the following to the TSQL section in the “NotSupportedByAzureFile.Config”
file:&lt;br /&gt;
NotSupported Text="\sntext" ReplaceWith=" nvarchar(max)" SeverityLevel="0" ReplaceString="true"
DisplayWarning="true" WarningMessage="Replaced column type [ntext] with [nvarchar](max)"&lt;br /&gt;
NotSupported Text="\simage" ReplaceWith=" varbinary(max)" SeverityLevel="0" ReplaceString="true"
DisplayWarning="true" WarningMessage="Replaced column type [image] with [varbinary](max)"&lt;br /&gt;
&lt;img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=9bd3efea-1289-45a7-9c53-aff4f0e85ed5" /&gt;</description>
      <comments>http://blog.baladisoftware.net/CommentView,guid,9bd3efea-1289-45a7-9c53-aff4f0e85ed5.aspx</comments>
      <category>Azure;S+S;SaaS</category>
    </item>
    <item>
      <trackback:ping>http://blog.baladisoftware.net/Trackback.aspx?guid=504f2fb2-5d84-48fd-ba84-8fd8197d7fa4</trackback:ping>
      <pingback:server>http://blog.baladisoftware.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.baladisoftware.net/PermaLink,guid,504f2fb2-5d84-48fd-ba84-8fd8197d7fa4.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://blog.baladisoftware.net/CommentView,guid,504f2fb2-5d84-48fd-ba84-8fd8197d7fa4.aspx</wfw:comment>
      <wfw:commentRss>http://blog.baladisoftware.net/SyndicationService.asmx/GetEntryCommentsRss?guid=504f2fb2-5d84-48fd-ba84-8fd8197d7fa4</wfw:commentRss>
      <title>Moving to  SQL Azure</title>
      <guid isPermaLink="false">http://blog.baladisoftware.net/PermaLink,guid,504f2fb2-5d84-48fd-ba84-8fd8197d7fa4.aspx</guid>
      <link>http://blog.baladisoftware.net/PermaLink,guid,504f2fb2-5d84-48fd-ba84-8fd8197d7fa4.aspx</link>
      <pubDate>Sun, 30 Aug 2009 14:31:16 GMT</pubDate>
      <description>&lt;p&gt;
&lt;b&gt;Moving to SQL Azure&lt;/b&gt; Last week I finally got the long awaited invitation for
the SQL Azure CTP. That is a real SQL server (with tables and stored procedures as
we know them) in the cloud. The featureset is limited, but This is a real SQL sever
and not the SDS ACE model, with SOAP and REST interfaces, that was announced as last
PDC and that is now being phased out. See SQL Data Services RDBMS Model for details.
With pricing starting at $9.99, no initial HW/data center cost and an option to get
“auto high availability” it can be a very attractive offering for some scenarios. 
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Code near vs. code far&lt;/b&gt; There are two models that you can work with – “code
near” og ”code far”. In the former model, you have you application an the database
in the same datacenter in the cloud, i.e. both IIS and SQL as Azure services from
MS. Without a relational SQL Azure and ”code near” i think it would be hard to move
most existing applications to Azure. With ”code far” you can run you application”on
premise” and use SQL Azure in the cloud. That’s very easy (just update the connection
string) and very slow (since its usually quite some latency between the on premise
application and the cloud based database). “Code far” makes a lot of sense for”remote
tools” (SQLCMD, Management studio on your PC working against a SQL instance in the
cloud). However I’m still to be convinced that running an on premise application against
a clod based database is a good idea. 
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Tools and scripts&lt;/b&gt; &lt;a href='http://www.red-gate.com/messageboard/viewtopic.php?t=9463#top'&gt;RedGate’s
otherwise so brilliant tools doesn’t work yet&lt;/a&gt; and only a very limited set of functions
from SQL Management Studio works, so best bet is probably SQLCMD. 
&lt;/p&gt;
&lt;p&gt;
[Updated 28-01-2010] RedGate has released a private build of SQL Compare that I'm
currently testing out. Wanna get you hands on the bits? Apply for it &lt;a href='http://www.red-gate.com/Azure'&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Since the feature set in SQL Azure is limited there are many things that can’t be
used (ROWGUID, Spatial data, index padding, ANSI NULL, ntext og image data type etc.).
This means that a SQL script genererated from Management Studio needs to be &lt;a href='http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/2e72f8a8-7e25-4149-98e6-2fd6c1506159/'&gt;&lt;&gt;“cleaned”
from non-supported SQL. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=504f2fb2-5d84-48fd-ba84-8fd8197d7fa4" /&gt;</description>
      <comments>http://blog.baladisoftware.net/CommentView,guid,504f2fb2-5d84-48fd-ba84-8fd8197d7fa4.aspx</comments>
      <category>Azure;S+S;SaaS</category>
    </item>
    <item>
      <trackback:ping>http://blog.baladisoftware.net/Trackback.aspx?guid=a458afbf-f6f4-456e-9d51-9ed62e6703ae</trackback:ping>
      <pingback:server>http://blog.baladisoftware.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.baladisoftware.net/PermaLink,guid,a458afbf-f6f4-456e-9d51-9ed62e6703ae.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://blog.baladisoftware.net/CommentView,guid,a458afbf-f6f4-456e-9d51-9ed62e6703ae.aspx</wfw:comment>
      <wfw:commentRss>http://blog.baladisoftware.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a458afbf-f6f4-456e-9d51-9ed62e6703ae</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Last week I gave a session at Microsoft’s architect forum about Software-as-a-Service
(SaaS) and Microsoft’s vision about Software+Services (S+S).
</p>
        <p>
During the first half of the session I explained what SaaS is and how it affects both
the provider and the consumer of services. I briefly covered and examplified how it
affects the business model, solutions architecture and delivery model for the provider
as well as how it affects the consumer of the services in terms of integration, security,
compliance etc.
</p>
        <p>
During the second half, I explained how service oriented architecture (SOA), SaaS,
the previous sessions about “Web 2.0”, “mash-up’s” and identity federation all adds
up to Microsoft’s’ S+S vision. 
</p>
        <p>
          <font size="2">Finally Michel explained into which key areas of the platform he sees
Microsoft are investing in order to materialize the vision.
</font>
        </p>
        <p>
The slides are available here: <a href="http://blog.baladisoftware.net/content/binary/S+S Overview - Michel Baladi - MS Architect Forum.zip">S+S
Overview - Michel Baladi - MS Architect Forum.zip (3.31 MB)</a></p>
        <img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=a458afbf-f6f4-456e-9d51-9ed62e6703ae" />
      </body>
      <title>SaaS and S+S at Architect Forum</title>
      <guid isPermaLink="false">http://blog.baladisoftware.net/PermaLink,guid,a458afbf-f6f4-456e-9d51-9ed62e6703ae.aspx</guid>
      <link>http://blog.baladisoftware.net/PermaLink,guid,a458afbf-f6f4-456e-9d51-9ed62e6703ae.aspx</link>
      <pubDate>Fri, 21 Sep 2007 07:40:38 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Last week I gave a session at Microsoft’s architect forum about Software-as-a-Service
(SaaS) and Microsoft’s vision about Software+Services (S+S).
&lt;/p&gt;
&lt;p&gt;
During the first half of the session I explained what SaaS is and how it affects both
the provider and the consumer of services. I briefly covered and examplified how it
affects the business model, solutions architecture and delivery model for the provider
as well as how it affects the consumer of the services in terms of integration, security,
compliance etc.
&lt;/p&gt;
&lt;p&gt;
During the second half, I explained how service oriented architecture (SOA), SaaS,
the previous sessions about “Web 2.0”, “mash-up’s” and identity federation all adds
up to Microsoft’s’ S+S vision. 
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;Finally Michel explained into which key areas of the platform he sees
Microsoft are investing in order to materialize the vision.
&lt;/p&gt;
&gt; 
&lt;p&gt;
The slides are available here: &lt;a href="http://blog.baladisoftware.net/content/binary/S+S Overview - Michel Baladi - MS Architect Forum.zip"&gt;S+S
Overview - Michel Baladi - MS Architect Forum.zip (3.31 MB)&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=a458afbf-f6f4-456e-9d51-9ed62e6703ae" /&gt;</description>
      <comments>http://blog.baladisoftware.net/CommentView,guid,a458afbf-f6f4-456e-9d51-9ed62e6703ae.aspx</comments>
      <category>Identity;S+S;SaaS</category>
    </item>
    <item>
      <trackback:ping>http://blog.baladisoftware.net/Trackback.aspx?guid=2a10a9a2-48e4-468a-be0c-e4859243fa78</trackback:ping>
      <pingback:server>http://blog.baladisoftware.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.baladisoftware.net/PermaLink,guid,2a10a9a2-48e4-468a-be0c-e4859243fa78.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://blog.baladisoftware.net/CommentView,guid,2a10a9a2-48e4-468a-be0c-e4859243fa78.aspx</wfw:comment>
      <wfw:commentRss>http://blog.baladisoftware.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2a10a9a2-48e4-468a-be0c-e4859243fa78</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Like the idea and want the benefits of Software-as-a-Service (SaaS)? Want to
use Microsoft Team Foundation Server for your development team but don't like the
idea of installing and operating it 24*7? 
</p>
        <p>
Now you can get Hosted TFS at <a href="http://www.tfsnow.com/">http://www.tfsnow.com/</a></p>
        <p>
As a small ISV start-up I allready subscribe for hosted Exchange from <a href="http://www.cohaesio.net/">http://www.cohaesio.net/</a>.
A brilliant way to save me the work of installing and operating AD, Exchange, OWA,
ActiveSync for my PDA etc.
</p>
        <p>
For my development projects that I mainly architect &amp; prototype but get developed
abroad, I really like the idea of not operating TFS myself. However, I'm not sure
I want to pay the $995/month just yet... Especially considering that a <strong>certified</strong> ISV
partner gets TFS <a href="http://blogs.msdn.com/robcaron/archive/2006/07/12/663619.aspx">free</a>.
</p>
        <img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=2a10a9a2-48e4-468a-be0c-e4859243fa78" />
      </body>
      <title>Team foundation Server as a Service</title>
      <guid isPermaLink="false">http://blog.baladisoftware.net/PermaLink,guid,2a10a9a2-48e4-468a-be0c-e4859243fa78.aspx</guid>
      <link>http://blog.baladisoftware.net/PermaLink,guid,2a10a9a2-48e4-468a-be0c-e4859243fa78.aspx</link>
      <pubDate>Fri, 17 Aug 2007 09:47:08 GMT</pubDate>
      <description>&lt;p&gt;
Like the idea and want the benefits of Software-as-a-Service (SaaS)?&amp;nbsp;Want to
use Microsoft Team Foundation Server for your development team but don't like the
idea of installing and operating it 24*7? 
&lt;/p&gt;
&lt;p&gt;
Now you can get&amp;nbsp;Hosted TFS at &lt;a href="http://www.tfsnow.com/"&gt;http://www.tfsnow.com/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
As a small ISV start-up I allready&amp;nbsp;subscribe for hosted Exchange from &lt;a href="http://www.cohaesio.net/"&gt;http://www.cohaesio.net/&lt;/a&gt;.
A brilliant way to save me the work of installing and operating AD, Exchange, OWA,
ActiveSync for my PDA etc.
&lt;/p&gt;
&lt;p&gt;
For my development projects&amp;nbsp;that I mainly architect &amp;amp; prototype but get developed
abroad, I really like the idea of not operating TFS myself. However, I'm not sure
I want to pay the $995/month just yet... Especially considering that a &lt;strong&gt;certified&lt;/strong&gt; ISV
partner gets TFS &lt;a href="http://blogs.msdn.com/robcaron/archive/2006/07/12/663619.aspx"&gt;free&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=2a10a9a2-48e4-468a-be0c-e4859243fa78" /&gt;</description>
      <comments>http://blog.baladisoftware.net/CommentView,guid,2a10a9a2-48e4-468a-be0c-e4859243fa78.aspx</comments>
      <category>SaaS;TFS/MSF</category>
    </item>
    <item>
      <trackback:ping>http://blog.baladisoftware.net/Trackback.aspx?guid=5df6ec3d-626b-480d-9c7b-f48747034164</trackback:ping>
      <pingback:server>http://blog.baladisoftware.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.baladisoftware.net/PermaLink,guid,5df6ec3d-626b-480d-9c7b-f48747034164.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://blog.baladisoftware.net/CommentView,guid,5df6ec3d-626b-480d-9c7b-f48747034164.aspx</wfw:comment>
      <wfw:commentRss>http://blog.baladisoftware.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5df6ec3d-626b-480d-9c7b-f48747034164</wfw:commentRss>
      <title>SHP #9: SaaS single sign-on</title>
      <guid isPermaLink="false">http://blog.baladisoftware.net/PermaLink,guid,5df6ec3d-626b-480d-9c7b-f48747034164.aspx</guid>
      <link>http://blog.baladisoftware.net/PermaLink,guid,5df6ec3d-626b-480d-9c7b-f48747034164.aspx</link>
      <pubDate>Mon, 28 May 2007 21:00:20 GMT</pubDate>
      <description>&lt;h3 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;span lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;font size=3&gt;&lt;font color=#4f81bd&gt;&lt;font face=Cambria&gt;Scenario
#6: Accessing the application with web single sign-on and federated web single sign-on&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/h3&gt;
&lt;p style="MARGIN: 10pt 0cm 0pt"&gt;
&lt;span lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;font color=#000000&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;strong&gt;Background&lt;br&gt;
&lt;/strong&gt;
&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;span lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;font color=#000000&gt;
&lt;o:p&gt;On &lt;a href="http://blogs.msdn.com/baladi/"&gt;my blog at MSDN&lt;/a&gt; I wrote a series of blog post to share my experiences and observations from a series of SaaS engagements with hosters and ISVs during the SaaS incubation effort that I led in Microsoft’s Innovation Center in Copenhagen. The last two scenarios where never finished before I left Microsoft to start my own business. I promised to deliver the last two, so here is one of them….&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 10pt 0cm 0pt"&gt;
&lt;span lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;font color=#000000&gt;
&lt;o:p&gt;
&lt;strong&gt;Why &amp;amp; who?&lt;br&gt;
&lt;/strong&gt;Until now, this series of blog posts have been talking about building, hosting,
delivering and monetizing SaaS solutions. The last piece is &lt;strong&gt;consuming&lt;/strong&gt; the
SaaS solution. In earlier posts I described the initial steps in consuming a SaaS
solution – subscribing to it. This post focus on authentication and authorization
while consuming SaaS applications. My old colleague and participant on the SHP incubation
initiative, &lt;a href="http://blogs.technet.com/sanger/"&gt;Kevin Sangwell from Microsoft
Europe&lt;/a&gt;, have addressed many aspects of enterprise SaaS consumption architecture such as (integration, composition, SLA, monitoring, governance, regulatory compliance etc) in his talks.&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img style="WIDTH: 737px; HEIGHT: 461px" height=518 src="http://blog.baladisoftware.net/content/binary/Ecosystem%20and%20architectures.png" width=923 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Most (all?) existing SaaS applications require you to type in the user name and password
of the first user/administrator of the SaaS application. This person can then create
more user accounts, roles, permissions. This is known as “delegated administration”
and allows each tenant to manage their own accounts, groups, roles etc. This is all
nice and good as long as this application is the only one. The problem is that these
users already have user accounts in his organization, already are assigned to groups
and roles and – more importantly – are part of an identity and access lifecycle strategy
and process.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Enterprises typically have processes and/or systems in place to create an account
for new employees, assign to relevant groups/roles to give access to relevant systems.
If the new employee is in sales and the CRM application is provided as a service,
the CRM application need to either integrate with the enterprise systems or duplicate
account and group/role information. If the enterprise has 100 internal applications
and one new smart must-have SaaS application, it may not seem so bad, but what if
the enterprise has 5 or 10 SaaS applications?
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
It’s easy to see that creating and maintain the user, password, group/role membership
etc 5 or 10 times quickly gets cumbersome, but what is worse is termination of employment
and regulatory compliance. What happens when the employment is terminated? How can
the enterprise de-provision the user from 5-10 different SaaS applications hosted
by different providers? And what about reporting? How can the enterprise create a
report of what a given employee has access to?&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;How?&lt;/strong&gt;
&lt;br&gt;
One solution to this problem is to duplicate and synchronize the accounts, groups
and roles between the enterprise and each SaaS provider. If all SaaS provides exposed
this information through some service API, a directory replication or meta-directory
product could help solving the issue. However, I firmly believe that &lt;strong&gt;federation&lt;/strong&gt; is
the best solution to this issue. Federation is based on open standards specification
such as &lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsfed"&gt;WS-Federation&lt;/a&gt; which
is co-written by Microsoft, IBM, BEA, Novell, VeriSign etc, under standardization
through OASIS and 20+ of the major organizations and platform companies have stated
they will support it. Microsoft supports the first part of federation (browser based
a.k.a. “passive profile”) through Active Directory Federation Services – ADFS. ADFS
is available in Windows Server 2003 R2. Support for SmartClient a.k.a. “active profile”
is planned for Windows Server “Longhorn”.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
Without federation a user at the consuming enterprise (application tenant) would authenticate
against a local directory (such as Active Directory – AD) when starting the client
machine up in the morning. After authentication, the user typically has single sign-on
to all internal systems. Through this authentication and local group membership, a
user in sales may read internal documents about products/pricing, access inventory
status, have mail &amp;amp; IM communications with colleagues to plan an upcoming campaign.
However, as soon as the employee tries to access customer &amp;amp; order information
from the SaaS CRM application a new logon is required. Then, when the employee wants
to write a news nugget about the campaign and update product/price information&amp;nbsp;
on the corporate web site through the SaaS CMS application, a third logon is required.
Now imagine an employee in HR, using HR as a Service, trying to terminate the employment
of this sales person – how many logons will the employee in HR have and how do the
account copies of the sales person get de-provisioned?
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.baladisoftware.net/content/binary/SSO-without-federation.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Image 1:&lt;/strong&gt; Conceptual sequence diagram for one consumer of three applications
on same or different SHPs without federation – no SSO!
&lt;/p&gt;
&lt;p&gt;
With federation, the accounts only exist once in an account domain. In the enterprise
scenario this could be in SaaS consumers AD. The resources, in this case the SaaS
application, exist in a resource domain at the SaaS provider. Both the SaaS consumer
and the SaaS provider expose a federation server. These servers could be Windows Server
2003 R2 servers with ADFS or any other sever OS/platform that implements the open
federation standards. Once the federation servers are in place, a “federation trust”
is established between the consumer and provider. This is a one-time set-up that involves
describing resources, describing claims and exchange of certificate public keys. This
process can be automated through the APIs described in the AFDS SDK.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Once the federation trust is established, the consumer can issue a claim, sign the
claim with its private key and pass the claim to the provider. Claims can be confusing
in the beginning, but it’s a beautiful concept. The consumer can claim anything and
the provider of the resource would accept the claim since it’s signed by someone the
provider trust. If the provider is as an analyst web site that have signed an agreement
that all the consumer employees can access their reports, the claim from the consumer
could simply be that the user indeed is an a employee. The provider wouldn’t need
any name, user name, group membership or password to accept the claim and give access
to the analyst reports. In order to greet the user and track who is downloading reports,
a user name would be useful, but I bring up this example to show that a claim doesn’t
have to include a name and definitely not a password.&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
In the example of CRM as a service, the claim could be that the user calling the CRM
SaaS application is named John Doe, is an employee of the consumer, is a sales manager
and is allowed to approve orders up to $50k. Then when John tries to use the HR as
Service, his federation server could pass a claim to the HR a service provider that
John is a full time employee in the Danish subsidiary. Finally when John tries to
use update the corporate web site through the CMS a Service, his federation server
could pass a claim to the CMS a service provider that John member is a content editor.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
The SaaS application provider can use the claim to authenticate the user as well as
to provide access to certain functions of the application based on the content of
the claim.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.baladisoftware.net/content/binary/SSO-with-federation-enterprise.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Image 2:&lt;/strong&gt; Conceptual sequence (in reality there’s a lot of redirects
going on and there are federation servers involved) diagram for SSO between a consumer
and two applications on different SHPs that both trust the consumer’s claims
&lt;/p&gt;
&lt;p&gt;
So what happens when John loses his password? A normal password reset of his local
account is enough – no SaaS providers need to know this ever happened.
&lt;/p&gt;
&lt;p&gt;
What happens with the SaaS applications when the consumer decides to implement SmartCard
logon? Nothing – the claim sent to the SaaS providers are unchanged.
&lt;/p&gt;
&lt;p&gt;
What happens when John leaves the company to go to a competitor and need to be locked
out of the on-premise intranet and extranet applications and all SaaS application
from all SaaS providers – simply delete or disable his local account which stops the
federation sever from issuing anymore claims about John.
&lt;/p&gt;
&lt;p&gt;
So from the enterprise perspective I think the benefit of federation is clear. It
should also be clear for SaaS providers that thinking of identity as islands in each
application is not acceptable for the consumers and SaaS providers must provide support
for federation in the SaaS Hosting Platform – SHP.
&lt;/p&gt;
&lt;p&gt;
During the SHP Proof of Concept we configured federation using ADFS, included support
for the SaaS provider to describe support for federation in the platform manifest,
provided support for trust setup in the application tenant provisioning sequence,
provided support for the ISV to describe the support for federation in the application
manifest and finally we made the SiteCore CMS application “claims aware”. See Lars
Nielsen’s (solutions architect at Sitecore) blog post about this &lt;a href="http://larsnielsen.blogspirit.com/tag/SaaS"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Ok, enough about the enterprise SaaS consumers. They have their IT department, their
internal directory and could set up federation trust with their SaaS providers. But
what about the small business SaaS consumers and the private SaaS consumers? A carpenter
working alone or a 5 person company signing up for three applications from different
ISVs sold through a single aggregator/store-front in a small business plan would not
be willing or capable to set up federation. However, the consumer would not expect
to create three accounts for each user and log on three times to access the applications.
For these scenarios, federation and ADFS also support a configuration (Federated Web
SSO) where the SaaS provider has both the account and the resource domain as in the
illustration below:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.baladisoftware.net/content/binary/SSO-with-federation-consumer.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Image 3:&lt;/strong&gt; Conceptual sequence (in reality there’s a lot of redirects
going on and there are federation servers involved) diagram for SSO between two applications
on the same SHP where the SHP provides the directory
&lt;/p&gt;
&lt;p&gt;
See the &lt;a href="http://technet2.microsoft.com/windowsserver/en/library/1f6e9e6e-c179-4dd2-bd1d-c74dd4ebf56b1033.mspx?mfr=true"&gt;ADFS
design guide&lt;/a&gt; for details and more information.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=5df6ec3d-626b-480d-9c7b-f48747034164" /&gt;</description>
      <comments>http://blog.baladisoftware.net/CommentView,guid,5df6ec3d-626b-480d-9c7b-f48747034164.aspx</comments>
      <category>Identity;SaaS</category>
    </item>
    <item>
      <trackback:ping>http://blog.baladisoftware.net/Trackback.aspx?guid=15ab4795-d327-4122-95c5-df9e6df442c8</trackback:ping>
      <pingback:server>http://blog.baladisoftware.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.baladisoftware.net/PermaLink,guid,15ab4795-d327-4122-95c5-df9e6df442c8.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://blog.baladisoftware.net/CommentView,guid,15ab4795-d327-4122-95c5-df9e6df442c8.aspx</wfw:comment>
      <wfw:commentRss>http://blog.baladisoftware.net/SyndicationService.asmx/GetEntryCommentsRss?guid=15ab4795-d327-4122-95c5-df9e6df442c8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <font size="2">
          <p>
This week <a href="http://blogs.technet.com/sanger">Kevin Sangwell</a> from Microsoft
Europe and myself co-delivered the Microsoft Software-as-a-Service (SaaS) Architect
Forum in Copenhagen. 
</p>
          <p>
The forum was a full day of presentations and discussions on SaaS covering four main
topics:
</p>
          <ul>
            <li>
Business and technical overview of SaaS 
</li>
            <li>
Architectural implications of building a SaaS solution 
</li>
            <li>
Operational implications of hosting and operating a SaaS solution 
</li>
            <li>
Implications for an enterprise when consuming SaaS applications.</li>
          </ul>
          <p>
Prior to starting Baladi Software, I worked as an architect and technical lead of
the Microsoft Innovation Centre and was one of the driving forces behind helping Microsoft
partners build, host and operate SaaS solutions as well as producing architectural
guidance for SaaS software vendors and hosting providers. The experience from this
work was shared with Microsoft Denmark’s customers and partners through this forum.
</p>
          <p>
My slides are attached and Kevin's deck can be found on <a href="http://blogs.technet.com/sanger/archive/2006/11/23/greece-architect-forum-software-as-a-service.aspx">his
blog</a></p>
        </font>
        <a href="http://blog.baladisoftware.net/content/binary/Michel%20Baladi%20on%20SaaS%20at%20MS%20Denmark%20Architect%20Forum%202007.zip">Michel
Baladi on SaaS at MS Denmark Architect Forum 2007.zip (1,57 MB)</a>
        <img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=15ab4795-d327-4122-95c5-df9e6df442c8" />
      </body>
      <title>Architect Forum: Software-as-a-Service</title>
      <guid isPermaLink="false">http://blog.baladisoftware.net/PermaLink,guid,15ab4795-d327-4122-95c5-df9e6df442c8.aspx</guid>
      <link>http://blog.baladisoftware.net/PermaLink,guid,15ab4795-d327-4122-95c5-df9e6df442c8.aspx</link>
      <pubDate>Fri, 11 May 2007 18:22:32 GMT</pubDate>
      <description>&lt;font size=2&gt; 
&lt;p&gt;
This week &lt;a href="http://blogs.technet.com/sanger"&gt;Kevin Sangwell&lt;/a&gt; from Microsoft
Europe and&amp;nbsp;myself co-delivered the Microsoft Software-as-a-Service (SaaS) Architect
Forum in Copenhagen. 
&lt;/p&gt;
&lt;p&gt;
The forum was a full day of presentations and discussions on SaaS covering four main
topics:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Business and technical overview of SaaS 
&lt;/li&gt;
&lt;li&gt;
Architectural implications of building a SaaS solution 
&lt;li&gt;
Operational implications of hosting and operating a SaaS solution 
&lt;li&gt;
Implications for an enterprise when consuming SaaS applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Prior to starting Baladi Software, I worked as an architect and technical lead of
the Microsoft Innovation Centre and was one of the driving forces behind helping Microsoft
partners build, host and operate SaaS solutions as well as producing architectural
guidance for SaaS software vendors and hosting providers. The experience from this
work was shared with Microsoft Denmark’s customers and partners through this forum.
&lt;/p&gt;
&lt;p&gt;
My slides are attached and Kevin's deck can be found on &lt;a href="http://blogs.technet.com/sanger/archive/2006/11/23/greece-architect-forum-software-as-a-service.aspx"&gt;his
blog&lt;/a&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;a href="http://blog.baladisoftware.net/content/binary/Michel%20Baladi%20on%20SaaS%20at%20MS%20Denmark%20Architect%20Forum%202007.zip"&gt;Michel
Baladi on SaaS at MS Denmark Architect Forum 2007.zip (1,57 MB)&lt;/a&gt;&lt;img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=15ab4795-d327-4122-95c5-df9e6df442c8" /&gt;</description>
      <comments>http://blog.baladisoftware.net/CommentView,guid,15ab4795-d327-4122-95c5-df9e6df442c8.aspx</comments>
      <category>SaaS</category>
    </item>
    <item>
      <trackback:ping>http://blog.baladisoftware.net/Trackback.aspx?guid=c3e8d153-5333-44a9-9f75-11276ea1526c</trackback:ping>
      <pingback:server>http://blog.baladisoftware.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.baladisoftware.net/PermaLink,guid,c3e8d153-5333-44a9-9f75-11276ea1526c.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://blog.baladisoftware.net/CommentView,guid,c3e8d153-5333-44a9-9f75-11276ea1526c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.baladisoftware.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c3e8d153-5333-44a9-9f75-11276ea1526c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Finally my new blog is up. It's have had a hectic time starting up a new SaaS ISV
business and my consulting business. More on that later...
</p>
        <p>
This blog will take over where <a href="http://blogs.msdn.com/baladi">my old blog
at MSDN</a> left off. I still need to shine it up a bit, but expect to see some fresh
SaaS content soon...
</p>
        <p>
I promised to finish the SaaS hosting platform series and I will deliver on that promise
- stay tuned...
</p>
        <p>
Michel Baladi<br />
michel at baladisoftware dot net
</p>
        <img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=c3e8d153-5333-44a9-9f75-11276ea1526c" />
      </body>
      <title>I'm back!</title>
      <guid isPermaLink="false">http://blog.baladisoftware.net/PermaLink,guid,c3e8d153-5333-44a9-9f75-11276ea1526c.aspx</guid>
      <link>http://blog.baladisoftware.net/PermaLink,guid,c3e8d153-5333-44a9-9f75-11276ea1526c.aspx</link>
      <pubDate>Fri, 11 May 2007 17:44:39 GMT</pubDate>
      <description>&lt;p&gt;
Finally my new blog is up. It's have had a hectic time starting up a new SaaS ISV
business and my consulting business. More on that later...
&lt;/p&gt;
&lt;p&gt;
This blog will take over where &lt;a href="http://blogs.msdn.com/baladi"&gt;my old&amp;nbsp;blog
at MSDN&lt;/a&gt; left off. I still need to shine it up a bit, but expect to see some fresh
SaaS content soon...
&lt;/p&gt;
&lt;p&gt;
I promised to finish the SaaS hosting platform series and I will deliver on that promise
- stay tuned...
&lt;/p&gt;
&lt;p&gt;
Michel Baladi&lt;br&gt;
michel at baladisoftware dot net
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.baladisoftware.net/aggbug.ashx?id=c3e8d153-5333-44a9-9f75-11276ea1526c" /&gt;</description>
      <comments>http://blog.baladisoftware.net/CommentView,guid,c3e8d153-5333-44a9-9f75-11276ea1526c.aspx</comments>
      <category>SaaS;Misc</category>
    </item>
  </channel>
</rss>
