Distributed Marking System OMS)

114
Distributed Marking System OMS) CORBA lmplementation by Ali Elbashiri B. Sc. (Honors in Computer Science) Althide University, 199 1, Libya Thesis submitted in partial hilfillment of the requirements for the Degree of Master of Science (Computer Science) Acadia University Fall, 1999 Q by Ali Elbashiri, 1999

Transcript of Distributed Marking System OMS)

Page 1: Distributed Marking System OMS)

Distributed Marking System OMS)

CORBA lmplementation

by

Ali Elbashiri

B. Sc. (Honors in Computer Science)

Althide University, 199 1, Libya

Thesis

submitted in partial hilfillment of the requirements for

the Degree of Master of Science (Computer Science)

Acadia University

Fall, 1999

Q by Ali Elbashiri, 1999

Page 2: Distributed Marking System OMS)

National tibrary le1 dm", Bibliothèque nationale du Canada

Acquisitions and Acquisitions et Bibliographie Services services bibliographiques 395 WeUington Street 395, rue Wellington OltawaON K 1 A W ûttawaON K 1 A W can&a Canada

The author has granted a non- exclusive licence allowing the National Library of Canada to reproduce, loan, distribute or sel1 copies of this thesis in rnicrofom, paper or electronic formats.

The author retains ownership of the copyright in this thesis. Neither the thesis nor substantial extracts Erom it may be printed or otherwise reproduced without the author's permission.

L'auteur a accordé une licence non exclusive permettant à la Bibliothèque nationale du Canada de reproduire, prêter, distribuer ou vendre des copies de cette thèse sous la forme de microfiche/film, de reproduction sur papier ou sur format électronique.

L'auteur conserve la propriété du droit d'auteur qui protège cette thèse. Ni la thèse ni des extraits substantiels de celle-ci ne doivent être imprimes ou autrement reproduits sans son autorisation.

Page 3: Distributed Marking System OMS)

CHAPTER 1 ................................................................................................................................................. 1

1 INTRODUCTION o o o ~ ~ o o o o ~ ~ o m o ~ a o ~ ~ o o o m o o ~ m o o o o ~ m ~ ~ o o ~ o ~ o o o o o a m o o o m o o m o m o o o o o m m a o m o o m 1

............................................................................................................... 1.1 OVERVIEW OF THE THESIS 4

2 CLIENTBERVER ARCHITECTURE o o o o o o ~ o o o o o o o o o m ~ o ~ o ~ ~ o o ~ ~ ~ m ~ ~ ~ w o m o o o o o e o ~ ~ ~ ~ o o o o o o o m o o o o o o o m o o o o o o o o o o o o o o S

2.1 MODEL ............................................................................................................................................ 5 ................................................................................................................... 2.1. I Client Comportent 6 .................................................................................................................. 2.1.2 Server Component 7

2.2 ADVANTAGES ....~............................................................................................................................. 8 ................................................................................................................................ 2.2.1 Eficiency 8 ............................................................................................................................. 2.2.2 Throughput 8 .............................................................................................................................. 2.2.3 Modularity 8

................................................................................................................................ 2.2.4 Flexibiliry 9 ......................................................................................................................... 2.3 CHARACTE~US~CS 9

.............................................................................................................. 2.3.1 Networking Concepts 9 2.3.2 1dentr;fication and Authentication ....................................................................................... 10

................................................................................................................. 2.3.3 Access Conrrol..... I I 2.3.4 Adminisiration ...................................................................................................................... I I 2.3.5 Cooperation ......... ,., ..... ....,., .................................................................................................. I I 2.3.6 Procas-to-Process Isolation ............................... ... .............................................................. 12

2.4 TIERS .................~...~...~.......~...~....................................................................................................... 12 . . 2.4.1 1-TierMonol~thtc .............~.....................~...~.......................................................................... 13 2.4.2 2-Tier ................................................................................................................................ 13

........................................................................ 2.5 DRAWBACK~ OF CLIENT/SERVER ARC HI TE^ 15 2.5.1 Lack of centralked control .................................................................................................. 15 2.5.2 Lackofsecurity ..................................................................................................................... 15 2.5.3 Clientworkfoad .................................................................................................................... 15

2.6 CONCLUSION ...............................,... ............................................................................................ 16

Page 4: Distributed Marking System OMS)

3.3 CHOOSWG APPROPRIATE TECHNOLOGY ..................................................................................... 22 3.3.1 CGI/HITP ........................................................................................................................... 22 3.3.2 Java Technology ................................................................................................................. 24

3.32.1 JavaServlets ..................................................................................................................................... 25 3.32.2 Java RMI .......................................................................................................................................... 26

3.3.3 DCOM .................................................................................................................................. 26 3.3.4 CûRBA ................................................................................................................................. 27

3.4 CONCLUSION ................................................................................................................................. 29

4.1 INTRODUCTION ............................................................................................................................... 30 4.1.1 Related Work ................................................................................................................... 30 4.1.2 Objective ............................................................................................................................... 30 4.1.3 Strategy ................................................................................................................................. 31 4.1.4 Analys is. ................................................................................................................................ 31 4.1.5 Push and Pull Model ............................................................................................................ 32

4.2 FUNCTIONAL~TY .............................................................................................................................. 32 4.2.1 Actors ................................................................................................................................... 32

4.2.1.1 Students .......................................................................................... .... ............................................ 33 4.3.1 2 Markers .......................................................................................................................................... 34 4.2.1.3 Instnictors ...................................................................................................................................... 35

................................................................................................................................. 4.2.1.4 Administrators 36 4.2.2 Assignment Maintenance ...................................................................................................... 36

................................................................................................................. 4.3 SYSTEM REQUIREMENTS 37 4.3.1 Sofhoare Distribution and Deployment ................................................................................ 38 4.3.2 Object Persistence ................................................................................................................ 38

.................................................................................................... 4.3.3 Concurrent Object Access 39 .......................................................................................................... 4.3.4 Isolated Objecr Access 39

4.4 DESIGN ........................................................................................................................................... 39 4.4.1 Design Issues ........................................................................................................................ 40

.................................................................................................................................. 4.4.1.1 Data Filtering 40 ....................................................................................................................................... 4.4.1.2 Persistence 40

4.4.1.3 Security ........................................................................................................................................... 41 4.4.1.3.1 DMS Security ....................................................................................................................... 41

..................................................................................................................... 4.4.1.3.2 Applet Security 41 4.4.1.4 Object Factory ................................................................................................................................. 42

................................................................................................................ 4.4.1.5 System exception handler 42 ............................................................................................................................... 4.5 ARCHITECTURE 43

5.1 REMOTE INTERFACES .............~.~...................................................................................................... 47 5.1.1 Authenticator ........................................................................................................................ 49 5.1.2 FilterFactory ........................................................................................................................ 51 5.1.3 Datd'ilter ............................................................................................................................. 56 5.1.4 DataManager and DataResource .......~...~.....~.~~.~.................................................................. 58

5.2 DMS CLIENT SIDE .......................................................................................................................... 58 2 Creating the user inteface ................................................................................................... 60

Page 5: Distributed Marking System OMS)

.......................................................................................................... 5.2.2 Connecting to a semer 60 5.2.3 Invoking methods of remote objects ...................................................................................... 62

5.3 DMS SERVER SIDE ......................................................................................................................... 64

......................................................................................................................... 1) PUBLIC SERVICES 95

STUDENT SERVICES ..................................................................................................................... 96

III) MARKER SERVICES ...................................................................................................................... 97

IV) MSTRUCTOR SERVICES ......................................................................................................... 1ûû

V) ADMINTSTRATOR SERVICES ................................................................................................. 102

Page 6: Distributed Marking System OMS)

List of Figures

........................................................................ Client/Server Mode1 6

........................................................ 2 Tier ClientIServer Architecture 14

........................................................ 3 Tier Client/ Server Architecture 19

...................................... ...*..............*..*............ Actors Diagram .. 33

............................................................ DMS 3 Tier Architecture 4 4

................................................................... Architecture of DMS 4 5

............................................. Interfaces and Packages Diagram (UML) 48

............................................................ Client Class Diagram (UML) 59

............................................................ Server Class Diagram (LTML) 64

............................................................................ Logging Screen -71

................................................................ Administrator's Main GUI 71

........................................................................ S tudent's Main GUI 72

.............................................................. User Account Maintenance 74

.................................... ..................... Course Account Maintenance t, 75

........................................................................ Course Registration 76

................................................... Maintenance of Assignment Account 78

....................................................... Ass ivent Outline Downioading 79

....................................................... Assignment Solution Submission 80

............................................... Marker downioads assignment solutions 81

................................................... Marker uploads assigrment solutions 82

.................................................... S tudent downloads rnarked solution 83

Page 7: Distributed Marking System OMS)

Dedication

To tùe mernories of my father.

Page 8: Distributed Marking System OMS)

Acknowledgments

1 would like to express my shcere thanks to my supervisor Dr. T. Mddner for his

precious guidance, inspiration and valuable time throughout this work. Thanks also

extend to Dr. 1. Tomek for being my interna1 examiner and Dr. S. Srinivas for being my

extemal examiner.

A special th& to the Libyan Educational Secretary for their sponsonhip.

Findly, 1 would like to express my greatest gratitude to my mother for her love, support,

and encouragement.

Page 9: Distributed Marking System OMS)

Abstract

This thesis describes an integrated Dishibuted Marking System, DMS, which can

be used to post assignment descriptions, submit assignment solutions, mark solutions

using specialized marker tools, and maintain student marks using a file system or a

favorite database. DMS is a ClientIServer system and uses CORBA to provide language,

network and operating system independence. Persistent storage on the server is provided

through a file system or DBC.

Page 10: Distributed Marking System OMS)

ChWTER 1. INTRODUCTION

Chapter 1

1 Introduction

Maintenance of student assignments is an important part of the everyday routine

of al1 instructors. Traditionally, assignments are prepared by an instnictor in a paper

form, and then given to students. When student solutions are collected, they are given to

markers who upon marking update student mark files and return marked assignments to

sîudents.

The development of high petforniance cornputing and communications has

created new media, such as the World Wide Web. in tun, these new media enable new

types of messages and experiences which make it possible to develop synchronous,

presentation-centered foms of distance education-which replicate traditional 'Yeaching

by telling" across barriers of distance and tirne-into an alternative instmctiond

paradigm: distributed leaming. In particular, advances in computer-supported

collaborative learning, and multimediahypermedia offer the potential to create shared

"leaming-through-doing environments" available anywhere, any time, on demand.

In this thesis we describe the development of an extensible, integrated, and

Distributed Marking System, DMS which can be used to post assignment descriptions

and submit solutions, mark solutions using specialized marker tools, and maintain student

marks using a file system or a favorite database. Our main goal was to design a system

which is user-fnendly, distnbuted, and extensible. For a system to be user niendly, our

Page 11: Distributed Marking System OMS)

CHiWîER 1. INTRODUCTION

design uses speciaiized graphical user interfaces, GUIs. These GUIs are custom-made for

various kinds of users and wili appear different to students, markers and instnictors. DMS

consists of a server and a number of clients, and is fully distributeci so that users can

comect fiom networked computer. However, DMS supports not only pulling information

such as an assignment outiiie, and on-line access such as displayhg marks or assignment

outlines, but also pushing information onto a client's machine so that she or he can work

off-line. For example, to mark an assignment, the marker does not have to be connected

to the network. Off-line work is particularly usehl if the system is flexible and

extensible; for example, a marker should be able to use various specialized marking tools,

implemented in different programming languages. We do not wish to limit ourselves to a

specific hardware or an operating system; for example we want to be able to

accommodate a student who uses Unix on a PC, and a marker using a Macintosh. For this

reason, we are using a Common Object Request Broker Architecture, CORBA that

extends the reach of our applications across networks, languages, component boundaries,

and operating systems [OMG 981. While the cunent version has becn written in Java

[SUN 98a], any client or even the entire server could be written in any prograrnming

language, for example C++ or Smalltalk, and tun under any operating system on various

hardware platforms.

Why have we here chosen Java rather than another language? A standard web

browser is extended with a Java runtime, and it can automatically download an applet to

the user's host computer and execute it there. This feature provides a simple and flexible

mechanisrn for tramferring executable software to users when it is actually needed,

instead of installing it at their host or site ahead of the . Thetefore WWW inf'rastructwe

Page 12: Distributed Marking System OMS)

and Java applets can simplify the job of deploying the user client components of a

distributed application; something h d y possible with O ther languages [Orfali 97~1.

Since maintenance of student files is an important part of any marking system, we

designed a flexible interface that can be used to store marks, users, courses and

assignrnent idonnation in a file system, or through Java Data Base Connection, JDBC in

practically any available data base. Therefore, DMS is designed as a 3-tier application

where we have a thin-client, middleware and a database. Clearly, only authenticated users

should be allowed to use a marking system. Therefore, a "super-user", who creates

student, marker and instnictor password-protected accounts, administers DMS.

The combination of CORBA, Java and World Wide Web gives DMS full

advantage of simplicity, robustness and convenience. Llsers have their interfaces

independent of their cornputer operating system, web browser, and location. Aiso DMS

Client Applications can be downloaded and installed locally. DMS is easy to use, and

gives users clear error messages and positive feedback on successful performed tasks.

User interfaces are designed with minimum amount of typing required in order to reduce

the possibility of making mistakes. In addition DMS has high security level. It handles

authentication of its users and generates a small signature for each, to be used every time

the user calls DMS services.

1.1 Overview of the Thesis

In Chapter Two we provide background information on Client/Sewer Architecture.

We introduce the reader to several CliedServer Models and continue with a discussion

on Client/Server capabilities and limitations. In Chapter Three we give an ovewiew of

Page 13: Distributed Marking System OMS)

Dishibuted Object Computing; specifically CORBA and other Disûibuted Technologies

such as DCOM and Java RMI. Continuhg with a discussion on Distributed

Technologies, we answer the question why we chose a 3-tier architecture for our system

and CORBA for implementation. In Chapter Four we describe in detail the design and the

functionality of DMS. In Chapter Five we descnbe the implementation of DMS. Then, in

Chapter Six we show a case study on DMS and provide several screenshots of DMS in

action. In Chapter Seven we give the conclusions and recommendations for fhre work.

Finally, we include DMS installation guide in the Appendix A and DMS user's guide in

Appendix B.

Page 14: Distributed Marking System OMS)

CHAPTER 2. CLIENT'SER VER ARCHITECTURE

Chapter 2

2 ClientIServer Architecture

2.1 Model

Traditional software, which runs on a single PC uses the sarne cornputer resources

for somng and analyzing data slows down system performance, and allows access to only

one user at a time. ClienVServer Systems separate their activities using two or more

different computers. The computers are linked together and communicate with one

another, usuaily over a local area network (LAN).

Client/Server is a design mode1 that describes how the various components of an

information processing application will be deployed in a given processing environment.

It is a form of distributed processing that specifically envisions the components of an

application being separated into specialized modules, and be connected over network

services arnong computers, transaction service processors and database servers.

The client, which requests services, and the server, which provides the services,

(see Figure 2.1) are roles in which processes communicate. In addition to its role as a

client or a semer, a process may play many other roles, but will usually have one role ai a

the.

Page 15: Distributed Marking System OMS)

C ' T E R 2. CLIEMBERVER ARCHITECTURE

Figure 2.1 - ClientBewer Model.

2.1.1 Client Component

The client-based process is the front-end of the application (see Figure 2.1) that

the user sees and interacts with. It manages the local resources such as the monitor,

keyboard, and rnouse. The client process also contains solution-specific logic and

provides the interface between the user and the application system. It sends messages to a

server process (program), requesting that the semer perform a task (service). It operates

on the user's machine, and takes care of the interactive processing âriven by the user.

Page 16: Distributed Marking System OMS)

CHAPTER 2- CUEhWSERVER ARCHITECTURE

The client's responsibilities usually are:

1) Handle the user interface.

2) Translate the user's request into the desired protocol.

3) Send the request to the server.

4) Wait for the semer's response.

5) Translate the response into "human-readable" results.

6) Present the results to the user.

2.1.2 Server Component

The server-based process may nui on another machine on the network. This

server could be the host operating system or network file server; the server is then

provided with both file system seMces and application services. In some cases, another

desktop machine provides the application services. The server process acts as a software

engine that manages shared resources such as databases, printers, communication links,

or high-powered processors. The server process performs the back-end tasks (see Figure

2.1) ihat are common to similar applications.

The servets responsibilities usually are:

1) Listen for a client's request.

2) Process that request.

3) R e m the results to the client.

Page 17: Distributed Marking System OMS)

CHAPTER 2. CLIENT/SERVER ARCHITECTURE

2.2 Advantages

2.2.1 Ef'fxiency

Client/Server Architecture provides great efficiency in processing and

communications through localization and specialization. Each component needs only to

comect for the duration of its part in the process. Workstations, for example, are very

efficient at graphics display, document preparation, and print huictions and other foms

of presentation. Each workstation can tailor its own input and output without affecting

other processes. The developer can specialize and optimize prograrnming at each level to

take full advantage of the hardware.

2.2.2 Throughput

ClientBerver technology provides better throughput than centralized technology

by allowing more flexible process balancing and in some cases, dynamic reconfiguration.

Because we are not locked into a given configuration, we cm expand, contract or

redeploy our resources more easily. However, we must ensure that each of these

dynamic paths are controlled, and proiected and are not prone to attack or failure.

2.2.3 Modularity

Client/Server technology provides modularity, which allows independent design,

implementation, maintenance and control of application components. For example.

database design on the one end and presentation techniques on the other end have

improved and changed far more dramatically than basic transaction processing. By

separating these fiinctions behind compatible interfaces. the developer can take advantage

Page 18: Distributed Marking System OMS)

CHAPTER 2. C.ENT/SER E R ARCHITECTURE

of new technologies in one fiuictional area without impacting the others. But this only

works if the application interfaces are complete, consistent, appropriate and well

controlled.

2.2.4 Flexibiiity

What makes Client/Servet different ftom other structural or architectural models

is the flexibility with which the functionality cm be applied. Notice that at each

intermediate stage, dependhg on the direction of flow, the same functional unit cm be a

server to the requesting function and then become a client as it passes on requirements to

the next server. Figure 2.1 dernonstrates only one of the possible configurations.

Another possibility is that the flow fans out from one client to multiple data servers or

transaction serven and re-converges on the return trip. One data server, discovering that

it cannot respond fully to the client's request, may send lateral requests to related data

servers that do have the information.

2.3 C haracteristics

2.3.1 Networking Concepts

The types of connection between the clients and servea may differ at each point.

Some may be connected over LAN networks, some over wide area networks, and others

may be connected by speciai concentrators or control units. Geography and distance do

not enter into the dennition. ClienîBerver is ClientlServer whether the process travels

two feet or two continents.

Page 19: Distributed Marking System OMS)

CHAPTER 2- CLIENTBER RYER ARCHITECTURE

For this reason, the term Client/Server should be used to describe process

interaction and dependency, not specific technology or platforms. Although

workstations, local a d o r wide area networks, micro and mini processors and main fiame

data repositones are usual cornponents of the ClientBemer modcl, there is no single

prescribed technology for this architectural approach. There is no specific set of software

platfoms that is unique to ClientlServer. A LAN or a workstation may be part of a

ClientBerver application, but not al1 LANs or workstations are ClientlServer models.

2.3.2 Identification and Authentication

How does a client identiw itself to a server? How does the server authenticate the

client's identity and authorization? How does the server determine whether it should trust

the incoming request? 1s the client authorized for what is being requested? For example,

some ciients and servers examine each othefs content or code to ensure that they are

talking to the intended process. They also can actually distinguish between versions or

instances of each other. Some clients and servers employ authentication to achieve high

confidence that they are talking only to the intended process. Other servers will refresh

the incoming code fiom the client, such as a seMce request, with a tmsted equivalent

code to enhance security. They may also check the version control to ensure that the

client process is synchronized with the current version of the server.

End-users are usually enrolled with one client process and authenticated by that

process. If the server trusts the client process, then it may vouch for the identity of its

user and may inhent the privileges of its users in conducting transactions with the

servers.

Page 20: Distributed Marking System OMS)

CHAPTER 2, CWENTEERVER ARCHITECTURE

23.3 Access Control

Servers may limit access to their services according to niles that relate clients to

specific services. These d e s can be both detailed and specific. This level of access

control may be based on much more appropriate decision factors and elements than those

typically controlled and used by operating systems. For example, a server may control

access to tables, views, rows, columns, or combinations, while the operating system is

only aware of devices, volumes, directories, data sets, or files.

2.3.4 Administration

Most servers present an administrative interface, which can be used to manage

users and maintain the access rules. In some cases, the server responds to a separate

administrative process, which is a server in its own nght. Such a process may work

across multiple servers or senrices, helping to ensure consistency across those servers.

2.3.5 Cooperation

Clients and servers cooperate to meet the needs of the application or end-user.

Such cooperation is usually mandatory if al1 the objectives or requirements are to be met.

It is unlikely that either would be able to accomplish ail of the objectives by itself, which

include control objectives such as e m r detection and correction.

Page 21: Distributed Marking System OMS)

C W T E R 2- CUENT'LSERVER ARCHITECTURE

2.3.6 Process-to-Process Isolation

Clients and servers implemented on separate hardware platfonns provide a very

reliable form of process-to-process isolation. As a nile, the server does not provide the

client with the capability or fcunctionality to alter itself. While it usually provides the

client with the capability to alter its data, even this capability can be limited and

controlled. This fonn of process-to-process control is nomally more reliable than the one

that is provided on a single multi-user platform.

2.4 Tiers

The ClienVServer model is usually divided into three basic application components.

They are as follows [Orfali 97al:

1. Presentation Tier (or User System Interface such as session, text input, dialog, and

display management services).

2. Functionality (or Processing Management such as process development, process

enactment, process monitoring, and process resource services).

3. Database Management Tier (such as data and file senrices). This tier may include

existing systems, applications, and data that has been encapsulated to take advantage of

this architecture with a minimum of transitional programming effort.

In the traditional ClientlServer model, the fùnctionality is usually moved ont0 the

client side. This is a typical2-tier Ciient/Server architecture, fat client and thin server.

For a 3-tier ClientIServer architecture, which we will discuss in the next chapter, we

Page 22: Distributed Marking System OMS)

CHAPTER 2. CLIENTISERVER ARCHITECTURE

move the hctionality part from client to another platfonn, leaving it as a thin client and

thin semer.

2.4.1 1-Tier Monolithic

From the inception of the compter industry in the 1950s, through the end of the

1970s, vùtually al1 enterprise software applications were monolithic, with tightly

uitertwined pro- and data. Monolithic Tier is when entire business applications and

data run as one entity on a mainfiame. In this model, each application developer chose

how to structure and store data, often using clever techniques to rninimize the cost and

the time. This tight integration between program and data made it very difficult to model

and reuse corporate information.

With the commercial viability of Database Management Systems in the early

1980s, enterprises began to model their corporate information and create enterprise data

repositories that were accessible by multiple programs. This separation of program and

data caused a fundamental shifi in how companies ran their business; for the fïrst tirne,

so-called "Management Mormation Systems" departments were created to model

corporate data and provide multiple applications that manipulated comrnon information.

This model worked f&ly well when the user interfaces to corporate data were provided

by simple character-based intedaces, accessible by a smdl number of "data processing"

emplo yees.

Page 23: Distributed Marking System OMS)

CHAPTER 2. CLIENTEER VER ARCHITECTURE

The Client/Servet architecture is a generai description of a networked system

where client programs initiate contact with a separate sener program for a specific

hction. In most 2-tier applications, the ClientIServer architecture separates application

into code and management system. One tier contaias al1 the code, and the other contains

the database management system. The database resides on the server and the client-based

application accesses the database through the use of remote SQL calls that are sent across

the network from the client to the server. In Figure 2.2, al1 the application code resides on

the client side, that is a fat client.

Tier 1

Client

Functionality

Request

Tier 2

Server

Aceess I Data

Figure 2.2 - 2 Tier CliedServer Architecture.

However, the widespread adoption of graphical user interfaces in the 1990s, and the

extension of real-tirne information access to millions of desktops, led to a dramatic

Page 24: Distributed Marking System OMS)

CWPTER 2. C'ENT/SER VER ARCHITECTURE

increase in the size and complexity of client applications. Increasingly "fat" cclients

running on thousands of PC's are al1 ûybg to access a central data repository. While

there was some enterprise data reuse, fiom the development perspective, there was linle

reuse of encapsulated business logic.

2.5 Drawbacks of ClientiServer Architecture

2.5.1 Lack of centralized control

Many of the problerns associated with the ClientlServer architecture stem from

the fact that the network computer system does not make it possible to deploy application

components in a central location. OAen, the business logic required for an application is

deployed on each client computer, making maintenance and security difficult. In this

environment, making even trivial changes to a production application c m be problematic.

2.5.2 Lack of security

In a decentralized computing environment, controlling access to information is

more difficult. Security leaks can easily occur because client machines often have access

to algorithms for handling sensitive business data.

2.5.3 Client workload

When al1 of the business logic required for an application is deployed on each

client machine, the clients must have the processing power needed to hancile the

workload. This puts an undue burden on desktop resources. As applications become more

Page 25: Distributed Marking System OMS)

C W T E R 2. CLIENT/SERVER ARCHITECTURE

complex, desktop cornputers must be upgraded to cope with performance demands.

Sornetimes the demands even exceed the capabilities of the standard desktop machine.

For example, advanced operating system featutes such as multithreading and symmetrical

multiprocessing may not be supported by the standard desktop. Without access to the

computing power of a multitasking sewer machine, client applications cannot take

advantage of these operating system features.

2.6 Conclusion

The Client/Server architecture mode1 is a versatile, message-based and modular

infkastnicture that is intended to improve usability, flexibility, interoperability, and

scaiability as compared to centralized, mainfkame, time-shared computing. A client is

defined as a requester of services and a server is defined as the provider of services. A

single machine can be both a client and a server depending on the software configuration.

2-tier ClientISewer architecture has two important advantages. It is easy for

building small applications and many programmen support it. However, applications

built with a 2-tier architecture do not tend to scale well. For large-scale applications,

which usually require complex processing, high transaction volumes, and large numbers

of clients, the following are major issues [Orfali 97al:

Perfomance/scalability.

For large number of users using the system concurrently; data needs to be

transferred acroa the network to the ClienVServer system causing trafic overload

on the network.

Complexity.

Page 26: Distributed Marking System OMS)

CHAPTER 2. CWENTXSERVER ARCHITECTURE

The developer in a 2-tier system should know each component of designing

methodology such as user interface, data access and business specincation.

Supportability.

Most Ztier applications use the Visual Basic, Powerbuilder, Delphi or other

languages or packages to design the ClienVServer system. The user interface, data

access algorithm, and business specifications are tightly intertwhed, which will

cause supportability problems in the system modification and upgrade.

Page 27: Distributed Marking System OMS)

CHAPTER 3. DISTRIBUTED COMPONENT COMPUTING

Chapter 3

3 Distributed Component Computing

3.1 Architecture

Distributed component technologies are an emerging software development

approach that can reduce the cost to develop and deploy large systems. In addition, object

oriented approaches provide an effective Iegacy systern migration path and offer a full

range of technology seMces covering the entire life cycle for object oriented

development [Orfali 97bI.

Dunng the 1980's there was a great deal of experimentation in the computer

research community on "distributed computing" - writing applications that didn't just

access remote data on a DBMS server, but rather distributed various pieces of the

application itself across multiple systems. This research led to the development of

distributed cornputing standards such as the Distributed Computing Environment (DCE)

fiom the Open Software Foundation and Open Group ~ i c r o s o f t 971, and the Common

Object Request Broker Architecture (CORBA) f?om the Object Management Group

[OMG 981. During the 1990s, many companies began the process of building and

deploying so-called "multi-tier" distributed applications, with a thin GUI client taîking to

a middle-tier application server Minllig centtalized business logic, which is taiking to a

traditional DBMS smer (see Figure 3.1).

Page 28: Distributed Marking System OMS)

CHAPTER 3. DISTNBUTED COMPONENT COMPUTING

Client

Figure 3.1 - 3-Tier ClientEerver Architecture.

The 3-tier architecture emerged to overcome the limitations of the 2-tier

architecture. In this architecture, a middle tier was added between the user system

interface client environrnent and the database management server environrnent. This tier

cm perform queuing, application execution, and database staging. For example, if the

middle tier provides queuing, the client can deliver its requests to the middle layer and

disengage because the rniddle tier will access the data and retum the answer to the client.

Page 29: Distributed Marking System OMS)

Distributed computing addresses many of the problems associated with building

ClienVServer appiications [Hoque 981:

a Reuse and mod@ shared components in real t h e .

An essential aspect of component technology is that it is shared in a centralized

location. While this is similar to traditional CliedServer application

development, component technology is more effective because components can

be shared by more than one software application. By standardizing upon the

functionality of what each component does and where it is located, software

developers are able to add the functionality of proven code into their software

applications by simply calling the appropriate object. This approach has a number

of associated benefits, including accelerated software development times,

improved efficiency and less expensive development cycles.

a Reduce the total cost and time of software development.

Because components are reusable, this significantly lowers the cost of software

development. Programmers can simply cal1 an object to perform a specific task,

rather than writing a duplicate code. Also, since distributed component

technology is completely cross-platform. it is not necessary to create 'ttranslators"

or other platfonn migration routines to access data across languages and

platfoms. This reduces not only the tirne to develop software, but also to test and

deploy the application.

Remove dependence upon praprietary vendor solutions.

Page 30: Distributed Marking System OMS)

CHAPTER 3. DISTMBUTED COMPONENT COMPCITING

Uniike previous generations of software development architectures, distributed

component technologies c m fiee information technology managers Born

proprietary vendor solutions. By utilizing ORB (Object Request Broker)

technology and interfaces to multiple laquages and platforms, applications on

one platform are able to "talk" to other applications on different platfoms. As a

result, an application is not constrained to a particular vendor's solutioa, and

developers can leverage their investment in other software applications and

technologies.

O Fully scalable, and networked software development architecture.

Distributed component technologies allow corporations to deliver fully scalable,

completely networked applications that can be delivered on any type of network,

including LANs, WANs and the Intemet. This capability allows an application to

be utilized in a variety of ways. One of the most popular methods of using

distributed applications is via a browser-based interface, because it allows access

at any tirne fiom virtually anywhere in the world.

O Reduce the workload on the client and control access to sensitive infonnation.

By allowing developers to partition application funciions between the client and

the semer, distributed computing offers a natural way to separate user interface

components fiorn the business logic required by an application. Centralizing

business logic on application seners can reduce the workload on the client and

control access to sensitive information.

Enable heterogeneous units to be connecteci together.

Page 31: Distributed Marking System OMS)

CHAPTER 3. DISTRIB UTED COMPONENT C O M P m G

Disûibuted Computing enables heterogeneous units to be connected together so

that they behave as a single system for the user. This results in increased

e fficiency.

a Freedom to select fiom a wide range of hardware, software and networking

components.

hteroperability among ail the leading supplierd products.

a The ability to share information across the enterprise.

The flexibility to adapt computer systems to rapidly changing business conditions.

3.3 Choosing appropriate technology

Several disûibuted computing technologies exist today, including DCOM,

CORBA, CGVHTTP and Java RMI. The suitability of these technologies for a particular

system depends on its infiastructure and the processes followed by it.

in the rest of this chapter, we Qve a brief o v e ~ e w for each of these technologies,

and evaluation and cornparison of each of these technologies with regard to choosing a

particular technology for building DMS.

For the past few years the Web was deployed very rapidly, and people started to

use it for publishing and broadcasting electmnic documents. Since Web pages provide

static idonnation, what is needed is more interactive and applied Client/Smer

architecture. For this reason, the Common Gateway Interface (CGI) was htroduced over

Page 32: Distributed Marking System OMS)

CHAPTER 3. DISTRIBUTED COMPONENT COMPIITMG

HTTP to implcment a 3-tier architecture of Client/Semer system. Programming Intemet

ClienVServer applications with CG1 is a d e r poor choice because HTTP is a slow,

cumbersome, and stateless protocol [Orfali 97aI. The HTTP server machine has to start a

new process for each CG1 request, therefore the web clients must wait for the response to

each request they make. The clients can not send requests synchronously, which means

each request must be processed before starting another task. On the server side, the CG1

program must emulate al1 the processes performed by the client creating a heavy load on

the semer. To eliminate the need to create a new process for each request, an alternative

to standard CG1 named FastCGI was developed. FastCGI creates a single persistent

process for each FastCGI program. Although it is a step in the right direction, it still has

a problem with proliferation: there is at least one process for each FastCGI program. If a

FastCGI prograrn is to handle concurrent requests, it needs a pool of processes, one per

request. Another problem is that FastCGI does not help the FastCGI prograrn to interact

closely with the server.

in response to the performance problems for CG1 and FastCGI, severai vendors

have developed APIS for their semers. The two most notable are NSAPI nom Netscape

and ISAPI fkom Microsofi. As applications linked into the server, APIs may be

significantiy faster than CG1 programs. The CG1 startup/initialization problem is

improved, because the application nuis in the server process and is persistent across

requests. Web server APIs also offer more functionality than CGI: the developer can

write extensions that perform access control, get access to the server's log file, and link to

other stages in the server's request processhg. However, APIs sacrifice dl of CGI's

benefits and sufFer h m the following probiems:

Page 33: Distributed Marking System OMS)

CHAPTER 3. DISTRIBUTED COMPONENT COMPUTING

a Cornplexity. Vendor APIs introduce a steep leaming curve, with increased

implementation and maintenance costs.

0 Language dependence. Applications have to be written in a language

supported by the vendor API (usually C/C++). Perl, the most popular

language for CG1 programs, cantt be used with any existing vendor APL

a No process isolation. Since the applications nui in the server's address space,

buggy applications can compt the core server (or each other). A maiicious or

buggy application can compromise server security, and bugs in the core server

c m corrupt applications.

a Coding an application to a particular API locks it into a particular vendor's

server.

a Tie-in to server architecture. API applications have to share the sarne

architecture as the server: If the Web server is multi-threaded, the application

has to be thread-safe. Otherwise, multi-threaded applications don? gain any

performance advantage. Also, when the vendor changes the server's

architecture, the APIs will usually have to change, and applications will have

to be adapted or rewritten.

3.3.2 Java Technology

Java is a pure object-oriented pmgraxnming language developed by Sun

Microsystems [SUN 98aI. Since Java language compiles its source code to byte code, it is

possible to develop ûuly platfonn-independent client applications and reach a "write once

and nin anywhere" paradigm. The developer can also mite a small program in Java

Page 34: Distributed Marking System OMS)

CHAPTER 3. DISTRIBUTED COMPONENT C W U ï ï N G

named the applet, which c m run in a web browser. The web browsers already exist on

millions of desktop cornputers, so Java applets can use browsers to deploy anywhere.

Although Java gives the ability to provide more interactive content on World

Wide Web with dynamic pages that are no Longer hnited by the capabilities of HTML

and CG1 scripts; it is still not strong enough. Java is insufficient for building robust

enterprise systems, because it lacks a ClientBewer method invocation paradigm,

distribution service, persistence, and streamable storage.

3.3.2.1 Java Servlets

Servlets are Java objects that extend the fùnctionality of information servers, such

as HTTP or Web servers [Hunter 981. A plain HTML document that a Web server

retrieves is static. A servlet, on the other hand, is executed for every request so that it cm

output dynarnic information. For example, a browser generates a request to a server for a

document that contains dynamic information. The server examines the request and maps

it to a particular servlet. It then invokes the servlet, which creates the document with

dynarnic content and r e m s it to the client.

Servlets are cornmonly used with web servers, where they c m take the place of

CG1 scripts. The main advantage of servlets over CG1 is that a servlet is activated by the

nrst client that sends it a request. Then it conthes running in the background, waiting

for further requests and each request generates a new thread, not an entire process.

Multiple clients may be served simultaneously inside the sarne process and typically the

servlet process is destroyed only when the Web server is shut dom. A servlet nuis inside

Page 35: Distributed Marking System OMS)

a Java Virtual Machine (JVM) on the server. Servlets operate solely within the domain of

the sewer: unlike applets, they do not require support for Java in the browser.

The release of RMI (Remote Method Invocation) by Sun Corporation enables the

programmer to create distributed lava-toJava applications, in which the methods of

remote Java objects cm be invoked fiom other Java vimial machines, possibly on

different hosts [Orfali 97al. A Java program can make a call on a rernote object once it

obtains a reference to that object, either by looking up the remote object in the bootstrap

naming service provided by RMI or by receiving the reference as an argument or a r e m

value. A client can call a remote object in a server, and that sewer can also be a client of

other remote objects.

However, RMI is a concrete programming technology that works within the

boundaries of its own languages meaning RMI objects can tak only to other RMI

objects. RMI does not provide interface repositones and a wire protocol for security and

transactions. It is very slow in cornparison to CORBA and DCOM and lacks an

integration tec hnology for fiiture.

3.3.3 DCOM

DCOM is a Microsofi-specific distniuted solution [Microsoft 971. A DCOM

object is not an object in the object-oriented programrning sense; it does not have a

persistent object reference that lets you reconnect to the same object at a later tirne. In

Page 36: Distributed Marking System OMS)

CHAPTU 3- DISTRIBUTED COMPONENT COMPUTiNG

other words, DCOM objects do not maintain states between connections. This c m be a

big problem in environments where there are faulty connections on the Internet.

The current implementation of DCOM does not support distributed naming

services; it is based on the NT regisûy. Configuring DCOM and installing type libraries

is tedious and labor-intensive. Although DCOM is well suited to fiont-end application

development on a Microsoft platfonn, it is not for the other vendors' platforms.

3.3.4 CORBA

CORBA, or Common Object Request Broker Architecture, is a set of

specifications defining the ways so&are objects should work together in a distributed

environment. The organization, which drives the specifications, OMG, or Object

Management Group, has huncûeds of members representing a major portion of the

software industry. The members work together to propose, review, and fmally adopt the

set of specifications to dlow sof€ware objects to be developed independently and yet

work together [Orfali 97~1.

CORBA specifies a standard for the interoperability of object oriented software

and across operating systems, component boundaries and platforms in a heterogeneous

network environment. CORBA is the specification of an architecture and interface that

allows applications to comrnunicate with one another no matter where they are located or

in which language they implemented Pen-Naton 981.

One of the key aspects of the CORBA mode1 is that client and server are isolated

by a well-defined encapsulating interface thereby allowing the client application to

invoke server fiuictionality without knowledge of the server implementation details. This

Page 37: Distributed Marking System OMS)

afTords total fieedom in the way that the service is implemented (programming language

or an underlying hardware). Also, by effectively hiding both server implementation and

underlyhg transport/protocol details, CORBA greatly simplifies client application

development.

The encapsulating interface is dehed using IDL (Interface Description

Language). IDL provides a language-neutral way to descnbe a CORBA object and the

service it provides. The goal of D L is to enable the language-independent definition of

interfaces, so that components (client or server side) written in different languages can

communkate with each other. D L is not a programming but a specification language,

based on C++ language. This applicability to heterogeneous language environments is

one of the key factors differentiating between CORBA and language-specific approaches

to distributed computing such as RMI.

ORB (Obiect Request Broker) is the middleware that manages the interaction

between the client and server objects. The ORB establishes communication links and

routes information between given end points as needed. By using an ORB, a client can

transparently invoke a method on a server object, which can be on the same machine or

across a network. The ORB intercepts the cal1 and is responsible for finding an object that

can implement the request, pass it the parameters, invoke its method, and r e m the

result.

Page 38: Distributed Marking System OMS)

CHAPTER 3. DISTRIBUTED COMPONENT CQMPUTNG

3.4 Conclusion

The 34er architecture has been shown to improve performance and flexibility

when compared to the two-tier approach. Flexibility in partitionhg can be as simple as

"dragging and dropping" application code modules ont0 different cornputers in some 3-

tier architectures.

The main issues involved in designing our system @MS) are platform

heterogeneity, high system reliability and availability, flexibility of location, and the

support for transactions and security. CORBA provides a high level abstraction of the

design which fiees us from the low level communication details required in other

communication technologies like sockets. CORBA also supports an objectsriented

approach allowing better representation of di fferent entities.

The Java inhtnicture starts where CORBA ends. CORBA deals with network

transparency, avoids the CG1 bottleneck, and provides a scalable server-to-server

infkastnicture. CORBA extends Java with a distributed object infiastructure. Because

Java deals with implementation transparency, it allows CORBA to move intelligent

behavior around and simplifies code distribution in large CORBA systems. We conclude

that the combination of CORBA and Java cm be a good, practical fiamework for

developing a user-oriented distributed application.

Page 39: Distributed Marking System OMS)

CHAPTER 4. DMS FWCTIONAtlTY AND DESIGN

Chapter 4

4 DMS Functionality and Design

4.1 Introduction

4.1.1 Related Work

We have looked at some other available marking systems, for example the one

described in MCEXAMS [Dalhousie 951, which is a conventional ClienUSewer mode1

that do not exploit the WWW. Another examples are pillaipakkamnatt, Willcins 981 and

[Acme 981, which are web-based applications that use CGVHTTP. These systems do not

provide the same functionality, flexibility and extendibility as DMS. For instance, they

do not support off-line activities, or use of arbitrary implementation prograrnming

languages (refer to section 7.1).

4.1.2 Objective

The objective of this project is to build a portable and Distributed Marking

System @MS) that can be used for homework posting, submission, and marking using

CORBA, Java and World Wide Web. DMS consists of a central sexver and set of client

Page 40: Distributed Marking System OMS)

C W T E R 4. DMS FWCTIONALITY AND DESIGN

applications. Each application represents a group of clients, such as Students, Markers,

and Instructors.

4.1.3 Stmtegy

In this section we define our strategy for building DMS based on a domain of

distributed persistent objects. The System Architecture (SA) is not dependent on any

particular implementation technology, such as cornputer hardware, operating system,

database, programming language, or distribution technology. We develop persistent

domain objects that cooperate to implement a system of multiple applications. Restated,

the strategy is to develop a group of separate applications rather than one application. By

creating software mapping of the Domain Model, we create a core of functionality that

can be reused by multiple applications. As the business domain changes, so can the

domain mode1 can evolve to support the new applications that will be required. In other

words, developen should be able to develop the system without changing the main

design.

4.1.4 Analysis

In discussing distributed objects, it is important to distinguish between distributed

object programming, which allows the methods of an object to be invoked across a

network, and simple obj ect-oriented programming, where ail the objects are assumed to

share the same address space, or at least reside on the same machine. Object orientation

provides a useful fîamework for consttucting individuai cornputer programs; distributed

objects provide an object-oriented appmach to whole systern design.

Page 41: Distributed Marking System OMS)

CHAPTER 4. DMS FLJNCTIONALITï AND DESIGN

The goal of any software system is to provide implementations of processes

related to a particular Domain Model (DM). During our analysis, we decompose the

Domah Model into a set of related entities that interact to perform the processes.

Examples of entities include User, Course, Assignment, etc. Each entity has to be

associated with data attributes and behavior, collectively properties, that d e h e its role as

a component in the DM.

4.1.5 Push and Pull Model

DMS supports both push and pull models. The push model means that someone has

created or otherwise added value to an information stream and 'pushes' that stream to the

server. An example of this would be posting an assignment outline to group of students

by an instnictor. The pull model means that an information owner has placed an

information object in an area where other users go to 'pull' that infonnation. An example

of this would be downloadhg an assignment outline fiom the server by students.

4.2 Functionality

4.2.1 Actors

Actors are users who can connect and interact with the server. Users include

Students, Instnictors, and Markers as shown in Figure 4.1. Since every user has to be

registered and must be properly authenticated by the system, she or he has a password-

protected account, and therefore we provide one more type of an actor, an administrator

(super-mer), who is the only user allowed to mate, modify and remove accounts.

32

Page 42: Distributed Marking System OMS)

CHAPTER 4. DMS FWCTIONALJTY AND DESIGN

Administrator I nstructor

Figure 4.1 - Acton Diagram.

4.2.1.1 Students

Snidents cm perform several tasks £kom the student interface, including

submitting assignment solutions, downloading marked assignrnents or assignment

outlines and changing their passwords. Students can also check their marks on-line or

download them. For logghg in, the student must enter his/her usemame and password.

Students are presented with a List of the "names" of assignments given so far in their

classes. For submitting an assignment solution, the student can simply indicate the base

directory of the assignment to submit. The whole directory will be compressed and

Page 43: Distributed Marking System OMS)

CHAPTER 4. DMS FWCUONALITYAND DESIGN

shipped to the server. A student has to put the assignment files in one directory. Every

time the student performs a task, hdshe will be presented either with a successfil

perfomiing message or an error message indicating that there was a problem. Al1 enor

messages are clear and give recommendations on how to proceed.

4.2.1.2 Markers

The major task of markers is to download assignments, mark them and send them

back to the server. For downloading assignments the marker should select her/his

course/assignment. Once an assignment is selected, the marker cm acquire al1 solutions.

Marker is presented with a list of the "names" of students who submitted their solutions

so far. Marker c m either download al1 solutions or only some, but he/she cannot

download solutions that have already been downloaded. Courses may have more than one

marker so it is Ieft to the markers to divide the solutions among them. Solutions will be

saved in the marker machine as a tree-like structure, starting with a base directory (the

course name), student name and the assignment narne where the assignment files are

saved.

Once the assignment solutions are downloaded, the marker can disconnect fiom

the network and mark assignments off-line at her or his convenience. For this purpose,

specialized markkg software can be used (it is not available as a part of the cwent

version of DMS). For example, a single programming assignment in C may consist of

many files, but is submitted as a singie Jar file. This file will include the "packing

information", for exarnple, under Unix it may be required that the assignment source files

corne with the make program. This packing information and other specifications cm be

Page 44: Distributed Marking System OMS)

CHAPTER 4. DMS FWCTIONALITY AND DESIGN

specified for each assignment by the instmctor and be available for the marker to

download as a text file. Therefore, we need apreprocessor that retrieves and accordingly

unpacks the assignment (for the above Unix scenario, it will use rnake to create an

executable code). The preprocessor may also nin the executable code against test input

data, if provided, and inform the marker about the results of these runs. Then, an editor

would allow the marker to choose a course to mark, and then move fiom one solution to

another by simply selecting a menu item. Marks are automatically maintained and stored

in a form suitable for upload to the DMS server. A menu item provides standard mark

deducîions that can be customized for each assignment (for example, -10% for wrong

indentation). The marker can annotate the student's solution using appropnate comments.

When marking is completed, the marker moves to the next solution, and the editor saves

the annotated solution along with the mark. Then, when the marker uploads the

assignments to the DMS server, the annotated solution and the mark become available to

the students, and additionally the mark is saved in a central repository on the server.

Markers can upload marked solutions the same way as they download solutions;

when they specify the location of the base directory, the system will automatically upload

al1 marked solutions and show them in a separate window.

4.2.1.3 Instructon

There are several different tasks that the instructor can perfonn fkom the instructor

interface. These are: assigddmp markers tolfkom courses, create/modi@ assignment

accounts, modify assignments marks, delete old assignment accounts, allow or disallow

fuhue submissions or downloading for an assignment, and change thek passwords. Each

Page 45: Distributed Marking System OMS)

CHAPTER 4. DIUS FUNCTIONAtlTYAND DESIGN

of these takes appropriate parameters and the system indicates whether the task

succeeded. The instnictor c m prepare an assignrnent description off-line or on-line.

4.2.1.4 Administrators

The administrator handles creation and modification of the user and course

accounts. Before a user can use the system, the administrator must create account for

himher.

Administrators cm carry out the following activities:

- create, delete and modify user (instnictor, marker or student) accounts

- create, delete and modify course accounts

- register and &op courses to and from user accounts

- set client comection tirne to prevent server overload

- purge or whive old submissions and lirnit file sizes for subrnissions

Note that courses may be taught by more than one instnictor or marker. An

administrator assigns instnictors to courses. Administrator initially assigns markers, but

instnictors can rnodi@ them any time.

4.2.2 Assignment Maintenance

Here we identify the basic activities in the assignrnent maintenance process, as

well as actors involved in this process:

Page 46: Distributed Marking System OMS)

CHAPTER 4. DMS FUNClïONUTYAND DESIGN

Hund-out: Assignment outline is provided by the instnrctor

Hand-in: Assignment solution is provided by every student

Marking: Assignment solutions are marked by the marker

Retum: Marked solutions are retumed by the marker

For a hand-out activity, the assignment outline is uploaded to the DMS server,

and then it is downioaded fiom the server to the student's machine. For a hand-in

activity, an assignment solution is uploaded by the student to the server, and then

downloaded by the marker fiom the server. For a return activity, the marker uploads

marked assignments to the server, and then the students can download them. Note that the

network connections are minimized, and used only when necessary. As soon as the

process of uploading or downloading is completed, the user cm work off-line; in

particular, the rnarking activity requues no network connection.

4.3 System Requirements

'in order to achieve the DMS objective of supporting a Domain System based upon

distributed persistent Domain Objects, we must address a number of specific f'unctional

issues. The following is the description of the most significant issues and the resulting

DMS requirements.

Page 47: Distributed Marking System OMS)

CHAPTER 4. DMS FUNCTIONALITYAND DESIGN

4.3.1 Software Distribution and Deployment

In DMS, Applications and Domain Objects must be able to communicate and

interact across the physical boundaries of the system, which is done through CORBA.

Every actor cm communicate with DMS through what we cd1 a DMS-let, which

can appear in one of two ways; as a Java applet OMS-applet) or as a Java application

(DMS-application). Therefore, there are four types of DMS-lets, one for each type of an

actor; and every DMS-let can be an applet or an application. Using an applet the actor

merely requires a web browser and does not have to go through the installatioo process.

Unfortunately, with a DMS-applet client start-up is slow, since every time al1 of the client

applet classes need to be downloaded fiom the WWW server, so the user may choose

instead to use a DMS-application. DMS provides a convenient way of deploying DMS-

applications; which requires a single step using any browser to point to the DMS home

page, download this application and install it on her or his machine. In addition, the

functionality described above allows for easy updates of any DMS-application; update is

transparent for DMS-applets, and the DMS-application user co~ect ing to the DMS

server can be infonned that she or he should downtoad the newer version of this

application.

4.3.2 Object Persistence

Domain Object Instances have states that need to persist over time beyond the iife

span of a single application. DMS supports persistence of instances in a way that

encapsulates the persistence mechanian and allows the coexistence of multiple

persistence irnplementations.

Page 48: Distributed Marking System OMS)

CHMTER 4- DMS FUNCTIONcllilTYAND DESIGN

4.3.3 Concurrent Object Access

Multiple Client Applications need to have concurrent access to the same Domain

Object Instance. DMS parantees consistency and inte& of instance states across

multiple clients.

4.3.4 Isolated Object Access

An application may need to make tentative modifications to the state of an object

instance prior to committing updates to the persistent state of the instance. DMS provides

isolated access to an instance for modification without affecting the persistent state of the

instance or other concurrent links to the instance.

4.4 Design

During our design, we defined a set of software components that mode1 the

Domain Model as defined by the processes and entities. The Domain Model provides an

encapsulation of the properties of al1 entities in the system. It consists of a number of

Domain Objects, each of which is a representation of a particular entity. The Domain

Object includes both Class and Instance aspects of the entity, where a Class is a particular

type of entity, and an Instance is a unique entity of a given type. For example, "Student"

is a Class and "Ali Elbashir" is an Instance. We map the system processes into

applications, which utilize the Domain Objects as building blocks of functionality.

Page 49: Distributed Marking System OMS)

CHAPTER 4. DMS FWCïTONALiTYAND DESIGN

4.4.1 Design Issues

4.4.1.1 Data Filtering

One of our requirements is that transmissions are reasonably efficient. We don't

want to give users direct and full access to our data source, and so need to filter the data.

We should do the data filtering on the server side before sending them to the client to

avoid network overload. Therefore the server should provide a mechanism for controlling

the flow of data to the client, using filter objects. The filter object resides between the

data source channel and the client, and filters the data using user-specified criteria.

Filter objects are the source of data, as far as the client is concem. Each client

application acquires a reference to its filter object after first logging in. This object is

responsible for filtering the data that will be sent to the client. Each client gets a different

filter object, depending on user pnvileges, giving a user access to only these featwes or

services that he/she is allowed to use.

4.4.1 .Z Persistence

Persistence is one of the issues that must be addressed. How are we going to store

the data? We will use generic interfaces to provide the flexibility to upgrade to another

implementation in the fùture. These interfaces can be implemented to use JDBC to tallc to

a favorite database, Java serialization to persist the data into files, or any other

implementation.

Page 50: Distributed Marking System OMS)

CHAPTER 4. DMS FWCTIONAWTYAND DESIGN

4.4.1.3 Security

4.4.1.3.1 DMS SecUnty

Our implementation provides a password scheme to authenticate the user and

relies on the passing of an authentication token in subsequent operations to ven@ that

user's identity. This is achieved in two steps: Authentication and Authorkation.

Authentication takes place when a user initially attempts to gain access to the

server. At that point the DMS security service challenges the user to prove h i d e r

identity. User will have to enter a user ID and a password. If the user ID and the

password are valid the security s e ~ c e gives the user a token or a ticket that identifies

himher .

Authorkation takes place when an authenticated user requests the use of a

service. The security service examines the user packet to detemine if the user has been

granted permission (refer to section 5.1.1 for more details).

However, the transmission of the password and ID in the authentication process is

not encrypted and they can be cracked. Authentication can be improved by using a "key"

to encrypt and decrypt messages by tumîng text into digital gibberish before sending it

and then by restoring it to its original fom after been received.

4.4.1.3.2 Applet Security

The Java language and mtime have built-in hooks for security. For example,

whenever an applet attempts certain security-sensitive actions through a Java API class,

the method will first check with the Java runtime to detemiine whether the applet is

Page 51: Distributed Marking System OMS)

CHAPTER 4. DMS FC/NCTi!ONALITYAND DESIGN

allowed to perform that action. Examples of such sensitive actions Uiclude accessing the

file system of a Web browser's host, or opening a network comection to another host.

Currently some browsers do not allow applets to perfom any of these actions, even if the

browser's user may wish to allow them. However, in some cases DMS-applet has to be

able to access the user's file system. For example, the student's DMS-applet has to write

to the student's machine when an assignment outline is to be downloaded; and it has to

read from the file system when an assignment solution is to be uploaded. Therefore, we

use digitally signed applets [Sun 98b1, which provide a secure way of giving applets

access to the local machine file system. The user can dowdoad DMS-signature and

declare it as a tnisted entity allowing DMS-applet to access hisher machine.

4.4.1.4 Object Factory

If the server creates a single object instance, only one user will be supported. We

need a way to create objects on demand: an object factory. Object factory implements

interfaces for creating other objects. Remote objects are typically created through an

object factory, which is responsible for allocating instances of these network objects, and

obtaining their object references. In the DMS services, the server object factory creates

each of the remote objects.

4.4.1 J Systen exception bandler

DMS has a system exception handler that attempts to catch fatal system emrs and

exceptions. The system exception handler helps to prevent server application fkom

temiiaating due to problems with individual client co~ections. Whenever a fatal ermr

occurs in a client connection, DMS tries to terminate the client connection without

Page 52: Distributed Marking System OMS)

CHAPTER 4. DMS FUNCTTONALITYAND DESIGN

bringing d o m the server application or interferhg with other client connections. Once

the problem has been detected, the system exception handler throws an exception event in

the client application. The systern h d e r is also used to catch user data access error and

give a clear feedback messages about it. For example, if user tries to download

assignment outlines that are not available yet, the server application will throw an

exception on the client side with an explanation of the emr.

4.5 Architecture

DMS integrates Web-based and ClientIServer applications in a single, unified

architecture. Client Applications are generally standalone applications, but are integrated

into DMS through a single server. As we descnbed in section 4.3.1, client applications

are deployed either as DMS-applets or DMS-applications.

DMS is a 3-tier Client/Server Architecture as shown in Figure 4.2. Tier 1

repments a Client side: DMS-applet clients use HTTP protocol to link to the Web Server

and download the HTML page. Web browser loads DMS-applet fkom HTTP server. A

DMS-applet uses the ORB to hvoke the CORBA server objects. Tier 2 represents a Web

Server side: Client queries the implementation repository and b d s the seMce object at

nui-the. The ORB locates the appropriate irnplementation class, transmits parameters

and transfers control to the object hnplementation. Service object on server side will use

another middleware such as JDBC to communicate with the database server. Tier 3

represents a Database side: it is a legacy system such as relational DBMS. The sewer

side uses JDBC to retrieve the result h m the database. When the request is complete,

control and output values are retumed to the client.

Page 53: Distributed Marking System OMS)

CHAPTER 4. DMS FWCTIONALITY AND DESIGN

Client

* Tier 1

Network Web Sewer Database

Figure 4.2 - DMS 3-Tier Architecture.

Note that DMS-application clients use the CORBA IIOP to Ihk to the server and

the ORB to access the server and do not need to use the web browser.

Page 54: Distributed Marking System OMS)

CHAPTER 4. DMS FI/NCTIONALITY AND DESIGN

4.5.1 Components

Figure 4.3 presents the general architecture of the system. The system consists of

the following compoaents:

Client Server

Figure 4.3 - Architecture of the DMS.

Graphieal User Interface Component (GUI)

GUI component contains al1 of the windows and menus required for the user

interface.

Application Con troller Componen t (AC)

It listens to user interfaces and responds by calling the Connection Manager.

0 Application Conneetion Manager Component (CM)

Page 55: Distributed Marking System OMS)

CHMTER 4. DMS FüNCTIONALITY AND DESIGN

CM initializes the necessary parts of the ORB and establishes a comectioa with

the server. CM communicates with the semer by calling its hctions thmugh the

ORB. - Object Request Broker (ORB)

ORB main task is to maintain two-way communication between DMS-let and the

central server. It lets client objects transparently make requests to-and receive

response fiom server objects remotely. - DMS-Application Component (SA)

SA represents client appiications, which nui as Standalone Applications.

Standalone applications may be written in any programming language. Currently

they are implemented in Java for portability reason. Ail dowdoaded applications

cornmunicate with the server by the use of ORB.

0 DMS-Applet Component (JA)

Java Applet is aiso a client application but written in Java language, downloaded

through the network from an HTTP server, and executed in WWW environment.

The ORB also maintains communication between Java applet and central server.

Semer Listener Component (SL)

SL is a specialized application, which acts as an interface to the server. It is used

to launch the server locally or remotely, create service objects and Listen for

client's invocations.

Object Factory Component (OF)

Page 56: Distributed Marking System OMS)

C ' P T E R 4. DMS FUNCTIONALITY AND DESIGN

OF is the system object factory. It creates and manages access to services objects,

the sources of data for each client. Service objects to clients depend on user

privileges, giving a user access to only these features that he/she is allowed to use.

It allows also logging into the system.

Database Interfaces Component (DI)

DI represents general interface for database. It can be customized to access any

database systern.

DB represents Database Component

r WB is any web server used to download DMS-application or mn DMS-applet.

WS is the Web server where the DMS-let initially resides.

IIOP (Internet Inter-ORB Protocol) is CORBA protocol used in ORB to ORB

communications.

Page 57: Distributed Marking System OMS)

CHAPTER 5. SYSTEM CMPLEMENTA TION

Chapter 5

5 System Irnplementation

[n this chapter, we descnbe the system implementation using class diagrams and

code fragments.

We use 0rbixWeb3.1 [Iona 981, an implementation of CORBA in Java and

SDK1 J.8 [SUN 98a] for our implementation. The advantage of OrbixWeb is that it uses

iïOP for its transport, which allow clients and servers to interoperate with clients and

servers developed and hosted using ORBs from different vendon. OrbixWeb also

provides a daemon activator that allows clients to remotely activate the server.

5.1 Remote Interfaces

Figure 5.1, which is drawn using UML (Unified modeling Language) notations

Fational 981, shows a class diagram of the CORBA objects, as defined by their IDL

interfaces. These interfaces are stored in separate modules (packages). Each module

contains one or more interface. This separation is very important for the software

deployment. For example, to deploy a Student Client Application, we include Student

Module, which is separated fiom other client modules.

Page 58: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTAî7ON

1 Authenticata

Imt ctor -k-

Figure 5.1 - Interfaces and Packages Diagram m).

Below we describe the interface implementations and their d e s in the system.

Page 59: Distributed Marking System OMS)

C W T E R S. SYSTEM IMPLEMENTAZ7ON

5.1.1 Authenticator

The Authenticator interface is not meant to be used directly. It is intended to be

inhented by other objects that will provide this hctionality within the context of their

own intended use. It supports methods that allow clients to log in, change their password,

and ven@ identities.

The following is the code listing for the Auth module written in DL:

module Auth

//user types

enum UserType {

Studen t, Marker, Instructor, Administrator

1;

// Authentication token

typedef sequence<octet> Auth Token:

// Packet to be passed to al1 Secured" servers

string userID;

AuthToken token;

I ;

Page 60: Distributed Marking System OMS)

CHAPTER S. SYSTEM IMPLEMENTATION

// Failure reason

InvalidUser, InvalidPasswd, Tirnedûut. BadToken, BadFi [ter

//Exception for security errors

exception AuthFailure /

string descriprion;

AuthReason reason;

// Abstract Authenticator inter$ace to be specialized by

//abjects that need to authenticate users.

interface Authenticator {

Auth Packet login (in string user, in string pasmd,

void disconnectAndDestroy(in Authpacket tok)

Page 61: Distributed Marking System OMS)

CHAPTER 5. SYSTEM MPLEMENTATION

The Auth module defines Authenticator interface and remote objects for

exception handling. Once a client logs in, the Authorized object retums an Autltpacket

object that contains the client's "credentials." AI1 other methods require these credentials

that contain the user's identity and access permissions. The Auth Token sequence is simply

authentication data that the server uses to venQ the user's identity. Using a sequence of

octets means that data will be transmitted without modification. The Authpacket simply

encapsulates the authentication data with the user name. It is the structure that is passed

between client and server objects for authentication purposes.

5.1.2 FilterFactory

The FilterFactory, which is defined in the DMS module, generates and manages

access to DataFilter objects, the servant objects for clients. The FilterFactory therefore

does two things: It creates DataFilter objects, and manages access to those objects via an

authentication mechanism.

As shown in Figure 5.1, FilterFactory inherits from the Authenticator interface

dehed in the Auth module. The application-level hctionality of the FilterFactory is

provided by the FilterFactov interface, which allows clients to obtain a reference to a

FillerFactory object after logging in. The FilterFactory creates the DataFilter object and

r e m s its reference to the invoking client. The FilterFactory destroys the object when

the user logs out.

Page 62: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTAî7ON

Note that each method takes an AuthPacket authentication token as a parameter.

This allows the FilterFactory to authenticate the client on every operation. Without a

vaiid token, no client can hvoke any of the methods successfÙlly. This technique is what

the CORBA Security service does. Unfortunately, it is not available in the cunent

CORBA implementations.

The following is the code listing for the DMS module written in DL:

module Dms

{

// Failure reason

enum DmsReuson {

Invalid, NotFound, NotMarked, Exist, BadFilter

//Exception for data errors

exception DmsFadure {

string description;

DmsReason reason;

// data structures

Page 63: Distributed Marking System OMS)

CHAPTER 5, SYSTEMMPLEMENTATION

typedef sequence~uctet > Bytes;

//array of strings

typedef sequence<strhg> Strings;

//ossigrnent object

smrci File {

string name;

string courseSym;

string assignsym;

Bytes buffer:

1:

//coursefiller

smct CourseFilter {

string symbol:

string name;

Strings inshuctors;

Strings marks;

Page 64: Distributed Marking System OMS)

C ' T E R 5. SYSTEM lMPLEMENTATXON

string symbol;

string dueDate;

string symbol;

double mark;

string symbol;

sîring name;

Bytes outlines;

double mark;

//ist of courses filrem

Page 65: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTATION

Mist ofasignments filters

typedef sequence~AssignFiIter> AssignList;

//Est of marks filters

typedef sequence<MarkFiiter> MarkList;

// Abstract FilterFactory interfce extends Authenticaior

// interfocce fur provide its functionality when if is

//specialued by objects that need to authenticate users.

interface FilterFactory : Auth::Authenticator {

any getFiIter(in Auth::AuthPacket tok)

raises(Auth::AuihFaiIure);

boolean changePasswd(in Auth::AuthPacket tok, in string mrP W,

in string newPw

ruises(A u th::A uthFailure);

1;

// Abstract Nttegace to be inherited by other DataFiIter interfaces.

interfce DataFilter {

1; 1;

Page 66: Distributed Marking System OMS)

CHMTER 5. SYSTEMIMPLEMENTAl7ON

The DMS module defines FilterFacto~, DataFilter interfaces and generic remote

objects that can be used by ali clients.

5.1.3 DataFilter

DataFilter is an empty interface. Other interfaces are inherited nom it for the

sake of polymorphism. Therefore, DataFilter object could be any of these interfaces:

AdministratorDataFiZter, InstnrctorDataFiIter, StudentDataFifter, or MarkerDataFilter.

DatnFilter object is the source of data, as far as the user sees. Each client

application acquires a reference to its DataFilter object d'ter first logging in. This object

is responsible for filtering the data sent to the client. Each client gets a different

DataFilter object, depending on user pnvileges, giving a user access to only these

features that hdshe is allowed to use. For instance, here is the Student Module code,

w hich de fines StudentDataFilter intedace:

module Student

// Filtered data filter source

// Abstract StudentDataFilter interface to be imp Iemented by

// StudentDataFilter object

interfce StudentDataFilter :Dms::DutaFilter {

Dms:: CourseList get Courselist (in Auth::Auth Packet tok)

raises(Auth::AuthFaiIure);

Page 67: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTA TTION

Dms::AssignList getAssignlist(in Auth ::AuthPackt tok , in string CS')

in string a S p )

raises(.::DmsFailure, Auth::AuthFaiiure) ;

void submit4ssignSolution(in Auth::AuthPacket tok,in Dms::File file)

Dms::File getMarkedAssign(in Auth::AuthP acket tok,in string cSym,

in string aSym)

raises(hs::DmsFaiIure, Auth::AuthFaiiure);

double getAssignMork(in Auth ::AuthPacket tok, in string cSym,

in string uSym)

1;

1;

The StudentDataFiZter interface dehes al1 the remote services that a student can

use.

Page 68: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTATION

5.1.4 DataManager and DataResource

DataManager and DataResource are Java interfaces used to access databases.

These interfaces are designed to be general interfaces that can be implemented to access

any favorite database system and also, cm be switched to remote interfaces (IDL

interfaces) easily and used to access a remote database system. Currently, they are

implernented as local Java interfaces and are used to talk to the file system in the server

machine or database through JDBC.

An adrninistrator uses DataManager to maintain user, and course accounts, while

users use DatuResource to access data.

5.2 DMS Client Side

The Client application, which we cal1 here DMS-let, cm appear in one of hKo

forms; as a Java applet (DMS-applet) or as a Java application (DMS-application).

Therefore, there are four types of DMS-lets, one for each type of an actor; and every

DMS-let cm be an applet or an application. Client applications are somewhat similar in

the design therefore we wil1 only describe the largest one which is the Marker Client

Application (MCA).

Page 69: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTAï7ON

j <<Interface>> 1 I Controller I t / ConnectionManager

; ActionListmer r< /-. 1

Figure 5.2 - Client Application Class Diagram (UML).

Controller is the central class. It Listens and handles the interactions of the user

with the G U S and uses ConnectionManager to make remote calls. Because most of the

f'unctionality of the user interface is provideci through button actions, Controller

implements the ActionListener interface. This allows pmcessing of events fiom the

Page 70: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IUPLEMENTA TlOM

various buttons fiom ail GUIS within a single class. LoginGu inherits fiom

java.applet.Applet and presents the login screen for the user to enter hidher user ID and

password upon start-up. Once the user has logged in, the controller shows the user its

main screen, which is presented by the MainGUI class. The main screen provides a

display of al1 the buttons and lists for the user to interact with the system. The

ConnectionManager handles ail interactions with the CORBA ORB.

5.2.1 Creating the user interface

in a distributed environment, most if not al1 of the user interaction take place in

the client application. The client application contains al1 of the windows and menus

required for the user interface. In addition, the client application contains scripts that

perform processing in response to each action that the user takes. For example, these

scripts can speciQ what happens, when a user clicks a button or enters data into a text

box in a window.

5.2.2 Connecting to a sewer

To allow a client application to function in a distributed environment, we need to

connect to a server application. Here, to connect to the server, we use the

ConnectionManager object, which needs to execute statements required to perform these

operations:

Initiake the ORB.

Look up the server.

Set properties for the client.

Page 71: Distributed Marking System OMS)

CHAPTER 5, SYSTW IMPLEMENTATION

Invoke bind fiinction in the ORB to establish a comection to the server

application.

Here is the Java code for the ConnectionManager constmctor:

public Connection.Manager(Contrul1er cuntrol) {

// Save con troller reference

controller = control;

// Initialize ORB.

orb = ORB. inito;

filterFactory = null;

//get the server host which is the 1oginGUTapplel host

serverhost = conr*oller.login G U.1. upplethost;

System.out.pRntln("Server Host: "+serverhost):

// bind to server object and gelfilter factory proxy object

) catch (SystemException excp) {

contro1ler.popMsg~E~or~ '? Initialùation Failed! Try again later. .. '7;

Systern.ew.p~ntlnrEwor during initiaIization of 0bjectFoctor-y'~;

System.err.println('%rception: " + excp);

Page 72: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMNTAîïON

retunt;

5.2.3 Invoking methods of remote objeets

Once a comection to a server application has been established, and the client

application has got ObjectFactory proxy object, the client can invoke the login method of

the ObjeciFactory, by referencing the proxy object, to login and to get the filter servant

object.

For instance, the marker client will invoke the gefFiiter fhction in the

ObjectFactory to get the MarkerDataF'iiter object. The ObjecfFactory will return a

UserDataFiiter type referencing to MarkerDataFilter. Then the client will extract it to a

MarkerData Filter.

Here is the code fiagrnent from the ConnecfionManager that is used to retrieve a

filter object nom the server:

//get ofilter object

trv l

//create Any CORBA object

//set filter object

any =filterFacto~.getFiIt~@acker);

Page 73: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTATION

// extract any object to MarkerDataFilterte object

fil ter = (MarkerDataFiZter) MarRerDataF'ilterHeipet.extract(any);

) catch (AuthAuthFailure authkcp) f

System. err.println('3ecurity Failure!! 'y;

coniroller.popMsgrEnor ", "! SecunrZty Failure!.. .'y;

return false;

I

catch (SystemException excp) {

System. err.prin tln("Err0r occured attempting to getFilter* 7;

excp.printStackTrace(System. err);

con~oller.popMsg("Emor", "!. Initialization Failed! Try ugain! '9;

retum false;

I

rehïrn true;

l'

The above code is similar in al1 clients, the connection.Manager creates and

initializes an Any CORBA object to receive the servant proxy object and then extracts the

Any object according to the client type; in this case to a marker servant object.

Page 74: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTAïTTlON

5.3 DMS Server Side

DMS defines six servant objects. These are the authorization manager, the object

factory, and the four original data filter objects (see Figure 5.3). Client pmgrams ded

with the authorization manager at M. The object factory creates multiple filter objects

for clients. M e r login, clients request a filter object fiom the object factory and receive a

reference to one of these relatively short-lived objects. The ObjectFactory object is the

one object outside that users should be able to find. M e r initialization, a name in the

namiag service ("DmsServern) has a reference to this object. That reference must then be

exported so outside users can find it. The DMS server maintains a temporary collection

of the currently logged in users.

Figure 5.3 - Server Class Diagram (UML).

64

Page 75: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTA UON

The FilterFactoryhpl class is the main impiementation servant for the

authorization and object factory remote interfaces.

makePacket() is a utility function for making authorization packets. It is a hook

where a variety of usehl per-packet processing cm take place. We place the array index

of the user in the packet so we c m easily h d it iater.

Here is the code for the AuthPacket method:

private AuthPacket makePacket(UserData ud, int inder) {

AuthPacket pck;

// use a sequence ofoctets tu grantee that the data will be

// tranismited without modifcation

byte oc[] = new byte[l];

oc[O] = (byte) inder;

// retum the packet

retum pck - new AuthPacket(ud. userlD, oc);

I

getFilter0 is a cal1 for the object factory. M e r the client logs in and gains an

authorization, the client calls getFiltet0 to get a reference to a DatuFitter object. Each

user gets hidher own unique data filter object that c m be used to access the data.

Here is the code for the getFiltW method:

Page 76: Distributed Marking System OMS)

CHAPTER 5. SYSTEMIMPLEMENTATION

public org.omg. CORBAdny getFilter(AuthPocket tok)

throws Auth. AuthFailure {

// Check auth packet

if!isAuth valid(tok)) {

throw(new Auth.AuthFailure("lnvalid Token 't

AuthReason. BadToken));

I

// Get index from auth packet

int ind=0;

if(toktoken.lengrh == 1) {

ind = tok token[O];

1

Server.trace("getFi1ter: d e n " + ind);

// create an any CûRBA object

org. ontg. CORBA.Any any = org.omg.CORBA ORû.init#.create-any0;

//gel the user current record

UserData usr = (UserDafa) curentUsers.elementAt(ind);

// initialize the DataFilter object

DataFiiter df = null;

Page 77: Distributed Marking System OMS)

CHAPTER 5. SYSTEM IMPLEMENTATION

//Assign this object to be the Authenticator object for this user.

Authen ticator auth = (Authenticator) this;

// checks the user type and create a probote m e r object for it

//and inserted to the any CORBA object

if(usr. type == Auth. UserType..Studenl)/

df = new StudentDataFilterlnipl(uuth, tok);

Systern.out.printfnn(3 "+usr.userlD+" got Student Filter.");

I

else

flusr.îype == Auth. UserType.Marker) {

df = new MarkerD~taFilterImpl(auth. tok);

System.out.println('3 "+usr. userlD + " got Marker Filter. ");

I

else

df = new InsmrciorDataFilterImpl(auth, tok);

Systern.out.println( "+usr.userlD+" got Instructor Filter. '9;

I

else

Page 78: Distributed Marking System OMS)

CHAPTER 5. SYSTEM CMPLEMENTA TION

i fwr . type == Auth. LlserTypeAdministrator) {

df = new AdministraiorDataFilterlntpl(aurh. tok);

System.out.println (3 "+us. userID+ " got Administrator Filter. '7;

I

Semer. trace('getFi1ter: Created filter.. . '7;

Semer. trace("getFi2ter: registered new DutuF'ilter 7;

// insert the filter object into any CORBA object

any. insert-Object(dfl;

// Register the newfilter with the current user record

synchronired (this) {

DutaFilter filter = usr./ilter;

//lfthe user has an oldftlfer here destroy it

// User can only have oneftlter ut a time.

@?!ter != nul[) {

//simply destroy the stored reference

filter = null:

I

//Store reference to new DataFilterjilter ut the user temporas, record

((UserData) currentUsers.elementAt(ind)).filter = dfi

Page 79: Distributed Marking System OMS)

CHAPTER 5. SYSTEM 1MPLEMENTAI7TION

I

Server.trace("getFi1ter: stored new DataFiltert');

//return amer reference object tu the client of type CORBA any

//whereas each client knows how to conshuct itssfilter object.

retum any;

I

Clients use their filter servant objects to access the semer.

Page 80: Distributed Marking System OMS)

CHAPTER 6. APPLICATION EHMPLES

Chapter 6

6 Application Examples

In tbis chapter, we illustrate the DMS system in action by studying an example of its

use. Tbroughout the description, we use screenshots to illustrate the interfaces that users

will typically encounter while using the system, but we do not provide complete coverage

of al1 operations available to users under ail possible circurnstances.

We begin with maintenance of course and users accounts, and then illustrate the

assignment maintenance process, but first we illustrate the logging in process that must

be taken by al1 users every time they want to access the system.

6.1 Logging in to the system

Upon client start up, each user is presented with hidher login screen, which appears

sirnilar to al1 users. The only difference is thai the username label has the user type. For

example, the login screen for administrators appean with a usemame label

"Administrator" as shown in Figure 6.1. The user has to provide valid user ID and

password.

Page 81: Distributed Marking System OMS)

CHAPTER 6. APPLICATION EXQMPLES

Figure 6.1 - Logging in Screen.

Once the user has logged in, the system presents the main user interface screen. For

example, Figure 6.2 shows an administrator main interface screen, which is different

fiom other user interfaces.

Figure 6.2 - Administratofs Main GUI.

Page 82: Distributed Marking System OMS)

Another example is student main interface screen as shown in Figure 6.3, which

appears somewhat similar to markers and Uisüuctors.

Figure 6.3 - Student's Main GUI.

The lefi-hand side column is generated based on courses currently taken by this

student. Once a specific course is selected (COMP2663), the description of this coune

appears in the center column, and assignments for this course appear in the right-hand

column. A specific assignment can be chosen (Assignment # 1 above); brief information

about this assignment is then appended to the central columa, which includes assignment

name, due date and assignment mode. Assignment mode indicates whether the

assignment is a new assignment, or has been submitted, marked or downloaded.

Page 83: Distributed Marking System OMS)

6.2 Maintenance of Course and User Accounts

In this section we illustrate the creation of two course accounts (MATH1423 and

COMP2337) and some user accounts, then illustrate how to register users to those

courses.

Maintenance of user and course accounts is the administrator's respoasibility (refer

to section 4.2.1.4). When an administrator tries to create a new course or user account,

the system will prompt the user for an account ID to check whether the account already

exists or not. Then the system wili present the course screen and will not dlow the

administrator to modify the account ID. Figure 6.4 shows how the administrator creates a

student account (Studentl). The acûninistrator has to provide a user name, an initial

password, and speci@ the user type. The administrator can also provide some comments

about the user, which are accessible only for other administrators.

Page 84: Distributed Marking System OMS)

CHAPTER 6. APPLICATION EXAMPLES

Figure 6.4 - User Account Maintenance.

The administrator adds other user accounts (student2, markerl, and instructorl)

the same way described above.

To create a course account the admlliistrator has to provide the course symbol and

the course name. The administrator can aiso provide some cornments about the course,

which are accessible only for other administrators.

Page 85: Distributed Marking System OMS)

Figure 6.5 - Course Account Maintenance.

When user and course accounts are created, administrators cm register users to

the courses. Figure 6.6 shows how an adrninistrator registers a student (studentl) to a

course (MATH1423).

Page 86: Distributed Marking System OMS)

Figure 6.6 - Course Registration.

The administrator is presented with a list of the user courses that he is already

registered in. In the above case the student has not registered to any course yet. The

adrninistrator has to click on "Add" to register the student to a course and then provide

the course symbol. The system will validate the course symbol and add the course to the

student course list. The adrninistrator registers the instnictor and the marker to the course

the sarne way described above.

6.3 Assignment Maintenance

In this section, we will illustrate the assignment maintenance process that we

described in. section 4.2.2.

Page 87: Distributed Marking System OMS)

Maintenance of Assignment Accounts is one of the instructor tasks (refer to

section 4.2.1.3). Instructor can maintain assignment accounts for his/her courses that

he/she has been registered in by an adminishator. The insûuctor can prepare an

assignment outline either off-he, or on-line; see Figure 6.7. Assignment outline must be

loaded in a text format so that it can be viewed on-line in the user GUI text area. To

prevent instnictoa fiom uploading files that are not in a text format, we limited their off-

line option. Inshuctors can only use cutfpaste technique for uploading assignent

outlines. The instructor should also provide other information such as assignment due

date and maximum mark.

Page 88: Distributed Marking System OMS)

Figure 6.7 - Maintenance of Assignrnent Account.

A student c m get access to assignment outline in two different ways. One way is

to download assignment outline as a text file that c m be saved in hisfher machine, and

access it off-line. The outline file name is a combination of the course symbol and the

assignment number. The other way is to view them on-lhe in the text area. Figure 6.8

shows a student who viewed the assignment outline, on-line and tries to download it to

his machine.

Page 89: Distributed Marking System OMS)

CHAPTER 6. A PPLICQ TION EXQMPL ES

Figure 6.8 - Assignment Outline Downloading.

To submit an assignment solution, the student should point to the assignment that

he/she wants to subrnit the solution for it in the assignment list and then click the submit

button. DMS will ask the student to specify where the assignment is located in the local

drive. Then DMS will automatically compress ail files in the selected directory to one

compressed file and send it to the sener. For example, in the case that is shown in Figure

6.9, DMS will compress the Listed files and send the compressed file to the server.

Page 90: Distributed Marking System OMS)

CHAPTER 6. APPLIC4TION EXlMPLES

l~raph Theroy end Hauix Aïgcbra

Figure 6.9 - Assignment Solution Submission.

The rnarker c m get assignment solutions that have been submited to the server by

students. Figure 6.10 shows how marker downloads assignment solutions for the selected

assignment (Assignment #1) by clicking "download solutions" h m the download menu.

Page 91: Distributed Marking System OMS)

CHAPTE. 6. APPLICATION EXQMPLES

iraph &iy and R l l a u i x Aigebra 1

sigmenc Na8e: Lrtor and tloacïng point eDatc : Ved Apr 21 02:05:00 1999

studentl Wed Apr 2 1 02:02:51 GMT 1999 -- j studentl Wed Apr 2 1 02 :OS: 10 GMT 1999 late

Figure 6.10 - Marker downioads solutions.

The marker is presented with a list of student solutions and their States; the state

indicates whether the assignment was submitted late or before the deadline. In Figure

6.10, two solutions are submitted and are available for downioading. Note that markea

are allowed to download late solutions too.

The marker can download al1 or some of the solutions, which will be saved on

his/her drive. Once the assignment solutions are downloaded, the marker can disconnect

Page 92: Distributed Marking System OMS)

CHAPTER 6. APPWCR TION EXQMPLES

from the network, and at hermis convenience, mark assignments off-line using DMS

Marking Editor (refer to section 4.2.1.3) or other software tools.

Markers can upload marked solutions the same way as they download solutions.

The marker has to speciQ the location of the course directory from which he/she

downloaded the solutions. DMS will automatically upload dl marked solutions and show

them in a separate window for mark update and then submission. Figure 6.1 1 shows how

a marker submits marked solutions to the server.

itudentl 3 tudent2

Figure 6.1 1 - Marker uploads assignrnent solutions.

Page 93: Distributed Marking System OMS)

CHRPTER 6. APPLICATION EXAMPLES

A student can get hidher markeâ assignments aftm being uploaded by the marker

to the semer. Figure 6.12 shows how the student downloads his marked assignment.

Figure 6.1 2 - Student downloads marked solution.

The marked assignment will be downloaded as one compressed file on the client

side. DMS will extract the file into the selected location. Note that cornpressing and

extracting file(s) process is doue implicitly and is hidden fiom the user.

Page 94: Distributed Marking System OMS)

CHAPTER 7. CONCLUSIONS

Chapter 7

7 Conclusions

7.1 Concluding Remarks

In this thesis, we leamed about a nurnber of basic areas of object technology such

as distributed objects, Java, and CORBA, and showed how they fit together to build an

extensible, portable, and disûibuted system.

We illustrated aspects of disûibuted object system construction that are both

important and recurring; including client/server partitioning, multi-user support,

authentication and security, integration of a legacy system and the distribution of

asynchronous events and data-streams across a heterogeneous network.

Our main aim was to establish whether we could develop reasonably sophisticated

client/server software that does not limit us to a specific hardware or an operating system.

For example we wanted to be able to accommodate a student who uses Unix on a PC, and

a marker using a Macintosh. We illustrated that our CORBA-based system correctly

performed its functions, and evaluated our approach with respect to design and

development, maintainability, configurcition, deployrnent, extensibility, and user

interface. We demonstrated that when the Java language environment, the World Wide

Web (WWW), and the Cornmon Object Request Broker Architecture (CORBA) are used

84

Page 95: Distributed Marking System OMS)

CHAPTER 7. CONCLUSIONS

together, they provide a powerfûl set of tools for developing and deploying user-oriented

distributed application.

We illustrated how DMS provides two different approaches on the client side.

DMS-application is based on a conventional client/server model, while DMS-applet is

based on a web-based clientlserver model,

We concluded that our approach to building distributed applications is not only

practical, but is in some ways supenor to the widely used CG1 approach, see for example

Homework Submission System [Pillaipakkamnatt 981, as well as conventional

clientherver approaches that do not exploit the WWW e.g. MCEXAMS [Dalhousie 951.

Below we descnbe the advantages and disadvantages of the DMS approach over

other approaches.

DMS software is independent of particular host architectures and operating

systems; it will execute on any platform supported by Java or a Java-enabled WWW

browser. DMS can also support langage-independent distributed objects. It is object-

oriented, with al1 its associated software engineering advantages. DMS client software

can exploit a richer GUI tooikit of Java for more sophisticated UI design. Operations

between client and server sides are explicitly defined in DL. The DMS-applet client

software is installed on demand via the WWW infiastructure. There is no need to write

the software that conveys operation requests and responses between clients and servers;

the ORB provides this. WWW servers are not involved in any operations between the

Java clients and server objects. DMS supports not only pulling information, and online

access, but also pushing information on to a client's machine for off-line work. DMS has

85

Page 96: Distributed Marking System OMS)

CHAPTER 7. CONCLUSIONS

generic interfaces for database access to provide the flexibility to upgrade to another

implementation in the future.

While implementing DMS applications using Java and CORBA, we encountered

some issues. An ORB must be licensed and installed to support both development and

execution; thus the new release of JDK (1.2) has included a Java ORB. DMS-applet

client start-up is slower than that for an HTML page with forms, since some or the client

Applet classes may need to be downloaded fkom the WWW server (though several

WWW browser-caching schemes are in use). The process of declaring DMS signed

applet to be tmsted entity is cumbersome. Some browsers still have considerable bugs in

their Java nuitirne or Java API implementations. For example, Netscape Navigator for

Solaris does not correctly show the standard Java GUI window component, specifically,

the GUI coloa. DMS-applet client state is at the mercy of the WWW browser. There is

no standard for what a browser does with the Applet when the user leaves the Applet's

page, then retums to it later (it might pause the Applet then restart it, or it might destroy

the Applet then recreate it).

Finally, we would like to indicate that, as a result of a separate project, DMS

Database side has been re-implemented to use JDBC to tak to Microsoft Access

Databases and did not require any change in the server or client sides. DMS Marking

Editor has not been implemented yet.

Page 97: Distributed Marking System OMS)

CHAPTER 7- CONCLUSIONS

7.2 Future Directions

We have demonstrated that DMS provides a good example O: P distributed systems.

However, there are many ways in which this work can be extended As an example, the

DMS server currently generates a transient object for each client connection and these

objects stay alive as long as the server is dive. These objects could be used to keep tmck

of client connections and to send notifications to users. For example, students could be

notified when their assignments are marked. Additionaily, these objects could also be

used to manipulate the server dynamically, and allow super users to monitor the server

and discomect or Iimit client connections.

Page 98: Distributed Marking System OMS)

Bibliography

[Acme 981

[Ben-Naton 981

[Daihousie 951

[Hoque 981

[Hunter 981

[Iona 981

[Lewis 981

[Microsoft 971

[OMG 981

[Orfali 97al

Acadia University (1 998), Wolfiille, NS. ACME. Availble via: <http://acme/ >

Ron Ben-Natan (1 998). CORBA on the Web. MxGraw-Hill, Donnelly & Sons: New York.

Dalhousie University, Halifax. NS. MCEXAMS: Multiple Choice Exarn Marking System (1 995). Avaiiable via: < http://is.dal.cd-itu/ 1995/falI/index.litmL>

Reaz, Hoque; Tarun Sharma (1 998). Programrning Web Components; MxGraw-Hill; Donnelly & Sons: New York.

Jason Hunter (1 998). Java Servlet Prograrnming ; O' Reilly ; Cambridge.

The OrbixWeb 3.1 Programmer's Guide and the OrbixWeb 3.1 Reference Guide. Available via

http://ww.iona.com/nroducts/internet/orbi.uweb/fordevelo~ers.html

Lewis; Barber; Siegel (1998) Programrning With Java IDL; Wiley & Sons: New York, NY.

Microsoft (1 997). COM/DCOM Specification. Available via: ~http://www.micros~fi.com/oiedev/olecom/title.htm~

Object Management Group (1 198). The Common Object Request Broker: Architecture and Specification. Available via < http://www.omn.ora/librar~/c2indx.h~l>

Robert, Orfali; Dan Harky (1 997). ClientBever Prograuunhg with

Page 99: Distributed Marking System OMS)

JAVA and CORBA. Wiley & Sons: New York, NY.

[Orfali 97b] Orfali; Harkey; Edward (1 997). The Essential Distributed Object survival guide. Jon Wiley & Sons: New York, NY.

[Orfali 97d] Orfali; Harkey; Edward. (1997). Instant CORBA. Jon Wiley & Sons: New York, NY.

[Pillaipakkamnatt 981 Pillaipakkamnatt, Krishnan, Wilkins, Dawn (1 WB). A Tool For Homework Submission Using the World Wide Web. Webnet 98, Orlando.

[Rational 981 Rational Software ( 1 998). The Unified Modeling Language (UML). Available via htt~://ww.ntiona~.com/

[SUN 98a] Sun Microsystems. The Java Language Environment (1998). Available via htt~://www.iavasoft.com/docs/white/laneenv/ ( 1 1 September 1998).

[SUN 98b] Sun Microsystems. JDK 1 . l .x Signed Applet [On-line]. Available via htt~://iava.sun.com/securit~/si~~nExam~le/

Page 100: Distributed Marking System OMS)

APPENDLXA. DMS I?VSTUTION GUIDE

Appendix A

DMS Installation Guide

In this Appendix, we describe the installation of DMS clients and server. Both

server and client installations need a Web browser, and JDK version 1.1.5 or higher, but

not version 1.2.

1) Server installation

A Web Server and OrbixWeb h m IONA, see [Iona 981 are needed prior to

installing DMS server. Cunently, DMS is installed on evilqueen.acadiau.ca, so this

hostnarne will be used as an exampte.

There are six steps to install and make the DMS server available to clients:

1. Get the DMS zip file (dm-PackageAp) nom a DMS host.

2. Unzip the file into a DMS directory (any directory that cm be accessed through the

WWW)*

3. Unzip the server zip file to a server directory (any directory).

4. Add the server directory path to the OrôixWeb classpath (use ûrbixweb

Configuration Tool).

Page 101: Distributed Marking System OMS)

5. Start the OrbixWeb Java daemon and then register the DMS server by typing the

following command:

% putit -j DmsSenrer Server.Sener

6. Change the activation and launching modes of the DMS server to public modes by

typing the following commands:

% chmodit DmsServer i+all

% chmodit DmsServer l+all

DMS server will add an administrator account to the database, and give it a login

narne "superuser" and a password "superuser". This account can be used to login to DMS

server for the first time.

II) Client Installation

DMS client c m be installed and nui as a standalone application @MS-

application) or as an applet (DMS-applet), which nuis in a web browser.

DMS client applications can be downloaded and installed in the user local drive.

Downloading client application involves downloading the client classes and CORBA

ORB (zIMbyte/application). These are the steps to download and install a client

application:

1. Get the client zip file fiom the DMS Download Page

Page 102: Distributed Marking System OMS)

APPENDLVA. DMS lNSTALL4 TION GUIDE

(see htttx//evil~ueen.acadiau.ca/dmsPage/downhdhm) and then unPp the P p file.

2. Set CLASSPATH

DMS application uses the defauit CLASSPATH that is set in the client driver. If

you encounter any problems with the CLASSPATH try to add the application directory to

your CLASSPATH. For exampie, if you have downloaded the studeat Application to

C:UlyApp\ , then your CLASSPATH should include this path.

3. Run the client application

To start DMS Client application, you must type the application package narne, the

LoginGUI class name and the serverhost name. The hostname is the DMS host name

from where you downloaded the application. For example, to run a DMS Application that

has been downloaded in c:\MyApp and connect to a server that was installed on the

remote host evilqueen.acadiau.ca, you must type

C :\M yApp\ java DMS App .LoginGu1 evilqueen.acadiau.ca

Note that DMSApp must be one of the following:

StudentApp for Student Client Application

MarkerApp for Marker Client Application

InstructorApp for Instmctor Client Application

AdminApp for Administrator Client Application

This will launch the Login GUI, which can be used to logon to the DMS server.

Page 103: Distributed Marking System OMS)

APPENDLX A. DMS /NSTAUAïTON GUIDE

Downloaded applets are prevented fiom writing or reading files to or fiom your

hard disk. Unfomuiately, the JDK 1.1 signing and venfication is not supported by the

web browsers (Netscape's and Microsoft's.). You can use the Java Plug-in in the Netscape

browser to get access to the more ment JDK technology. You can run JDKl. 1.x signed

applets with the Plug-in plugged into the Netscape browser.

To allow DMS applet to access your drive, you need to use a Netscape browser

and do the following:

1. Get the latest version of the Java Plug-in, install it, and make sure it is not set to use

JDK1.2. It must use JDKl . 1.5 or higher.

2. Set up your system Co accept code signed by Ali Elbashiri.

You should get a copy of Ali's certificate, import it into your system's identity

database and declare Ali to be a trusted entity, then you'll allow any applet signed by Ali

to have full authonty on your system. Here are the steps you need to take to accomplish

that:

a) Download a copy of Ali's certificate and store it in a file named aii.x509 (see

htto://evilaueen.acadiau.ca//dmsPage/DMSsie.htrn~. -

b) Create the identity "Ali" in your JDK I .1 identity database. By passing the parameter

"tnie", you're sayhg that you want Ali to be a trusted identity.

% javakey c ali true

Page 104: Distributed Marking System OMS)

APPENDLXA. DMS INSTAUA TION GUIDE

c) Import Ali's certificate hto your identity database. Associate the certificate with the

identity "di" by using that nickname as the first argument to the javakey command.

% javakey -ic ali ali.xS09

d) Make sure your identity database is in the directory where the Plug-in expects it to be.

Your identity database should be in the User home directory that was displayed as

part of the output in the Java Console. If your identity database does not already

reside in this directory, copy it there.

e) Remove your local CLASSPATH.

t) Exit and restart your browser.

g) Run DMS as a trusted entity.

Page 105: Distributed Marking System OMS)

APPENDHB. USER S GUIDE

Appendix B

User's Guide

In this Appendix, we describe how the user cm access DMS services.

1) Public Services

These services are available for every DMS user.

1. Dowaload Assignment Outline

Select course, assignment and click on [Download: Assignment Outlines] in the

main menu. DMS will download assignment outlines as a text file and give it a name.

The name of the file is the course symbol followed by the assignment syrnbol. If the

assignment outline is not available, DMS will notie you.

2. Update Client's Views Information

Click on ptility: Update Ido.] in the main menu. DMS will update your views

to have the latest version of data fiom the server.

3. Change User Password

Click on [Utility: Change Password] in the main menu. DMS will open a small

diaiog asking you to enter the current password, new password, and connmi new

Page 106: Distributed Marking System OMS)

APPENDLXB. USER 5' GUlDE

password. Click on [Ok] when you finish entering data. DMS will change your password

to the new one.

4. Open DMS ZipRTnzip Editor

Click on ptility: Zip/UtlZip] in the main menu. This will open the DMSPp tool,

which is an extra utility that c m be used by users to zip and unzip files.

5. Open DMS File Viewer

Click on [Utitity: File Viewer] in the main menu. This will open the DMS file

editor. It can be used to view assignment outlines or marks after being downloaded.

6. Display Assignment Ou tlines On-line

Select course, assignment and click on [Display: Assignrnent Outlines] in the

main menu. Assignment outlines will be displayed in the detail box.

II) Student Services

These services are available for students only.

1. Download Marked Assignment

Select course, and click on [Dodoad: Marked Assignment] in the main menu.

DMS will download the marked assignment as a zip file and ask you to specify and open

the target directory to save the file in.

Page 107: Distributed Marking System OMS)

APPEN1)lXB. USER'S GUIDE

2. Download Assignments Marks

Select course, and click on [Download: Assignment Marks] in the main menu.

DMS will download the assignment marks as a text file that has the assignment symbols

and marks and ask you to speciQ and open the target directory where to Save the file.

3. Submit Assignment Solution

Select course, select assignment and click on [Submit: Assignment Solution] in

the main menu. DMS will ask you to open the assignment base directory. Then DMS will

implicitly unzip the assignment directory and its subdirectory into a zip file and send it to

the semer.

4. Display an Assignment Mark

Select course, assignment and click on [Display: Mark: Selected Assignment] in the

main menu. The selected assignment mark will be displayed on the detail box.

5. Display Al1 Assignments Marks

Select course, and click on pisplay: Mark: Assignment Marks] in the main menu.

Assignment marks will be displayed on the detail box.

III) Marker Services

These services are available for markers only.

Page 108: Distributed Marking System OMS)

1. Download Assignment Speciucation

Select course, assignment and click on [Download: Assignment Specification] in the

main menu. DMS will downioad assigament outhes as a text file and give it the name of

the course symbol followed by assignment symbol. This file will be used by the "DMS

Marking Tool", currently is not available, for marking the assignment.

2. Download Assignment Solutions

Click on [Download: Assignment Solutions] in the Download Window. DMS will

download the assignment solutions that have been submitted and have not been marked

and show them in the Download Window, which has two buttons ~ o w n l o a d Ail] and

[Download] .

Download Al1

Click on [Download All] in the Download Window. DMS will download al1

the Iisted solutions to the specified directory (see below).

Download

Select some solutions from the Download Window and click on [Download].

DMS will download the selected solutions to the specified directory (see below).

In either way, DMS will ask you to specify and open a base directory to Save the

assignment solutions in. Then DMS will create a directory in the base directory for each

assignment and Save the file there. For example, if you have three; students; studentl,

student2, student3 submitted three solutions for assignment #t from the course

Page 109: Distributed Marking System OMS)

APPENDLX B. USER'S GUlDE

COMP 1233. DMS will create a tree-Wre structure, download each assignment zip file,

and Save it in the assignment directory as shown below.

3. Upload and Send Marked Assignments

Select corne, select assignment and click on ppload: Assignment Solutions] in

the main menu. DMS will open a srnall dialog asking you to speciQ the base directory,

where the course base directory resides, to upload the solutions. Then DMS will open

another window (Upload Window) showing a list of the marked solutions; solutions will

be initially given zero marks. Marker cm update marks by using the Edit button. UpIoad

Window has two buttons [Send All] and [Send].

Click on [Send All] in the Upload Window. DMS will send al1 the listed

marked solutions to the server.

Send

Page 110: Distributed Marking System OMS)

APPENDIX B. USER'S GUWE

Select some marked solutions fkom the Upload Window and click on [Send].

DMS will send the selected rnarked solutions to the server.

IV) Instructor Services

These services are available for instnictoa only.

1. Assign Marker to Course

Select course and click on [Course: Assign Marker] in the main menu. - DMS will ask you to enter the marker ID that you want to assign to the course. Then

DMS will look up the marker ID in the database and assign it the selected course to be

one of its markers.

2. Drop Marker from Course

Select course and click on [Course: Drop Marker] in the main menu. DMS will

ask you to enter the marker ID that you want to remove fiom the course marker list. Then

DMS will look up the marker in the course marker list and remove it.

3. Add Assignment Account

Select course, and click on [Assignment: New] in the main menu. DMS will ask

you to enter the new assignment symbol that you want to add to the selected course.

DMS will look up the symbol to make sure it doesntt exist. Then DMS will open a new

window to enter the assignment data. Enter al1 the data and click on [OK]. DMS will

create a new assignment and Save it in the database.

Page 111: Distributed Marking System OMS)

4. Edit Assignment Account

Select course, assignment and click on [Assignment: Open] in the main menu.

DMS will ask you to enter the assignment symbol that you want to modify fiom the

selected course. DMS will look up the symbol to make sure it doesdt exist. Then DMS

will open a new window showing the assignment data. You may modi@ the assignment

data and click on [OK]. DMS will replace the new assignment data and Save it in the

database.

5. Delete Assignment Account

Select coune, assignment and click on [Assignment: Delete] in the main menu.

DMS will ask you to enter the assignment symbol that you want to remove fiom the

selected course. Then DMS will look up the symbol in the database and delete it.

6. Mow Assignment Re-downloading & Re-subrnitting

Select a course, assignment and click on [Assignment: Allow Re-download] in the

main menu. DMS will ask you to enter the assignment symbol that you want to allow

markers or students to be able to redownload its solutions one more time.

7. Edit Assignment Marks

Select course, assignment and click on warks: Edit] in the main menu.

DMS will open a new window showing the assignment solutions marks. You c m modify

marks by using the Edit button.

Page 112: Distributed Marking System OMS)

APPEmLXB. USER'S GUlDE

V) Administrator Services

These services are available for administrators only.

1, Create New User Account

Click on [Account: New] in the main menu. DMS will ask you to enter the new

user ID that you want to add to database. DMS will look up the user ID to make sure it

does not exist. Then DMS will open a new window to enter the user data. Enter al1 the

data, speci@ the user type (i.e. Student) and click on [OK]. DMS will create a new user

account and Save it in the database.

2. Edit User Account

Click on [Account: Open] in the main menu. DMS will ask you to enter the user

ID that you want to modi@ fiom the database. DMS will look up the ID to make sure it

does not exist. Then DMS will open a new window showing the user account data. You

may modify the user data and click on [OK]. DMS will replace the new user data and

Save it in the database.

3, Delete User Account

Click on [Account: Delete] in the main menu. DMS will ask you to enter the user

ID that you want to remove fiom the database. Then DMS will look up the symbol in the

database and delete it.

Page 113: Distributed Marking System OMS)

4. Add Course Account

Click on [Course: New] in the main menu. DMS will ask you to enter the new

course symbol that you want to add to database. DMS will look up the symbol to make

sure it does not exist. Then DMS will open a new window to enter the course data. Enter

al1 the data and click on [OK]. DMS will create a new course account a d Save it in the

database.

S. Edit Course Account

Click on [Corne: Open] in the main menu. DMS will ask you to enter the course

symbol that you want to modify fiom the database. DMS will look up symbol to make

sure it does not exist. Then DMS will open a new window showing the course account

data. You may modify the course data and click on [OK]. DMS will replace the new

course data and Save it in the database.

6. Delete Course Account

Click on [Course: Delete] in the main menu. DMS will ask you to enter the course

symbol that you want to remove fkom the database. Then DMS will look up the symbol

in the database and delete it.

7. RegistedDrop Courses to Users

Click on [Course: AddDrop] in the main menu. DMS will ask you to enter the

user ID that you want to registeddrop to/fiom a course. DMS will look up the user ID in

the database to make sure it exists. Then DMS will open a new window showing al1

courses that are already registered for the user. To add a course, click on [Add]. DMS

Page 114: Distributed Marking System OMS)

APPEIWLX B. USER S GU121)E

will ask for the course symbol. Then DMS will look it up and add it to the user course

list. To drop course that is already registered, select the course n o m the user course list

and click on [Drop]. DMS will remove the course fiom the user corne list.

8. Modify Server Timeout

Click on wl i ty : Configure: Server Timeout] in the main menu. DMS will ask

you to enter the timeout for the server to shuts down in minutes. This time will be active

the next time the server is launched.

9. Modify System Time Zone

Click on ptility: Configure: System Time Difference] in the main menu. DMS

will list the available tirne zones. Select your time zone system and click on [OK]. The

new time zone will not be active till the server shuts down and is reactivated.