lab 1 - power play product description€¦ · web viewpower play was conceived and developed by...
TRANSCRIPT
Running head: LAB 1 – POWER PLAY DESCRIPTION 1
Lab 1 - Power Play Product Description
Addy Alago
Old Dominion University
CS411W
Janet Brunelle
January 8, 2017
Version 1
LAB 1 – POWER PLAY DESCRIPTION 2
Contents
1 Introduction.....................................................................................................................3
2 Power Play Product Description ..................................................................................5
2.1 Key Product Features and Capabilities..........................................................................5
2.2 Major Components (Hardware/Software).....................................................................6
Major Functional Components Diagram.........................................................................6
3 Identification of Case Study...........................................................................................7
Current Process Flow.......................................................................................................7
4 Power Play Product Features and Capabilities..........................................................10
4.1 Prototype Architecture (Hardware/Software)..............................................................10
Object Hierarchy............................................................................................................11
4.2 Prototype Features and Capabilities.............................................................................11
4.3 Prototype Development Challenges............................................................................13
5 Glossary.........................................................................................................................14
References..........................................................................................................................15
LAB 1 – POWER PLAY DESCRIPTION 3
1 Introduction
Every major corporation relies on history to make decisions. This can take many forms, from
quarterly earnings reports, to performance metrics. These certainly play a big role in predicting
future behavior and making decisions. A company may make what appears to be a minor change
in a product, only to find that it causes an unexpected downturn in that products sales. Over
many iterations of history, decisions are honed and fine-tuned. The problem, of course, is that
history takes time to play out.
In 2002, the United States Army had an interesting idea. They developed America’s
Army, a video game of the first person shooter genre. The game was built with the intention of
enticing teenagers to consider the Army as a possible career path. Although originally meant as a
recruiting tool, it was quickly realized that this game could be used as a tool for simulation and
training. The Army was able to build multiple scenarios and study multiple iterations of how
that same scenario would play out. They could also add variables to see how it would affect the
outcomes of these scenarios. The result was obviously beneficial. In a relatively short amount a
time, the Army could gather multiple data points about how certain soldiers would handle
different scenarios or how the same soldier would handle similar scenarios. This allowed them
to develop plans which would lead to predictable best outcomes without the time requirement or
resource consumption.
Power Play seeks to be a similar platform for the power industry and other industries with
similar simulation needs. Power Play was conceived and developed by the Old Dominion
University 2016 CS 410 group. Power Play seeks to provide a gamified front end for power
plant management decisions. These decisions will be fed into the Spark Simulation Engine to
provide analyzable results that can be used by power plant managers to determine best practices.
LAB 1 – POWER PLAY DESCRIPTION 4
The simulation allows plant managers to accumulate multiple data points over multiple users,
and through analysis, these data points can guide future decisions.
In order to for this platform to be successful it must be easily accessible and user friendly.
The web based platform chosen for this project allows it to be used across any device with a
browser. The platform will also provide analyzable results and allow for multiple scenarios so
that data can be collected for decisions across a variety of situations.
Power Play is being developed by Team Black composed of project manager Addy Alago
and team mentor Nathapon Songchiakyou. David Heeschen is the database engineer for the
project. The research team consists of Terrel Kittrell, Ryan Rusnak, and Jack Elder. Algorithm
and UI development is spearheaded by Trai Corte and Nicholas Benfield.
LAB 1 – POWER PLAY DESCRIPTION 5
Lab 1 - Power Play Product Description
2.1 Key Product Features and Capabilities
Power Play will be a gamified version of common power plant decisions. The user will
log in as one of three roles: user, analyst and administrator. A user will log in and play the game.
Upon logging in, they will be greeted by a welcome page with gaming statistics and notable
milestones in their play history, otherwise known as “achievements.” Upon starting a scenario,
the user will be provided with scenario details. These details are meant to prepare and guide the
player’s decisions by providing information on what events will be simulated. The player will
then be greeted with a map of power plants under their care. The map can be drilled down to
specific power grid regions or specific power plants. Several changes will need to be made to
the power plants or regions in order to prepare for the provided scenario. Once these changes are
finalized, the player will submit these changes to the simulator, and an outcome will be modeled
by the Spark Engine, the results of which will be fed back to the front end to be displayed to the
player. After one or multiple rounds, the player will be scored on a number of factors including
plant uptime, productivity, profitability, environmental impact and others.
The analyst role will provide reports and data that can be used to analyze the results. The
decisions leading to best outcomes can then be used to guide real life decisions.
The admin role will allow for user creation and deletion as well as other maintenance
tasks. Future versions of this project will add the ability to load different scenarios.
LAB 1 – POWER PLAY DESCRIPTION 6
2.2 Major Components (Hardware/Software)
Power Play is being developed as a web app. This will allow Power Play to be flexible and
operate on any modern browser.
Power Play will use a Flask web framework with a Python back end. Mongo will be used
for our database.
Lastly the Spark Simulation Engine, provided by Dr. Mamadou Seck, will drive all
simulation.
Major Functional Components Diagram.
LAB 1 – POWER PLAY DESCRIPTION 7
3 Identification of Case Study
This product is primarily being built for Dominion Power. They are a power company
headquartered in Richmond, VA with plants in of West Virginia, Ohio, Pennsylvania, eastern
North Carolina, Wisconsin, Indiana, Illinois, Connecticut, Rhode Island, and Massachusetts
(Dominion Power, 2017). The Power Play system can be adopted for other businesses with
similar simulation and training needs. Dominion Power follows an annual planning process.
This process is cyclical in nature. Forecasting is generated based on the previous year’s
performance and historical year over year performance. The previous year’s operational
performance, financial performance, reliability performance, and production efficiency are
measured against the baseline set by historical year over year performance. This information
guides decision making for the following year to improve upon these four categories. Forecasting
creates reports on expected results. The decisions are put into effect, observed, and documented,
before repeating the entire process at the end of the year.
Current Process Flow.
LAB 1 – POWER PLAY DESCRIPTION 8
This system is not necessarily ineffective. In fact, because of its reliance on known
historical outcomes, it is a very safe way to operate. Decisions reached will not have a large
variance in effects from their historical counterparts. The system does, however, preclude the
possibility of experimentation in decision making. This is good because experimentation can also
cost money, and time, and in some cases can be disastrous.
The system is also rigid and inflexible. This system does not deal with rapid changes
particularly well. If new legislation is enacted, it may change the impact of some of the decisions
made for the year, and in these cases decisions must be made ad-hoc to deal with the new
variables. This would render any decision making model obsolete. In a study conducted by
Strategy&, 57 percent of global energy company executives said “current market models are
already broken and the need for new approaches to deal with a rapidly altering and volatile
business landscape is urgent (Earl, Leslie, Shuva, & Daniel, 2015).” A survey conducted by
McKinsey Global actually found that the more decisions in an average corporation are made
outside of any annual process than within one (Garbuio, Lovallo, & Viguerie, 2009).
By moving decisions from an annual process, to a real time simulator, Power Play
presents two main benefits. Several different scenarios can be modeled and tested through many
different variations of decisions in a short amount of time. The old model is reliant upon
historical data. If a new situation comes about (for example a new piece of legislature is passed),
decisions are effectively made with no baseline. Power Play can create a simulation around the
new piece of legislature, players can then experiment with different ways to tackle the problems
presented. This allows a baseline to be generated in a very short amount of time instead of years.
The other benefit is that experimentation on different scenarios can be done quickly and
with little expense. A power company may not want to make a potentially risky or untried
LAB 1 – POWER PLAY DESCRIPTION 9
decision to tackle a problem due to the cost involved with experimenting in a real environment.
Power Play allows those decisions to be trialed at no expense.
LAB 1 – POWER PLAY DESCRIPTION 10
4 Power Play Product Features and Capabilities
In order to demonstrate the benefits of the Power Play system to corporate decision
makers, the prototype will incorporate the main features and capabilities mentioned in section
2.1 of this document. This will provide proof that the Power Play system can provide results that
can be used in statistical analysis in order to improve decision making. The prototype will
provide the front end of Power Play, and database storage for accumulated data. It will also
demonstrate gameplay behavior for individual rounds played on the system.
4.1 Prototype Architecture (Hardware/Software)
Power Play is being developed on a single virtual machine provided by the Old Dominion
University Computer Science Department. The Virtual Machine will run Ubuntu 14.04 LTS and
host an Apache 2 web server as well as a Mongo Database. In our prototype a single Virtual
Machine will host the database, web front end, and python back end needed for the entire
project.
The front end will be developed using AJAX. The Google maps API will be used for all
mapping functionality (Google, 2017). Design will include a power plant object with several
user modifiable data fields. A region object will be a container of several power plants, and will
include its own variables in order to track several regional changes between simulation rounds. A
state container will hold several regions and track changes at the state level.
LAB 1 – POWER PLAY DESCRIPTION 11
Object Hierarchy.
Algorithms will be simple with getters and setters for these 3 objects. A simulate algorithm will
push these values to the simulation engine and get new values. There will also be algorithms to
verify “achievements,” or personal game milestones, have been reached.
4.2 Prototype Features and Capabilities
The Power Play prototype will demonstrate the following features and capabilities:
LAB 1 – POWER PLAY DESCRIPTION 12
Table 1
Feature List
Features RWP PrototypePlayer FeaturesPlant retirement ✔ ✔ Plant can be deactivatedPlant refurbishment ✔ ✔ Plant can be refurbishedPlant construction ✔ ✔ New plants can be constructed by playerViewable resources ✔ ✔ Resources will be displayed in top info barViewable Environmental Impact ✔ ✔ Viewable by plant, state and region displaysViewable Earnings ✔ ✔ Viewable on top info bar
Administrative FeaturesCreate game scenarios ✔ ! partially implementedCreate and remove player accounts ✔ ✔ Accessible through admin controlsReset collected data ✔ ✔ Accessible through admin controlsAccess player game results ✔ ! partially implementedPlayer update notification ✔ ✔
Analysis FeaturesViewable decision data ✔ ✔ Accessible through Analyst pageViewable event collection data ✔ ✔ Accessible through Analyst pageViewable data collection by type ✔ ✔ Accessible through Analyst pageDownloadable data by region ✔ ✔ Accessible through Analyst pageDownloadable data by date ✔ ✔ Accessible through Analyst page
Note: Creating game scenarios will be partially implemented. The hope is for the final product to
be able to load multiple scenario but for the scope of this prototype there will only be one
preloaded scenario. Accessing game results will also be partially implemented. The finished real
world product will contain robust reporting features with analysis of game results. For the scope
of this prototype, reports will just show raw data with no analysis. The reason for this is that the
analysis will depend on data from our customer, Dominion Power, which will not be made
available in time for this prototype.
LAB 1 – POWER PLAY DESCRIPTION 13
4.3 Prototype Development Challenges
Team Black is facing a number of development challenges. Integration with the simulation
engine may prove to be difficult. Dr. Seck and his team has provided few details as to what data
the engine will be looking for and in what format. It is also possible that the simulation engine
will not be ready in time to integrate with Power Play’s prototype. This challenge is being
mitigated by hardcoding the inputs and outputs of the simulation engine for the prototypes use.
The other development challenge is that we are using several technologies that the team
does not have experience with. Mongo, Google Maps API, and Flask in particular are
technologies that the majority of the team has not used previously. This is being mitigated by
taking boot camp courses on Udemy (Salvatierra, 2017) to learn some of these technologies prior
to the coding phase.
LAB 1 – POWER PLAY DESCRIPTION 14
5 Glossary
Flask: Flask is a micro framework for Python based on Wekzeug and Jinja 2 (Armin, 2017).
Python: Python is an interpreted, object-oriented, high-level programming language with
dynamic semantics. Its high-level built in data structures, combined with dynamic typing and
dynamic binding, make it very attractive for Rapid Application Development, as well as for use
as a scripting or glue language to connect existing components together. Python's simple, easy to
learn syntax emphasizes readability and therefore reduces the cost of program maintenance.
Python supports modules and packages, which encourages program modularity and code reuse.
The Python interpreter and the extensive standard library are available in source or binary form
without charge for all major platforms, and can be freely distributed (Python Software
Foundation, 2017).
PHP: PHP is a widely-used open source general-purpose scripting language that is especially
suited for web development and can be embedded into HTML.
Javascript: an object-oriented computer programming language commonly used to create
interactive effects within web browsers.
MongoDB: MongoDB is an open source, document-oriented database designed with both
scalability and developer agility in mind. Instead of storing your data in tables and rows as you
would with a relational database, in MongoDB you store JSON-like documents with dynamic
schemas (MongoDB, Incorporated, 2017).
LAB 1 – POWER PLAY DESCRIPTION 15
AJAX: AJAX stands for Asynchronous JavaScript and XML. AJAX is a new technique for
creating better, faster, and more interactive web applications with the help of XML, HTML, CSS,
and Java Script. Ajax uses XHTML for content, CSS for presentation, along with Document
Object Model and JavaScript for dynamic content display.
Spark Simulation Engine: Spark Simulation Engine is a system being created to model and
simulate different power distribution scenarios and events. This will provide the back end to the
Power Play Project.
LAB 1 – POWER PLAY DESCRIPTION 16
6 References
Armin, R. (2017). Flask Overview. Retrieved from Flask.org: http://flask.pocoo.org/
Dominion Power. (2017, February 4). Dominion Power company Profile. Retrieved from
https://www.dom.com/about-us/company-profile
Earl, S., Leslie, H., Shuva, C., & Daniel, W. (2015, November 20). Retrieved from Strategy&:
http://www.strategyand.pwc.com/reports/utilities-preparing-for-growth
Garbuio, M., Lovallo, D., & Viguerie, P. (2009, January). Mckinsey & Company Strategy &
Corporate Finance. Retrieved from
http://www.mckinsey.com/business-functions/strategy-and-corporate-finance/our-
insights/how-companies-make-good-decisions-mckinsey-global-survey-results
Google. (2017). Google.com. Retrieved from Google Maps:
https://enterprise.google.com/maps/products/mapsapi.html
MongoDB, Incorporated. (2017). https://www.mongodb.com/. Retrieved from
https://www.mongodb.com/: https://www.mongodb.com/
Python Software Foundation. (2017). What is Python? Executive Summary. Retrieved from
python.org: https://www.python.org/doc/essays/blurb/
Salvatierra, J. (2017). REST APIs with Flask and Python. Retrieved from Udemy.com:
https://www.udemy.com/rest-api-flask-and-python/