From 3baf9a6d400697110288de12a744ed24f90efcfc Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Mon, 11 Feb 2013 18:55:44 +0100 Subject: architecture overview extended --- ...12-05-08-toxbank-investigation-configuration.md | 2 +- ...-07-16-example-webservice-configuration-file.md | 2 +- ...012-07-23-how-to-run-services-behind-a-proxy.md | 2 +- ...ation--authentication-flow-and-configuration.md | 2 +- _posts/2013-02-07-architecture-overview.md | 42 ++++++++++++++++++++-- 5 files changed, 43 insertions(+), 7 deletions(-) (limited to '_posts') diff --git a/_posts/2012-05-08-toxbank-investigation-configuration.md b/_posts/2012-05-08-toxbank-investigation-configuration.md index fa47ed4..0aed368 100644 --- a/_posts/2012-05-08-toxbank-investigation-configuration.md +++ b/_posts/2012-05-08-toxbank-investigation-configuration.md @@ -3,7 +3,7 @@ layout: post title: "OpenTox/ToxBank Webservices Configuration" description: "Example Configuration for OpenTox/ToxBank webservices" category: Installation -tags: [Setup] +tags: [Configuration, Setup] --- {% include JB/setup %} diff --git a/_posts/2012-07-16-example-webservice-configuration-file.md b/_posts/2012-07-16-example-webservice-configuration-file.md index 1c74f2c..b82e348 100644 --- a/_posts/2012-07-16-example-webservice-configuration-file.md +++ b/_posts/2012-07-16-example-webservice-configuration-file.md @@ -3,7 +3,7 @@ layout: post title: "Example Webservice Configuration File" description: "" category: Installation -tags: [Setup, Webservices] +tags: [Configuration, Setup, Webservices] --- {% include JB/setup %} diff --git a/_posts/2012-07-23-how-to-run-services-behind-a-proxy.md b/_posts/2012-07-23-how-to-run-services-behind-a-proxy.md index 9251240..07917dc 100644 --- a/_posts/2012-07-23-how-to-run-services-behind-a-proxy.md +++ b/_posts/2012-07-23-how-to-run-services-behind-a-proxy.md @@ -3,7 +3,7 @@ layout: post title: "How to run webservices behind a proxy" description: "" category: Installation -tags: [Configuration] +tags: [Setup] --- {% include JB/setup %} Assigning a IP address to the full hostame in `etc/hosts` may cause uri problems when a proxy rewrites http to https. The solution is to remove all full hostname entries from `/etc/hosts` - after that all requests will have to pass the proxy. diff --git a/_posts/2012-09-03-authorization--authentication-flow-and-configuration.md b/_posts/2012-09-03-authorization--authentication-flow-and-configuration.md index a3ab743..901fe4e 100644 --- a/_posts/2012-09-03-authorization--authentication-flow-and-configuration.md +++ b/_posts/2012-09-03-authorization--authentication-flow-and-configuration.md @@ -3,7 +3,7 @@ layout: post title: "Authorization & Authentication Flow and Configuration" description: "Authorization & Authentication flow for webservices using the opentox-ruby gem" category: Installation -tags: [Setup, Webservices] +tags: [Configuration, Setup, Webservices] --- {% include JB/setup %} diff --git a/_posts/2013-02-07-architecture-overview.md b/_posts/2013-02-07-architecture-overview.md index 81683f3..35cc922 100644 --- a/_posts/2013-02-07-architecture-overview.md +++ b/_posts/2013-02-07-architecture-overview.md @@ -7,7 +7,9 @@ tags: [Architecture] --- {% include JB/setup %} -The IST OpenTox architecture consists of 3 main layers. [OpenTox](http://opentox.org) compliant **[webservices](https://en.wikipedia.org/wiki/Web_service)** are the core layer, that provide the functionality for OpenTox [classes](http://opentox.org/dev/apis). **Clients** (e.g. libraries for various programming languages and command line/graphical user interfaces) interact with webservices and provide interfaces for end users. Webservices may depend on **backends** for special purposes (e.g. databases, A+A servers, number crunching). Clients should **never** interact with backends directly. +The IST OpenTox architecture consists of 3 main layers. [OpenTox](http://opentox.org) compliant **[webservices](https://en.wikipedia.org/wiki/Web_service)** are the core layer, that provide the functionality for OpenTox [classes](http://opentox.org/dev/apis). **Clients** (e.g. libraries for various programming languages and command line/graphical user interfaces) interact with webservices and provide interfaces for end users. Webservices may depend on **backends** for special purposes (e.g. databases, A+A servers, number crunching). Clients should **never** interact directly with backends. + +OpenTox services can run on separate servers (*cloud configuration*) or on a single machine (*standalone configuration*) even without internet connection. Clients: -------- @@ -28,8 +30,7 @@ Webservices: ### Examples: -  **IST**: compound, feature, dataset, investigation, algorithm, model, task, a+a -  **ALU**: validation +  **IST**: [compound](http://github.com/opentox/compound), [feature](http://github.com/opentox/feature), [dataset](http://github.com/opentox/dataset), [algorithm](http://github.com/opentox/algorithm), [model](http://github.com/opentox/model), [validation](http://github.com/opentox/validation), [investigation](http://github.com/toxbank/toxbank-investigation), [task](http://github.com/opentox/task))  **IDEA**: dataset (AMBIT), algorithm, protocol  **TUM**: algorithm, model  **NTUA**: algorithm, model @@ -48,3 +49,38 @@ Backends: {} IST services that may be removed in the future \[\] IST services that may be added in the future +Implementation +-------------- + +IST OpenTox services and applications are implemented in predominately [Ruby](http://ruby-lang.org) and distributed as [RubyGems](https://rubygems.org/). The [opentox-client](http://github.com/opentox/opentox-client) library is a wrapper for the OpenTox [API](http://opentox.org/dev/apis) which is used in client applications and webservices. The [opentox-server](http://github.com/opentox/opentox-server) library depends on [opentox-client](http://github.com/opentox/opentox-client) and provides a basic web server infrastructure for web applications and webservices based on the [Sinatra](http://www.sinatrarb.com/) framework. It implements common functionality like + +- content negotiation +- authentication and authorisation +- configuration handling +- basic CRUD operations + +OpenTox webservices (e.g. [compound](http://github.com/opentox/compound), [feature](http://github.com/opentox/feature), [dataset](http://github.com/opentox/dataset), [algorithm](http://github.com/opentox/algorithm), [model](http://github.com/opentox/model), [validation](http://github.com/opentox/validation), [investigation](http://github.com/toxbank/toxbank-investigation), [task](http://github.com/opentox/task)) extend [opentox-server](http://github.com/opentox/opentox-server). + +Tests +----- + +OpenTox tests are maintained in a separate package called [opentox-test](http://github.com/opentox/opentox-test) which includes + +- client tests +- webservice tests +- integration tests +- cloud configuration tests +- standalone configuration tests + +The complete test suite in [opentox-test](http://github.com/opentox/opentox-test) is executed once a day for the master and development branch of all webservices. + +Configuration +------------- + +URIs and credentials for webservices and backends are configured in ~/.opentox/config/: + +- default.rb: default configuration for [opentox-server](http://github.com/opentox/opentox-server) +- {service_name}.rb: overwrite/extends default.rb +- test.rb: test configuration + +Configuration details can be found [here](/tags.html#Configuration-ref). -- cgit v1.2.3