FLOW ALGEBRA
Cloud Computing Ontology
Kireth Semantic Research Archive
PAGE:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/distributed-computing/cloud-computing-ontology.html
AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)
FLOW "CloudComputingOntology" v4.0
# ---------- DOMAIN ----------
DOMAIN := ComputingOntology
SUBDOMAIN := DistributedComputing
ONTOLOGY := CloudComputingOntology
# ---------- PRIMARY ENTITY ----------
ENTITY CloudComputing {
definition:
"A distributed computing model that provides configurable computing
resources, platforms and applications as network-accessible services
that can be provisioned, scaled, managed and released according to
demand.";
objectives: [
OnDemandProvisioning,
ResourcePooling,
Elasticity,
Scalability,
ServiceDelivery,
Availability,
MeasuredUsage
];
}
# ---------- CORE ENTITIES ----------
CloudResource := {
ComputeResource,
StorageResource,
NetworkResource,
DatabaseResource,
ApplicationResource,
PlatformResource
};
CloudServiceModel := {
InfrastructureAsAService,
PlatformAsAService,
SoftwareAsAService,
FunctionAsAService
};
CloudDeploymentModel := {
PublicCloud,
PrivateCloud,
HybridCloud,
CommunityCloud
};
CloudActor := {
CloudProvider,
CloudConsumer,
CloudAdministrator,
CloudService,
Tenant
};
# ---------- FUNDAMENTAL RELATIONSHIPS ----------
CloudProvider PROVIDES CloudService;
CloudConsumer USES CloudService;
CloudService EXPOSES CloudResource;
CloudResource HOSTED_ON CloudInfrastructure;
Tenant CONSUMES AllocatedResource;
CloudManagementSystem MANAGES CloudResource;
CloudResource MAY_BE Virtualised;
CloudResource MAY_BE DistributedAcross DataCentre;
# ---------- CLOUD SERVICE ----------
CloudService :=
ServiceInterface
+ ResourceCapability
+ ProvisioningModel
+ ManagementPolicy;
CloudService HAS {
ServiceIdentifier,
ServiceModel,
ResourceConfiguration,
AvailabilityState,
UsageState
};
# ---------- SERVICE MODELS ----------
InfrastructureAsAService PROVIDES {
VirtualCompute,
Storage,
Network
};
PlatformAsAService PROVIDES {
RuntimeEnvironment,
DevelopmentPlatform,
ManagedServices
};
SoftwareAsAService PROVIDES {
HostedApplication
};
FunctionAsAService PROVIDES {
EventTriggeredFunctionExecution
};
# ---------- PROVISIONING ----------
ProvisioningRequest :=
{
Consumer,
ResourceType,
Capacity,
Configuration,
Region,
Policy
};
ProvisioningRequest ->
Validate ->
SelectCapacity ->
AllocateResource ->
Configure ->
Activate ->
ReturnEndpoint;
IF CapacityAvailable
AND PolicySatisfied
THEN Provisioning MAY_PROCEED;
# ---------- ON-DEMAND COMPUTING ----------
OnDemandProvisioning :=
ConsumerRequest
-> AutomatedAllocation
-> ResourceAvailability;
CloudConsumer MAY_PROVISION Resource WITHOUT ManualProviderInteraction;
# ---------- RESOURCE POOLING ----------
ResourcePool :=
SET_OF(SharedPhysicalOrVirtualResources);
CloudProvider POOLS Resources;
ResourcePool SERVES MultipleConsumers;
ResourceAllocation MAPS PooledResource TO Tenant;
MultiTenancy :=
MultipleTenants SHARE UnderlyingInfrastructure
WITH LogicalIsolation;
# ---------- VIRTUALISATION ----------
Virtualisation :=
PhysicalResource
-> AbstractionLayer
-> VirtualResource;
VirtualMachine IS_A VirtualComputeResource;
VirtualNetwork IS_A VirtualNetworkResource;
VirtualStorage IS_A VirtualStorageResource;
Hypervisor MAY_HOST VirtualMachine;
# ---------- CONTAINERISATION ----------
Container :=
IsolatedApplicationExecutionEnvironment;
ContainerRuntime EXECUTES Container;
Container MAY_SHARE HostKernel;
ContainerOrchestrator MAY_MANAGE ContainerSet;
Containerisation MAY_SUPPORT CloudApplicationDeployment;
# ---------- ELASTICITY ----------
Elasticity :=
DynamicallyAdjustResources
ACCORDING_TO Demand;
ElasticAction := {
ScaleOut,
ScaleIn,
ScaleUp,
ScaleDown
};
IF Demand > CapacityThreshold
THEN ScaleOutOrUp MAY_BE_TRIGGERED;
IF Demand < LowerThreshold
THEN ScaleInOrDown MAY_BE_TRIGGERED;
# ---------- SCALABILITY ----------
CloudScalability :=
AbilityToIncreaseServiceCapacity
ByAddingOrExpandingResources;
HorizontalScaling := AddServiceInstances;
VerticalScaling := IncreaseInstanceResources;
LoadBalancer MAY_DISTRIBUTE RequestsAcross ServiceInstances;
# ---------- AVAILABILITY ----------
CloudAvailability :=
AbilityOfCloudServiceToRemainAccessibleWhenRequired;
AvailabilityMechanism := {
Redundancy,
Replication,
Failover,
LoadBalancing,
HealthMonitoring
};
IF ServiceInstanceFails
AND HealthyReplicaAvailable
THEN Traffic MAY_BE Redirected;
# ---------- REGIONS AND ZONES ----------
CloudRegion := GeographicServiceArea;
AvailabilityZone := IsolatedInfrastructureLocationWithinRegion;
CloudRegion CONTAINS AvailabilityZone;
CloudResource DEPLOYED_IN CloudRegion;
CloudResource MAY_BE_DISTRIBUTED_ACROSS AvailabilityZone;
MultiZoneDeployment MAY_INCREASE Resilience;
# ---------- STORAGE ----------
CloudStorage := {
ObjectStorage,
BlockStorage,
FileStorage
};
ObjectStorage STORES Object;
BlockStorage PROVIDES BlockDevice;
FileStorage PROVIDES SharedFileInterface;
StorageReplication MAY_SUPPORT DurabilityAndAvailability;
# ---------- CLOUD NETWORKING ----------
CloudNetwork :=
VirtualNetwork
+ Subnet
+ Routing
+ SecurityPolicy;
CloudResource CONNECTS_TO CloudNetwork;
NetworkPolicy CONTROLS Traffic;
LoadBalancer DISTRIBUTES NetworkRequest;
Gateway CONNECTS NetworkDomains;
# ---------- MANAGED SERVICES ----------
ManagedService :=
ProviderOperatedServiceCapability;
ManagedService MAY_INCLUDE {
DatabaseService,
QueueService,
CacheService,
AnalyticsService,
IdentityService
};
CloudProvider OPERATES ManagedService;
CloudConsumer CONFIGURES_AND_USES ManagedService;
# ---------- SERVERLESS COMPUTING ----------
ServerlessComputing :=
ProviderManagedInfrastructure
+ EventDrivenOrRequestDrivenExecution
+ AutomaticResourceAllocation;
FunctionInvocation ->
Trigger ->
AllocateRuntime ->
ExecuteFunction ->
ReturnResult ->
ReleaseOrReuseRuntime;
# ---------- METERING ----------
MeasuredUsage :=
ObserveResourceConsumption
-> RecordUsage
-> AggregateUsage;
UsageMetric MAY_INCLUDE {
ComputeTime,
StorageAmount,
NetworkTransfer,
RequestCount
};
UsageRecord ASSOCIATED_WITH TenantOrConsumer;
# ---------- ORCHESTRATION ----------
CloudOrchestration :=
Coordinate(
Compute,
Storage,
Network,
Application,
Policy
);
DeploymentDefinition MAY_DESCRIBE DesiredCloudState;
Orchestrator ->
CompareDesiredAndActualState ->
ProvisionOrModifyResources ->
ConvergeState;
# ---------- SECURITY ----------
CloudSecurity MAY_INCLUDE {
IdentityManagement,
Authentication,
Authorisation,
Encryption,
NetworkSecurity,
Logging,
Monitoring,
Isolation
};
SharedResponsibility :=
ProviderResponsibilities
+ ConsumerResponsibilities;
ResponsibilityBoundary DEPENDS_ON CloudServiceModel;
# ---------- FAULT MODEL ----------
CloudFailure := {
InstanceFailure,
HostFailure,
StorageFailure,
NetworkFailure,
ZoneFailure,
ServiceFailure,
ConfigurationFailure
};
CloudResilience :=
DetectFailure
-> RedirectOrFailover
-> Recover
-> RestoreCapacity;
# ---------- CLOUD MIGRATION ----------
CloudMigration :=
AssessWorkload
-> SelectCloudModel
-> PrepareDependencies
-> TransferDataAndApplication
-> Validate
-> Operate;
WorkloadCompatibility AFFECTS MigrationStrategy;
# ---------- SEMANTIC REASONING ----------
IF ComputingResource ProvisionedOverNetwork
AND ResourceAllocatedOnDemand
AND ResourcePoolShared
THEN CloudComputingClassification := supported;
IF DemandIncreases
AND AutomaticResourceAdjustmentEnabled
THEN Elasticity := active;
IF MultipleTenantsShareInfrastructure
AND TenantIsolationMaintained
THEN MultiTenancy := true;
IF ServiceDeployedAcrossIndependentZones
THEN AvailabilityPotential := increase;
IF ConsumerUsesProviderManagedApplication
THEN ServiceModel MAY_BE SoftwareAsAService;
IF ConsumerControlsVirtualMachines
THEN ServiceModel MAY_BE InfrastructureAsAService;
IF ConsumerDeploysCodeWithoutManagingServers
THEN ServiceModel MAY_BE FunctionAsAService;
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
"cloud computing" ~= "cloud-based computing";
"IaaS" ~= "infrastructure as a service";
"PaaS" ~= "platform as a service";
"SaaS" ~= "software as a service";
"FaaS" ~= "function as a service";
"serverless" ~= "serverless computing";
"scale out" ~= "horizontal scaling";
"scale up" ~= "vertical scaling";
"cloud instance" ~= "cloud compute instance";
"availability zone" ~= "cloud availability zone";
}
# ---------- QUERY FLOW ----------
QUERY(q) ->
NORMALISE(q) ->
IDENTIFY_CLOUD_RESOURCE(q) ->
IDENTIFY_SERVICE_MODEL(q) ->
IDENTIFY_DEPLOYMENT_MODEL(q) ->
IDENTIFY_PROVIDER_CONSUMER_RELATIONSHIP(q) ->
IDENTIFY_SCALING(q) ->
IDENTIFY_AVAILABILITY(q) ->
MAP_TO_ONTOLOGY(q) ->
APPLY_REASONING(q) ->
SCORE_CONFIDENCE(q) ->
RETURN_RELEVANT_KNOWLEDGE;
# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
weighted_mean(
source_reliability,
cloud_system_consistency,
semantic_consistency,
evidence_strength,
contextual_relevance
);
CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
primary_entity: CloudComputing;
ontology: CloudComputingOntology;
parse_entities: true;
parse_relationships: true;
preserve_relationship_direction: true;
resolve_semantic_equivalence: true;
execute_reasoning_rules: true;
apply_confidence_weighting: true;
preserve_provenance: true;
}
# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
new_cloud_resource:
validate
-> classify
-> identify_service_model
-> identify_region
-> integrate;
new_service:
validate
-> classify_service_model
-> identify_provider
-> identify_consumer_controls
-> integrate;
new_deployment:
identify_resources
-> identify_regions_and_zones
-> identify_scaling_policy
-> identify_resilience
-> integrate;
resource_state_change:
update_capacity
-> update_availability
-> evaluate_elasticity
-> recompute_cloud_state;
conflict:
preserve_provenance
-> compare_evidence
-> adjust_confidence
-> flag_review;
revision:
recompute_relationships
-> recompute_inferences
-> recompute_confidence
-> regenerate_flow_hash;
}
# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
DOMAIN
+ SUBDOMAIN
+ ONTOLOGY
+ CloudResource
+ CloudServiceModel
+ CloudDeploymentModel
+ CloudActor
+ CloudRegion
+ CloudStorage
+ RELATIONSHIPS
+ SEMANTIC_REASONING
+ SEMANTIC_EQUIVALENCE
+ UPDATE_MODEL;
FLOW_HASH :=
HASH(FLOW_HASH_INPUT);
# ---------- TERMINAL ----------
CloudComputingOntology
-> IdentifyCloudService
-> IdentifyProviderAndConsumer
-> DetermineServiceModel
-> SelectCloudResources
-> ProvisionResources
-> ConfigureNetworkAndStorage
-> DeployWorkload
-> MonitorDemand
-> ApplyElasticScaling
-> MaintainAvailability
-> MeterResourceUsage
-> ProtectCloudEnvironment
-> MaintainCloudService;
END FLOW
Download Code
Copy to Clipboard