Presentation is loading. Please wait.

Presentation is loading. Please wait.

MS Tech-Ed 2006 Iron Architect Competition Greg Cogdell Milliken & Co.

Similar presentations


Presentation on theme: "MS Tech-Ed 2006 Iron Architect Competition Greg Cogdell Milliken & Co."— Presentation transcript:

1 MS Tech-Ed 2006 Iron Architect Competition Greg Cogdell Milliken & Co.

2 Problem Statement Iron Architects Announcement “You have been asked to create an architecture that dynamically allocates sessions for the presentations at TechEd 2007. Aware of the people’s presence throughout the conference, the new system must dynamically allocate the rooms for a sessoin 30 minutes before its due to start based on: –Location and number of attendees in the area –Attendees that have registered their schedule –Location of speaker –Availability of suitable room for session… The system must also automatically provision the speakers’ machines by sending VPCs, slides, etc. to the machine in time for the session.”

3 Assumptions… Hardware budgets are limited. Attendees that have not registered their schedule will not be included in the room allocation algorithm. Resources (PCs, Screens, etc.) are assigned to a room and remain in that room as opposed to being dynamically assigned. We want to schedule a session even if 0 attendees have registered for the session. We have access to the physical layout and dimensions of the convention center. We want to be able to add and remove rooms from consideration. Getting attendees into their registered sessions is the primary focus and optimizing the location of each session is the secondary focus. “Breakout” rooms are single purpose and only used for sessions.

4 Data – Session Definition Data Session ID Session Name Session Instructor Room Resources Required Files to Provision

5 Data – Calendar Definition Data Session Date Time Duration

6 Data – Attendee Definition Data Attendee Id Attendee Name Accessibility Need Registered Email Registered RSS

7 Data – Instructor Definition Data Instructor Id Instructor Name Accessibility Need Registered Email Registered RSS

8 Data – Schedule Definition Data Attendee Calendar Entry

9 Data – Layout Definition Data Convention Center Name Floor (can repeat) –Width –Length –Placement of walls –Stair locations Room (can repeat) –Capacity –Computer ID –Floor –Location This layout will be logically overlayed with 5x5 grid Utilize the center of a room as its location

10 Logical Application – Data Maintenance Maintain the sessions Maintain the calendar Maintain the attendees Maintain the convention center layout Maintain the rooms When exiting the application, prompt the user for whether or not they want to optimize the “paths” based on the current layout data. –To optimize the “paths” -Basically we want to determine the path from any point in the convention center to the center of each defined room. Then since this is relatively static information, we will store the results and then look them up as needed in the optimization algorithm. -This would essentially be based on a path finding algorithm similar to what is used in many video games (for example: the A* algorithm) -For every defined point in the convention center, use the path finding algorithm to determine the optimal path to be used to travel from the given point to each room

11 Logical Application – Attendee Self Help Application Securely allows users that have been defined as registered attendees to choose their schedule. Gives the option to register for notification via RSS feed or email.

12 Logical Application – Optimization Workflow The primary application server will have a standard scheduling/batch tool available to it. This might be an application such as Active Batch or a custom Windows service. In either case, the scheduling algorithm will use the calendar definition as input and will “wake up” at each point 30 minutes before a session is defined to start and begin the Optimization workflow. The Optimization workflow will –Run the optimized allocation logic to determine the ideal room allocation solution –Run the notification logic to notify all attendees and instructors –Run the provisioning logic to perform any remaining setup –Notify appropriate personnel if any error occurs

13 Logical Application – Optimization Workflow – Allocation Logic For each session –limit the calculation to rooms whose capacity > the number of registered attendees –Determine the total path length for all attendees to get to the available rooms –Using a weight based approach, calculate a total score based on 1)the difference between the best path and the second best path and 2) the difference in available capacity and expected utilized capacity and 3) the number of rooms available to satisfy this session. This allows customization as to the relative importance of capacity utilization and path minimization (the relative importance of which is influenced b the makeup of a given convention center and the number of sessions planned for any given timeframe). –“Commit” to the solution the session / room allocation with the best overall score –Repeat until all sessions are scheduled –NOTE: Much of this algorithm could be encapsulated in WF business rules.

14 Logical Application – Optimization Workflow – Notification Logic –For each session, notify attendees for each session based on registered email addresses Notify all instructors first Notify all attendees –Update RSS feeds –Update data used to drive a simple web application that constantly scrolls through all sessions in the current time frame (alphabetically) and shows the room assignment. This web application can be displayed from the many terminals set up for existing “CommNet” application.

15 Logical Application – Optimization Workflow – Provisioning Logic –Virtual Machines and slides should be committed to a portable format (DVD, portable hard drives, etc.) as a standard backup. The instructor should have this with them for the session. –A standard Sharepoint site should be established for each track and allow easier access to the session related information. –If the infrastructure can be set up to support it, the Virtual PCs should be run over the LAN from the PCs in the room. –For files that must be copied to the machines, look up the Files to Provision for each session and utilize SMS (or an equivalent tool) to push the files to the defined Computer ID for the allocated room. Given the relative size of a.vhd file and the necessity of “burst” sending the information in the exact same time frame as a break, the approach of copying the files will put a huge strain on the network resources.

16 Observations / Conclusions Several technologies are emerging (WWF, WCF) that will enable alternative solutions. Since those technologies are not GA, I have chosen to exclude them from this solution. A given attendee’s position at any point in time is never stored and is therefore secure. There are two places where parallel computing approaches could allow you to scale out the solution. The first of these is the determination of the ideal path from any given point to any given room. Since this is relatively static data and a relatively infrequent calculation… this would be of limited benefit. The second and more important place is in the allocation algorithm. In this logic, you can parallelize the scoring for each individual session and then bring back the scores for the overall decision.


Download ppt "MS Tech-Ed 2006 Iron Architect Competition Greg Cogdell Milliken & Co."

Similar presentations


Ads by Google