PART A: (50%) Design a software subsystem that displays time in a digital or analog format using object-oriented design patterns. In the system there exists a class ClockTimer whose objects are suppose to store and maintain the time of day. This class supports the following operations: Tick, GetHour, GetMinute, and GetSecond. The Tick operation is called by an internal timer at regular intervals. Tick operation updates the ClockTimer's internal state (time data structure). Operations GetHour, GetMinute, and GetSecond provide the interface for retrieving individual time units such as an hour, a minute, and a second. The design should contain two classes: DigitalClock and AnalogClock whose objects are suppose to display the time in digital and analog format, respectively. Provide a class model for the system using the existing object-oriented design patterns. The class model should include classes ClockTimer, DigitalClock and AnalogClock (if necessary introduce new classes and operations). For each new class list operations and describe their functionality. PART B: (50%) Describe the following fault-tolerant software architectures: N-version architecture and Recovery-Block architecture. Compare both architectures.
(a) With respect to routing in networks define the following:
i. the optimality principle.
ii. sink tree.
iii. shortest path routing.
(b) Given the network shown below;
A B C
+______1_____+______3_____+
| |4 |4
|2 D + E +
| |3 |1
+____________+____________+
F 3 G 1 H
i. Show the steps in computing the shortest path from B to H using
Dijkstra's algorithm.
ii. Draw the sink tree for F using shortest path routing. What
method do you use for breaking ties?
iii. Create the routing table used by B. Explain the entries.
iv. Explain what happens if link BC fails.
The mean number of customers N in a system can be described by
N = rho/(1-rho)
where
rho is the ratio y/u
y = arrival rate in customers per second
u = service rate in customers per second
Little`s result, N = yT, can be derived from above.
(a) Show how the formula Ti = 1/(uCi-yi) is derived from
Little`s result.
Ti includes both queing and transmission time for channel i
yi is arrival rate for channel i
Ci is communication capacity in bits per second of channel i
Probability density function for packet size, x, is ue^(ux)
with a mean of 1/u bits/packet
(b) Two tables are provided: (1) A string of random numbers, and
(2) A table of values of -(ln Y) vs X. (This table permits
you to map random numbers with even distribution into numbers
with exponential distribution. Interpolate where necessary).
Assume a transmission speed of 9600 bits per second, an arrival
rate lambda of 7 packets per second, and a mean packet size
of 960 bits. Calculate and list the arrival time and the length
of 8 packets assuming a starting time of 0 milliseconds. Assume
an M/M/1 system.
(c) What is the mean delay, in your simulation, for the packets to
reach the second computer? (Disregard the propogation delay).
(d) What is the mean length of the queue during your simulation?
(e) Compare the results of (c) and (d) with theoretical results
using the formulae above.
List of random numbers:
0.02 0.28 0.89 0.24 0.89 0.80 0.38 0.59
The following table plots the values of X vs Y where X = -ln(Y)
The first row is Y, the second row is X
Y -ln(Y)
.05 3.0
.10 2.3
.15 1.9
.20 1.6
.25 1.4
.30 1.2
.35 1.0
.40 0.92
.45 0.80
.50 0.69
.55 0.60
.60 0.51
.65 0.43
.70 0.36
.75 0.29
.80 0.22
.85 0.16
.90 0.11
.95 0.05
1.00 0.00
Consider the partial implementation of a semaphore given
below:
struct semaphore {
int count ; /*Current value of Semaphore*/
queue of processes ; /*Implementation not important here. Holds
processes currently blocked on semaphore.*/
}
struct semaphore S ; /*wait and signal routines (or down and up as in text)*/
wait(S) /*Try and pass through semaphore. Block if necessary.*/
{ S.count-- ;
if (S.count < 0)
{place caller on semaphore queue.
block process.
}
}
signal(S) /*Wake up a blocked process or just inc count if none blocked*/
{S.count++ ;
if (S.count <= 0) /*Some process is blocked*/
{remove process from semaphore queue.
place process on ready queue.
}
}
The issue is that wait and signal must be atomic actions. That is,
no process can interfere with the execution of wait or signal once
that execution begins. All instructions must be done as an indivisible
operation (e.g. decrement count, check value, block process if necessary
for wait operation).
Make the wait and signal routines atomic
1) Using the TSL instruction
2) Using two commands enable_ints and disable_ints,
which enable and disable all interrupts respectively.
Consider the following examples of implementations
of the wait and signal routines of a semaphore.
For each one, identify any problems (i.e. race conditions,
potential deadlocks, starvation, etc), and offer a solution to
the problem if one is found. DO NOT PAIR WAIT AND SIGNAL ROUTINES.
Each wait and each signal routine are to be considered independently.
Wait routine, example 1
int wait_flag = 0 ;
Wait(S)
{while (TSL(wait_flag) != 0) ;
S.count-- ;
if (S.count < 0)
{ place process in semaphore queue ;
Block process;
}
wait_flag = 0 ;
}
Wait routine, example 2
int wait_flag = 0 ;
Wait(S)
{while (TSL(wait_flag) != 0) ;
S.count-- ;
if (S.count < 0)
{ place process in semaphore queue ;
Block process;
wait_flag = 0 ;
}
wait_flag = 0 ;
}
Wait routine, example 3
int wait_flag = 0 ;
Wait(S)
{while (TSL(wait_flag ) != 0 ) ;
S.count-- ;
if (S.count < 0)
{ place process in semaphore queue ;
Block process;
wait_flag = 0 ;
}
else
wait_flag = 0 ;
}
Signal routine, Example 1
int signal_flag = 0 ;
Signal(S)
{ while (TSL(signal_flag ) != 0 ) ;
S.count++ ;
if (S.count <=0 )
{ remove a process from semaphore queue ;
place selected process on ready queue ;
signal_flag = 0 ;
}
signal_flag = 0 ;
}
Signal routine, Example 2
int signal_flag = 0 ;
Signal(S)
{ while (TSL(signal_flag) != 0 ) ;
S.count++ ;
if (S.count <=0 )
{ remove a process from semaphore queue ;
place selected process on ready queue ;
signal_flag = 0 ;
}
else
signal_flag = 0 ;
}
Signal routine, example 3
int signal_flag = 0 ;
Signal(S)
{ while (TSL(signal_flag )!= 0 ) ;
S.count++ ;
if (S.count <=0 )
{ remove a process from semaphore queue ;
place selected process on ready queue ;
}
signal_flag = 0 ;
}
Part 1: Assume we have a machine with a 16 bit address, with 6 bits for the virtual page number and 10 bits for the offset. The architecture has an MMU. Consider the process page table for process1 shown below. The only page table entry shown is the physical frame number to which the page is mapped. An X indicates that the virtual page is not currently mapped. Assume the CPU generates virtual address 4099 (decimal, not hex). Describe exactly what will happen from the time the address is generated by the CPU and the time the physical address goes out to the address bus. What is the physical address generated? Process Page Table _______ | | |_10___| | | |_X____| | | |__X___| | | | 3 | |------| | | | 2 | ------- Part 2: Assume the following view of the page frames of main memory. An entry in a page frame contains a process ID (in this case the processes are just called A,B,C and D), followed by the virtual page number of the page residing in the page frame. For example, entry A0 in the example below indicates that process A's virtual page 0 is mapped to physical page frame 0. Assume a 16 bit virtual address, with 6 bits for the virtual page number and 10 bits for the offset. Show the first 6 page table entries for the page tables of processes A,B,C and D. Don't worry about any entries other than the physical page frame number when the page is mapped and an X when it is not. Main Memory ______________ | | | A0 | |____________ | | | | A4 | |_____________| | | | B2 | |____________ | | | | C1 | |_____________| | | | D3 | |_____________| | | | D5 | |_____________| | | | B0 | |_____________| | | | C4 | | | --------------
Describe and compare the CISC and RISC approaches for computer
architectures. Give examples in each class and contrast the differences.
Explain why RISC has spread in the last 5 years, and not before, although
early roots of RISC go back to machines like the CDC6600 and CRAY-1. Give
details on CISC and RISC design, including at least the following:
instruction fetch
instruction decode
operation fetch
instruction complexity
pipelining
instruction set complexity
memory addressing
processor implementation
HW technology
compiler technology
code size and density
market orientation
a. (20%) What is the influence of coupling on maintenance and reuse? b. (20%) What is the influence of polymorphism and dynamic binding on maintenance and reuse? c. (60%) Design a software system that controls a simple microwave oven using object oriented design patterns. The microwave oven has three buttons; START, CANCEL, and TIMER (for simplicity it is assumed that each time TIMER button is pressed the cooking time is incremented by a fixed time of 30 seconds). In addition, the microwave oven has a door that may be closed or opened. Provide an object model for this system. Your design should be based on one (or more) of the existing object-oriented design patterns. For each class list all class operations and briefly specify them. Make the necessary assumptions for your design.
a. (50%) A traditional client-server model is based on the request/reply
protocol (one-to-one relationship between a client and a server). Describe
the advantages and disadvantages of such a model. The extended
client-server model supports one-to-many relations (one client, many
servers). Describe possible solutions for this model. Describe the
advantages and disadvantages of the described solutions.
b. (50%) A requirement calls for reading inputs from each of several
input sources, processing received inputs, and delivering results to one of
several shared output destinations. The arrival rates of new inputs, the
processing of a single input, and the processing of a single output are
relatively independent suggesting the need for some form of buffering.
Select an architectural style for this system and provide its architecture.
Briefly describe the component of the architecture. Justify your design
decisions.
Discuss each of the following broadcast network contention protocols with
respect to throughput, delay, difficulty of implementation, and potential
use:
*Aloha
*Slotted Aloha
*CSMA
*CSMA/CD Please, include the derivation of throughput using Aloha.
Sketch the graphs of throughput versus offered load for Aloha, Slotted
Aloha, and CSMA (with various persistence factors) and refer to them when
discussing throughput.
Given the network shown below:
(a) Draw the sink tree for node G using Dijkstra's shortest path
algorithm using distance (shown on arcs) as the metric. Show
the use of Dijkstra's algorithm for the path between B and D.
(b) How many packets are transmitted, and what is the maximum
number of hops, using broadcast routing, from node G using
(1) spanning tree
(2) reverse path forwarding and
(3) flooding. (Specify any contraints on the flooding
algorithm to reduce the total number of packets.)
5
B ----------------------------- C
/ \ / \
2 / \ 2 3 / \ 3
/ \ 2 / \
A E ------------------- F D
\ / \ /
6 \ / 1 2 \ / 2
\ / 3 \ /
G ----------------------------- H
Answer the following questions:
1) One key design decision for ATM was whether to use fixed- or
variable- length cells. Let us consider this decision from the point of
view of efficiency. We can define transmission efficiency as,
Number of information octets
N = ----------------------------------------------------------------
Number of information octets + number of overhead octets
a) Consider the use of fixed-length packets. In this case, the
overhead consists of the header octets. Define:
L = Data Field size of the cell in octets
H = Header size of the cell in octets
X = Number of information octets to be transmitted as a single message
Derive an expression for N.
b) If cells have variable length, then overhead is determined by the
header, plus the flags to delimit the cells or an additional length
field in the header. Let Hu denote the additional overhead octets
required to enable the use of variable-length cells. Derive an
expression for N in terms of X, H and Hu.
c) Let H=5 and Hu=2. Plot N versus message size for fixed- and
variable length cells. Comment on the results.
2) One method of transmitting ATM cells is as a continuous stream of
cells, with no framing imposed; therefore the transmission is simply a
stream of bits, with all bits being part of cells. Since there is no
external frame, some other form of synchronization is needed. This can
be the HEC function. The requirement is to assure that the receiver
knows the beginning and ending cell boundaries and does not drift with
respect to the sender. Draw a state diagram for the use of the HEC to
achieve cell synchronization, and explain its functionality.
Answer the following questions: a) Produce a sketch of a typical bridge architecture and, with the aide of an example, describe its principle of operation. Include in your description the following terms: forwarding database, bridge learning, and spanning tree. b) In relation to the spanning tree algorithm, explain the meaning of the following terms: root bridge, root port, designated port. c) Compare the operation of a transparent bridged LAN and a source routing bridged LAN in relation to the routing philosophy and the quality of routes.
Two workstations, A and B, are connected to the same Ethernet LAN. The stations utilize the TCP/IP protocol stack. Station A establishes a FTP connection with station B. List the sequence of events that takablish the connection. Include SAPs for all the layers involved including the MAC layer (make up your own numbers where required). Include a diagram showing the stations connected to the LAN and the location of the SAPs.
Assume we have a system with the following characteristics. It uses paged memory with two-level page tables The page table is paged; its pages have the same size as normal page The page-table entry (PTE) occupies 2 bytes. The size of the virtual address space is 224. (a) what three fields is a virtual address composed of? (b) What is the smallest possible page size so that page table does not need more than two levels? (c) considering your answer to part (b), what is the maximun size of physical memory in this system, if 3 bits are used for protection (e.g. valid and read/write permission) in a PTE ? (d) Now assume that the system also has a cache. The cache is 4-way set associative. The cache block size is 32 bytes. What is the maximun size (in bytes) that the cache be and still allow a cache search to begin before a TLB access ends?
1) What is a Remote Procedure Call? 2) What is Object Messaging? 3) What are the implementation considerations that would suggest using a RPC approach versus MOM? 4) Compare CORBA versus OLE? 5) Provide an example on how an Object Stream works.
1) Define a two stage, three stage, n-stage client/server architecture? 2) Can I have a 1 stage client/server architecture? Explain. 3) How is concurrency control defined in the CORBA model 4) What is a persistent object? What are the three basic persistent data services? Can I use a DDO with a ODBMS? 5) What is the function of an Idispatch client?
LOCK_MANAGER PROBLEM:
CONSIDER THE FOLLOWING LOCK_MANAGER TASK SPECIFICATION: THE
THE LOCK_MANAGER TASK IS RESPONSIBLE FOR CONTROLLING A REASONABLE
SMALL NUMBER OF LOCKS, EACH LOCK IS ASSOCIATED WITH A DIFFERENT
RESOURCE. A CLIENT MAY REQUEST A LOCK, USE THE CORRESPONDING
RESOURCE, AND THEN RELEASE THE LOCK. THE LOCK_MANAGER IS ASSUMED TO
COMMUNICATE WITH A CLIENT ONLY IF IT IS ABLE TO GRANT CLIENT REQUEST
I.E. ONLY IF THE LOCK REQUESTED IS FREE.
a. DEFINE AVAILABILITY CONTROLS
RACE CONTROLS
b. CLASSIFY THE SET OF AVAILABILITY CONTROLS
RACE CONTROLS.
c. ANALYZE WHICH CONTROLS WOULD YOU NEED IN ORDER TO SIMULATE THE
LOCK_MANAGER. FOR EACH OF THE CONTROLS EXPLAIN ITS PURPOSE.
d. CHOOSE A LANGUAGE WHICH WOULD BE MOST SUITABLE FOR SIMULATION
OF THIS TASK. JUSTIFY YOUR CHOICE.
e. IMPLEMENT THE LOCK_MANAGER USING THE LANGUAGE YOU HAVE CHOSEN.
f. IMPLEMENT THE LOCK_MANAGER IN ADA. EXPLAIN YOUR DIFFICULTIES
AND SHOW HOW TO WORK AROUND THEM.
Producer and consumer problem using a bounded buffer:
a. List and explain major concurrent language design issues.
b. Describe the producer-consumer problem using a bounded buffer.
c. Implement the producer-consumer problem using the language CSP and
explain language design issues which make your implementation difficult.
d. Implement the producer-consumer problem using the language Ada or
the language Pascal-Fc. Explain language design issues which make your
implementation straightforward.
Consider the following task segment in Ada
SELECT
WHEN b1 ==> ACCEPT service_A ...
OR
WHEN b2 ==> ACCEPT service_B ...
OR
WHEN b3 ==> ACCEPT service_C ...
OR
WHEN b4 ==> ACCEPT service_D ...
END SELECT
Modify the program to give the highest preference to service_A
the second highest preference to service_B, and the third
preference to service_C and service_D. (service_C and service_D
both have the same preference).
Do the modification by
1. Using nested select statements
2. Using the attribute "count"
3. Using an added control to the language to allow simple
expression of preferences.
Compare and evaluate each of the above modifications with
respect to principles of good programming practice that you
know.
A. Define and explain the difference between the Local Termination
Convention and the Distributed Termination Convention.
B. Give an Ada solution to the ReadersWriters problem with no
starvation. The Ada task is supposed to terminate when all
potential callers have terminated.
C. Give a CSP solution to the Readers-Writers problem with no
starvation. The CSP task is supposed to terminate when all
potential callers have terminated. You must use the local
termination convention only. (You may assume that there are
three potential callers P1, P2, and P3. Each caller sends a
termination signal to the manager process before terminating
itself).
In concurrent programming there are two conventions for task termination. a. The Local Termination Convention b. The Global Termination Convention A. Explain each of the termination conventions. B. Simulate a semaphore task assuming the Local Terminaton Convention. C. Simulate a semaphore task assuming the Global Termination Convention. (You may use CSP notation, Ada notation, Pascal-FC notation or Concurrent-C notation)
A typical application for Ada tasks is that of
message routing; we may wish to route messages to other tasks
or to physical devices. In a distributed system such a task
would be an actor/server in the sense that it would have
defined entries and would also call the entries of other
tasks. You may assume that the information passed by this
task is of type MESSAGE. A calling task may route a message
to one of three destinations. Additionally, the task may
indicate a preference for the message, with higher preference
messages being serviced first.
You may need the following entities visible to your task:
TYPE PREFERENCE IS (LOW, MEDIUM, HIGH)
TYPE PLACE IS (NEW_YORK, LA, CHICAGO)
You may use three tasks DESTINATION_NEW_YORK, DESTINATION_LA,
and DESTINATION_CHICAGO. Each of these tasks is able to
send a message to the appropriate destinaiton.
Construct the implementation (the body) of the main task
called TRANSMIT.
The specification of task TRANSMIT is the following:
TASK TRANSMIT IS
ENTRY ROUTED_PREFERENCE (PREFERENCE)
(M: MESSAGE; TO: IN PALCE);
END TRANSMIT;
A user calls:
TRANSMIT.ROUTED_PREFERENCE(MEDIUM)
(MY_MASSAGE; TO => CHICAGO);
TRANSMIT then accepts the call and calls the appropriate
DESTINATION task to send the message. TRANSMIT should accept
the messages with respect to their preferences.
For this problem we will look at the SAXPY loop. This loop implements
the vector operation Y = a*X+Y for a vector of length 100. Here is the DLX
code for the loop:
foo: LD F2,0(R1) ;load X(i)
MULTD F4,F2,F0 ;multiply a*X(i)
LD F6,0(R2) ;load Y(i)
ADDD F6,F4,F6 ;add a*X(i) + Y(i)
SD 0(R2),F6 ;store Y(i)
ADDI R1,R1,8 ;increment X index
ADDI R2,R2,8 ;increment Y index
SGTI R3,R1,done ;test if done
BEQZ R3,foo ;loop if not done.
Assume that the integer operations issue and complete in one clock
cycle (pipelined) and that their results are fully bypassed. Ignore the
branch delay. Assume the following latencies in clock cycles:
FP multiply 10
FP add 6
FP load/store 2
a. Assume Tomasulo's algorithm for the hardware using 1 integer unit,
2 FP multipliers, 1 FP add and 1 FP divide unit. Show the state of the
reservation stations and register status tables when the branch is executed
for the second time. How many clock cycles does each loop iteration take ?
b. Unwind the DLX code for SAXPY three times and schedule it for the
standard DLX pipeline. Significant reordering of the code will be needed
to maximize performance. What is the speedup over the original loop ?
The following is a readers-writers solution using semaphores:
1 shared var 2 nreaders : integer; 3 mutex, wmutex, srmutex : semaphore; 4 procedure reader; 5 begin 6 P(mutex); 7 if nreaders = 0 8 then nreaders := nreaders + 1; P(wmutex) 9 else nreaders := nreaders + 1; 10 V(mutex); 11 read (f); 12 P(mutex); 13 nreaders := nreaders - 1; 14 if nreaders = 0 then V(wmutex); 15 V(mutex): 16 end 17 procedure writer (d; data); 18 begin 19 P(srmutex); 20 P(wmutex); 21 write (f,D); 22 V(wmutex); 23 V(srmutex); 24 end 25 begin 26 mutex = wmutex = srmutex = 1; 27 nreaders := 0; 28 end
Answer the following questions indicating, if necessary, the statement number(s):
The following is a solution for the readers-writers problem using monitors:
1 readers-writers: monitor; 2 begin 3 readercount: integer; 4 busy: boolean; 5 OKtoread; OKtowrite: condition; 6 procedure startread; 7 begin 8 if busy then OKtoread.wait; 9 readercount := readercount + 1; 10 OKtoread.signal; 11 end startread; 12 procedure endread; 13 begin 14 readercount := readercount - 1; 15 if readercount = 0 then OKtowrite.signal; 16 end endread; 17 procedure startwrite; 18 begin; 19 if busy or readercount /= 0 then OKtowrite.wait; 20 busy := true; 21 end startwrite; 22 procedure endwrite; 23 begin 24 busy := false; 25 if OKtoread.queue then OKtoread.signal 26 else OKtowrite.signal; 27 end endwrite; 28 begin 29 readercount := 0; 30 busy := false; 31 end; 32 end readers-writers;
Answer the following questions indicating, if necessary, the statement numbers:
Design of distributed file systems: issues and solutions.
(1) The issues that have to be resolved as part of designing a distributed file system include: naming and name resolution, caching, writing policy and availability. For each of these issues write a brief definition of the problem to be solved and describe the options for solving that problem.
(2) Case Studies: Implementation of Distributed File Systems
Briefly describe the main features of the SUN Network File System (NFS) OR the file system of another distributed system.
Resource management in distributed systems: distributed scheduling
There are four types of load distributing algorithms: sender-initiated algorithms, receiver-initiated algorithms, symmetrically initiated algorithms, and adaptive algorithms. Each type of algorithm is characterized by its transfer policy (determine if a node is a candidate for a task transfer), selection policy (which task should be transferred), location policy (what node should the task be sent to) and information policy (collection of system state information). Briefly describe for each type of algorithm its principle of operation, its policies (transfer, selection, location and information) and also comment on its performance and stability.
Resource security and protection
The three methods for implementing the access matrix model are: the capability-based method, the access control list method, and the lock-key method. Briefly describe each of these methods covering the principle of operation, advantages and disadvantages, special issues and possible resolutions. Also, for each method give an example of an operating system using that method.
Describe Network ASCii. Why is it desirable to have a standard such as network ASCii? In other words, what major problem does it minimize in a heterogeneous environment?
In the Telnet protocol, how can option negotiation (i.e., WILL/DO, WILL/DONT, DO/WILL, DO/WONT, WONT/DONT, DONT/WONT) cause a infinite loop between the end systems? Assume that all requests are acknowledged.
Identify three reasons why OSI is widely used.
For TFTP, draw the time (vertical) vs. message (horizontal) scenario for sending a binary file from end-system A to end-system B. Show all parameters for all messages on the message arrows going between the vertical end-system lines. Show all port values and/or designators. Assume proper operation of IP and UDP.
How does NFS (Network File System) avoid the problem of client confusion about requests in an environment of widely varying server and network response times?
In a Sun RPC over TLI (Transport Layer Interface) show the format of the complete RPC CALL packet including all headers from the OSI/RM Network layer upward. Develop a formula for determining the length of the procedure-specific parameters. The RPC header includes version #, XID, call, RPC version, procedure #, credentials field, program #, and verifier field.
Consider two tasks: a sender and a receiver. The sender repeats the following: compute a message and send it to the receiver. The receiver simply retreives the messages and uses them. Each message should be retreived exactly once.
1) Define Client/Server Computing?
2) Name different kinds of servers in a client/server
environment?
3) Explain the functions of a typical database server?
4) What does a database server contain?
5) What are transactions?
6) What are Online Transaction Processing Systems(OLTP)?
1. Explain Remote Procedure Calls (RPCs)?
2. Give examples of middleware.
3. Explain the difference between a fat client and a thin client?
4. What is a 2-tier client/server environment?
5. Explain a 3-tier client/server environment.?
1. Are there any advantages of client/server computing?
2. Architecturally in a Client/Server Environment what are the
general issues
you deal with?
3. Can the client and server portions reside on the same machine?
4. Define a socket.
5. What is Bandwidth?
6. What are Routers?
1. What is Frame Relay?
2. Give an example of packet switching protocol.
3. What is ISDN (Integrated Services Digital Network)?
4. In general, what is a server?
5. What is a file server?
6. What are the functions of a server in relation to database
access?
7. Can printers be shared in a client/server environment?
8. Why should a server be very robust?
1. Relational Databases like Sybase, Oracle and DB2 support a
relational
language called SQL (Structured Query Language), what type of a
role does SQL
perform in a data processing environment?
2. Are there any official standards for SQL?
3. List some of the functions of a database server.
4. There are three database architectures in the industry today,
Process per
client architecture, Multithreaded Architecture and Hybrid
architecture. Which
one would you pick if you were designing a system?
1. What are stored procedures?
2. What are stored procedures used for?
3. Are there any drawbacks in using stored procedures?
4. Why should anybody use middleware when a set of SQL commands
can directly
access databases on servers?
5. SQL database servers provide APIs to clients for database
access. Explain
how the request/reply exchange takes place.
6. Explain the difference between ESQL and CLI.
7. What are the disadvantages of ODBC (Open Database
Connectivity)?
1. Issues of distributed data management are being addressed
by several
standards including ANSI SQL, ISO distributed computing models
etc. IBM
introduced DRDA (Distributed Relational Database Architecture) as
a solution
for providing distributed data management. Describe DRDA.
2. Transactions under Client/Server environment have five very
important
properties. Explain the properties.
3. Explain the term TP monitor.
4. Define OLTP (Online Transaction Processing System).
5. What is Tuxedo?
1. What type of systems will OLTP be very useful?
2. Explain Replication.
3. What are Gupta's Quest and Cogno's Impromptu?
4. Briefly describe Mutlidimensional DBMSs or MDBMSs.
5. What are the current trends in the database server technology?
6. What is ODBC (Open DataBase Connectivity)?
1. What are Flat Transactions?
2. Are there any disadvantages in using flat transactions?
3. If flat transactions are designed for short activities, what
other
alternatives do I have for designing a complex system?
4. What are syncpoints?
5. How different is commit from syncpoint?
6. ISO published its OSI TP standard that defines a two phase
commit
implementation. Explain this two phase commit protocol.
7. Explain 3 tier Client/Server Architecture using a TP Monitor.
1. What are the advantages of using a TP monitor in a 3 tier
environment. Do
we really need a TP monitor?
2. What are the differences between transactional and
non-transactional
communications?
3. What is TP Lite?
4. What is TP heavy?
5. Explain briefly issues related to TP lite and some of the
advantages of TP
heavy over TP lite.
6. What is the biggest challenge for the TP monitors?
7. What is CICS (Customer Information Control System)?
1. Discuss groupware in relation to relational databases and TP
monitors.
2. Process management for groupware is done via workflow. Explain
briefly
workflow.
3. By coordinating various elements of the business enterprise
and work group
efforts, workflow automation systems offer several advantages.
List some of
the advantages.
4. Electronic Mail (e-mail) is a major component of workflow, how
important is
e-mail in a client/server environment (or computing environment).
1. How do you connect different mail networks, for example
cc:Mail to Lotus
notes?
2. protocol is becoming the de-facto standard. Explain why?
3. What are the major components of Lotus Notes?
4. Lotus Notes is leading the industry in the market, who do you
think are
other contenders?
5. By and large, today's client/server applications remain
difficult to build,
manage and extend. Will distributed objects change this?
1. Distributed objects, are by definition, components. Explain
why they are
referred to as components.
2. Are there any standards for Distributed objects?
3. What are the minimum functions a component should provide?
4. What are supercomponents?
5. What are the components of a 3 tier object style client/server
environment?
6. In a 3 tier object style client/server environment, is there
any direct
interaction between the first tier and third tier.
1. What is CORBA ?
2. Briefly describe IDL.
3. What are the four main elements of OMG's Object Management
Architecture?
4. What is an ORB (Object Request Broker)?
5. What is the difference between ORBs and RPCs?
6. What are the highlights of CORBA 2.0?
1. Security becomes a little more complex with distributed
objects. Explain
why?
2. Briefly describe a business object.
3. Currently, what are the shortcomings of ORBs?
4. What are compound documents?
5. Briefly describe the Open Doc component Model.
6. IBM introduced a CORBA compliant system. What is it called.?
7. What is OLE/Active X?
1. What is Hypertext?
2. What is the World Wide Web(WWW) and Web Browsers?
3. What is HTML?
4. Explain URL.
5. Briefly describe the structure of a HTML document?
6. Navigation from server to server in a WEB is provided by
hyperlinks.
Briefly describe hyperlinks.
7. HTTP (Hypertext Transfer Protocol) is supposed to be a simple
protocol.
What makes it simple?
1. What are the highlights of HTML version 3.0?
2. Discuss security on the Web.
3. What are intranets?
4. If internet is to become a true information highway, what do
you think is
needed?
5. Does Java provide a distributed object bus?
6. Java introduces a different style of client/server interaction
for the Web.
Briefly explain Java style of client/server.
1. How does Java achieve portability?
2. What are some of the highlights of Java language?
3. What is Java DataBase Connection (JDBC)?
4. Does CORBA bring any benefits if the Web is augmented by
CORBA?
5. Microsoft has its own version of Object Web. Explain this Web.
1. What is system management?
2. How many different architectures are available for distributed
management?
3. What does an open management platform do in a distributed
system
management?
4. Are there any standards for Open Distributed Systems
Management(DSM)?
5. What are the basic components of an open DSM platform?
6. What are the benefits of Performance Monitoring Tools?
1. In a client/server environment how do we keep track of assets
like software
and hardware?
2. What are Configuration Management tools?
3. What is Software Configuration Management?
4. In a networked environment like client/server, how do you
install software
on a remote system? </A>
5. What is internet's SNMP?
1. Are there any limitations in SNMP protocol?
2. SNMP's limitations were addressed by Open Systems
Interconnection (OSI).
What are the highlights of OSI management framework?
3. Briefly describe what is meant by Desktop Management Interface
(DMI).
4. What is TME 10?
Part A (50%)
Describe the Layered Architecture style. Describe advantages and
disadvantages of this type of architecture. Contrast the Layered
architecture with the modular design. Give an example of a system
for
which the Layered Architectural style is most appropriate.
Part B (50%)
Suppose that there exist two different library circulation
systems L1
and L2 that are running at two libraries (at different
locations). Both
systems support operations like borrow a book, return a book,
renew a
book, reserve a book, etc. It was decided that both libraries
should be
run under one library circulation system. Initially the
development of a
completely new library circulation system was considered.
However,
because of the high cost of such development, this idea was
rejected. It
was decided that the existing systems L1 and L2 should be reused.
Provide an architecture of the new library circulation system in
which
both system L1 and L2 will be reused. Briefly describe all
components
of your architecture. Justify your design decisions.
Part A (50%)
Describe the Pipe and Filter Architecture style. Describe
advantages
and disadvantages of this type of architecture. Give an example
of a
system for which the Pipe and Filter style is appropriate.
Part B (50%)
There exist two software systems S1 and S2 that maintain
information
about employees. In software system S1 employee objects are
modeled
by class EMPLOYEE. In software system S2 employee objects are
modeled by class EMPL. Class EMPLOYEE supports the following
operations: Hire, Promote, Transfer, and Dismiss. Class EMPL
supports the following operations: Empl_Hire, Empl_Promote, and
Empl_Dismiss. The following operations from classes EMPLOYEE
and EMPL are functionally equivalent:
Promote and Empl_Promote,
Dismiss and Empl_Dismiss,
Hire and Empl_Hire.
It was decided that system S1 and S2 should share both types of
objects, i.e., system S1 should maintain objects of class
EMPLOYEE
and EMPL (similarly, system S2 should maintain both types of
objects). The objective now is to incorporate the class EMPL into
system S1 with minimal modifications using one of the object-
oriented design patterns. Provide a class model of the modified
system
S1. The class model should include class EMPLOYEE and class
EMPL (introduce new classes if necessary). For each new class
list
operations and their functionality. Briefly describe the required
modifications
Part A (50%)
Describe the existing process control system architectures. For
each
architecture give an example of a process control system for
which this
architecture is most appropriate. In each example briefly
describe the
major components of the system.
Part B (50%)
There exist two servers S1 and S2 that maintain information about
books in different libraries. Server S1 supports the following
operations: CheckIn, Checkout, Reserve, and Search. Server S2
supports the following operations: Book_Check_in, Book_Check_out,
and Book_Search. The following operations are functionally
equivalent:
CheckIn and Book_Check_in,
Checkout and Book_Check_out,
Search and Book_Search.
Currently there exist two client processes C1 and C2, where
client C1
interacts only with server S1 and client C2 interact only with
server
S2.
It was decided that both clients should be able to access both
servers,
i.e., client C1 and C2 should be able to get services (perform
operations) from servers S1 and S2. The objective in this problem
is to
provide an architecture in which clients C1 and C2 are not
modified
and can get services from both servers. If necessary introduce
new
components in your design. For each component describe its
functionality and/or its operations.