-
Notifications
You must be signed in to change notification settings - Fork 8
Core model user stories
<<< Back to [[Final soa model design]]
Goal: To design, implement and deploy a new "Smart Travel" application made from scratch. This is done by the intervention of 3 types of users: the Business architect, the Technical architect, and the Developer. Here, we simplify the process by assuming a basic V-model over one iteration.
- He designs the application process thanks to a BPMN tool.
- From EasySOA/Eclipse, he lays down what is needed to start working on this application:
- He creates new Project, and within it adds a "Smart Travel" Requirements node called "Smart Travel Requirements".
- He attaches the generated BPMN file and possibly more documentation to the Requirements.
- Once assigned to the "Smart Travel" Requirements, he downloads the BPMN schema and use it to create an SCA application.
- From EasySOA/Eclipse, browses to the Requirements, then imports the SCA composite as a new System, called "Smart Travel application".
- During the import, the file is not only stored under Requirements, but also parsed to construct some Services:
- CreateSummary (Provider: "MyCompany"; depends on WeatherService, TranslationService, ExchangeRate)
- WeatherService (Provider: "External")
- TranslationService (Provider: "External")
- ExchangeRate (Provider: "External")
- During the import, the file is not only stored under Requirements, but also parsed to construct some Services:
- For every service that has to be implemented (i.e. that have "MyCompany" as Provider), some SLR are specified, and more documentation (technical specifications, expected WSDL...) can be attached.
- The design phase is over, the design documents are versioned as a whole.
- Once assigned to the "Smart Travel" Requirements, the developer can work on the implementation: from EasySOA/Eclipse, he defines a new "Smart Travel Impl" Deliverable that implements the CreateSummary Service (in its V1), then develops it.
- The implementation phase is over, the deliverable is version-ed.
(We assume that EasySOA doesn't provide any management of the deployment process)
- In order to set up an integration environment, the developer starts by actually deploying the "Smart Travel Impl" Deliverable using the technologies of his choice.
- In order to keep EasySOA in sync with the deployed app, he creates a new "Integration" Environment.
- He adds "Smart Travel Impl" to this environment, and specifies the parameters that have been given to the "Deployment recipe", in order for EasySOA to compute the SmartTravel Service expected Endpoint.
- EasySOA checks that the Service is indeed made available at this Endpoint.
- EasySOA also checks for the 3 SmartTravel Service's dependencies: as they're considered "External", it will only check their presence by testing their URL (XXX stored where?)
- The deployment phase is over, the environment is version-ed.
As a subcontracted SOA analyst / architect,
- I want to mine the information system of the entreprise that pays me to discover services (their artifacts, how they are designed & work), so that I can get a full picture of its SOA
- I want to export it, so that I can provide in a single go the whole picture I made of the SOA to the company that pays me
=> discovery then export TODO wiki
-
As an SOA architect or operator, I want to detect changes in / compare how my own unchanged SOA is tied with and behaves with an external, unknown SOA to be sanitized
-
I want to be notified when a service definition (WSDL) changes on an external provider's endpoint, so I can ask its provider about it (in nuxeo or not) or patch my code (possibly in a proxy)
-
As a test maintainer, I want to be notified when a functional test involving a given external endpoint fails...
- => after auto sanity check, notify (send a link to the report saved in nuxeo to) of errors (to be found in the report) interested people (owners of endpoint or tests...), jenkins-like
-
I want to schedule an auto sanity check, so level of SOA sanity will be maintained over time
- => UI to control web discovery recording done by dedicated filter