TransferX

TransferX ist eine intelligente Plattform, die als "Brücke" zwischen unterschiedlichen oder gleichen Datenspeichern. Es ermöglicht Daten von A nach B zu kopieren oder zu synchronisieren, auch wenn diese Datensysteme nicht direkt miteinander verbunden oder miteinander kommunizieren können.

Stellen Sie sich TransferX als digitalen Postboten vor, der nicht nur Briefe liefert, sondern diese bei Bedarf auch in eine andere Sprache übersetzt.

Oft sprechen verschiedene Programme "unterschiedliche Sprachen" – eine Excel-Liste versteht sich nicht direkt mit Ihrem Buchhaltungssystem (ERP).

TransferX schlägt hier die Brücke. Es nimmt Daten von einem Ort (Provider A), bereitet sie auf und bringt sie sicher an einen anderen Ort (Provider B).

Anwendungsbeispiele

Als Backup Helfer

Sichern Sie automatisch Ihre Handy Kontakte oder Kalendertermine auf Ihrem heimischen Computer oder in einer sicheren Cloud.

graph LR
    subgraph Beispiel [Backup]
    	A[Smartphone: Kontakte, Termine] -- "TransferX" --> B[Lokales Backup]
	end
    
    style A fill:#bfb,stroke:#333
    style B fill:#bfb,stroke:#333

Als Büro Assistent

Wenn eine neue E-Mail mit einer Rechnung eingeht, kann dies in Ihr ERP übertragen werden.

graph LR

	subgraph Beispiel [Kopieren]
    	A[E-Mail] -- "TransferX" --> B[ERP System]
    end
    
    style A fill:#bfb,stroke:#333
    style B fill:#bfb,stroke:#333

Als Synchronisation

Halten Sie Dateien zwischen Ihrem Laptop, einem FTP-Server und Ihrem Web-Speicher (webDAV) immer auf dem gleichen Stand.

graph LR
    subgraph Beispiel [Synchronisation]
    	A[WebDAV, Cloud] <== "TransferX" ==> B[FTP Server]
    end
    
    style A fill:#bfb,stroke:#333
    style B fill:#bfb,stroke:#333

TransferX ist eine Transfer & Provider Plattform für den Austausch zwischen gleichen und unterschiedlichen Provider.

Die modulare Plattform ist für Datei‑ und Daten‑Transfers mit austauschbaren Providern und Transfer Engines.

Ein Provider kann ein webDAV, FTP, SQL, lokales Dateisystem sein, die Mittels Transfer unterschiedliche Daten austauschen können (Copy, Sync, Preview).

TransferX kann für Datensicherung, Synchronisation, Mapping zu ERP Systeme usw. eingesetzt werden.

Übersicht

flowchart TD
        
        subgraph Core["Core"]
            CoreEngine["Core Engine"]
            ProviderLoader["Provider Loader"]
            TransferLoader["Transfer Loader"]
        end

        subgraph ProviderAbstractions["Provider Abstractions"]

        end

        subgraph TransferAbstractions["Transfer Abstractions"]

        end

        subgraph ProviderPlugins["Provider Plugins"]

        end

        subgraph TransferPlugins["Transfer Plugins"]

        end

    Desktop["Desktop"]
    Web["Web"]
    API["API"]
    Console["Console"]
    Batch["Batch"]

    %% Connections
    Desktop --> CoreEngine
    Web --> CoreEngine
    API --> CoreEngine
    Console --> CoreEngine

    Batch --> API
    Batch --> Console
    Batch --> CoreEngine

    ProviderLoader --> ProviderAbstractions
    TransferLoader --> TransferAbstractions

    ProviderPlugins --> ProviderAbstractions
    TransferPlugins --> TransferAbstractions

    ProviderLoader --> ProviderPlugins
    TransferLoader --> TransferPlugins
    
    CoreEngine --> ProviderLoader
    CoreEngine --> TransferLoader

Core

Die Zentrale von TransferX.
Dynamisches laden von Provider‑ und Transfer‑Plugins und deren Ausführung.

Abstractions (Provider, Transfer)

  • Enthalten Interfaces und abstrakte Basisklassen für Provider und Transfer Plugins
  • Definieren, wie ein Provider oder Transfer implementiert werden muss
  • Beispiel: Provider.FTP implementiert IProvider

Plugins (Provider, Transfer)

  • Provider und Transfer sind durch Plugins erweiterbar, die der Core dynamisch laden kann
  • Beispiele:
    • Provider: FTP, IMAP, webDAV, Local
    • Transfer: Copy, Move, SyncPreview, Sync

Interfaces

  • Desktop: Windows UI zur Bedienung
  • Web: Web UI zur Bedienung
  • API: Web Remote Steuerung, Automatisierung
  • Console: Prompt Bedienung
  • Batch: Commands kann über API, Console oder direkt Core ausgeführt werden

Use Case

Provider und Transfer Handling

sequenceDiagram
    participant UI as UI
    participant App as Application
    participant Core as Core Engine
    participant Plugin as * Plugin

    UI->>App: Start*()
    App->>Core: Execute*()
    Core->>Plugin: Run()
    Plugin-->>Core: Progress + Result
    Core-->>App: Status
    App-->>UI: Update UI

Architektur

Siehe Dokument TransferXArchitektur.md