Multi users presentations_tdc2014_final

1,777 views

Published on

https://dockr.eurogiciel.fr/blogs/embedded/back-from-tdcsf14/

https://www.tizen.org/events/tizen-developer-conference/2014/multiuser-mode-tizen-3

Multiuser mode in Tizen 3
The multiuser mode is a new feature of Tizen 3. Tizen 3 support of multi user is aiming at enabling multiple profile in connected devices. The presentation will focus on the changes induced by enabling multiuser in Tizen 3.
Traditionally, Tizen has always been single-user ; however, real-world use cases advocate for a multi-user model. per-user settings, private or shared applications, shareable contents …
It brings up lots of challenges : how could we dispatch configurations, databases, applications, network communications among a dynamic number of users ? Enhancements target the source code, packaging, and the whole architecture.
Topics:
* multiuser architecture,
* what needs to be changed,
* migration steps,
* roadmap.

Year:
2014
Track:
Platform development
Presenter(s):
Baptiste DURAND, EUROGICIEL
Location:
Continental 5
Scheduled Time:
Wednesday, 4 June 2014 - 10:40am to 11:20am

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

Multi users presentations_tdc2014_final

  1. 1. Tizen 3.0 Multi-User Features Baptiste Durand Software Engineer Eurogiciel <baptiste.durand@open.eurogiciel.org>
  2. 2. 2 Agenda ● Tizen Multi User System and associated requirements ● What has changed ? What are the upcoming updates ? ● Status / RoadMap
  3. 3. Tizen Multi User System
  4. 4. 4 Multi User System
  5. 5. 5 Tizen Multi User System ● Categories of Multi User System – Multi Seat System The system can be used at the same time by several users and they could share the same display. – Single Seat System The system can be used by one user at the given time
  6. 6. 6 Multi User System : Key Requirements ● User Management – Needs user account – Each user has its Environment / data / applications – “Administrator” concept ● Application Management Global AppsUser 1 Apps User 2 Apps
  7. 7. 7 Multi User System : Key Requirements ● Security Management – User can only read its own data and system data – Security must protect the user data, the system data – Security must control resources access per User ● Resource / Service Management – Shared Access – Exclusive Access – Service Concept
  8. 8. 8 Multi Seat System : IVI Needs ● Guest user – Is logged in by default – Starts Default Applications Global AppsUser 1 Apps User 2 Apps Default Apps
  9. 9. 9 Multi Seat System : IVI Needs ● Resources Management – Users can share the same display (e.g. passengers and driver) – Users can also exchange seats (and so displays)
  10. 10. 10 Single Seat System ● Similar to profile system (shared phone TV) ● No specific resource management ● Security Management
  11. 11. What has changed? Upcoming Updates
  12. 12. 12 Multi User Related changes ● Main Challenge – Keep the project consistent during migration process ● Tizen Platform Configuration ● Application Framework ● Resources Services ● Service API ● User Management
  13. 13. 13 Upcoming updates : Tizen Platform Configuration ● Package source code compliance – The source code was not compliant with Multi User architecture ● Hard-coded path ● Hard-coded uids / gids / Username related to user App
  14. 14. 14 Upcoming updates : Tizen Platform Configuration ● Package source code compliance filesystem/filesystem_instance.cc [...] namespace { const unsigned kDefaultFileMode = 0755; const char kDefaultPath[] = "/opt/usr/media"; const char kPathSounds[] = "/opt/usr/media/Sounds"; const char kPathImages[] = "/opt/usr/media/Images"; const char kPathVideos[] = "/opt/usr/media/Videos"; const char kPathDownloads[] = "/opt/usr/media/Downloads"; [...] AddInternalStorage(kLocationMusic, kPathSounds); AddInternalStorage(kLocationImages, kPathImages); AddInternalStorage(kLocationVideos, kPathVideos); AddInternalStorage(kLocationDownloads, kPathDownloads); AddInternalStorage(kLocationDocuments, kPathDocuments); [...] X
  15. 15. 15 Upcoming updates : Tizen Platform Configuration ● Tizen Platform Configuration – Goal : Having a unique package that defines how the environment variables are made – Based around on 1 configuration file (meta file) and 1 wrapper library – Easy to use (as it is bash readable)
  16. 16. 16 Upcoming updates : Tizen Platform Configuration ● Extract of meta file ############# Base dirs ############# # Tizen 3 (single user): #TZ_USER_NAME=app #TZ_USER_HOME=$TZ_SYS_HOME/app #TZ_USER_SHARE=/opt/usr/share #TZ_USER_DATA=/opt/usr/data #TZ_USER_ETC=/opt/usr/etc #TZ_USER_LIVE=/opt/usr/live # Tizen 3 (multi user): TZ_USER_NAME=$USER TZ_USER_HOME=$HOME TZ_USER_SHARE=$TZ_USER_HOME/share TZ_USER_DATA=$TZ_USER_HOME/data TZ_USER_ETC=$TZ_USER_HOME/etc TZ_USER_LIVE=$TZ_USER_HOME/live [...]
  17. 17. 17 Upcoming updates : Tizen Platform Configuration ● Example of usage filesystem/filesystem_instance.cc [...] namespace { const unsigned kDefaultFileMode = 0755; const char kDefaultPath[] = "/opt/usr/media"; const char kPathSounds[] = "/opt/usr/media/Sounds"; const char kPathImages[] = "/opt/usr/media/Images"; const char kPathVideos[] = "/opt/usr/media/Videos"; const char kPathDownloads[] = "/opt/usr/media/Downloads"; [...] AddInternalStorage(kLocationMusic, kPathSounds); AddInternalStorage(kLocationImages, kPathImages); AddInternalStorage(kLocationVideos, kPathVideos); AddInternalStorage(kLocationDownloads, kPathDownloads); AddInternalStorage(kLocationDocuments, kPathDocuments); [...] X
  18. 18. 18 Upcoming updates : Tizen Platform Configuration ● Example of usage filesystem/filesystem_instance.cc [...] namespace { - const unsigned kDefaultFileMode = 0755; - const char kDefaultPath[] = "/opt/usr/media"; - const char kPathSounds[] = "/opt/usr/media/Sounds"; - const char kPathImages[] = "/opt/usr/media/Images"; - const char kPathVideos[] = "/opt/usr/media/Videos"; - const char kPathDownloads[] = "/opt/usr/media/Downloads"; [...] + AddInternalStorage(kLocationMusic, tzplatform_getenv(TZ_USER_SOUNDS)); + AddInternalStorage(kLocationImages, tzplatform_getenv(TZ_USER_IMAGES)); + AddInternalStorage(kLocationVideos, tzplatform_getenv(TZ_USER_VIDEOS)); + AddInternalStorage(kLocationDownloads, tzplatform_getenv(TZ_USER_DOWNLOADS)); + AddInternalStorage(kLocationDocuments, tzplatform_getenv(TZ_USER_DOCUMENTS)); [...] X √
  19. 19. 19 Upcoming updates : Application Framework Tizen 2.x Model
  20. 20. 20 Upcoming updates : Application Framework ● On tizen 2, All apps were launched in a static 'sourced' Environment with the ID App ● 'User' concept needs to be introduced
  21. 21. 21 Upcoming updates : Application Framework Tizen 3.0 Model
  22. 22. 22 Upcoming updates : Application Framework ● Application are launched in the User Environment provided by systemd session. ● Each User can access to : – A set of databases corresponding to System/common Application – Another corresponding to it own databases. – Application Databases look like the Tizen 2.0 ones – Core API should be extended
  23. 23. 23 Upcoming updates : Resources Services ● Resources not related to a Tizen framework should be shared: ● Display (IVI Requirement) ● Audio ● Resources related to a framework should be managed: – Service API Daemon? …
  24. 24. 24 Upcoming updates : Resources Services Weston ● Initial Case – Officially 1 compositor per user session – User cannot switch of display without restarting the weston service ● What's done – 1 compositor for the whole system – Weston daemon is responsible to allocate visual resources to a user – Launched as “display” user (system uid)
  25. 25. 25 Upcoming updates : Service API State PROPOSAL Other investigations are being also tested : ● Containers ● Smack containers launcher
  26. 26. 26 Upcoming updates : Service API ● Framework / CORE API in Tizen2.0 Model in Tizen 2.X
  27. 27. 27 Upcoming updates : Service API Model in Tizen 3
  28. 28. 28 Upcoming updates : Service API ● Framework / CORE API Tizen3.0 ● New services API (SAPI) is introduced as a drop-in replacement for Core APIs ● SAPI will be as close as possible as actual Core APIs ● Calls are sent to the Services Daemon (local RPC) ● The Services Daemon gets the app. credentials: uid, git, smack label and checks if the call is allowed (using Cynara) ● The call is then executed using the actual Core APIs and the result sent back to client. ● Extra features could be implented inside the SAPI Daemon (e.g. dynamic resources management)
  29. 29. 29 Upcoming updates : TLM / GUMD ● Gumd ● Manages users accounts ● DBUS API ● Tizen Login Manager ● Opens user sessions ● Provides : DBUS API ● Support : GUI less / auto login ● Should be adapted to include admin notion
  30. 30. RoadMap and Status
  31. 31. 31 Status and estimated deliveries Status Comments Estimate delivery Tizen Configuration Plaform Fully Integrated since sart of the year Platform Meta should be adopted by Profile X Application Frwk Implemented Some API extension are missing Crosswalk Need to be integrated End of this month Ressources Management In investigation Note : Weston Server Fully integrated Background Work Service API Architexture review Architecture proposal is ready 2014-Q3
  32. 32. 32 Questions? ● Links : https://wiki.tizen.org/wiki/Multi-user_Architecture
  33. 33. Thanks for your attention

×