MVX: Enterprise Industrial Operations Platform

Integrated SCADA, MES, and Asset Management System with 3D Visualization


Executive Summary

MVX (MacroView eXtended) is a comprehensive enterprise platform for industrial operations management, combining SCADA functionality, Manufacturing Execution System (MES) capabilities, asset management, and advanced 3D visualization. Built on a modern service-oriented architecture with an object database foundation, MVX provides a scalable, extensible solution for managing complex industrial facilities across mining, oil & gas, manufacturing, and infrastructure sectors.

Note

MVX has been replaced as a 3D Visualization platform by the InDI platform.

MVX Plant

Key Value Propositions

  • ISA-95 Compliance: Standards-based equipment hierarchy for manufacturing integration
  • Unified Platform: Single system for SCADA, MES, asset management, and training
  • 3D Visualization: Data overlay on Unity3D facility models
  • Extensible Architecture: Plugin-based connector framework for any data source
  • Web-Based UI: Zero-installation client access via browser
  • Enterprise Scale: Proven deployments managing 10,000+ assets

1. Product Overview

What MVX Does

MVX is an integrated platform comprising multiple products that work together to provide comprehensive industrial operations management:

MVX Web (Web-Based Configuration & Visualization)

  • Equipment Configuration: Define and configure facility equipment hierarchies
  • Data Visualization: Dashboards, trends, and KPIs
  • Alarm Management: Sophisticated alarm prioritization and routing
  • Training Management: Track operator certifications and training activities
  • Document Management: Attach manuals, drawings, and procedures to equipment
  • User Management: Role-based access control with AD/LDAP integration
  • Report Generation: Configurable operational reports

MVX Object Server (Data Server)

  • Data Aggregation: Collect data from multiple sources via connectors
  • Object Model Hosting: Expose equipment hierarchy via TCP/IP API
  • Calculated Properties: Server-side calculations and derived values
  • Event Processing: Alarm detection and event generation
  • High Availability: Redundant server configurations
  • API Access: MetaServer protocol for client connectivity

MVX VDK (Visualization Development Kit)

  • Unity3D Integration: Embed live data in 3D models
  • Component Library: Pre-built Unity components for SCADA integration
  • Data Binding: Connect Unity GameObjects to MVX properties
  • Scene Management: Navigate between facility views
  • Web Deployment: Unity WebGL for browser-based 3D
  • Mobile Support: iOS and Android native apps

MVX Connector Framework

  • Extensible Architecture: Plugin-based connector development
  • Built-In Connectors: OPC DA/UA, SQL, CSV, JSON, Web services
  • Custom Connectors: SDK for domain-specific integrations
  • Data Mapping: Flexible property externalization
  • Error Handling: Robust reconnection and failure recovery

iCAS (Integrated Condition Assessment System)

  • Asset Management: Track equipment condition and maintenance
  • Inspection Workflows: Mobile and web-based inspection forms
  • Risk Assessment: Calculate equipment criticality and risk
  • Maintenance Planning: Work order generation and tracking
  • Regulatory Compliance: Track compliance requirements
  • Analytics: Asset reliability metrics

Problems Solved

For Plant Operations:

  • Centralized view of entire facility with drill-down capability
  • Unified access to current and historical data in single interface
  • Alarm management reduces information overload
  • Training tracking ensures operator competency
  • Impact: 30-50% reduction in incident response time

For Maintenance Teams:

  • Complete equipment information including documentation
  • Condition monitoring enables predictive maintenance
  • Work order integration with CMMS systems
  • Failure history for root cause analysis
  • Impact: 20-40% reduction in unplanned downtime

For Management:

  • KPI dashboards for decision support
  • Compliance tracking and reporting
  • Asset lifecycle management
  • Training and competency management
  • Impact: Improved regulatory compliance, reduced risk

For System Integrators:

  • Rapid deployment with standards-based architecture
  • Extensible framework reduces custom development
  • Scalable from single site to enterprise
  • Modern technology stack attractive to customers
  • Impact: 40-60% faster project delivery

Target Users

  • Process Engineers: Monitor and optimize plant operations
  • Control System Engineers: Configure equipment and data flows
  • Maintenance Engineers: Track asset condition and maintenance
  • Operations Managers: Monitor KPIs and manage incidents
  • Safety Managers: Track certifications and compliance
  • IT Administrators: Deploy and maintain infrastructure
  • System Integrators: Deliver turnkey industrial solutions

2. Technical Architecture

Architecture Philosophy

MVX embodies modern enterprise platform principles:

  • Service-Oriented Architecture: Independent services communicate via APIs
  • Standards-Based: ISA-95 equipment hierarchy, OPC connectivity
  • Object-Oriented Database: Matisse OODBMS for complex object graphs
  • Extensibility First: Plugin architecture throughout
  • Web-First: Browser-based UI with no client installation
  • High Availability: Redundancy at every tier

High-Level System Architecture

MVX Object Model - ISA-95 Hierarchy

Architectural Patterns Applied

1. Service-Oriented Architecture (SOA)

Rationale: Independent services enable scalability, reliability, and flexible deployment.

Benefits:

  • Services deployed independently on different machines
  • Version skew tolerance (new Web with old Object Server)
  • Horizontal scaling (multiple Object Servers, load balanced)
  • Service failure doesn’t cascade between independent services

2. Repository Pattern with Object Database

Rationale: Matisse OODBMS natively stores complex object graphs without ORM impedance mismatch.

Benefits:

  • Direct object persistence (no OR mapping layer)
  • Navigation through object graphs with transparent lazy loading
  • ACID transactions with complex object updates
  • Native support for inheritance and polymorphism
  • Natural alignment with object-oriented models, avoiding relational mapping complexity

3. Plugin Architecture for Connectors

Rationale: Enable unlimited data source integrations without modifying core platform.

Benefits:

  • Third-party connector development without source access
  • Runtime discovery of connector assemblies
  • Isolated failure (one connector failure doesn’t affect others)
  • Domain-specific connectors for specialized industries
  • Marketplace potential for connector ecosystem

4. Dependency Injection with Autofac

Rationale: Loose coupling enables testability, flexibility, and clean architecture.

// Container configuration in MVXWebApplication
protected override void ConfigureContainer(ContainerBuilder builder)
{
    // Register core services
    builder.RegisterModule<MatisseModule>();
    builder.RegisterModule<ScriptingModule>();

    // Register MVX-specific services
    builder.RegisterType<DeploymentService>().As<IDeploymentService>();
    builder.RegisterType<EquipmentService>().As<IEquipmentService>();
    builder.RegisterType<AlarmService>().As<IAlarmService>();

    // Register connectors (discovered via reflection)
    builder.RegisterAssemblyTypes(typeof(OPCConnector).Assembly)
           .Where(t => typeof(IConnector).IsAssignableFrom(t))
           .As<IConnector>()
           .InstancePerDependency();

    // Register extension assemblies
    if (extensionAssemblyResolver != null)
    {
        foreach (var assembly in extensionAssemblyResolver.LoadedAssemblies)
        {
            builder.RegisterAssemblyTypes(assembly)
                   .Where(t => typeof(IConnector).IsAssignableFrom(t))
                   .As<IConnector>();
        }
    }
}

Benefits:

  • Constructor injection makes dependencies explicit
  • Easy to mock dependencies for unit testing
  • Runtime service replacement without recompilation
  • Lifetime management (singleton, per-request, etc.)
  • Extension assemblies integrate seamlessly

3. Technology Stack

Core Technologies

TechnologyVersionPurposeSelection Rationale
.NET Framework4.0/4.5Application RuntimeEnterprise-grade platform with excellent tooling
C#4.0/5.0Primary LanguageType-safe, productive language with rich ecosystem
Matisse OODBMS9.xObject DatabaseNative object persistence, no ORM complexity
ASP.NET4.0Web FrameworkMature web platform with strong security
Unity3D5.x3D VisualizationIndustry-leading game engine with WebGL support
Autofac3.xDI ContainerPowerful, flexible dependency injection

Third-Party Component Libraries

Web UI Framework

  • Gizmox Visual WebGUI: AJAX-based Windows Forms-like web UI
    • Rationale: Rapid development with familiar WinForms API; rich controls; no JavaScript required
    • Usage: Entire MVX Web UI built on Gizmox framework

Database

  • Matisse OODBMS (v9.x): Object-oriented database
    • Rationale: Native object storage; no ORM; well-suited for complex graphs
    • Usage: Primary data store for all MVX configuration and runtime data
    • Benefits: 10-100x faster than relational for object navigation

Industrial Connectivity

  • OPC Foundation SDKs: OPC DA and OPC UA
    • Rationale: Industry standard for industrial device connectivity
    • Usage: OPC Connector for SCADA integration

Unity Integration

  • Unity3D SDK: Game engine and runtime
    • Rationale: Cross-platform 3D; WebGL export; extensive asset ecosystem
    • Usage: MVX VDK provides Unity components for data binding

Compression & Serialization

  • Xceed Zip: Efficient compression library
  • Newtonsoft Json.NET: JSON serialization
  • Protocol Buffers: Binary serialization for efficiency

MVX Framework Components

ComponentPurposeLOC
MVX.ModelDomain model (Equipment, Properties, Events)~15,000
MVX.ConnectorsConnector framework and built-in connectors~25,000
MVX.ServicesBusiness logic services~10,000
MVX.InteractionsUI interaction logic~20,000
MVX.WebWeb application~30,000
MVX.ObjectServerData server~15,000
MVX.LibraryCore utilities and extensions~8,000

Development Tools

  • Build System: MSBuild with custom tasks
  • Unit Testing: NUnit framework
  • Version Control: Subversion (SVN)
  • Continuous Integration: Custom CI server
  • Deployment: Windows Installer (MSI) + IIS deployment
  • Diagnostics: JetBrains dotTrace and Redgate ANTS Profiler
  • Database Tools: Matisse Studio for schema design

Architecture Decision Records

Why Matisse OODBMS Over SQL Server?

  • ISA-95 hierarchies are trees, not tables
  • Equipment contains complex nested objects (properties, events, docs)
  • ORM overhead impacts responsiveness
  • Object navigation 10-100x faster than SQL joins
  • Native support for polymorphism (Equipment subclasses)
  • Proven in similar SCADA systems (Matisse powers many HMI/SCADA platforms)

Why Gizmox WebGUI Over ASP.NET WebForms/MVC?

  • Project initiated 2010-2012 when SPA frameworks immature
  • Windows Forms skillset reusable for web development
  • Automatic AJAX handling without JavaScript coding
  • Rich control library (grids, trees, docking)
  • Reduced development time by 50% vs hand-coded AJAX
  • Trade-off: Proprietary framework vs standard ASP.NET

Why Unity3D Over HTML5/WebGL?

  • Unity provides full 3D engine with physics, lighting, animation
  • Massive asset ecosystem (3D models, plugins)
  • Cross-platform (Desktop, Web, Mobile) from single codebase
  • Strong developer community and documentation
  • CAD import tools (FBX, etc.) for facility models
  • Capabilities exceed what was possible with contemporaneous HTML5 Canvas for complex 3D

Why Services Over Monolith?

  • Scalability: Object Server can be separate machine from Web
  • Reliability: Web can continue if other services temporarily fail
  • Security: Object Server can be behind firewall, Web in DMZ
  • Flexibility: Different service versions for different sites
  • Data processing resides in Object Server, not in web tier

4. Product Deep Dive

4.1 MVX Web Application

Purpose: Web-based configuration, visualization, and administration of the entire MVX platform.

Key Features:

  • Equipment Hierarchy: Tree-view navigation of ISA-95 hierarchy
  • Property Configuration: Configure equipment properties and data types
  • Data Externalization: Map equipment properties to data sources via connectors
  • Deployment Management: Group connectors into deployments for different sites
  • User Management: Role-based access control with AD/LDAP
  • Alarm Configuration: Define alarm conditions, priorities, and routing
  • Training Management: Track operator certifications and training records
  • Document Library: Attach manuals, drawings, SOPs to equipment
  • Report Designer: Configure operational and compliance reports
  • Scene Management: Define 3D Unity scenes and deploy to web

Technology Stack:

  • ASP.NET 4.0 web application
  • Gizmox Visual WebGUI for AJAX UI
  • Autofac for dependency injection
  • Matisse for data persistence
  • IIS hosting

Architecture:

Key Interactions:

  • Equipment Configuration: EquipmentInteraction handles equipment CRUD
  • Connector Configuration: ConnectorDeploymentInteraction manages data sources
  • Alarm Management: AlarmInteraction for alarm rules and routing
  • User Administration: UserInteraction for user and role management

4.2 MVX Object Server

Purpose: Data server exposing equipment hierarchy via TCP/IP protocol.

Key Features:

  • MetaServer Protocol: Proprietary protocol for object access
  • Connector Integration: Runs connectors to populate data
  • Calculated Properties: Server-side expressions and scripts
  • Alarm Detection: On-change evaluation
  • Event Generation: Equipment events for audit trail
  • Replication: Object updates pushed to connected clients
  • Security: Authentication and authorization per object

Protocol Example:

Client -> Server: CONNECT username:password
Server -> Client: OK sessionId=abc123

Client -> Server: GET /Enterprise/Site001/Tank001/Level
Server -> Client: VALUE 45.2 TIMESTAMP=2023-10-15T10:30:00Z

Client -> Server: SUBSCRIBE /Enterprise/Site001/Tank001/*
Server -> Client: OK subscriptionId=sub456
[time passes, value changes]
Server -> Client: UPDATE sub456 /Enterprise/Site001/Tank001/Level VALUE=45.8

Client -> Server: SET /Enterprise/Site001/Pump001/Speed 75.0
Server -> Client: OK

Client -> Server: UNSUBSCRIBE sub456
Server -> Client: OK

Client -> Server: DISCONNECT
Server -> Client: BYE

Connector Lifecycle:

High Availability:

  • Primary/Standby configuration
  • Automatic failover on primary failure
  • Connector state synchronized to standby
  • Client reconnection on failover

4.3 MVX VDK (Visualization Development Kit)

Purpose: Unity3D integration framework for creating immersive 3D facility visualizations with live data.

Key Components:

  • MVX Unity Library: C# library for Unity (via DLLs)
  • MVXApplication Component: GameObject managing Object Server connection
  • DataBinding Components: Attach to GameObjects to bind properties
  • Navigation Components: Move between scenes and equipment views
  • UI Components: Pre-built HUD elements for data display
  • Example Scenes: Templates for common visualization patterns

Data Binding Example:

// Unity MonoBehaviour script
public class TankLevelVisualizer : MonoBehaviour
{
    [SerializeField]
    private string equipmentPath = "/Enterprise/Site001/Tank001";

    [SerializeField]
    private string propertyName = "Level";

    private MVXApplication mvxApp;
    private MVXProperty levelProperty;

    void Start()
    {
        // Find MVX application in scene
        mvxApp = FindObjectOfType<MVXApplication>();

        // Get equipment and property
        var equipment = mvxApp.GetEquipment(equipmentPath);
        levelProperty = equipment.GetProperty(propertyName);

        // Subscribe to changes
        levelProperty.ValueChanged += OnLevelChanged;
    }

    void OnLevelChanged(object newValue)
    {
        float level = Convert.ToSingle(newValue);

        // Update 3D visualization
        // (e.g., adjust liquid mesh height)
        UpdateTankMesh(level);

        // Update HUD
        UpdateLevelDisplay(level);

        // Change color based on level
        if (level > 90f)
            SetTankColor(Color.red);  // High alarm
        else if (level > 75f)
            SetTankColor(Color.yellow);  // Warning
        else
            SetTankColor(Color.green);  // Normal
    }
}

Deployment Options:

  • Desktop: Windows/Mac/Linux standalone executables
  • WebGL: Browser-based 3D (via Unity WebGL export)
  • Mobile: iOS and Android native apps
  • Web Proxy: UnityPlayerProxy in MVX Web for embedded scenes

Example Applications:

  • Virtual Plant Tours: Navigate 3D facility model with live data
  • Operator Training: Simulate process scenarios safely
  • Control Room Displays: Large-screen 3D visualization of plant
  • Remote Monitoring: Mobile apps for field engineers
  • Maintenance Planning: Visualize equipment location and status

4.4 Connector Framework

Purpose: Extensible plugin architecture for integrating any data source with MVX equipment model.

Connector Types:

ConnectorPurposeTechnology
OPC DA/UASCADA systemsOPC Foundation SDKs
SQL QueryDatabases (SQL Server, MySQL)ADO.NET
CSV ImportFlat filesCustom parser
JSON/RESTWeb servicesJSON.NET
SimulationTesting and demosRandom/scripted values
MetaserverOther MVX Object ServersMVX protocol
WindowsWindows operating system metricsWMI
CustomDomain-specific integrationsCustomer-developed

Connector Development:

// Example custom connector
[ConnectorMetadata(
    Name = "Blast Furnace Connector",
    Description = "Simulates blast furnace process data",
    Category = "Simulation"
)]
public class BlastFurnaceConnector : IConnector
{
    public bool IsApplicable(Equipment equipment)
    {
        // Only applicable to BlastFurnace equipment type
        return equipment is BlastFurnace;
    }

    public void Register(Equipment equipment, IConnectorRegistration registration)
    {
        var furnace = (BlastFurnace)equipment;

        // Register external property for entire furnace
        registration.RegisterExternalProperty(
            new ConnectEntireFurnaceProperty(furnace)
        );
    }

    public void Start()
    {
        // Start data generation
        timer = new Timer(UpdateValues, null, 0, 1000);
    }

    public void Stop()
    {
        timer?.Dispose();
    }

    private void UpdateValues(object state)
    {
        // Simulate furnace operation
        foreach (var furnace in registeredFurnaces)
        {
            SimulateFurnaceOperation(furnace);
        }
    }
}

// External property for configuration UI
public class ConnectEntireFurnaceProperty : IExternalProperty
{
    private BlastFurnace furnace;

    public bool AppliesToAllProperties => true;

    public Control ConfigureControl(ExternalPropertyConfiguration config)
    {
        // Return null - no configuration needed
        return null;
    }

    public void Apply(Equipment equipment, ExternalPropertyConfiguration config)
    {
        furnace = (BlastFurnace)equipment;

        // Create 3 blast stoves
        for (int i = 1; i <= 3; i++)
        {
            var stove = new BlastStove();
            stove.Name = $"Stove{i}";
            furnace.Stoves.Add(stove);

            // Simulate temperature
            stove.Temperature = new Property {
                Value = 800 + random.NextDouble() * 400
            };
        }
    }
}

Connector Configuration UI: MVX Web automatically generates configuration UI based on External Property:

  • Properties with ConfigureControl() show custom UI
  • Properties without custom UI show default controls
  • Configuration saved as JSON in ExternalPropertyConfiguration

4.5 iCAS (Integrated Condition Assessment System)

Purpose: Asset management, inspection workflows, and regulatory compliance tracking.

Key Features:

  • Asset Register: Complete inventory of facility assets
  • Inspection Plans: Scheduled inspections with mobile forms
  • Risk Matrix: Consequence x Likelihood scoring
  • Work Order Integration: Link to CMMS systems
  • Regulatory Tracking: Compliance requirements and evidence
  • Failure History: FMEA-style failure mode tracking
  • Analytics: Asset health, reliability metrics

Asset Lifecycle:

  1. Registration: Create asset in MVX equipment hierarchy
  2. Classification: Assign risk category and criticality
  3. Inspection Planning: Define inspection frequency and checklists
  4. Inspection Execution: Mobile app or web form completion
  5. Condition Assessment: Calculate asset health score
  6. Work Order Generation: Trigger maintenance based on condition
  7. Operational Tracking: KPIs for reliability and availability

5. Design Patterns and Best Practices

Core Design Patterns Summary

PatternLocationPurposeBenefits
Service-OrientedSystem-wideIndependent deployable servicesScalability, reliability
RepositoryData accessAbstract data sourceTestability, flexibility
PluginConnectorsRuntime extensibilityUnlimited integrations
Dependency InjectionAll tiersLoose couplingTestability, flexibility
CQRSMVX WebSeparate reads and writesScalability, maintainability
ObserverObject ServerEvent notificationsDecoupled communication
StrategyConnectorsPluggable algorithmsExtensibility
FacadeAPIsSimplified interfacesEase of use
SingletonServicesSingle instance servicesResource management
FactoryObject creationCentralized creationConsistency

SOLID Principles in MVX

Single Responsibility Principle

  • EquipmentService: Only equipment operations
  • OPCConnector: Only OPC data acquisition
  • AlarmEvaluator: Only alarm condition checking
  • EventGenerator: Only event generation and logging

Open/Closed Principle

  • Add new connector: Implement IConnector interface
  • Add new equipment type: Extend Equipment base class
  • Add new report: Implement IReport interface
  • No modification to existing code required

Liskov Substitution Principle

  • All connectors usable via IConnector interface
  • All equipment types usable via Equipment base
  • All services injectable via interface

Interface Segregation Principle

  • IConnector: Minimal connector contract
  • IExternalProperty: Focused on single property
  • IObjectSource: Core CRUD operations only

Dependency Inversion Principle

  • Object Server depends on IConnector, not concrete types
  • Web depends on IEquipmentService, not implementation
  • Connectors depend on IObjectSource, not Matisse

6. Notable Technical Achievements

2. Extensible Connector Framework

Challenge: Support unlimited data source types without modifying core platform.

Solution:

  • Plugin Architecture: Connectors discovered via reflection
  • IConnector Interface: Minimal contract for maximum flexibility
  • Extension Assemblies: Load custom DLLs from configuration
  • Isolated Failure: Connector exceptions don’t crash Object Server
  • Configuration UI: Automatic UI generation from property metadata

Innovation:

  • Domain-Specific Connectors: Customers develop specialized integrations
  • Marketplace Potential: Third-party connector ecosystem
  • Rapid Integration: New data sources added in days, not months

3. Unity3D SCADA Integration

Challenge: Bring industrial data into immersive 3D environments.

Solution:

  • MVX VDK: Unity package with data binding components
  • Object Server Client: C# library compatible with Unity
  • Declarative Binding: Attach components to GameObjects
  • Overhead: Minimal impact when handling thousands of data points
  • Cross-Platform: Desktop, Web, Mobile from single codebase

Applications:

  • Virtual plant tours for executive visitors
  • Operator training simulators
  • Mobile apps for field engineers
  • Large-screen control room displays
  • Marketing demos at trade shows

Impact:

  • 70% win rate when 3D visualization demoed to prospects
  • Differentiation from competitors (no one else had 3D in 2012-2015)
  • Training effectiveness improved 40% with 3D simulation

4. ISA-95 Compliant Object Model

Challenge: Model complex industrial hierarchies with standards compliance.

Solution:

  • ISA-95 Hierarchy: Enterprise→Site→Area→ProcessCell→Unit→Equipment
  • Extensible Types: Base Equipment class extended for domain types
  • Matisse Schema: Object-oriented schema mirrors domain model
  • Property Metadata: Data types, units, quality, timestamp
  • Event Model: Equipment events for audit trail and analytics

Benefits:

  • Standards compliance for MES integration
  • Familiar structure for industrial engineers
  • Flexible taxonomy for any industry vertical
  • Reusable across projects with type library

5. Web-Based Zero-Install Client

Challenge: Provide rich desktop-like experience in browser without plugins.

Solution:

  • Gizmox WebGUI: AJAX framework with Windows Forms API
  • Automatic ViewState: Seamless state management
  • Rich Controls: Grids, trees, docking panels
  • No JavaScript: Entire UI in C# server-side
  • Responsive: Fast updates via AJAX polling

Trade-offs:

  • Pros: Rapid development, familiar API, rich controls
  • Cons: Proprietary framework, limited mobile support, larger bandwidth

Results:

  • 50% faster development than hand-coded AJAX
  • Engineers productive with Windows Forms experience
  • Deployed to 100s of users with zero installation issues

6. Business Value and Impact

Operational Benefits

Centralized Operations Management:

  • Single interface for entire facility
  • Unified view of current and historical data
  • Alarm management reduces overload
  • Impact: 30-50% faster incident response

Predictive Maintenance:

  • Condition monitoring enables proactive maintenance
  • Failure history for root cause analysis
  • Integration with CMMS
  • Impact: 20-40% reduction in unplanned downtime

Compliance Management:

  • Training tracking and certification management
  • Regulatory requirements documented and tracked
  • Audit trail for all operations
  • Impact: Zero compliance violations, reduced risk

Asset Lifecycle Management:

  • Complete asset register with genealogy
  • Document management (manuals, drawings)
  • Maintenance history
  • Impact: 15-25% reduction in asset lifecycle costs

Technical Excellence

Codebase Metrics:

  • 2,144 C# source files
  • ~135,000 lines of code
  • 250+ domain model classes
  • 20+ connectors built-in
  • 10+ design patterns applied

Scalability Proven:

  • Deployments with 10,000+ equipment objects
  • 100+ simultaneous users
  • 50,000+ properties archived
  • Multi-site enterprises

Quality:

  • NUnit test coverage
  • Code analysis with clean warnings
  • Design reviews for all major features
  • Customer acceptance testing

7. Deployment and Operations

Deployment Architecture Options

Single Server (Small Site)

┌─────────────────────────────────┐
│     Windows Server              │
├─────────────────────────────────┤
│  IIS (MVX Web)                  │
│  MVX Object Server Service      │
│  Matisse Database               │
└─────────────────────────────────┘

Multi-Server (Medium Site)

┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│  Web Server  │    │  App Server  │    │  DB Server   │
├──────────────┤    ├──────────────┤    ├──────────────┤
│  IIS         │───▶│  Object Srv  │───▶│  Matisse     │
│  MVX Web     │    │              │    │              │
└──────────────┘    └──────────────┘    └──────────────┘

High Availability (Enterprise)

           ┌──────────────┐
           │ Load Balancer│
           └──────┬───────┘

        ┌─────────┴─────────┐
        │                   │
┌───────▼─────┐     ┌───────▼─────┐
│  Web Server │     │  Web Server │
│  (Primary)  │     │  (Standby)  │
└─────────────┘     └─────────────┘
        │                   │
        └─────────┬─────────┘

        ┌─────────▼─────────┐
        │                   │
┌───────▼─────┐     ┌───────▼─────┐
│ Obj Server  │◀───▶│ Obj Server  │
│  (Primary)  │     │  (Standby)  │
└─────────────┘     └─────────────┘


┌─────────────┐
│  Matisse DB │
│  (Cluster)  │
└─────────────┘

System Requirements

MVX Web Server:

  • Windows Server 2008 R2 or later
  • IIS 7.5 or later
  • .NET Framework 4.0 or later
  • 4 GB RAM minimum, 8 GB recommended
  • 100 GB disk space for logs and temporary files

MVX Object Server:

  • Windows Server 2008 R2 or later
  • .NET Framework 4.0 or later
  • 8 GB RAM minimum, 16 GB recommended
  • Network: Gigabit Ethernet
  • CPU: Quad-core minimum

Matisse Database:

  • Windows or Linux
  • 16 GB RAM minimum, 32 GB+ recommended
  • SSD storage for database files
  • RAID 10 for production

Client Workstations:

  • Windows 7 or later, Mac OS X, or Linux
  • Modern web browser (Chrome, Firefox, Edge, Safari)
  • 2 GB RAM minimum
  • 1280x1024 minimum resolution

8. Conclusion

MVX represents a comprehensive enterprise platform demonstrating:

  • Architectural Excellence: Service-oriented, extensible, standards-based
  • Domain Expertise: Deep industrial operations knowledge
  • Technical Breadth: Web, services, live data, 3D, databases, connectivity
  • Scale: Proven with 10,000+ assets, 100+ users, years of production operation
  • Innovation: 3D SCADA visualization, plugin architecture, object database

This project showcases the ability to:

  • Architect large-scale distributed systems
  • Design extensible platform frameworks
  • Integrate diverse technologies into cohesive solution
  • Apply software engineering principles at enterprise scale
  • Deliver business value through technology

9. Appendix: Key Metrics

MetricValue
Lines of Code~135,000 (Core MVX)
Source Files2,144 C# files
Products6 (Web, Object Server, VDK, iCAS, Connector DevKit, Navisworks Tools)
Domain Classes250+ equipment and supporting classes
Built-In Connectors20+ (OPC, SQL, CSV, JSON, etc.)
Design Patterns10+ applied throughout
DatabaseMatisse OODBMS v9.x
Web FrameworkGizmox Visual WebGUI
3D EngineUnity3D 5.x
Target Framework.NET Framework 4.0/4.5
StandardsISA-95, OPC DA/UA
Deployment Scale10,000+ assets, 100+ users
Development Period2010-2016 (Primary development)