Cloud9

Azure and Cloud Services, WCF, WF, Dublin, Geneva and Federated Security, Oslo

  Home  |   Contact  |   Syndication    |   Login
  14 Posts | 0 Stories | 1 Comments | 0 Trackbacks

News

Archives

Post Categories

Tuesday, September 01, 2009 #

Someone out in the ether asked a question that I have heard many times and i just shake my head.

With "Dublin" on the horizon as the future distributed application server role for Windows, does it make sense for Microsoft to call this new role "Windows BizTalk Services"? 

my answer is ...

I don't think they want to do that.
Biztalk and Dublin are different products.
Biztalk is an application integration messaging server.
Dublin is an application server.
Biztalk integrates applications. Dublin runs applications.

Someone develops a line of business application or server for example like a CRM system.
They expose functionality to itself and to the outside world by installing bits in Dublin.

If you want to integrate your CRM system with some other system.
like an ordering application that takes thousands of orders from the internet.
you don't necessarily want your endpoints exposed to such high traffic.
You can drop those messages in Biztalk and it will queue them up for you
letting your downstream app "catch up"

Biztalk is all about receiving messages and queuing them quickly
with the ability to possibly transform those messages into a structure that you can handle uniformly.
A set of canonical types of just all XML.

In application architecture they have the n-tiered design.
They separate these things for logical and physical strategies.
In one of the tiers you might do ADO.NET in another you might do ASP.NET
Both of these things do similar things if you think about it.
They take some data from the user and processes it and spits back a response.
Both use similar patterns of OO, the .NET framework etc. etc.
But they are very different animals too.
even though you can manipulate both with visual studio.

The analogy is the same in Dublin vs. Biztalk.
Even though they have similar tools and provide similar patterns and abstractions they are different.. very different tools
for different strategies.
Yes they both exist in the applications integrations space but I think Dublin exists more on the application end. To host endpoints and their application protocols and whatnot.

If im an ISV selling an enterprise application that you can plug into your SOA
its gonna need to be able to host its workflows and endpoints in a technology like dublin.

and if im a high transaction company im going to need something like Biztalk to manage interactions between all those applications.

The ISV is not going to require that I install bits into my biztalk server.
What if some companies dont have Biztalk server but something else.

Biztalk is also a very mature and complete kindof appliance.

They are totally different.

Dont be fooled by the similar looking tools and workflow and similar looking management tools.
These actually might be standard things you SHOULD have in any system that takes and input and spits out an output.

what do you think?

 


Monday, August 31, 2009 #

So lets say you want to test early development builds in a continuously integrated system.
You want to take all your developers code and execute it on a seperate box and be able to test client access to your system remotely.

Yeah you could put it up in staging on Azure but maybe you dont want to do that yet.  Maybe you just want some testers bangin away at it from some remote client.

Well right now thats kinda hard since the development fabric carries a restriction to deny request from non-localhost ips. It only accepts loopback.
Sounds like a job for the .NET 4.0 Router.

Basically the thought is that you need something local that can recast your test request originating outside of your machine to
requests that "originate from your machine" to 127.0.0.1


The way to do this is simple.  On the machine hosting windows Azure Development Fabric and your visual studio install
Install the WindowsAzurePlatform training kit.  One of the labs will guide you on how to expose WCF Services from the development fabric.
Once you are done with that create a client to your service... The Azure Dev fabric will make you point your WCF clients to the loopback address 127.0.0.1.
This is where the router comes in.
You need to install .NET 4.0.  You might also want to install Visual Studio 2010 Beta 1.
Then you want to get the .NET 40 WCF Samples.
Inside the .NET 4.0 samples theres the famous calculator service but this time with a router in front of it.
You want to change the config file to mimic what i have below.
You want to host the router locally so it can talk to 127.0.0.1 and can also expose an endpoint on 192.168.1.X or something.
Finally you want to take the Calculator client and run it outside of the VM on your host machine or even on another machine altogether.

p.s.
Dont worry Visual Studio 2010 Beta 1 and Visual Studio 2008 sp1 can run side-by-side.. its actually "encouraged".
also remember to enable the ports or just disable the firewall temporarily

Windows Azure Platform Training Kit - August Update
http://www.microsoft.com/DownLoads/details.aspx?familyid=413E88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en

Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4.0 Beta 1
http://www.microsoft.com/downloads/details.aspx?FamilyID=5aca0622-d87d-4cc9-a22c-0d58205a56b4&displaylang=en

Microsoft .NET Framework 4 Beta 1
http://www.microsoft.com/downloads/details.aspx?FamilyID=ee2118cc-51cd-46ad-ab17-af6fff7538c9&displaylang=en

Visual Studio 2010 Professional Beta 1 – Web Installer
http://www.microsoft.com/downloads/details.aspx?familyid=75CBCBCD-B0E8-40EA-ADAE-85714E8984E3&displaylang=en

Visual Studio 2010 and .NET Framework 4 Training Kit - May Preview
http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&displaylang=en


Config Files....

<WebRole name="WcfService1" enableNativeCodeExecution="false">
    <InputEndpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="81" />
    </InputEndpoints>
    <ConfigurationSettings/>
  </WebRole>

============================================
the SVC style service
============================================

<%@ ServiceHost Language="C#" Debug="true" Service="WcfService1.CalculatorService" CodeBehind="Service1.svc.cs" %>


 <system.serviceModel>
  <services>
      <service name="WcfService1.CalculatorService" behaviorConfiguration="CalculatorServiceBehavior">
        <!-- Service Endpoints -->
    <!-- ICalculator is exposed at the base address provided by host: http://localhost:8000/servicemodelsamples/service  -->
    <endpoint address="" binding="basicHttpBinding" contract="WcfService1.ICalculator"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
   </service>
  </services>
  <behaviors>
   <serviceBehaviors>
    <behavior name="CalculatorServiceBehavior">
     <serviceDebug includeExceptionDetailInFaults="True"/>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
    </behavior>
   </serviceBehaviors>
  </behaviors>
 </system.serviceModel>


============================================
THE ROUTER
============================================

  <system.serviceModel>
    <services>
      <service behaviorConfiguration="routingData" name="System.ServiceModel.Routing.RoutingService">
        <host>
          <baseAddresses>
            <add  baseAddress="http://192.168.1.101:5555/routingservice/router"/>
          </baseAddresses>
        </host>
        <endpoint address="" binding="basicHttpBinding"  name="reqReplyEndpoint"  contract="System.ServiceModel.Routing.IRequestReplyRouter" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="routingData">
          <serviceMetadata httpGetEnabled="True"/>
          <routing routingTableName="routingTable1" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <client>
      <endpoint name="CalculatorService" address="http://127.0.0.1:81/Service1.svc" binding="basicHttpBinding" contract="*" />
    </client>
    <routing>
      <filters>
        <filter name="MatchAllFilter1" filterType="MatchAll" />
      </filters>
      <routingTables>
        <table name="routingTable1">
          <entries>
            <add filterName="MatchAllFilter1" endpointName="CalculatorService" />
          </entries>
        </table>
      </routingTables>
    </routing>
  </system.serviceModel>

============================================
THE CLIENT
============================================

  <system.serviceModel>
    <client>
      <endpoint address="http://192.168.1.101:5555/routingservice/router"
                binding="basicHttpBinding"
                contract="Microsoft.Samples.ServiceModel.ICalculator" />
    </client>
  </system.serviceModel>


 


Saas vs. S+S
Saas is an architectural paradigm where a solution architecture can benefit from the economies of scale of the data and behavior of that architecture being built and hosted in the cloud by a third party in a multitenant fashion.

Software + Services is an architectural paradigm where a solution architecture can achieve some of the same economies of scale as Saas while simultaneously benefiting from the synergies and efficiencies of the data and behavior of that

architecture being partly built on premises and partly built by third parties in a multitenant fashion, as well as, partly hosted on premises and partly hosted in the cloud in a multitenant fashion.
The cloud meaning, from an application standpoint, a set of applications or services with standards based interoperable interfaces that can be easily reachable and easily composed from any platforms in any locations with an internet

connection.  The cloud also meaning, from an infrastructure standpoint, a set of connected data centers providing elastic compute, elastic storage and other enterprise SLAs for those applications or services.
Multitenant meaning application routines, data and infrastructure meant to be built and hosted in a shared manner among multiple clients of the Saas organization.
In Software + Services the degree to which solution architecture is partly hosted on premesis or in the cloud, or, the degree to which the application is built from 3rd party services or software vs. homegrown software can be anywhere

along a spectrum of totally homegrown and hosted in house with small amount of 3rd party to almost totally a Saas model except for some code running on premises or close to the consumer of that data or behavior.
The "Software" in Software + Services alludes to data and routines executed or stored as close to the consumer as possible and/or on-premise inside corporate firewall.  This could include everything from thick clients on desktops or

server software inside corporate firewalls to Silvelight web based applications to clients on roaming mobile phones.
The "Services" in Software + Services allude to data and routines running in the cloud.   The cloud meaning, from an application standpoint, a set of applications or services with standards based interoperable interfaces that can be

easily reachable and easily composed from “the Software” which is hosted on any platforms in any locations with an internet connection.  The cloud also meaning, from an infrastructure standpoint, a set of connected data centers

providing elastic compute, elastic storage capabilities and other enterprise SLAs for the “Services”.
The "+" in Software + Services is probably the most important part of the equation.  The "+" alludes to the set of technologies and architectural patterns that provide the bridge out from the domain of the "software" to the domain of

the "services" and vice versa.  There are certain challenges that must be met to achieve this connectivity which include identity projection, firewall traversal and possibly data synchronization.
Think of the "Software" and "Services" as the neutrons and electrons of the architecture.  Then the "+" would be the strong nuclear force which combine to make the sum way more than its parts.  The same way that neutrons and electrons

combine with the strong nuclear force to achieve the foundation of our reality, is the same way Software + Services will form the foundation of a global computing platform.
A smart man once said "The Network is the computer".  I think this is what he meant.

Choices organizations make for their solution architectures from Saas to anywhere on the spectrum of Software + Services affect the costs, architectural flexibility and control of the infrastructure that hosts the solution and its data

and behavior.

You can also start left or right on this spectrum depending on your scenario.  For example an organization with significant investments in on-premise software might be on the extreme left and start slowly by moving some small degree to

the right.  A start up company might start out totally on the right with all thier software assets in the cloud but slowly move degrees to the left over time.  A Saas ISV might have all the tiers of thier application hosted in the cloud

but bring some of it's power closer to the consumer by building a mesh enabled front end.


Costs of infrastructure
------------------------------------------
Saas
Saas providers like salesforce.com manage large data centers that service all of their customers. 
You gain cost savings on the capital expense of designing and provisioning a data center to support your application.
You gain cost savings on the operational expense of running and managing the lifecycle of that data center.  The costs savings here are spread across all the tenants of that data center e.g. all the clients of salesforce.com.  As

Salesforce learns more and more about how to improve their data center, from all their client experiences, those benefits are passed on to all their customers.
You gain many economies of scale.

Software + Services
Software + Services solutions leverage some of the Saas like economies of scale of cloud based infrastructure but also the computing power that is near the consumer of the application.
For example the ability to leverage the compute and storage of a mobile phone or laptop for the data and behavior of live mesh based applications.
This would provide some additional infrastructure cost savings vs. a solution entirely built and hosted in a Saas model.


Architectural flexibility of infrastructure
------------------------------------------------------------------------------------
Saas
Many Saas providers let you request additional compute and storage for your application on demand.  If you are suddenly serving double your customers from last month you can pay for extra storage capacity.
If your application runs on servers alongside partner applications behind the same firewall you can imagine easier integration scenarios.

Software + Services
Software + Services solutions leverage some of the Saas like flexibility of infrastructure I just mentioned but also some additional architectural choices like disconnected client access or integrating with other on-premise or mobile

operating system software.  This application can simultaneously leverage compose able Saas like services in the cloud for collaboration.  For example the instant message client this same application would require some compute and

routines on centralized cloud servers to route and process messages.

Control of SLAs of the infrastructure
------------------------------------------------------------------------------------
Saas
With Saas Unfortunately you lose control.  Not that losing control of the infrastructure of your data center is good or bad but a functional requirement of your solution architecture might be to have control over some SLA like the

geo-location of your servers that host your data.
Another affect of control of your SLA would be that salesforce.com might be able to guarantee .999 percent availability but you need .99999999.
Examples are flight control systems availability or a government or industry regulation that forces a health provider to keep machines that host patient data within the walls and behind the firewall of the provider organization.

Software + Services
Software + Services provide choice.  If you need control of an SLA you can have it.  You just run that part of your solution architecture on-premises and the rest you put in the cloud.
Example is NASA flight control system.  You want that system to be inside the NASA space center in control of your specialized engineers but all the data it generates you can shoot up into the cloud for heavy analysis.  You could

imagine an application that compares this archived analysis results with current real-time flight data to report deviations and anomalies.

 

Costs of the data
------------------------------------------------------------------------------------
Saas
Data must be backed up, recovered and protected.
Databases must be procured and installed.
With Saas provider you gain cost savings on the capital expense of purchasing and installing a database or designing and building a database schema and/or data warehouse.
You gain cost savings on the operational expense of managing the lifecycle of your database, backing up, recovering and protecting the data within it.  The costs savings here are spread across all the tenants of the Saas data

architecture e.g. all the clients of salesforce.com.  As Salesforce learns more and more about backup and recovery processes, or more efficient or effective data models across all their client experiences, those benefits are passed back

to all customers.

Software + Services
You may find that hosting your data in the cloud adds some overhead in terms of meeting compliance requirements.
This cost may be prohibitive or slow down your business.  You may want to host a slice of your data in house, the slice that would be costly in terms of meeting compliance.


Architectural flexibility of the data
------------------------------------------------------------------------------------
Saas
Since your data model is similar if not the same as other clients of the Saas provider many data integration scenarios are easier to achieve with partners. 
Data can be analyzed across Saas customers and aggregated results passed back to the benefit of all customers.  Mergers and acquisitions would be easier and faster to execute.  Even across different Saas providers if both Saas providers

have done integrations together before.

Software + Services
Having some of the data in the domain or location of the consumer of the data; be that on a mobile device offline or behind corporate firewalls may provide some required architectural choices.
Data stored on decentralized mobile devices can continue to work.  In addition you can take advantage of peer to peer architectures for your data that may save you from using up too much of the clouds bandwidth and more of your

consumers bandwidth.  You may have an application on a device that needs to share data across co-located devices.  Or some of that data may need to reside in house to provide decision support for a set of machines on an assembly line.

 

Control of SLAs of the data
------------------------------------------------------------------------------------
Saas
With Saas unfortunately you lose control.  Not that losing control of the SLAs around your data are good or bad but a functional requirement of your solution architecture might be to tag certain data for regulatory reasons in the

particular industry or sub industry you are in.

Software + Services
Cloud based data solutions offer high scalability but maybe not the performance you require.
Real time processing of flight data needs to happen quickly.  You may not have 1000 users but just 5 engineers that need data analyzed real-time of the last 100 gigs of data.  But the rest of the data can be archived in the cloud for

analysis by the entire staff of NASA as part of the same application.


Costs of building application features
------------------------------------------------------------------------------------
Saas
Features are already coded for you; you just ask to turn them on.  You don’t have to buy programmers to create features.
Ongoing maintenance and debugging of application features are done by a team of many programmers highly in tune with the problem domain and the benefits of fixes are spread out to every one of the Saas providers clients.
Lessons learned are baked into the system across all of the experiences with the tenants of the application.  Economies of scale on the ongoing improvement of the software are achieved.

Software + Services
Software + Services provide choice.  While leveraging the economies of scale of Saas, S+S also allows you to defined specialized routines that apply to your specific scenario.
It may cost less for you to build these specialized routines in house as your team is highly performant in the unique aspects of your business needed these specialized routines.

 

Architectural flexibility of building application features.
------------------------------------------------------------------------------------
Saas
Saas lets you easily expose functionality to partners outside of your firewall from its central perch in the sky.

Software + Services
Software + Services lets you combine the architectural benefits of connectivity in the sky with the ability to connect to legacy on premises apps or software in client machines.


Control of SLAs of building application features
------------------------------------------------------------------------------------
Saas
With Saas unfortunately you lose control.  You may want to log for auditing purpose every time an image from a radiology application is erased from a patient record.
You might have to live with the default feature set of a Saas provider that does not do this.

Software + Services
Software + Services give you back some control.  You can connect to application features in the cloud and add your own features with specialized steps as you see fit.


Tuesday, July 21, 2009 #

I recently heard a presentation from David Chappell talking about how SOA is failing in many organizations.

Below is not a summary of what he talked about but my own new thoughts on a subject I am still learning much about while listening to his presentation.....

I have to give it to David Chappell.  He has a way of bringing together concepts in a very simple and engaging way. 
At a recent architecture conference

( video http://channel9.msdn.com/posts/matthijs/David-Chappell-The-Microsoft-Application-Platform-A-perspective/  )

( slides http://www.davidchappell.com/themsapplicationplatform--aperspective--chappell.pdf   )

he contrasts long term planning vs. business strategy and how business strategy is a way of obtaining competitive differentiation through business innovation.  Business innovation being the aggregation or refactoring of a discreet set of existing organizational and 3rd party business capabilities to create a new value chain that brings something unique and desired in the market. 
Or brings it in a unique and cost effective way.

He then makes a link between business strategy and application platforms and how most business strategy ( and business capabilities ) are supported by software.  Custom software that runs on these platforms. 
Since these business strategies are supported by software, the software platform you choose will be a very important factor for how well your business strategies succeed and how cheaply ( in
time, money and resources ) they fail ( if you can even try them at all ). 

 

 

 

The custom software we build that drives innovative business strategies face the challenges of:
Time to market, capital and operational costs, the ability for those costs to be flexible in the face of rise and fall of demand for your innovation and how
quickly you find out your idea will "fail or scale".

In explaining these concepts Chappell strongly positions Microsoft's integrated software + services platform offering against competitors platforms from Google, Amazon, Oracle, and IBM.

He then makes a slight detour into the land of why SOA is Dead.

We know that SOA = building services to front your organizations software assets.  The purpose of this is to have at your disposal a unified development platform for your business to build new applications to quickly build answers to changing market conditions.  This is the famous "business agility" promised by SOA.

Mr. Chappell seems to imply that this is in the domain of long term planning and not business strategy.

It is a business strategy for Microsoft or Amazon to standardize everything and essentially become a platform that others can use.  In Microsoft's case they are in the business of creating platforms.  In Amazons they had the specific need to get more out of all the idle CPU power in their data centers.

Creating a SOA or business platform is not your business strategy.
You are probably not in the business of creating business platforms specific to your business ( unless you are ).
You probably ARE in the business of bringing a chain of discreet business capabilities to the market to be consumed.  Some of these capabilities will be an amalgamation of other discreet
capabilities internally and through your partners in a value chain.  And yes all these capabilities would indeed benefit from having standardized web service interfaces and SOI in between.

The problem is that SOA tries to do all this for you ( and then some ) ahead of time.

One of the many problems with this approach is that every service has a cost to building and maintaining it.  There is no incentive for the owners/builders of this service to care and feed it unless they, as a business unit, are getting paid for the cost of running it.  or put another way... unless they are explicitly part of a value chain.
What incentive do they have of taking on more "customers"?

And how can you efficiently determine the shape and scope of the service(s) that a particular software asset should expose?
Chappell points out that ISV's can do this with their software because they deal with many different client scenarios and have explicit feedback from those experience on how to best shape and
scope the interfaces.
Now, not only are you NOT getting paid from your "customers" but you dont know who your customers are and what they will need.
You are essentially just providing services for "the good of the company".

Chappell told a funny story about how, during the three years he spent explaining SOA to companies, one audience member got up and said "That's socialism!!!"
He says SOA is not architecture it's altruism.
Service Oriented Altruism?

I say what about BOA, Business Oriented Architecture?...  ( chuckle )

Business Oriented Architecture.... where an application platform and architectural paradigm are chosen on demand at the moment when the evolution of the platforms, the architectural paradigms

and the business drivers align to allow for business strategy innovation?

You might have a great business idea, but the software that drives it costs too much or the capabilities don't exist yet.
You might have a wonderful platform and great and powerful potentially reusable software assets but no business idea.
You might have all that in 19xx but Object Oriented doesn't exist yet.

Business Strategy driven by software seems to the cross connect of these three things.
The planets aligning so to speak.

Currently the state of the art of our platforms more or less allow us to expose functionality from our software assets as standardized webservice interfaces that we can chain together where that chain can flexibly live and breath across organizational walls and I.T. walls ( firewalls, security domains, heterogeneous Server and Client OSs etc..).
The driving forces behind the creation of these platforms are lowering costs but what allows them to happen are Standardization ( WS*, HL7, REST.. etc.. ) and Utility computing.

At the end of Chappells session he contrasts how the Microsoft platform compares with its on-premises and cloud competitors.
Below are a visual representation from his slides ( http://www.davidchappell.com/themsapplicationplatform--aperspective--chappell.pdf  ) of Microsoft's Business Oriented Architecture platform
or Software + Services vs. competitors on-premises + cloud stacks.
( J2EE not here but mentioned as "fragmented" ).

Conclusion...
[long sentence coming]
Microsoft's Azure Services Platform + current offerings is an integrated stack providing the application foundation, infrastructure and application services across cloud and onpremises scenarios with development tools that reuse existing developer skillsets to execute on demand business strategy initiatives based on the principles of Business Oriented Architecture.

 

 
 
 
 

Wednesday, February 18, 2009 #

Saas vs. S+S
Saas is an architectural paradigm where a solution architecture can benefit from the economies of scale of the data and behavior of that architecture being built and hosted in the cloud by a third party in a multitenant fashion.

Software + Services is an architectural paradigm where a solution architecture can achieve some of the same economies of scale as Saas while simultaneously benefiting from the synergies and efficiencies of the data and behavior of that

architecture being partly built on premises and partly built by third parties in a multitenant fashion, as well as, partly hosted on premises and partly hosted in the cloud in a multitenant fashion.
The cloud meaning, from an application standpoint, a set of applications or services with standards based interoperable interfaces that can be easily reachable and easily composed from any platforms in any locations with an internet

connection.  The cloud also meaning, from an infrastructure standpoint, a set of connected data centers providing elastic compute, elastic storage and other enterprise SLAs for those applications or services.
Multitenant meaning application routines, data and infrastructure meant to be built and hosted in a shared manner among multiple clients of the Saas organization.
In Software + Services the degree to which solution architecture is partly hosted on premesis or in the cloud, or, the degree to which the application is built from 3rd party services or software vs. homegrown software can be anywhere

along a spectrum of totally homegrown and hosted in house with small amount of 3rd party to almost totally a Saas model except for some code running on premises or close to the consumer of that data or behavior.
The "Software" in Software + Services alludes to data and routines executed or stored as close to the consumer as possible and/or on-premise inside corporate firewall.  This could include everything from thick clients on desktops or

server software inside corporate firewalls to Silvelight web based applications to clients on roaming mobile phones.
The "Services" in Software + Services allude to data and routines running in the cloud.   The cloud meaning, from an application standpoint, a set of applications or services with standards based interoperable interfaces that can be

easily reachable and easily composed from “the Software” which is hosted on any platforms in any locations with an internet connection.  The cloud also meaning, from an infrastructure standpoint, a set of connected data centers

providing elastic compute, elastic storage capabilities and other enterprise SLAs for the “Services”.
The "+" in Software + Services is probably the most important part of the equation.  The "+" alludes to the set of technologies and architectural patterns that provide the bridge out from the domain of the "software" to the domain of

the "services" and vice versa.  There are certain challenges that must be met to achieve this connectivity which include identity projection, firewall traversal and possibly data synchronization.
Think of the "Software" and "Services" as the neutrons and electrons of the architecture.  Then the "+" would be the strong nuclear force which combine to make the sum way more than its parts.  The same way that neutrons and electrons

combine with the strong nuclear force to achieve the foundation of our reality, is the same way Software + Services will form the foundation of a global computing platform.
A smart man once said "The Network is the computer".  I think this is what he meant.

Choices organizations make for their solution architectures from Saas to anywhere on the spectrum of Software + Services affect the costs, architectural flexibility and control of the infrastructure that hosts the solution and its data

and behavior.

You can also start left or right on this spectrum depending on your scenario.  For example an organization with significant investments in on-premise software might be on the extreme left and start slowly by moving some small degree to

the right.  A start up company might start out totally on the right with all thier software assets in the cloud but slowly move degrees to the left over time.  A Saas ISV might have all the tiers of thier application hosted in the cloud

but bring some of it's power closer to the consumer by building a mesh enabled front end.


Costs of infrastructure
------------------------------------------
Saas
Saas providers like salesforce.com manage large data centers that service all of their customers. 
You gain cost savings on the capital expense of designing and provisioning a data center to support your application.
You gain cost savings on the operational expense of running and managing the lifecycle of that data center.  The costs savings here are spread across all the tenants of that data center e.g. all the clients of salesforce.com.  As

Salesforce learns more and more about how to improve their data center, from all their client experiences, those benefits are passed on to all their customers.
You gain many economies of scale.

Software + Services
Software + Services solutions leverage some of the Saas like economies of scale of cloud based infrastructure but also the computing power that is near the consumer of the application.
For example the ability to leverage the compute and storage of a mobile phone or laptop for the data and behavior of live mesh based applications.
This would provide some additional infrastructure cost savings vs. a solution entirely built and hosted in a Saas model.


Architectural flexibility of infrastructure
------------------------------------------------------------------------------------
Saas
Many Saas providers let you request additional compute and storage for your application on demand.  If you are suddenly serving double your customers from last month you can pay for extra storage capacity.
If your application runs on servers alongside partner applications behind the same firewall you can imagine easier integration scenarios.

Software + Services
Software + Services solutions leverage some of the Saas like flexibility of infrastructure I just mentioned but also some additional architectural choices like disconnected client access or integrating with other on-premise or mobile

operating system software.  This application can simultaneously leverage compose able Saas like services in the cloud for collaboration.  For example the instant message client this same application would require some compute and

routines on centralized cloud servers to route and process messages.

Control of SLAs of the infrastructure
------------------------------------------------------------------------------------
Saas
With Saas Unfortunately you lose control.  Not that losing control of the infrastructure of your data center is good or bad but a functional requirement of your solution architecture might be to have control over some SLA like the

geo-location of your servers that host your data.
Another affect of control of your SLA would be that salesforce.com might be able to guarantee .999 percent availability but you need .99999999.
Examples are flight control systems availability or a government or industry regulation that forces a health provider to keep machines that host patient data within the walls and behind the firewall of the provider organization.

Software + Services
Software + Services provide choice.  If you need control of an SLA you can have it.  You just run that part of your solution architecture on-premises and the rest you put in the cloud.
Example is NASA flight control system.  You want that system to be inside the NASA space center in control of your specialized engineers but all the data it generates you can shoot up into the cloud for heavy analysis.  You could

imagine an application that compares this archived analysis results with current real-time flight data to report deviations and anomalies.



Costs of the data
------------------------------------------------------------------------------------
Saas
Data must be backed up, recovered and protected.
Databases must be procured and installed.
With Saas provider you gain cost savings on the capital expense of purchasing and installing a database or designing and building a database schema and/or data warehouse.
You gain cost savings on the operational expense of managing the lifecycle of your database, backing up, recovering and protecting the data within it.  The costs savings here are spread across all the tenants of the Saas data

architecture e.g. all the clients of salesforce.com.  As Salesforce learns more and more about backup and recovery processes, or more efficient or effective data models across all their client experiences, those benefits are passed back

to all customers.

Software + Services
You may find that hosting your data in the cloud adds some overhead in terms of meeting compliance requirements.
This cost may be prohibitive or slow down your business.  You may want to host a slice of your data in house, the slice that would be costly in terms of meeting compliance.


Architectural flexibility of the data
------------------------------------------------------------------------------------
Saas
Since your data model is similar if not the same as other clients of the Saas provider many data integration scenarios are easier to achieve with partners. 
Data can be analyzed across Saas customers and aggregated results passed back to the benefit of all customers.  Mergers and acquisitions would be easier and faster to execute.  Even across different Saas providers if both Saas providers

have done integrations together before.

Software + Services
Having some of the data in the domain or location of the consumer of the data; be that on a mobile device offline or behind corporate firewalls may provide some required architectural choices.
Data stored on decentralized mobile devices can continue to work.  In addition you can take advantage of peer to peer architectures for your data that may save you from using up too much of the clouds bandwidth and more of your

consumers bandwidth.  You may have an application on a device that needs to share data across co-located devices.  Or some of that data may need to reside in house to provide decision support for a set of machines on an assembly line.



Control of SLAs of the data
------------------------------------------------------------------------------------
Saas
With Saas unfortunately you lose control.  Not that losing control of the SLAs around your data are good or bad but a functional requirement of your solution architecture might be to tag certain data for regulatory reasons in the

particular industry or sub industry you are in.

Software + Services
Cloud based data solutions offer high scalability but maybe not the performance you require.
Real time processing of flight data needs to happen quickly.  You may not have 1000 users but just 5 engineers that need data analyzed real-time of the last 100 gigs of data.  But the rest of the data can be archived in the cloud for

analysis by the entire staff of NASA as part of the same application.


Costs of building application features
------------------------------------------------------------------------------------
Saas
Features are already coded for you; you just ask to turn them on.  You don’t have to buy programmers to create features.
Ongoing maintenance and debugging of application features are done by a team of many programmers highly in tune with the problem domain and the benefits of fixes are spread out to every one of the Saas providers clients.
Lessons learned are baked into the system across all of the experiences with the tenants of the application.  Economies of scale on the ongoing improvement of the software are achieved.

Software + Services
Software + Services provide choice.  While leveraging the economies of scale of Saas, S+S also allows you to defined specialized routines that apply to your specific scenario.
It may cost less for you to build these specialized routines in house as your team is highly performant in the unique aspects of your business needed these specialized routines.



Architectural flexibility of building application features.
------------------------------------------------------------------------------------
Saas
Saas lets you easily expose functionality to partners outside of your firewall from its central perch in the sky.

Software + Services
Software + Services lets you combine the architectural benefits of connectivity in the sky with the ability to connect to legacy on premises apps or software in client machines.


Control of SLAs of building application features
------------------------------------------------------------------------------------
Saas
With Saas unfortunately you lose control.  You may want to log for auditing purpose every time an image from a radiology application is erased from a patient record.
You might have to live with the default feature set of a Saas provider that does not do this.

Software + Services
Software + Services give you back some control.  You can connect to application features in the cloud and add your own features with specialized steps as you see fit.

Friday, February 13, 2009 #



If you deploy 10 instances of a web role. e.g. your website on 10 servers
for scale and availability purposes.
You wouldnt want to put all ten on one rack just in case that rack gets hosed.
You'd want to follow some best practice and maybe host them across two racks.
5 on one rack in location X and 5 on another rack in location Y.
If one server goes down on the rack in location Y you are good, theres 4 others still working and the Azure fabric will bring up the 5th as soon as it can.
If the whole rack goes down, you're still good, the Azure fabric will fire up instances of your website on another rack in another location.

But what if you want to update your site or update the operating system with patches etc...
where do you start upgrading?
you dont want to upgrade all the servers in location X because what if location Y goes down... your customers will start getting web site not available errors.

maybe you start upgrading the 4th and 5th one in each location.
so during the upgrade process youll always have at least 8 servers across both your racks.
if while you are doing this upgrade location Y goes down again... you still have the other 3 servers on in location X to limp along with
until Azure gets location Y up again and then you can continue your upgrade process 2 at a time across both locations.

these strategies are Orthogonal and help you keep those availability numbers high.

You might say to yourself... ohhh no. I can't afford to ever have only 3 servers servicing my clients.
Thats when the elasticity of the cloud comes into play. You could dyanamically upgrade momentarily to enough servers
that will still give you 10 live servers servicing requests even if you lose a rack AND are doing a rolling upgrade.

How much money would you have to spend to address that scenario?
Money for machines you dont need until that moment.
Money for smart systems administrators who can execute that strategy.
Money lost if you get it wrong.
Staying late at working trying to figure out some weird error that happened during the process.

Nahhh man I'd rather go home and have a nice dinner with the wife.

Save yourself some dough and some grey hairs and start learning how to use the cloud today :).

Since All the APIs for Windows Azure storage, queues for communication are all RESTful endpoints.

I thought this might be a good book…

 

http://search.barnesandnoble.com/RESTfulNET/Jon-Flanders/e/9780596519209

 

I don’t have a review, just started reading but……

 

From BN.com…

“Flanders, begins by introducing the basic concepts of REST. Next, the author introduces the WCF channel and programming models. Then, he
introduces you to the WebGetAttribute, which is the mechanism for building resources that return read-only representations. He continues by examining the special considerations for hosting this type of endpoint. Next, the author shows you how to build and consume feeds using the WCF feed programming model. Then, he examines WCF 3.5's ability to return data as XML- or JSON-encoded results, as well as the integration between WCF and
ASP.NET Ajax. The author continues by examining the WCF settings for
enabling security and for creating an endpoint that is highly secure. Next,
he focuses on both stateless and stateful workflow models for implementing
RESTful services. He continues by taking a look at Restful service, SQL
Server Data Services, and decompose it into a WCF service contract that can
invoke the service through the WCF programming model. Finally, the author
looks at a couple of slightly more advanced HTTP features and how to use
them with your RESTful services in WCF.”


Thursday, February 19, 2009
Silverlight Outside The Browser: Live Framework & Mesh Enabled Applications


Subject:  You must register at https://www.clicktoattend.com/invitation.aspx?code=134698 in order to be admitted to the building and attend.

Live Framework has arrived to provide a uniform way for programming Live Services. While this in itself is an exciting story it really doesn't end there. Within Live Framework exists the ability to create Mesh Enabled applications that span Web, PC and eventually Mobile Devices (with Silverlight making it all possible). Come to this session to get a great introduction to Live Framework and learn more about Mesh Applications

Speaker:  Dmitry Lyalin, Microsoft Consulting Services

Dmitry Lyalin's day-to-day job involves helping customers implement technology solutions using Microsoft frameworks and products. In his spare time Dmitry is a speaker at various technology events with a passion for Cloud computing and Silverlight. For more information see his blog at http://www.lyalin.com/blog.

Date:  Thursday, February 19, 2009

Time:  Reception 6:00 PM , Program 6:15 PM

Location:   Microsoft , 1290 Avenue of the Americas (the AXA building - bet. 51st/52nd Sts.) , 6th floor
Directions: B/D/F/V to 47th-50th Sts./Rockefeller Ctr
1 to 50th St./Bway
N/R/W to 49th St./7th Ave.

Thursday, February 12, 2009 #

The NYC Azure Cloud Computing Group meets again February 23, 2009

Microsoft, 1290 Avenue of the Americas, 6th floor, NYC, NY
6:00 - 8:00 pm

http://www.clicktoattend.com/?id=135745


BE SURE TO REGISTER...
Space fills up fast and
Building Security Requires it.


This month...

Chris Rolon, Architectural Consultant Neudesic LLC will be presenting on...

Azure Cloud Storage

When trying to build services that are highly scalable, durable and always available, the storage of data is critical. In this session we will begin to dig deeper into Azure. We will start by examining Azure's file system otherwise known as Cloud Storage. We will discuss Cloud Storage’s ability to store both structured and unstructured data by using blobs. In addition, we will discuss building backend services and the ability of Azure to queue work to be processed by backend services using queued storage.


The NYC Azure Cloud Computing User Group meets every 4th Monday of the month on topics ranging the breathd and depth of Microsoft's new software + service cloud platform. This platform has the most amazing development experience and reuses your existing skills sets

Future topics will include:


Azure - Cloud Storage
Live Services - Live ID
SQL Services - SDS basics (ACE, Explorer)
.NET Services - service bus
Azure - Application Model / Roles
Live Services - mesh
SQL Services - entities, queries & LINQ
.NET Services - access control
Live Services - sync across devices
SQL Services - sync
.NET Services - workflow
Azure - App Health Monitoring


contact

Juan Suero juan[dot]suero[at]neudesic[dot]com
Bill Zack wzack[at]microsoft[dot]com
Chris Rolon chris[at]neudesic[dot]com

for more info


 

get it here...

http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en

The Azure Services Training Kit includes a comprehensive set of technical content including hands-on labs, presentations, and demos that are designed to help you learn how to use the Azure Services Platform. The February release includes the following updates:

19 demo scripts that walkthrough several of the services
10 presentations covering the entire Azure Services Platform
3 additional hands-on labs for Live Services


This technical content covers services including: Windows Azure, .NET Services, SQL Services, and Live Services.


Updated: Added speaker notes to the PowerPoint presentations.