Matthew Anthos Thomas Reale Ram Chava Kimberly Low Nacreous Cloud Server
Description • Nacreous is a Cloud Computing Server which allows users to access programs on a server. • An administrator runs the server and sets up the available programs. • Users log in and use programs.
Administrator • Sets user access to programs by using groups • Users are put into groups, each group has a set of programs it can use. • Can start and shut down the server
Why use Nacreous? • If your hard drive has no room to store the large programs you want to access. • If the processing power of your computer can’t handle the program you want to use. • If you want to save and edit a file from anywhere, not just from a single computer. • Nacreous lets you access programs and files anywhere, without being tied to a single computer.
Own a Business? • Have more users than licenses for your program? Manage how many instances of the program are being used at any time. • Don’t want your users messing with programs they don’t understand? Set up groups and allow them access only to what they need.
Are you a parent? • Moderate your children’s access and stop them from messing with files or programs they won’t understand. • Protect your personal files from being accessed and modified by your children.
Nacreous • Only 99 payments of $9.99!! • All Major Credit Cards Accepted(Excluding American Express). • Call within the next 10 minutes and receive a free T-Shirt! • 1-800-NACREOUS
Uses a 2 layer design Graphical User Interface (LUA) Back-end Functionality Software Design
Graphical User Interface • Implemented in Lua, a scripting language • Implemented using functions • Event triggered based on the mouse and keyboard. • Consistent layout with client and server
Back-End Functionality • Implemented in C++ • Both Client and Server use a common library • Library stores functions for creation of all types of messages • Library stores all message structures • Could use a factory pattern to generate messages • Users control interaction with windows
Back-End FunctionalityServer • Management of Users/Groups/Programs are managed by a single master class. • This class contains instances and other classes ask for members by name Server Manager Users Groups Programs Request(name) Receive(name)
Back End FunctionalityNetworking • Networking System uses Boost ASIO library • Creates sessions each of which manages one client • No communication between sessions • Made up of functions to handle messages • Receiving functions is asynchronous • Writing is Synchronous MessageRecieved Session HandleMessage SendResponse?
Overall System Design Client Server Graphical User Interface Graphical User Interface Server Manager Back End Functionality Library Back End Functionality Boost ASIO Boost ASIO
What worked • Network connections • Communication between client and server • Management of users, groups, and programs • Change password • Start and Stop server
What didn’t work • Retrieve Password • The main purpose of the program, to run programs on server
Group Dynamics • Strong communication between members. • A leader appeared for separate parts of the project. • Decisions made as a team. • Lacked desire to get project completed early.