Skip to content

vu-isis/vulcan-vulcanmodeling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vulcan

Vulcan is a framework for enterprise collaboration platforms originally created for the DARPA Adaptive Vehicle Make (AVM) Program. There, it provded a foundation for VehicleFORGE, a platform for cyber-physical system design used to host AVM's Fast Adaptive Next-Generation (FANG) vehicle design challenges.

VehicleFORGE originated as an early fork of SourceForge's Allura platform, which is today Apache Allura. Vulcan was motivated by providing a better organization as a framework and by adding new forms of extensibility for adapting platform features and services to an enterprise.

Vulcan is comprised of a core part and a set of optional annexes. This repository provides the VulcanModeling annex, which addresses support for modeling extensions, particularly WebGME.

Micro-Service Dependencies

Vulcan employs MongoDB for document persistence, Apache Solr for indexing, and Redis as a key-object store. In the current release, the following versions of these dependencies are known to be compatible:

  • MongoDB 3.4.4
  • Apache Solr 6.5.0
  • Redis 3.2.8

Vulcan applications assume these micro-services are deployed in a manner reflecting the application's requirements. Deployments of Apache Solr are supported by assets provided in the solr_config directory.

Cloud Object Storage

Vulcan employs cloud object storage for artifact persistence, requiring an object service supporting an AWS S3-compatible API that is accessed via the Python boto package. This requirement has been satisfied in private cloud deployments using OpenStack Swift, for example.

Modeling Extensions

The VulcanModeling framework annex focuses on tool and service extensions related to modeling. The first of these extensions is support for integrating domain deployments of WebGME. WebGME in Vulcan presents to users as a project tool kind that can be provisioned by project administrators and authorized by role-based access control policies. Tool instances are projects in the underlying WebGME deployment, which are namspaced by VulcanModeling to prevent naming conflicts. WebGME authentication is via JWT access tokens generated by VulcanModeling and when authorizing access WebGME interoperates with VulcanModeling via web services.

Release Notes

Version 2.0.1

Minor Python packaging changes.

Version 2.0.0

This release is compatible with the Ubuntu Xenial LTS.

  • New in Vulcan 2.0.0.