S-RAMP/SOA UI Requirements
eric.wittmann Jul 11, 2012 11:01 AMOverview
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.
Scope
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.
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.
Initial Thoughts
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
Repository Browsing
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/.
Features
- 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
Artifact Analysis
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)
Repository Management
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
SOA Modelling
Once we are properly handling everything in the repository, it would be good to be able to model new service candidates.