Jump to: navigation, search

Difference between revisions of "Maya Architecture"

m (Server-side extensibility)
(Server-side extensibility)
Line 21: Line 21:
 
The following areas are places for extensibility planned or in place in Maya.  Where appropriate an extension point has been flagged as either planned (planned) or part of the Cisco contribution (existing).  The expectation is that through discussions with the Eclipse community, we further refine additional areas of extensibility needed to support richer offerings on top of the Maya platform.
 
The following areas are places for extensibility planned or in place in Maya.  Where appropriate an extension point has been flagged as either planned (planned) or part of the Cisco contribution (existing).  The expectation is that through discussions with the Eclipse community, we further refine additional areas of extensibility needed to support richer offerings on top of the Maya platform.
  
=== Server-side extensibility ===
+
=== Server-Side Extensibility ===
  
 
The majority of the extensibility in Maya is focused on the server as the server's role is to perform the majority of the rule processing and dependency validation as needed on behalf of the client.  Maya has been architected to keep client-side complexity to a minimum allowing for reliable updates to flows without having potential service-impacting complications on the client.
 
The majority of the extensibility in Maya is focused on the server as the server's role is to perform the majority of the rule processing and dependency validation as needed on behalf of the client.  Maya has been architected to keep client-side complexity to a minimum allowing for reliable updates to flows without having potential service-impacting complications on the client.
  
 
* '''Software Filtering and Visibility Extension Point''' (planned)
 
* '''Software Filtering and Visibility Extension Point''' (planned)
*: Provides extensibility to restrict which software is available to a particular user.  Potential usages include:
+
** Extensibility to restrict which software is available to a particular user.  Potential usages include:
 
** Filter software based on authenticated user.
 
** Filter software based on authenticated user.
 
** Filter software based on client operating system or resources (ex. memory).
 
** Filter software based on client operating system or resources (ex. memory).
Line 34: Line 34:
  
 
* '''Authentication System Extension Point''' (exists)
 
* '''Authentication System Extension Point''' (exists)
*: Provides extensibility to hook Maya into external authentication systems.  Potential usages include:
+
** Extensibility to hook Maya into external authentication systems.  Potential usages include:
 
** Authenticate user based on enterprise or organizational user registry.
 
** Authenticate user based on enterprise or organizational user registry.
 
** Authenticate user into a single-signon session for cross-server credentials.
 
** Authenticate user into a single-signon session for cross-server credentials.
  
* '''Group Membership Extension Point"' (exists)
+
* '''Group Membership Extension Point''' (exists)
*: Provides extensibility to hook Maya into existing group membership systems.  Potential usages include:
+
** Extensibility to hook Maya into existing group membership systems.  Potential usages include:
 
** Provide access to software or profiles based on group membership.
 
** Provide access to software or profiles based on group membership.
 
** Provide default or system level contraints based on group membership.
 
** Provide default or system level contraints based on group membership.
  
 
* '''Statistics Tracking Extension Point''' (planned)
 
* '''Statistics Tracking Extension Point''' (planned)
*: Provides extensibility to track usage statistics for Maya-based provisioning.  Potential usages include:
+
** Extensibility to track usage statistics for Maya-based provisioning.  Potential usages include:
 
** Track usage of particular software components in an organization.
 
** Track usage of particular software components in an organization.
 
** Track trending of components typically used together.
 
** Track trending of components typically used together.
Line 50: Line 50:
  
 
* '''Profile Instantiation Post Processing Extension Point''' (planned)
 
* '''Profile Instantiation Post Processing Extension Point''' (planned)
*: Provides extensibility to augment the response to the client when preparing to launch a profile.  The extension point will be tied in after the standard software provisioning instructions have been added.  Potential usages include:
+
** Extensibility to augment the response to the client when preparing to launch a profile.  The extension point will be tied in after the standard software provisioning instructions have been added.  Potential usages include:
 
** Augment instruction set to client to install additional software outside of Maya's direct scope.
 
** Augment instruction set to client to install additional software outside of Maya's direct scope.
 
** Augment instruction set to configure other environment settings including workspace configuration.
 
** Augment instruction set to configure other environment settings including workspace configuration.
  
 +
* "Data Model Extension Point''' (exists)
 +
** Extensibility to augment the attributes returned on existing objects as well as to register additional objects to be exposed via Maya's data model services.  Potential usages include:
 +
** Augment data objects to use additional attributes as part of provisioning including exposing to client for administration.
 +
** Augment object schema to allow storage of additional data entities to be distributed by Maya but not directly supported.
  
 +
* '''Web Service Actions Extension Point''' (exists)
 +
** Builds on the Equinox HTTP server extension points to allow easier abstraction of web services in an efficient fashioned to be leveraged as part of Maya's provisioning workflow.  The Maya Launcher component expects to see web services following a simple convention exposed by this extension model.  Potential usages include:
 +
** Exposure of custom backing services for particular advanced services to be exposed to the client.
 +
** Exposure of additional functions for administrating an extended provisioning system built on top of Maya.
  
- Extensibility in the data model to allow additional information to be stored on profiles as part of custom profile instructions or to be hooked into software or other data abstractions. (exists)
+
* '''Launcher Flow Configurability''' (exists)
 +
** Allows XML configuration of the workflow presented to the Maya Launcher including customizing the wizard of questions that allows a profile to be dynamically built by the user.  Potential usages include:
 +
** Configuring the list of questions to be tailored to a particular user group for Maya.
 +
** Configuring the software to be associated with given wizard responses.
  
- Extensibility in the web services exposed to allow registration of other services to be tied into Maya.  We use this to integrate other services for tools built to deploy over Maya. (exists)
+
* '''Download Mirror Overrides''' (partial)
 
+
** Allows the download mirrors to be used for given update sites to be overriddenPotential usages include:
- Extensibility in the data model types exposed via Maya web services. This allows other data objects to be exposed through Maya's web services and made available on the remote clients. (exists)
+
** Override the download mirrors to pick up enterprise-internal mirrors in place of public mirrors for optimal download speeds.
 
+
** Override the mirrors list to remove known-problematic download mirrors (probably not ideal).
- Extensibility to control the client-side launcher flow including choosing to require authentication or to let the user choose which profile to launch. (exists)
+
 
+
- Extensibility to override mirrors used for a given update siteWe use this to set the mirrors to internal corporate mirrors for popular update sites avoiding off-network downloads. (exists)
+
  
 
=== Client-Side Extensibility ===
 
=== Client-Side Extensibility ===

Revision as of 16:58, 3 April 2007

The following page is a working document to explain the architecture of the Maya code contribution. The intention is to use this as a starting point for discussions including as a guide for the conference call scheduled on April 5th.

Architecture Diagrams

Architecture View 1

File:MayaArchitecture1.png

Architecture View 2

MayaArchitecture2.png

End-User Experience

Deployment Scenarios

Extension Points in Maya

The following areas are places for extensibility planned or in place in Maya. Where appropriate an extension point has been flagged as either planned (planned) or part of the Cisco contribution (existing). The expectation is that through discussions with the Eclipse community, we further refine additional areas of extensibility needed to support richer offerings on top of the Maya platform.

Server-Side Extensibility

The majority of the extensibility in Maya is focused on the server as the server's role is to perform the majority of the rule processing and dependency validation as needed on behalf of the client. Maya has been architected to keep client-side complexity to a minimum allowing for reliable updates to flows without having potential service-impacting complications on the client.

  • Software Filtering and Visibility Extension Point (planned)
    • Extensibility to restrict which software is available to a particular user. Potential usages include:
    • Filter software based on authenticated user.
    • Filter software based on client operating system or resources (ex. memory).
    • Filter software based on associated user groups and memberships.
    • Filter software based on licensing restrictions.
    • Filter software based on stability of code (release, stable, integration, nightly).
  • Authentication System Extension Point (exists)
    • Extensibility to hook Maya into external authentication systems. Potential usages include:
    • Authenticate user based on enterprise or organizational user registry.
    • Authenticate user into a single-signon session for cross-server credentials.
  • Group Membership Extension Point (exists)
    • Extensibility to hook Maya into existing group membership systems. Potential usages include:
    • Provide access to software or profiles based on group membership.
    • Provide default or system level contraints based on group membership.
  • Statistics Tracking Extension Point (planned)
    • Extensibility to track usage statistics for Maya-based provisioning. Potential usages include:
    • Track usage of particular software components in an organization.
    • Track trending of components typically used together.
    • Track frequency of use of particular engineers (if privacy restrictions allow).
  • Profile Instantiation Post Processing Extension Point (planned)
    • Extensibility to augment the response to the client when preparing to launch a profile. The extension point will be tied in after the standard software provisioning instructions have been added. Potential usages include:
    • Augment instruction set to client to install additional software outside of Maya's direct scope.
    • Augment instruction set to configure other environment settings including workspace configuration.
  • "Data Model Extension Point (exists)
    • Extensibility to augment the attributes returned on existing objects as well as to register additional objects to be exposed via Maya's data model services. Potential usages include:
    • Augment data objects to use additional attributes as part of provisioning including exposing to client for administration.
    • Augment object schema to allow storage of additional data entities to be distributed by Maya but not directly supported.
  • Web Service Actions Extension Point (exists)
    • Builds on the Equinox HTTP server extension points to allow easier abstraction of web services in an efficient fashioned to be leveraged as part of Maya's provisioning workflow. The Maya Launcher component expects to see web services following a simple convention exposed by this extension model. Potential usages include:
    • Exposure of custom backing services for particular advanced services to be exposed to the client.
    • Exposure of additional functions for administrating an extended provisioning system built on top of Maya.
  • Launcher Flow Configurability (exists)
    • Allows XML configuration of the workflow presented to the Maya Launcher including customizing the wizard of questions that allows a profile to be dynamically built by the user. Potential usages include:
    • Configuring the list of questions to be tailored to a particular user group for Maya.
    • Configuring the software to be associated with given wizard responses.
  • Download Mirror Overrides (partial)
    • Allows the download mirrors to be used for given update sites to be overridden. Potential usages include:
    • Override the download mirrors to pick up enterprise-internal mirrors in place of public mirrors for optimal download speeds.
    • Override the mirrors list to remove known-problematic download mirrors (probably not ideal).

Client-Side Extensibility

- Extensibility to contribute additional or replace pages in the launcher. This can be used to have custom pages or process operations not directly supported by Maya. (exists)

- Extensibility to register additional instruction types to be handled by the launcher. This could be used to handle installation of other artifacts or to perform additional functions not supported by Maya out of the box. (planned)

Plug-ins to be Contributed