Thursday, September 29, 2011

Week 7 MIST 7500 - API's

You may not know it, but you probably utilize APIs on a daily or weekly basis.  Much of API's are behind the scenes, so the typical user doesn't even know what's going on when they use a certain app or go to a particular webpage.  This particular post will focus on what API's are, some of the key advantages and disadvantage, and then we'll go over a case study for Neflix and discuss the evolution of their API strategy.

So what is an API?

An application programming interface (API) is a particular set of rules ('code') and specifications that software programs can follow to communicate with each other. It serves as an interface between different software programs and facilitates their interaction, similar to the way the user interface facilitates interaction between humans and computers.  A program's API defines the proper way for a developer to request services from that program. 

Why are API's necessary?

Josh Walker of Forrester Research Inc. says that "Building applications with no APIs is like building a house with no doors."  API's allow that necessary communication between applications.  As an application mature's, the need or likelihood of another developer needing to tap into that particular program increases.  Having available API's makes your application more market friendly.  If a company wants to use your application with another in house application then having that API available is critical, otherwise they could be tempted to find another vendor that will provide that API support.

API example

An example of a simple API is the Google Map Image API.  This API allows you to incorporate maps as images on your website.  You can feed certain parameters like size, zoom level, location, and path points.  It's very helpful for people that want specific location maps on their websites.  Google has other API's that allow more functionality, but with more functionality you have more complexity.  So depending on what you need, you can find an API that works for you.

API Advantages
  • Add features to your site without having to code them
  • Get more exposure for your application
  • Possibility of additional revenue (some API's must be purchased)
  • More integration with other applications

API Disadvantages
  • Security issues
  • Can be difficult for developers to learn
  • Sometimes not officially documented
  • API's are sometimes kept secret or are not known
  • Can change rapidly
  • Bandwidth issues (too many API calls)
  • Overexposure (too much of your code is open)
Neflix Case Study

To reach a wider audience, Neflix has API's that they have made available and have become successful in generating additional revenue and creating more of a brand presence.

1000 Flowers - Their first attempt at API's was to make it available to the masses.  The more exposure they got, the better.  They incorporated a prize of $1 million to the development team that could generate a 10% increase in success with their Recomendations Algorithm.  After 3 years, they were finally able to achieve that.  They felt that while the had lots of innovation with this method, they wanted to go a different route

Hundred of Devices - Netflix had a goal of getting their service on 100 different devices (other than the PC).  Instead of having companies like Sony and Microsoft write their own programs (which took up to a year and a half) the made their API available to these companies.  This not only got their service on more devices (over 200 when it was done) but it increased revenue streams for them and did it quickly.

Tons of Tests - Now their focus has shifted to testing their API's in other ways to generate new mediums and new methods...namely the mobile environment.  They are constantly updating their API's every two weeks to be more flexible and meet demand.  Neflix just released an update that will allow any phone running Android 1.5 or higher to utilize it's app.  Now they have more customers who will be able to view their content and possibly more new customer's now that their phone is supported.

Netflix has discovered a few key points during the evolution of their API Strategy:

  • Developing an API strategy is a jorney not just a single project
  • Be prepared to evolve to the business environment
  • Netflix chose speed over scale and decided to develop their API's to develop their core business instead of focusing on APIs to develop new side business
So in conclusion, there is a great need for APIs and while there is some risk in utilizing them I think the benefits difinitely outweigh those risks.

Friday, September 9, 2011

Week 4 MIST 7500 - The "Future Internet"

Summary

The Internet has grown leaps and bounds over the past decade.  From the dotcom bust of 2000-2001 to now, we have seen a massive growth in the amount of information contained in it as well as the numbers of users actually using it.  In the coming years it will continue to grow, but it will continue to grow differently than it has been.  The focus will no longer be on communication between a user and the internet via a pc or other connected device, but more a collaboration of people and things.  Not only will you have users interacting with other users or devices, but you will have devices interacting with devices as well.  Machine-to-Machine interaction will soon be the primary form of communication over the internet.  And we are not just talking about computers to computers, we're talking about devices like washers, TV's, microwaves, etc.  By the year 2020, we will have over 50 billion devices connected to the internet and right now we have enough information to create a stack of books from the Sun to Pluto and back. 

Important Points

Really, there are three "enabling components" that will help bring about the Future Internet.  The first is "Capable Access Mechanisms" which basically states that we need the underlying infrastructure to support this new type of internet.  Both wireless and wired networks need to be future-proof for a 20 year time frame.  Other things like speed and IP addresses need to take into account this new change.  IPv6 will allow nearly infinite connections to the internet and speeds will have to be closer to the 350Mbit/s range to support Super Hi-Def video, for example.  Second is the "Cloud Infrastructure" which allows a removal of barrier to internet-style business models.  People will be provided with more customized services and will need to be put in control of that data.  Security will play a major role in cloud technology.  Finally "Converged Services" will represent a transformational change in the way organizations deliver services, requiring them to develop new business models and technology implementations.

Wireless is key!  Much of the Future Internet relies on wireless connectivity and wireless infrastructure.  This gives the user access anytime and anywhere.  It also helps to promote machine-to-machine communications which is critical for the Future Internet. 

Smart cities will lead us!  Cities like Barcelona and San Francisco are considered smart cities in that they have much of this Future Internet infrastructure already in place.  Smart Phones, Wireless Internet, Media Facades, Sensor Networks, and RFID tags enable more increased used of integrated services which result in more data and improved interfaces, giving rise to still better services.

Silo-based approach to convert into Converged-Sector Services.  Industries like Healthcare, Transporation, Energy, and Supply Chain will be able to share data on the new Future Internet.  They will no longer be silo'd entities.  Databases will be shared and not restricted, a free flow of information will occur to better service the customer.

Data is key!  The Future Internet depends on Data.  How it is generated and how it is managed and communicated.  More data needs to be made available and shared so that more converged services can be created.  Images and video are fueling the growth of data.  There are over 1 billion devices in the words that capture video and images. 

My Opinions 

I agree wholeheartedly with the article on the future of the Internet.  We are headed towards a more service-oriented approach to the internet and we can see evidence of that today.  Wireless has taken off, we see that with the advent of the SmartPhone.  The internet is at our fingertips from just about anywhere.  No longer do we need to be near a computer, we can program our TV's, buy movie tickets right before the show, watch movies, research anything and everything...and all made possible by wireless technology.  Another thing that was touched on was the increased need for security.  With all the good things that the internet provides, we have to realize that and increase in the "negative" will more than likely occur.  More threats, attacks, and the like will be possible and it's important to come up with strategies to both defend and prevent them.  I like the idea of Cloud computing as well.  No longer are we restricted to what's on our PC...we can access music, pictures, documents, software, etc. all with an internet connection.  Though it's still fairly new technology, I think it will certainly take off.

Class Relationship

I like how this class focuses on new things.  Cloud computing, Wireless Apps, etc.  All of this is relevant to the Future Internet.  I'm also hoping that the program as a whole will prepare us with the necessary skills to be effective with the Future Internet.  Upon completion, I want to be skilled in many areas that will help me to grow as an IT professional. 

Closing Summary

It is important to realize that the Future Internet will not one day be "switched on", it is an evolutionary process that will occur over time.  We are not exactly there yet, but steps are being taken today to help us stay on the right path.  The Future Internet will be a more customized experience, giving the user everything they want and nothing they don't.

Thursday, September 1, 2011

Week 3 MIST 7500 - Google Sites

Google Sites is a SaaS (Software as a Service) tool developed by Google in helping to create web pages.  It takes all of the coding away from the average user and allows them to develop a site using out-of-the-box functionality.  It's a great way for a beginner, who is not very familiar with HTML or Scripting to build a fully functional website.

How does Google Sites fit our definition of SaaS?

Unlike Dreamweaver or Frontpage, there is no software to download for Google Sites.  Everything you need is online to build your website, there is no software to install.  All content such as pictures, documents, and anything else you would need to build the site are also stored online. 

What do you like about Google Sites?

It makes building a website fairly easy.  You don't have to know how to write code to build a website using Google Sites, just some basic understanding of how a webpage works and some of the components that make up a webpage.  It's also free and there are no programs, plug-ins, etc. to install.  It's also fully integrated with the other Google products like Google Docs, if you create a Google doc you can easily incorporate that into your site with relative ease.

What do you dislike about Google Sites?

It is a SaaS program so you have to be online to do any development.  Because it is basically OOTB type softare, you are limited in some of the functionality that you have (i.e. Not really recommended for full blown web developers that need more features).  I found it to sometimes be un-intuitive.  Trying to find certain things were difficult or they didn't put like items together for easy access.

How is a SaaS system like Google Sites related to SOA?

SOA or Service Oriented Architecture is defined as:  The policies, practices, frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer. Services can be invoked, published and discovered, and are abstracted away from the implementation using a single, standards-based form of interface.

This definition seems to fit Google Sites fairly well as it is application functionality that is provided as a service.  Many companies are moving to a services based approach which allows them to better serve the needs of the customer.  SOA allows us to determine the usage (delivery, acquisition, consumption, and so on) in terms of, and in sets of, related services.  Google sites is built around this framework in that everything from building the website to publishing it to the web is based on services.

Week 3 MIST 7500 - SaaS via Office Productivity Suites

Anyone that has worked in an office setting, been a student, or ran a small business has used some form of office productivity software.  More than likely that software was Microsoft Office (particularly Word, Excel, and Powerpoint).  Software was either purchased or provided by the company and installed on the computer's hard drive. 

With SaaS, users have the ability to access these types of programs online and don't need to go through the actual installs normally associated with software.  I've tested three different types of SaaS programs for office type work and below I have written a comparison of each.  I'll also briefly discuss the advantages and disadvantages of using traditional software vs. these new SaaS offerings.

Office 365

As the name states, this is Microsoft's version of SaaS for Office.  You'll see that Word, Excel, and Powerpoint are all available.  The good thing about this software is that it's just like using regular office except you're accessing it over the internet and not locally.  Integration between traditional office and Office 365 seemed to work without issues.  I could open up one doc created in one in the other, and vice versa.  Overall, if you are familar with Microsoft Office, you should have no problems picking up Office 365. It was a free trial however, so I'm assuming there was a cost associated with it if you choose to use is permanently.

Google Docs

Google docs is basically Office for Google.  Documents, Spreadsheets, Powerpoints, Forms, etc. are all available.  The major positive about Google docs is it's integration with everything Google.  When you create a Google doc, you can pretty much access that doc anywhere within the other Google tools.  It will also allow you to upload standard office type docs (.doc, .xls, .ppt, etc.).  If someone sends you a Google doc, you should have no problems opening it in your local version of office.  I did find that cutting pasting did not work very well, but after some tweaking I was able to get it to work without issues.

Zoho

Zoho is similar to Google Docs in that it's also similar to Office.  Word, Excel, and Powerpoint type docs are all present.  The look and feel of the program is similar to office, so it's intuitive, but there are some subtle differences that you will have to get used to as well.  Importing docs seemed to work ok and there was even an option to import Google Docs specifically.  Overall a pretty slick set of tools that certainly meet your basic needs of an office productivity suite.

Advantages of SaaS

I think the biggest advantage is SaaS is cost savings.  Both Google Docs and Zoho are free services so there is no direct cost to the user.  Corporate licensing of software can get very expensive and this would be a nice way to save some money.  Another advantage of SaaS is the cloud technology.  All of your docs are stored on the cloud/online storage so you can get to those docs from anywhere that you can get a connection to the internet.  Online collaboration is also possible, so you can share the most updated docs in real time.

Disadvantages of SaaS

The major disadvantage that I see with SaaS is that you actually have to be online to use it.  If you are on a plane and need to crank out a document or put together a last minute presentation, you're not going to be able to do it with SaaS.  Another disadvantage is that you do lose some of the functionality that a full blown traditional version would provide, and to get those other features you have to pay or pay extra.  For the basic user this would not be a problem, but for a heavy user it certainly could be.  In addition, there are also some issues with compatibility such as cutting and pasting from traditional programs.

Conclusion

I think that these office Suites are a good substitute for the traditional Microsoft Office suite.  They offer good basic functionality at no to little cost.  If you're always online and don't need the full blown functionality of the traditional software, this is a great practical option.