259 lines
4.4 KiB
Plaintext
259 lines
4.4 KiB
Plaintext
|
@startuml
|
||
|
|
||
|
|
||
|
class Resource
|
||
|
{
|
||
|
"id" : "string"
|
||
|
"name" : "string"
|
||
|
"short description" : "string"
|
||
|
"description" : "string"
|
||
|
"logo" : "string"
|
||
|
"creator" : "peer_id"
|
||
|
"usage_restrictions" : "string"
|
||
|
|
||
|
}
|
||
|
|
||
|
class StoragePartnerResource
|
||
|
{
|
||
|
"namespace" : "string"
|
||
|
"sizing_indicator" : "string"
|
||
|
"peer_group"="string"
|
||
|
}
|
||
|
class ProcessingPartnerResource
|
||
|
{
|
||
|
"namespace" : "string"
|
||
|
"sizing_indicator" : "string"
|
||
|
"peer_group"="string"
|
||
|
}
|
||
|
class ComputeUnitPartnerResource
|
||
|
{
|
||
|
"namespace" : "string"
|
||
|
"sizing_indicator" : "string"
|
||
|
"peer_group"="string"
|
||
|
}
|
||
|
class DataPartnerResource
|
||
|
{
|
||
|
"namespace" : "string"
|
||
|
"sizing_indicator" : "string"
|
||
|
"peer_group"="string"
|
||
|
}
|
||
|
|
||
|
class ResourceInstance
|
||
|
{
|
||
|
"location" : "geo coord"
|
||
|
"country" : "string"
|
||
|
"url" : "string"
|
||
|
}
|
||
|
|
||
|
|
||
|
class StorageInstance
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
class DataInstance
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
class ComputeUnitInstance
|
||
|
{
|
||
|
"cpus":
|
||
|
"gpus":
|
||
|
"ram":
|
||
|
"security_level" : "string"
|
||
|
"power_source" : "string"
|
||
|
}
|
||
|
|
||
|
class cpu
|
||
|
{
|
||
|
"model" : "string"
|
||
|
"cores" : "int"
|
||
|
"frequency" : "float"
|
||
|
"architecture" : "string"
|
||
|
}
|
||
|
|
||
|
class gpu
|
||
|
{
|
||
|
"model" : "string"
|
||
|
"memory" : "float"
|
||
|
}
|
||
|
|
||
|
class ram
|
||
|
{
|
||
|
"size" : "int"
|
||
|
}
|
||
|
|
||
|
class bandwidth
|
||
|
{
|
||
|
"up" : "float"
|
||
|
"down" : "float"
|
||
|
}
|
||
|
|
||
|
class ProcessingInstance
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
class Owner
|
||
|
{
|
||
|
"name" : "string"
|
||
|
"logo" : "string"
|
||
|
}
|
||
|
|
||
|
|
||
|
class DataPricingStrategy {
|
||
|
"unlimited"
|
||
|
"subscription"
|
||
|
"pay per use"
|
||
|
}
|
||
|
|
||
|
class DataPricing
|
||
|
{
|
||
|
"price" : "float"
|
||
|
"price_per_gb" : "float"
|
||
|
"price_per_request" : "float"
|
||
|
"price_per_api_call" : "float"
|
||
|
"price_per_data_transfer" : "float"
|
||
|
"price_per_data_download" : "float"
|
||
|
|
||
|
}
|
||
|
|
||
|
class ProcessingPricing
|
||
|
{
|
||
|
|
||
|
"price" : "float"
|
||
|
"price_per_request" : "float"
|
||
|
"price_per_api_call" : "float"
|
||
|
"price_per_data_transfer" : "float"
|
||
|
"price_per_data_processing" : "float"
|
||
|
"price_per_data_storage" : "float"
|
||
|
"price_per_data_download" : "float"
|
||
|
}
|
||
|
|
||
|
class ComputeUnitPricingStrategy {
|
||
|
"overflow" : "booked, allowed, garanted"
|
||
|
}
|
||
|
|
||
|
class ComputeUnitPricing
|
||
|
{
|
||
|
"cpu_price" : "float"
|
||
|
"gpu_price" : "float"
|
||
|
"ram_price" : "float"
|
||
|
"refund" : "bool"
|
||
|
}
|
||
|
|
||
|
class StoragePricing
|
||
|
{
|
||
|
|
||
|
"price" : "float"
|
||
|
"price_per_request" : "float"
|
||
|
"price_per_api_call" : "float"
|
||
|
"price_per_data_transfer" : "float"
|
||
|
"price_per_data_processing" : "float"
|
||
|
"price_per_data_storage" : "float"
|
||
|
"price_per_data_download" : "float"
|
||
|
}
|
||
|
class Data
|
||
|
{
|
||
|
"personal_data" : "bool"
|
||
|
"anonymized_personal_data" : "bool"
|
||
|
"type" : "string"
|
||
|
"license" : "string"
|
||
|
"open_data" : "bool"
|
||
|
"quality" : "string"
|
||
|
"static" : bool
|
||
|
"update_period" : "string"
|
||
|
}
|
||
|
|
||
|
|
||
|
class ComputeUnit
|
||
|
{
|
||
|
"type" : "string"
|
||
|
"infrastructure" : "string"
|
||
|
"architecture" : "string"
|
||
|
"investors" : "string"
|
||
|
}
|
||
|
|
||
|
class Processing {
|
||
|
"type" : "string"
|
||
|
"license" : "string"
|
||
|
"open_source" : "bool"
|
||
|
"maturity" : "string"
|
||
|
"service" : "bool"
|
||
|
}
|
||
|
|
||
|
class Container
|
||
|
{
|
||
|
"image" : "string"
|
||
|
"command" : "string"
|
||
|
"args" : "string"
|
||
|
"env" : "string"
|
||
|
"volumes" : "string"
|
||
|
}
|
||
|
|
||
|
Processing "0" *-- "1" Container
|
||
|
Container "0" *-- "*" Expose
|
||
|
|
||
|
class Expose
|
||
|
{
|
||
|
Port:int
|
||
|
Reverse: "string"
|
||
|
PAT:int
|
||
|
}
|
||
|
|
||
|
class ProcessingUsage
|
||
|
{
|
||
|
"hypothesis" : "string"
|
||
|
"cpu":
|
||
|
"gpu":
|
||
|
"ram":
|
||
|
"storage": "float"
|
||
|
"scalingmodel": "string"
|
||
|
}
|
||
|
|
||
|
class Storage {
|
||
|
"type" : "string"
|
||
|
"security_level" : "string"
|
||
|
"investors" : "string"
|
||
|
"support" : "string"
|
||
|
}
|
||
|
|
||
|
Resource -- Owner
|
||
|
|
||
|
Resource <|- Data
|
||
|
Resource <|- ComputeUnit
|
||
|
Resource <|- Processing
|
||
|
Resource <|- Storage
|
||
|
Resource <|- Workflow
|
||
|
|
||
|
|
||
|
StoragePartnerResource -- StoragePricingStrategy
|
||
|
ProcessingPartnerResource -- ProcessingPricingStrategy
|
||
|
ComputeUnitPartnerResource -- ComputeUnitPricingStrategy
|
||
|
DataPartnerResource -- DataPricingStrategy
|
||
|
|
||
|
StorageInstance "1" *-- "*" StoragePartnerResource
|
||
|
DataInstance "1" *-- "*" DataPartnerResource
|
||
|
ProcessingInstance "1" *-- "*" ProcessingPartnerResource
|
||
|
ComputeUnitInstance "1" *-- "*" ComputeUnitPartnerResource
|
||
|
|
||
|
DataPricingStrategy <|-- DataPricing
|
||
|
ProcessingPricingStrategy <|-- ProcessingPricing
|
||
|
ComputeUnitPricingStrategy <|-- ComputeUnitPricing
|
||
|
StoragePricingStrategy <|-- StoragePricing
|
||
|
|
||
|
ResourceInstance <|-- StorageInstance
|
||
|
ResourceInstance <|-- DataInstance
|
||
|
ResourceInstance <|-- ComputeUnitInstance
|
||
|
ResourceInstance <|-- ProcessingInstance
|
||
|
|
||
|
Storage "1" *-- "*" StorageInstance
|
||
|
Processing "1" *-- "*" ProcessingInstance
|
||
|
ComputeUnit "1" *-- "*" ComputeUnitInstance
|
||
|
Data "1" *-- "*" DataInstance
|
||
|
|
||
|
|
||
|
|
||
|
@enduml
|