Showing posts with label Explanation. Show all posts
Showing posts with label Explanation. Show all posts

Friday, July 1, 2011

What is Cloud Computing

I hear the term, "cloud computing" used in a lot of different ways. I think at this point, cloud computing is just a broad marketing term or buzz word that different tech services can throw around to mean whatever they want. It's really similar to how the term 4G doesn't have to follow any technical specification anymore. AT&T, Verizon, and T-Mobile can create whatever technology they want and brand it as 4G. Just like any company can create any service and call it cloud computing.  I don't have any problem with these terms being thrown around like this except that it can sometimes be confusing. Check out these Windows 7 commercials to see what I mean:




To me, commercials like these talk about these neat features while saying the word, “cloud,” but don't really pinpoint the connection between the feature, and what cloud computing is. So here is my attempt at a basic definition.

Cloud computing can be categorized into three basic functions. It can probably be further split into more specialized uses but I don't think the differences beyond these categories are important.

Infrastucture as a Service (IaaS) – The first category is IaaS. In the Academic world, many professions need the power of massive super computers to analyze large sets of data, or run complex simulations. In the past, this meant that every researcher had to solve this problem individually.

For example, say I had a company that was interested in researching tornado path prediction methods. One of my employees wants to look at every single recorded tornado in the U.S. And check if there are any correlations between tornado path, temperature, ground slope, wind speeds, humidity, and hundreds of other variables. The only way I can run through the millions of possibilities and check for patterns is with the help of a super computer.

In the past, a company like this may not have the money to purchase expensive super computers, and hire technical staff to maintain and troubleshoot any problems that occur. However IaaS means that a cloud provider already has this equipment and wants to rent it out as a service to people like me. IaaS is renting computing time on high quality hardware so you don't have to buy and maintain it yourself. One such service is Amazon's EC2 service allowing you to rent its computing power by clock speed, bandwith, or time. This means I no longer need to worry about purchasing, installing and maintaining new equipment, or sinking money into something I may not need a month from now. All I have to do is pass the simulation and data to my new army of rented super computers and wait for the results.

Platform as a Service (PaaS) – Platform as a Service is a way of giving the developer somewhere to host his software. Time for another example. Lets say I'm starting a new online gaming company. I'll have to buy some servers and networking equipment to host my software on the internet where customers can find and play the games I create.

The problem I've encountered is I have no way of knowing how much traffic I'm going to receive, which in turn gives me no clue as to how much servers I'll need to start off with. Overestimating my traffic could leave my company in debt with no way to pay off the huge server farm I just built. Underestimating the amount of traffic would be even worse. My games wouldn't be able to reach anyone at all if my equipment is overwhelmed. Even if I somehow do manage to guess the correct amount of equipment to buy at first, I'll need to throw it out and move to larger and more powerful equipment once my company starts to grow. PaaS allows me to just give my software to a provider, and pay for the actual traffic I receive with no guesswork or upgrading involved. Just pay as you go.

Software as a Service (SaaS) – This one is the category that most consumers are concerned with. All this means is that someone somewhere has built a service and can offer you any amount of features through some type of data connection. For example, dropbox gives me access to my files anywhere I have a data connection, the Amazon music locker gives me access to my music from any internet connected device, or I can collaborate on a document from remote locations on something like google wave.   

Sunday, February 27, 2011

What is Web Camp?

Web Camp is a Microsoft hosted web development coding camp with presentations on current Microsoft technologies and coding practices. They offer one and two day camps which cover different topics from HTML5 to WebMatrix. The topics for the web camp I attended were ASP.NET MVC3, and the jQuery javascript library. You can check for locations and topics for upcoming web camps here.

Preperation – After registering for the event, there are several things you can do prior to the actual camp in preperation. The first thing to do is install Visual Studio Web Dev Express, and Web Matrix from the Web Platform Installer found here. Don't forget to check that you also have the .NET and MVC3 libraries installed as well. Next, if you are unfamiliar with MVC, you can download the Web Camp Training Kit and walk through some of the introductory labs to get a loose grasp of the fundamental concepts.

ASP.NET MVC3 Fundamentals – Walking into the conference room with my limited web development experience compared to all the other working professionals in the room was pretty intimidating, but then we had the ASP.NET MVC3 Fundamentals presentation! Michael Palermo's presentation on MVC3 Fundamentals brought me up to speed on MVC as a programming model, as well as Visual Studio's own implementation of the MVC3 framework. Building his registration application on stage really showed how these introductory concepts are used in practice.

HTML Helpers and Validation – After going over some of the fundamentals, Dan Waters took over to cover some more advanced topics such as HTML helpers and Validation. Dan walked us through the creation of his own example project, an account management system, while explaining more advanced data access and modeling techniques.

jQuery Fundementals – This talk was a nice short introduction to most of the great element selection and manipulation features of jQuery. As a veteran jQuery user, I was pleasantly surprised to learn about a few new features of jQuery that are currently in Beta. The first new feature is called Templating, a feature similar to creating templates in XAML, for those of you who're more familiar with the .NET framework. The second feature is Data Linking, a Javascript implementation of binding fields of one object to fields of another object, also known as data binding in the .NET world.

jQuery, Odata & MVC – This presentation featured a walk through of a very cool Netflix project by Doris Chen. She goes over how to leverage Netlix's Odata service in order to grab movie and television data, template the data in a nice layout using jQuery, and even how to get developer codes from Netflix allowing you to play the movie right there from your own application!

Labs – The above presentations last until a little past lunch, the rest of the time is used for hands on lab work. You can pick and choose between beginner labs (mvc3, mvc3 with razor), and advanced labs (mvc and jquery), or even work on your own projects. They have plenty of staff there to give hints and answer questions.

Summary – Overall Web Camp was really fun and a great experience. I would definitely recommend this for anyone who's tired of hacking their projects together (like me), and wants to make that move to a consistent programming pattern. It's a great opportunity to work, and make friends with other professionals in your area.

Sunday, February 6, 2011

What is Net Neutrality?

The Issue – Net Neutrality is the term used to describe the issue of whether an Internet Service Provider (ISP) should have the ability to shape or control the data usage on its own network. The internet currently acts as a neutral medium, where people can access or distribute any service through the internet, without having to worry about traffic from other services taking higher priority over its own (with few exceptions). However, major ISPs want to change the way this works. They want the legal ability to implementing techniques such as bandwidth throttling, or even outright blocking certain types of content. For example, they could cut down the max transfer rates on email in an attempt to clear up bandwidth for other types of traffic such as video, or completely block any torrent traffic tying up its network.

The Argument Against Net Neutrality – Internet and Cable Providers argue that the quality of their service will degrade without the ability to shape internet traffic. They currently lack an efficient technique that allows them to accommodate the resent surge in data heavy services such as Hulu or Netflix. ISPs feel they have a right to do whatever is beneficial to their own company. The free market should allow them to act as they want and allow users to vote with their dollars, by either choosing to stick with a provider that interferes with traffic, or move to a competitor that does not.

The Argument for Net Neutrality – Supporters of net neutrality believe that internet service should be treated as a utility, and a provider should not care about the traffic going through its wires. An ISP should not be able to prioritize its traffic, because doing so can lead to the elimination of competition between those content providers who can pay for higher prioritization and those who can't. For example, a small start-up wanting to stream television over the internet would not be able to compete on a Comcast network who is blocking any television streaming service other than its own.

Current Rules – On December 21, 2010 the FCC approved new Net Neutrality rules defining what an ISP can and cannot do. The rules state that all there will be no shaping of legal content over wired infrastructure. The rules are slightly less strict on wireless networks however, as wireless carriers such as Verizon or AT&T are able to transparently interfere with certain content or services as they see fit. This means that as long as wireless carriers are open about what traffic they chose to discriminate against, they can do it.

My Opinion – I look at it this way, would you rather have competition between internet services providers, or individual content providers? Large ISPs have such a strangle hold on the industry that a consumer will usually only have one or two decent options in a give area. This undermines a huge chunk of the anti-Net Neutrality argument. An ISP that can manage it's network by throttling certain types of traffic can just sit there without improving infrastructure when it's users don't really have another option to turn too.
Adding regulations will keep a high quality of competition between content providers. Instead of large established companies being able to pay for high priority traffic, they will have to compete with any small start-up on a level playing field, leaving innovation the only choice to improve and beat out the competition. And when ISPs aren't able to shape traffic to their needs, the only other choice they have is to improve their current infrastructure.
Verizon is currently fighting the rules set by the FFC, however I feel that strict Net Neutrality regulations will prompt innovation and improvements in both the quality of the service and content providers, leading to a win for the average consumer on every front.