Enabling ISCT in your Ultrabook App

Introduction

Intel Smart Connect Technology (iSCT) brings the Always ON and Always Connected (AOAC) feature in Ultrabooks. It is an amazing feature which can enable network based applications like email and social networking applications to send or maintain up to date information, even when the platform is in standby.

The way this is achieved is by an ISCT Sleep Agent which moves the Ultrabook periodically from Standby state (S3 ISCT) to Unattended Active (S0 ISCT) state where the network connection is established and the app can retrieve or send network information like email, tweets, or updates.

Feature 1 : Reminders using iSCT in MoneyBag

MoneyBag has an intelligent reminder feature which provides reminders for payments and bills in the app itself as well as in email and SMS.

These reminders are sometimes critical like Insurance Premiums and Credit Card payments and hence it is mandatory to notify the user irrespective of the state of the system. This is where we use iSCT integration to send reminders via email and SMS even if the system is in sleep mode (lid is closed).

Moneybag – iSCT Integration Flow for Reminders

1. Moneybag app will implement a network status change event listener which is notified by the operating system when ever network changes happen.

2. When the Ultrabook goes to sleep mode the network will not be available and hence the app will be notified of the change and would not try to send reminder notifications.

3. After a sleep period the ISCT timer will move the Ultrabook from Standby (S3 ISCT) state to Unattended Active state (S0 ISCT) state.

4. In the Unattended Active state (S0 ISCT) the network will be available and it will be notified to the Moneybag app via the event listener configured in the app.

5. Then Moneybag app will try to double check the network connectivity from the app by verifying the availability of the service provider for email or SMS.

6. Once the network connectivity status has been successfully verified, Moneybag app will connect to the service to send notifications.

7. When the user opens the Ultrabook to move to the User Present (S0 state) the latest reminders would have already been created, sent to email and SMS and will be available for the user in the app as well.

Feature 2 : Cloud Sync using iSCT in MoneyBag

MoneyBag app has a seamless Cloud Sync mechanism using which data can be accessed from multiple systems. For example a family can use the same database from multiple systems to track the total expenses. In the same way an individual user can also work on Moneybag from multiple systems like a home machine and an office machine.

In this scenario if a user updates transactions in the app from his home machine, then the data will be synced to cloud. Now if his office machine is an Ultrabook, it would be able to get the latest data from the cloud even if it is in sleep state and present the updated and refreshed transaction list to the users.

So the user can see the latest transactions which he entered or a family member entered immediately after he opens his Ultrabook. Awesome, isn’t it.

Moneybag – iSCT Integration Flow for Cloud Sync

1. Moneybag app will implement a network status change event listener which is notified by the operating system when ever network changes happen.

2. When the Ultrabook goes to sleep mode the network will not be available and hence the app will be notified of the change and would not try to get the latest sync data.

3. After a sleep period the ISCT timer will move the Ultrabook from Standby (S3 ISCT) state to Unattended Active state (S0 ISCT) state.

4. In the Unattended Active state (S0 ISCT) the network will be available and it will be notified to the Moneybag app via the event listener configured in the app.

5. Then Moneybag app will try to double check the network connectivity from the app by verifying the availability of the cloud service.

6. Once the network connectivity status has been successfully verified, Moneybag app will connect to the service to receive the latest data from cloud.

7. When the user opens the Ultrabook to move to the User Present (S0 state) the latest transactions from the cloud would have already been downloaded and will be available for the user.

Summary:

1. Please note that there will not be any user interaction in the Unattended Active state (S0 iSCT) and the app has to be designed to do all the network related processing (Sync, Download) without expecting any user interactions.

2. Notify the user when the system moves to Active state about the changes and the data received or sent.

3. During the Unattended Active state (S0 iSCT) state if any notifications are received, try to batch them and present them together when the user opens the Ultrabook rather than showing a number of pop ups for each notification.

4. Minimize or eliminate all UI related processing in the Unattended Active state (S0 iSCT) state and focus on download or sending of content alone. UI refresh can happen when the system moves to Active state.

5. We can use the network status or system status change notifications in the Windows 8 OS or directly use those event listeners in your preferred language if they are available. Most languages encapsulate the native calls and provide simple API calls to leverage underlying operating system features.

Sample Code

The following code detects system status events or network status and takes appropriate to send out reminders or download data from cloud..

NetworkInfo.networkInfo.addEventListener(Event.NETWORK_CHANGE, onNetworkChange);


public function activate(event:Event) {

// App has been activated. Check the event and take corresponding action.

// If network is available enable all connections and connect to the services

// to send notifications and to sync with cloud.

// Goes to normal state once done. Can be repeated multiple times inside the

// unattended active state.

}

public function onNetworkChange(event:Event) {.

// Network status has been changed. Check the event and take corresponding action.

// If network is available enable all connections and connect to the services.

// to send notifications and to sync with cloud.

// Goes to normal state once done. Can be repeated multiple times inside the.

// unattended active state..

}

Authors

George And Suresh

www.theblueinnovations.com

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