Skip to content

School Project TCP/IP, UDP uni and multicast, RMI, CORBA, Hight Availability, Fault Tolerance, Sequencer

Notifications You must be signed in to change notification settings

wayoubi/dems-highavailability

Repository files navigation

DEMS Use Case Diagram

Version Documentation Maintenance

Distributed Event Management System with High Availability Fault Tolerance


DEMS Use Case Diagram

How to Build and Run the System

Make sure you have Maven, github and Java 8 jdk installed on your computer

See how to install git
here

See how to install jdk1.8
here

See how to install maven
here

Please make sure your Java SDK 1.8 on the path, for example use

$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Please make sure your Maven on the path, for example use

$ mvn -version
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T11:06:16-04:00)
Maven home: /Users/i857625/Work/tools/apache-maven-3.6.2
Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre
Default locale: en_CA, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.3", arch: "x86_64", family: "mac"

Download the source code from github, on your computer open new terminal

$ git clone https://github.com/wayoubi/dems-highavailability.git

Compile and Build all system components

cd dems-highavailability
./mvnw.sh clean install 

If you are using Windows

cd dems-highavailability
mvnw.cmd clean install 

Run the ORBD

# default CORBA Naming Service host is localhost
# default CORBA Naming Service port is 1050

$ ./runorbd.sh 

# use run.bat if you're on Windows
$ runorbd.bat

#You can also run the ORBD from the Java bin folder
$ orbd -ORBInitialPort 1050

Run the Frontend

# While you are in the dems-highavailability folder
# Required parameters in order 
# 1 CORBA Naming Serivce Host, default localhost
# 2 CORBA Naming Serivce Port, default 1050
# 3 Sequincer Host, default localhost
# 4 Sequencer Port, default 8080
# 5 Mutlicast IP, dfault 224.0.0.110
# 6 Multicast Port, default 4443

cd frontend
./run.sh localhost 1050 localhost 8080 224.0.0.110 4446

# use run.bat if you're on Windows
cd frontend
run.bat localhost 1050 localhost 8080 224.0.0.110 4446

Run the Sequencer

# While you are in the dems-highavailability folder
# Required parameters in order 
# 1 UDP Unicast Listening Port, default 8080 
# 2 Mutlicast IP, default 224.0.0.110
# 3 Multicast Port, default 4443
# 4 Starting Sequence default 0

cd sequencer
./run.sh 8080 224.0.0.110 4446 0

# use run.bat if you're on Windows
cd sequencer
run.bat 8080 224.0.0.110 4446 0

Run the Replica Manager

# While you are in the dems-highavailability folder
# Required parameters in order
# 1 Replica Manager Name, default RM$ where $ is 1,2,3 and so on
# 2 Mutlicast IP, default 224.0.0.110
# 3 Multicast Port, default 4443 
# 4 Frontend Host, default localhost
# 5 RMI Registry Host, default localhost
# 6 RMI Registry Port, default 1099

cd replica-manager
./run.sh RM1 224.0.0.110 4446 localhost localhost 1099

# use run.bat if you're on Windows
cd replica-manager
run.bat RM1 224.0.0.110 4446 localhost localhost 1099

Run the DMES Server

# While you are in the dems-highavailability folder
# Required parameters in order
# Sever Location, default MTL 
# Replica Manager Name, default RM1
# RMI Host, default localhost 
# RMI Port, default 1099
# UDP Port, default 8080

cd dems-server
./run.sh MTL RM1 localhost 1099 7070 

# use run.bat if you're on Windows
cd dems-server
run.bat MTL RM1 localhost 1099 7070 

Run the DEMS Client

# While you are in the dems-highavailability folder

cd client
./run.sh

# use run.bat if you're on Windows
cd client
run.bat

Introduction

The Distributed Event Management System (DEMS) is an event management solution designed to help businesses to manage events and bookings over remote locations (cities) in a client server and peer to peer architecture style. The events database of each city is stored in the local server of that location offering high availability and avoiding single point of failure. The system is designed to support concurrency, low latency and thread safety. The system is designed and implemented to be presented for the assignments and the project required for Distributed System Design [COMP 6231] course offered during Winter 2020 at Concordia University.

The two major functional requirements of the system are to manage events (create, update, remove and list), Events Management should be performed by Managers only. On the other hand, Booking Management (Make, Cancel and List Bookings) can be performed by both Event Managers and Costumers. The following Use Case diagram showing the use cases (functional requirements) of DEMS

DEMS Use Case Diagram

Architecture

DEMS Use Case Diagram

About

School Project TCP/IP, UDP uni and multicast, RMI, CORBA, Hight Availability, Fault Tolerance, Sequencer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages