Reference textbook for the course:
Java Network Programming and Distributed Computing
by Reilly and Reilly. Published by Addison-Wesley Professional.
A pdf version of the textbook is typically available from a Web search. Here is the
author's site for the book.
Computing Environment. You will be developing software to run on two machines
(computing environments) for the class. The development enviroment will be used for
code development, and running clients. The development environment should be
Debian Jessie (8.5) Linux running under Virtual Box on your laptop or desktop computer.
The deployment machine will be Raspberry Pi also running Debian Jessie (8.0) Linux, and it
will not be used for code development, but will be used to run servers.
Some servers you'll be running on the Raspberry Pi are examples made available
by the instructor, others, you will develop.
To support course outcomes, the development and deployment
environments are Linux, and they should be configured so they can reach other via
Usually the easiest is to physically connect them with an ethernet cable.
You may also connect them wirelessly using a router,
Using wireless will make it difficult to
use the Raspberry Pi in the classroom. All of the projects in
this course are submitted in a format that is buildable on these
environments. The examples we will be using are developed to
run (only) on these environments, and all classroom discussions will focus only on
Development Environment. For development you should use
either a laptop or a desktop computer. Your development
environment should be a virtual Debian Jessie system.
If you don't have a machine
that boots into a Debian Jessie (8.5) Linux system, you will need to download,
install and configure a Debian Jessie Linux system as a guest system on
We will be installing Java SE JDK 9, Ant, and GNU C++
with some additional libraries for each environmemnt. Here are
instructions for setting
up Virtual Box and its guest Linux machine.
Deployment Environment. Each student should
purchase and configure a Raspberry Pi. When you search, you'll find there
are currently 3 different models available. The least capable will work fine for
the course, but you should consider purchasing the most recent version since it may
be useful in subsequent courses. Don't plan to do development on the Raspberry
Pi. It is not capable enough to be a good development environment,
but it will work fine for building and running the server components.
Here's a typical parts list for the deployment
Raspberry Pi. The Raspberry Pi is
an inexpensive system on a chip computer. See the
Raspberry Pi Wikipedia page. If you purchase Raspberry Pi 1 Model B or
newer, it will be fine for the course. RPi 3 model B has
1.2GHz 64-bit quad-core ARM processor with 1GB of onboard
RAM, but does not have a disk. Instead of a disk, it uses an SD
card (micro SD, depending on model).
The Raspberry Pi 3 is available from Amazon with a case and wireless
$47 at the time this page was created. You will also need the parts,
below, whether you buy them as a package, or otherwise have them.
SB Raspberry Pi Case.
Available for under $10.00.
The case is optional, but recommended. Buy one that matches
your RPi model
C&E USB to MicroUSB cable. Available from several sources
for a couple dollars. You may have one, as they are commonly
used for cameras and other digital devices.
5V 1A USB Port Power Supply. This is available from
$3 to $10. This
is to plug the cable above into 110V AC wall outlet. On OSX,
if you have a laptop with USB version 3, then its USB ports provide
5V at 900mA. The Raspberry Pi Model B specs call for 700 mA. I've
powered my Raspberry Pi with a Mac USB2, which provides 5V 500mA,
with no problem, but I wouldn't connect any USB devices to the Pi's
USB ports and expect them to also be powered by a laptop's USB port.
If you have a laptop with USB3 then it
should (you should check the specifications of the laptop to be
sure) provide sufficient power for the Raspberry Pi.
3 ft of RJ45 Cat5e cable. To bring the RPi to class,
please do NOT plan to connect it using ASU wireless.
Instead plan for a direct connect to your laptop. Plan to use
a short ethernet cable to connect your laptop to the Raspberry Pi.
The setup instructions in the first assignment show how your
laptop can provide internet access for the Raspberry Pi.
SD Card. You won't need more than 12GB for this
class and the faster the better. The Raspberry Pi boots from
the SD card and uses it as the disk for its file systems.
Don't get an SD card that's pre-loaded with the Raspberry Pi
operating system. They don't come with the OS that we'll be using:
Raspberry Pi's Debian Jessie. Setup is straightforward.
Incase you are hesitant to buy a Raspberry Pi, you'll likely find
other uses for it besides this course. We won't be using any of the
IO capabilities of the device, but if you take either the sensors and
actuators course or the embedded C class, you'll likely make use of
your Raspberry Pi. You can also configure it with your TV for video
and audio playback, as well as other useful server tasks.
Building the software system on your Raspberry Pi. Our goal is to
configure a Debian Linux Jessie on the Raspberry Pi (often referred to as
Raspbian) with a user account for you. The Raspberry Pi should be connected
to your development laptop (desktop) via a direct ethernet connection
(not wireless) and configured so as to share the laptop's wireless internet
connection. Here are
references and directions for setting up your Raspberry Pi. And, here is another
quick setup guide.
And, here is yet another
quick setup guide.
While there are other options for the system running on Raspberry Pi, we
will be using Debian Jessie for Ser321. If you'd like to know more
about administering this Linux operating system get the Administrator's