Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/walidbosso/java_task_scheduling

☕ A Distributed Task Scheduling System is a software infrastructure that allows for the distribution and execution of tasks across multiple nodes in a network. It enhances the efficiency and scalability of large-scale computation and data processing tasks by dividing complex tasks into smaller sub-tasks and distributing them.
https://github.com/walidbosso/java_task_scheduling

c java master-slave-architecture multithreading rmi swing task-scheduler tcp threads

Last synced: 2 months ago
JSON representation

☕ A Distributed Task Scheduling System is a software infrastructure that allows for the distribution and execution of tasks across multiple nodes in a network. It enhances the efficiency and scalability of large-scale computation and data processing tasks by dividing complex tasks into smaller sub-tasks and distributing them.

Awesome Lists containing this project

README

        

![Java_Task_Scheduling](https://socialify.git.ci/walidbosso/Java_Task_Scheduling/image?description=1&descriptionEditable=Distribution%20and%20execution%20of%20tasks%20across%20multiple%20nodes%20It%20enhances%20the%20efficiency%20of%20large-scale%20computation.&font=Source%20Code%20Pro&forks=1&issues=1&language=1&name=1&owner=1&pattern=Formal%20Invitation&pulls=1&stargazers=1&theme=Auto)







[![GitHub WidgetBox](https://github-widgetbox.vercel.app/api/profile?username=walidbosso&data=followers,repositories,stars,commits&theme=nautilus)](https://github.com/walidbosso/Java_Task_Scheduling)









# Java Task Scheduling System

## Presentation:
- This project introduces a Java-based Distributed Task Scheduling System for parallel data(Image & Matrix) processing using `Threads`.
- Efficient task scheduling optimizes resource allocation and timeframes.

## What does my project do exactly:
- Clients can easily submit various tasks like *Filter, Convolution, and Matrix*, executed via `RMI` on the server. All will be executed in parallel.
- Server and its workers further breaks down tasks to pieces and send them through `TCP` to slaves, then compiles outcomes when they are ready again, and then sends the result back to the client.
- Slaves play a pivotal role by executing assigned sub-tasks.

## Instructions:
- Fork & Clone the repository.

- Install JDK if its not installed yet, when done, go to your system environement variables, Edit Path, and add "C:\Path\To\Your\JDK\bin" at the end of it.

- Put all 5 config.txt files+ image+ kernel.txt in Desktop

**Inside folder "src" open 8 of Git-Bash in each 1 of type these lines:**



```bash
# Compile Java files
javac Classes/*.java

# Starts the slaves listening TCP
java Classes.SlaveTask config0.txt
java Classes.SlaveTask config1.txt
java Classes.SlaveTask config2.txt
java Classes.SlaveTask config3.txt

# Open the RMI port
rmiregistry 13190

# Start the server, creates multiple workers which works in parallel
java Classes.TaskSchedulerServer config.txt

# Open the GUI
java Classes.Tasks
```

## Extra
### A port open error:
```bash
jps #To see all javaprocess along with PID
```
```bash
taskkill /PID 5032 /F #To terminate in case it was needed, 5032 is just an example.
```

### More ressources:

- In case you didn't want to do this manually and felt lazy, check the folder called `Xtra`, I included C codes where it can automatize this work, just fix the Path to each C file in each C code, compile each one of them. When you finish, run **TaskManagement_Process.exe**, this will run all the 8 commands I mentioned above automatically.
- Now whenever you feel like trying the project again just run **TaskManagement_Process.exe**, no need to run 8 commands every single time, consider creating a link to the .exe file instead and add an icon.
- Contact me in [LinkedIn](https://www.linkedin.com/in/walidbosso) for questions.




----------------------
> >  
© *by Walid BOUSSOU*  🇲🇦 😄
 
----------------------

👏 Thanks for the support

## Stargazers

[![Stargazers repo roster for @walidbosso/Java_Task_Scheduling](http://reporoster.com/stars/dark/walidbosso/Java_Task_Scheduling)](https://github.com/walidbosso/Java_Task_Scheduling/stargazers)

## Forkers

[![Forkers repo roster for @walidbosso/Java_Task_Scheduling](http://reporoster.com/forks/dark/walidbosso/Java_Task_Scheduling)](https://github.com/walidbosso/Java_Task_Scheduling/network/members)

## Contributors





![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/walidbosso/Java_Task_Scheduling?style=social)


![GitHub License](https://img.shields.io/github/license/walidbosso/Java_Task_Scheduling?style=social)







𝚂𝚑𝚘𝚠 𝚜𝚘𝚖𝚎 💙 𝚋𝚢 𝚜𝚝𝚊𝚛𝚛𝚒𝚗𝚐 ⭐ 𝚝𝚑𝚎 𝚛𝚎𝚙𝚘𝚜𝚒𝚝𝚘𝚛𝚢!


Back to top