1 / 34

Mobile and Cloud Software Development

CS569 Selected Topics in Software Engineering Spring 2012. Mobile and Cloud Software Development. It’s raining out there. It’s raining jobs. “Hiring for cloud computing expertise growing 61 percent year over year ” [2011->2012] Starting salaries

chad
Download Presentation

Mobile and Cloud Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS569 Selected Topics in Software EngineeringSpring 2012 Mobile and Cloud Software Development

  2. It’s raining out there...

  3. It’s rainingjobs • “Hiring for cloud computing expertise growing 61 percent year over year” [2011->2012] • Starting salaries • Android, iPhone and iPad developers: $98,000 • Front-end using HTML5: $89,000 - $127,000 • Security analysts: $94,000 - $125,000 http://www.crn.com/news/cloud/232600120/bluewolf-study-cloud-mobile-salaries-rising-talent-gap-widening.htm;jsessionid=ShLHAIo3XctFXE+f+EXOLQ**.ecappj01

  4. It’s rainingprojects http://venturebeat.com/2012/01/11/what-developers-will-be-doing-learning-listening-to-in-2012-survey-results/

  5. It’s rainingmarket opportunities • Cisco and Sun elbow into mobile world with cloud initiatives http://www.rethink-wireless.com/article.asp?article_id=1167 • ShoreTel to Buy M5 Networks, Grow Cloud UC Capabilities http://www.eweek.com/c/a/Enterprise-Networking/ShoreTel-to-Buy-M5-Networks-Grow-Cloud-UC-Capabilities-300727/ • Salesforce Launches Cloud-Based Desk.com http://www.eweek.com/c/a/Enterprise-Applications/Salesforce-Launches-CloudBased-Deskcom-252111/ • Facebook Phone could break through site’s social mobile limbo http://www.slashgear.com/facebook-phone-could-break-through-sites-social-mobile-limbo-02211773/ • SAP's Bold Bet: Rule Cloud, Mobile, Big Data http://www.informationweek.com/news/software/enterprise_apps/232600164 • Amazon S3 Says it Tripled in Objects Stored Last Year https://www.linux.com/news/enterprise/cloud-computing/540996-amazon-s3-says-it-tripled-in-objects-stored-last-year • Customer centric BSS/OSS meets Cloud Innovations in Comarch’s booth at Mobile World Congress http://www.openpr.com/news/209265/Customer-centric-BSS-OSS-meets-Cloud-Innovations-in-Comarch-s-booth-at-Mobile-World-Congress.html • IPsmarx Announces Launch of RAPID Multi-Tenant Cloud Based IP-PBX Systemhttp://www.prweb.com/releases/2012/2/prweb9154751.htm

  6. Why are cloud and mobileso important right now?

  7. It all comes down to money. • Rapid drop in computer hardware prices, rapid rise in computer hardware capabilities • Low-cost availability of server space • Low-cost availability of handheld devices • Continual rise in cost of operating servers • Security, privacy, maintenance/upgrades • Let somebody “on the cloud” deal with it

  8. Crashing hard drive costs

  9. Collapsing transistor costs

  10. Plummeting device prices

  11. What are we really talking about?

  12. What is the “cloud”? • Servers on the web that you can lease for deploying software, specifically: • Secure • On-demand • Maintained

  13. What is “mobile”? • Any device that can be carried around • Usually small screen size • Often a touchscreen • Usually a terrible keyboard, if any • Sometimes disconnected from net • Integrated with specialized hardware • Camera, GPS, gyroscope, accelerometer, … • (Maybe limited computing resources… for now)

  14. So who cares? Practical implications for youas a software engineer…

  15. So who cares? • Impact on overall architecture • Usually web-centric architecture (learn HTML) • Sometimes a non-SQL (non-ACID) data store • Usually built on really cheap, unreliable hardware • Ideally has platform-independent client code • Often a bit of a mess

  16. So who cares? • Design for performance and reliability • Stateless server components • Replication • Asynchronous operations • Deferred transactions • Eventual consistency

  17. So who cares? • Focus on usability • Small(er) screens • Minimal text input • Usually no mouse • Often a touchscreen • Portability crucial • Maximize battery life • Ease of installation

  18. So who cares? • Continuousneed to learn new APIs • Storing data • Manipulating data • Caching data • Accessing mobile hardware • Camera, GPS, gyroscope, accelerometer, … • Accessing mobile services • Notifications, offline mode, video, … • Not to mention all the new platforms!!!!

  19. Where does this course fit in?

  20. Course goals:For you to be able to… • Install and configure tools for cloud and mobile development • Create basic cloud and mobile applications that include: • Efficient storage of replicated data • Reliable synchronization of offline data • Presentation of mobile-optimized user interfaces • Effective use of relevant APIs

  21. So that means… • I will show you how to do some concrete tasks • On relatively simple cloud and mobile platforms • I will explain related principles • You will transfer and apply this knowledge… • To other platforms • To new APIs • To a project of your own

  22. Overall timeline

  23. Part 1. Cloud overview • Google App Engine (GAE) • A relatively simple platform • Can start using for free • Provides exposure to some cloud funkiness • noSQL • Avoiding joins • Poor transactional support

  24. Part 2. Mobile overview • Titanium • A relatively simple platform • JS-based • Can start using for free • Can be deployed on multiple platforms • iOS (i.e., iPhone, iPad) • Android • Windows mobile • And emulators of all the above • And desktop browsers

  25. Part 3. Your platform How-To • In teams, you will create a “How-To” showing how to use 1 cloud and 1 mobile platform • Cloud options: Windows Azure, Amazon EC2, … • Mobile options: jQTouch, PhoneGap, Adobe Air, … • Step-by-step instructions: • How to install • How to save data • How to display data ?

  26. Part 4. General principles • Performance, e.g., • How to take advantage of multiple servers • Reliability, e.g., • How to handle occasionally connected computing • Security, e.g., • How to limit access to private data • Usability, e.g., • How to avoid locking up your user’s phone

  27. Part 5. Your project • You will create one application of your choice • Some functionality that… • Somebody would want to use • You can show off at job interviews • Adequate… • Scalability to handle hundreds of users • Usability on at least one real device or emulator

  28. Part 6. Cool APIs • Opportunity for extra credit… • Presentations on cool APIs you have discovered while working on projects that can enhance usability, performance, reliability, or security • Examples: • How to read data from a camera or microphone • How to plot locations on a map • How to use remote authentication services • How to post status updates to social media sites

  29. What about grades?

  30. Grading • Platform How-To: 1/3, graded in teams • Project: 1/3, graded individually • Exam: 1/3, graded individually • See course website for additional information on grading, academic integrity, and other policies. = slide has a good chance of being on the exam

  31. Grading criteria • How-To • Clear coverage of required parts • Project • Demonstrate some interesting functionality; turn in your code, plus evidence that it can handle hundreds of users; demonstrate in class • Exam • Multiple-choice, mostly on slides

  32. Other general course information • Lectures: MWF 1100-1150, STAG 208  • Exam: In class, near end of course • Office hours: W 1200-1300, KEC 3047 • Very strongly encouraged but optional textbooks: • ISBN/SKU 1849690448, Guermeur, "Google App Engine Java and GWT Application Development", 2010, Packt Publishing (“GAE Book”) • ISBN/SKU 0596517742, Crockford, "JavaScript: The Good Parts", 2008, Yahoo Press (“JS Book”)

  33. Next steps for you… • Required before class on Thursday • Find a few people to work with on a How-To • Preferably 2-4 people per group • Email me to say what your groups will be; include a photo of each of you so I can learn your faces • Consider: what platforms do you want to cover? • Strongly encouraged • Buy the textbooks (available at bookstore) • Read GAE Book, chapters 1 and 2 this week • Bring your laptop to every class

  34. Images used in slides • http://gigaom2.files.wordpress.com/2011/08/sai-chart-rim-blackberry-asp.gif • http://mydigitaldefense.com/wp-content/uploads/2011/04/kindle-price-forecast1.jpg • http://www.singularity.com/images/charts/MicroProcessCostPerTrans.jpg • http://data.story.lu/wp-content/uploads/2011/10/cost-hdd.jpg • http://www.flickr.com/photos/jamisonjudd/2433102356/ • http://www.flickr.com/photos/bfishadow/5077249243/sizes/s/in/photostream/ • http://www.flickr.com/photos/juhansonin/4902072639/ • http://www.flickr.com/photos/kingautmanthe3rd/2280635117/sizes/s/in/photostream/ • http://www.flickr.com/photos/tarmotoikkanen/3308183411/sizes/s/in/photostream/

More Related