Development of a Network Print Spooler


Title of the project


Development of a Network Print Spooler


Abstract of the project


This project implements a network print spooler, which can accept multiple simultaneous print requests and handle them gracefully. It should support display of the queue status, and allow users to remove their own jobs from the queue. It should also allow the spooler manager to re-order jobs and remove any job from the queue.




Generic Technlogy keywords


Operating Systems, Programming Languages


Specific Technology keywords


Unix, Windows, C, C++, Java


Project type keywords


Analysis, Design, Implementation, Testing


Functional components of the project


Following is a list of functionalities to be supported by the network print spooler. More functionalities can be added to this list. And, in places where the description of functionality is not adequate, you can make appropriate assumptions and proceed.


  1. It should support multiple requests from different users at the same time


  1. It should support display of the queue status, and allow users to remove their own jobs from the queue.


  1. It should also allow the spooler manager to re-order jobs and remove any job from the queue.


  1. You will need to develop two programs.


  1. The first is a client program that interacts with the user for accepting text files to be printed, and allowing users to display and delete jobs on the queue.


  1. The second is a server that accepts requests from clients over the network, and services them. A request will be a print request, a status request or a delete request. Even if you do not have access to a network machine, you can implement and test the system on a single host by using network calls on the same machine.


  1. You need not interface with a physical printer -- you can simulate it by writing to the screen at a slow rate, say one character a second.


Steps to start-off the project


The following steps will be helpful to start off the project.


  1. Study and be comfortable with technologies such as
    1. Windows OS or Unix/Linux OS,
    2. C/C++/Java programming language
    3. Socket Programming


  1. Study in detail the design of a network print spooler and try to add more functionalities than listed in the previous section. 




Hardware requirements




Alternatives (If available)


PC with 2 GB hard-disk and 256 MB RAM






Software requirements




Alternatives (If available)





C/C++/Java compiler

Not Applicable



Manpower requirements


2 to 3 students can complete this in 4-5 months if they work fulltime on it.


Milestones and Timelines



Milestone Name

Milestone Description




(From Week – To Week)




Requirements/Functional Specification

Complete specification of the system (with appropriate assumptions) including listing down the functionalities to be supported by the network print spooler. A document detailing the same should be written and a presentation on that be made.


Attempt should be made to add some more relevant functionalities other than those that are listed in this document.


Technology familiarization and

Task breakup

Understanding of the technology needed to implement the project.


The presentation should be from the point of view of being able to apply it to the project, rather than from a theoretical perspective.

The requirements should be broken up into individual members of the team and they should come up with milestones in their project life-cycle and dates of completion

A excel sheet containing the break-up of the tasks and important milestones dates should be the output of this stage


High-level and Detailed  Design

The design should detail about the approach towards creating the network print spooler. Incase of OOAD approach towards design, the output of this phase would be a design document containing the UML Class diagram and Sequence Diagram.


The scenarios should map to the requirement specification (ie, for each requirement that is specified, a corresponding approach or design should be there in the document).



The actual implementation of the network spooler should be made in this phase. Unit Testing for each unit/component of the system should be done so that the functionality of each unit is verified.


During this milestone period, it would be a good idea for the team (or one person from the team) to start working on a test-plan for the entire system. This test-plan can be updated as and when new scenarios come to mind.


Integration Testing

The system should be thoroughly tested by running all the test cases written for the system (from milestone 4).


Another 2 weeks should be there to handle any issues found during testing of the system. After that, the final demo can be arranged.


Final Review

Issues found during the previous milestone are fixed and the system is ready for the final review.


During the final review of the project, it should be checked that all the requirements specified during milestone number 1 are fulfilled (or appropriate reasons given for not fulfilling the same)



Guidelines and References


  2. - For UML tool for Detailed Design
  3. - Another UML tool
  4. “Unix network programming” by Richard Stevens

Tags :
Your rating: None Average: 3.4 (5 votes)