Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/taysir17/soa-esb-project-management
This project demonstrates a Service-Oriented Architecture (SOA) for managing library operations. It integrates multiple web services through a MuleSoft ESB to streamline book borrowing and availability checks.
https://github.com/taysir17/soa-esb-project-management
Last synced: 7 days ago
JSON representation
This project demonstrates a Service-Oriented Architecture (SOA) for managing library operations. It integrates multiple web services through a MuleSoft ESB to streamline book borrowing and availability checks.
- Host: GitHub
- URL: https://github.com/taysir17/soa-esb-project-management
- Owner: taysir17
- Created: 2024-12-10T21:19:56.000Z (16 days ago)
- Default Branch: main
- Last Pushed: 2024-12-10T21:25:10.000Z (16 days ago)
- Last Synced: 2024-12-10T22:25:42.642Z (16 days ago)
- Language: JavaScript
- Size: 5.06 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Library ESB Project
## Overview
This project demonstrates the use of an Enterprise Service Bus (ESB) to integrate multiple web services in a library system. The project includes four web services and an ESB flow using MuleSoft.
## Project Structure
- **addbook-service/**: A SOAP web service built with Node.js to add a book for a student.
- **check-availability-service/**: A REST web service built with Spring Boot to check the availability of a book.
- **library-service/**: A REST web service built with Python (Flask) to find other libraries that have a specific book.
- **student-list-service/**: A REST web service built with Node.js to show the list of books borrowed by a student.
- **esb-mule-project/**: The MuleSoft project that integrates the above services.
- **database/**: SQL scripts to set up the required databases.## Web Services
### Add Book Service
- **Path**: `addbook-service/`
- **Technology**: Node.js, SOAP
- **Description**: Adds a book for a student.
- **Endpoint**: `http://localhost:3001/UserContentService`### Check Availability Service
- **Path**: `check-availability-service/`
- **Technology**: Spring Boot, REST
- **Description**: Checks if a book is available.
- **Endpoint**: `http://localhost:8080/service/livres/{libelle}`### Library Service
- **Path**: `library-service/`
- **Technology**: Python (Flask), REST
- **Description**: Finds other libraries that have a specific book.
- **Endpoint**: `http://localhost:3000/check_book/{title}`### Student List Service
- **Path**: `student-list-service/`
- **Technology**: Node.js, REST
- **Description**: Shows the list of books borrowed by a student.
- **Endpoint**: `http://localhost:5000/books/{cin}`## ESB Mule Project
- **Path**: `esb-mule-project/`
- **Technology**: MuleSoft
- **Description**: Integrates the above web services to create a workflow for the library system.## Database
- **Path**: `database/`
- **Description**: Contains SQL scripts to set up the required databases.## Setup Instructions
### Prerequisites
- Node.js
- Java (for Spring Boot)
- Python
- MuleSoft Anypoint Studio
- MySQL### Steps
1. **Clone the repository**:
```sh
git clone https://github.com/your-username/library-esb-project.git
cd library-esb-project
```2. **Set up the databases**:
- Create the databases using the SQL scripts in the `database/` directory.3. **Run the Add Book Service**:
```sh
cd addbook-service
npm install
node addbook.js
```4. **Run the Check Availability Service**:
```sh
cd check-availability-service
mvn spring-boot:run
```5. **Run the Library Service**:
```sh
cd library-service
python library.py
```6. **Run the Student List Service**:
```sh
cd student-list-service
npm install
node student.js
```7. **Run the MuleSoft ESB Project**:
- Open `esb-mule-project` in MuleSoft Anypoint Studio.
- Deploy the project.## Workflow
1. **Requesting a Book**:
- A student requests a specific book from the library.2. **Checking Book Availability**:
- The library checks the book's status:
- If the book is available, the library processes the loan and provides the student with the list of books they have already borrowed.
- If the book is not available, the library informs the student of the library or location where the book is currently available.## Screenshots
### MuleSoft Flow
![MuleSoft Flow](screenshots/Flow1.jpg)
![MuleSoft Flow](screenshots/Flow2.jpg)## Objective
The objective of this project is to understand the ESB bus and the communication between web services in a service-oriented architecture, focusing on SOAP and REST web services.
## License
This project is licensed under the MIT License.