Maya Creation Review
The goal of the Maya incubator project is to provide extensible frameworks and an exemplary application to enable automated deployment of Eclipse-based product installations by building on services within Equinox and content exposed via update sites. The platform will be highly extensible, thus allowing it to be leveraged in multiple deployment modes, such as commercial software distribution, beyond those directly implemented within the project.
- Lightweight Installation and Deployment
- Provide a small native client that will be installed on user systems through a browser or native installer.
- Maya will automatically setup an Eclipse instance with the correct set of features, including the JRE, based upon a user's selected usage profile.
- Profile-Based Software Sets
- Administrators configure the default software associated with each profile and users are empowered to augment their profile's configuration with additional software through configuration of their personal user settings.
- Software Discovery from Update Sites
- Allow registration of internal or external update sites that can be scanned for feature information.
- Extensibility will be provided to allow mechanisms other than Eclipse update sites for supplying installable software to be distributed through Maya.
- Software Dependency Automation
- Maya will handle automated dependency resolution based on feature and plug-in manifests.
- User and Profile Selection Extensibility
- Authentication hooks allow the user to be automatically associated with one or more usage profiles.
- Statistics Collection Extensibility
- Maya will be designed to enable it to be connected to organizational statistics monitoring engines.
- Deployment Architecture Extensibility
- Services to enable customization activities, such as filtering the list of software that is visible for a particular user.
- Hooks in the client-side application that will enable additional software to be installed.
- Extension points will also be added to enable creation of external services that extend Maya that are technically out of Maya's specific implementation scope. An example of one such extension point could be license enforcement and tracking.
For additional information on Maya's architecture, please see Maya Architecture.
Out of Scope
- High Availibility for Web Service
- Maya will not provide a high availability solution for the web service.
- Maya will not be optimized for server clustering as may be required to meet high scalability requirements.
- Software Licensing and Control
- Maya will not perform any license enforcement or tracking.
- Package Definition and Validation
- Maya will not provide any vetting of packages.
- Maya will attempt to provide an exemplary set of profiles that can be consumed for Eclipse software users.
- Billing and Up-Selling of Software
- Maya is strictly targeted for provisioning software readily available from update sites.
- Generic Artifact Distribution and Installation
- Maya will only provide distribution of Eclipse software and the JRE.
- Maya will explicitly not provide generic software artifact installation though the architecture may be extended to allow other components to be installed.
- Workspace Settings and Configuration
- Maya will not provide workspace configuration and setting synchronization.
- Diverse Community Involvement:
- Very positive feedback from user community at EclipseCon and in follow-up discussions in newsgroup.
- Conference call with 11 representatives from 6 companies strongly supported moving forward with creation review.
- Proposal updated based on community feedback.
- Multiple community interested parties and committers added to the project.
- Quotes from Community:
- "The need for the Maya project is a testament to the ubiquity of Eclipse as the underlying platform for enterprise technologies that transcends the reach of any single software vendor. Maya has the potential to become the platform for efficient provisioning solutions that can support the heterogeneous product installations already present in many enterprises." -- Todd Williams, Genuitec
The following code will be contributed by Cisco.
- Bootstrap Client
- Extremely lightweight native client.
- Since it is native, evertyhing from the JRE to the Equinox runtime will be able to be dynamically setup.
- Profile Selection Launcher RCP
- RCP-based UI responsible for walking the user through authentication and profile selection.
- The launcher constructs the Eclipse environment.
- The launcher stage can be skipped allowing the bootstrap to directly instantiate the full Eclipse environment.
- Backend Web Service
- A service to walk the dependency graph and support profile select.
- Determines the best set of features and plug-ins for a given profile.
- Limited Administrative User Interface
- Small set of Eclipse perspectives and views to support administrators setting up profiles as well as users maintaining their own profiles.
- This will be an area for improvement in the open source project.
- Jeff McAffer -- IBM Canada
- Project Lead for Equinox OSGi, RCP, and Orbit.
- Doug Schaefer -- QNX
- Project Lead for CDT.
- Tim Webb -- Project Lead, Cisco
- Lead and developer on the Maya code contribution from Cisco. Experience working with Eclipse provisioning technologies as well as user interface development. Involved in multiple different aspects of Maya's coding. Past experience leading a Cisco-internal Eclipse provisioning technology which was the predecessor to the Maya technology.
- Sharanya Doddapaneni -- Committer, Cisco
- Developer on the Maya code contribution from Cisco. Primary developer responsible for the native bootstrap as well as developer on back-end web services used to support the bootstrap and launcher.
- Thomas Hallgren -- Committer, Cloudsmith
- Thomas has been a major contributor to the Buckminster project ,where has architectural and development responsibility for large parts of the Buckminster framework. Thomas ia also an initial committer to the Spaces and Kepler projects, a major contributor to the PostgreSQL community, where he manages the PL/Java project, and has contributed to other open source projects such as Jacob and ObjectWeb/ASM.
- Jennifer Li -- Committer, Cisco
- Developer on the Maya code contribution from Cisco. Primary developer responsible for the administrative user interface as well as developer helping to build out some base abstractions for Maya UI services.
- Dennis Vaughn -- Commiter, Cisco
- Developer on the Maya code contribution from Cisco. Primary developer responsible for the server deployment, configuration and data model services as well as developer on the client-side launcher user interface.
- Elias Volanakis -- Committer, Innoopract
- Elias is an Eclipse developer & consultant at Innoopract. He has been helping multiple projects to build Eclipse-based tools and rich clients since 2004. At Innoopract, he is involved in the development of the Yoxos Install Manager and will coordinate Innoopract's efforts to integrate Maya into the Yoxos product family. He holds a Master of Computer Science from the University of Tubingen.
- Jordi Boehme Lopez -- Committer, Innoopract
- Jordi is an Eclipse developer at Innoopract. He has built serveral Eclipse-based tools and IDEs since 2004. At Innoopract, he is responsible for the Yoxos Eclipse Distribution content and its validation. He will contribute code to the the Maya server component.
- Todd Williams -- Committer, Genuitec
- Bio to be provided...
- Engineer 1 -- Committer, Genuitec
- Bio to be provided...
- Engineer 2 -- Committer, Genuitec
- Bio to be provided...
- Engineer 3 -- Committer, Genuitec
- Bio to be provided...
- June 29, 2007 -- Initial 0.1 M0 (Alpha technology preview)
- Very early preview to allow interested parties to experiment with the technology and provide feedback. Aligned with the Europa release to provide an "interesting" example of provisioning using Maya.
- Ongoing -- Ganymede timelines for eventual ship with the simultaneous release.
- Maya drops will target the same 6 week cycle and ideally aligned with Ganymede ongoing development.
- Initial focus for Maya will be to target a functional provisioning story with an easy out-of-box experience.
- Subsequent focus will be on building in extensibility and hardening the existing implementation prior to the first production quality release.
- First production quality official release will be delivered at the same time as (or part of) the Ganymede simultaneous release.
- Maya will follow the agile development process to get to the first production quality release focusing on incrementally useful deliverables with short development cycles.