A Java RMI-based distributed system for monitoring and controlling multiple devices remotely. The system consists of three main components: a central registry for device management, device clients that provide remote services, and a manager application for monitoring and control.
- Central Registry: Manages active device registration and discovery
- Remote Device Control: Capture screenshots and camera photos from remote devices
- Real-time Communication: Chat functionality between manager and devices
- Device Discovery: Automatic detection and listing of active devices
- Image Management: Automatic saving of captured images with timestamps
The system uses Java RMI (Remote Method Invocation) for distributed communication:
- Central Registry: Centralized service registry for device management
- Device Clients: Remote services providing screenshot, camera, and chat capabilities
- Manager Application: Control interface for monitoring and interacting with devices
CentralRegistry.java- Interface defining registry operationsCentralRegistryImpl.java- Implementation of the central registryCentralRegistryRMI.java- RMI server for the central registry
Device.java- Interface defining device operationsDeviceImpl.java- Implementation of device servicesDeviceRMI.java- RMI server for device serviceslibs/opencv-490.jar- OpenCV library for camera operations
ManagerApp.java- Main manager application with GUI interfacephotos/- Directory for saved camera photosscreenshots/- Directory for saved screenshots
- Java Development Kit (JDK) 8 or higher
- OpenCV library (included in
Device/libs/) - Network connectivity between components
cd Central
java CentralRegistryRMIcd Device
java DeviceRMIcd Manager
java ManagerApp- Device Registration: Device clients register themselves with the central registry
- Device Discovery: Manager queries the central registry to get list of active devices
- Remote Operations: Manager can perform operations on selected devices:
- Capture screenshots
- Take camera photos
- Start chat sessions
- File Management: Captured images are automatically saved with timestamps
- Communication Protocol: Java RMI over TCP/IP
- Image Format: PNG images encoded in Base64 for transmission
- Chat Protocol: Socket-based communication on port 8080
- Registry Port: Default RMI registry port 1099
- Threading: Multi-threaded chat implementation for concurrent communication
├── Central/ # Central registry components
├── Device/ # Device client components
│ └── libs/ # OpenCV library
├── Manager/ # Manager application
│ ├── photos/ # Saved camera photos
│ └── screenshots/ # Saved screenshots
└── readme.md # This file
This system is designed for educational and development purposes. For production use, consider implementing proper authentication, encryption, and security measures.