CSPA Use Cases - CSPA Roles and Usage Scenarios 1. The following Use Cases have been developed by Statistics Netherlands (CBS) to assist their development and implementation of Statistical Services. In particular, they include internal resources, catalogues and roles, which they have found useful. These Use Cases are provided to assist implementation efforts, they are not formal CSPA artefacts. 2. The Use Cases describe which stakeholders are involved in the use of CSPA and which user scenarios are relevant to these stakeholders. The CSPA Services Catalogue mentioned in these Use Cases refers to level 4 of the Global CSPA Catalogue described in Chapter VIII-A, Catalogues. 3. The term “service” may mean different things to different people. The CSPA glossary provides the following definitions Business Service A defined interface for accessing business capabilities (an ability that an organization possesses, typically expressed in general and high level terms and requiring a combination of organization, people, processes and technology to achieve) Capability Capabilities provide the agency with the ability to undertake a specific activity. A capability is only achieved through the integration of all relevant capability elements (e.g. methods, processes, standards and frameworks, IT systems and people skills). Service A service is a logical representation of a repeatable business activity that has a specified outcome and is self-contained, fulfils a business need for a customer (internal or external to the organization) and may be composed of other services. GSIM Statistical Network BA definition Statistical Network BA definition (adapted from TOGAF G113) Figure 1.1 Glossary To elaborate this point further, let’s compare a CSPA process to a production facility (a factory), and make a distinction between: a. The “machinery”, i.e. a technical facility, empty of people, but with all the technical equipment, machines, conveyor belts, power, etc., maybe with maintenance staff, but without any staff to operate it, and b. A fully equipped and staffed facility, ready to go, just waiting for the input (the orders). 4. It will be clear, that, unless the “machinery” constitutes a fully automated facility, the first alternative will not be able to produce any useful output without the people necessary to operate “the plant”. 5. This metaphor can be applied to a statistical process as a whole, but also to individual process steps. In the metaphorical factory, we could have both fully automated machines and machines that need human operators. To make the picture complete, we also need a mechanism to transport the parts and products from one machine to the next. In a job shop, each class of products has its own route through the factory. On a production line, all products follow the same route. 6. Now let’s apply this metaphor to CSPA, where the depth and breadth of a CSPA service is still a matter of opinion. In line with the first alternative, a CSPA service can be seen as an IT service, i.e. a piece of functionality that is delivered by an IT system. In this case, we can talk about Software as a Service (SaaS) when this service is available to consumers through some form of contract with a service provider. If there is manual labour involved in operating the service, the consumer (user of the SaaS) has to provide and train the people that will be assigned to operate the service system. As an example, take the manual editing of micro data. Assuming that a system is used to edit the digital data, this system can be delivered as a service. Through a process, external to the service, data may be fed into the service. But, since it is manual editing, people are required to do the actual editing, using some kind of user interface (GUI) provided by the system. These people are not part of the software system and are not provided by the service provider. 7. On the other hand, a service may also be a full business service, where the service provider provides everything that is needed to “run” the business, including any manual labour. 8. The difference also impacts other roles. After all, if a service provider does not deliver the manpower to run the system, someone else will need to do so. The next in line for this task is the Assembler. Unless, of course, the Assembler role is restricted to providing a technical facility only, in which case the task of staffing the services and the process falls onto yet another role. In the current CSPA model, this would be the process owner (a User), to whom the Assembler delivers the assembled process (the “factory minus the staff”, the “machinery”) 9. When reading the following user stories, please bear in mind that these have been written mostly under the assumption that CSPA services are fully automated (business) services. I. (Re)Designing a statistical process 10. A. Purpose To design a new statistical process or to redesign an existing process 11. B. Primary stakeholder Designer. C. Secondary stakeholders 12. Investor, User (process owner), Builder, Service Provider, Assembler, Configurer D. User story 13. The process for which the Designer is going to create the design, eventually will be used by a process owner (a type of User). This User in fact is the ultimate customer of the Designer. The process owner may or may not be the same person as the Investor. Usually, in our organisation, the 2 Investor is at a more senior management level. As the process design will have to meet many different requirements, the Designer’s task is not an easy one. The Designer defines the output of the statistical process, which is the starting point for the process design; The Designer defines the inputs to the process; The Designer defines the business functions necessary to create output from input; The Designer determines the appropriate architectural pattern for this process; The Designer translates the business functions into process steps; The Designer determines the statistical services that should perform the necessary process steps. The Service Catalogues (local and global) are used to identify candidate services. The Designer browses the Service Catalogue(s), looking for suitable statistical services. The Designer studies these statistical services and determines which ones are best suited for performing the envisioned business functions in the architectural pattern chosen. Whether a statistical service is suited depends on how well its function and its inputs and outputs match the context of the process being designed. The Designer may need to check with the Assembler in order to decide whether an envisioned service is or can be made accessible from the (local) process environment. If not, the Assembler will have to take measures to find a new Service Provider. From here, several scenarios are possible: One of the statistical services found is exactly what is needed to perform the business function. This statistical service is selected; One of the statistical services found is more or less what is needed. The Designer will try to adapt the statistical process design and if necessary the related inputs and outputs to fit the available statistical service; None of the existing statistical services is close (enough) to performing the required business function. The Designer will either change the statistical process design fundamentally or will specify (a) new statistical service(s) and confer with Investor(s) and Builder(s) to evaluate the business case for having these created; If a service exists for the required function, but not for the required pattern, the Designer may request a re-wrapping of the existing service to make it suitable for the other pattern. Again, the Builder will need to check with the Investor and the Builder will have to create a new (version of the) service; The Designer repeats this process until the entire statistical process is mapped to (existing and/or feasible) business functions and statistical services; For any new service, the Designer will create a Service Definition and Service Specification in the Local Service Catalogue. In addition, these will be promoted to the Global CSPA Service Catalogue in order to inform the international community of the new need, indicating the status of the development; After finalization of the process design, an Assembler is requested to realize the statistical process according to the design. This realization will probably involve multiple iterations that may involve adaptations and amendments to the designed process and required statistical services in collaboration with the Designer and Builder(s). Also, the Investor may need to be involved. 3 E. Stakeholder implications 14. The way of working described here requires that both the Designer and the Investor change their attitude as compared to more traditional approaches. The Designer also needs to "think" in terms of GSIM objects: outputs, business functions, process steps, etcetera. One of the major challenges is determining the granularity of process steps and distinguishing between "generic" aspects of a process and local, specific, aspects. 15. Another important aspect is the shift from “batch” to “single entity”: processes should be designed to improve throughput by processing entities as soon as possible instead of waiting and collecting batches. There will, however, be steps in the process that, by necessity, do require sets of entities. But even aggregation can be designed to be performed entity by entity, improving the quality of the aggregate by each entity added. 16. Furthermore, this approach requires that existing statistical services can be accessed from a local environment (in which the process orchestration is to be executed) and that new statistical services can be created if necessary. This requires availability of the Assembler and Builder roles and expertise. 17. Contemplating, designing and building new services may involve international collaboration. Organisations (Investors, Designers and Builders, but also Service Providers and Assemblers as well as Users responsible for overall statistical processes) will need to adapt to this new way of working. II. 18. Building a new service A. Purpose To implement a new statistical service that has been designed by a Designer. B. Primary stakeholder 19. Builder, Service Provider 20. C. Secondary stakeholders Investor, Designer, Assembler D. User story 21. The task of the Builder is to create the software solution in accordance with the service definition and service specification provided by the Designer. It goes without saying that in this context, the solution of course will comply with the CSPA guidelines. However, the Builder may also have to take into account the technological requirements and constraints of the target environment. This may require discussions with any envisioned Service Provider(s). CSPA promotes portability, but this comes with a price. So the Builder may have to take advice also from Investor and Designer as to any requirements in that respect. The Builder receives a service definition and a service specification from a Designer. 4 The Builder verifies that no implementation for this combination of service definition and service specification already exists. The Builder builds a software component that performs the required function based on the designed inputs, input parameters, results and output parameters, with the following guidelines: The component is implemented in such a way that it is as independent as possible from other components that have to be available on the local environment it runs on and even as independent as possible from any specific local environment. This should make it as easy as possible to run the service with this specific implementation on any local environment. This involves the following considerations: o Using platform independent programming languages; o Using as least references components / libraries as possible; o If other components / libraries are necessary, choose components / libraries that are available on different operating systems; o Not using inputs (files, databases, etcetera) and outputs other than the inputs and outputs defined by the service; o Comply with UNECE “Principles and Guidelines on Building Multilingual Applications for Official Statistics” and international coding standards; o List to be further elaborated. The Builder creates a Service Implementation Description containing the following artefacts: o A description of how the statistical service was implemented; o Requirements on the execution environment (which operating systems are supported, hardware characteristics, …) o An installation and deployment manual describing how to implement the service in a specific local environment. The Builder updates the Local and Global CSPA Service Catalogues, updating the Service Definition and Service Specification where needed, adding the Service Implementation Description and, if applicable, the source code and (references to) binary components. To be expanded in order to include: · Guidance on how to avoid introducing unintended dependencies · Granularity, handling service layering and service composition · Licensing issues · Existing examples E. Stakeholder implications 22. Builders are software engineers or technical methodologists that will develop software components based on a precise statistical design in terms of GSIM objects. Furthermore, they will have to deal with the specific constraints of running services in a CSPA context, like using standardized CSPA inputs and results and having international deployability (platform and country/language independency) in mind. III. Providing a service using an existing implementation 5 23. A. Purpose To provide a service for which an implementation is available (either locally or globally). 24. B. Primary stakeholder Service Provider. C. Secondary stakeholders 25. Builder, Assembler, User D. User story Initial setup 26. A Service Provider will only start providing a given service if there is some need. The first service offering will, as a minimum, have to match that need. But a Service Provider should anticipate future needs and implement the service in a way that takes scalability requirements into account. If the service has more than one implementation, the Service Provider chooses the implementation best suited for the current needs and for the local environment on which it has to run; The Service Provider performs a Quality Check on the chosen implementation and, if the check is passed, adds it to the Local Service Catalogue; After the Quality Check has been performed on the Service Implementation, the Service is added to the production environment, performing a Transition to Production process: Adding the service to the production environment automatically adds it to [[Service Availability Control]]; The Service Provider retrieves the Service Implementation Description; The Service Provider retrieves the binaries of the service component and any referenced components / libraries; The Service Provider deploys the service and its components on the infrastructure using the installation instructions from the Implementation Description; The Service Provider updates the local Configuration Management Database (CMDB); The Service Provider publishes a standard Service Level Agreement for the new offering. Operational phase 27. Assemblers and Service Providers will enter into service agreements in order to ensure operational availability of the service for particular processes. Assemblers need to specify the nonfunctional requirements such as availability, performance, data volumes, etc. 28. Once operations are started, the Service Provider must ensure that the service meets the agreed service levels at all times. This means normal, professional , operational service management, including regular contacts with the process owners of the processes that use the service. 6 29. During the operational phase, new versions of the service software may become available. The Service Provider must ensure that migrations from one service version to the next are coordinated with the process owners of the processes that use the service. During such transition periods, Service Providers must be able to support two or more consecutive versions in parallel. Service Providers should provide feedback to Investors, Designers and Builders about the functional and technical experiences gained during initial setup and operation. 30. In order for services to be available over time, to live up to Service level Agreements and generally to keep the functional and technical performance of the service up-to-date and in line with current practices and requirements, Service providers need to actively maintain the services they provide. 31. This involves; Service lifecycle management, technical ownership of the local Statistical Service(s), monitoring and solving any technical problems regarding the execution of individual statistical services. Additionally, it involves keeping in touch with Designers, Builders and Assemblers in order to anticipate developments. 32. On the one hand, the Service Provider will be focussed on the technology side of the service, looking at stability, performance, etc. On the other hand, the Service Provider will be focussing on functionality, keeping an eye on new or changing requirements, availability of new versions provided by Builders, etc. 33. In general, best practices in this field such as ITIL and BISL can be found in literature. Capacity Management The Service Provider monitors performance and load of the service software application and the underlying infrastructure, such as servers and disk usage on file servers; When any of these exceed set thresholds, a process is triggered to increase capacity or to discuss the cause with the process owners (Users) of processes using the service. Life Cycle Management Issue / Incident Management Errors or deviations from agreed service levels may be detected by monitoring, or reported by process owners (users of the service). If applicable, the Users of all applications (processes) using the malfunctioning service are alerted of the problem; The Technical Service Provider investigates the problems and identifies whether they are infrastructural, programming bugs or methodological bugs in the service component. Analysis of log files and other information may be needed to determine the cause(s) of the problem. In case of... 7 infrastructural problems, a server problem or network problem may have to be solved; a local developed service, in case of... o programming bugs, the Builder is requested to analyse the problem and solve any bugs in a new version of the statistical service implementation. This new version gets a new Patch version, according to Semantic Versioning; o methodological bugs: The Designer is requested to supervise the correction of the design and specification of the Statistical Service, which may result in new versions of Service Definition and/or Service Specification; The Builder is requested to provide a new Minor version of the Service Implementation according to the changed specification. a service not developed locally, the bug is reported (including requested resolution priority) in the Global CSPA Service Catalogue issue registration, including the Service Provider’s understanding of the nature of the bug. If an agreement can be reached on an acceptable resolution time, the resolution is awaited. Otherwise, a new version of the service is requested from a Local Service Builder, as if it were a locally developed service. In case a new version of the service has been developed, it is updated in the local and possibly Global CSPA Service Catalogue. E. Stakeholder implications 34. The Service Provider as described here in many organisations is a new role. At least in Stats Netherlands, statistical process owners are not used to relying on other parts of the organisation to provide services that are crucial to the reliability and performance of the overall process. It will take time to build trust and to prove that sharing a service with others in the same organisation or even across organisations is possible and worthwhile. Service Providers that take on this role initially will have a difficult time building that trust. In addition, Designers, Builders and Service Providers will have to find ways to handle “exotic” requests from process owners in order for services to remain generic (enough) and stable. IV. 35. Building a new statistical process A. Purpose To implement a statistical process as specified by the Designer. B. Primary stakeholder 36. Assembler. 37. C. Secondary stakeholders Designer, Service Provider(s), Environment Provider, Configurer, User. D. User stories 38. The task of the Assembler is to build the statistical process according to the design provided by the Designer. (Note: that the Assembler, like the Designer, is acting for and on behalf of the 8 process owner (a type of User) in that the process owner will be the main stakeholder in the operational phase of the statistical process.) 39. First of all, starting from the assumption that the required services have been built already and are available as software packages, the Assembler will need to make sure each of the selected services are indeed available for the new process. This means finding suitable Service Providers for each of these services, ensuring that the service provided is indeed accessible from the (local) environment in which the process is supposed to run. (Note: that this does not necessarily mean that all services must run locally, but if one is not, additional security considerations may come into play.) 40. Quality Control ensures that all used services are of the latest available version. 41. Suitable service level agreements will have to be negotiated with each Service Provider in order to ensure availability and performance of the resulting process. 42. Finally, the services will need to be integrated into the process by building the process integration using the communication pattern selected by the Designer. For this, the Assembler will either use the functionality of the Communication Infrastructure provided by the local Environment Provider, or build custom software to serve this purpose. 43. Thus having created the technical facilities, the Assembler usually turns this over to the process owner, who then will take care of implementing the necessary human activities in and around the process, ensuring these are embedded in the organization. Assembling statistical services using an orchestrator 44. This scenario assumes the presence of a generic communication infrastructure, provided by an Environment Provider that can be used to build and run process orchestrations. The Assembler starts the orchestration tool and connects to the local Service Catalogue; The Assembler selects the statistical services specified by the Designer; The Assembler configures the flow of control, taking care that conditions are evaluated where necessary in order to decide on alternative routings; For each service input, the Assembler defines a map to a (preceding) service output. Direct mapping is only possible if the metadata on both ends match. If there are any discrepancies, transformations may need to be performed between service calls. The Assembler specifies values for any static parameters of the statistical service; The Assembler maps dynamic input parameters onto dynamic output parameters; The Assembler stores the statistical process (orchestration) definition; The orchestration tool generates any user interfaces required to execute the process. 9 Assembling statistical services using custom software 45. This scenario assumes a less sophisticated or mature organisation, where no central communication infrastructure is available. Even where such a central infrastructure is available, this scenario may be used for simpler or ad-hoc processes or in a test phase. 46. In this scenario, the Assembler creates the communication layer that orchestrates the services for the process as a custom-built piece of software. In this case, each process is a separate system, that depends on and uses loosely coupled services. The Assembler creates or reuses a similar software program and inserts a web service call for each statistical service. Before executing the call, an input parameters package has to be constructed dynamically, which contains the following: For each of the service inputs, a value or a URL to a file in CSPA standardized format; A value for each of the input parameters of the statistical service. In case the web service call is asynchronous, the Assembler must create a web service entry point connected to an event handler that is activated by a call back from the statistical service. The URL to this call back entrypoint must be added to the input package. Just like in the synchronous case, the event handler must accept the service response package, which contains the following: For each of the service results, a value or a URL to a file in CSPA standardized format; A value for each of the output parameters of the statistical service. At the transition of the custom software to the production environment, the used services (including version numbers) are mentioned in the application dependencies chapter of the custom software. Assembling services for the event-driven pattern The Assembler adds subscriptions to the appropriate event message types for the selected services into the orchestration infrastructure. E. Stakeholder implications 47. The way of working greatly differs whether the Assembler uses an orchestration tool to "plug and play" a statistical process or whether custom software is developed. 48. In case of an orchestration tool, the technical environment must be very mature (as there is little room to "glue" services together). There will probably already be a lot of services available, because otherwise it will be impossible to create a complete statistical process. 49. In case of custom software, there is much more room for improvising. Especially on the roadmap towards a mature use of CSPA, this scenario is most realistic. This means that the Assemblers are software engineers that must be prepared to use statistical services as much as possible, even though they may not be used to it, when an Investor has made the decision to invest in a ‘fit for purpose’ solution. 10 V. 50. Executing a statistical process A. Purpose To execute an entire statistical process. B. Primary stakeholder 51. User (“process operator”). 52. C. Secondary stakeholders Service Provider, Environment Provider, Configurer, User (“worker”) D. User stories 53. There may be multiple users involved in executing a statistical process. In a very simple case, where the process is completely automatic, the only user involved may be the person starting and monitoring the execution of that automatic process (here referred to as the process operator). 54. Usually, this will be a statistician. In a more complicated situation, the process may run for longer periods, involve multiple people in the monitoring and control and may even have “workers” inside the services to operate or even execute manual operations. Workflows may be used to inform and coordinate the activities of human operators. 55. Process Operators, i.e. Users monitoring and controlling the process, interact with the communication infrastructure, whether that was implemented using a generic or a custom built solution (ref. Chapter 4). Executing an assembled statistical process The process operator uses the user interfaces generated by an orchestration tool to execute a statistical process, given certain parameters (like: period, region, etc.). The process operator receives feedback about the process from the user interface. If errors occur, the process operator browses the log files generated by the communication infrastructure to determine the cause(s). Executing services using custom software The process operator runs the “custom software”, which makes calls to one or more statistical services "under the hood"; The custom software must handle any errors and report them to the operator. 56. Whatever the implementation of the process orchestration layer, any errors in the orchestration itself or in the (communication to the) services that the process relies on must be logged and reported. The process owner or operator of the process must regularly check these logs and reports and handle all incidents and problems. 11 57. If the error originated from a technical failure inside a service, the process operator contacts the Service Provider. In certain cases, it may be necessary to contact a Service Provider also in order to dig deeper into the logs of particular services. E. Stakeholder implications 58. The User, who is a statistician, must bear in mind that generic tools are designed to ensure the design-once-execute-anywhere paradigm. These tools have features to support statistical tasks, but in most cases they will not be configured to be tightened to any specific statistical process. They must be operated to combine the outputs from each task in the best suited way to obtain the desired output. VI. 59. Creating a technical environment (communication infrastructure) A. Purpose To implement a local infrastructure for orchestrating services. B. Primary stakeholders 60. Environment Provider 61. C. Secondary stakeholders Designer, Assembler, Configurer, User 62. D. User story Needs further work, should include: guidance on selecting main architectural pattern for NSI or part (domain) of an NSI Criteria for selecting, Business case for selecting that pattern E. Stakeholder implications 12