Disclosed subject matter pertains to mobile devices and, more specifically, notification and delivery of emails to mobile devices from an enterprise mail server.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information.
Because information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. Information handling systems may also include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Particularly when used in conjunction with the World Wide Web and other public and private IP-based networks that support standard HTTP methods, information handling systems may provide resources that interact in accordance with a representational state transfer (REST) model having, as some of its characteristics, a client/server structure in which the set of state transition actions available to a client consists of server-identified hypermedia including, as the most pervasive examples, hyperlinks and corresponding hypertext. Accordingly, when implemented within a REST-compliant network, system, or interface, an information handling system may function as a client, a server, or intermediary, e.g., a proxy, gateway, or firewall that supports hyperlink-based resources.
Significantly, a standard REST-compliant or “RESTful” server cannot initiate a connection with a client nor send an unrequested response to a client. A RESTful server cannot, therefore, push asynchronous events to clients. Timely receipt of asynchronous events by a client requires the client to poll the applicable server periodically for new content. The significance of this fundamental constraint increases with the value or importance of immediacy in the context of a particular client application, especially when the client device is largely controlled by a third party provider. One application in which the pull-only constraint on client devices raises significant implementation issues is the delivery of email updates to mobile devices.
Mobile device users expect timely, near immediate, notification and delivery of email to their mobile devices. However, because email messages are delivered to cloud-based or premises-installed mail servers, the mobile device must obtain email notification and delivery indirectly, by polling the mail server. Typically, however, prior solutions to this problem require a polling application installed on the mobile device that maintains a persistent connection with a mail delivery agent (MDA) and executes frequent polling requests, consuming undesirable power and thereby increasing the frequency with which the mobile device's battery requires recharging. In addition, the polling application, as a client-side application, will not be able to poll the MDA during times when the mobile device loses connectivity or when the mobile device operating system puts an application “to sleep” or otherwise suspends or terminates the application.
In accordance with the teachings of the present disclosure, disadvantages and problems associated with providing timely mail notifications to a mobile device are addressed.
In accordance with method embodiments of subject matter disclosed herein, a method of providing mobile update notifications to a mobile device includes an off-device service, referred to herein as the mail polling service (MPS), that detects a mail notification request from the mobile device and launches a polling thread to perform polling thread operations. In at least one embodiment, the polling thread operations include establishing a network connection with an MDA, e.g., a cloud-based enterprise-class data synchronization resource including, as one non-limiting example, MS Exchange ActiveSync, from Microsoft. The MDA may be configured for communicating with an enterprise mail server (EMS) and executing a long-poll of the MDA on behalf of the mobile device to determine if the EMS has new mail for an email account associated with the mobile device. If the MPS receives a response from the polling thread, the MPS may request, either directly or via a cloud-based utility, a push notification resource to push a mail notification to the mobile device.
To address issues that may result from an accumulation of orphaned or abandoned polling threads, the polling thread may be terminated in accordance with particular criteria when no response to the polling thread has been received. The particular criteria may include an expiration criterion corresponding to a duration of the long-poll exceeding an expiration interval and a timeout criterion corresponding to an interval between the mail notification request and a subsequent mail notification request exceeding a timeout interval. The timeout criterion terminates threads when the applicable mobile device/mail user agent has been silent for a particular duration. The expiration criterion, which may be more relaxed than the timeout criterion in some embodiments, terminates all polling threads without regard to mobile device activity. To prevent the criteria from terminating polling threads too aggressively, a default value of the expiration interval may be set with a range of approximately 18 to 30 hours with 24 hours as a representative value while a default for the timeout interval may be defined explicitly, e.g., 6 hours, or in terms of the expiration interval, e.g., a ratio of the expiration interval to the timeout interval is approximately N where N is the range of approximately 2 to approximately 8 with a ratio of 4 as a representative value.
The resource in which the MPS resides, referred to herein as the mail polling resource, may be an on-premises gateway (OPG) of an enterprise network, where the enterprise network is a private network, isolated from an adjacent public network including, as an example, the Internet, by one or more enterprise firewall(s). In these embodiments, the OPG may provide the MPS via mail polling instructions for launching the polling thread in response to the mail notification request. The mail polling instructions may include instructions for launching the polling thread in response to the mail notification request, subject to determining that no other polling thread associated with the mobile device is currently active.
In accordance with software or computer readable media embodiments of subject matter disclosed herein, a computer readable medium may include processor executable instructions for causing a processor of a mail polling resource to provide a mail polling service by executing processor-executable mail polling instructions corresponding to mail polling operations. The mail polling operations may include detecting a mail update request from a mobile device and launching a polling thread corresponding to the mobile device responsive to determining that no polling thread corresponding to the mobile device exists. The polling thread may, in at least some embodiments, poll an MDA for an indication of new mail in conjunction with a mail account associated with the mobile device. The polling thread may initiate an authenticated push notification request upon receiving or otherwise detecting a response from the polling thread. The push notification request may cause a push notification resource of a third party provider to push an indication of new mail to the mobile device.
In at least one embodiment, the polling thread is configured to perform polling operations that include: establishing a network connection with an MDA coupled to the EMS, providing the MDA with mail credentials corresponding to the mobile account, and performing a long-poll of the MDA for the indication of new email.
Long polling refers to issuing individual polling requests at a frequency that is deliberately low so that each individual polling request remains, in the absence of an unintended interruption or explicit termination of the network connection, open and active for a duration of minutes, hours, or longer. If the recipient of a long poll request, i.e., the polled resource, does not have any information available, the network connection between the resources is maintained rather than terminated as occurs in a conventional polling request. When new information, e.g., an indication of a new mail message, arrives, the polled resource sends, with little or no latency, a response to the polling resource, completing the open HTTP/S request. The quasi-synchronous response that long-polling produces substantially reduces the inherent latency of conventional polling attributable to the interval between the arrival of new data and the start of the next periodic or non-periodic polling request.
The long-poll may persist until the long poll either returns a long poll response to the MPS or until the long poll terminates, in accordance with particular criteria, before the long poll returns a response. In at least one embodiment, the particular criteria include a timeout criterion in accordance with a duration between successive mail notification requests exceeding a timeout interval and an expiration criterion in accordance with a duration of the polling thread exceeding an expiration interval.
In at least some embodiments, the polling operations may include creating a record corresponding to the polling thread in a database, storing values indicative of the timeout interval and the expiration interval in the database record corresponding to the mobile device, and monitoring a duration of the long poll and a duration of an interval since the most recent mail notification request was sent. A default value of the expiration interval may be defined relative to the expiration interval and, in these embodiments, a ratio of the expiration interval to the timeout interval may be in the range of approximately 2 to approximately 8 and may be approximately 4. The default value of the expiration interval, in at least one embodiment, is in the range of approximately 18 to approximately 30 hours and may be approximately 24 hours.
In at least some embodiments, the mail polling resource comprises an on-premises gateway server on an enterprise network that is demarcated by an enterprise firewall such that the mail account credentials may be provided to the mail polling resource without exposing the mail account credentials to a non-enterprise domain. Establishing the network connection with the MDA may include obtaining mail account credentials for the mail account and providing the mail account credentials to the MDA in conjunction with the polling thread.
In at least some embodiments, initiating the push notification request includes requesting a cloud client manager that is configured to communicate an authorized push notification request that includes token information assigned by the third party provider and uniquely associated with the mobile device, to the push notification resource via a REST compliant application programming interface.
In accordance with information handling system embodiments of disclosed subject matter, an information handling system suitable for providing the MPS may include a processor and a memory or other form computer readable medium including processor executable instructions for causing the processor to perform particular mail polling operations including, as a non-limiting example, receiving a mail update request from a mail user agent of a mobile device, launching a polling thread for performing a long poll of an MDA on behalf of the mail user agent, and initiating a push notification request responsive to detecting a response to the polling thread from the MDA, wherein the push notification request may cause a cloud-based push notification resource of a third party provider to push a mail notification to the mobile device.
Technical advantages of the present disclosure may be readily apparent to one skilled in the art from the figures, description and claims included herein. The objects and advantages of the embodiments will be realized and achieved at least by the elements, features, and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are examples and explanatory and are not restrictive of the claims set forth in this disclosure.
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and unless indicated otherwise, all drawings are in accordance with the present invention wherein:
Preferred embodiments and their advantages are best understood by reference to
For the purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a personal data assistant (PDA), a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include memory, one or more processing resources such as a central processing unit (CPU) or hardware or software control logic. Additional components of the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components.
For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape disk drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such as wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
For the purposes of this disclosure, information handling resources may broadly refer to any component system, device or apparatus of an information handling system, including without limitation processors, service processors, basic input/output systems (BIOSs), buses, memories, I/O devices and/or interfaces, storage resources, network interfaces, motherboards, power supplies, air movers (e.g., fans and blowers) and/or any other components and/or elements of an information handling system.
As depicted in
The MDA 110 of
The EMS 120 of
Typically, the polling request that initiates the delivery of new email to a mobile device is issued by an mail user agent (sometimes informally referred to as a mail client or mail client application) of mobile device 101. End user demands may favor or necessitate comparatively frequent, e.g., 2 to 12 updates per hour. The mail user agent, however, like all applications executing on mobile device 101, operates subject to the control of the mobile device operating system, which may and generally does control and limit the extent to which any particular application program, including any mail user agent, can keep an active background process executing. In the case of the mail user agent, as an example, a background process is required to maintain a network connection with MDA 110 resource and to poll MDA 110 from time to time. As suggested, however, the mobile device operating system may terminate any or all processes running, including processes executing in the background, to conserve power or to enforce, support, or facilitate any other operating system policy.
In addition, even if the mobile device operating system permits or supports a persistent background process for mobile device synchronization, the background process would undesirably consume power, requiring more frequent charging of the mobile device's battery. Thus, the direct polling of MDA 110 by mobile device 101 illustrated in
In
The polling resource 130 illustrated in
The long poll of MDA 110 associated with polling thread 123 illustrated in
The polling resource 130 illustrated in
While the configuration illustrated in
MDW 301 may be implemented as an application that supports a separate and secure workspace for business or professional use and enables the user to access enterprise data and applications securely, without exposing the enterprise's confidential information to a non-secure environment. MDW 301 addresses the pervasive use of mobile device 101 may for both business purposes and personal purposes and the increasing importance of functionality enabling an enterprise to enforce mobile device policies selectively and to control or erase mobile device applications and data selectively. Although
The enterprise mobility management resource 350 includes one or more mobile configuration and management features. The enterprise mobility management resource 350 may support over-the-air distribution of applications, data, and configuration settings for both enterprise-owned and user-owned mobile devices 101.
The platform 300 illustrated in
The MPS 330 illustrated in
Although the MPS 330 of
The platform 300 of
Upon receiving an email notification 170 pushed from push notification resource 140, MDW 301 may then “ping” MDA 110 directly, in a manner analogous to the direct polling of MDA 110 by mobile device 101 illustrated in and described with respect to
In this manner, the platform 300 of
The polling threads launched by MPS 330 include long poll requests to MDA 110 that convey credentials for the applicable mail account. A polling thread may persist until either new mail arrives or the thread is terminated in accordance with a policy criterion, e.g., a polling thread age criterion to detect and terminate orphaned polling threads.
As depicted in
The email notification request 402 illustrated in
MPS 330 may create (operation 412) an entry in a polling thread database 331 when polling thread 406 is launched to record data from which MPS 330 can determine one or more parameters pertaining to the length of time polling thread 406 has been executing relative to one or more events. In at least one embodiment, MPS 330 monitors at least two parameters, either of which may necessitate or trigger termination of the applicable polling thread 406. The two polling thread parameters monitored by the MPS 330 of
The expiration parameter indicates the age of a polling thread 406, i.e., the difference between the current time/date and the time/date when the polling thread was launched. The expiration parameter may be effective for terminating polling thread 406 where the MDW 301 is receiving extremely little email traffic or where MDA 110 is non-responsive. If the expiration parameter achieves a threshold value, MPS 330 may terminate the polling thread 406. Although the threshold value is an implementation detail, a default value of the expiration threshold may be somewhere in the range of approximately 16 to approximately 30 hours, with 24 hours as a representative default.
The timeout parameter indicates the length of time since the MDW 301 last sent a mail notification request 402. The timeout parameter may be effective in terminating polling threads when the applicable MDW 301 has been inactive for an extended interval. If the timeout parameter achieves its threshold value, MPS 330 may terminate the polling thread 406. Again, while the threshold value is an implementation detail, a default value for the timeout threshold may be in the range of approximately 4 to 8 hours, with 6 hours as a representative default, loosely coinciding, in some embodiments, with the amount of sleep the applicable mobile device might expect on average. In some embodiments, at least one the two parameter may be specified relative to the other of the two parameters. For example, a timeout parameter may be indicated explicitly and the expiration parameter may be specified by indicating an expiration/timeout ratio. In these embodiments, a default value of the ratio may be anywhere in the range of 2 to 6 with 4 serving as a possible default ratio.
MPS 330 may record timestamps or other information indicative of the applicable parameters. Referring to
In the sequence 400 illustrated in
If the network connection associated with a polling thread 406 is disrupted during an active interval, MPS 330 may re-establish the polling thread 406. In this manner, a MDW 301 can achieve substantially uninterrupted data currency with a small commitment of processing resources. In the example embodiments referred to above, substantially uninterrupted mail notification currency can be achieved by sending as few as 4 mail notification requests a day.
MDW 301 may also be able to cancel an active polling thread 406 by sending a “cancel poll” request (not depicted in
If a new email for the applicable email address/account associated with MDW 301 is received by EMS 120 during the pendency of a long pole request 410, EMS 120 notifies (operation 414) MDA 110 and MDA returns a response 416 to MPS 330. Upon receiving response 416 to the long poll request 410, MPS 330 may initiate an authorized push notification request to push notification resource 140 on behalf of MDW 301.
Upon receiving and verifying authenticated message 418, utility resource 340 provides an API-compliant push notification request 420, including any required push notification credentials, to push notification resource 140, which, upon verifying the credentials provided with the request 420, pushes mail notification 170 to the MDW 301.
If MDW 301 is asleep or otherwise operating in a reduced power consumption state, the push notification 170 may cause MDW 301 to transition to an operational state sufficient to announce or otherwise inform the user of MDW 301 that EMS 120 has received new mail. MDW 301 may then initiate a direct poll 424 of MDA 110 in a manner analogous to the direct polling described with respect to
By providing an enterprise-controlled resource specifically tasked with polling MDA 110 on behalf of a population of mobile devices and enabling mobile devices to delegate the MDA polling to the polling resource, the illustrated platform enables the enterprise to realize nearly immediate and nearly continuous notification of new mail for its mobile device users without significantly impacting mobile device functionality or battery life.
The information handling system 500 of
Memory 605 may be a implemented with SDRAM or another type of volatile storage. Flash storage 606 may include NOR flash, NAND flash, or both. Audio/voice module 615 includes an audio coder/decoder (CODEC), digital-to-analog and analog-to-digital converters, one or more amplifiers, a microphone interface for coupling to a microphone (not depicted), and a speaker interface for coupling to one or more speakers (not depicted). Digital camera 617 may include a CCD or CMOS image capture array. Sensor(s) 620 may include accelerometers or gyroscopes, force sensors, environmental sensors including temperature and humidity sensors, light/optical sensors, and so forth. The USB controller 625 may be a USB on-the-go (OTG) controller that enables information handling system 600 to act as either a USB host or client depending upon the context.
Informational handling system 600 is powered by a lithium ion or other type of rechargeable battery 630 in combination with a power management unit 631 that includes a battery charger, various DC-to-DC converters, and power management logic/firmware supporting one or more reduced power states.
The application processor 601 illustrated in
Processor executable instructions 611, when executed by processor(s) 601 may cause processor(s) 601, to perform various operations. As an example, instructions 611 may include mobile device workspace instructions enabling information handling system 600 to implement the MDW 301 of the mobile device 101 illustrated in
As used herein, when two or more elements are referred to as “coupled” to one another, such term indicates that such two or more elements are in electronic communication or mechanical communication, as applicable, whether connected indirectly or directly, with or without intervening elements.
This disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Similarly, where appropriate, the appended claims encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Moreover, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, or component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.
All examples and conditional language recited herein are intended for pedagogical objects to aid the reader in understanding the disclosure and the concepts contributed by the inventor to furthering the art, and are construed as being without limitation to such specifically recited examples and conditions. Although embodiments of the present disclosure have been described in detail, it should be understood that various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the disclosure.