Book Image

Microsoft SQL Azure Enterprise Application Development

By : Jayaram Krishnaswamy
Book Image

Microsoft SQL Azure Enterprise Application Development

By: Jayaram Krishnaswamy

Overview of this book

SQL Azure is a database service in the cloud. Based on Microsoft’s Windows Azure platform, SQL Azure is well suited for web facing database applications. Are you interested in moving your business applications and data to the cloud but are not sure how to go about it? Look no further; this book covers all you ever wanted to know about taking your relational enterprise data to the cloud using SQL Azure. This book will show you how to manage SQL Azure using various tools and also guide you in developing enterprise applications and business intelligence solutions. It will take you through migration and synchronization scenarios with a variety of tools, help you in working with Microsoft technology still in incubation, and in leveraging hybrid applications that exist partially in the cloud and partially on the ground.This step-by-step tutorial begins by providing an overview of Cloud Computing, introducing you to the most significant Cloud Computing implementations. You will then learn the mechanics of signing up and obtaining an account on Microsoft Windows Azure and logging into the portal.The book then dives deep into SQL Azure, showing you how to provision a SQL Azure Server, and how to create/delete databases as well as set up Firewall rules so that you can access SQL Azure from tools/Client programs. It is then followed by details of how to access SQL Azure using Client and Server APIs.Other content includes, a comprehensive description of tools required to access SQL Azure and how to use them and how to populate and migrate SQL Azure databases using a variety of tools.Finally, the book will detail with examples, data-centric applications that leverage a mix of on-site data and Cloud based data, how to synchronize data and extend the applicability of SQL Azure data by disconnected applications on mobile media, and synchronize services for globally distributed data. After covering the topics of services which are in production, the book will then cover future developments as well as a complete update to SQL Azure at the time of writing this book.
Table of Contents (17 chapters)
Microsoft SQL Azure: Enterprise Application Development
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface

How cloud computing is implemented with examples of some major cloud computing vendors


The implementations described here are not the only ones. Lots of major events (both public and private) are happening bringing more and more players including the US Government (Read about Apps.gov here: http://www.informationweek.com/blog/main/archives/2009/11/uncle_sams_2442.html;jsessionid=UIWZYUIKFNJ1LQE1GHPSKHWATMY32JVN?queryText=app.gov), to the field as this line is written. The implementations described here are highlighted just to indicate how different the cloud offerings could be, and show the paths they have pursued.

Amazon Web Services

Amazon Web Services through its Amazon Elastic Compute Cloud (EC2) offered customers dynamically scaled computer infrastructure for running their application programs, thus offering infrastructure as a service. The term elastic came about by the ease with which the user can create, launch, and terminate the active virtual server instances used in running the programs. To be elastic there was built-in redundancy in the resources and automated scaling, which tracked the load.

Also, to cater to wide-scale adoption, there were a number of sizes the users could choose; from small instances to High-CPU extra-large instances. The applications could run on a computing platform that the customer can choose from, which can be accessed by a web service (one of many Amazon Web Services). Although, EC2 supported Linux operating system in the beginning, it rapidly added other platforms such as Open Solaris and Solaris Express Community Edition and even Windows. By adding Windows OS (2003 and 2008 Servers) it provided full support for all Microsoft applications (ASP.NET, AJAX, Silverlight, and so on) to be hosted on EC2 with data originating in SQL Server Express and SQL Server 2008 server (http://aws.amazon.com/windows/) instances. EC2 by itself had only temporary storage for data but later added Simple Storage Service (S3) and Elastic Block storage (EBS) for persisting data (http://news.cnet.com/8301-10784_3-9917948-7.html).

The 'Elasticity' of this cloud computing was further enhanced by Elastic IP, Elastic-load balancing, and a reliable monitoring service in the form of Amazon Cloud Watch. Most recently, Amazon added a relational database as a service (http://aws.amazon.com/rds/) by adding MySQL to its roster of web service offerings, accessible by simple API calls, which could work with EC2.

SalesForce.com

Force.com (Salesforce.com) has a secure, reliable, and fast cloud infrastructure spanning two continents with more than 60,000 businesses running a myriad of applications. This was a model of Software as a Service. Whereas, the keyword to describe Amazon Web Services was 'elastic', the keyword here is 'real-time'.

SalesForce.com has a multitenant architecture with tenants sharing a single copy of the program customized to their specific needs. It has an ISO 27001 security certification, which is trusted by financial and health services; reliable data centers with backup and disaster recovery plans; high scalability, real-time query optimizer, real-time status information, and real-time upgrades. The sharing model allows companies on Salesforce to communicate and share data with each other leveraging the multitenant, single core architecture. Reliability is increased with a redundant network bone.

Furthermore, Force.com (SalesForce) allows integration of almost anything with anything that includes most vendor products such as Google, Oracle, Twitter, Microsoft, and many more to mention just a few. Although it is possible to build custom applications, there is also the AppExchange, which provides hundreds of pre-built business components that can be used without reinventing the wheel. Force.com (SalesForce) also provides components for bridging with other clouds such as Amazon Web Services, Google AppEngine, and others.

For development purposes a sandbox environment is available, which can be created with a single-click. It boasts of programmable UI's, programmable logic, website development, real-time analytics, and so on. Video demos can be viewed here: http://www.salesforce.com/platform/cloud-platform/database.jsp.

Google

Google's App Engine (http://code.google.com/appengine/) Platform leverages Google's infrastructure to run Google's web applications as a Service. The configuration allows public as well as authenticated access to these resources. The tagline is "easy to build, easy to maintain, easy to scale". The Google App Engine's infrastructure handles all of the storage, distribution, replication, load balancing, and a few more. All of these activities are accessible by a simple API. The platform supports a powerful query engine as well as transactional processing support, key elements for commerce. The programming languages supported are python and java runtime but any language that uses a JVM-based interpreter or compiler (JavaScript, Ruby) can be used.

The storage of data is not in a relational database and therefore, SQL is not used but a Google Specific Query Language (GQL) is (http://code.google.com/appengine/docs/python/datastore/gqlreference.html). The nice thing about the Google model is you can get started for free with some 500MB of storage with enough bandwidth to serve a couple of million page views a month (as advertised). Even using the paid service is on pay-per-use basis. It also has an authenticating and e-mailing service as well as providing a local developmental environment.

Microsoft

Microsoft entered this area relatively late but directed a lot of its effort to branch out into this important business area very quickly and thus Microsoft Azure was born. The Microsoft Azure platform in Microsoft Data Centers spans three continents North America, Europe, and East Asia. Microsoft Azure not only makes available this humongous infrastructure but also provides its signature software products; Windows Servers; SQL Server; and components of .NET Framework. It is, therefore, both infrastructure and software as service. It is, in fact, heading towards offering its entire framework as service. Framework as a service would offer not only the extensibility of the platform for years to come but also leverages the regular enhancements made to the framework on which the Windows Azure is based. On the downside one gets locked into proprietary service.

The Azure platform is resting on three pillars, the Windows Azure Services, the SQL Azure Services, and Azure AppFabric. The Azure platform not only caters to cloud-based applications but also to applications that run on premises. Services that run part in the cloud and part on-premises are called hybrid services and the Azure Platform lends itself easily to create such services. The Azure platform is structured to be developer-friendly, and can be leveraged by desktop, web, and mobile devices using many of the programming languages such as PHP, Ruby, and so on in addition to Microsoft's VB, C#, and F#. As the software programs that work with the Azure platform are not limited to those that are Microsoft-Specific, the adaptability is much more general. As the accessibility uses Open Internet standards, clients can be on any platform. The main concerns that are being looked into are related to security and privacy as for any of the cloud offerings, however there are many ways the Windows Azure platform is made secure using encrypted transport, firewalls, and so on. Identity verification and user access based on Security Assertion Markup Language (SAML) tokens mitigate some of these concerns. However, for the hardcore control freaks Microsoft is offering the Windows Azure Appliance where security is now the user's concern.

More in-depth discussion of security is described in the following video, which is a must if you want to understand how Windows Azure security looks under the hood (http://technet.microsoft.com/en-us/edge/security-talk-windows-azure-security-a-peek-under-the-hood.aspx?query=1).

Review the case study of a late 2009 implemented business solution using Microsoft Azure components at: http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000005882.

Also review this note about small business profiting by moving to cloud, http://howto.techworld.com/sme/3211586/how-to-move-your-small-business-to-the-cloud/.

On a practical footing, the Azure Platform, its hardware and software are physically located in the various Microsoft data centers: http://news.cnet.com/8301-10805_3-10277976-75.html.

Even as the various cloud paradigms (IaaS, PaaS, and SaaS) were developing, cloud computing has evolved to produce more varied patterns. Private clouds have emerged to satisfy the special requirements of certain industries (http://cloudstoragestrategy.com/2009/03/bechtel-harnesses-the-cloud-a-case-study-in-service-delivery.html) and even Microsoft will be launching its Windows Azure Appliance to address that possible growth area.

The following table shows at a glance some of the differences between the cloud offerings by these vendors:

Feature

Amazon

Google

Microsoft

SalesForce(Force.com)

Name

AWS

GAE (Google AppEngine)

Windows Azure

Genre

Infrastructure as Service (EC2) IaaS

Application as Service

AaaS

Platform as Service

PaaS

*Future ITaaS

Software as Service SaaS

Status of business

Strong on traffic patterns and metrics

Recently added some free services for limited periods

Small to enterprise, also some free services with limited access to resources

Presently developers and small businesses

Over 60000 users (at the beginning of this writing) health care and Financial

Target

Those who are yearning for hardware resources and manage their software including programming

Free to start and pay as you go. Small to big businesses such as eBay.

Small Business but appears Enterprise end is waiting at door step

Enterprise as well as Small Business

Motivation

Derive revenue from its (AMZN) Capacity and more

Enhance revenue from Ads. Push Ads revenue idea to App Builders

Move Office, SharePoint, and .NET Framework

 

Database support

MySQL

Amazon SimpleDB

Amazon Relational Database Services

SQL Server 2008

SQL Express

Non-relational distributed data storage with query engine and transaction support

Gmail query language

SQL Azure relational data storage and Storage Service for non-relational data. Tools to migrate MySQL and MS Access are presently available and Fox Pro may be added in the future.

Force.com object-based database using APEX language.

Development Environment

Free to choose, Eclipse Platform, .NET

Full featured web-based AppEngine simulated environment on developers' computer

Windows Azure simulated sandbox environment on developers' computer with almost 90 percent of full features using Visual Studio

Single-click Sandbox for development using Eclipse IDE

Programming Language Support

Ruby, Python, or Java (jar)

Java, Python, and any language supported by JVM

.NET languages (VB,C#,F#), Ruby, Java, PHP, and Perl

Most of the programming languages

Platform

Linux/UNIX, SUSE Linux, Windows Server, or Amazon VPC.

Not very much known about hardware

Windows Server 2008

APEX code, VisualForce using traditional MVC paradigm.