W3C

[DRAFT] System Applications Working Group Charter

The mission of the System Applications Working Group is to define an runtime environment, security model, and associated APIs for building Web applications that integrate with a host operating system. While this runtime will have substantial overlap with the traditional browser-based runtime environment, it will have some important differences, being focused on Web applications that integrate more strongly with the host platform rather than traditional hosted web sites.

This working group differs from both the Web Applications Working Group and the Device APIs Working Group in that those working groups are focused on defining APIs that are safe to run in a browser environment. The work of these groups is complementary to the work of this group, but this working group will focus on functionality that is not necessarily appropriate for the "browse-by" web.

Join the System Applications Working Group.

End date @@@TBD: 2 years after ratification
Confidentiality Proceedings are Public
Chairs @@@TBD
Team Contact
(FTE %: 20)
@@@TBD
Usual Meeting Schedule Teleconferences: none (only as needed)
Face-to-face: 2-3 per year (only as needed)

Goals

The System Applications Working Group aims to produce a runtime environment and a set of APIs that let applications integrate closely with the operating system's functionality using nothing but the Web platform. Creating the ability to produce applications relying solely on the web platform extends the reach of the Web to new places and opens the door to greater cooperation between the Web and the operating system.

Scope

The scope of the System Applications Working Group covers the technologies related to developing Web application that integrate closely with a host operating system, including a runtime environment (with both an execution model and a security model) as well as markup vocabularies and application programming interfaces for describing and controlling the applications interaction with the host operating system.

The working group will focus on those operating system interactions that cannot necessarily be exposed safely to Web applications executing in the traditional browser security model. The working group will consider a broad category of host operating systems, including those running on desktop computers, laptop computers, mobile Internet devices (MIDs), cellular phones, TVs, cameras, and other connected devices.

Priority will be given to developing simple and consensual APIs, leaving more complex features to future versions. The group should adopt, refine and when needed, extend, existing practices where possible. The Working Group should also take into account the fact that some deliverables will most likely be tied to widely deployed platforms.

The Working Group is expected to deliver APIs optimised for use with Javascript. If relevant, the group may consider producing additional bindings for other languages in cooperation with the organisations responsible for them.

This Working Group’s deliverables must address issues of accessibility, internationalization, mobility, security and privacy.

Additionally, comprehensive test suites will be developed for each specification to ensure interoperability, and the group will create interoperability reports. The group will also maintain errata as required for the continued relevance and usefulness of the specifications it produces.

Success Criteria

To advance to Proposed Recommendation, each specification is expected to have two independent implementations of all features defined in the specification, including implementation on a constrained device (e.g. mobile phone, TV, camera).

Deliverables

Recommendation-Track Deliverables

The working group will deliver the specifications listed below. In a number of cases, pointers have been provided to existing documents that address requirements similar to those of given deliverables. These are provided solely as aids to the reviewing process and should not presume that the cited documents will be submitted to W3C or that the deliverable developed by the group will take one of these for its starting point. In some cases, links are not provided. This should not be taken to entail that there is no prior work on this item, but simply that it may not be available in a form suitable for linking (in some of those cases further information can be obtained through the B2G WebAPI document).

Security Model for Platform Applications
A description of the security model for platform applications, particularly how the security model differs from the traditional browser-based security model.
Execution Model for Platform Applications
A description of the execution model for platform applications, particularly how the execution model differs from the traditional browser-based execution model.
System Services
  • Alarm API. An API to manage the system's alarm daemon. Example: Tizen Alarm.
  • Application API. An API to launch other applications and communicate with them. Example: Tizen Application
  • Calendar API. An API that enables complete management of the device's calendars. Examples: B2G Calendar, Tizen Calendar.
  • Contacts API. An API that enables complete management of the device's address books. Examples: Tizen Contacts, B2G Contacts
  • File System API. An API that bridges the existing “File: Directories & System” API to the actual file systems known to the device. Examples: Tizen FileSystem, B2G Device Storage.
  • Messaging API. An API to send and receive messages (e.g. SMS, MMS, Email, IM) as well as manage messages stored on the device. Examples: Tizen Messaging, B2G Web SMS.
  • Device Capabilities API. An API the discover the capabilities available to the device. Example: Tizen System Info
  • Raw Sockets API. An API to manipulate low-level connections (e.g. TCP, UDP), including the ability to listen for incoming connections. Example: Chrome Sockets
  • DNS Resolution API. An API for resolving DNS names.
  • System Settings API. An API to manage the system's settings (including notably time/clock settings). Example: B2G Settings.
  • Accounts API. An API to use existing, configured accounts and services, and for creating accounts of existing types.
  • Media Storage API. An API to manage the device's storage of specific content types (e.g. pictures). Example: Tizen Media Content.
  • Browser API. An API that provides all the necessary items to build a Web browser. Most notably, this provides all that is needed in order to safely instantiate a viewport onto the open Web, pretend that such a viewport is the top level window even if the browser's chrome is itself written using Web technology, etc. Example: B2G BrowserAPI
  • Web Intent Registration API. An API that makes it possible for Web Intent services to register themselves out-of-band (i.e without visiting a page declaring the Intent) with the browser and system.
  • Keyboard/IME API. An API to support implementing virtual keyboards. Example: Chrome IME
  • Idle API. An API to be notified when the user is idle. Example: B2G Idle
  • Spellcheck API. An API to perform spell checking, including dictionary and suggestions access.
  • Background Services API. An API that enables a Web application to run in the background as a daemon. Example: B2G Background Services.
Hardware Capabilities
  • Bluetooth API. A low-level API to interact with the Bluetooth hardware available on some devices. Examples: Tizen Bluetooth, B2G Web Bluetooth.
  • Telephony API. An API to interact with the phone system, for instance to dial a number, pick up a call, route to voicemail, access the call log, etc. Examples: B2G Web Telephony, Tizen Call.
  • Sensors API. A low-level API to provide access to the device's sensors. Prior work from the Device APIs WG that was put on hold there will be transitioned to this group.
  • Resource Lock API. Prevent resources from being turned off (e.g. screen dimming, internet connection, CPU or GPU going to sleep mode). Example: B2G Resource Lock.
  • Network Interface API. An API to manipulate the network interfaces (mobile, WiFi, etc.), such as listing available networks, current strength, etc. as well as configuring and enabling them. (It may build atop the simpler network information API that Device APIs is working on.) Examples: B2G Mobile Connection, B2G WiFi Information.
  • USB API. An API to interact with USB and USB storage devices. Example: B2G Web USB.
  • Power Management API. An API to manage the power consumption of the device, for instance by turning the screen on or off, putting the CPU in sleep mode, etc. Example: B2G Power Management
  • Contentious: NFC API. Before there is sufficient consensus on this item, please discuss it only on the public-nfc mailing list. Examples: B2G Web NFC, Tizen NFC.
  • Secure Elements API. An API enabling the discovery, introspection, and interaction with hardware tokens (Secure Elements) that offer secure services such as tamper-proof storage, cryptographic operations, etc.

Note that where applicable, the group is free to split the above deliverables into several smaller specifications that collectively address the same space, or conversely to join some of the above into a single specification.

Where practical, the API specifications should use the Web IDL formalism.

Each specification must contain a section detailing any known security and privacy implications for implementors, authors, and end users. The Working Group will actively seek security and privacy review on all its specifications.

The Working Group may also enter into joint Task Forces with other groups (in particular with the Web Applications and Device APIs Working Groups), to collaborate on the deliverables above if specifications cross group boundaries.

Other Deliverables

A comprehensive test suite for all features of a specification is necessary to ensure the specification’s robustness, consistency, and implementability, and to promote interoperability between User Agents. Therefore, each specification must have a companion test suite, which should be completed by the end of the Last Call phase, and must be completed, with an implementation report, before transition from Candidate Recommendation to Proposed Recommendation. Additional tests may be added to the test suite at any stage of the Recommendation track, and the maintenance of a implementation report is encouraged.

The Working Group may also document in a Working Group Note the useful design patterns shared by the APIs it is developing.

Other non-normative documents may be created such as:

  • Primers for each specification
  • Requirements and use case document for specifications
  • Schemas for languages developed by the group (if any)
  • Non-normative group notes

Given sufficient resources, this Working Group should review other working groups’ deliverables that are identified as being relevant to the Working Group’s mission.

Milestones

The Working Group will maintain an updated timeline of its deliverables on its home page.

The group will begin by reaching consensus and producing a rough FPWD draft of the Security Model and Execution Model documents inside of its first quarter. While the other deliverables should by no means wait for these two documents to be final and polished before proceeding, given that the design of the APIs will depend on the environment to which they are tailored it will be necessary to have a “checklist” consensus on the primary aspects of this environment that these two documents define.

Most of the API deliverables in this charter already benefit from at least one and often several existing implementations. As such, once the preceding step is executed it is expected that the production of specifications building on strong implementation experience and existing documentation can proceed at the pace of five FPWDs per quarter (until Q2 of the second year). Each of these specifications is then expected to reach CR inside of three quarters, with transition to Recommendation status supported by the adaptation of tests from existing platforms to these specifications.

Dependencies

W3C Groups

This Working Group’s specifications depend upon some specifications being developed by other Working Groups for example the Web Applications Working Group’s Web IDL specification and several of the Device APIs Working Group's specifications.

This Working Group is not aware of any dependencies other Working Groups’ specifications have on this Working Group’s specifications.

Liaisons

This Working Group expects to maintain contacts with at least the following groups and Activities within W3C (in alphabetical order):

Device APIs Working Group
The Device APIs Group is chartered to develop APIs that are closely related to several of those in this group's deliverables, but that function inside the browser security model. Such APIs should be closely coordinated as they are likely to feature common aspects.
HTML Working Group
The HTML Working Group’s deliverables cover the security model implemented in Web Browsers; this security model imposes limitations on what an extended model for Web Applications can achieve.
Web Accessibility Initiative Protocols and Formats Working Group
To ensure this Working Group’s deliverables support accessibility requirements, particularly with regard to interoperability with assistive technologies, and inclusion in deliverables of guidance for implementing the group’s deliverables in ways that support accessibility requirements.
Web Applications Working Group
This group defines relevant specifications including Web IDL, and File API.
Web Application Security Working Group
Since the Web security model is a core concern here, interactions with this group are strongly encouraged.

External Groups

The following is a tentative list of external bodies the Working Group should collaborate with:

Ecma International Technical Committee 39 (TC39)
This is the group responsible for EcmaScript standardization, and related EcmaScript features like E4X. As this Working Group is developing EcmaScript APIs, it should collaborate with TC39.

Participation

To be successful, this Working Group is expected to have 10 or more active participants for its duration, and to have the participation of the industry leaders in fields relevant to the specifications it produces.

The Chairs and specification Editors are expected to contribute one to two days per week towards the Working Group. There is no minimum requirement for other participants.

For each specification the Working Group will name a Test Facilitator whose responsibility is to ensure that a Test Suite is made available.

Based on the input from the group participants, the Chairs may also decide to create task forces that allow more focused discussions for topics that require specific expertise.

This Working Group welcomes participation from non-Members. The group encourages questions and comments on its public mailing list, public-system-apps@w3.org, which is publicly archived and for which there is no formal requirement for participation. The group also welcomes non-Members to contribute technical submissions for consideration, with the agreement from each participant to Royalty-Free licensing of those submissions under the W3C Patent Policy.

Communication

Most of the technical work of the group is done through discussions on the public-system-apps@w3.org, the group’s public mailing list. Editors’ drafts and their editing history is available from a public W3C Web site. The group’s action and issue tracking data is also public, as are the participants-approved minutes from all teleconferences and meetings.

In general the Working Group does not hold teleconferences, but a teleconference can be scheduled occasionally at the chairs' discretion if a specific topic seems to warrant synchronous discussion.

The group uses a Member-confidential mailing list for administrative purposes and, at the discretion of the Chairs and participants of the group, for Member-only discussions in special cases when a particular participant requests such a discussion.

Information about the group (for example, details about deliverables, issues, actions, status, participants) is available from the System Applications Working Group home page.

Decision Policy

As explained in the W3C Process Document (section 3.3), this group will seek to make decisions when there is consensus and with due process. The expectation is that typically, an editor or other participant makes an initial proposal, which is then refined in discussion with members of the group and other reviewers, and consensus emerges with little formal voting being required. However, if a decision is necessary for timely progress, but consensus is not achieved after careful consideration of the range of views presented, the Chairs should put a question out for voting within the group (allowing for remote asynchronous participation—using, for example, email and/or web-based survey techniques) and record a decision, along with any objections. The matter should then be considered resolved unless and until new information becomes available.

Asynchronous decisions that are attained through the mailing list, possibly using a “Call for Consensus” process are preferred, but synchronous decisions made during a teleconference or a face-to-face meeting are valid provided that the topic they address was clearly outlined in a public agenda posted one week earlier so that non-participating parties have a chance to voice their views ahead of time.

This charter is written in accordance with Section 3.4, Votes of the W3C Process Document and includes no voting procedures beyond what the Process Document requires.

Patent Policy

This Working Group operates under the W3C Patent Policy (5 February 2004 Version). To promote the widest adoption of Web standards, W3C seeks to issue Recommendations that can be implemented, according to this policy, on a Royalty-Free basis.

For more information about disclosure obligations for this group, please see the W3C Patent Policy Implementation.

About this Charter

This charter for this Working Group has been created according to section 6.2 of the Process Document. In the event of a conflict between this document or the provisions of any charter and the W3C Process, the W3C Process shall take precedence.


Editors: Adam Barth and Robin Berjon.