INF 123 Software Architecture, Distributed Systems & Interoperability
Assignment 2
Due date: Thursday, 4/11 by midnight
Your mission:
Login to the Avalon virtual world and monitor the network traffic between the SL viewer and the virtual world server as you do specific actions in the viewer.
Form of submission:
A PDF or Word file with your answers. No code yet. Use EEE for submission.
Goals:
Necessary software components:
Additional component for Windows:
Linux/Mac users:
You can do part 1 of this homework in Mac. Although you can also do part 2 in Mac using the mono framework, I strongly recommend that you get a VM and run Windows for doing the homeworks in this course. You will have a lot less problems. There are also a few Windows computers the ICS computer lab that have SecondLife version 1.23 installed; they are the systems with the green markings on the following map of the CS 364
Preliminaries:
1. Get an account in the Avalon virtual world.
With a web browser, visit http://ucigrid03.nacs.uci.edu:9004/wifi and create an account for yourself. Please use your real name, but do not use your UCINet password. Your name will be logged in your visits to the world.
2. Configure the SL viewer with the Avalon login address.
If in Windows:
Make a copy of the shortcut for Second Life in your desktop.
Rename the copy Avalon.
Right-click, choose Properties. Replace the loginuri with -loginuri http://ucigrid03.nacs.uci.edu:9003
Save.
If in Mac:
Create a file called launch-avalon.sh and paste the following line into it:
/Applications/Second\ Life.app/Contents/MacOS/Second\ Life -loginuri http://ucigrid03.nacs.uci.edu:9003
Save.
Part 1. (20 points)
Goal: understand the viewer user interface enough to interact with the world.
Login to Avalon. If in Windows, double-click the Avalon shortcut, and take it from there. If in Mac, run the launch-avalon.sh script, and take it from there. You can find a lot of information about the Second Life viewer on the Internet -- Google at will. Once you login:
a) Find the Bubble Sort object (near the black panels), and make it run. Take a picture that shows both your avatar and the sorted sticks. Then make the sticks disappear. Take another picture showing that the sticks are gone.
Deliverable: the 2 pictures you took in your submission file.
b) Find the build area. Build an object there, and call it your name. Make it as simple or as sophisticated as you want, just don't make it too big. Take a picture of it. Leave the object there.
Deliverable: your object placed inworld and the picture of it in your submission file.
Logout.
Part 2. (50 points)
Goal: see network protocols in action.
For this, you are going to introduce a proxy program between your viewer and the virtual world server. The proxy is libomv's GridProxy, a program that lets you monitor the traffic between your viewer and the remote server. To start the proxy, run libomv's bin/WinGridProxy.exe.
If in Windows: you must install the .NET framework. After that, simply double-click on WinGridProxy.exe.
If in Mac: you must install mono. After installing it, run a terminal window, type the following command and make sure that you get the same result wrt the version number:
$ mono --version
Mono JIT compiler version 2.6.3 (tarball Wed Mar 10 18:18:12 MST 2010)
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Notification: Thread + polling
Architecture: x86
Disabled: none
Then, change to libomv's bin directory and type:
$ mono WinGridProxy.exe
The result for both Windows and Mac should be a window that looks like this:
We're now ready to do part 2!
You will notice that WinGridProxy will start reporting all the network traffic between your viewer and the Avalon server. You will also notice that some packets are very "noisy". Turn those off by clicking on the "Filters" tab and unselecting the noisy packets. Click back the "Summary" tab. Answer the following questions:
a) What types of packets are involved when you move your avatar? Please state the direction of the packets (viewer to server, or server to viewer), and the info that they carry.
b) What types of packets are involved when you right-click on an object and then choose "Edit"? Please state the direction of the packets, and the info that they carry.
c) What types of packets are involved when you upload an image to the server? (this is done in the SL viewer with File->Upload->Image) Please state the direction of the packets, and the info that they carry.
d) Go back up to the beginning of the communication sequence and take a look at the login request/response messages.
i) What protocol is being used for login?
ii) What information does the viewer send in the request?
iii) What information does the server send back?
Part 3. (30 points)
Goal: see the big picture.
a) Draw one or two pictures depicting both the system and deployment architectures that describe the setup in part 1. Show concrete IP addresses and ports.
b) Draw one or two pictures depicting both the system and deployment architectures that describe the setup in part 2. Show concrete IP addresses and ports.
c) From analysis of the configuration options of WinGridProxy, namely the Listen IP Address and port, describe with detail (picture and text) a third deployment architecture that could also be done involving these 3 compoments.