Developing for Intel® Smart Connect Technology (ISCT)

Intel® Smart Connect Technology (ISCT) brings Always On Always Connected (AOAC) capabilities to Intel® Architecture based Ultrabooks and laptop platforms. This technology provides a mechanism for network based applications such as email and social networking applications to maintain up to date information, even when the platform is in standby.

This helps to keep a user’s email, favorite apps, and social networks continually and automatically updated even when the system is asleep, like lid is closed and user is traveling and yet waiting to be up to date when lid is opened, computer is fully ready for more productive work.

All these are end-user benefits, where under the hood, applications have yet to incorporate some changes with idea to be aware about such hardware and power states changes and to serve one goal: present updates and results in a proper way to user.

As by definition - these improvements are clearly more of OS layers and interaction but what API do we have as an application developer yet to use and understand?

Well, first of all - power state changes are happening due to end user actions or simple timing, like when ultrabook will go to sleep, when it will wake up and so on. Clearly, these actions already are coupled with different S0 - Sx power states.

Just note that application has to be aware about change accordingly and do appropriate steps for working together with such model and not to break it for some reason.

Obviously, it would be nice to consider at least the following:

  • During such "wake up while sleeping", called Unattended ISCT, there shouldn't be considered any user interface/UI interaction for asking such things like user login, password and more - try to keep it stored in advance

  • Try to wait for updating application's UI until user will see the view and therefore, keep Unattended ISCT timing short enough, like for download time only

  • Try to download data in reasonably small chunk or even try to split it into several chunks

  • And finally, please feel free to inform end user that these is a new content/updates available upon coming back to normal operational mode, S0 state

Now about how to detect and when:

  • Best advice possible is to work together with ISCT and not against it - do not consider usage of own and regular timers to wake up and do some actions.

    Clearly, your knowledge of the own application is worth to consider as the best, however, just keep in mind that your application is also a part of full software ecosystem running on the ultrabook.

  • Instead, include the logic that will co-work with OS and rely on notification scheme provided and its API, like NotifyAddrChange

  • When you need to know if you are at Unattended ISCT mode, have a look on already existing and available API like Power Management Events together with IsSystemResumeAutomatic function

For sure, it is possible to extend this scheme and rules with more sophisticated logic,
Let us start from here and share your observations!

For more complete information about compiler optimizations, see our Optimization Notice.