Skip to content

VCell Architecture Notes

Jim Schaff edited this page Sep 24, 2017 · 3 revisions

Welcome to the vcell wiki!

vcell architecture is evolving. Here are some of our goals.

  • VCell RESTful API (module vcell-api) should completely replace our RMI service for all client-server communication (coarse-grained, versioned API).
    • refactor all client-server communication according to RESTful principles and API versioning.
    • completely document API using Open API.
    • spawn off module vcell-apiclient as a lightweight client-side library (eventually generated using Open API tools).
    • support multiple clients (vcell-client, vcell-imagej, web applications, third-party tools and scripts).
    • use standard reverse proxy for HTTP/TLS and JSON/XML for load balancing and caching.
    • use an API Gateway / API Management tool such as WSO2 (with a reverse proxy) for reporting, quality of service, filter invalid requests, and provide an on-boarding platform and OpenAPI-based service discovery.
  • Simplify simulation job reporting and job management (for scalability and flexibility). Current solution of jobs reporting status via messaging (ActiveMQ) provides very good job management but is difficult to scale.
  • Package vcell-server using Docker (possibly orchestrated using Kubernetes).
  • Redesign data access framework (resurrect prior next generation design) - with support for local and cloud storage.
Clone this wiki locally