Sunday, December 11, 2011

Basic Web Technology Stack

The following 6 posts will be describing these 6 key concepts of Internet Technology.


Web Services

Web service is a method of communication between two electronic devices over the web. Services are a workflow technique of information transfer of the internet.


I discussed web services in a previous blog post so this time I would just like to share a couple links to explain how there services fit in with Internet Technologies.







Two major classes of Web services are identified, REST-compliant Web services, in which the primary purpose of the service is to manipulate XML representations of Web resources and "Big" Services that uses XML and follow SOAP standards that are popular in Enterprise.

Today, there is another type of webservice that we are seeing more and more of.  That is Web 2.0.  Web API or Web 2.0 includes the read/write web, blogs, wikis, podcast and cloud computing.  The use of web base "office" products (word processing, spreadsheets, etc) and the use of Web Servers like Amazon Web Services.

If you wanted to start a small company, you could potentially do the following:  Buy computers with good internet access and use all web based products.  You could store all of your data on a Web Server like Amazon Web Services without buying your own servers.  You could get all of your company email to go through a web based mail client like GMail.  You would not have to buy MS Office because you could use Google Docs or Zoho for all of your productivity needs.  And you could build your own company website on web based, template based product like Google Sites or Weebly.


Data

Databases are software product whose primary function is to store and retrieve data as requested by other software applications, be it those on the same computer or those running on another computer across a network (including the Internet). There several different companies who make database software with Microsoft's SQL server and Oracle being the most widely used.  These database products are aimed at different audiences and for different workloads (ranging from small applications that store and retrieve data on the same computer, to millions of users and computers that access huge amounts of data from the Internet at the same time).





Data includes email, web pages, audio files, video files, basically every single bit of information you see on a webpage is data that has to be stored somewhere.



Applications

Web applications use web documents written in a standard format such as HTML and JavaScript, which are supported by a variety of web browsers.


In 1995 Netscape introduced a client-side scripting language called JavaScript allowing programmers to add some dynamic elements to the user interface that ran on the client side.


In 1996, Macromedia introduced Flash, a vector animation player that could be added to browsers as a plug-in to embed animations on the web pages.


In 1999, the "web application" concept was introduced in the Java language.


In 2005, the term Ajax was coined, and applications like Gmail started to make their client sides more and more interactive. A web page script is able to contact the server for storing/retrieving data without downloading an entire web page.


In 2011 HTML 5 was created, which provides graphic and multimedia capabilities without the need of client side plugins.


Through Java, JavaScript, DHTML, Flash, Silverlight and other technologies, application-specific methods such as drawing on the screen, playing audio, and access to the keyboard and mouse are all possible.


As you can see, web applications have moved from a static screen to animation and movement to audio, video and the ability for the user to interact.


The future of web applications is explemfied by online word processing, and "office suites", essentially, "cloud computing". Google Apps, Microsoft Office Live, and WebEx WebOffice are examples of the newest generation of web applications.


http://webtrends.about.com/od/webapplications/a/web_application.htm




http://www.acunetix.com/websitesecurity/web-applications.htm



Web Servers



A web server is a computer that has been set up but a hosting company usually housed in data center.  The purpose of a webserver is to store websites until someone wants to visit them and then to quickly respond to the visitors browser with the sites content.

A server must be able to respond to multiple (sometime hundreds, thousands and even millions of requests).

Most servers use http (to handle websites), FTP (to handle file transfers), and email server and a database server to handle data storage and transfer.







This is also a great resource in understanding how web servers work:  http://www.howstuffworks.com/web-server.htm

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

Thursday, September 29, 2011

Peer to Peer Network Architecture

Today, our group (Will, Eddie, Clement, Larry and myself) presented to the class about P2P networks.

View our presentation:  https://docs.google.com/present/view?id=dgz3hxr4_73csw58fk

Wednesday, September 28, 2011

API

Last week we were introduced to APIs.  API stands for Application Programming Interface.  I kept thinking of it as a Widgit  rather than and layer of programming underneath the user interface.  To simplify things for me and help me better understand the concept, I went to You Tube to see what I could find.  I found this short 2 min video that uses games as an analogy.  http://www.youtube.com/watch?v=7r7QpIDEI_o&feature=related  Board games are great until the player gets board and out grows the game because it is closed and has only 1 set of rules.  Cards however are open and there are millions of variations of games to be played with a deck of cards, kind of like what and API can do.   I also watched this video, http://www.youtube.com/watch?v=UcHhwsTIK_o&feature=related , which explained things a bit better for me.  It is an older video but his example of using a company’s sales data and showing it on Google Maps using a Google API was a great example.
I also read a blog by an API developer, http://www.quora.com/What-are-the-tradeoffs-of-using-Mashery-vs-building-and-maintaining-your-own-API .  He talked about the advantages and disadvantages for creating your own API versus using a company like Mashery or Apigee.  After reading his opinion, it sounds like the only disadvantage of using an API development company is cost.  But the level of expertise needed to create, manage and support an API make it very difficult for companies to do on their own.  He talks about the need for domain expertise, rapid deployment, scalability, availability, reporting and community support in order to have a successful API.  Companies like Mashery and Apigee have the experience and expertise to support all of these needs.
I also found a very interesting article written just 2 weeks ago about AT&T.  http://www.fastcompany.com/1779967/why-att-is-opening-itself-up-to-app-developers .  AT&T's new toolkit, includes an API platform and HTML5 software developer kit (SDK) for use by any and all developers.  Apigee is one of the partners to help build AT&T’s toolkit.  So if anyone can use AT&T’s platform and resources for their API’s especially for mobile devices for other carriers, than what is in it for AT&T?  This will be a revenue stream for AT&T.  There will be lots of free stuff but there will be some “per call” fees and some fees associated with advertising modules, etc.  Sort of “a few supporting many” business model.
I find the whole concept of APIs quite fascinating.  I am very curious to see how this technology grows and changes the internet.

Thursday, September 1, 2011

Google Sites

Google Sites is a great product for making webpages.  They can be very simple or quite complex.  This is the one I made for class:  https://sites.google.com/site/farahstechtips/ .  It is simple and just shows a basic template for what I could do for an Infomediary site like the one outlined in the business model from the first assignment.

I actually use Google Sites for work.  I have my own "tech support" site for my teachers.  https://sites.google.com/a/fultonschools.org/farah-s-tech-notes/  I ask my teachers to fill out the form to request help and I try and post FAQ on the site.

Many of our teachers have teacher websites for their classes and I have encouraged most of them to use Gooogle Sites.  I like it because it is easy, it allows them to embed a calendar, attach handouts and insert a picture or embed a photo album.  The best part about Google Sites is that it is not software or OS dependant.

The downside of Google Sites is that it is limiting if you are a medium or large business or want something that would incorporate flash, java script, etc.  It may be too simplistic for bigger businesses.

SaaS - Part2

Looking at the 3 sites again. I think Microsoft 365 would be an option in a large corporate-type setting, where there would be email integration, conferencing options, different levels of permissions, etc. This might be a more cost effective option for large business who may not want to pay an open license for Microsoft products. For the average user, whether a single user or smaller group or small business, I would not recommend Microsoft 365. It costs money, the setup, management and implementation of is not easy for the average user.

Zoho and Google docs on the other hand are free, require only a username and password and are very easy to use.

Zoho could be a bit overwhelming for some. There is a lot of color and lots of options, almost too many. There is a Zoho writer and Zoho docs, they seem to be the same thing. The docs are a list of the documents you have and the writer is the actual word processing application. There is a Zoho planner and a Zoho Calendar, a planner can incorporate a to do list, calendar and some other features but a calendar is just a calendar. I think some of these things could be integrated a bit better.

The presentation software in Zoho does however have more templates and color options than Google Docs.

I like Google docs, it is very easy to use and very easy to share. I also really like Google Forms. I didn't see a comparable application with the other two. I would highly recommend Google Docs to anyone.

Monday, August 29, 2011

Software as a Service (SaaS)

Our assignment this week was to compare 3 SaaS productivity suite providers:  Microsoft 365, Zoho and Google docs.

I have been using Google docs for the past 6 years.  I don't use it all the time and haven't taken advantage of all the features but I have used it enough to really appreciate the convenience and the potential of its collaborative features.

Today, I just took a brief look at Zoho and Microsoft 365 to get a first impression.  I loved Zoho.  Lots of editing features and sharing capabilities.  Very easy to log into.  Go to http://www.zoho.com/, set up an account very quickly and start using right away.  Microsoft 365 on the other hand was a nightmare.  I am not really sure where I am in the set up process after fooling with it for almost 1 hour.  Finding the trial was difficult, then choosing which product was not easy, the registration wanted company info, etc and finally when I was able to login, I was asked to download software I really didn't understand.  I thought it was supposed to all be online......now I think I have to go to program files to launch it.  Very strange.  I think I will have to try again tomorrow.

Thursday, August 25, 2011

What is a router?

One of our assignments this week was to listen to a podcast from How Stuff Works, Tech Stuff called What is a router?  It took me a while to find it.  I was looking on the How stuff works website but I ended up finding it in itunes.  It was a bit long (35min) but interesting.  I will definitely subscribe to this podcast.

Here are some bullet points of things I learned:
  • Transfer of information between different layers.  7 layers of communication proposed by Honeywell: Layer 1 - a single device. Layer 2 - communication between devices, home networks don’t need routers to communicate with each other but switches - still layer 2. Layer 3 - A router is needed to get to other networks (ie. internet).
  • A routing table - a guide to where packets need to go on the fastest route, not necessarily the shortest. 
  • Protocols - languages that routing tables use to talk to each other. 
  • Router can calculate “cost” of routing a packet = hops.  Packets can be sent to destination several times but the least number of hops will make it and the other redundant packets will be discarded. 
  • Gamers would want to use wired connections because they are more reliable than wireless routers.
  • N protocol tends to be best.
  • Make sure devices are N compatible.
  • Also look at ISP service.  The router won’t make a difference if you don’t have a broadband connection or if your ISP caps data.
  • DOS - denial of service attack - someone will intentionally clog up your router.
  • There is not a full proof security system but putting up a good firewall is important.

Business Model for an Infomediary Site

Business Model of Infomediary Site

Click on the above link to see a business model of my infomediary site.  I would like to create a website that is sort of a "Technology for Dummies" site.  I am a mother of two who works in a school.  Through all of my connections with other parents, teachers and friends, I realize how many people don't know or understand very simple, basic technology concepts.

Technology has moved at such a fast pace, no one can really keep up and many of us have never been "taught" how to use a computer and basic software.  In today's job market, certain skills are assumed at all level.  The custodians at our school are expected to report their hours on our online system yet many of them do not even know how to log into a computer.  I see a big need for basic computer skills.

This business model was a bit harder to create because I find it harder for me to understand costs involved with an online business and how revenues are created from online businesses.  Again, like the business previous business model of the hotel, I would like to do more research to understand how online businesses work.

Business Model for an Airport Hotel


Link to Business Model

The above link is to a business model I created in MS Word.  I have used the model outlined by
Alexander Osterwalder and Yves Pigneur from http://www.businessmodelgeneration.com/ .  I chose to create a model of an Airport Hotel because my husband's family has been in the hotel business for years therefore I am quite familiar with the business. 

As I created the model however, I realized how much I never thought about.  Looking at it again, I think I was maybe too general in my listings.  I will probably go back at some point and add more detail to it.  I would like to do some research and look at some more similar models to see the level of detail shared.

Friday, August 19, 2011

Welcome

Welcome to My Blog

My name if Farah Jetha and I am starting the Masters Program in Internet Technology from the University of Georgia this fall (Aug 2011).

I have been a School Technology Specialist for the past 10 years in private and public K12 education.

I have seen technology in schools evolve from using MS Office for papers and presentations to using web 2.0 tools like twiducate and Edmodo for communication and collaborative learning.

I am very excited about enhancing my technical skills and learning how the internet and new technologies are changing the way every industry does business.

I will spend the next 5 semesters blogging about what I am learning, my experiences and shed some light on new technologies.