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.