Open Windows Azure Application Management and Scaling core module (OWAAMSCore)






OWAAMSCore, version 1.0.0


OWAAMSCore is a free .NET library designed for automatic management and scaling of the Windows Azure applications.

Windows Azure applications management and scaling are performed through the specialized .NET classes (OWAAMSJobs) defined in the OWAAMSCore assembly.

OWAAMSCore includes OWAAMSJobs to perform the following operations with the Windows Azure applications:

creating/updating/deleting the Windows Azure hosted services;
creating/upgrading/deleting the Windows Azure deployments;
increasing/decreasing instances count of the Windows Azure deployment roles.

All supported OWAAMSJobs are described in the POSOlSoft.Azure.OWAAMS.Core.chm file. (See abstract classes nested in the BaseJob class. Corresponding non-abstract classes are contained in the AsyncJob and SyncJob classes.)

OWAAMSCore provides means to run two kinds of OWAAMSJobs:

instant OWAAMSJobs are executed immediately as OWAAMSJobs processing starts;
future OWAAMSJobs are executed at a certain time in the future.

OWAAMS plugins

Which OWAAMSJobs to use and when to execute them completely depends on OWAAMS plugins.

OWAAMSCore communicates with OWAAMS plugins by means of Managed Extensibility Framework (MEF). Any number of OWAAMS plugins may be used by OWAAMSCore simultaneously.

OWAAMSCore interacts with OWAAMS plugins in the following fashion:

OWAAMSCore initializes OWAAMS plugins and in return gets information whether there are instant and/or future OWAAMSJobs;
OWAAMSCore asks OWAAMS plugins for instant OWAAMSJobs (if any) and executes them immediately;
if there are future OWAAMSJobs, OWAAMSCore starts internal timer with which periodically asks OWAAMS plugins for future OWAAMSJobs and executes them.

So OWAAMSCore's logic about which OWAAMSJobs to use and when may be changed or extended by providing custom OWAAMS plugins. Custom OWAAMS plugin may contain any desired logic to provide OWAAMSJobs to OWAAMSCore to execute.

For example, OWAAMS plugin may check some system metrics (performance counters,
diagnostic data, etc.), may communicate with applications it want to manage to get performance data (number of users, processor load, memory usage, etc.). Based on this information OWAAMS plugin may decide which OWAAMSJobs to use and when.

To be used by OWAAMSCore custom OWAAMS plugin must implement IOWAAMSPlugin interface defined in the OWAAMSCore assembly (see POSOlSoft.Azure.OWAAMS.Core.chm) and export this interface in accordance with the MEF requirements.

[Export( typeof( IOWAAMSPlugin ) )]
public class SimpleSchedulePlugin : IOWAAMSPlugin

Custom OWAAMS plugin must be placed in the directory where POSOlSoft.Azure.OWAAMS.Core.dll resides. Plugin's configuration is provided through appropriate sub element of the
<Plugins> element of the OWAAMSCore configuration. Everything else will be done by MEF.

Free OWAAMS plugin SimpleSchedulePlugin provides an opportunity to run OWAAMSJobs (i) instantly, (ii) once at specified time or (iii) periodically without any additional decision logic.


All OWAAMSCore settings are provided through the .xml configuration file.

If OWAAMSCore is used locally, then name of this file must be defined as a custom application setting in the
<appSettings> section of the application configuration file under OWAAMSConfig key.

  <add key="OWAAMSConfig" value="OWAAMSConfig.xml"/>

If OWAAMSCore is used in the Windows Azure environment (either in the cloud or emulated), then name of this file must be defined as a value of the OWAAMSConfig string setting of the Windows Azure role's properties.

Format and contents of the OWAAMSCore configuration file are described
in the OWAAMSCoreConfig.xps file.


OWAAMSCore requires Windows Azure SDK for .NET 1.6 November 2011. So if used locally (not in the Windows Azure environment), it needs at least Windows 7 to run.

OWAAMSCore uses Windows Azure Service Management REST API to execute OWAAMSJobs. So it requires that the management certificate is associated with the Windows Azure Subscription containing managed applications.

If OWAAMSCore is used locally, then the same certificate must be installed locally under the current user or local machine certificate store.

If OWAAMSCore is used in the Windows Azure environment, then the same certificate must be added to the Certificates folder of the Hosted Service containing deployment that uses OWAAMSCore.


OWAAMSConsole project contains working example of local OWAAMSCore usage.
OWAAMSWorker project contains working example of OWAAMSCore usage under the Windows Azure environment.


All dates/times written to log by OWAAMSCore are expressed as the Coordinated Universal Time (UTC).

Download OWAAMSCore, version 1.0.0


20 Aug 2012: v. 1.0.0
+ first public release