blob: 5fdb36660672b19eb14187f6692476763d3e9b28 [file] [log] [blame] [view]
# OSEE Application Server Architecture
Currently, the OSEE application server is divided into the following
services:
- Branch Management
- Authentication
- Session Management
- Resource Management
- Searching/Tagging Engine
- Server Lookup / Arbitration
- Task Service
- Admin Operations
Communication between Client/Server is handled via servlets:
- Session Management Servlet - interats with session manager and
authentication
- Resource Management Servlet - interacts with resource management
service to store, acquire, and delete resource data
- Branch Management Servlet - interacts with the Branch Management
Service
- Search Engine Servlet - interacts with search and tagging services
- Server Lookup Servlet - performs server lookup / arbitration
- Add ons (These are servlets that provide none-core functionality) :
- Artifact Servlet - serves artifact's binary data (only supports
whole word document artifact types)
- Client Info Servlet - provides application server installation
locations through a web pagee
# Design Limitations
- Progress Information is not sent to clients
- Unable to easily cancel operations once they are in progress
- Unable to determine what is running on the server (communication
between service)
- Code duplication between admin ops and client requested ops
- Database code is spread out among services
# Reasons For refactor
1. Address design limitations
2. Change from servlet communication to using Osee Messaging Service
(Gateway)
3. Easily migrate skynet core functionality to the server
4. Be able to synchronize operations for data integrity
5. Multiple application servers - distributed
# Architecture Goal
# Communication
# Blocks
# New Service Structure
1. Need a controller to dispatch all operations - sends
<!-- end list -->
- Services:
- Status Service - who is running what - multi app server /
internal - potential progress monitoring
- Negotiation Service - synchronization of operations
- Executor Service - manages thread pools/jobs -
- only one allowed to create threads.
- only one allowed to run the operation.
<!-- end list -->
- - All other services send/receive messages (dispatchers)
- Operations send/receive messages
<!-- end list -->
- Bundle:
- Versioning Bundle
- Commit
- Create Branch
- Change Report
-
- Branch Exchange
## Migration
- Commit -
- Change Report -
- Transaction Manager -
- Branch Archiving -
- Status Service -
- Conflict -
- Executor Service -