Nov 15, 2010

The Microsoft Web Platform

"With the Microsoft Web Platform you get more than just a powerful set of tools, servers and technologies. You get a complete eco-system of products, technologies and partners all looking to help you succeed on the web"

The MSFT platform consists of the framework, the server, the database and the tools...

The Framework

ASP.NET is a free, fully supported Web application framework that helps you create standards-based Web solutions. It provides a rich set of features and easy integration with databases, web services and rich internet applications. With features such as WebForms, MVC, dynamic data scaffolding, an AJAX framework, templates and themes, hundreds of built in controls and free developer tools, ASP.NET will enable you to build Web apps better and faster

Get everything you need to start building web applications with ASP.NET using the Microsoft Web Platform Installer. This simple, streamlined installer will get your development machine ready to go. The installer includes the latest version of the .NET framework including ASP.NET. You’ll also get Visual Web Developer Express which is a full featured FREE web development editor for working with ASP.NET and other Web technologies.

The MVC value prop: Use rich server-side controls and data binding with ASP.NET WebForms or take control of your HTML and easily incorporate Test Driven Development with ASP.NET MVC. Both approaches provide full support for core ASP.NET features such as membership-based authentication and authorization, URL routing, caching, master pages and localization.

The Server
Internet Information Services 7 (IIS 7.0) in Windows Server® 2008 provides a secure, easy-to-manage, modular and extensible platform for reliably hosting Web, sites, services and applications. With IIS 7.0, you get choice and control without giving up reliability or security. Customize and add new features, such as Intelligent Media Streaming through free IIS Extensions. Maximize web security through a reduced server foot print and automatic application isolation. Easily deploy and run both ASP.NET and PHP web applications on the same server. Get it all with IIS.

Why you'll love IIS 7.0 - Easy to get. Free to use
Get everything you need to start running and hosting web applications with IIS using the Microsoft Web Platform Installer. This simple, streamlined installer will get your development or hosting machine ready to go. The installer includes the latest version of the IIS 7.0 and Extensions. In addition, you’ll get the latest components of the Microsoft Web Platform including frameworks, database and development tools. Best of all it’s all free!

From ASP.NET to PHP, IIS 7.0 provides a powerful and flexible Web server for the world’s most popular Web applications such as Umbraco, WordPress and Drupal. ASP.NET hosting is even more simple and powerful, with deep integration directly in the request processing pipeline, configuration system, and management console. Learn more about PHP on Windows.

The Database
SQL Server Express is free database software that works great with any web application framework such as PHP, and your favorite applications such as Wordpress, and Drupal. Free SQL server comes with reporting options and other expansions you're simply not going to find anywhere else. It's everything you're looking for in a database.

The Tools
Visual Studio, Expression Web and Windows Internet Explorer 8 with its built-in developer tools, provide a complete environment for building and maintaining standards-based web sites, services and applications, across multiple devices. Whether your focus is design or development, HTML or ASP.NET, the Microsoft Web Platform includes the right tools for the right task.

Nov 14, 2010

The Evolution of th LAMP Stack

LAMP is an acronym for a solution stack of free, open source software, originally coined from the first letters of Linux (operating system), Apache HTTP Server, MySQL (database software), and PHP, Python or Perl (scripting language), principal components to build a viable general purpose web server.

The exact combination of software included in a LAMP package may vary, especially with respect to the web scripting software, as PHP may be replaced or supplemented by Perl and/or Python.[2] Similar terms exist for essentially the same software suite (AMP) running on other operating systems, such as Microsoft Windows (WAMP), Mac OS (MAMP), Solaris (SAMP), or OpenBSD (OAMP).

Though the original authors of these programs did not design them all to work specifically with each other, the development philosophy and tool sets are shared and were developed in close conjunction. The software combination has become popular because it is free of cost, open-source, and therefore easily adaptable, and because of the ubiquity of its components which are bundled with most current Linux distributions.

When used together, they form a solution stack of technologies that support application servers.

The LAMP stack is widely used because it offers a great number of advantages for developers:

Easy to code: Novices can build something and get it up and running very quickly with PHP and MySQL.
Easy to deploy: Since PHP is a standard Apache module, it is easy to deploy LAMP web applications by uploading .php files to an Apache server and connecting to a MySQL database.
Develop locally: LAMP can be set up so an app can be built locally, then deployed to the Web.
Cheap and ubiquitous hosting: Many inexpensive web hosts provide PHP and MySQL services.
Linux
Main article: Linux
Linux is a Unix-like computer operating system kernel. A major emphasis of Linux development is security[citation needed], which makes it an appealing choice for a web-server application. Like the other LAMP components, Linux is free open-source software which means the source code is provided with operating system, which can be edited according to specific needs. Also, because Linux-based operating systems are Unix-like, a Linux server is more natively-compatible with other server-oriented platforms, such as Solaris and BSD, than non-Unix-like systems like Microsoft Windows.

Apache
Main article: Apache HTTP Server
Apache is a free software/open source web server, the most popular in use.[7]

MySQL
Main article: MySQL
MySQL is a multithreaded, multi-user, SQL database management system (DBMS) now owned by Oracle Corporation with more than eleven million installations.[8]

MySQL has been owned by Oracle Corporation since April 20, 2009 through the purchase of Sun Microsystems.[9][10] Sun had acquired MySQL originally on January 16, 2008.

PHP, Perl, or Python
Main articles: PHP, Perl, and Python (programming language)
PHP is a reflective programming language originally designed for producing dynamic web pages. PHP is used mainly in server-side application software. Perl and Python can be used similarly.

Windows Live Spaces - Transitioning To WordPress

At the end of September, Microsoft announced the migration of Windows Live Spaces sites to WordPress.com, which will happen over the next few months.

The 30 million people that use Windows Live Spaces will have to migrate their blogs to the WordPress.com blogging platform and they have six months to do so, before Spaces is shut down.

The old Spaces URLs will also be redirected to the new blogs, so that no visitor will get lost along the way.

WordPress is powering more than 8.5% of the web, is used on over 26 million sites, and WordPress.com is visited monthly by over 250 million people.

Wordpress.com uses load-balanced hosting at Layered Technologies and Peer1 and this month both companies saw modest increases in the number of sites using nginx (60k and 48k hostnames respectively). For the moment, Windows Live Spaces sites in the sites.live.com domain whose blogs have been moved to WordPress.com remain online redirecting users to their new location.

For example, http://mikese.mobile.spaces.live.com still exists served by Microsoft but when accessed redirects to http://mikese.wordpress.com, which is running nginx. In contrast, blogs on their own domains will result in losses for Microsoft as the DNS can simply be updated with no need for redirection. An example of a site in this category is http://ozzie.net which switched over in the middle of October; at the time it was not clear if this change from IIS on Windows to nginx on Linux was a deliberate move by Ray Ozzie as he prepared to step down as Microsoft's Chief Software Architect, though it now appears to be part of the wider Windows Live Spaces to WordPress.com migration. Since WordPress.com is served by nginx, we expect to see a continued increase in sites using nginx as the migration takes place.

Despite the changes described above, Microsoft gained 3.1M hostnames this month, mostly in the United States. The largest increases were 942k hostnames at GoDaddy and 717k hostnames at Demand Media Inc.

Public Cloud vs. Private Cloud

The lure of cloud computing is that it offers organizations some choices. Companies can add capacity required to process and analyze data, as needed. There's no doubt that cloud computing offers great cost savings and increased efficiency for any organiztion.

However, i'm often drawn into conversations with colleagues adn friends about the wisdom of deploying private vs. public clouds. First - a few definitions.

Private Cloud (Web Definition,
Web

PHP vs. ASP

If you were to make a search on the Internet on how loyalists of both PHP and ASP.net are doing almost everything by biting each other's heads off, you will realize how hot this debate actually is. The major contention is that Microsoft products are generally considered to be superior to other products, but then there are programmers that have been using PHP since ages and never once has it let them down. While there is acclaim for ASP.net being more robust and speedier, PHP fans maintain that PHP has much better support and a very easy to understand language.

As the debate between PHP and ASP.net rages on, it is important to make a frank comparison between the two languages, so that other developers who are not so strong in their opinions are not caught in the argument between the two. Here are some of the important points that distinguish the two programming languages from each other:-
(For the uninitiated, PHP stands for Hypertext Preprocessor and ASP.net stand for Active Server Pages. It helps to put things into better perspective!)

PHP is a relatively simpler language to use than ASP.net. Initially, PHP was written in the C programming language to replace a set of scripts in Perl. That is the reason why coding in PHP remains simple even today. Many developers find themselves to be more at ease with the user-friendly nature of PHP when it comes to coding. However, critics also count this advantage of PHP as a disadvantage. Some of them maintain that the language of PHP has not been updated much, and hence it is still quite archaic and even, somewhat cumbersome for coding. ASP.net, which is a relatively new development, has a lot of options when it comes to languages. Here, you can use languages such as C#, J#, C++ and VB.net. Hence, when it comes to sheer choice, ASP.net has better to offer. But PHP is no less, since it can do its task quite well, even with its minimum language tools.

PHP is has much better support for the database management system, MySQL. In fact, the very popular blogging platform, WordPress uses the formidable combination of PHP coding on MySQL for its content management system, which includes about hundreds of thousands of blog posts every single day. Another very popular and frequently updated service that uses the combination of PHP and MySQL is Wikipedia. ASP.net can also support MySQL, but PHP is unanimously hailed, by the masses and classes alike, for its great support for this database management system.

People who use both PHP and ASP.net also maintain their opinion that PHP is better for embedded support with another database management system, viz. SQLite. SQLite is described as a relational database management system and since it is contained in a C programming library, PHP can provide better support to it.

PHP has also a very good support for object oriented programming, on which whole scripting languages are being built nowadays. ASP.net also provides very capable support to OOP.


When it comes to support, PHP wins over ASP.net. The main reason for this is that PHP is open source. Hence, the support can come freely from all over the world. In most cases, PHP fixes are made instantly. Being open source also ensures that there are very few snags in PHP. While, ASP.net could take a while to make fixes. That is because it is owned by Microsoft, and it is the development team of Microsoft that will need to respond to the support query. That could take more time than the worldwide open source support that PHP is able to get. Most PHP supports can be instantly found online by doing a simple search on the Internet. Some of the providers of support for PHP are Zend, NuSphere and ThinkPHP.

» PHP can use the command line to perform many everyday activities. Some of the things that the PHP command line is useful for is for manipulating across many files and for putting files into multiple directories at once. These are just some of the important features that PHP's command line is used for.

PHP is an open source programming language, which means it is free for anyone to use. Programmers can develop PHP applications virtually at no cost, because PHP is free to use. ASP.net is not free too, but its extensions are available for free on Windows platforms, upwards of 98. Hence, ASP.net is available to Windows users when they buy it. That puts a bit of restriction in its use.

ASP.net is compiled into memory in binary code. So, when ASP.net is used for coding, it is evident that it takes much longer time to process since the codes need to be retrieved from memory. However, PHP is not compiled into memory like ASP.net is. It is interpreted at runtime. That is the reason why PHP coding leads to better speed and even efficiency. However, it must be said that both PHP and ASP.net can run at supreme speeds and efficiency when they are coded expertly.

Talking about hosting charges, both PHP and ASP.net are quite cheap to host. If you do a good deal of shopping online, you will also be able to find hosting for as little as $4. While there are several pricier hosting services out there, their charges are higher for both PHP and ASP.net. Hence, it can be said that both PHP and ASP.net are at par with each other on the hosting charges.

Since PHP is older, there are many people who claim that it is much more secure than ASP.net where coding is concerned. ASP.net is much new, and the security options may not be fully in place yet. However, many programmers will pooh-pooh at this point, because they maintain that security in coding does not depend on the language that is used, but in the way that the coding is done by the coder. Even so, there is a lot of talk on the Internet about PHP coded sites being more difficult to hack into than those done with ASP.net.

Hence, there is a lot to debate on about the worthiness of PHP over ASP.net or vice-versa. There is probably no end to it, and there never shall be. The problem mainly is that both of them are good in their own place, but people who have been staunchly using PHP for several years now – some of them for more than a decade – would certainly not like to go in for the new ASP.net. The price to be paid is quite high, i.e. learning a whole new syntax and getting used to it. That is more the reason why PHP is still so popular.

But, to ASP.net's credit it must be said that it is much more dynamic, even if the mere use of different languages are concerned. While PHP is still stuck to its scripting language days, ASP.net has broken new grounds by entering into new languages, and even developing some of its own.

Sep 20, 2010

The Cloud - as a computing platform

"the cloud" is a computing platform - it has to be managed on an ongoing basis.

Any comprehensive cloud strategy must involve a complext evauation of costs, benefits, busienss cultureal issues, risks adn coprorate and govet standards.

In future, as well-tested commercial cloud services becoem available, companies will increasingly be able to relay on these services not just for IT cost savings but also for delivering new vaue to the organization.

Companies which strive to provide cloud based services must provide customers with a simple process for monitor busienss process which live enitrely or partially in a cloud environment. An organizations computre dependent business processes need to be constalnly monitored by softward.

Cloud computing business models are essentially baesd on rental arrangements.

Compare two cost models.

Operating Expenses: Paying per month, per user for each service
Capital Infestments: paying a purchase fee plus yearly maintenance for sofware that resides within your organization.

Application Platform Interfaces (APIs) - are an important phenomenon in cloud computing. Vendors develop proprietary APIs for their own cloud computing platforms, so customers are forced to support multiple APIs. For an organization to readily build connections between it's internal data centre and teh cloud, it must use stnadardized APIs and data trrsnasformation capabillities.

Provisioning - is a term whjich refers to immediate requests which cloud computing customers make for resources.

The cloud service provider is resonsible for aintaining anagreedon level of servicesand provisions resources accordingly.

In the case of PasaS or IaaS, customersnmay need to directy requeset additional resources, becuase tin both cases they're directly managing the cloud resources instead of haing them managed by the cloud provider.

Note: One of the immediate attractions of IaaS is that a data center could move its volatile workloads into teh cloud adn pay for addtional resources on demand.

So, hardware use inteh data centre is much more efficient, when a cloud computing option exists.

The cloud itself is a service managment ploatform.Therefore, well-designed cloud service protfolio's include a taight integration of the core service managmeent capabillities and well-defined interfaces.

Biggest Problem which Organizations face when considering moving applicaton systems to the cloud isthe issue of software dependencies. The cloud uses service oriented archietecture approach (based on loosely coupled services).




Sep 19, 2010

Cloud Service Delivery Models

Infrastrucutre as a service: offers storage and compte resources that developers and IT organizations use to deliver custom business solutions.

Platform as a service: offers development envioronments ath atIT organzations can use to creatse cloud-rready business applications

Software as a service: offers purpose built business applications


Infrastructure - as a Service
This refers to teh delivery of computer hardware - including Servers, networking technology, storage and data centre space), as a service. It may also include the delivery of operating systems and virtualization technlogy to manage the resources

Customers can rent computing resources instead of buying and installing them in their own data centres. (it's typically a pay as you use model). the service may incldue dynamic scaling - (bursting up or scaling down).

Key Example - Amazon's EC2 (Elastic Cloud - IaaS)

Organizations can "rent" computing resources - to boost their data centers by renting computer hardware adn appropriate allocations os sservers, networking technloogy, sotrate an data centre space - as a service, instead of laying out the capital expenditure for the maximum amount of resources to cover their highest level of demand, they purchase computing power if and when they ned it.


Platform as a Service
teh platform provider delivers more than infrastructure. It delivers a solutions stack - integrated set of software that profides everthign a developerneeds to build an applicationf for both sofware deevelopment and runtime.

This is an evolution of Web hosting. PaaS - provies lifeecyle managment capabillitys to manage all software delovelopment stages from plannig and design to building and deployment to testinga nd maintenance.

Key benefit: customers can haev sofware development anddeployment capabillity based entirely int he cloud. No mgt or maintenance efforts are reeqired for teh infrastructure.
all aspects of software develoment exist in the cloud. From design stage to build ing adn deployment - everything lives in the cloud.

Key Caveat: PaaS offerings have proprietary elements - so customers are tied to their PaaS providers adn may face high expenses if they choose to switch.


Software as a Service
This phenomenon refers to business applicatons that are hosted by the provider and delivered as a service.


Application Service Providers and CRM applications are the most common categories of Software as a service. (key example - Salesforce.com).

Advantages: Price of the software is on a per-use baseis, adn invoves no upfront costs from teh service provdier.

initially SaaS offerngs were not implemented over the internet. For the same oof security adn reliability , these offerings woudl normally involve virtual private networks.

Management & Administration - as a factor of cloud computing models.

Cloud computing services are easy enough to explain conceptually - however in implementing cloud services, one has to integrate it into the IT operations of the organization.


Note: Becuaes cloud requires a sel=service capability, it must be edesigned to manage not just provisionoing customer reqeusts but also issues sucah as workload managment, security, meteriing, monitoring and billing services.

For cloud serivces to be safe adn effective, they must measure and monijtor performance.


What is Cloud Computing?

Cloud computing is the next state in the evolution of the internet

The cloud in cloud computing provides the means throughw hich everything from computing power to coputing infrastructure applications, business proceess to personal collaboration, can be delivered to you as a serveice, wheereve adn whenever you need.

Clouds are fluida dn can easily expanda or contract.

This elasticity of the cloud means that users can request qdditional resources aon demand anad jus ast as easily depoirvisiton or release those resources when ytey're no longer needed,.

This elasticitiy is one of the main reasons indivuduals, businesses adn IT users are moving to the cloud.


Cloud computing infrastructures maie it easier for cmpanie sto treat their computing systems as a pool of resources rather than a set of independent environments that eadh has to be managed.

4 Basic Characteristics of the Cloud.

1. Elaasticity and abillity to scale up and down
2. Self-service provisioning and automatic deprovisiioning
3. Applicaton programing interfaces (APIs)
4. Billing and metering of service usage in a pay-as-you-go model


Good cloud services must have a comprehensive approach to service management and a well-definied process for security management.

The evolution of data centre management
over time, it became easier for IT Service Providers to add hardware to the data centre rather than to focus on making the dtata centre itself, more effective. By doing so, IT ensured that critical applications woldn't run out of resources. At the same time, these companies built or bought sofaware to meet their business needs - large cmmoplex applications were built to run in large data centres, and modified to meet changing business needs.


Technlogoy advancements such as virtualization, service oriented architecture and service managment have helped address some of th e needs of companies adn their IT service providers, as they strive to manage huge adn unqieldy business software adn data centre constraints. These technolgoy enablers have helped companies become more efficient adn cost effective - however teh cloud promises to improve their abillity to leveragte what they've bought and make use of external resources, designed to be used , on deamnd.

Note: Some applications wil simply not be successful when thron up on tht ecloud - virtualize adion also ads some performance implications. A database bound application will remain data base bound, regardless of the additional compute resources beneather it.



Important beneft if cloud computing: abillity to add new instratructure capacity quicly and at lower costs. (enables companies to gain IT resources whilst saving time and money. Typical cloud service providers have economies of scale - resulting int eh ability to spread fixed costs over more customers.

Organizations can try out new aplications without having to invest int eh hardware, sofaware or networking capacity.