PRIORITY This application claims priority under 35 U.S.C. § 119 to an application entitled “Location Service Providing System and Method” filed in the Korean Intellectual Property Office on Oct. 10, 2005 and assigned Serial No. 2005-95174, the contents of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION 1. Field of the Invention
The present invention relates generally to a location service providing system and method, and in particular, to a location service providing system and method for repeatedly providing a location service.
2. Description of the Related Art
Recently, according to an increase in demands for location-related services, various location services using a position of a mobile communication terminal are being provided and/or developed.
In particular, a triggered location service for repeatedly providing a location service in response to a single request has been being developed. The triggered location service includes a service for periodically or non-periodically providing a location service corresponding to a specific time and condition.
In the triggered location service, a home-SUPL (Secure User Plane for Location) location platform (H-SLP) and a target SUPL enabled terminal (SET) determine a positioning method to be used to calculate a position of the target SET when they are initially connected. That is, when the H-SLP and the target SET are initially connected to each other, the H-SLP and the target SET exchange their positioning capabilities, and the H-SLP or the target SET selects a common positioning capability and determines the selected positioning capability as the positioning method. The H-SLP and the target SET store the determined positioning method in their memories and reuse the stored positioning method in an assistant data calculation process required for the triggered position service.
The H-SLP receives requests of the triggered position service from a plurality of target SETs. Thus, the H-SLP can store positioning methods of the plurality of target SETs in its memory, and when the H-SLP calculates a position of each of the plurality of target SETs, the H-SLP can search for a positioning method of a target SET from among the stored positioning methods of the plurality of target SETs. However, it is inefficient for the H-SLP to store these positioning methods and reuse one of them in a location calculation process.
In addition, in the triggered location service, the H-SLP determines and stores a positioning method when it is initially connected to a target SET, continuously uses the stored positioning method, and deletes the stored positioning method when the triggered location service ends. However, since positioning methods use variable data, an error may occur in a process of storing or deleting each of the positioning methods in (or from) the memory of the H-SLP.
As a result, since the H-SLP repeatedly (periodically or non-periodically) performs the location calculation process for the triggered location service with a plurality of target SETs, a process of storing and searching a variable positioning method of each of the plurality of target SETs may burden the H-SLP with repetitive processes. Moreover, since the process of storing and searching a variable positioning method of each of the plurality of target SETs is frequently performed, an error occurrence probability is high.
SUMMARY OF THE INVENTION An object of the present invention is to substantially solve at least the above problems and/or disadvantages and to provide at least the advantages below. Accordingly, an object of the present invention is to provide a location service providing system and method, whereby each target SET stores its own positioning method in order to reduce the load of an H-SLP when positioning methods determined in an initialization stage of a triggered location service are stored and used.
Another object of the present invention is to provide a location service providing system and method, whereby loss of variable data of a positioning method can be prevented by storing each positioning method in each corresponding target SET in a triggered location service.
According to one aspect of the present invention, there is provided a location service providing system including a target SUPL (Secure User Plane for Location) Enabled Terminal (SET) for determining and storing a positioning method in an initialization stage of a location service according to a location service request, determining in a location calculation process whether the stored positioning method is available, providing the stored positioning method if it is determined that the stored positioning method is available, and requesting re-determination of a positioning method if it is determined that the stored positioning method is unavailable; and a home-SUPL location platform (H-SLP) for providing the location service using the stored positioning method if the stored positioning method is provided from the target SET, and providing the location service by re-determining a positioning method with the target SET if the re-determination of positioning method is requested.
According to another aspect of the present invention, there is provided a location service providing method including determining and storing, by a target SET, a positioning method in an initialization stage of a location service according to a location service request, determining in a location calculation process whether the stored positioning method is available, providing the stored positioning method if it is determined that the stored positioning method is available, and requesting for re-determination of a positioning method if it is determined that the stored positioning method is unavailable; and providing, by a home-SUPL (Secure User Plane for Location) location platform (H-SLP), the location service using the stored positioning method if the stored positioning method is provided from the target SET, providing the location service by re-determining a positioning method with the target SET if the re-determination of the positioning method is requested.
BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings in which:
FIG. 1 is a block diagram of a location service providing system according to the present invention;
FIG. 2 is a flow diagram illustrating a location service providing method when an SUPL agent requests a location service according to the present invention;
FIG. 3 is a flow diagram illustrating a location session process when the SUPL agent requests a location service according to the present invention;
FIG. 4 is a flow diagram illustrating a stay warm session process when the SUPL agent requests a location service according to the present invention;
FIG. 5 is a flow diagram illustrating a case where a target SET performs a location calculation process when the SUPL agent requests a location service according to the present invention;
FIG. 6 is a flow diagram illustrating a case where a previous position of the target SET is used when the SUPL agent requests a location service according to the present invention;
FIG. 7 is a flow diagram illustrating a location service providing method when a target SET requests a location service according to the present invention;
FIG. 8 is a flow diagram illustrating a location session process when the target SET requests a location service according to the present invention;
FIG. 9 is a flow diagram illustrating a stay warm session process when the target SET requests a location service according to the present invention; and
FIG. 10 is a flowchart illustrating a case where a previous position is reused when the target SET requests a location service according to the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Preferred embodiments of the present invention will be described herein below with reference to the accompanying drawings. In the drawings, the same or similar elements are denoted by the same reference numerals even though they are depicted in different drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.
FIG. 1 is a block diagram of a location service providing system according to the present invention. Referring toFIG. 1, the location service providing system includes a Secure User Plane for Location (SUPL)agent100, a home-SUPL location platform (H-SLP)200, atarget SET300, and amobile communication terminal150.
The SUPLagent100 is an entity, which can use an SUPL protocol, and a service access pointer, which is connected to the H-SLP200 supporting SUPL, to request a location service. The SUPLagent100 can request various location services. For example, the SUPLagent100 can request an immediate location service, a triggered location service, an emergency location service, a lawful location service (i.e., a location service for law enforcement agencies), and other applicable location services. A periodic event service is a service for providing a time-based location service. An area event service is a service for providing an area-based location service. For example, the area event service provides a position of a target SET in a range of a certain area (e.g., a building or a zone).
When a location service is requested, the SUPLagent100 notifies the H-SLP200 of which service is requested using a service-flag indicating a location service type.
The service-flag indicating which service is requested can be formed as illustrated in Table 1.
| TABLE 1 |
| |
| |
| Service type | Value of service-flag | |
| |
|
| Immediate location service | 11 |
| Triggered location service | Periodic | 21 |
| | Area event | 22 |
| | Other events | 23-29 |
| Emergency location service | 31 |
| Lawful location service | 41 |
| Reserved value | 101˜ |
| |
As illustrated in Table 1, the service-flag value in the immediate location service can be11. The service-flag value in the triggered location service can differ according to a type of the triggered location service, i.e.,21 for the periodic triggered location service,22 for the area event triggered location service, and23-29 for the other event triggered location services, for example SET (SUPL Enabled Terminal) being “off” becomes “on”. The service-flag value in the emergency location service can be31, and the service-flag value in the lawful location service can be41. The service-flag value in the other applicable location services can be101 or more.
When a location service request is received from the SUPLagent100, the H-SLP200 detects a type of the requested location service using a service-flag included in a location service request message. The H-SLP200 may accept or reject the location service request according to a result obtained by searching a service profile corresponding to the requested location service. If the H-SLP200 accepts the location service request, the H-SLP200 can perform control over service charges derived by providing the requested location service and notify the target SET300 whether the requested location service is accepted or rejected.
In response to the location service request of theSUPL agent100, the H-SLP200 also performs a location calculation process with thetarget SET300, or calculates assistance data and transmits the calculated assistant data to thetarget SET300 so that thetarget SET300 can calculate its position.
The H-SLP200 may also determine a positioning method required for the location calculation process and the assistant data calculation with thetarget SET300. In this case, the positioning method may be determined by comparing the capability (e.g., available protocols and positioning methods) of the H-SLP200 and the capability (e.g., available protocols and positioning methods) of the target SET300. The H-SLP200 may determine a positioning method when it is initially connected to thetarget SET300 and/or initialized. When the positioning method is determined, the H-SLP200 transmits the determined positioning method to thetarget SET300. Thereafter, if the H-SLP200 performs the location calculation process or the assistant data calculation, the H-SLP200 receives the determined positioning method from thetarget SET300 and uses the received positioning method. If H-SLP200 cannot receive the determined positioning method from thetarget SET300, the H-SLP200 determines a new positioning method with thetarget SET300.
Thetarget SET300, which is a target of location calculation, performs the location calculation process with the H-SLP200. In a network initiated case, i.e., in a case where a position (including position information) of thetarget SET300 is requested by theSUPL agent100 which is a third party, thetarget SET300 can accept or reject these request. In a SET initiated case, i.e., in a case where thetarget SET300 requests its position, thetarget SET300 can request its position from the H-SLP200.
When the triggered location service, such as the periodic triggered location service or the area event triggered location service, is requested, thetarget SET300 can store a positioning method determined when thetarget SET300 is initially connected to the H-SLP200.
When the location calculation process or the assistant data calculation process begins, thetarget SET300 the H-SLP200 to reuse the previously determined positioning method by transmitting the stored positioning method to the H-SLP200 so that a process of determining a positioning method may be omitted.
When an error is generated while the positioning method is stored, or when a new positioning method needs to be determined since the stored positioning method is inappropriate, thetarget SET300 requests the H-SLP200 to determine a new positioning method.
In detail, thetarget SET300 requests the H-SLP200 to determine a new positioning method by changing a value corresponding to a positioning method, which is included in an SUPL POS INIT message that is transmitted to the H-SLP200, to, for example, 0 or null.
If a value designated to use the previously determined positioning method is included in an SUPL POS INIT message received from thetarget SET300, the H-SLP200 receives the positioning method stored in thetarget SET300 and uses the received positioning method. If a value corresponding to a positioning method, which is included in an SUPL POS INIT message received from thetarget SET300, is 0 or null, the H-SLP200 determines a new positioning method by performing the process of determining a positioning method.
When the triggered location service is provided, a trigger can be repeatedly generated by the H-SLP200 or thetarget SET300 in order to notify of the beginning of the location calculation process (location calculation and assistant data calculation) at every predetermined interval time. The H-SLP200 or thetarget SET300 announces using a trigger-flag that it generates the trigger for notifying of the beginning of the location calculation process.
The trigger-flag indicating a trigger generation initiated party can be formed as illustrated in Table 2.
| TABLE 2 |
| |
| |
| Trigger generation initiated party | Value of trigger-flag |
| |
| H-SLP 200 generates a trigger | 0 |
| Target SET 300 generates atrigger | 1 |
| |
Referring to Table 2, if the trigger-flag is set to 0, the H-SLP200 generates a trigger, and if the trigger-flag is set to 1, thetarget SET300 generates a trigger.
In the network initiated case, the H-SLP200 can set the trigger-flag, which is included in an SUPL INIT message transmitted to thetarget SET300, to 0 or 1. If the trigger-flag value included in the SUPL INIT message is 1, thetarget SET300 determines that it generates a trigger, and if the trigger-flag value included in the SUPL INIT message is 0, thetarget SET300 determines that the H-SLP200 generates a trigger.
In the SET initiated case, thetarget SET300 can set the trigger-flag, which is included in an SUPL INIT message transmitted to the H-SLP200, to 0 or 1. If the trigger-flag value included in the SUPL NIT message is 1, thetarget SET300 determines that thetarget SET300 generates a trigger, and if the trigger-flag value included in the SUPL NIT message is 0, the H-SLP200 determines that the H-SLP200 generates a trigger.
A method of providing a location service in the location service providing system illustrated inFIG. 1 will now be described in detail. In the following description, the location service providing method is described by illustrating the network initiated case and the SET initiated case. In both cases, it is assumed that the periodic triggered location service is requested, the H-SLP200 is in a proxy mode in which a management server and an SLP server are integrated, and thetarget SET300 is a trigger generation initiated party. Regardless of the assumption, the present invention can be applied to all types of the triggered location service including the periodic triggered location service and the area event location service. In addition, the present invention can be applied to a case where the H-SLP200 is in a non-proxy mode in which the management server and the SLP server are separated and a case where the H-SLP200 is the trigger generation initiated party.
In addition, although a case where thetarget SET300 is managed by the H-SLP200 (i.e., a non-roaming case) will be described, the present invention can be applied to a case where thetarget SET300 is located in a visited network (i.e., a roaming case).
FIG. 2 is a flow diagram illustrating a location service providing method when theSUPL agent100 ofFIG. 1 requests a location service according to the present invention.
Referring toFIG. 2, theSUPL agent100 requests the periodic triggered location service, from the H-SLP200 using a mobile location protocol triggered location reporting request (MLP TLRR) message instep202. In this case, theSUPL agent100 can request a desired location service using a service-flag included in the MLP TLRR message. That is, theSUPL agent100 sets the service-flag to a value corresponding to a periodic triggered location service request in order to request the periodic triggered location service and transmits the MLP TLRR message to the H-SLP200.
When the MLP TLRR message is received from theSUPL agent100, the H-SLP200 determines which location service is requested by referring to the service-flag included in the MLP TLRR message and sets up routing information of thetarget SET300 instep204. That is, the H-SLP200 determines whether thetarget SET300 is in a roaming state and whether thetarget SET300 uses SUPL and sets up routing information according to the determination result. In the current embodiment, it is assumed that thetarget SET300 is in a non-roaming state and uses SUPL.
After the determination, the H-SLP200 notifies thetarget SET300 of the beginning of the periodic triggered location service by transmitting an SUPL INIT message to thetarget SET300 instep206. In this case, the service-flag and a trigger-flag are included in the SUPL INIT message. The service-flag indicates which type of location service was requested by theSUPL agent100, and the trigger-flag indicates whether a trigger for beginning the location calculation process or the assistant data calculation process is generated by the H-SLP200 or thetarget SET300. In the present invention, since it is assumed that the periodic triggered location service is requested, a value of the service-flag is 20 according to Table 1, and since it is assumed that a trigger is generated by thetarget SET300, a value of the trigger-flag is 1 according to Table 2.
When the SUPL INIT message is received, thetarget SET300 attempts a data network connection instep208. That is, thetarget SET300 checks that it is connected to a packet data network, and if thetarget SET300 is not connected to the packet data network, thetarget SET300 tries a connection to the packet data network. In this case, thetarget SET300 determines the proxy mode or the non-proxy mode by referring to a SLP_MODE parameter included in the received SUPL INIT message. In the proxy mode, thetarget SET300 is connected to the H-SLP200 using Internet protocol (IP).
After connected to the H-SLP200 using IP, thetarget SET300 transmits an SUPL POS INIT message to the H-SLP200 instep210. The SUPL POS INIT message includes a SET_CAPABILITY field. The SET_CAPABILITY field indicates which one of a mobile station (MS)-assisted assisted global positioning system (A-GPS) method and an MS-BASED A-GPS method is used as a positioning method and which one of a radio resource location services protocol (RRLP), a radio resource control (RRC) protocol, and an IS-801 protocol is used as a positioning protocol.
If the SUPL POS INIT message is received from thetarget SET300, the H-SLP200 compares a value of the SET_CAPABILITY field to its own positioning capability and determines a positioning method used to the location calculation process according to the comparison result. The H-SLP200 transmits the determined positioning method to thetarget SET300.
Thetarget SET300 stores the positioning method instep212. Thetarget SET300 and the H-SLP200 calculate a position of the target SET300 (SUPL POS) instep214 using the positioning method stored in thetarget SET300.
Thetarget SET300 transmits an SUPL TRIGGERED START message including a position thereof and information for notifying of the beginning of the periodic triggered location service to the H-SLP200 instep216. The H-SLP200 notifies theSUPL agent100 of the beginning of the periodic triggered location service by transmitting an MLP triggered location reporting answer (TLRA) message to theSUPL agent100 instep218.
Thetarget SET300 repeatedly checks a trigger generation time according to a trigger generation period included in the received SUPL INIT message. If it is the trigger generation time as the trigger generation period checking result, thetarget SET300 generates a trigger to start the location calculation process or the assistant data calculation process.
To generate the trigger, thetarget SET300 examines instep220 whether a positioning method determined and stored at an initially connected time exists. Thetarget SET300 determines instep222 whether a positioning method is re-determined. That is, thetarget SET300 determines whether the stored positioning method is used or a new positioning method is to be determined. If an error was generated while the stored positioning method was being stored, or if the stored positioning method is inappropriate, thetarget SET300 determines that a new positioning method is to be determined (i.e., re-determined).
If it is determined that a new positioning method is determined, thetarget SET300 sets a value of a positioning method (posmethod) included in an SUPL POS INIT message to 0 or null and transmits the SUPL POS INIT message to the H-SLP200 instep224.
If the value of the positioning method field (posmethod) included in the SUPL POS INIT message received from thetarget SET300 is neither 0 nor null, the H-SLP200 uses a positioning method received from thetarget SET300. If the value of the positioning method field (posmethod) included in the SUPL POS INIT message received from thetarget SET300 is 0 or null, the H-SLP200 re-determines a positioning method.
After a positioning method is determined, the H-SLP200 and thetarget SET300 calculate a position of thetarget SET300 by performing a location session process, a stay warm session process, or a just calculation process instep226. The location session process is a process for the H-SLP200 to create assistant data and calculate the position of thetarget SET300. The stay warm session process is a process in which the H-SLP200 creates assistant data and transmits the created assistant data to thetarget SET300 and thetarget SET300 calculates a position thereof and transmits the calculated position to the H-SLP200. The just calculation process is a process in which thetarget SET300 checks whether valid assistant data exists and, if valid assistant data exists, calculates a position thereof and transmits the calculated position to the H-SLP200.
After a position of thetarget SET300 is calculated, the H-SLP200 transmits the calculated position of thetarget SET300 to theSUPL agent100 using an MLP TLR message instep228.
Thetarget SET300 repeatedly checks the trigger generation time according to the trigger generation period included in the SUPL INIT message and,steps220 to228 are iteratively performed until a predetermined stop time has elapsed. If the predetermined stop time has elapsed, thetarget SET300 notifies the H-SLP200 that the periodic triggered location service has ended by transmitting an SUPL END message to the H-SLP200 instep230. Accordingly, resources used for the periodic triggered location service and all prepared resources are released, and the periodic triggered location service is ended.
Though a case where the H-SLP200 does not use a previous position of thetarget SET300 has been described, the H-SLP200 may reuse the previous position of thetarget SET300. In this case, steps220 to228 illustrated inFIG. 2 are omitted, and the previous position of thetarget SET300 is directly transmitted to theSUPL agent100.
In detail, if the previous position of thetarget SET300 is reused, the H-SLP200 determines whether the previous position of thetarget SET300 is stored in a memory thereof. If the previous position of thetarget SET300 is stored in the memory, the H-SLP200 determines whether Quality of Position (QoP) of the previous position of thetarget SET300 is appropriate to (i.e., is equal to or greater than) a level of QoP required by theSUPL agent100. If it is determined that the QoP of the previous position of thetarget SET300 is appropriate, the H-SLP200 directly transmits an MLP TLRA message including the previous position of thetarget SET300 to theSUPL agent100 without notifying thetarget SET300 of a location service request. If notification on the location service request is unnecessary, or in a case such as the emergency location service or the lawful location service, the H-SLP200 may directly transmit an MLP TLRA message including the previous position of thetarget SET300 to theSUPL agent100 without notifying thetarget SET300 of a location service request.
Thetarget SET300 also can have a previous position stored therein or receive a previous position from the H-SLP200 through the SUPL INIT message. Thus, thetarget SET300 examines whether a previous position is included in the received SUPL INIT message and whether a previous position is stored therein. If a previous position exists, thetarget SET300 determines whether the previous position is reused. That is, thetarget SET300 compares QoP of the previous position to QoP required by theSUPL agent100, and if the QoP of the previous position is higher than the QoP required by theSUPL agent100, thetarget SET300 accepts that the previous position is reused. If thetarget SET300 simultaneously has the previous position stored therein and the previous position received from the H-SLP200, thetarget SET300 selects a previous position having higher QoP by comparing the previous position stored therein to the previous position received from the H-SLP200 and compares QoP of the selected previous position to the QoP required by theSUPL agent100, if the QoP of the selected previous position is higher than the QoP required by theSUPL agent100, thetarget SET300 accepts that the selected previous position is reused. If the reuse of the previous position is accepted, thetarget SET300 transmits the previous position to the H-SLP200, and the H-SLP200 transmits the received previous position to theSUPL agent100.
The location service providing method corresponding to the case where the
SUPL agent100 requests a location service according to the present invention is illustrated in Table 3.
| TABLE 3 |
|
|
| A case where SUPL agent requests a location |
| service (network initiated case) |
|
|
| SET assisted | Location | H-SLP performs location calculation and |
| case | session | calculates assistant data. |
| SET based | Stay warm | H-SLP calculates assistant data, and target |
| case | session | SET receives calculated assistant data, |
| | calculates its position, and reports |
| | calculated position to H-SLP. |
| — | Just | Target SET has valid assistant data, |
| calculation | calculates its position using valid |
| | assistant data, and reports calculated |
| | position to H-SLP. |
| — | SUPL report | Target SET has previous position, and if |
| (use a | QoP of previous position is appropriate to |
| previous | level required by SUPL agent, target SET |
| position) | directly transmits previous position to |
| | H-SLP. |
|
The location session process, the stay warm session process, the just calculation process, and the SUPL report process (use a previous position) of the case where theSUPL agent100 requests a location service, i.e., the network initiated case, which are illustrated in Table 3, will now be described in detail.
FIG. 3 is a flow diagram illustrating the location session process when theSUPL agent100 requests a location service according to the present invention. Referring toFIG. 3, the H-SLP200 calculates assistant data instep304, calculates a position of thetarget SET300 using the calculated assistant data instep306, and transmits an MLP TLR message including the calculated position of thetarget SET300 to theSUPL agent100 instep308.
FIG. 4 is a flow diagram illustrating the stay warm session process when theSUPL agent100 requests a location service according to the present invention. Referring toFIG. 4, the H-SLP200 calculates assistant data instep404 and transmits the calculated assistant data to thetarget SET300 instep406. Thetarget SET300 calculates a position thereof using the assistant data received from the H-SLP200 instep408 and transmits an SUPL REPORT message including the calculated position to the H-SLP200 instep410. The H-SLP200 transmits an MLP PLR message including the position of thetarget SET300, which is received from thetarget SET300, to theSUPL agent100 instep412.
FIG. 5 is a flow diagram illustrating a case (i.e., the just calculation process), where thetarget SET300 performs the location calculation process when theSUPL agent100 requests a location service according to the present invention. Referring toFIG. 5, thetarget SET300 checks instep502 whether valid assistant data exists. If valid assistant data exists, thetarget SET300 calculates a position thereof instep504 and transmits an SUPL REPORT message including the calculated position to the H-SLP200 instep506. The H-SLP200 transmits an MLP PLR message including the position of thetarget SET300, which is received from thetarget SET300, to theSUPL agent100 instep508.
FIG. 6 is a flow diagram illustrating a case, i.e., the SUPL report process (use a previous position), where a previous position of thetarget SET300 is used when theSUPL agent100 requests a location service according to the present invention. Referring toFIG. 6, thetarget SET300 transmits an SUPL REPORT message including the previous position of thetarget SET300 to the H-SLP200 instep602. The H-SLP200 transmits an MLP PLR message including the previous position of thetarget SET300, which is received from thetarget SET300, to theSUPL agent100 instep604.
FIG. 7 is a flow diagram illustrating a method of providing a location service when thetarget SET300 requests a location service according to the present invention. Referring toFIG. 7, thetarget SET300 requests the H-SLP200 for the periodic triggered location service using an SUPL TRIGGERED START message instep702. In this case, thetarget SET300 can request a desired location service by inserting a service-flag into the SUPL TRIGGERED START message, and in order to request the periodic triggered location service, thetarget SET300 sets the service-flag to a value corresponding to a periodic triggered location service request.
If the SUPL TRIGGERED START message is received from thetarget SET300, the H-SLP200 determines which location service is requested by referring to the service-flag included in the SUPL TRIGGERED START message and sets up routing information of thetarget SET300 instep704. That is, the H-SLP200 determines whether thetarget SET300 is in a roaming state and whether thetarget SET300 uses SUPL and sets up routing information according to the determination result. For the sake of clarity, it is assumed that thetarget SET300 is in a non-roaming state and uses SUPL.
After the determination, the H-SLP200 notifies thetarget SET300 of the beginning of the periodic triggered location service by transmitting an SUPL INIT message to thetarget SET300 instep706. In this case, the service-flag and a trigger-flag are included in the SUPL INIT message. The service-flag indicates which type of location service was requested by theSUPL agent100, and the trigger-flag indicates whether a trigger for beginning the location calculation process or the assistant data calculation process is generated by the H-SLP200 or thetarget SET300. In the present invention, since it is assumed that the periodic triggered location service is requested, a value of the service-flag is20 according to Table 1, and since it is assumed that a trigger is generated by thetarget SET300, a value of the trigger-flag is 1 according to Table 2.
When the SUPL INIT message is received, thetarget SET300 tries a data network connection instep708. That is, thetarget SET300 determines whether it is connected to a packet data network, and if thetarget SET300 is not connected to the packet data network, thetarget SET300 attempts to connect to the packet data network. In this case, thetarget SET300 determines the proxy mode or the non-proxy mode by referring to a SLP_MODE parameter included in the received SUPL INIT message. In the proxy mode, thetarget SET300 is connected to the H-SLP200 using IP.
After connected to the H-SLP200 using IP, thetarget SET300 transmits an SUPL POS INIT message to the H-SLP200 instep710. The SUPL POS INIT message includes a SET_CAPABILITY field. The SET_CAPABILITY field indicates which one of the MS-assisted A-GPS method and the MS-BASED A-GPS method is used as a positioning method and which one of the RRLP, the RRC protocol, and the IS-801 protocol is used as a positioning protocol.
If the SUPL POS INIT message is received from thetarget SET300, the H-SLP200 compares a value of the SET_CAPABILITY field to its own positioning capability and determines a positioning method used for the location calculation process according to the comparison result. The H-SLP200 transmits the determined positioning method to thetarget SET300.
Thetarget SET300 stores the positioning method instep712. Thetarget SET300 and the H-SLP200 calculate a position of the target SET300 (SUPL POS) instep714 using the positioning method stored in thetarget SET300.
Since thetarget SET300 sets the trigger-flag included in the SUPL TRIGGERED START message to 1, thetarget SET300 detects the beginning of the periodic triggered location service and repeatedly checks a trigger generation time according to a trigger generation period. If it is determined that it is the trigger generation time, thetarget SET300 generates a trigger to start the location calculation process or the assistant data calculation process.
To generate the trigger, thetarget SET300 examines instep718 whether a positioning method determined and stored at an initially connected time exists. Thetarget SET300 determines instep720 whether a positioning method is re-determined. That is, thetarget SET300 determines whether the stored positioning method is used or a new positioning method is determined. If an error was generated while the stored positioning method was being stored, or if the stored positioning method is inappropriate, thetarget SET300 determines that a new positioning method is determined.
Based on the results of this determination, thetarget SET300 notifies H-SLP200 whether a previously determined positioning method is used or a new positioning method is determined by setting a value of a positioning method field (posmethod) included in an SUPL POS INIT message to 0 or null instep722.
If the previously determined positioning method is included in the SUPL POS INIT message received from thetarget SET300, the H-SLP200 uses the previously determined positioning method. If a value of a positioning method field (posmethod) included in the SUPL POS INIT message received from thetarget SET300 is 0 or null to determine a new positioning method, the H-SLP200 re-determines a positioning method by performing the initial positioning method determination process again.
After a positioning method is determined, the H-SLP200 and thetarget SET300 calculate a position of thetarget SET300 by performing a location session process, a stay warm session process, or a just calculation process instep724.
As previously described, the location session process is a process for the H-SLP200 to create assistant data and calculate the position of thetarget SET300. The stay warm session process is a process in which the H-SLP200 creates assistant data and transmits the created assistant data to thetarget SET300 and thetarget SET300 calculates a position thereof and uses the calculated position. The just calculation process is a process for thetarget SET300 to check whether valid assistant data exists and, if valid assistant data exists, calculate a position thereof and use the calculated position.
Thetarget SET300 repeatedly checks the trigger generation time according to the trigger generation period defined by itself or the H-SLP200, and iteratively performssteps718 to724 until a predetermined stop time lapses. If the predetermined stop time lapses, thetarget SET300 notifies the H-SLP200 that the periodic triggered location service ends by transmitting an SUPL END message to the H-SLP200 instep726. Accordingly, resources used for the periodic triggered location service and all prepared resources are released, and the periodic triggered location service ends.
Though a case where the H-SLP200 does not use a previous position of thetarget SET300 has not been fully described, the H-SLP200 may reuse the previous position of thetarget SET300. In this case, steps718 to724 illustrated inFIG. 7 may be omitted, and thetarget SET300 uses a previous position stored therein or receives a previous position from theSUPL agent100.
In detail, if the previous position of thetarget SET300 is used, the H-SLP200 examines whether the previous position of thetarget SET300 is stored in a memory thereof. If the previous position of thetarget SET300 is stored in the memory, the H-SLP200 determines whether QoP of the previous position of thetarget SET300 is appropriate to a level of QoP required by thetarget SET300. If it is determined that the QoP of the previous position of thetarget SET300 is appropriate, the H-SLP200 directly transmits the previous position to thetarget SET300.
If thetarget SET300 also has a previous position stored therein or receives a previous position from the H-SLP200 through an SUPL RESPONSE message, thetarget SET300 determines whether the previous position is used. That is, thetarget SET300 compares QoP of the previous position to desired QoP, and if the QoP of the previous position is higher than the desired QoP, thetarget SET300 accepts that the previous position is reused. If thetarget SET300 simultaneously has the previous position stored therein and the previous position received from the H-SLP200, thetarget SET300 selects a previous position having higher QoP by comparing the previous position stored therein to the previous position received from the H-SLP200 and compares QoP of the selected previous position to the desired QoP, if the QoP of the selected previous position is higher than the desired QoP, thetarget SET300 accepts that the selected previous position is reused.
The location service providing method corresponding to the case where the
target SET300 requests a location service according to the present invention is illustrated in Table 4.
| TABLE 4 |
|
|
| A case where target SET requests a location |
| service (SET initiated case) |
|
|
| SET assisted | Location | H-SLP calculates assistant data, calculates |
| case | session | position of target SET, and transmits |
| | calculated position to target SET. |
| SET based | Stay warm | H-SLP calculates assistant data, and target |
| case | session | SET receives calculated assistant data, |
| | calculates its position, and uses |
| | calculated position. |
| — | Just | Target SET has valid assistant data, cal- |
| calculation | culates its position using valid assistant |
| | data, and uses calculated position. |
| — | SUPL report | Target SET has previous position, and if |
| (use a | QoP of previous position is appropriate to |
| previous | desired level, target SET uses previous |
| position) | position. |
|
The location session process, the stay warm session process, the just calculation process, and the SUPL report process (use a previous position) of the case where theSUPL agent100 requests a location service, i.e., the network initiated case, which are illustrated in Table 4, will now be described in detail.
FIG. 8 is a flow diagram illustrating the location session process when thetarget SET100 requests a location service according to the present invention. Referring toFIG. 8, the H-SLP200 calculates assistant data instep802, calculates a position of thetarget SET300 using the calculated assistant data instep804, and transmits an SUPL REPORT message including the calculated position of thetarget SET300 to thetarget SET300 instep806.
FIG. 9 is a flow diagram illustrating the stay warm session process when thetarget SET300 requests a location service according to the present invention. Referring toFIG. 9, the H-SLP200 calculates assistant data instep902 and transmits the calculated assistant data to thetarget SET300 instep904. Thetarget SET300 calculates a position thereof using the assistant data received from the H-SLP200 and uses the calculated position instep906.
FIG. 10 is a flowchart illustrating a case, i.e., the just calculation process, where a previous position is reused when thetarget SET300 requests a location service according to the present invention. Referring toFIG. 10, thetarget SET300 checks instep912 whether valid assistant data exists. If valid assistant data exists, thetarget SET300 calculates and uses a position thereof instep914.
The SUPL report process (use a previous position) will now be described. If the H-SLP200 has a previous position of thetarget SET300, and if QoP of the previous position is appropriate to QoP required by thetarget SET300, the H-SLP200 determines that the previous position is reused and transmits the previous position to thetarget SET300. If thetarget SET300 has a previous position, and if QoP of the previous position is appropriate to desired QoP, thetarget SET300 reuses the previous position. In this case, a connection process is not performed with the H-SLP200. That is, thetarget SET300 neither requests assistant data from the H-SLP200 nor performs the location calculation process with the H-SLP200.
As described above, according to the present invention, in a triggered location service, by storing a positioning method in a target SET and transmitting the stored positioning method to an H-SPL, the H-SPL can reuse the positioning method without determining a new positioning method, thereby preventing loss of variable data in a positioning method and an overload problem of the H-SPL.
In addition, by using the positioning method stored in the target SET in a location calculation process, the number of executions of a positioning method determination process can be reduced.
In addition, if the positioning method stored in the target SET has an error or is not appropriate in the location calculation process, a new positioning method is determined.
In addition, by detecting using a service-flag which service type is requested by an SUPL agent, billing corresponding to the requested service type and privacy checking can be properly performed.
In addition, by notifying of a trigger generation initiated party using a trigger-flag, the trigger generation initiated party according to a situation can be easily detected.
While the invention has been shown and described with reference to a certain preferred embodiment thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.