Haptic navigation device

A navigation device including a housing including an opening, two or more drive wheels, and two or more rollers, a spherical member located within the opening of the housing in direct contact with the two or more drive wheels and the two or more rollers such that the drive wheels control rotation of the spherical member in response to guidance signals received from a processor, and an attachable member coupled directly to the housing for securing the navigation device to a body part of a user and maintaining contact between the user's skin and the spherical member.

BACKGROUND

The present invention relates to navigation devices, in particular to a wearable, haptic navigation device.

Navigation systems have become an integral part of everyday life as well as being essential to modern professions. GPS-based navigational systems are embedded in conventional smart phones, smart watches and smart wearables. Navigational systems allow users to route themselves, their vehicles or other devices to a desired destination with real-time guidance throughout the journey.

Conventional navigation systems typically include a visual display of the journey, accompanied by visual and auditory alerts and guidance as to which direction the user should go to next. These systems assume that the user has the ability to visually or auditorily receive the guidance messages. Users with visual or hearing impediments, or users who are undergoing a task that doesn't allow them to look at a screen or listen to alerts are not able to use conventional screen-based navigational systems.

SUMMARY

Embodiments of the present invention describe a haptic navigation device that allows a user to be guided to their destination via haptic feedback and method of using the same. The haptic navigation device includes a housing including an opening, two or more drive wheels, and two or more rollers, a spherical member located within the opening of the housing in direct contact with the two or more drive wheels and the two or more rollers such that the drive wheels control rotation of the spherical member in response to guidance signals received from a processor, and an attachable member coupled directly to the housing for securing the navigation device to a body part of a user and maintaining contact between the user's skin and the spherical member.

DETAILED DESCRIPTION

Traditional navigation solutions for users who are visually impaired include the use of a handheld cane, the use of assistant animals such as a guide dog, or a fully auditory navigation system, where the navigation messages, for example a set of navigational instructions, are communicated via auditory guidance messages. For users with visual impairments, it is important that they are able to receive guidance messages in a way that doesn't obstruct them from holding a cane or the leash of their guide animal.

Haptic technology uses vibrations, force and motions to communicate to a user. Recent navigational systems incorporate haptic technology into their solutions. An example is an existing rotating haptic navigation device, specifically designed for visually impaired users. The device includes two parts where the top part rotates left and right in relation to the bottom member, about one rotational axis that passes through the center of both parts. When the user needs to turn left or right, the rotating haptic navigation device rotates to point left or right respectively. The drawback of this solution is that it must be held in the user's hand, which impedes the user's ability to use that hand.

Another drawback of the rotating haptic navigation device is that it only works if the device is held in the correct orientation, i.e. held in front of the user in the user's palm, with the palm of the user facing upwards. The rotating haptic navigation device impedes the user from freely using their hand and arm; this is especially important if they are holding a cane or leash in their other hand.

Wearable devices solve the problem of needing to hold the device in the user's hand. One such example of a vibrating, wearable haptic navigation device is a strap device worn by a user with two vibrational areas. Depending on the route of the user, the strap device vibrates in the direction the user needs to turn. Another example of a vibrating, wearable haptic navigation device is a wearable pendant, where that the user experiences vibrations on their neck depending on the direction the user needs to turn. These wearable haptic devices allow users to navigate themselves via haptic feedback.

A drawback of both the existing rotating haptic navigation devices and vibrating haptic navigation devices is the limited degree of movement they provide to communicate the route to the user. As the rotating haptic navigation devices are only able to move in one rotational axis, the top part can only move in one plane and can only convey two signals or directions; left and right. Similarly, the two vibrational areas of the vibrating haptic navigation devices can only convey two signals or directions; left and right.

Disclosed herein is a haptic navigation device which rotates a spherical member against a user's body part, communicating to the user a direction that the user needs to move to get to their destination. The direction of the rotational movement and the speed of the spherical member may convey the angle of direction the user needs to move. The haptic navigation device can be handheld, or the haptic navigation can be attached to a user's body part, such as the user's wrist, arm, torso or legs via an attachable member.

Referring now toFIG. 1, a haptic navigation device100is shown according to embodiments of the present invention. The haptic navigation device100is designed to receive a navigation message, for example navigational directions, and translate the navigation message into rotational movement which can be physically recognized by a user. The haptic navigation device100includes a strap102, an extension member104extending from the strap102, a housing106at the extremity of the extension member104, a spherical member108suspended in the center of the housing106, supported for rotational movement about an axis of rotation that passes through the center of the spherical member108.

As may be used herein, the terms “rotating” and “spinning” may be used interchangeably to describe the movement of the spherical member108within the housing106of the haptic navigation device100.

The spherical member108preferably has a shape and texture which allows full rotational movement within the housing106in all directions. The surface of the spherical member108may be smooth, or it may have a texture such as, for example, tactile ridges or tactile grooves, to aid with communicating the haptic feedback to the user. The components of the haptic navigation device100are arranged such that at least a portion the spherical member108is in contact with the user's body part, for example, the palm of their hand. The housing106has an opening, exposing a portion of the spherical member108, such that the exposed portion of the spherical member108is in contact with a body part of a user.

The housing106includes a circular shape, however, the housing106can be any shape and dimension as long as it allows the spherical member108to rotate freely within the housing106, and the housing106is able to be comfortably attached to the user's body part.

The strap102may be made of a flexible material that is able to wrap around the user's body part. Suitable flexible materials may include, for example, fabric, plastic or composite materials. Alternatively, the strap102may include a rigid material that is shaped to fit the user's body part, such as, for example, plastic or a metal material. The strap102may further include a stretchable component to allow the haptic navigation device100to be securely attached to the user's wrist, or may further include an attachable mechanism, such as, for example, a buckle (e.g. watch strap), hook-and-loop fasters, snap fasteners, buttons with buttonholes for holding the strap around the user's body part.

Similarly, the extension member104may include a flexible or rigid material for connecting the housing106to the strap102, such as, for example, fabric, plastic or a composite material. In some cases, the haptic navigation device100may have a flexible strap102and a rigid extension member104to support the housing106in place of the user's palm. In other cases, the haptic navigation device100may have a spring-loaded flexible extension member104to guarantee positive contact between the spherical member108and the user's body part is maintained. If contact between the spherical member108and the user's body part is ever lost, there is a potential some of the navigation message (i.e. directions) may not be fully communicated to the user. Lastly, the spring-loaded extension member104need not include a spring, but instead include an elastic material in such a shape that would act like a spring to hold the spherical member108against the user's body part. More specifically, an extension member made form an elastic material would flex like a spring without experiencing any plastic deformation.

As disclosed herein, the attachable member includes the strap102and the extension member104. In other embodiments, the attachable member is a re-usable, sticky adhesive component arranged on one side of the housing106, such that the haptic navigation device100sticks to the user's body part. In yet another embodiment, the attachable member is a wearable component, such as a glove or arm band, where the haptic navigation device100is integrated or embedded into the wearable component, for example, an article of clothing. Those skilled in the art will appreciate that there are various attachable member arrangements capable of attaching the housing106and the spherical member108to the user's body part.

The housing106includes motors118,120(hereinafter “motors”) which control drive wheels110,116(hereinafter “drive wheels”) in physical contact with the spherical member108. The drive wheels110,116, which are controlled by the motors118,120respectively, spin to rotate the spherical member108continuously in the direction of the guidance signal sent from the processor124.

The housing106further includes multiple rollers112,114. The rollers112,114spin freely and are not connected to a motor. All of the drive wheels110,116and the rollers112,114provide support for the rotational movement of the spherical member108. As illustrated, the drive wheels110,116and the rollers112,114are all coupled to the housing106and arranged in a single plane, in accordance with an embodiment of the present invention. In some embodiments, the drive wheels110,116and the rollers112,114may not all be arranged in a single plane. In all cases, the drive wheels110,116and the rollers112,114must be arranged in a manner to facilitate rotation of the spherical member108sufficient to communicate the navigation message, as described above. The motors118,120engage in different combinations to allow the spherical member108to rotate in any combination of directions to facilitate communication of the navigation message to the user.

In addition to the drive wheels110,116and the rollers112,114, the spherical member108can be further supported on top and bottom by a low friction ring. In some cases, the housing106may include two openings, one on top and one on bottom, where the spherical member108would be exposed. In such cases, each opening may have a low friction ring disposed at the edge of the openings to support free rotation of the spherical member108.

In another embodiment, the housing106may include only a single opening on the bottom in which case the spherical member108would be completely covered or encased by the housing106except for a portion exposed via that opening on the bottom of the housing106. In such cases, the spherical member108may be supported by a low friction ring disposed at the edge of the opening and a low friction surface opposite the opening.

All drive wheels and rollers maintain contact with the spherical member108during rotation; however, the spherical member108does not necessarily maintain contact with the low friction ring(s) and/or surface.

The haptic navigation device100ofFIG. 1conveys or communicates the navigational message to the user via haptic feedback on the user's body part. The direction in which the spherical member108continuously rotates indicates the direction the user needs to travel according to the navigational message.

FIG. 1illustrates the haptic navigational device100with two electromechanical motors118,120, and two rollers112,114; however, those skilled in the art will appreciate that any the number of motors and rollers can be fewer or more than two, to allow a reduced or increased degree of movement of the spherical member108within the housing106.FIG. 1further illustrates drive wheels110,116, and rollers112,114with a concave shape complementary to the spherical member108; however, those skilled in the art will appreciate that any the number of other suitable shapes exist and may be required to facilitate the necessary rotation of the spherical member108.

Those skilled in the art will also appreciate that there are further mechanisms and arrangements that the haptic navigation device100may include. For example, rubber brushings or ball bearings may be used instead of rollers to support the spherical member108within the housing106.

The haptic navigation device100further includes multiple hardware components in order to analyze a current location of a user relative to a received navigation message, and send calculated guidance signals to the motors118,120of the haptic navigation device100in accordance with embodiments of the present invention disclosed herein. The multiple hardware components of the haptic navigation device100may include, but are not limited to, a processor124, a wireless internet unit126, a Global Positioning System (GPS) unit128, and an accelerometer and a gyroscope unit130.

The processor124compares the received navigation message with a geographical location of the user and translates the received navigation message into the guidance signals which cause the spherical member to rotate according to the received navigation message. More specifically, the processor124obtains the current geographical location data from the GPS unit128and the navigation message from the navigation APIs in accordance with embodiments of the present invention. The processor124also determines the current relative speed, motion, or orientation of the haptic navigational device100from the internal accelerometer and gyroscope unit130. After determining a current geographical location of the user, the processor124also determines one or more next moves based on the received navigation message. The current geographical location and orientation data is used to calculate which direction the spherical member108needs to rotate in relation to the user's body part, and therefore which motor(s) to engage.

The wireless internet unit126is configured to receive navigation messages from a remote device, such as, for example a user's mobile phone in accordance with embodiments of the present invention. The remote device may function similar to the secondary device described below.

The GPS unit128includes a GPS receiver capable of receiving geolocation and time information from a satellite-based radio navigation system. Like conventional systems, the GPS unit128need not transmit any data, and it operates independently of any telephonic or internet reception, though such technologies can enhance the usefulness of the GPS positioning information. As previously described, the GPS unit128provides current geographical location data to the processor124for purposes of calculating guidance signals based on the received navigation message.

The accelerometer and a gyroscope unit130is used to determine relative speed, motion, or orientation of the haptic navigational device100at any given point in time. The GPS unit128could be used alone, or in cooperation with the accelerometer and a gyroscope unit130, to determine the relative speed, motion, or orientation of the haptic navigational device100at any given point in time. The processor124will adjust or correct guidance signals based on the relative speed, motion, or orientation of the haptic navigational device100provided by the accelerometer and a gyroscope unit130.

According to an alternate embodiment of the present invention, some functions of the hardware components described above may be carried out in a secondary processing device, such as, for example, a smartphone or a remote processing system on a cloud system such that the calculated guidance signals are sent to the haptic navigation device100as hardware commands, for engaging the necessary motors. The haptic navigation device100may be connected to the secondary processing device by a wired connection or a wireless connection via Bluetooth™ or WiFi. The haptic navigation device100may be connected to the remote processing system via Bluetooth or WiFi.

The secondary processing device may continuously request data from the GPS unit128and the accelerometer and gyroscope units130, to calculate the navigation path as well as the guidance signal(s) the haptic navigation device100needs to engage the motors118,120and communicate the directions to the user. Once the secondary processing device identifies which motor(s) to engage to move the spherical member108in a direction corresponding to a particular navigation message, the secondary processing device may continuously send commands to the haptic navigation device100such that the haptic navigation device100engages the necessary motors118,120at each point of the user's journey. The frequency of the communication between the haptic navigation device100and the secondary processing device may depend on the wireless network conditions or pre-defined time intervals, for example, refreshing the guidance signal every second, five seconds or every minute.

If a smartphone is used as the secondary processing device, data from the additional sensors in the smartphone such as the camera and LIDAR sensors may be used as input to calculate the responsive guidance mode signals.

The interaction with the haptic navigation device100, such as the input of the target location or the configuration of the various communication modes (for example, defining the meanings of the different speeds of rotation or the different patterns of vibrations) can be carried out in various ways. One example of an interaction method is a voice-controlled system where the user can interact with the haptic navigation device100using voice commands. The haptic navigation device100may further include sound input and sound output components, such as a microphone and speakers. The user may be prompted to input their target location by speaking aloud, and the haptic navigation device100will parse the spoken information using known speech-to-text methods to define the target location.

Another interaction method may use conventional touchscreen systems to obtain user input. The touchscreen may be on the haptic navigation device100itself in the form of a small LED display. If a secondary processing device such as a smartphone is used in conjunction with the haptic navigation device100, a touchscreen of the secondary processing device could be used to input information and instructions to the haptic navigation device100.

Referring now toFIG. 2, the haptic navigation device100is shown attached to a user's wrist with the spherical member108contacting the user's palm. In such examples, the user's hand is not stationary. For example, the orientation of the user's hand may alternate or change from being palm down or palm up. Specifically,FIG. 2Aillustrates a scenario when the user's palm is facing up, whileFIG. 2Billustrates a scenario when the user's palm is facing down. Since the haptic navigation device100is rigidly mounted, the orientation of the haptic navigation device100would also change in cooperation with the movement of the user's hand.

As previously described, the haptic navigation device100shown inFIGS. 2A and 2Bis strapped to a user's wrist such that the spherical member108is in direct contact with the user's skin, such as, for example, the user's palm. For purposes of the present example, the housing106of the haptic navigation device100is divided into four sections and numbered 1, 2, 3 and 4, respectively. Such areas are merely for purposes of illustration and discussion and are not intended to describe any specific feature or limitation of the haptic navigation device100.

According to the example ofFIG. 2A, the user may hold the haptic navigation device100in front of them with their hand facing palm up. If, for example, the navigation message indicates a right turn200, the guidance signals provided to the motors118,120would cause the spherical member108to rotate to the right toward section2of the housing106, as illustrated inFIG. 2A. More specifically, the motor118engages drive wheel110such that the spherical member108rotates in a direction which communicates to the user they should turn right. It is noted that rotation of the spherical member108toward section2of the housing106may include clockwise rotation and counter-clockwise rotation. The direction of rotation may be preferably pre-set; however, the user would have the ability to set the direction of rotation as a preference via, for example, a user interface.

If, for example, the navigation message indicates only a right turn, then the motor120would not engage drive wheel116causing the spherical member108to rotate only toward section2of the housing106. In such cases, drive wheel116would remain motionless or substantially motionless. If the navigation message indicates, for example, a sharp right turn, then the motor120may also engage drive wheel116such that the spherical member108rotates generally toward section2of the housing106, but in a direction which communicates to the user they should turn sharp right. As such, the guidance signal may cause both motors118,120to engage both drive wheels110,116to produce rotational movement of the spherical member108in a direction other than purely right/left or purely forward/backward.

To achieve this, the haptic navigation device100uses the accelerometer and gyroscope unit130to determine the relative speed, motion, or orientation of the haptic navigational device100at any given point along the journey. Before sending any guidance signal to the motors118,120, the processor124would account for the relative speed, motion, or orientation of the haptic navigational device100.

According to the example ofFIG. 2B, the user may hold the haptic navigation device100in front of them with their hand facing palm down. In such cases, the haptic navigation device100would function similarly as described above with reference toFIG. 2A; however, the spherical member108would rotate in a different direction based on its alternate orientation. For example, if the navigation message indicates a right turn200, the guidance signals provided to the motors118,120would cause the spherical member108to rotate to the right toward section4of the housing106, as illustrated inFIG. 2B. More specifically, like with respect to the example illustrated inFIG. 2A, the motor118engages drive wheel110such that the spherical member108rotates in a direction which communicates to the user they should turn right; however, the spherical member108would rotate in a direction opposite that of theFIG. 2Adue to its alternate orientation. As such guidance signals sent to the motors118,120when the user's palm is facing up (FIG. 2A) will be different from guidance signals sent to the motors118,120when the user's palm is facing down (FIG. 2B).

According to another example, the user may hold the haptic navigation device100in front of them with their hand facing palm up or facing palm down. If, for example, the navigation message indicates the users should travel straight, the guidance signals provided to the motors118,120would cause the spherical member108to rotate toward section1of the housing106, as illustrated in eitherFIG. 2A or 2B. More specifically, the motor120engages drive wheel116such that the spherical member108rotates in a direction which communicates to the user they should travel straight ahead. Like described above, the rotation of the spherical member108toward section1of the housing106may include clockwise rotation and counter-clockwise rotation which can be predetermined, or user selected based on personal preference.

In general, the haptic navigation device100can provide two modes of guidance to the user (a) active guidance and (b) responsive guidance. Active guidance refers to a mode which guides the user to a particular target location, based on the user's current geographical location and orientation, as described in detail above. Responsive guidance refers to a mode which alerts the user of local obstructions and thus guides the user away or around the local obstructions, as is described in detail below.

Referring now toFIG. 3, a method300for operating the haptic navigation device100for active guidance is depicted, in accordance with embodiments of the present invention. At block310, the method300determines a target location. This can be accomplished by manual user input via the user interface, such as, for example, speech-to-text input or textual input via a keyboard or touchscreen.

At block312, the method determines the user's current geographical location using the GPS unit128of the haptic navigation device100. At block314, the method calculates a navigation path based on the user's current geographical location to the target location using conventional navigation methods, for example, using the Google™ Maps or Apple™ Maps application programming interfaces (APIs). At block316, the method determines a current orientation of the haptic navigation device100from the internal accelerometer and gyroscope unit130. At block318, the method calculates a direction signal with respect to the current orientation of the haptic navigation device100. At block320, the method identifies which motor(s) to engage to move the spherical member108in accordance with the direction signal. At block322, the method engages the motors118,120to rotate the spherical member108in accordance with the direction signal.

In some embodiments, blocks310-320, may be carried out in a secondary processing device such as a smartphone or a remote processing system on a cloud system such that the calculated guidance signals are sent to the haptic navigation device100as hardware commands, for engaging the necessary motors. The haptic navigation device100may be connected to the secondary processing device by a wired connection or a wireless connection via Bluetooth™ or WiFi. The haptic navigation device100may be connected to the remote processing system via Bluetooth or WiFi.

Referring now toFIG. 4, a map is shown depicting a user's route in accordance with an embodiment of the invention. Consider, for example, a user traveling from starting position A to target position C. When the user is at the starting position A, the processor124obtains the current geographical location data from the GPS unit128. The processor124then determines the current orientation information of the haptic navigation device100from the internal accelerometer and gyroscope unit130. In accordance with the present example the processor124determines, while the user is stationary at the starting position A, that the user needs to move forward until the user reaches an intermediate position B.

If in the present example, the user is holding the haptic navigation device100in front of them with their hand facing palm up the processor124will calculate and provide guidance signals to the motors118,120. Such guidance signals causing the spherical member108to rotate toward section1(FIGS. 2A, 2B) of the housing106. More specifically, the motor120engages drive wheel116such that the spherical member108rotates in a direction which communicates to the user they should travel straight ahead, in toward the intermediate position B.

Upon arrival of the user at the intermediate position B, the processor124obtains a new current geographical location data from the GPS unit128, and determines a new current orientation information from the internal accelerometer and gyroscope unit130. In accordance with the present example the processor124then determines, while the user is stationary at the intermediate position B, that the user needs to turn right. The processor124will calculate and provide new guidance signals to the motors118,120based on the user's new location. The new guidance signals provided to the motors118,120would cause the spherical member108to rotate to the right toward section2(FIGS. 2A, 2B) of the housing106. More specifically, the motor118engages drive wheel110such that the spherical member108rotates in a direction which communicates to the user they should turn right.

According to yet another embodiment of the present invention, the haptic navigation device100may progressively change the angle of direction of rotation of the spherical member108toward a particular direction as the user gets closer to a turning point, for example, the intermediate position B. In such cases, the haptic navigation device100need not be stationary, and guidance signals are calculated in real time based on real time data from the GPS unit128, the accelerometer and a gyroscope unit130, or both. For example, the processor124can continuously detect changes to the geographical location of the user and the orientation or the haptic navigation device and recalculate, in real time, the guidance signal based on those detected changes. Further, in accordance with the present embodiment, the axis of rotation of the spherical member108does not remain static. Instead, the axis of rotation of the spherical member108may change as the user travels, for example, from the starting position A to the intermediate position B. For example, the axis of rotation will be oriented perpendicular to the direction of intended travel. In some cases, the axis of rotation is in the same plane as the drive wheels110,116and the rollers112,114as well as being oriented perpendicular to the direction of intended travel.

According to yet another embodiment of the present invention, the guidance signals calculated by the processor124may further include vibrational, spinning and patterned movement. For example, the spherical member108may vibrate to notify the user they are approaching a turning point or obstacle. The vibrating notification may have a range of intensity, for example, increasing as a distance from a turning point or obstacles decreases. Alternatively, varying the speed of rotation of the spherical member108may signify, and thus communicate, additional guidance information to the user. For example, the spherical member108may rotate faster or slower to notify the user they are approaching a turning point or obstacle. The rotation speed of the spherical member108may progressively (continuously) change, for example gradually increase, as a distance from a turning point or obstacles decreases, or vice versa.

The haptic navigation device100described herein can offer additional information about upcoming turns and environmental conditions than conventional haptic navigation devices currently offer. The additional information and communication modes can be tailored to the user's needs and preferences.

To achieve a responsive guidance mode, the haptic navigation device100may further include additional sensors for mapping the local environment of the user's journey. This may include Light Detection and Ranging (LIDAR) sensors, visual sensors or motion sensors that are suitable for identifying local obstructions in the user's path.

Referring now toFIG. 5, a map is shown depicting a user's route in accordance with an embodiment of the invention. Consider, for example, a user500approaching an obstacle502and the haptic navigation device100navigating the user around the obstacle. In such cases, the user will be alerted of the obstacle502, for example, by one or more active guidance signals such as vibrating, changes rotation speed of the spherical member108, or some patterned movement of the spherical member108. Preferably, any movement of the spherical member108communicating the presence of the obstacle502may be different that typical rotation of the spherical member108during ordinary navigation.

As may be used herein, the terms “substantially” and “approximately” provide an industry-accepted tolerance for its corresponding term and/or relativity between items. Such an industry-accepted tolerance ranges from less than one percent to fifty percent and corresponds to, but is not limited to, component values, integrated circuit process variations, temperature variations, rise and fall times, and/or thermal noise. Such relativity between items ranges from a difference of a few percent to magnitude differences. As may also be used herein, the term(s) “configured to”, “operably coupled to”, “coupled to”, and/or “coupling” includes direct coupling between items and/or indirect coupling between items via an intervening item (for example, an item includes, but is not limited to, a component, an element, a circuit, and/or a module) where, for an example of indirect coupling, the intervening item does not modify the information of a signal but may adjust its current level, voltage level, and/or power level. As may further be used herein, inferred coupling (i.e., where one element is coupled to another element by inference) includes direct and indirect coupling between two items in the same manner as “coupled to”. As may still further be used herein, the term “associated with”, includes direct and/or indirect coupling of separate items and/or one item being embedded within another item.

The navigation device100may include internal and external hardware components, as described in further detail below with reference toFIG. 6. It should be appreciated thatFIG. 6provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made. In other embodiments, the navigation device100may operate in a cloud computing environment, as is described below with reference toFIGS. 7 and 8.

Referring toFIG. 6, a system1000includes a computer system or computer1010is shown. The method300, for example, may be embodied in a program(s)1060(FIG. 6) embodied on a computer readable storage device, for example, generally referred to as memory1030and more specifically, computer readable storage medium1050as shown inFIG. 6. For example, memory1030can include storage media1034such as RAM (Random Access Memory) or ROM (Read Only Memory), and cache memory1038. The program1060is executable by a processing unit (i.e. processor)1020of the computer system1010(to execute program steps, code, or program code). Additional data storage may also be embodied as a database1110which can include data1114. The computer system1010and the program1060shown inFIG. 6represent a computer and program that may be local to a user, or provided as a remote service (for example, as a cloud based service), and may be provided in further examples, using a website accessible using a communications network1200(for example, interacting with a network, the Internet, or cloud services). It is understood that the computer system1010also represents herein a computer device or a computer included in a device, such as a laptop or desktop computer, etc., or one or more servers, alone or as part of a datacenter. The computer system can include a network adapter/interface1026, and an input/output (I/O) interface(s)1022. The I/O interface1022allows for input and output of data with an external device1074that may be connected to the computer system. The network adapter/interface1026may provide communications between the computer system a network shown as the communications network1200.

The computer system1010may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. The method steps and system components and techniques may be embodied in modules of the program1060for performing the tasks of each of the steps of the method and system. The modules are represented inFIG. 6as program modules1064. The program1060and program modules1064can execute specific steps, routines, sub-routines, instructions or code, of the program.

Embodiments of the present disclosure can be run locally on a device such as a mobile device, or can be run a service, for instance, on the server1100which may be remote and can be accessed using the communications network1200. The program or executable instructions may also be offered as a service by a provider. The computer system1010may be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through the communications network1200. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

More specifically, as shown inFIG. 6, the system1000includes the computer system1010shown in the form of a computing device with illustrative periphery devices. The components of the computer system1010may include, but are not limited to, one or more processing units1020, a system memory1030, and a bus1014that couples various system components including system memory1030to processing unit1020.

The computer system1010can include a variety of computer readable media. Such media may be any available media that is accessible by the computer system1010(for example, computer system, or server), and can include both volatile and non-volatile media, as well as, removable and non-removable media. Computer memory1030can include additional computer readable media1034in the form of volatile memory, such as random access memory (RAM), and/or cache memory1038. The computer system1010may further include other removable/non-removable, volatile/non-volatile computer storage media, in one example, portable computer readable storage media1072. In an embodiment, the computer readable storage medium1050can be provided for reading from and writing to a non-removable, non-volatile magnetic media. The computer readable storage medium1050can be embodied, for example, as a hard drive. Additional memory and data storage can be provided, for example, as the database1110(for example, a storage system) for storing data1114and communicating with the processing unit1020. The database can be stored on or be part of a server1100. Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (for example, a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus1014by one or more data media interfaces. As will be further depicted and described below, memory1030may include at least one program product which can include one or more program modules that are configured to carry out the functions of embodiments of the present invention.

The method300(FIG. 3), for example, may be embodied in one or more computer programs1060(hereinafter “program”), and can be stored in the memory1030in the computer readable storage medium1050. The program1060can include program modules1064. The program modules1064carry out functions and/or methodologies of embodiments of the present invention as described herein. The program1060is stored in memory1030and is executable by the processing unit1020. By way of example, the memory1030may store an operating system1052, one or more application programs1054, other program modules, and program data on the computer readable storage medium1050. It is understood that the program1060, and the operating system1052and the application program(s)1054stored on the computer readable storage medium1050are similarly executable by the processing unit1020.

The computer system1010may also communicate with one or more external devices1074such as a keyboard, a pointing device, a display1080, etc.; one or more devices that enable a user to interact with the computer system1010; and/or any devices (for example, network card, modem, etc.) that enables the computer system1010to communicate with one or more other computing devices. Such communication can occur via the Input/Output (I/O) interfaces1022. Still yet, the computer system1010can communicate with the communications network1200, such as, for example, a local area network (LAN), a general wide area network (WAN), and/or a public network (for example, the Internet) via network adapter/interface1026. As depicted, network adapter1026communicates with the other components of the computer system1010via bus1014. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with the computer system1010. Examples, include, but are not limited to: microcode, device drivers1024, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

It is understood that a computer or a program running on the computer system1010may communicate with a server, embodied as the server1100, via one or more communications networks, embodied as the communications network1200. The communications network1200may include transmission media and network links which include, for example, wireless, wired, or optical fiber, and routers, firewalls, switches, and gateway computers. The communications network may include connections, such as wire, wireless communication links, or fiber optic cables. A communications network may represent a worldwide collection of networks and gateways, such as the Internet, that use various protocols to communicate with one another, such as Lightweight Directory Access Protocol (LDAP), Transport Control Protocol/Internet Protocol (TCP/IP), Hypertext Transport Protocol (HTTP), Wireless Application Protocol (WAP), etc. A network may also include a number of different types of networks, such as, for example, an intranet, a local area network (LAN), or a wide area network (WAN).

In one example, a computer can use a network which may access a website on the Web (World Wide Web) using the Internet. In an embodiment, the computer system1010, including a mobile device, can use the communications network1200which can include the Internet, or a public switched telephone network (PSTN) for example, a cellular network. The PSTN may include telephone lines, fiber optic cables, microwave transmission links, cellular networks, and communications satellites. The Internet may facilitate numerous searching and texting techniques, for example, using a cell phone or laptop computer to send queries to search engines via text messages (SMS), Multimedia Messaging Service (MMS) (related to SMS), email, or a web browser. The search engine can retrieve search results, that is, links to websites, documents, or other downloadable data that correspond to the query, and similarly, provide the search results to the user via the device as, for example, a web page of search results.

Characteristics are as follows:

Broad network access: capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (for example, mobile phones, laptops, and PDAs).

Service Models are as follows:

Deployment Models are as follows:

Referring now toFIG. 7, illustrative cloud computing environment1250is depicted. As shown, cloud computing environment1250includes one or more cloud computing nodes1210with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone1254A, desktop computer1254B, laptop computer1254C, and/or automobile computer system1254N may communicate. Nodes1210may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment1250to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices1254A-N shown inFIG. 7are intended to be illustrative only and that computing nodes1210and cloud computing environment1250can communicate with any type of computerized device over any type of network and/or network addressable connection (for example, using a web browser).

Hardware and software layer1260includes hardware and software components. Examples of hardware components include: mainframes1261; RISC (Reduced Instruction Set Computer) architecture based servers1262; servers1263; blade servers1264; storage devices1265; and networks and networking components1266. In some embodiments, software components include network application server software1267and database software1268.

Virtualization layer1270provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers1271; virtual storage1272; virtual networks1273, including virtual private networks; virtual applications and operating systems1274; and virtual clients1275.

Workloads layer1290provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include mapping and navigation1291; software development and lifecycle management1292; virtual classroom education delivery1293; data analytics processing1294; transaction processing1295; and assessing conditions and recommending modifications1296.