- wash installed v 20
- redis kv store installed
Proof of concept illustrating a sample implementation of wasmCloud-based distributed rating
- As A Customer I selected a bundled service of 3 movies for 1 dollar THEN I can consume this service from a providers mobile app And I can see the correct rate reflected in my bill
postpaid_orange_vod_bucket_rating_agent
curl --location --request POST 'http://localhost:8070/usage/rating' \ --header 'cf-ipcountry: EG' \ --header 'Content-Type: application/json' \ --data-raw '{ "customerId":"13", "usage": { "usageCharacteristicList": [ { "name":"movies", "value":"1", "valueType":"number" } ] }, "agentId":"postpaid_orange_vod_bucket" }'
AS A Telecom-Provider I WANT TO offer my customers a discount on service consumption after reaching a certain level of consumption THEN I will be able to attract more customers
postpaid-orange-threshold-discount-agent
curl --location --request POST 'http://localhost:8070/usage/rating' \ --header 'cf-ipcountry: EG' \ --header 'Content-Type: application/json' \ --data-raw '{ "customerId":"13", "usage": { "usageCharacteristicList": [ { "name":"movies", "value":"1", "valueType":"number" } ] }, "agentId":"postpaid_orange_vod_threshold_discount" }'
AS A Telecom-Provider I WANT TO offer my customers a to consume a service using his prepaid account
curl --location --request POST 'http://localhost:8070/usage/rating' \ --header 'cf-ipcountry: EG' \ --header 'Content-Type: application/json' \ --data-raw '{ "customerId":"12", "usage": { "usageCharacteristicList": [ { "name":"movies", "value":"1", "valueType":"number" } ] }, "agentId":"prepaid_orange_vod_oneshot" }'
AS A Telecom-Provider I WANT TO offer my customers a service provided by two different providers of my partners and he can use one of them THEN I will be able to attract more customers and share the revenue with my partners
video_rating_agent
curl --location --request POST 'http://localhost:8070/usage/rating' \ --header 'cf-ipcountry: EG' \ --header 'Content-Type: application/json' \ --data-raw '{ "customerId":"13", "usage": { "usageCharacteristicList": [ { "name":"movies", "value":"1", "valueType":"number" } ] }, "agentId":"orange_vod", "offerId": "video" }'
Consume dropbox service which depend on aws sync store to allocate storage , and aws sync store depend on Orange connectivity to allocate bandwidth
orange-connectivity-rating-agent
curl --location --request POST 'http://localhost:8070/usage/rating' \ --header 'cf-ipcountry: EG' \ --header 'Content-Type: application/json' \ --data-raw '{ "customerId":"13", "usage": { "usageCharacteristicList": [ { "name":"storage", "value":"5", "valueType":"Giga" } ] }, "agentId":"dropbox_syncstor_composite_vertical" }'
Consume dropbox service which depend on both aws sync store to allocate storage and Orange connectivity in allocating bandwidth.
curl --location --request POST 'http://localhost:8070/usage/rating' \ --header 'cf-ipcountry: EG' \ --header 'Content-Type: application/json' \ --data-raw '{ "customerId":"13", "usage": { "usageCharacteristicList": [ { "name":"storage", "value":"5", "valueType":"Giga" } ] }, "agentId":"dropbox_syncstor_composite_horizontal" }'
Metaverse advertiser offer vod/ movie service though his meta room.
- orange_vod_metaverse
curl --location --request POST 'http://localhost:8070/usage/rating' \
--header 'cf-ipcountry: EG' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerId":"advertiser1",
"usage": {
"usageCharacteristicList": [
{
"name":"room-entering-usage",
"value":"1",
"valueType":"integer"
}
]
},
"agentId": "orange_vod_metaverse"
}'
{
"authorizationStatus": {
"code": 200,
"key": "This user is authorized to use this service"
},
"billingInformation": {
"messages": [
" 1 will be deducted from your balance",
" Your Balance now is 992 EUR"
],
"price": "1",
"unit": "EUR"
}
}
curl --location --request POST 'http://localhost:8070/usage/rating' \
--header 'cf-ipcountry: EG' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerId":"advertiser1",
"usage": {
"usageCharacteristicList": [
{
"name":"movie-usage",
"value":"1",
"valueType":"integer"
}
]
},
"agentId": "orange_vod_metaverse"
}'
{
"authorizationStatus": {
"code": 200,
"key": "This user is authorized to use this service"
},
"billingInformation": {
"messages": [
" 2 will be deducted from your balance",
" Your Balance now is 992 EUR"
],
"price": "2",
"unit": "EUR"
}
}
Metaverse User topup their balance
- balancemanager
curl --location --request POST 'http://localhost:8070/usage/balance/topup' \
--header 'cf-ipcountry: EG' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerId":"advertiser1",
"amount": "10",
"offer_id": "metaverse-vod"
}'
{
"balanceCharacteristic": {
"count": 1059.0,
"unit": "EUR"
},
"party_id": ""
}