This page introduces the WOSH system by an high-level perspective.
This is one of the first documents you should probably read.
Table of Contents:
"The structure of the components of a program/system, their interrelationships,
and principles and guidelines governing their design and evolution over time" [Garlan 95]
Overview
WOSH is a system of systems. We may define it as an (application-level) operative system by many points of view.
Some technical definitions of WOSH are:
- MOM (Message Oriented Middleware) - means that high-level components and hosts cooperates only by sending and receiving messages
- SOA (Service Oriented Architecture) - means that real functionalities are provided by services and the WOSH system is the platform where they live and interact each other
- OOP (Object Oriended Programming) - well that's pretty obvious, but it underlines how components are implemented and the overall approach
- RAD (Rapid Application Developement) - by splitting complex problems and components into smaller pieces, we also increase standardization, usability and sharing of implmentations
Some notes about WOSH:
- WOSH system should be generally considered as a network of hosts and not as a standalone application (even if it can work in such way). All hosts are idempotent by the networking point of view, in other words: there are no pre-defined servers and clients, each host is a client/server node.
- WOSH is a (very) multi-thread software, because of that resources must be protected by Mutex or atomic operations. The knowledge of overall architecture and specific contexts is required in order to write safe code.
WOSH Core Architecture
As said in other parts of the documentation, any WOSH application is based on micro-kernel, while real services (which provide features to the users) are designed as (pluggable) services (and called Bundles).
WOSH System Architecture
Since WOSH Core library is fully multi-platform and included in every Application, its requirements are few and it is designed to be very scalable.
wosh::WoshKernel and Core-Modules are singletons and may be accessed (direct reference) as static objects.
WOSH Core Architecture
- See also:
- Core
-
wosh::WoshKernel
WOSH Bundle Architecture
WOSH Bundle Architecture
- See also:
- Bundles
-
wosh::Bundle
WOSH Security
Security is a very hot topic in a multi-user, multi-network system like WOSH.
Users (such as inhabitants) may access to WOSH features in many ways (channels), even through third-party networks (such as IM, mail, voice), because of that a flexible authentication system must be integrated into the system.
Since the system is based on Messages, the authentication approach is based on SecurityToken and signing (objects and messages), receiver evaluates those credentials against current ACL (Access Control List). Components such as wosh::PropertiesProvider provide custom ACL for each element.
Consider a single standalone WOSH Host.
- Warning:
- WOSH Distributed Security is still under planning, actually the network trusts authentication by any node (many hackings are possible).
WOSH Security Architecture
- See also:
- Security
-
wosh::security
WOSH RMI (Remote Method Invocation)
- See also:
- wosh::rmi::IStub, wosh::rmi::ISkeleton, wosh::rmi::IEvent
-
wosh::rmi::StubFactory
-
wosh::rmi
WOSH Automations
WOSH Automations Architecture
- See also:
- wosh::automations::Automation
-
wosh::automations
WOSH Building
WOSH Building Architecture
- See also:
- wosh::building::BuildingBlock
-
wosh::building
WOSH Scripting
WOSH Scripting Architecture
- See also:
- wosh::scripting::Script
-
wosh::scripting