360 likes | 504 Views
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
E N D
CS569 Selected Topics in Software EngineeringSpring 2012 Mobile and Cloud Software Development
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
It’s rainingprojects http://venturebeat.com/2012/01/11/what-developers-will-be-doing-learning-listening-to-in-2012-survey-results/
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
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
What is the “cloud”? • Servers on the web that you can lease for deploying software, specifically: • Secure • On-demand • Maintained
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)
So who cares? Practical implications for youas a software engineer…
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
So who cares? • Design for performance and reliability • Stateless server components • Replication • Asynchronous operations • Deferred transactions • Eventual consistency
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
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!!!!
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
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
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
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
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 ?
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
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
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
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
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
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”)
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
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/