Skip to content

Update location.yaml#9

Merged
bigludo7 merged 5 commits intocamaraproject:dev-0.2.0from
ukkaps:main
Jan 27, 2023
Merged

Update location.yaml#9
bigludo7 merged 5 commits intocamaraproject:dev-0.2.0from
ukkaps:main

Conversation

@ukkaps
Copy link
Contributor

@ukkaps ukkaps commented Dec 29, 2022

Included request parameter “MaxAge’ to give the developer option to mention the maximum aging of the location info, accepted by the application.

If the developer wants only real-time or near real-time information, we as operators then can avoid validating against stale location info resulted from network reasons such as device switched-off, not in servicing area, device issues etc.

Included request parameter “MaxLocationAge’ to give the developer option to mention the maximum aging of the location info, accepted by the application. 

If the developer wants only real-time or near real-time information, we as operators then can avoid validating against stale location info resulted from network reasons such as device switched-off, not in servicing area, device issues etc.
API version increased from 0.1.0 to 0.2.0
update default (0) for MaxLocationAge
Changed MaxLocationAge to MaxAge
Copy link
Collaborator

@bigludo7 bigludo7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look good for me;
Thanks

Copy link
Collaborator

@jlurien jlurien left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In v0.1 this parameter does not exist, so it is like client does not care about location age, and any implementation of the API regarding location age works. In practice this is as having a default value to a maximum.

To me this parameter makes sense when the client wants to request a location age that is more restrictive than certain default value, as I doubt a client would explicitly request anything worse than default (unless it is cheaper but we are not considering those aspects yet).

If we make it required, client is more conscious about the age concept but API may be more difficult to use as clients may doubt what value in minutes to ask, and they would ask for the minimum usually.

I think we have to know well what can be expected from the network in the common cases, and what can be assumed as "real-time". For example, if networks cannot not easily assure ages as low as 0 o 1 minutes, allowing clients to request it may be problematic, as clients probably tend to request the minimum if they have to provide a value mandatorily, For most use cases, low values in the order of few minutes would make no difference, but strictly some implementation may not fulfill age=0.

@bigludo7 do you have a strong preference on this optional vs mandatory decision? Maybe you can check also internally what a minimum "reasonable" age of data in your network is.

Also, in any case we should define also the expected behaviour when the requested age cannot be fulfilled.

maximum: 200
example: 50
MaxAge:
description: Max location aging validity required by the application in Minute, Default =0 for realtime location
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We were discussing in the original PR whether this new parameter should be mandatory or not. If mandatory, it makes no sense to define or document a default value.

@bigludo7
Copy link
Collaborator

bigludo7 commented Jan 3, 2023

Hello @jlurien
Regarding your question, my understanding is:

  • value 0 mean 'now' (real time localisation)
  • it should be the value default.
  • mandatory or not? I haven't a strong opinion but I understood that https://github.com/patrice-conil has a preference for the mandatory version.
  • as we use 3GPP Monitoring event, the age could be useful when the location type is "LAST_KNOWN_LOCATION" (and not "CURRENT_LOCATION"). Indeed if I got from my back end system a localisation with a "ageOfLocationInfo"= 19, if you asked me with maxAge = 0 I cannot localize you while if you asked me with maxAge = 20 I send back "verificationResult": true. I'm not sure about the maximum ageOfLocalisation we are able to manage in the BE.
  • Completely agree with your point about defining also the expected behavior when the requested age cannot be fulfilled. In my previous example, if I got from my back end system a localisation with a "ageOfLocationInfo"= 19, if you asked me with maxAge = 0 I should probably sent an explicit 'unable to localize' instead of "verificationResult": false. This could need additional discussion because from a boolean we can switch to a string with an enum (true/false/unableToProvide) .

@jlurien
Copy link
Collaborator

jlurien commented Jan 4, 2023

Hello @jlurien Regarding your question, my understanding is:

  • value 0 mean 'now' (real time localisation)
  • it should be the value default.
  • mandatory or not? I haven't a strong opinion but I understood that https://github.com/patrice-conil has a preference for the mandatory version.
  • as we use 3GPP Monitoring event, the age could be useful when the location type is "LAST_KNOWN_LOCATION" (and not "CURRENT_LOCATION"). Indeed if I got from my back end system a localisation with a "ageOfLocationInfo"= 19, if you asked me with maxAge = 0 I cannot localize you while if you asked me with maxAge = 20 I send back "verificationResult": true. I'm not sure about the maximum ageOfLocalisation we are able to manage in the BE.
  • Completely agree with your point about defining also the expected behavior when the requested age cannot be fulfilled. In my previous example, if I got from my back end system a localisation with a "ageOfLocationInfo"= 19, if you asked me with maxAge = 0 I should probably sent an explicit 'unable to localize' instead of "verificationResult": false. This could need additional discussion because from a boolean we can switch to a string with an enum (true/false/unableToProvide) .

My concerns here about API usability and "dev friendliness":

If default is 0, meaning "current location" (I prefer this term instead of real-time), and we make maxAge required, we are forcing clients to explicitly provide a maxAge. So if default is the best service, then I wonder in which cases a client would ask for anything worse on purpose. Only maybe if clients ask for "current location", get a first response of type "unable to provide", and then ask again for "last known location". Then, a better design approach would probably be to provide the maxAge indication as part of the response, instead of providing it in the request. Clients may not be familiar with typical ages in our networks to decide which threshold in minutes is enough to get the last known location if available.

@ukkaps
Copy link
Contributor Author

ukkaps commented Jan 27, 2023

@bigludo7 , @jlurien PR is approved now and I do not have write access. can one of you merge this PR now?

@bigludo7 bigludo7 merged commit 2212691 into camaraproject:dev-0.2.0 Jan 27, 2023
@jlurien
Copy link
Collaborator

jlurien commented Jan 30, 2023

@bigludo7, @ukkaps,

Sorry, but I had some pending comments, and there is still not agreement about how to add this new parameter. I will revert this commit and we can discuss further on this on tomorrow's meeting. For other PRs, please let's wait until we have at least the approval of at least 2 people.

In the meantime, if you could read my latest comments and follow the discussion, it would be great. Thanks

@bigludo7
Copy link
Collaborator

Hello @jlurien

I need to be sure we have same understanding about API behavior. A very simple UC:

  • Suppose, at t time, I'm in a place defined with latitude A, longitude B then turn off my phone. 15 minute later (t+15), we use the device location for A,B with 1km radius, on my ip. The response will be true and age of location 15 minutes
  • Now from the same start (place A,B at t) I'm not turning off my phone and travelling to another place (distant from more than 1 km to A,B). A t+15, when we use the device location for A,B with 1km radius, on my ip I will have a false in the response.

Agreed on this pattern ? I saw an inconsistency but not sure we can do better.

@jlurien
Copy link
Collaborator

jlurien commented Jan 30, 2023

Hi @bigludo7,

  • The current proposal considers maxAge as an input parameter, so the response would depend on the requested threshold about age. But maybe we could think if it fits better as part of the response. Quoting myself :) "Clients may not be familiar with typical ages in our networks to decide which threshold in minutes is enough to get the last known location if available."
  • For the second point I guess you assume that network location is fresh, not stalled at A,B. In that case is clearly false, yes.

The concept of considering the age makes sense but we have to decide how to fit it in the API design, request or response, optional or required, default or not, any associated error if needed, etc. We are not in a hurry for this so let's try to find the best approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants