conversing in the cloud ryan kupfer, scott wetter, bryan welfel, shekhar pradhan
TRANSCRIPT
![Page 1: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/1.jpg)
Conversing in the Cloud
Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan
![Page 2: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/2.jpg)
Outline
MixPool defined The hurdles A prime example of an application
utilizing cloud technology The technologies The architecture of the app and its
deployment on Amazon Web Services
![Page 3: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/3.jpg)
MixPool Defined
The MixPool app consists of two main components: Connect and Decide.
Groups of “friends” are formed in the Connect component.
Groups of “friends” can decide what to do and where to go in the Decide component.
![Page 4: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/4.jpg)
Application Hurdles
Supporting asynchronous chatAWS instances are optimized for their
specific tasksProcessing applications (bots) exist in the
cloud
User count fluctuatesScale up and scale down quickly
![Page 5: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/5.jpg)
System Architecture
![Page 6: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/6.jpg)
Technologies
Amazon Web Services, the “Powered by Amazon Web Services” logo, [and name any other AWS Marks used in such materials] are trademarks of Amazon.com, Inc. or its affiliates in the United States and/or other countries.
![Page 7: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/7.jpg)
Lightweight, high-performance web server and reverse proxy server
Load balancing Serves static content:
ImagesVideoCSSJavascriptFlash (swf)
![Page 8: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/8.jpg)
Most common web server Very stable Great for serving dynamic content Used for CakePHP application
![Page 9: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/9.jpg)
CakePHP
CakePHP is an open source web application framework for producing web applications. It is written in PHP, modeled after the concepts of Ruby on Rails.
![Page 10: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/10.jpg)
MySQL
Open source Great community Good performance Scalable if necessary
ReplicationClustering
![Page 11: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/11.jpg)
Bots
Connect to chat servers and process conversations
We chose Java for our bot developmentOne of the most popular OOP languagesEasy to find programmersMany libraries available to complete our
tasks quickly
![Page 12: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/12.jpg)
NLP Suggestion Bot Chat room messages are analyzed in real time
to identify the needs of users (e.g., “casual place”) and occurrences of restaurant names, cuisines and dishes.
Sentiments expressed in the message regarding these are identified.
Based on these sentiments and user needs, scores are assigned to restaurants, cuisines, and dishes.
A restaurant is suggested based on this score and other data stored in our database.
![Page 13: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/13.jpg)
History Bot Chat rooms are asynchronous
Thus, users may join at different times.A user that joins later needs to be provided
earlier chat messages and related restaurant suggestions.
Chat rooms can be intermittently active/inactiveAn inactive room can become activated.Earlier chat room messages and related
restaurant messages need to be provided to all room users.
![Page 14: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/14.jpg)
InstanceMonitor
• Starts with each bot EC2 instance• Allows us to control the individual bot
applications remotely– XML-RPC API• Statistics that BRICS uses to figure out the best-
fit instance– CPU load– Memory used– Open socket connections
![Page 15: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/15.jpg)
BRICS (Bot Request and Instance Creation System) Central hub for bot requests Load balancing bots between the
instances Requests received from the IRC servers
whenever a room is created and joined Request is processed and given to the
best-fit instance InstanceMonitor on the best-fit instance
handles the task
![Page 16: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/16.jpg)
IRC
Internet Relay Chat Created in 1988 Very simple, well established TCP/IP
based asynchronous chat system Used for our real-time chat system Flash is used on our website to connect
to the IRC servers and interact with the web application
![Page 17: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/17.jpg)
Amazon Web Services (AWS)
• Pay as you go cloud computing– Simple pricing (hours used, data transferred)
• Use existing infrastructure to rapidly build complicated systems– Run almost anything (you choose the OS,
programming language, etc.)• Scalable
– Add compute capacity and storage immediately• Good for planning
– Ability to test different infrastructure configurations to find optimal setup
![Page 18: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/18.jpg)
Amazon Elastic Compute Cloud (EC2)• Web service that provides resizable
compute capacity in the cloud• Select either a pre-configured instance
template or create one• Configure security/network access• Choose hardware configuration:
– Standard Instances– High-Memory Instances– High-CPU Instances
![Page 19: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/19.jpg)
EC2 Pros
• Start and stop server instances within minutes• Pay only for the time you have your instance up
and for data transfer to and from your instance. • Acts just like a regular remote server
– Connect to it and start using it immediately – Full root access
• Convenient and easy to use web UI for managing instances
• Firewall settings for groups of instances
![Page 20: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/20.jpg)
EC2 Cons Few locations to choose from No control over the specific hardware in use Instance crash/termination: all the data
stored on it is gone
![Page 21: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/21.jpg)
Amazon Relational Database Service (RDS) Simple to deploy Handles database management tasks Easy to port an existing MySql database Scalable, reliable, secure Designed to integrate with other AWS
![Page 22: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/22.jpg)
System Architecture
![Page 23: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/23.jpg)
System Architecture
![Page 24: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/24.jpg)
System Architecture
![Page 25: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/25.jpg)
![Page 26: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/26.jpg)
![Page 27: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/27.jpg)
System Architecture
![Page 28: Conversing in the Cloud Ryan Kupfer, Scott Wetter, Bryan Welfel, Shekhar Pradhan](https://reader036.vdocuments.mx/reader036/viewer/2022062804/56649ef15503460f94c02c3a/html5/thumbnails/28.jpg)
Questions?