As part of the work we're doing with the S-RAMP repository implementation, we want to create a user interface. The scope and audience for this user interface is important, so I'm looking for thoughts that can be ultimately formed into a high level set of requirements.
One obvious decision we need to make: what is the scope of the UI?
This work is being done within the umbrella of SOA Governance, so it seems likely that the UI should focus primarily or even exclusively on Governance related activities. Of course, Governance means different things to different people. We need to navigate that landscape to arrive at a set of features that are cohesive, make sense, and provide value to the audience.
Another decision we need to make: who are the primary users of the UI?
This decision is similar but slightly different than the Scope decision above. Perhaps we can choose the audience for the tool, which might narrow or focus the scope discussion.
I like to think about User Interfaces starting at a high level "activities" perspective. Consider Eclipse, for example. The Eclipse IDE has the concept of Perspectives, which group sets of features into a high level logical structure. Examples include Java Development, Debugging, Team Synchronizing, etc. These Perspectives identify the high level activities being performed, and also group together the features and UI views needed to perform them.
Following are some initial ideas for high level activities that might be useful in a S-RAMP/SOA UI. This should serve as a starting point for a discussion about what other high level behavior the UI should provide. Additionally, we can dive a bit deeper into each and list out the specific features needed.
High Level Activities
I think the most obvious requirement is the ability to browse the S-RAMP repository. This includes simple navigation through the artifacts in the repository, along with more advanced searching/filtering. I can imagine an initial implementation that works like http://search.maven.org/.
- Hierarchical browsing of S-RAMP tree (e.g. http://search.maven.org/#browse)
- Searching of the S-RAMP repository (e.g. http://search.maven.org/#search)
- Download binary artifact content
A feature of SOA Governance that would be immediately useful to users is analysis of their artifacts. We can do a variety of analysis, including:
- Artifact validity (syntax, semantics, best practices, etc)
- Dependency analysis
- Trending (what artifacts are changing most frequently)
If the Repository Browsing activity above is focused primarily on finding artifacts, there should also be a part of the UI that is responsible for adding and updating artifacts.
- Add (upload) new artifacts to the repository
- Update repository artifacts
- Delete repository artifacts
Once we are properly handling everything in the repository, it would be good to be able to model new service candidates.