Network Applications Development
Purpose of Course showclose
User dependency on the Internet increases every day; nowadays, everyday tasks like paying bills, communicating with others, and applying for jobs are all routinely carried out via the Internet. While the Internet represents a huge network, it is meaningless without the applications that it supports. These applications enable user interaction and facilitate everyday activities. In this course, we will learn about the design and implementation of network-based applications, focusing on Object-Oriented Programming and programming techniques both at the application layer and the transport layer of the TCP/IP protocol stack. Additional concepts covered include text transport (moving text from one computer to another over the network), data transport, object transport, remote function calls, and, finally, class transport. You will approach these concepts from an Object-Oriented point of view, learning to implement design patterns in your code in order to ensure software reusability (a highly desirable feature in network applications).
Course Information showclose
Welcome to CS407 Network Applications Development. Below, please find general information on this course and its requirements.
Course Designer: Rose Wise
Primary Resources: This course is comprised of a range of different free, online materials. However, the course makes primary use of the following materials:
- David J. Eck's Introduction to Programming Using Java, 6th edition
- Oracle's J2EE(TM) 1.4 Tutorial
Time Commitment: This course will take approximately 90 hours to complete. Each unit includes a “time advisory” that lists the amount of time you are expected to spend on each subunit. These should help you plan your time accordingly. It may be useful to take a look at these time advisories and determine how much time you have over the next few weeks to complete each unit and then set goals for yourself. For example, Unit 1 should take you 9 hours. Review your calendar and schedule to complete subunit 1.1 (a total of 2 hours) on Monday night; subunit 1.2 (a total of 4 hours) on Tuesday night; subunit 1.3 (a total of 3 hours) on Wednesday night; etc.
Requirements for Completion: In order to complete this course, you will need to work through each unit and all of its assigned materials. Pay special attention to Unit 1, as this unit will lay the groundwork for understanding object-oriented coding and the more advanced programming concepts presented in the later units. You will also need to complete the Final Exam.
Note that you will only receive an official grade on your Final Exam. In order to “pass” this course, you will need to earn a 70% or higher on the final exam. Your score on the exam will be tabulated as soon as you complete it. If you do not pass the exam, you may take it again.
Tips/Suggestions: You will be using two major online texts for reading assignments in this course. You may want to download them to your personal “e-bookshelf.” The sites do not require any personal information.
Review the Preface in each text for information about additional usage tips for each book. Once you download the enterprise java book, navigation does not automatically use your file name. For that reason, each subunit includes the file name you may need to open manually.
- The enterprise text is a minus-one edition of the version currently for sale by the publisher. The free CD may no longer be available, so it is not required.
- Be sure to use the links to the Oracle website, which provides tutorials with the most current information.
- The best way to learn is to actually code, test, and run all examples and exercises. The more you do, the more you learn!
- If you have a problem with a program, step away for a glass of water or a brief walk. Then, review the code anew for what is there, not what you want to be there. A fresh look at it usually will help you identify the coding flaw quicker.
- Some concepts can be presented in different ways. Therefore, if you are confused by your text, refer to any of the other reference materials in the unit as they present the same material, just in a different style. Seek understanding, not just completion.
![]() |
A version of this course is also available in iTunes U.
Preview the course in your browser or view our entire suite of iTunes U courses. |
Learning Outcomes showclose
- Code solutions using the fundamental concepts of object-oriented programming in Java.
- Compare and contrast the usage of the Java APIs for each of the different network protocols with emphasis on the application and transport layers.
- Explain how consistency and reusability are achieved in network processing from input through output.
- Complete a variety of introductory to complex network programming tasks utilizing Java.
- Solve problems that use XML to activate Java.
- Compare and contrast object sharing with Java RMI and SOAP.
Course Requirements showclose
√ Have access to a computer.
√ Have continuous broadband Internet access.
√ Have the ability/permission to install plug-ins or software (e.g., Adobe Reader or Flash).
√ Have the ability to download and save files and documents to a computer.
√ Have the ability to open Microsoft files and documents (.doc, .ppt, .xls, etc.).
√ Have competency in the English language.
√ Have read the Saylor Student Handbook.
√ Have completed CS101, CS102, CS107, CS201, CS202, and CS301 from “The Core Program” in the Computer Science discipline.√ Have completed CS103/MA101 and CS104/MA102 from the “Math Requirements” section of the Computer Science discipline.
√ Have completed CS402 or an equivalent fundamental LAN course.
Unit Outline show close
Expand All Resources Collapse All Resources
-
Unit 1: Getting Prepared
This first tutorial walks you through installing java and the NetBeans package for a graphical aid to programming in java. Just compare your screen with the one provided before proceeding to the next step in the tutorial. You need to be comfortable that you can create and test java code as you begin this course.
Unit 1 Time Advisory show close
Unit 1 Learning Outcomes show close
-
1.1 Installing Java
- Reading: Oracle's “Getting Started: The Hello World Application”
Link: Oracle's “Getting Started: The Hello World Application” (HTML)
Instructions: Please complete the entire reading for step-by-step instructions on how to install Java and NetBeans. As you read this section, pay attention to the terms IDE and JDK. What is the JDK? What is an IDE and what is its purpose?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Getting Started: The Hello World Application”
-
1.2 Checkpoint
- Assessment: Oracle’s “Questions and Exercises: Getting Started”
Link: Oracle's “Questions and Exercises: Getting Started” (HTML)
Instructions: Please complete all of the questions and problems provided. Check your work against the solutions provided.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assessment: Oracle’s “Questions and Exercises: Getting Started”
-
1.3 Review of Basic Object-Oriented Concepts
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapters 1-4”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapters 1-4” (PDF)
Instructions: Please review Chapters 1 through 4. Start with the quiz at the end of Chapter 1, and use the link provided by the author to check your answers. If you missed a question, go to that concept in the chapter and review that concept. Repeat this process for Chapter 2. If you miss several questions, read all of Chapter 2 and try the quiz again. Once you feel comfortable with the material in Chapter 2, proceed to Chapter 3. Repeat this process for Chapters 3 and 4.
These chapters assume Java is your first programming language. They are included here so that you might review programming terminology before jumping into the material for this course. Be sure that you are familiar with all of the concepts in these chapters, especially if it has been a while since you took the pre-requisite programming course.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapters 1-4”
-
Unit 2: Object-Oriented Programming in Java
In this unit, you will review the basics of Object-Oriented Programming in Java, discussing the fundamentals of classes and objects, function creations and calls, and encapsulation and data hiding. If you have not yet created multi-threaded Java applications, the second part of this unit will introduce Java threads.
Unit 2 Time Advisory show close
Unit 2 Learning Outcomes show close
-
2.1 Object-Oriented Programming in Java
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.1: Objects, Instance Methods, and Instance Variables”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.1: Objects, Instance Methods, and Instance Variables” (PDF)
Instructions: Please read all of Section 5.1. This is an introduction to object-oriented thinking for programming in Java. Compile and run the code provided. Compare and contrast a “getter” method with a “setter” method.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.1: Objects, Instance Methods, and Instance Variables”
-
2.2 Classes and Objects
- Reading: Oracle's “Object-Oriented Programming Concepts”
Link: Oracle's “Object-Oriented Programming Concepts” (HTML)
Instructions: Please read this page very carefully for an overview of the six concepts to object-oriented programming. These concepts apply to the topics outlined in sub-subunits 2.2.1 through 2.2.6. For these sub-subunits, you will be reviewing each concept in more detail.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Object-Oriented Programming Concepts”
-
2.2.1 What Is an Object?
- Reading: Oracle's “What Is an Object”
Link: Oracle's “What Is an Object?” (HTML)
Instructions: Please read this entire webpage. Compile and run the sample code. What is the advantage of bundling code to create objects?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “What Is an Object”
-
2.2.2 What Is a Class?
- Reading: Oracle's “What Is a Class?”
Link: Oracle's “What Is a Class?” (HTML)
Instructions: Please read this entire webpage. Compile and run the sample code. Does Java allow you to run code that does not include a “main” method?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “What Is a Class?”
-
2.2.3 What Is Inheritance?
- Reading: Oracle's “What Is Inheritance?”
Link: Oracle's “What Is Inheritance?” (HTML)
Instructions: Please read this entire webpage. Compile and run the sample code. What is a “superclass,” and what is its role in coding in Java?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “What Is Inheritance?”
-
2.2.4 What Is an Interface?
- Reading: Oracle's “What Is an Interface?”
Link: Oracle's “What Is an Interface?” (HTML)
Instructions: Please read this entire webpage. Compile and run the sample code. What is an interface, and what is its role in coding in Java?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “What Is an Interface?”
-
2.2.5 What Is a Package?
- Reading: Oracle's “What Is a Package?”
Link: Oracle's “What Is a Package?” (HTML)
Instructions: Please read this entire webpage, and consider the following questions. What is a Java API? What can you do with an API in Java? What is the importance of the Java platform API specification?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “What Is a Package?”
-
2.2.6 Checkpoint
- Assessment: Oracle's “Questions and Exercises: Object-Oriented Programming Concepts”
Link: Oracle's “Questions and Exercises: Object-Oriented Programming Concepts” (HTML)
Instructions: Please complete the questions and exercises on this page. Then, click the link provided on the page to check your work.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assessment: Oracle's “Questions and Exercises: Object-Oriented Programming Concepts”
-
2.3 Creating Classes
- Reading: Oracle's “Classes and Objects”
Link: Oracle's “Classes and Objects” (HTML)
Instructions: Please read this tutorial very carefully. This tutorial walks you through creating classes and using them to create and use objects to program in Java. There are multiple links to material covering six topics with sample code to compile and run. In addition, five self-check links to questions and exercises are provided throughout the material. The outline in the left-hand frame at each link will help you check that you do not skip any relevant information. Once you have completed a link, click the “next” button at the bottom of that screen to access the next topic. The six topics are: classes, objects, more on classes, nested classes, enum types, and annotations. The material increases in difficulty as you progress through the topics. Note that the last three topics are revisited in more detail as you proceed through this course, so do not burn yourself out trying to master them this early in your study of Java programming.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Classes and Objects”
-
2.4 Object Messages and Messages Categories
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.2: Constructors and Object Initialization”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.2: Constructors and Object Initialization” (PDF)
Instructions: Please read all of Section 5.2, which covers three unique aspects of programming with Java. Note that this reading material has been divided into the three parts covered below as subunits 2.4.1 Initializing Instance Variables, 2.4.2 Constructors, and 2.4.3 Garbage Collection.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.2: Constructors and Object Initialization”
-
2.4.1 Initializing Instance Variables
Note: This subunit is the first segment of the reading assigned beneath subunit 2.4. Please focus on the paragraphs below the first heading until you reach the Constructors heading. What is an instance? What is its purpose?
-
2.4.2 Constructors
Note: This subunit is covered by the second segment of the reading below subunit 2.4. Please focus on the paragraphs below the Constructor heading until you reach the Garbage Collection heading. What is a constructor? Describe how a constructor is used.
-
2.4.3 Garbage Collection
Note: This subunit is covered by the reading below subunit 2.4. Please focus on the paragraphs below the Garbage Collection heading. What is garbage? Why do the current versions of Java manage garbage?
-
2.5 Encapsulation and Visibility
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.3: Programming with Objects”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.3: Programming with Objects” (PDF)
Instructions: Please read all of Section 5.3 through the end of Section 5.7. Note how modifiers are used to control access to the class members.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 5.3: Programming with Objects”
-
2.5.1 Encapsulation Checkpoint
- Assessment: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 5”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 5” (PDF)
Instructions: Please complete the exercises for subsections 5.1 through 5.7. Each exercise identifies the subsection it is based on. Review that subsection if you need more information before completing that exercise. When you have finished, solutions are found at the link to the right of the question.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Assessment: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 5”
-
2.6 Interfaces
- Reading: Oracle's “Interfaces”
Link: Oracle's “Interfaces” (HTML)
Instructions: Please complete the entire Interfaces tutorial. Compile and run the samples provided on each page. This first page is a review of interfaces introduced in a prior subunit. Click next at the bottom of the page to see how to create an interface. Compile and run the sample code provided to create an interface before moving to the next page. There you will see how to implement the interface you created. The next page shows you how to use an interface to create a new reference data type. What are the restrictions in using an interface as a type?
The last page shows you how to create a new interface to modify an existing interface. Once you compile and run the samples on this page, the next link will take you to a summary of the interface tutorial. Then click the next button to access the self-check exercises and problems. Complete all of the items before using the link provided to check your work.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Interfaces”
-
2.6.1 Checkpoint
- Assessment: Oracle's “Questions and Exercises: Interfaces”
Link: Oracle's “Questions and Exercises: Interfaces” (HTML)
Instructions: Please complete the questions and exercises on this page. Then, click the link provided on the page to check your work.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assessment: Oracle's “Questions and Exercises: Interfaces”
-
2.7 Abstract Classes
- Reading: Oracle's “Inheritance”
Link: Oracle's “Inheritance” (HTML)
Instructions: Please complete all nine of the Inheritance subtopics included in this resource. You will look at overriding and hiding methods, polymorphism, hiding fields, using the keyword super, object case as superclass, writing final classes and methods, abstract methods and classes, summary of inheritance, and questions and exercises. The menu on the left-hand window can be used to check that you complete all of the material in this tutorial.
As you work through each subtopic, you will need to compile and run the examples provided. Then, review the summary before attempting the self-check. Once you have completed all of the questions and exercises, use the link provided on the page to check your work. Note that an interface is not an abstraction. Why not?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Inheritance”
-
2.7.1 Checkpoint
- Assessment: Oracle's “Questions and Exercises: Inheritance”
Link: Oracle's “Questions and Exercises: Inheritance” (HTML)
Instructions: Please complete the questions and exercises on this page. Then,click the link provided on the page to check your work.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assessment: Oracle's “Questions and Exercises: Inheritance”
-
Unit 3: Threading in Java
In this unit, you will be introduced Java threads. Some problems/tasks need to be subdivided with each piece running concurrently without being visible to the end-user until all of the subtasks finish. This simultaneous processing is accomplished by the multi-threading feature in Java.
Unit 3 Time Advisory show close
Unit 3 Learning Outcomes show close
-
3.1 Threads in Java
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.1: Introduction to Threads”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.1: Introduction to Threads” (PDF)
Instructions: Please read Section 12.1 in its entirety. Compile and run the examples in this lesson to enhance your understanding of threads. Note the discussions of synchronization and volatility of threads.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.1: Introduction to Threads”
-
3.1.1 The Importance of Multiprocessing
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.2: Programming with Threads and Multiprocessing”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.2: Programming with Threads” (PDF)
Instructions: Please read all of Section 12.2. As you read, take advantage of the opportunity to compile and run the sample code. How is multiprocessing accomplished with threads?
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.2: Programming with Threads and Multiprocessing”
-
3.1.2 Parallel Processing
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.3: Threads and Parallel Processing”
Link: Hobart and William Smith Colleges: David J. Eck's: Introduction to Programming Using Java: “Section 12.3: Threads and Parallel Processing” (PDF)
Instructions: Please read all of Section 12.3. As you read, take advantage of the opportunity to compile and run the code examples. Explain how synchronization is used in threads for parallel processing.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.3: Threads and Parallel Processing”
-
3.2 Threads and Networking
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.4: Threads and Networking”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.4: Threads and Networking” (PDF)
Instructions: Please read all of Section 12.4. As you read, take advantage of the opportunity to compile and run the code examples. What is the role of threads in network programming?
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.4: Threads and Networking”
-
3.2.1 Network Programming
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.5: Network Programming Example: A Networked Game Framework”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.5: Network Programming Example: A Networked Game Framework” (PDF)
Instructions: Please complete Section 12.5. Follow the steps in this section to compile, and run a network programming application. Compare and contrast the code used for the three multiplayer games you ran in this section.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 12.5: Network Programming Example: A Networked Game Framework”
-
3.2.2 Threads Checkpoint
- Assessment: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 12”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 12” (PDF)
Instructions: Please complete all of the exercises. Each exercise identifies the subsection it is based on. Review that subsection if you need more information before completing that exercise. When you have finished, solutions are found at the link to the right of the question.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Assessment: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 12”
-
Unit 4: Transporting Text Across a Network
By now, you know that you can receive input from users and generate outputs using a subset of streams on a local machine. In this unit, you will learn how to create streams to receive input and write output. You will focus on writer and reader stream classes, ultimately learning to open writing and reading streams across machines on a network.
Unit 4 Time Advisory show close
Unit 4 Learning Outcomes show close
-
4.1 Streams Overview
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapter 11: Advance Input/Output Streams, Files, and Networking”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapter 11: Advance Input/Output Streams, Files, and Networking” (PDF)
Instructions: Please read the introduction to Chapter 11. Note the topics to be covered in the subunits that follow. Explain the role of streams in networking.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapter 11: Advance Input/Output Streams, Files, and Networking”
-
4.2 Stream Definition and Types
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.1: Streams, Readers, and Writers”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.1: Streams, Readers, and Writers” (PDF)
Instructions: Please read Section 11.1 in its entirety. What types of data streams are covered in this section?
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.1: Streams, Readers, and Writers”
-
4.3 Files
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.2: Files”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.2: Files” (PDF)
Instructions: Please read Section 11.2 in its entirety. Compile and run the samples included. Because files have to be protected for security, how is the data in a file processed?
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.2: Files”
-
4.4 File Processing
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.3: Programming with Files”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.3: Programming with Files” (PDF)
Instructions: Please read all of Section 11.3, which provides a number of examples for processing files. Compile and run the samples included.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.3: Programming with Files”
-
4.5 Streaming Checkpoint
- Assessment: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 11”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 11” (PDF)
Instructions: Please complete the exercises for subsections 11.1 through 11.3. Each exercise identifies the subsection it is based on. Review that subsection if you need more information before completing that exercise. When you have finished, solutions are found at the link to the right of the question.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Assessment: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 11”
-
Unit 5: Text Transport Using UCP and TCP
This unit will introduce you to new programming skills – more specifically, programming skills on the transport layer of the TCP/IP stack. This unit will begin by providing you with a layered view of the Internet, focusing on the UDP and TCP protocols in the TCP/IP stack. We will then learn how text can be sent over the network and identify the principles of creating UDP datagrams or TCP segments, packaging text, and transferring it from one machine to another across the network.
Unit 5 Time Advisory show close
Unit 5 Learning Outcomes show close
-
5.1 Internet Basics
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.4: Networking”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.4: Networking” (PDF)
Instructions: Please read all of Section 11.4, which provides an overview of networking. Programming for client-server data transport is discussed. Be sure to test the sample code included in this section.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.4: Networking”
-
5.1.1 Application Layer
- Reading: Oracle's “What You May Already Know about Networking in Java”
Link: Oracle's “What You May Already Know about Networking in Java” (HTML)
Instructions: Please read the “What You May Already Know about Networking in Java” tutorial. This tutorial covers basic application development for networks.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “What You May Already Know about Networking in Java”
-
5.1.2 Networking Basics: TCP or UDP?
- Reading: Oracle's “Networking Basics”
Link: Oracle's “Networking Basics” (HTML)
Instructions: Please complete the Networking Basics reading as a review of network communication layers. Note the comparison and contrast of TCP with UDP. What is a port?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Networking Basics”
-
5.1.3 Internet Addresses in Java
- Reading: Oracle's “Working with URLs”
Link: Oracle's “Working with URLs” (HTML)
Instructions: Please complete the “Working with URLs” tutorial as a review of the network addressing convention. Follow each of the six links completing the material provided at each link. The sample code at each link reveals how a lot of the Internet functionality is actually coded and reveals its dependency on the sending or receiving computer's address.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Working with URLs”
-
5.1.4 Sockets
- Reading: Oracle's “All about Sockets”
Link: Oracle's “All about Sockets” (HTML)
Instructions: Please complete the “All about Sockets” tutorial for an understanding of how client-server processing occurs on the Internet. Follow each of the three links completing the material at each link. What is the client machine class called?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “All about Sockets”
-
5.2 Text Transport Using User Datagram Protocol
- Reading: Oracle's “All about Datagrams”
Link: Oracle's “All about Datagrams” (HTML)
Instructions: Please complete the “All about Datagrams” tutorial for an understanding of how UDP processing occurs on the Internet. Follow each of the three links, completing the tutorial at each link. Compare and contrast sample client-server processing in the TCP example in the preceding subunit with the client-server processing in this tutorial using the wireless connection.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “All about Datagrams”
-
5.3 Network Interfaces
- Reading: Oracle's “Programmatic Access to Network Parameters”
Link: Oracle's “Programmatic Access to Network Parameters” (HTML)
Instructions: Please complete the “Programmatic Access to Network Parameters” tutorial for an understanding of the network interface class. Follow each of the four links completing the tutorial at each link. Describe a situation where you might use the network interface.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Programmatic Access to Network Parameters”
-
5.4 Cookies
- Reading: Oracle's “Working with Cookies”
Link: Oracle's “Working with Cookies” (HTML)
Instructions: Please complete the “Working with Cookies” tutorial for an understanding of managing cookie classes and interfaces. Follow each of the four links completing the tutorial at each link. Describe a situation where a website you recently visited might have used a cookie class and/or interface.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Working with Cookies”
-
Unit 6: Data Transport
Data that needs to be sent across a network is rarely in plain text format. This is in part because transporting data in plain text is not aesthetically pleasing, and you often need to present data to users in a visually appealing manner while conserving its organization. In this unit, you will learn about XML, a means to organizing data hierarchically so that it can be transported easily. You will learn how XML documents can be sent across a network and parsed on the receiving end for display. You will also learn about XSLT and DTD, two schemas that, like XML, impose structure on documents. These mechanisms ensure a certain degree of consistency in data transfer and display.
Unit 6 Time Advisory show close
Unit 6 Learning Outcomes show close
-
6.1 Extensible Markup Language (XML)
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.5: A Brief Introduction to XML”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.5: A Brief Introduction to XML” (PDF)
Instructions: Please read Section 11.5 in its entirety. This reading provides a number of examples for using XML data. Compile and run the samples included in this section.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 11.5: A Brief Introduction to XML”
-
6.2 Imposing Structure on XML Documents
- Reading: Oracle's “Generating XML Data”
Link: Oracle's “Generating XML Data” (HTML)
Instructions: Please complete the “Generating XML Data” tutorial. Pay special attention to the section starting with the “Creating a Document Type Definition” header, as this portion of the material discusses the format and restrictions of using DTDs for structure with XML. Compile and run all of the samples in this tutorial.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Generating XML Data”
-
6.3 Designing XML Schema
- Reading: Sun Microsystem’s “Designing an XML Schema”
Link: Sun Microsystem’s “Designing an XML Schema” (HTML)
Instructions: Please complete the “Designing an XML Schema” tutorial. Compile and run all of the samples in this tutorial. How many files did you create? Check your answer.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Designing an XML Schema”
-
6.4 Processing Hierarchical Data
- Reading: Sun Microsystem’s “Extensible Stylesheet Language Transformations”
Link: Sun Microsystem’s “Extensible Stylesheet Language Transformations” (HTML)
Instructions: Please complete the “Extensible Stylesheet Language Transformations” tutorial, which introduces the XSLT standard and defines mechanisms for addressing XML data (Xpath).
What is Xalan? Oracle tutorials in the subunits that follow use the sample code that can be found at the URL at the bottom of the page. You might want to download the files to have them available as you need them.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Extensible Stylesheet Language Transformations”
-
6.4.1 Overview
- Reading: Sun Microsystem’s “Introducing XSL, XSLT, and XPath”
Link: Sun Microsystem’s “Introducing XSL, XSLT, and XPath” (HTML)
Instructions: Please complete the “Introducing XSL, XSLT, and XPath” tutorial, which introduces the three subcomponents of XSLT and discusses the packages used in the JAXP transformation APIs. Pay attention to each API and when it is used, as you will be using these APIs in code samples in your lessons.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Introducing XSL, XSLT, and XPath”
-
6.4.2 How XPath Works
- Reading: Sun Microsystem’s “How XPath Works”
Link: Sun Microsystem’s “How XPath Works” (HTML)
Instructions: Please complete the “How XPath Works” tutorial, which explains the XPath mechanisms for addressing XML data. XPath is one of the more complicated processes, so you may want to do a fast read of the lesson, and then go back and work to understand each concept in this tutorial.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “How XPath Works”
-
6.4.3 Writing Out a DOM as an XML File
- Reading: Sun Microsystem’s “Writing Out a DOM as an XML File”
Link: Sun Microsystem’s “Writing Out a DOM as an XML File” (HTML)
Instructions: Please complete the “Writing Out a DOM as an XML File” tutorial, which uses XPath mechanisms and the Xalan tool. Refer back to the “How XPath Works” tutorial for additional competency in creating an XML File.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Writing Out a DOM as an XML File”
-
6.4.4 Generating XML from an Arbitrary File Structure
- Reading: Sun Microsystem’s “Generating XML from an Arbitrary File Structure”
Link: Sun Microsystem’s “Generating XML from an Arbitrary File Structure” (HTML)
Instructions: Please complete the “Generating XML from an Arbitrary File Structure” tutorial, which walks you through the process to transform any existing structure to XML using DOM or SAX.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Generating XML from an Arbitrary File Structure”
-
6.4.5 Transforming XML Data with XSLT
- Reading: Sun Microsystem’s “Transforming XML Data with XSLT”
Link: Sun Microsystem’s “Transforming XML Data with XSLT” (HTML)
Instructions: Please complete the “Transforming XML Data with XSLT” tutorial, which walks you through the steps to translate any XML input data to HTML output.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Transforming XML Data with XSLT”
-
6.4.6 Transforming from the Command Line with Xalan
- Assignment: Sun Microsystem’s “Transforming from the Command Line with Xalan”
Link: Sun Microsystem’s “Transforming from the Command Line with Xalan” (HTML)
Instructions: Please complete the “Transforming from the Command Line with Xalan” tutorial by running the code provided. Xalan is a new tool for working with XML. How is it different from the other tools used in your lessons?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assignment: Sun Microsystem’s “Transforming from the Command Line with Xalan”
-
6.4.7 Concatenating Transformations with a Filter Chain
- Reading: Sun Microsystem’s “Concatenating Transformations with a Filter Chain”
Link: Sun Microsystem’s “Concatenating Transformations with a Filter Chain” (HTML)
Instructions: Please complete the “Concatenating Transformations with a Filter Chain” tutorial, which introduces the concept of a filter chain and then provides the code to build one. What is a filter chain, and what is its purpose?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Concatenating Transformations with a Filter Chain”
-
6.5 Java API for XML Processing (JAXP)
- Reading: Sun Microsystem’s “Introduction to JAXP”
Link: Sun Microsystem’s “Introduction to JAXP” (HTML)
Instructions: Please complete the “Introduction to JAXP” tutorial, which lays out the technologies for using Java with XML data. What is the purpose of JAXP? What are its principle features? Oracle tutorials in the subunits that follow use the sample code that can be found at the Chapter 5 header, “Simple API for XML.” The files are listed at the end of the page.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Introduction to JAXP”
-
6.5.1 SAX Methods
- Reading: Sun Microsystem’s “The Simple API for XML APIs”
Link: Sun Microsystem’s “The Simple API for XML APIs” (HTML)
Instructions: Please complete the “The Simple API for XML APIs” tutorial, which graphically presents the event model for converting existing data to XML. What principle methods does it use?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “The Simple API for XML APIs”
-
6.5.2 When to Use SAX?
- Reading: Sun Microsystem’s “When to Use SAX”
Link: Sun Microsystem’s “When to Use SAX?” (HTML)
Instructions: Please complete the “When to Use SAX” tutorial, which presents a number of different uses for this parser. How might it be used to perform data transport in a LAN?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “When to Use SAX”
-
6.5.3 Echoing an XML File with the SAX Parser
- Assignment: Sun Microsystem’s “Echoing an XML File with the SAX Parser”
Link: Sun Microsystem’s “Echoing an XML File with the SAX Parser” (HTML)
Instructions: Please compile each event in this tutorial as instructed in each link. What happens in each step? Did your output match the tutorial?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assignment: Sun Microsystem’s “Echoing an XML File with the SAX Parser”
-
6.5.4 Adding Additional Event Handlers
- Reading: Sun Microsystem’s “Adding Additional Event Handlers”
Link: Sun Microsystem’s “Adding Additional Event Handlers” (HTML)
Instructions: Please complete the “Adding Additional Event Handlers” tutorial. What are two methods for handling common SAX events described in this tutorial?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Adding Additional Event Handlers”
-
6.5.5 Handling Errors with the SAX Parser
- Reading: Sun Microsystem’s “Handling Errors with the Nonvalidating Parser”
Link: Sun Microsystem’s “Handling Errors with the Nonvalidating Parser” (HTML)
Instructions: Please complete the “Handling Errors with the Nonvalidating Parser” tutorial, which describes common errors and how to prevent them. What are some of the common parsing errors you can avoid?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Handling Errors with the Nonvalidating Parser”
-
6.6 Document-Based Parsing
- Reading: Sun Microsystem’s “Document Object Model”
Link: Sun Microsystem’s “Document Object Model” (HTML)
Instructions: Please complete the “DOM Object Model” tutorial, which lays out the DOM model for using Java with XML data. DOM is a tree structure with nodes. What types of data are represented as nodes on a DOM “jtree”? Oracle tutorials in the DOM subunits that follow use the sample code that can be found at the URL shown at the bottom of this tutorial. You may want to download this code before you get to the subunits with tutorials that use the code for its examples.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Document Object Model”
-
6.6.1 When to Use DOM
- Reading: Sun Microsystem’s “When to Use DOM”
Link: Sun Microsystem’s “When to Use DOM” (HTML)
Instructions: Please complete the “When to Use DOM” tutorial. How is DOM like SAX? How is DOM different from SAX? When is it better to utilize the DOM structure?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “When to Use DOM”
-
6.6.2 Reading XML Data into a DOM
- Reading: Sun Microsystem’s “Reading XML Data into a DOM”
Link: Sun Microsystem’s “Reading XML Data into a DOM” (HTML)
Instructions: Please complete the “Reading XML Data into a DOM” tutorial, which provides example code for creating a DOM.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Reading XML Data into a DOM”
-
6.6.3 Displaying a DOM Hierarchy
- Reading: Sun Microsystem’s “Displaying a DOM Hierarchy”
Link: Sun Microsystem’s “Displaying a DOM Hierarchy” (HTML)
Instructions: Please complete the “Displaying a DOM Hierarchy” tutorial, which provides sample code to expose DOM nodes so that you might examine the structure. This allows you to gain an understanding of DOM structure now as it is a useful diagnostic tool.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Displaying a DOM Hierarchy”
-
6.6.4 Examining the Structure of a DOM
- Reading: Sun Microsystem’s “Examining the Structure of a DOM”
Link: Sun Microsystem’s “Examining the Structure of a DOM” (HTML)
Instructions: Please complete the “Examining the Structure of a DOM” tutorial, which walks you through how a node tree is generated.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Examining the Structure of a DOM”
-
6.6.5 Constructing a User-Friendly JTree from a DOM
- Reading: Sun Microsystem’s “Constructing a User-Friendly JTree from a DOM”
Link: Sun Microsystem’s “Constructing a User-Friendly JTree from a DOM” (HTML)
Instructions: Please complete the “Constructing a User-Friendly JTree from a DOM” tutorial. How would you explain the internal structure of a DOM to a classmate who had problems with the assignments you just completed?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Constructing a User-Friendly JTree from a DOM”
-
6.6.6 Creating and Manipulating a DOM
- Reading: Sun Microsystem’s “Creating and Manipulating a DOM”
Link: Sun Microsystem’s “Creating and Manipulating a DOM” (HTML)
Instructions: Please complete the “Creating and Manipulating a DOM” tutorial, which lays out the technologies for using Java with XML data. What is the purpose of JAXP? What are its principle features?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Creating and Manipulating a DOM”
-
Unit 7: Object Transport
Classes are often designed with reusability in mind. Programmers can exchange classes that were written by other programmers to use their functionality in their own software. This unit will introduce you to the concept of object transport. You will learn how XML can be used to describe a specific class, sent across the network, and reused by another user to regenerate a Java class, compile it, and use its API.
Unit 7 Time Advisory show close
Unit 7 Learning Outcomes show close
-
7.1 Reflection
- Reading: Oracle's “The Reflection API”
Link: Oracle's “The Reflection API” (HTML)
Instructions: Please read the “Reflection API” tutorial. What are the uses of reflection? What are its drawbacks?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “The Reflection API”
-
7.1.1 Reflection Classes
- Reading: Oracle's “Classes”
Link: Oracle's “Classes” (HTML)
Instructions: Please read the “Reflection Classes” tutorial. Complete all four tutorials that link from this tutorial. Compile and run the samples in each of the linked pages.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Classes”
-
7.1.2 Reflection Members
- Reading: Oracle's “Members”
Link: Oracle's “Members” (HTML)
Instructions: Please read the “Members” tutorial. The three member groups covered are fields, methods, and constructors. Follow the four links for each member group. Compile and run the samples in each of the linked pages. What are some common errors in reflecting fields, methods, and constructors?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Members”
-
7.1.3 Reflection Arrays and Enumerated Types
- Reading: Oracle's “Arrays and Enumerated Types”
Link: Oracle's “Arrays and Enumerated Types” (HTML)
Instructions: Please read the “Arrays and Enumerated Types” tutorial. Complete the four links for arrays and the three links for enumerated types. Compile and run the samples in each of the linked pages. What are some common errors in reflecting arrays and enums?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Arrays and Enumerated Types”
-
7.2 Java Architecture for XML Binding (JAXB)
- Reading: Oracle's “Introduction to JAXB”
Link: Oracle's “Introduction to JAXB” (HTML)
Instructions: Please complete the “Introduction to JAXB” tutorial. What is the purpose of XML binding?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Introduction to JAXB”
-
7.2.1 Marshalling and Unmarshalling Process
- Reading: Oracle's “JAXB Architecture”
Link: Oracle's “JAXB Architecture” (HTML)
Instructions: Please complete the “JAXB Architecture” tutorial. What are the components that comprise the JAXB implementation?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “JAXB Architecture”
-
7.2.2 Generating Classes from XML Schemas
- Reading: Oracle's “Binding XML Schemas”
Link: Oracle's “Binding XML Schemas” (HTML)
Instructions: Please complete the “Binding XML Schemas” tutorial. What are the two default mapping options?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Binding XML Schemas”
-
7.2.3 Customizing Generated Classes and Java Program Elements
- Reading: Oracle's “Customizing Generated Classes and Java Program Elements”
Link: Oracle's “Customizing Generated Classes and Java Program Elements” (HTML)
Instructions: Please review the “Customizing Generated Classes and Java Program Elements” tutorial. This material identifies the JAXB annotations for each Java element in tables as a programming reference for subunit 5.3.4 that follows below. This is a good site to bookmark so that you might find it quickly when you need the information it contains.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Customizing Generated Classes and Java Program Elements”
-
7.2.4 JAXB Examples
- Reading: Oracle's “JAXB Examples”
Link: Oracle's “JAXB Examples” (HTML)
Instructions: Please complete the “JAXB Examples” tutorial, which includes several examples for basic, customized, and Java-to-schema binding. Compile and run at least one example from each of these three categories. Read the instructions carefully in the guidelines for running the examples in each grouping to maximize your time.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “JAXB Examples”
-
Unit 8: Transporting Function Calls
In the last unit, you learned how objects can be transported across networks so that other programmers can use those objects’ methods. This unit will introduce a different method of object sharing: initiating a function call on a certain object type when the object resides on a remote machine by using Java RMI and SOAP. The unit will close with a discussion of programming excellence including program correctness, robustness, and efficiency.
Unit 8 Time Advisory show close
Unit 8 Learning Outcomes show close
-
8.1 Java RMI
- Reading: Oracle's “An Overview of RMI Applications”
Link: Oracle's “An Overview of RMI Applications” (HTML)
Instructions: Please read this entire webpage. As you look at the components required for a Java application, what is included that you have not seen anywhere else in this course? Excluding the application example, there should not be anything new.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “An Overview of RMI Applications”
-
8.1.1 Oracle's “Writing an RMI Server”
- Reading: Oracle's “Writing an RMI Server”
Link: Oracle's “Writing an RMI Server” (HTML)
Instructions: Please read this page. This material has been divided into two separate readings. The RMI Design Process will be covered in subunit 8.1.2 that follows. The RMI Implementation Process will be covered in subunit 8.1.3 below.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Writing an RMI Server”
-
8.1.2 RMI Design Process
- Reading: Oracle's “Designing a Remote Interface”
Link: Oracle's “Designing a Remote Interface” (HTML)
Instructions: Please complete this page. Review the sample code to see how to build the compute engine to process code from any machine.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Designing a Remote Interface”
-
8.1.3 RMI Implementation Process
- Reading: Oracle's “Implementing a Remote Interface”
Link: Oracle's “Implementing a Remote Interface” (HTML)
Instructions: Please complete this page. Review the sample code to see how to build the interface to implement the compute engine.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Implementing a Remote Interface”
-
8.1.4 Creating a Client Program
- Reading: Oracle's “Creating a Client Program”
Link: Oracle's “Creating a Client Program” (HTML)
Instructions: Please read the screen carefully. Review the sample code to see how to create a client program to define the task to be performed by the compute engine.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Creating a Client Program”
-
8.1.5 Running Java RMI
- Reading: Oracle's “Compiling and Running the Example”
Link: Oracle's “Compiling and Running the Example” (HTML)
Instructions: Please compile and run the example. You will need to use both links provided in the material. What is your problem, and what output does this process produce?
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Oracle's “Compiling and Running the Example”
-
8.2 Simple Object Access Protocol (SOAP) and SOAP with Attachments API for Java (SAAJ)
- Reading: Sun Microsystem’s “Overview of SAAJ”
Link: Sun Microsystem’s “Overview of SAAJ” (HTML)
Instructions: Please read the “Overview of SAAJ” tutorial. SAAJ is an API that developers can use to write SOAP messaging applications directly, especially for XML messaging from the Java platform. Because the SAAJ API conforms to the Simple Object Access Protocol (SOAP) specification, the elements of SOAP are also covered in the 6.2 subunits that follow.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Overview of SAAJ”
-
8.2.1 SOAP Protocol
- Reading: W3C's “Simple Object Access Protocol (SOAP)”
Link: W3C's “Simple Object Access Protocol (SOAP)” (HTML)
Instructions: Please complete the SOAP tutorial. As you progress through this material, you will have the opportunity to examine the SOAP protocol as specified by W3C. Compile and run each of the examples provided.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: W3C's “Simple Object Access Protocol (SOAP)”
-
8.2.2 SAAJ
- Reading: Sun Microsystem’s “Overview of SAAJ”
Link: Sun Microsystem’s “Overview of SAAJ” (HTML)
Instructions: Please complete the SAAJ tutorial found at this link. Follow the steps in the material to create a SOAP message, send the message, and retrieve the response.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Overview of SAAJ”
-
8.2.3 Examples
- Reading: Sun Microsystem’s “Code Examples”
Link: Sun Microsystem’s “Code Examples” (HTML)
Instructions: Complete the “Code Examples” tutorial starting with the first example. Follow the instructions that precede each example. Look for the SOAP elements in each example. Once you compile and run each example, proceed to the next one. A good reference for using SOAP can be found here.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Sun Microsystem’s “Code Examples”
-
8.3 Correctness, Robustness, and Efficiency
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapter 8: Introduction to Correctness and Robustness”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapter 8: Introduction to Correctness and Robustness” (PDF)
Instructions: Please read all of Chapter 8. The topics of each section in Chapter 8 cover the material you need to know for subunits 8.3.1 through 8.3.6. Now that you have completed the prior units, showing you how the Java language is used in the network programming environment, it is time for you to hone in on your skills to be a superior Java programmer. As you complete each subunit compare and contrast each tool for creating the most efficient code.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Chapter 8: Introduction to Correctness and Robustness”
-
8.3.1 Correctness and Robustness
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.1: Introduction to Correctness and Robustness”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.1: Introduction to Correctness and Robustness” (PDF)
Instructions: Please read all of Section 8.1. Explain the difference between correctness and robustness.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.1: Introduction to Correctness and Robustness”
-
8.3.2 Writing Correct Programs
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.2: Writing Correct Programs”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.2: Writing Correct Programs” (PDF)
Instructions: Please read all of Section 8.2. Compile and run the samples provided in this material. Explain the role of process and state for correctness. How does the role of process and state impact robustness? How do you write code that you can “prove” is correct?
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.2: Writing Correct Programs”
-
8.3.3 Exceptions and Try…Watch
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.3: Exceptions and Try...Catch”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.3: Exceptions and Try...Catch” (PDF)
Instructions: Please read all of Section 8.3. Note the various types of exceptions that might occur and how you can improve your Java code to provide for them. Compile and run the sample code provided.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.3: Exceptions and Try...Catch”
-
8.3.4 Assertion and Annotation
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.4: Assertion and Annotations”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.4: Assertion and Annotations” (PDF)
Instructions: Please read all of Section 8.4. Note that this material provides advanced information for using assertions and annotations in your Java code.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.4: Assertion and Annotations”
-
8.3.5 Analysis of Algorithms
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.5: Analysis of Algorithms”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.5: Analysis of Algorithms” (PDF)
Instructions: Please read all of Section 8.5. Network efficiency programs depend on the analysis of algorithms. This section will show you what this specialization is and how it can be accomplished with Java programs.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Reading: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Section 8.5: Analysis of Algorithms”
-
8.3.6 Programming Exercises
- Assessment: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 8”
Link: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 8” (PDF)
Instructions: Compile and run each programming exercise following the instructions provided with each problem. You will find the link to the solution in the right hand corner preceding the next problem or end of the assessment.
Terms of Use: The article above is released under a Creative Commons Attribution-Non-Commercial-Share-Alike License 3.0. It is attributed to David Eck and the original version can be found here.See a broken link? Please let us know!
- Assessment: Hobart and William Smith Colleges: David J. Eck's Introduction to Programming Using Java: “Programming Exercises for Chapter 8”
-
Final Exam
- Final Exam: The Saylor Foundation's CS407 Final Exam
Link: The Saylor Foundation's CS407 Final Exam
Instructions: You must be logged into your Saylor Foundation School account in order to access this exam. If you do not yet have an account, you will be able to create one, free of charge, after clicking the link.See a broken link? Please let us know!
- Final Exam: The Saylor Foundation's CS407 Final Exam
Questions? Consult the FAQs!


