Title (Goal)

A an organization, I would like to distribute API extensions that we have written, so that partners and other interested parties may use them

Primary Actor

Organization

Scope

 

Level

 

Author

Aaron Birkland

Story (A paragraph or two describing what happens)

A group of collaborating institutions have developed a domain model and set of common services (e.g validation, visualization, transformation, etc) on objects that comply with that model. Developers in an institution have created an API Extension modules to provide these services. We would like to make these extensions publicly available for other institutions to use or evaluate. We'd like it to be easy to package these extensions for distribution, and easy for users to deploy these extensions in their repositories. In addition, the operational burden of deploying these extensions should be negligible, as we do not want installation to be costly, and we do not want to scare away potential new adopters.

API Extension Architecture's role:

  • Provide specification or guidelines for packaging API extensions
  • Provide a lightweight mechanism for deploying a published extension into one's own framework instance.

Organization's role:

  • Agree to a specification for domain model and associated services
  • Publish and advertise the API Extensions, so that others may install and use them.
  • Maintain a community around users of the domain model and extensions.

Extension Developer's role:

  • Write and test API extensions
  • Package and document API extensions for distribution

User of extension's role:

  • Download/install/deploy extension into one's own framework
  • Provide instances of domain data relevant to the extension.
  • Evaluate extension for suitability for one's own purposes.