Windows Azure Team 9 Ben Holland Bao Nguyen Eric Petrowiak Barret Schloerke
Problem Statement Windows Azure (Cloud hosting platform) is new and bugs need to be found Playing the role of 3rd party developer to design and implement a web system which should then be migrated to the Microsoft Azure Cloud. Must use: Silverlight Azure, Microsoft SQL, RIA Services
Requirements Create an application that tests Azure’s capabilities and general issues o Cloud Hosting Power o Security/Personalized Information o Integration with application Use Required Systems o Windows Azure o Silverlight o RIA Document cloud migration issues At the same time choose a challenging project that we can enjoy working on
Project Proposal A Personalized Reader o Fetches articles or blog posts that matches your search criteria This differs from other search engines… o Our system allows for passive users o Searches specific stories on specific domains o Proactive search apposed to reactive (on demand) o User’s history/results are saved
Concept Diagram
Development Environments Visual Studio 2008 o.NET framework o Silverlight o RIA o Azure SQL Subversion Virtual Machines with remote access
Customer Functional Requirements Must be hosted on the Azure Platform Must use Silverlight for the user view Must use RIA Services to perform the middle tier operations Must be a user centric applications which includes user profiles Ability to iteratively update application once already installed on Azure
Customer Non-Functional Requirements User security (profile and user data is private) Project must scale with user traffic appropriately (throttling) Background operation of fetching materials is efficient (third party libraries and throttling)
Architectural Sequence Diagram
Sequence Diagrams
Demo Show Demo of Cloud Reader Application Login Functionality Atomic CRUD Operations
Design Constraints How to add different search engines? (Modularization) How do different search engines return results? (Hierarchical interfaces, Results -> ImageResult, TextResult) How can we throttle the processing usage? (Thresholds for computed time to complete queues) How can we limit exceeding our allocated storage resources? (User quotas)
Technical Approaches (Overview)
Technical Approaches (Entity Framework)
Technical Approaches (Server Side Framework)
Testing Description Automated unit tests (Entity CRUD Operations, Search engine queries) Visual inspection (Interface interaction) Stress/Performance testing (High/Medium/Low load testing, throttling inspection)
Measurable Milestones Twitter working on one account More than one data source working Migrate application to Microsoft Azure Cloud Full Scale Testing / Real Time Interaction Ability to demonstrate throttling abilities
Risks Learning Curve (New technology, confusing/conflicted documentation) Server side processing Interface Usability (Silverlight issues) Third Party API limitations (Rate limiting on Twitter, Digg, Reddit, ect.) Migrating to Azure Cloud (Compatibility issues) Client does not want the application; instead, they want to know the difficulties we faced
Project Resource Costs Project Hosting (break down on following slide) Microsoft has provided student software site licenses o Visual Studio IDE o Microsoft SQL Server o Windows Server
Hosting Costs
Conclusion A lot of progress has been made and we about on par with our original aggressive goals.
Conclusion Positive Feedback from Microsoft Positive Feedback from Adviser Working Demo produced to perform atomic CRUD operations on entities and user account authentication Progress is starting on the background server operations
Plan for Next Semester Labels o "Creating a Label", "Saving a Label", and "Editing a Label" o 4/30/2010 Rules o "Scheduling Rules", "Rule Based Searching", "view Results", "Remove Results", and "Remove Label" o 5/31/2010 Validation and Throttling o 6/30/2010 Rule Support o 7/31/2010 Search Digg and Twitter o 9/30/2010 Stress Test o 10/31/2010 Final Documentation