O2S is a proposed software architecture for automatic, dynamic assembly of software components for realization of user-specified goals.

O2S incorporates a layered system of requests for service. The implementation is uniform across all layers: each request take the form of an XMLRPC query whose first argument is a URI uniquely identifying the request semantics (including the types and interpretations of its parameters, if any). The URI houses an XML description which serves as an interface specification for the request.

A sampling of O2S internals is available on this server, partitioned into three layers: