Sunday, December 11, 2011

Internet Infrastructure




This video is a good illustration of how the Internet works and how information is transferred from one computer to another.


Basically the path of pulling up a webpage is:  Your computer > router > ISP > router > Internet > router > website > router > ISP > router > your computer


A router exists along every intersection and every packet of information is moved via an IP address.  An IP address is how the Internet gives locations of computers and routers.  IP addresses are 4 sets of numbers in a combination between 0.0.0.0 and 255.255.255.255.  


The internet is a  global system of interconnected computer networks.  All the computers connected to the internet are actually connected to each other through the Internet Service Providers (ISPs) which in turn are connected to the bigger routers or the backbone of the internet. The backbone is a large server where the data is exchanged. These backbones are connected to each other through fiber optical cables. The ISPs are connected to these backbones through fiber optic cables in order to minimize the transmission loss. Then the users are connected to ISPs through cables or wireless routers




Client Applications

Examples of Client Applications:
Web browers - clients that allow us to view the internet
MS outlook - mail client that allows you to get your email from an email server
MS messenger, Google talk, Yahoo Chat - online chat clients
Game clients - allow multiplayer games

Web browers are probably the most widely used client applications. A web brower requests services from a web servers and display those web pages for the viewer.  There are currently a variety of browsers being used.


The following video is a very simplistic but great explaination of how the internet works:  http://www.commoncraft.com/video/world-wide-web

Friday, December 9, 2011

Future of the Internet


The Future Internet:
An evolving convergent Internet of things and services that is available anywhere, anytime as part
of an all-pervasive omnipresent socio–economic fabric, made up of
data
advanced services to business and citizens.

This definition comes from "The Future Internet" Report from May 2011 complied by UK, Future of Internet Group.

This article outlines how the Internet is constantly evolving and most issues and concerns related to the Internet fall under 3 main categories:  converged services, shared data and infrastructure.

Converged Services

Companies will want the ability to not only have a web page but for people to directly interact with it.  This is already happening but trends are moving all websites to this direction.  First we had webpages that showed what a store had, then you had the ability to purchase and find store locations.  Going further, stores do and will have blogs for customers to share, places for customers to interact with customer service representatives and move to other websites that offers complimentary goods or services.

Shared Data

Customer data, patient data, shopping data, school related data - all online, all potentially available for customization, ease of data retrieval and ease of personalization.  Technology companies are now moving toward offering cloud computing solutions to help move along all of this data, easier, faster and more efficiently.

These statistics are quite amazing to think about:
In 2006, the amount of digital information created, captured and
replicated was 1,288 × 1018 bits (161 exabytes or 161 billion
gigabytes). This is equivalent to about 3 million times the information in
all the books ever written.
• Between 2006 and 2010, the information added annually to the digital
universe was estimated to increase more than six-fold, from
161 exabytes to 988 exabytes (see Figure 8).
Images and video are
fuelling this growth
• Three major analogue-to-digital conversions are powering this growth:
film-to-digital image capture, analogue-to-digital voice, and analogueto-
digital TV.
• Images, captured by more than 1 billion devices in the world, from
digital cameras and camera phones to medical scanners and security
cameras, comprise the largest component of the digital universe. They
are replicated over the Internet, on private organisational networks, by
PCs and servers, in data centres, in digital TV broadcasts and on
digital projection screens.


Solutions to moving this amount of data has to be ever evolving.

Infrastructure

Connectivity, connectivity, connectivity!  Everyone wants to be connected 24/7 from multiple devices.  But how can a network handle this? At one time, no one thought we could ever run out of IP addresses with IP4 and sure enough we have.  Implementing IPv6 and increasing access to wireless are going to be key.  The number of handhelds has increased by 6 fold over the past 10 years.  That number is believed to increase to  50 million connected devices by 2020.  Will be have the capacity or will it all shut down?

The future....The important concept in this article I think is that of evolution.  The Internet is constantly evolving.  Companies, governments and people are going to have to learn new ways to use the Internet, support the Internet and make it work for the benefit of all.

Friday, November 11, 2011

Web Services

According to the Web Services Architecture Working Group, the phrase "Web Services" is defined as,
"a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards."  What???  First lets, define some of the acronyms.  WSDL is Web Service Definition Language, SOAP is Simple Object Access Protocol, HTTP is Hypertext Transfer Protocol and XML is EXtensible Markup Language.  To me this means that a Web Service is any program where machines talk to each other through appropriate languages and protocols.

This graphic is explained in the accompanying text

SAP uses the above diagram to describe a web service.


What is a "Big Web" service and 'RESTful Web Service'?

 
Big Web Services
-follow SOAP standard
-XML language for defining interface
-mostly used in Enterprise and closed environments
-more complex to develop and implement
-used by Google
RESTful Web Services
-HTTP
-number of languages
-open source
-simple
-recently the more predominant web service
-easier to build
 -Amazon Web Services
-Good choice for Mobile devices



The Diagrams below illustrate similarities and differences in "Big" vs "REST" Web Services.


http://www.crummy.com/writing/RESTful-Web-Services/



There appears to be a need for both types of Web Services depending on the needs of the company (open vs closed environments, mobile devices vs corporate desktops, ease of development vs the need for resources)

Thursday, November 10, 2011

Mobile App Development

This week in class we had a guest speaker, Chuck Hudson from Control4 speak about mobile application design.  He was very interesting and gave a great presentation.

He started his talk by telling us that the term 'mobile device' doesn't just mean smart phone anymore.  The mobile device market includes phones, ipads, tablet, car displays, integrated pandora in cars, etc.




Key points from his talk:
  • Android is growing much faster over the past 3 mo.  According to nielsen
  • Android has taken over smart market in the UK according to guardian
  • Ads are mostly for iphones or android
  • Apps - some make money purely from people purchasing the app - angry birds
  • Some free apps  - make money from ads - ie. you have to watch ad in order to get to the next level, etc.
  • Companies are keeping track of what they sell through their apps (opposed to their websites)
  • Mobile apps - about 1/3 of all apps never get launched more than once so companies and developers have to figure out how to make them so people will continue to come back to them.
       Looks , orientation, larger realestate with  tablets than on a phone
       1 screen on a tablet - 2-3 screens on a phone - so do you make 1 app or 2?
       Envision how customer will use - 1 handed or 2 handed, with thumb - thumb dynamics - where do you  position the buttons, etc.
  • As a developer, it is very import to do some storyboarding - gives you an idea of the live of the app from beginning to end
  • An app should do one thing really really well rather than do many thing kind of well
Balsamiq - use for app development - quicker  than omnigraffle - but omnigraffle good for storyboarding
Apple hig - for ios app development

Challenges - mobile - size constraints, etc
  •  Device can always over ride the app
  •  Support for multiple devices
  • Great place to learn and gather resources:
          Google io conference
          Apple conference

                Most info is online if you can't attend

Android challenges - relatively young
  • Because it is so open, you don't always know what you will get - support for different resolutions and sizes - 4 general sizes - 4 dpi of interface - combination of these 2 allows you to create a layout on different devices (scaling, button placement)
For Android App development, Chuck recommends using Eclipse
  • Detailed instructions on android developers site
  • In the early days if android, there was no graphical layout, but now there is.
ios - older, more mature - use xcode and instruments - for building an app

How will you measure success?  How many installs, how many upgrades, etc.

The future of Mobile Development is webbased mobile apps - could be the next big thing - html 5 is changing this area.

I loved hearing Chuck, it sounds like a very exciting field.  These days, almost everyday, you hear the phrase, "and there's and app for that".  It looks like the possibilities are endless.

Saturday, October 29, 2011

Amazon Web Services

Our mid-term exam consisted of two parts.  First we had to create a business model and then build a simple website using only html and css code.  My mother, Roshi Khaki is a Registered Dietitian and a Licensed Diabetic Educator. I created a site for her to offer her services, providing Nutrition Counseling. I created the site with html files and a css file in NotePad.  We were given guidelines on creating the site so we could learn how to use various types of website elements (use of APIs, tables, images, navigation, calendars, etc).

I have done some website work before but using MS FrontPage templates, never using just html.  CSS was completely new to me and I loved it.  I can't believe how easy it makes designing.  I knew of CSS, but never knew how to use it.  I will definitely want to continue to learn more about CSS.

In class, we have been learning about Amazon Web Services and created server space in the cloud.  Using Eclipse Java EE IDE for Web Developers, I imported my website and then published it to AWS.  http://nutritionser-nexdfdcmp4.elasticbeanstalk.com/  .  I am now beginning to understand the power of cloud computing.  So much to learn....

Amazon Cloud Computing

Dr. Werner Vogels is credited with bringing Cloud Computing to Amazon.  In a recent conference, he explains why Amazon is in the Cloud business.

Dr. Vogel says that Amazon is a tech company doing retail not a retail company dabbling in technology as most would believe. 

He refers to the working environment at Amazon to be in "two pizza teams".  I loved the phrase!  A team consists of only as many people as it would take to share 2 pizzas, in other words, teams of 8-10.  Members of this team see projects through start to finish, "you build it, you run it". 

Cloud Services came about as a result of  customers and developers and businesses wanting the following:

1. Design for flexibility
Engineers can use whatever platform they want
Many platforms available

2. Design for On - Demand markets
Capacity needed more for Christmas time sales, etc.

3.  Design for Automation - developers can design automation of any service

4.  Be elastic - creating programs and services to deal with seasonal peaks and still be able to go back to original design when necessary

5.  Design for Failure

6.  Design for utility pricing - know that a customer can walk away anytime so businesses can be competitive.

7.  Break transparency - if you are an end user of webmail, you don't care where the servers are but if you are a developer you will care so Amazon must break transparency.

8.  Decompose in its simplest form - infinitely scalable relational database.

9.  Design with security fence.

10. Don’t do it alone - invited 3rd parties to sell their own products and services.  Let other sites drive sales to amazon and give them a cut.

11. Focus on what does not change - innovation can also be knowing what things should not change.  Having easily readable catalogs, offer low pricing, offer on time delivery, etc.  I thought this point was excellent.  People always seem to focus on what to change and not look at what they shouldn't change.

12.  Let your customers benefit - Amazon has lowered their prices 14 times (Aws services). 

13.  Continuously Innovate - Amazon has done a brilliant job in creating new products and services for their customers and tweaking established products based on customer demands.

To hear Dr. Vogels full presentations, visit http://passionmeetsmomentum.com/#amazon-and-the-lean-cloud