e-Framework Definitions and Terminology Introduction This document presents proposed terms with their definitions, and processes for describing and documenting the technical elements of the e-Framework. It focuses on the definitions and descriptions of reference models and “services”, i.e., service genres, service expressions and service patterns. Document content includes: An overall presentation of the elements of the e-Framework using the presented terminology (a metamodel), including an outline of how to develop the technical elements of the e-Framework (reference models, service genres, service expressions) and how to design, implement and deploy applications and systems that are built using the e-Framework. A proposed (normative) format for a narrative (non normative) description of a service genre. A proposed (normative) format for a narrative (non normative) description of a service expression. A proposed (normative) format for a narrative (non normative) description of a service pattern. A proposed (normative) format for a narrative (non normative) description of a reference model. Guidelines for designing and factoring service genres, service expressions, and service implementations. A collection of (normative) principles, practices and constraints applicable to the design of service genres, and service expressions and to the development of service implementations and applications. A set of concise definitions of terms. A simplified semantic model of the e-Framework in a graphical representation. A collection of issues. An annotated bibliography. NB: this document is not intended to be publicly released as a single entity. Planned derivative works corresponding to most of the elements above will be developed and released through the e-Framework web site. These derivative works will incorporate additional contextual content and will be living documents, updated as the e-Framework evolves. NB: because of ambiguity, the word “service” is avoided throughout. “Service” is used as an adjective as in service genre, service expression, service pattern, service implementation, etc. When used without an adjective and otherwise unqualified, “service” implies a concept encompassing all of the qualified and unqualified terms used. A collection of explanatory notes are distributed throughout the document tagged NB. Recommendations to the stakeholders are presented as notes tagged REC. The words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in [RFC 2119]. NB: need to review this document for consistency in applicability and use of these words. Stakeholders and Audience Stakeholders: e-Framework Operations Group, the e-Framework Development and Maintenance Group, and the JISC e-Framework Working Group. Audience: Listed stakeholders as written. Planned derivative works include materials to appear on the e-Framework web site. NB: this document SHOULD NOT be released as a whole. REC: develop a glossary for the web site. REC: derive individual documents (e.g., describing reference models, describing service genres and service expressions, service factoring, semantic model, etc.), and post as individual entries on the web site. A Metamodel for the e-Framework: Fitting the Pieces Together The metamodel presents the overall e-Framework in terms of it elements (reference models, service genres, service expressions, service patterns), the overall process used to build the elements of the e-Framework, and an explanation e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 1 of how the e-Framework is translated into the design and development of service implementations, service toolkits and applications. NB: this presentation is incomplete. It contains only a basic explanation of the metamodel. Additional illustrations and more explanations are needed before this material is presented to the public. NB: the core elements of service genre, service expression, service implementation, service instance are inspired by the elements of the FRBR [FRBR] model: work, expression, manifestation, copy. REC: develop a more comprehensive presentation of the overall metamodel, including contextual examples. Create additional illustrations, including showing how the various service elements fit into the metamodel and the process of developing applications from services, etc. e-Framework Technical Description The basic schematic view of the e-Framework is illustrated below [e-Framework Overview]. This diagram does not illustrate all of the technical elements of the e-Framework. A more comprehensive narrative that outlines the relationships between the pieces of the model (including their multiplicities) follows. A more formal semantic model of the e-Framework is presented separately. REC: review the use of “service” in the diagram. The technical description of the e-Framework focuses on the overall design and description of the service-oriented approach and elements of the e-Framework, not e-Framework governance or policies. The collection of element descriptions are then used to document, build, deploy and operate service implementations that in turn support tools, systems and applications for the provisioning of SERVICES or capabilities to the user community within the specific domains of the e-Framework. NB: the formatted term SERVICES above has a very specific meaning, i.e., a general operational capability (e.g., a JISC production service), not an element (e.g., service genre, service expression) of the e-Framework. NB: the presentation is informal; formal multi-value dependency statements could be developed. Dependency statements must be clearly specified to understand the “many” versus the “one” side of the relationships. NB: the presentation does not detail the elements to the same level as the web services ontology [WS OWL]. e-framework: o a service-oriented approach to the planning, management, design, development and deployment of applications and systems o covers a limited, enumerated set of domains: e-learning, e-research, e-libraries, e-administration, etc. REC: for consistency in other documents, develop a precise list of domains. o enables the development and deployment of applications: e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 2 o o o each application may span one or more domains the nature of each application, its design, deployment, etc., are not specified within the e-Framework consists of a collection of core elements (has many of each): reference models service patterns service genres service expressions enables the development of additional elements, included in the e-Framework by reference (has many of each): service implementations service toolkits has non technical elements: governance, policies, community, etc. reference model: o a service-oriented description of a collection of processes and workflows supporting at least one application o documented by a reference model description o may cover one or more domains o may be related to one or more other reference models o may be incorporated into other reference models o may overlap with the domains of one or more other reference models o is defined in terms of service genres XOR service expressions NB: XOR is “exclusive or”. A single reference model is defined either exclusively in terms of service genres or exclusively in terms of service expressions, but never a mix of both. o o o o may be defined in terms of one or more service patterns may be supported by one or more service toolkits references one or more open standards a core element of the e-Framework service pattern: o a reusable service-oriented design for a narrowly-scoped technical or business process o documented by a service pattern description o may be used in multiple reference models o may be related to one or more other service patterns o may overlap with other service patterns o is defined in terms of (composed from) one or more service genres XOR service expressions and their relationships o a core element of the e-Framework service genre: o a generic or abstract capability to provide a set of related behaviours in support of a process o documented by a service genre description o may be used in multiple reference models o may be used in multiple service patterns o may be used in multiple applications o may be related to other service genres o may be dependent upon other service genres o should not overlap in functionality with other service genres o is realised via a service expression through a service expression description many possible independent service expression o a core element of the e-Framework e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 3 service expression: o a specific set of related behaviours in support of a process that can be implemented with a defined set of technologies, interfaces and open standards o a specialisation of a single service genre o documented by a service expression description o defined by a service expression definition behaviours and operations interfaces o may be used in multiple reference models o may be used in multiple service patterns o may be used in multiple applications o may be related to other service expressions o may be dependent upon other service expressions o should not overlap in functionality with other service expressions o is implemented via a service implementation through a design many possible equivalent, independent designs o a core element of the e-Framework service toolkit: o a reusable collection of service implementations o is not deployed o may be distributed with auxiliary software (sample applications, sample data) o may not correspond to a service pattern o may not correspond to a service genre o may be used with multiple reference models o may be used in multiple applications o should not overlap in purpose with other service toolkits o may use service implementations used in other service toolkits o may be included in the e-Framework by reference service implementation: o operational code providing the complete functionality specified in a service expression definition o not unique o is not deployed o may be used in multiple applications (i.e., a common service) o instantiated and deployed through a service instance o may be instantiated or deployed one or more times o derived from a design based on a service expression description defined by the service expression definition many equivalent, independent service implementations o may be included in the e-Framework by reference service instance: o a deployed, operational service instance o functionally identical to all other service instances for the service implementation o operates under a set of policy rules o may be managed o not documented in the e-Framework application: o an ICT system that provides end-user functionality o built from a collection of deployed service implementations (service instances) and other components o follows zero or more reference models e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 4 o o o o may follow a specific application design may be instantiated and deployed one or more times each instance operates under a set of policy rules not documented in the e-Framework The problem space that the e-Framework encompasses is covered by a set of overlapping reference models, some of which may lie partially outside of the problem space. The reference models are defined from a set of service genres and service expressions. If the service genres and their corresponding service expressions are properly factored, they should not overlap. Structured collections (including compositions) of service genres and service expressions used within many different reference models are identified as service patterns. Users interact with applications, built from service implementations, following reference models. Applications may be deployed multiple times within an overall ICT computing fabric, and are governed and managed by identified policies. e-Framework Technical Development Processes The basic schematic view of the e-Framework technical development process is illustrated in the figure, inspired by [SOA RM]. A narrative that presents the process elements and their relationships follows. Additional actions not present in the diagram are included in the narrative. NB: the technical development process explicitly excludes governance, policies, management or community participation. NB: there are overlaps between the technical description and the development process. The technical description focuses on descriptive statements. The development process focuses on actions. NB: a formal methodology for developing the elements of the e-Framework is not presented. NB: service implementations, service instances, service toolkits, and applications are not core elements e-Framework, and thus are not listed below. These elements are used when applying the e-Framework to build and deploy systems and ICT applications. e-Framework is: o defined in terms of: reference models, service patterns, service genres, service expressions o may include by reference: service toolkits e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 5 o service instances described in a collection of documents: methodology, definitions, descriptions, planning, service factoring, implementation guidance, and service implementation and application design and reference model is: o derived from: user requirements, processes, data objects, workflows, standards o expressed in terms of: service genres, service expressions, service patterns, other reference models standards, application profiles o used to identify: new service genres, service expressions o used to design: applications service toolkits o documented: following e-Framework standards and practices o maintained and published through: the e-Framework service pattern is: o identified through abstraction from: service genres XOR service expressions used in reference models o used to refactor: service genres XOR service expressions o used to design: reference models applications service toolkits o documented: following e-Framework standards and practices o classified using: service classifications o maintained and published through: the e-Framework service genre is: o derived from: reference models o refactored from: existing service genres existing service patterns o used to design: reference models service expressions applications service patterns o documented: following e-Framework standards and practices o classified using: service classifications o maintained and published through: the e-Framework e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 6 service expression is: o derived from: service genres o refactored from: existing service expressions service patterns o used to design: service implementations applications reference models service toolkits o documented: following e-Framework standards and practices o classified using: service classifications o maintained and published through: the e-Framework Reference models are intentionally created de novo from requirements or identified from existing external sources. Service genres are intentionally designed de novo, identified as existing service genres or refactored from existing service genres. Service expressions are intentionally designed de novo, identified as existing service expressions or refactored from existing service expressions. Service patterns are identified from the use and structure of collections of service genres XOR service expressions within reference models and applications, and are abstracted and generalised from these reference models and applications; they are not created de novo outside of existing examples. They are based on multiple, independent uses of a set of service genres XOR service expressions. All elements of the e-Framework are developed iteratively with refinements made from actual use and community feedback. Multiple deployments and applications are encouraged to provide broad feedback. e-Framework Application Design, Implementation and Deployment Processes Developing the e-Framework results in a set of documents that describe the process and methodology used in its development. It also includes (normative) documents that are the technical descriptions of the collection of reference models, service patterns, service genres and service expressions that comprise the e-Framework. These descriptions, guided by the design, implementation and deployment processes and methods, are used to design, implement, deploy and operate applications. A schematic of this development and deployment process is presented below, followed by a narrative presentation of the process used to create service implementations and service toolkits, and to deploy service instances and applications following the e-Framework’s service-oriented approach. NB: need a parallel version of the figure illustrating just services. Layers would illustrate where services and service patterns are used, e.g., service genres in reference models, service expressions in application designs, service implementations and service toolkits in application implementations, and service instances in deployed application instances. Additional illustrations may be needed. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 7 service implementation is: o designed from: a service expression description and service expression definition o implemented from: the service implementation design o available for: deployment service instance is: o a deployment of: a service implementation o bound to: a network end point a collection of resources o deployed within: managed environments: as part of an application under operational policies o uniquely identified in each deployment (ICT) application is: o designed from: an application design multiple reference models multiple service patterns o implemented using: the application design service implementations service toolkits o deployed: one or more times in one or more operational environments under governance rules per environment using physical entities (computational, storage, network) o bound to: a network end point a collection of resources e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 8 service toolkit is: o designed from: a collection of service expression descriptions and service expression definitions o implemented from: the service implementation designs the service toolkit designs o associated with: sample applications supporting materials (test cases, sample data) o available for: deployment NB: the model does not permit a standalone service implementation. Service implementations are always integrated into an application, even if the application is only the proxy for a single service implementation, or if the application is deployed only once in the entire ICT computing fabric. Neither the design and deployment of applications, systems and service toolkits, nor the use of service implementations and service instances within these designs are defined within the e-Framework. The e-Framework documents the elements of a service-based infrastructure for others to use to design, develop, deploy and operate applications using a service-oriented approach. An application developer will identify one or more reference models and one or more service expressions (and their service implementations) that are relevant to the domain. The application developer is not constrained by the e-Framework in the selection of a particular approach to the design (software architecture) of the application or system, i.e., the e-Framework is silent on issues such as using a particular middleware approach (e.g., service bus, MOM). Multiple software designs may be developed for a particular application; design choices and external requirements will influence specific characteristics of an individual design. NB: the discussion focuses on the design, development and deployment of applications. While the e-Framework does not prescribe processes, it will include operational guidance and supporting documents. These are not considered in the above technical discussion of using the metamodel to create applications. A design of the application is then implemented as an operational system (software plus hardware). Once implemented, the application may be deployed one or more times in one or more environments, e.g., a VLE application may be deployed at different institutions. An application might have multiple deployed instances, e.g., an administrative application might have both a production and a backup system operational instance deployment. The technical characteristics of the e-Framework do not dictate which applications have multiple deployments or instances, or when a particular application is provided as single computational entity that can be utilised by all other applications and institutions across the ICT computing fabric. Describing and Documenting Service Genres The e-Framework encompasses a collection of service genres that are used within reference models and service patterns. These service genres are specialised into service expressions which in turn are used to design service implementations. The resulting service implementations (and their service instances) are then combined into applications and an overall ICT computing fabric. Each service genre in the e-Framework SHALL be described and documented in a common format, presented below. NB: the format is derived from the format used to describe design patterns [GoF]. NB: unless otherwise stated, all elements in the service genre description SHALL be presented in natural language. NB: service genre descriptions themselves are not normative. The service genre description format is normative. NB: there are no formal processes to define or document a service genre. The narrative presents the description format used to document a service genre. Service genre descriptions are created directly, either as new elements of the e-Framework or as refactorings of existing structures. Service genre descriptions need not be based on existing service implementations, i.e., they are not deduced from practice except through refactoring. A service genre described through a service genre description is abstract, and needs to be realised through a service implementation. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 9 The e-Framework Service Genre Description Format The (ordered) elements of the service genre description are: NB: the ordering is subject to revision. NB: the items are currently presented as a flat list. Items might be reorganised into a structured collection. name: [REQUIRED, ONE] a simple, meaningful, concise, descriptive name or label for the service genre. The name is critical in letting others understand and discover the service genre. NB: The software developer need not use this name to identify the deployed service implementation. classification: [REQUIRED, MANY] categorisation of the service genre using the e-Framework service classification scheme. Select the classifications that are most appropriate and useful in service genre discovery and cataloguing. Service genres with similar characteristics SHOULD have similar classifications. REC: develop an appropriate service classification scheme for service genres. descriptive metadata: [REQUIRED, ONE, COLLECTION] core metadata for the service genre description, including author, date and version. Service genre descriptions SHOULD be versioned, i.e., each revision of the service genre or the service genre description should have a new version label. NB: it is critical to differentiate between versions of the service genre (technical changes, changes in capabilities) and versions of the description (editorial, descriptive changes). REC: provide a recommended practice for labelling versions. description: [REQUIRED, ONE] a brief, informal narrative explanation of the service genre. What problem does it address or solve? What does it do (business problem or processes)? What are its purpose, rationale and intent? What are the context and conditions of use? Where does it fit within the overall ICT computing fabric? The goal is to describe the service genre so that others will be able to gain a basic understanding without further exploration. NB: this is not a technical description. The target audience is not programmers or developers. use cases: [OPTIONAL, MANY] brief, informal explanations of how the service genre is used. An illustration of the service genre within a workflow or overall set of business processes SHOULD be included. REC: provide a recommended practice for diagrams. Formal UML notation is not required. applicability: [OPTIONAL, ONE] how and when the service genre should (or should not) be used. behaviours and requests: [RECOMMENDED, MANY] an overview of the behaviours exposed by the service genre, i.e., all functionality that can be used by applications or service implementations. Each behaviour or request SHOULD include sufficient technical information to specialise the service genre to one or more service expressions. The information MAY include: a name for the behaviour or request the type (e.g., transactional) form and format of the message or request (including data models, document descriptions) responses (normal and abnormal) pre conditions post conditions side effects and state changes (including algorithms) a description of the functionality and operation provided REC: formalise the behaviour and request specification format. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 10 use and interactions: [RECOMMENDED, ONE] how the behaviours, requests and the service genre are combined to provide functionality. What are the constraints in sequencing behaviours and requests (both of this service genre itself and the interactions of this service genre with others)? What are the use patterns? NB: the pre- and post-conditions and description of side effects and state changes are sufficient to deduce this information for a single service genre. This separate description combines the disparate and disconnected behaviours into a more comprehensive description needed to understand how to use the service genre either alone, or in combination with other service genres. NB: this is a precise technical description. It details conforming and non-conforming interactions that span multiple requests. structure: [OPTIONAL, ONE] the conceptual structure and operations of the service genre. Service genres access data or manipulate state. They are often transactional. The structure describes the data, state and interactions within the service genre and their relationships. Include an illustration of the relationships of the elements and the data flows. NB: the information about structure SHOULD NOT be needed or need to be exposed to use or understand the service genre or its use. The information provides critical details needed to specialise the service genre and to develop service expressions. NB: structure information should not include design choices. REC: provide a recommended practice for diagrams. Formal UML notation is not required. applicable standards: [RECOMMENDED, MANY] a list of domain and technical standards (standards, specifications, application profiles) used in implementing the functionality of the service genre (behaviours, data models). Provide names and versions. Indicate conformance requirements or exclusions. NB: list only those standards needed to provide the behaviour and functionality. Technical standards used to implement the service implementation derived from the service genre are excluded. design decisions and tradeoffs: [OPTIONAL, MANY] design decisions, design choices, alternative considerations, tradeoffs. What are the implications of the choices on key factors, e.g., implementation, performance, reuse, extensibility, portability, security, data privacy, ... NB: include “why”, not just what choices were made. NB: all of the aspects listed in the section titled Aspects of Service Design SHOULD be considered for inclusion. NB: these are decisions that influence the overall design of the service genre. It does not include design decisions that only affect the internal structure and organisation of the service genre. implementation guidance and dependencies: [RECOMMENDED, ONE] potential issues in implementing a service implementation or in using a service implementation designed from a service expression specialised from the service genre. Are there assumptions about design, middleware, data structures, behaviours, etc., that are not described elsewhere? Are there any implementation- or deploymentspecific considerations (e.g., technology dependencies)? NB: whenever possible, implementation decisions and choices SHOULD be deferred to the service implementation design. known uses: [OPTIONAL, MANY] reference models and service patterns that use the service genre. As appropriate, indicate how or why the service genre is used. Identify any special cases or considerations in using the service genre. NB: the known uses SHOULD document actual uses, not potential uses. service genre dependencies: [RECOMMENDED, MANY] a list of other service genres (service genre description names) that this service genre is dependent upon. Dependencies are useful in understanding how service genres relate. Dependencies are requirements indicating the other service genre(s) that must be available to use this service genre. Dependencies on a specific version of a service genre SHOULD be indicated. related reference models: [OPTIONAL, MANY] a list of reference models (reference model names) that use this service genre. Reference model relationships are useful in understanding how the service genre is used in designing applications that use the reference model. Dependencies on a specific version of a reference model SHOULD be indicated. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 11 related service patterns: [OPTIONAL, MANY] a list of service patterns (service pattern names) that use this service genre. Service pattern relationships are useful in understanding how the service genre is used in designing applications that use the service pattern. Dependencies on a specific version of a service pattern SHOULD be indicated. Describing and Documenting Service Expressions The e-Framework encompasses a collection of (domain-specific and common) service expressions that are used within reference models and service patterns. These service expressions are implemented through service implementations that are then combined into applications and an overall ICT computing fabric. Each service expression in the e-Framework SHALL be described and documented in a common format, presented below. NB: the format is derived from the format used to describe design patterns [GoF]. NB: unless otherwise stated, all elements in the service expression description SHALL be presented in natural language. NB: service expression descriptions themselves are not normative. The service expression description format is normative. NB: there is no formal process to define or document a service expression. The narrative presents the description format used to document a service expression. Service expression descriptions are created directly, either as new elements of the e-Framework or as refactorings of existing structures. Service expression descriptions need not be based on existing service implementations, i.e., they are not deduced from practice except through refactoring. A service expression described through a service expression description is abstract, and needs to be realised through a service implementation. A service expression does have a specific set of behaviours and a single, machine-processible service expression definition. Thus the different service implementations will vary only in design choices, not in functionality or interfaces. NB: different service expression definitions, i.e., different interfaces to the same functionality, require different service expression descriptions. The e-Framework Service Expression Description Format The (ordered) elements of the service expression description are: NB: the ordering is subject to revision. NB: the items are currently presented as a flat list. Items might be reorganised into a structured collection. name: [REQUIRED, ONE] a simple, meaningful, concise, descriptive name or label for the service expression. The name is critical in letting others understand and discover the service expression. NB: The software developer need not use this name to identify the service implementation. classification: [REQUIRED, MANY] categorisation of the service expression using the e-Framework service classification scheme. Select the classifications that are most appropriate and useful in service expression discovery and cataloguing. Service expressions with similar characteristics SHOULD have similar classifications. REC: develop an appropriate service classification scheme for service expressions. service genre: [REQUIRED, ONE] the service genre (service genre name) that has been specialised to yield this service expression. descriptive metadata: [REQUIRED, ONE, COLLECTION] core metadata for the service expression description, including author, date and version. Service expression descriptions SHOULD be versioned, i.e., each revision of the service expression or the service expression description should have a new version label. NB: it is critical to differentiate between versions of the service expression (technical changes, changes in capabilities) and versions of the description (editorial, descriptive changes). REC: provide a recommended practice for labelling versions. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 12 description: [REQUIRED, ONE] a brief, informal narrative explanation of the service expression. What problem does it address or solve? What does it do (business problem or processes)? What are its purpose, rationale and intent? What are the context and conditions of use? Where does it fit within the overall ICT computing fabric? The goal is to describe the service expression so that others will be able to gain a basic understanding without further exploration. NB: this is not a technical description. The target audience is not programmers or developers. use cases: [OPTIONAL, MANY] brief informal descriptions of how the service expression is used. An illustration of the service expression within a workflow or overall set of business processes SHOULD be included. REC: provide a recommended practice for diagrams. Formal UML notation is not required. applicability: [OPTIONAL, ONE] how and when the service expression should (or should not) be used. behaviours and requests: [REQUIRED, MANY] a list of all behaviours exposed by the service expression, i.e., all functionality that can be used by applications or service implementations. Each behaviour or request specification SHALL include sufficient technical information to develop a design for a service implementation that implements the service expression, describing what the behaviour does and how it manipulates state. The information SHALL include: a name for the behaviour or request the type (e.g., transactional) form and format of the message or request (including data models, document descriptions) responses (normal and abnormal) pre conditions post conditions side effects and state changes (including algorithms) functionality and operations provided REC: formalise the behaviour and request specification format. use and interactions: [REQUIRED, ONE] how the behaviours, requests, algorithms, resources, state representations, etc., are combined to provide the defined functionality. What are the constraints in sequencing behaviours and requests (both of this service expression itself and the interactions of this service expression with other service expressions)? What are the use patterns? NB: the pre- and post-conditions and specification of side effects and state changes are sufficient to deduce this information for a single service expression. This separate entry combines the disparate and disconnected behaviours into a more comprehensive presentation needed to understand how to use the service expression either alone, or in combination with other service expressions. NB: this is a precise technical description. It details conforming and non-conforming interactions that span multiple requests. structure: [OPTIONAL, ONE] the conceptual internal structure and operations of the service expression. Service expressions access data, resources or manipulate state. They are often transactional. The structure describes the data, state and interactions within the service expression (e.g., objects, classes, messages [in the object-oriented sense]) and their relationships. Include an illustration of the relationships of the elements and the data flows. NB: the information about structure SHOULD NOT be needed or need to be exposed to use or understand the service expression or its use. The description provides critical details needed to consistently design service implementations. NB: structure information should not include design choices. REC: provide a recommended practice for diagrams. Formal UML notation is not required. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 13 interface definition: [RECOMMENDED, ONE] formal definition of the interfaces to the service expression: WSDL, document XSDs, vocabularies, etc. NB: there SHALL be only one set of interface definitions. Alternative interface definitions SHALL correspond to an alternative service expression. NB: the restriction of one set of interface definitions per service expression is an intentional design choice for the e-Framework. NB: the service expression interface definition is a machine-processible representation. NB: the interface definition is REQUIRED to develop a service implementation that corresponds to the service expression. applicable standards: [RECOMMENDED, MANY] a list of domain and technical standards (standards, specifications, application profiles) used in implementing the functionality of the service expression. Provide names and versions. Indicate conformance requirements or exclusions. NB: list only those standards needed to provide the behaviour and functionality. Technical standards used in the service implementation derived from the service expression are excluded. design decisions and tradeoffs: [OPTIONAL, MANY] design decisions, design choices, alternative considerations, tradeoffs, etc., present in the service expression. What are the implications of the choices on key factors, e.g., implementation, performance, reuse, extensibility, portability, security, data privacy, ... NB: include “why”, not just what choices were made. NB: all of the aspects listed in the section titled Aspects of Service Design SHALL be considered for inclusion. NB: these are decisions that influence the overall design of the service expression and what is exposed to users of the service expression. It does not include design decisions that only affect the internal structure, organisation or operations of the service expression. implementation guidance and dependencies: [RECOMMENDED, ONE] potential issues in developing a service implementation or in using a service implementation designed from the service expression. Are there assumptions about design, middleware, data structures, behaviours, etc., that are not described elsewhere? Are there any implementation- or deployment-specific considerations (e.g., technology dependencies)? NB: whenever possible, implementation decisions and choices SHOULD be deferred to the service implementation design. known uses: [OPTIONAL, MANY] reference models or service patterns that use the service expression. As appropriate, indicate how or why the service expression is used. Identify any special cases or considerations in using the service expression. NB: the known uses SHOULD document actual uses, not potential uses. service expression dependencies: [RECOMMENDED, MANY] a list of other service expressions (service expression description names) that this service expression is dependent upon. Dependencies are useful in understanding how service expressions relate. Dependencies are requirements indicating the other service expression(s) that must be available to implement applications that use this service expression. Dependencies on a specific version of a service expression SHOULD be indicated. related service expressions: [OPTIONAL, MANY] a list of service expressions (service expression names) related to this service expression. Related service expressions SHOULD include those that provide the same behaviours and requests but have a different interface definition. related reference models: [OPTIONAL, MANY] a list of reference models (reference model names) that use this service expression. Reference model relationships are useful in understanding how the service expression is used in designing applications that use the reference model. Dependencies on a specific version of a reference model SHOULD be indicated. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 14 related service patterns: [OPTIONAL, MANY] a list of service patterns (service pattern names) that use this service expression. Service pattern relationships are useful in understanding how the service expression is used in designing applications that use the service pattern. Dependencies on a specific version of a service pattern SHOULD be indicated Describing and Documenting Service Patterns The e-Framework encompasses a collection of service patterns that are identified from collections of service genres XOR service expressions (re)used in applications and reference models. Service patterns are used in the design and implementation of applications that are part of the overall ICT computing fabric. Service patterns are similar to reference models in terms of structure and use, and thus their descriptions are similar. Service patterns are typically smaller than reference models. They are often composed from the combination of a service genre XOR service expression and an infrastructure component. They focus on a problem, process or workflow that is common to several domains or are reused in many different reference models or applications, i.e., while they are domainspecific to the major domains of the e-Framework, they are common or domain-independent within these domains. The objective is to identify common structures of service genres XOR service expressions and resources for reuse. NB: service patterns are identified from actual uses of collections of service genres XOR service expressions within reference models or applications. NB: XOR is “exclusive or”. A single service pattern is defined either exclusively in terms of service genres or exclusively in terms of service expressions, but never a mix of both. Each service pattern in the e-Framework SHALL be described and documented in a common format, presented below. NB: the format is derived from the format used to describe design patterns [GoF] and enterprise patterns [e-Biz Patterns]. NB: unless otherwise stated, all elements in the service pattern description SHALL be presented in natural language. NB: service pattern descriptions themselves are not normative. The service pattern description format is normative. NB: there is no formal process to define or document a service pattern. The narrative presents the description format used to document a service pattern. Service pattern descriptions are never created directly as new elements of the e-Framework. They are identified from structures used in reference models and applications and then abstracted and generalised into the service pattern. The e-Framework Service Pattern Description Format The (ordered) elements of the service pattern description are: NB: the ordering is subject to revision. name: [REQUIRED, ONE] a simple, meaningful, concise, descriptive name or label for the service pattern. The name is critical in letting others understand and discover the service pattern. classification: [REQUIRED, MANY] categorisation of the service pattern using the e-Framework service classification scheme. Select the classifications that are most appropriate and useful in service pattern discovery and cataloguing. Service patterns with similar characteristics SHOULD have similar classifications. REC: develop an appropriate service classification scheme for service patterns. descriptive metadata: [REQUIRED, ONE, COLLECTION] core metadata for the service pattern description, including author, date and version. Service pattern descriptions SHOULD be versioned, i.e., each revision of the service pattern or the service pattern description should have a new version label. NB: it is critical to differentiate between versions of the service pattern (technical changes, changes in capabilities) and versions of the description (editorial, descriptive changes). REC: provide a recommended practice for labelling versions. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 15 description: [REQUIRED, ONE] a brief, informal narrative explanation of the service pattern. What problem does it address or solve? What does it do (business problem or processes, organisation, technical problem)? What are its purpose, rationale and intent? What are the context and conditions of use? The goal is to describe the service pattern so that others will be able to gain a basic understanding without further exploration. NB: this is not a technical description. The target audience is not programmers or developers. applicability: [OPTIONAL, ONE] how and when the service pattern should (or should not) be used. functionality: [REQUIRED, ONE, COLLECTION] the functionality of the service pattern in terms of workflows, data (documents) and processes, i.e., the businessoriented or domain-oriented view of the service pattern. How are these elements combined to provide the functionality? Include explanations of all workflow patterns (valid and invalid). List the constraints and conditions in the workflows (e.g., transactions, state changes). Illustrations of workflows and related data and processes SHALL be included. The information SHALL include sufficient detail to understand the structure and organisation of the service pattern in terms of resources, service genres XOR service expressions and messages. NB: this is a precise technical description. It details all conforming and non-conforming functions and workflows or dataflows without detailing how these are implemented through a collection of service genres XOR service expressions. REC: formalise the structure and format for describing the workflows and functionality of a service pattern. REC: provide a recommended practice for diagrams. Formal UML notation is not required. structure and organisation: [REQUIRED, ONE] the structure and organisation of the service pattern in terms of resources, service genres XOR service expressions, messages, i.e., the service-oriented view of the service pattern. Include an illustration of the organisation of the elements, their relationship and the message flows. The information SHALL include sufficient detail to describe the interactions between the service genres XOR service expressions and resources in the service pattern, and to design applications using the service pattern. NB: this is a precise technical description of the service pattern. NB: this differs from the functional description. The functional description is technology agnostic. The structural description is based on interactions of service genres XOR service expressions and resources. NB: the information about structure and organisation SHOULD NOT be needed to understand the service pattern. The description provides critical details needed to consistently implement systems using the service pattern. REC: formalise the structure and format for describing the structure and organisation of a service pattern. REC: provide a recommended practice for diagrams. Formal UML notation is not required. applicable standards: [RECOMMENDED, MANY] a list of domain-specific standards (standards, specifications, application profiles) used in the service pattern. Provide names and versions. Indicate conformance requirements or exclusions. NB: list only those standards needed to provide the domain-specific behaviour and functionality. Technical standards used in implementing applications based on the service pattern are excluded. design decisions and tradeoffs: [OPTIONAL, MANY] design decisions, design choices, alternative considerations, tradeoffs, etc., present in the service pattern. What are the implications of the choices on key factors, e.g., implementation, performance, reuse, extensibility, portability, security, data privacy, ... NB: include “why”, not just what choices were made. NB: aspects from the list in the section titled Aspects of Service Design SHOULD be considered for inclusion. NB: the service pattern is based on actual use of service genres XOR service expressions in reference models. The design decisions are based on those service genres XOR service expressions taken from the source reference models, abstracted and generalised as appropriate to create the service pattern. NB: these are decisions that influence the overall design, structure, organisation and use of the service pattern. They do not include design decisions that only affect the internal structure and organisation of any application that is based upon the service pattern or of the service genres XOR service expressions used within the service pattern. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 16 implementation guidance and dependencies: [RECOMMENDED, ONE] potential issues in implementing applications using this service pattern. Are there assumptions about design, performance, middleware, data structures, behaviours, policies, etc., that are not described elsewhere? Are there any implementation- or deployment-specific considerations (e.g., technology dependencies)? NB: whenever possible, implementation decisions and choices SHOULD be deferred to application or service implementation design. Service pattern descriptions SHOULD be abstract, general descriptions, not models for implementing applications. known uses: [REQUIRED, MANY ≥ 2] reference models or applications that use the service pattern. As appropriate, indicate how or why the service pattern is used. Identify any special cases or considerations in using the service pattern. An illustration of the use within an application or collection of interacting service implementations SHOULD be included. NB: the known uses MUST document actual uses, not potential uses. REC: provide a recommended practice for diagrams. Formal UML notation is not required. REC: a service pattern MUST be used in at least two different reference models before it is considered for publication in the e-Framework. related service patterns: [OPTIONAL, MANY] a list of service patterns (service pattern names) related to this pattern. Service pattern dependencies are useful in understanding how the service pattern relates to other service patterns and knowing what service patterns are needed to use this service pattern. A diagram illustrating the relationships between the service patterns and their service genres XOR service expressions SHOULD be included. Dependencies on a specific version of a service pattern SHOULD be indicated. services used: [RECOMMENDED, MANY] a list of service genres XOR service expressions (service genre description names XOR service expression description names) that the service pattern is dependent upon (uses). Service dependencies are useful in understanding how service genres XOR service expressions relate to each other within the pattern. Dependencies are requirements indicating the service genres XOR service expressions that must be available to use this service pattern. Dependencies on a specific version of a service genre XOR service expression SHOULD be indicated. Describing and Documenting Reference Models The e-Framework encompasses a collection of reference models that are built upon collections of service genres XOR service expressions (or service patterns). Reference models are used in the design and implementation of applications that are part of the overall ICT computing fabric. NB: XOR is “exclusive or”. A single reference model is defined either exclusively in terms of service genres (including service patterns of service genres) or exclusively in terms of service expressions (including service patterns of service expressions), but never a mix of both. Each reference model in the e-Framework SHALL be described and documented in a common format, described below. NB: the format is derived from the format used to describe design patterns [GoF] and enterprise patterns [e-Biz Patterns]. NB: unless otherwise stated, all elements in the reference model description SHALL be presented in natural language. NB: reference model descriptions themselves are not normative. The reference model description format is normative. NB: there is no formal process to define or document a reference model. The narrative presents the description format used to document a reference model. Reference model descriptions are created directly as new elements of the e-Framework or are identified from existing reference models. The e-Framework Reference Model Description Format The (ordered) elements of the reference model description are: NB: the ordering is subject to revision. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 17 name: [REQUIRED, ONE] a simple, meaningful, concise, descriptive name or label for the reference model. The name is critical in letting others understand and discover the reference model. domains: [OPTIONAL, MANY] the domains within the e-Framework where the reference model MAY be used. descriptive metadata: [REQUIRED, ONE, COLLECTION] core metadata for the reference model description, including author, date and version. Reference model descriptions SHOULD be versioned, i.e., each revision of the reference model or reference model description should have a new version label. NB: it is critical to differentiate between versions of the reference model (technical changes, changes in capabilities) and versions of the description (editorial, descriptive changes). REC: provide a recommended practice for labelling versions. description: [REQUIRED, ONE] a brief, informal narrative explanation of the reference model. What problem does it address or solve? What does it do (business problem, processes, workflow)? What are its purpose, rationale and intent? What are the context and conditions of use? How does it support the development of applications in the stated domain? The goal is to describe the reference model so that others will be able to gain a basic understanding without further exploration. NB: this is not a technical description. The target audience is not programmers or developers. use cases: [OPTIONAL, MANY] brief, informal presentations of how the reference model is used. An illustration of the reference model showing an overall set of business processes involving workflow and service genres XOR service expressions, or an illustration of the use within an application or collection of interacting service genres XOR service expressions SHOULD be included. NB: detailed diagrams illustrating all components, flows, etc., are not required. Diagrams should be illustrative (1 page), showing only high-level components and flows. REC: provide a recommended practice for diagrams. Formal UML notation is not required. applicability: [OPTIONAL, ONE] how and when the reference model should (or should not) be used. functionality: [REQUIRED, ONE, COLLECTION] the functionality of the reference model in terms of workflows, data (documents) and processes, i.e., the business-oriented or domain-oriented view of the reference model. How are these elements combined to provide the functionality? Include explanations of all workflow patterns (valid and invalid). List the constraints and conditions in the workflows and use patterns (e.g., transactions, state changes). Illustrations of workflows and related data and processes SHALL be included. The information SHALL include sufficient detail to develop the structure and organisation of the reference model in terms of resources, service genres XOR service expressions and messages. NB: this is a precise technical description. It details all conforming and non-conforming functions and workflows or dataflows without detailing how these are implemented through a collection of service genres XOR service expressions (or service patterns). REC: formalise the structure and format for describing the workflows and functionality of a reference model. REC: provide a recommended practice for diagrams. Formal UML notation is not required. structure and organisation: [REQUIRED, ONE] the conceptual structure and organisation of the reference model in terms of resources, service genres XOR service expressions, messages, i.e., the service-oriented view of the reference model. Include an illustration of the organisation of the elements, their relationship and the message flows. The information SHALL include sufficient detail to identify needed service genres XOR service expressions and resources and their interactions, and to design applications using the reference model. NB: this is a precise technical description of the reference model. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 18 NB: this differs from the functional description. The functional description is technology agnostic. The structural description is based on interactions of service genres XOR service expressions and resources. NB: the information about structure and organisation SHOULD NOT be needed to understand the reference model. The description provides critical details needed to consistently implement systems using the reference model through a collection of interacting service implementations. REC: formalise the structure and format for describing the structure and organisation of a reference model. REC: provide a recommended practice for diagrams. Formal UML notation is not required. applicable standards: [RECOMMENDED, MANY] a list of domain-specific standards (standards, specifications, application profiles) used in the reference model. Provide names and versions. Indicate conformance requirements or exclusions. NB: list only those standards needed to provide the domain-specific behaviour and functionality. Technical standards used to implement applications based on the reference model are excluded. design decisions and tradeoffs: [OPTIONAL, MANY] design decisions, design choices, alternative considerations, tradeoffs, etc., present in the reference model. What are the implications of the choices on key factors, e.g., implementation, performance, reuse, extensibility, portability, security, data privacy, ... NB: include “why”, not just what choices were made. NB: aspects from the list in the section titled Aspects of Service Design SHOULD be considered for inclusion. NB: these are decisions that influence the overall design, structure, organisation and use of the reference model. It does not include design decisions that only affect the internal structure and organisation of any application that is based upon the reference model or of the service genres XOR service expressions used within the reference model. implementation guidance and dependencies: [OPTIONAL, ONE] potential issues in implementing applications based on this reference model. Are there assumptions about design, performance, middleware, data structures, behaviours, policies, etc., that are not described elsewhere? Are there any implementation- or deployment-specific considerations (e.g., technology dependencies)? NB: whenever possible, implementation decisions and choices SHOULD be deferred to application or service implementation design. Reference model descriptions SHOULD be abstract, general descriptions, not models for implementing applications. known uses: [OPTIONAL, MANY] applications or systems that use the reference model. As appropriate, indicate how or why the reference model is used. Identify any special cases or considerations in using the reference model or developing and deploying the application using the reference model. NB: the known uses SHOULD document actual uses, not potential uses. related reference models: [OPTIONAL, MANY] a list of references models (reference model names) related to this reference model, or reference models that this reference model uses or is dependent upon (in all or in part). Reference model dependencies are useful in understanding how the reference model relates to other reference models and knowing what other reference models are used in designing applications that use this reference model. A diagram illustrating the relationships between the reference models SHOULD be included. Dependencies on a specific version of a reference model SHOULD be indicated. services used: [RECOMMENDED, MANY] a list of service genres XOR service expressions (service genres description names XOR service expressions description names) that the reference model is based upon. Service dependencies are useful in understanding how service genres XOR service expressions relate to the reference model and knowing what service genres XOR service expressions must be available for designing applications using the reference model. Dependencies on a specific version of a service genre XOR service expression SHOULD be indicated. service patterns used: [RECOMMENDED, MANY] a list of service patterns (in terms of service genres XOR service expressions) (service pattern description names) that the reference model is based upon. Service dependencies are useful in understanding how service patterns relate to the reference model and knowing what service genres XOR service expressions must be available for e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 19 designing applications using the reference model. Dependencies on a specific version of a service pattern SHOULD be indicated. The e-Framework Service Classification Scheme The service genre, service expression, and service pattern description formats include a classification entry (the service classification) that is used to label and tag these elements for discovery, organisation, and to aid in understanding an element’s purpose and use. Having a standard vocabulary of terms for classifying service genres, service expressions, and service patterns provides consistency in labelling. NB: a single service classification scheme is used for all elements: service genres, service expressions, service patterns. The same classification scheme can be used for reference models. No definitive service classification scheme is presented. Classification facets might include: purpose: how the service is used, what it does domain: list of all domains from the e-Framework where the element is used. scope: range of domains, e.g., single (just one domain), multiple (many domains), common (any domain), infrastructure (), shared (???). structure: composition, e.g., individual, composed/composite. visibility: who can see it, e.g., public, private, internal, external. behaviour: how the service operates, e.g., transactional. community: which community develops or uses, e.g., JISC, DEST, commercial. status: development status, e.g., candidate, prototype, deployed. other: what else? NB: this is a tentative placeholder list. REC: the list of facets and the vocabulary of values for each facet should be developed and made available to those creating service genre, service expression, and service pattern descriptions. Service Design and Factoring Guidelines The services within the e-Framework are designed, specifying behaviours and functionality from requirements. This design is then documented in the format described. Services in the service-oriented approach and in a web environment (not necessarily web services) differ from other programming models. Design guidelines for creating and (re)factoring services in the service-oriented approach follow, including: General characteristics of services (service implementations) within the service-oriented approach. A process and guidelines for service design and factoring (service genres, service expressions, service implementations). Design concepts for services (service implementations) and applications built upon and using these services and service implementations. Aspects of service and design (focusing on service expressions). General Characteristics of Services Applications built following the e-Framework are used to access and manipulate a set of (managed) resources that are distributed over the network. The application’s (idealised) model of the real world is represented through and encoded in the set of (stateful) resources, the state model. The resources are key information assets of the organisations that own, manage and maintain them. These organisations permit access to these resources via service implementations. This access provides a way of obtaining the information contained within the resources, or the means to specify how the service implementation is to manipulate the information, i.e., how a service implementation changes the resource’s state. Key characteristics of the service-oriented approach that are important for designing these resources and the service implementations that access them follow. NB: since this section describes operational capabilities, it is presented in terms of service implementations, not service expressions. The concepts, however, extend to the service expressions. NB: by implication, what applies to a service implementation also applies to a service instance. NB: the qualified use of “service” needs to be verified for the proper adjective throughout. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 20 stateful resources: resources (web resources) are stateful, i.e., they have a state. Resource values change over time through a series of events; each change is a transformation from one state to the next; the order of operations is meaningful; and the effect of the operations is reflected by the current value or state of the resources. service implementations manipulate state: service implementations provide the means used to manipulate the state of the resources. The service implementations essentially own the (access to) the resources. Manipulations change the resources, reflected by a change in their state. NB: state may be manipulated independently by other means. There are no means to limit such state changes. service implementations provide interfaces to resources: each resource is accessed and manipulated through the interface provided by the service implementation. The service implementation’s messages provide the interface used to access and manipulate the resources. resource representations are unknown: clients do not know how resources are represented or manipulated. Representations and details of processing are generally private to the service implementation and hidden from view. communications are “by value”: resources are not passed between service implementations; they remain under the control and access of the service implementations. The information that is passed to a service implementation through a message may include (1) control information (queries, actions) that specifies access or controls state manipulation and (2) documents (data). This data represents the values of some resource in some representation. In the serviceoriented approach, the data is a copy or subset of the resource, not the resource itself. Alternatively, the message may include the identifier of the resource or data, not the resource. The service implementations must still then resolve and access the resource to manipulate its state; the actual resource is not passed to the service implementation. NB: the resource value passed need not use the same representation or encoding as the resource itself. NB: this differs from the object-oriented approach where resources, as objects, are passed in messages between methods. resource locations are unknown: clients do not know where resources are located in the network. NB: in this use, services are themselves a type of resource. communications are via messages: messages provide the only way to communicate with a service implementation and for a service implementation to communicate with other service implementations. behaviours support transactions: individual messages and message sequences describe transactions that manipulate state. Transactions must either suceed and modify the state of the resources, or fail and leave the resource state unchanged. Transactions may be implemented through synchronous communications (the request and response are bundled in the communications model), or asynchronous communications (call backs, publish/subscribe). The service-oriented approach focuses on transactional manipulations of state, not the methods used to implement the required transactional model. stateless network infrastructure: at the application or service implementation level, network communication protocols, e.g., HTTP, are often stateless. These characteristics are combined to yield a service-oriented approach that uses transactional behaviours, implemented over stateless communications protocols, to provide stateful manipulations of private representations of resources where the resources are distributed over the network. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 21 Service Design and Factoring Process Guidelines Service design, decomposition and factoring are complex and involve many tradeoffs. Decisions are often made under uncertainty. This is further complicated by conflicting goals (price, performance, capabilities) and the desire to build systems that are adaptable and long-lived, but function in an ever-changing implementation and deployment environment. Service design includes requirements gathering processes, design, implementation, deployment and refactoring. Key guidelines that cover each of these activities are listed below. NB: these guidelines SHALL NOT be interpreted as a prescriptive software design methodology. Designers are free to choose any method or approach. NB: by implication, what applies to a service implementation also applies to a service instance. NB: the qualified use of “service” needs to be verified for the proper adjective throughout. Develop requirements and constraints: Have target goals and metrics for price, performance (including QoS), capabilities. Differentiate required features from desired features. Identify known (not possible) future requirements and extensions. NB: design for the known requirements only. Differentiate domain-specific from domain-independent concepts, context and content. Work from real-world (not theoretical) analyses. Know what entity has responsibilities and which are collaborators, i.e., what a service genre XOR service expression does versus what service genre XOR service expression it uses. Use nouns and verbs that correspond to documents and business functions, respectively, in the serviceoriented approach to develop requirements. Design the appropriate service genres and service expressions: Determine the appropriate granularity of service genres and service expressions, data, resources and behaviours. Decompose the problem space and factor service genres and service expressions using the service design principles listed in the section titled Principles and Practices in Designing Services. Consider the service design aspects listed in the section titled Aspects of Service Design. Design for known requirements and extensions. Limit the complexity of service genres and service expressions. Map documents and business functions to the data objects and behaviours (messages) of the service expressions. The state model is encapsulated by the resources accessed and manipulated through the service expressions (and their service implementations). Behaviours are the only way to cause change in the state model. Messages to service implementations are the only way to invoke the behaviour. Specify interfaces (messages, documents). Specify constraints on the implementations, but do not specify the implementation itself. Clients use only the published interfaces, never information about the implementation. Design for reuse. Design, develop, deploy and manage service implementations and applications [Marca]. Identify the overall business processes, resources and workflows within the application. Identify the participants, their roles, rights and access requirements. Determine overall performance goals and metrics. Develop a service-oriented view of the processes. Factor the overall problem space into an overall service-oriented view. Identify (or design) appropriate service genres, service expressions and resources. Determine which service expressions will be open versus which will be closed. Reuse concepts, abstractions, resources, patterns, vocabularies, etc. Connect and compose the service expressions into the overall application design. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 22 Then gather feedback on deployment and operations, and refactor as needed. Triggers for refactoring include: NB: the list is not exhaustive. NB: the list is not ordered or prioritised. NB: use proxy and adapter service patterns to address changes and version incompatibilities as needed. change to the document(s) used by service expressions change to the messages, i.e., the service expression interface change to the format or structure of the document(s) passed in messages extension of and addition to service expression behaviours overly complex service expressions (or service genres) change in algorithm when behaviours are tied to specific algorithms change in underlying hardware, software, methodologies, etc., when the design is dependent on these failure to meet performance goals identification of tight couplings transitioning closed service expressions to an open service expressions (or vice versa) NB: a change in a design choice SHOULD NOT trigger refactoring. Design Concepts for Services Much modern software is designed according to principles borrowed from object-oriented systems. Some of these key concepts can be applied and adapted to the service-oriented approach: NB: by implication, what applies to a service implementation also applies to a service instance. NB: the qualified use of “service” needs to be verified for the proper adjective throughout. abstraction: abstraction provides a means to hide details. The objective is to simplify the model, focusing only on key aspects. Service implementations accessed through message interfaces abstract details of representation and processing. Layering of service implementations upon middleware, binding to specific languages, binding to communications protocols, etc., further abstracts the service genre and service expression concepts and models from use in service implementations and applications. encapsulation: encapsulation groups data, resources, representations and behaviours into a single entity. A service genre or service expression (and its service implementation) is an encapsulation. polymorphism: polymorphism defines how the same behaviour can be used with different data, e.g., polymorphic behaviour of “+”: 1 + 2 yields 3; Monday + 2 yields Wednesday. Polymorphism has no direct analogy in the service-oriented approach; service expressions (and their service implementations) and their messages are designed to work with specific data or resources. However it is beneficial to develop a vocabulary of behaviours so that the same named behaviours applied to different representations, or that a message used in different service expressions or service implementations, are analogous. inheritance: inheritance defines a structured hierarchal representation, where properties or attributes defined at one level are available to the lower levels directly, or these lower levels may override and change the properties. Inheritance has no direct analogy in the service-oriented approach; there is no direct refinement of service genres, service expressions or exposed representations. These object-oriented concepts are augmented in the service-oriented approach with: coupling: coupling describes the dependencies among components and how components are connected to each other, i.e., what knowledge one component has of other components. Components may be tightly coupled, with many dependencies, or loosely coupled, with minimum dependencies. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 23 transactions: transactions join and coordinate multi-step processes into a single unit that either succeeds or fails. Applying these key concepts to the service-oriented approach provides these guidelines: abstraction: Hide details via abstractions. Describe service genres and service expressions in terms of the concepts, i.e., the kinds of documents or resources they manipulate, the behaviours. Provide additional elements that map the abstract concepts to their implementation details (service implementations, data models, resources, messages, bindings). Define interfaces, not implementations. encapsulation and factoring: Encapsulate resources and their behavioural modifications in service expressions (and their service implementations). Factor to provide multiple encapsulations. Factor to group related behaviours on the same document or resource from unrelated behaviours. Factor to group related behaviours on the same document or resource from the same behaviours on different types of documents or resources. Factor those items that vary from those that remain the same. Factor to permit extensions without requiring modifications. composition: Build service expressions (and their service implementations) through composition of other service expressions (and their service implementations) and other resources. Use composition as a replacement for inheritance. coupling: Use loose couplings between interacting service expressions (and their service implementations). Minimise dependencies between components. transactions: Enforce proper transactional controls and workflows. Minimise transaction dependencies and coupling between service expressions (and their service implementations). Aspects of Service Design When designing a service expression or its service implementation, the following aspects should be considered and incorporated into the resulting design and documented in the service expression description. Where appropriate, the design decisions and design choices around these aspects SHOULD be included in the service expression description. NB: the list is not exhaustive. Designers SHALL augment the list of aspects as necessary. NB: while this list focuses on service expression design, many of the same aspects SHOULD be considered when developing a service genre, reference model or service pattern. NB: there are additional aspects of software design that are not specific to service design that are not included here (e.g., use of declarative models, consistency in approach, symmetric models). NB: the list is not ordered or prioritised. NB: the qualified use of “service” needs to be verified for the proper adjective throughout. granularity and document orientation: service expressions (and their service implementations) may vary in size (number of behaviours) and complexity (of interfaces and of the behaviours provided). The service-oriented approach favours a smaller number of larger-grained service expressions, each providing a collection of related, meaningful (complex) business functions. Service expressions may provide behaviours that operate on and at the level of (complex or complete) e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 24 documents, or lower-level operations on individual fields and elements of the data representations of resources. The service-oriented approach favours a document-oriented functional model. Service expressions (and service genres) SHOULD be designed around manipulating document-oriented resources through business-oriented functions and behaviours. Service expressions SHOULD NOT be designed to provide direct manipulations of (underlying, internal) data representations. Service expressions SHOULD NOT be used to implement CRUD interfaces (create, retrieve, update, delete) on data representations. interoperability: interoperability between service implementations or between clients and service implementations motivates the service-oriented approach. In an open, loosely connected system, interoperability is achieved through the use of standards (standards, specifications and application profiles). Identify, use or adapt standards when feasible. Selection of, and conformance to, these standards SHALL BE documented. NB: conformance statements include exceptions, extensions, non conformance. scale: service expressions (and their service implementations) may be required to function over a range of use (scale). The underlying resources may range in scale (e.g., size, number, complexity). For example, will the service implementation have limited deployment or it will be widely deployed and accessible? Will the expected number of resource instances be small or very large? How might the service implementation need to change as scale of use and deployment change? Assumptions about the scale of service implementation deployment SHOULD be documented. The design of the service implementation SHALL consider scalability. latency: responses to messages and requests are not instantaneous. While the e-Framework is not designed for real-time applications, latency should be considered in the design of service expressions, service implementations and applications. What is the impact of a delay in response? What response times are acceptable? Expected and acceptable performance criteria SHOULD be documented, including information about behaviours when criteria are not met. Alternative strategies to meet performance criteria SHOULD be documented. incremental update of components: individual components (resources, applications, service implementations, standards) may be incrementally updated or versioned. A service expression (and its service implementation) SHOULD be designed so that other components or elements can be updated without breaking any service implementation. When a service expression or service implementation is dependent on a particular version or feature such that an update to that one component will break the service implementation, this dependency SHALL be documented. NB: an acceptable behaviour MAY be that the service implementation indicates that it cannot interoperate with a particular version of a document, resource or other service implementation. A service implementation SHOULD NOT fail when components are updated. reliability: there are many sources of unreliability in a service-oriented approach. Communications and messaging may be unreliable (messages may not be delivered); service instances may be unreliable (they may fail to respond, not be accessible); hardware may fail. A requestor SHALL be designed assuming the provider will not be reliable. Target performance goals for service expressions (and their service implementations) and providers SHOULD be documented. Single points of failure SHOULD be avoided, but identified when present. lack of shared state between requestor and provider: the entire state model is hidden. Service expressions (and their service implementations) expose behaviours that may not directly map to the underlying representations or state. State is accessible only via service implementations and it is difficult to obtain all of the state with large-grained service expressions. Thus different service instances and applications may have different models of state or assumptions about the current values in the state model. Service expressions (and their service implementations) SHALL be designed without relying on a shared state model. Service expressions (and their service implementations) SHOULD be designed assuming limited and potentially faulty state information. Approaches to providing shared state SHOULD be documented. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 25 transactions: business operations and workflow processes require coordinated series of messages, each of which changes the state model. Different concurrent access patterns are performing independent and potentially conflicting and incompatible changes to the state model. Transactions provide the mechanism to coordinate these messages and provide consistency in the state model. Reliability concerns imply that transaction patterns are not failsafe. The distributed network model and network latency implies that transactions may be long-lived. Transactional behaviours SHOULD be ACID (atomic, consistent, isolated, durable). Transactional behaviours and assumptions SHOULD be documented. Approaches to supporting transactional behaviour SHOULD be documented. concurrent access: service implementations (providers) may be accessed concurrently from many clients (requestors). Service expressions (and their service implementations) SHALL be designed for concurrent access. Different design solutions will impact latency, reliability and requirements to support data transactions. Independent of how the service expression is designed for concurrent access, the design of the service implementation SHALL consider concurrency. Approaches to providing concurrent access SHOULD be documented. message orientation: service expression interactions (and their service implementation interactions) are defined in terms of messages, not in terms of how the service expression is implemented or structured. Implementation details SHOULD NOT be exposed via message interfaces. Clients SHOULD NOT be dependent upon knowledge of internal structure and behaviour of the service implementation. unreliability of transport: messages and service implementation interactions are implemented upon a network transport layer that is inherently unreliable. Service expressions (and their service implementations) SHOULD be designed assuming unreliable transport. security: access to resources and to service implementations may need to be secure and controlled. Service expression descriptions SHALL describe security requirements, e.g., what to secure, what are the policies for control, what are the authentication requirements and models, what are roles and permissions, what is confidential, where is nonrepudiation required, what needs to be encrypted, when audit controls and records are needed, where rights need to be managed, etc. Security solutions and approaches SHOULD be documented. privacy: service expressions (and their service implementations) may have access to private or confidential data. Privacy concerns SHALL be documented. Approaches to ensure privacy SHOULD be documented. policy: service expressions (and their service implementations) are managed under a collection of policies, including security, trust, privacy, availability. All governing policies SHALL be documented. Approaches for describing and enforcing policies and managing service implementations SHOULD be documented. QoS: quality of service addresses target performance goals, including reliability, availability, latency, response time. All QoS goals and measurement metrics SHOULD be documented. QoS constraints (goals that must be met) SHALL be documented. Approaches to meet QoS requirements SHOULD be documented. trust: service expressions may have or assume trust relationships with other service expressions. Trust requirements and assumptions shall be documented. Approaches to supporting trust relationships SHOULD be documented. provenance: requirements for provenance of data and resources SHOULD be documented. When required, approaches to support data and resource provenance SHOULD be documented. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 26 discoverability and description: service expression descriptions SHOULD be complete in exposing all public information needed to use and understand the service expression. Formal, machine-processible service expression definitions SHALL be provided. operations and sustainment: deployed service implementations, particularly those that are used by multiple applications, may require production-level support and operations (reliability, system and data backup, scale, operational procedures). Requirements for sustainment and operational plans for service implementations SHOULD be included in the service expression and service implementation design. Sustainment and operations SHALL be considered in designing and deploying applications. service complexity: service expressions SHOULD have realistic complexity and extensibility. Factor service expressions to limit complexity. Limit extensibility to known requirements. It may be useful to factor special cases into separate service expressions. Principles and Practices in Designing Services A list of considerations in designing reference models, service genres, service expressions, service patterns, service implementations, service toolkits, resources and applications. Principles, practices and constraints are based in part on [WWW Arch, HLA]. NB: the list of issues is incomplete and unordered. NB: a structured organisation may be needed. NB: this is a more formal (normative) list than presented in the section Service Design and Factoring Process Guidelines. NB: by implication, what applies to a service implementation also applies to a service instance. NB: the qualified use of “service” needs to be verified for proper adjective throughout. unique identification of resources: resources SHOULD have unique identifiers. [PRINCIPLE] identifier opacity: anyone using an identifier SHOULD NOT infer properties of the identified resource from the identifier. [PRACTICE] version information: descriptions and specifications (reference models, service genres, service expressions, service patterns, data models, schemata) SHOULD include version information. [PRACTICE] extensibility mechanisms: descriptions and specifications (reference models, service genres, service expressions, service patterns, data models, schemata) SHOULD include extensibility information. [PRACTICE] extensibility conformance: extensions to a specification (reference models, service genres, service expressions, service patterns, data models, schemata) MUST NOT interfere with conformance to the base specification. [ PRACTICE] separation of content from presentation: specifications (reference models, service genres, service expressions, service patterns, data models, schemata) SHOULD separate content from both presentation and interaction. [ PRACTICE] communications reliability: network communications may be unreliable. All designs and implementations MUST consider communications reliability. [CONSTRAINT] e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 27 service communications: within an application, all communications with service implementations SHALL be through their message interfaces. [PRINCIPLE] abstractions: implementation and representation details SHOULD be hidden through the use of abstraction. [ PRINCIPLE] coupling: components SHOULD be loosely coupled. [PRACTICE] granularity: service expressions and service implementations SHOULD be large grained. [PRACTICE] document orientation: service expressions and service implementations SHOULD be document oriented. [PRACTICE] transactions: within an application, transactional behaviour SHALL be provided and enforced. [PRINCIPLE] Glossary / Definitions / Terminology Definitions are given in alphabetical order. Terms are capitalized when meaningful; otherwise terms are presented in lowercase. Inspirational sources for definitions are noted in brackets [ ]. Definitions have been generalised from sources and then specialised for the context of the e-Framework; they are not literal from the cited source except when quoted. NB: the list of terms is incomplete. NB: core terms used to describe and define the e-Framework are labelled CORE. Terms used in describing how the e-Framework is used or terms analogous to the core terms from other areas are labelled CONTEXT. NB: some terms defining services and the service-oriented architecture concepts are included but not used in other parts of the document. NB: all terms are nouns. REC: stakeholders need to review the entire document and identify terms to be added to the list. While the e-Framework documents should be consistent and rigorous in their use of terminology, there is no existing universal set of terms to use. Terms should be defined within the context of the e-Framework, but assume they will be misapplied and misinterpreted. Authoritative definitions for many terms do not exist. Different organisations and authors create or modify definitions to meet their needs. Many terms are used as jargon or buzzwords without any significant contextual relationship. Collections of terms may have circular definitions. Some key terms (e.g., architecture, pattern, framework) define a set of concepts, and the qualifying adjective is often omitted (e.g., software architecture, system architecture). Some terms have a long history of use within specific communities and have definitions that are specific to those communities, e.g., pattern and framework have specific meanings in defining object-oriented software. The use of Java both as an object-oriented programming language and to develop web services may make some of these overlaps in meaning particularly confusing to different audiences. abstract service: [CONTEXT] see service genre or service expression. NB: Clearly distinguishing services and service descriptions as conceptual items from service implementation as actual implementations and elements of operational systems is critical, independent of the terminology used. REC: do not use. Use service genre or service expression for abstract service definitions and service implementation for concrete service implementations, respectively. This follows practice in [WS Arch]. agent: [CONTEXT] a deployed service implementation. A service instance. REC: do not use. Use service implementation or service instance. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 28 agent design (specification): [CONTEXT] software specification used to guide implementation of an agent (a service implementation). REC: do not use. Use service implementation design (specification). application: [CORE] a deployed ICT software system or program designed to carry out tasks or solve problems that are specific to a given use or requirement. [OED] NB: in the e-Framework, an application can be either an application system or an application service. application area: [CONTEXT] a problem area or business specialty. REC: do not use. Use domain. application service: [CORE] an application that is a service implementation. A machine-to-machine interface to the implementation of a service genre or service expression, possibly composed with infrastructure service implementations. NB: since development and deployment are outside of the scope of the e-Framework, the term application is used throughout. application system: [CORE] an application deployed for end-users. application profile: [CONTEXT] customization of a standard(s) (de facto or de jure) or specification(s) for a community. The customization may be through the specification of constraints on how features are used (or not used), through the definition of extensions, or through definitions of how elements of the standard(s) are interpreted and used within the community. NB: standard or specification can be used as a generic term for any de factor standard, de jure standard, or specification. (software) architecture: [CONTEXT] the overall structure of a software system, including software components, the externally visible properties of those components, their behaviours, the relationships among them and the constraints on their use. [Ref Arch, OPF] NB: architecture has not been used as a term in the e-Framework. NB: distinct from system architecture that includes physical components, e.g., hardware, or from business/process architecture. REC: do not use. artifact: [CONTEXT] an operational collection of software without regard to its use or function. A collection of service implementations and other deployed software components. NB: this term has been used in the stack diagram. REC: do not use. behaviour: [CONTEXT] a named, defined function or capability provided by a service via its interface. Behaviour is implemented through operations on data models. [WS Gloss] blueprint: [CONTEXT] a collection of reference models that establishes the description of a framework. [SOA Blueprint] NB: the definition is a transliteration of the definition for an SOA blueprint, replacing the OASIS terminology with e-Framework terminology. NB: the OASIS SOA Reference Model [SOA RM] and Blueprint [SOA Blueprint] terminology of service, pattern, blueprint and architecture map to the e-Framework terms of service genre or service expression, service pattern, reference model and framework. NB: in architecture, a non unique graphical representation of a design, used to convert the design into an artifact; an instance of a design drawing. REC: do not use. Use reference model. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 29 classification: [CONTEXT] see service classification. REC: use the qualified term. The unqualified term is for contextual use only. client: [CONTEXT] an application or service implementation (or its service instances) that uses other service implementations (or their service instances). NB: see requestor. common service: [CONTEXT] a service genre or service expression that supports or is implemented across a wide collection of applications or domains. [e-Framework Overview] NB: there may be multiple service instances deployed for a common service. The specification of when the infrastructure must only contain a single service instance to provide the common service is part of the service description. NB: types of services are indicated through service classifications. REC: do not use. Use appropriate service classifications in the service description. composed service: [CONTEXT] a service implementation that combines elements from different service expressions, typically a domain-specific service expression with an infrastructure service expression. NB: types of services are indicated through service classifications. REC: do not use. Use appropriate service classifications in the service description. composed services model: [CONTEXT] a modelling approach for building (web) services from other services based on their interactions. Compositions are defined through (work)flow, choreography, orchestration and composition specifications (WSFL, BPEL4WS). NB: I was unable to find any references to the use of the term “composed services model”. Composite web services, service composition are used as described. REC: do not introduce. concrete service: [CONTEXT] see service implementation or service instance. NB: Clearly distinguishing services and service descriptions as conceptual items from service implementation as actual implementations and elements of operational systems is critical, independent of the terminology used. REC: do not use. Use service genre or service expression for abstract service definitions and service implementation for concrete service implementations, respectively. This follows practice in [WS Arch]. constraint: [CONTEXT] a restriction on behaviour or interaction. Constraints may be imposed for technical, policy, or other reasons, e.g., accessibility, scope, ease of evolution, efficiency, extensibility. [WWW Arch] definition: [CORE] see service definition. REC: use the qualified term. The unqualified term is for contextual use only. description: [CORE] see service description. REC: use the qualified term. The unqualified term is for contextual use only. design: [CONTEXT] a description (typically represented in a collection of documents in different forms) used by developers as the basis to convert a concept into an artifact. [OED] design choice: [CONTEXT] an arbitrary selection from equivalent alternatives. [WWW Arch] e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 30 design pattern: [CONTEXT] “systematically names, explains, and evaluates an important and recurring design in object-oriented systems.” A design pattern formally identifies key aspects of a common design useful in creating reusable object-oriented designs. [GoF]. NB: in terms of architectural design [Alexander], the collection of design patterns covers the entire design space and can be used in a generative fashion to develop a complete design for an artifact. Software design patterns are neither exhaustive nor generative. document: [CONTEXT] data represented in a defined, known format. [WS Gloss] domain: [CORE] a problem area, business specialty area, or supporting area. NB: the domains for the e-Framework include: learning, teaching, academic administration, research, e-science, information management. REC: domain has been selected (versus application area) as the term to use consistently throughout. domain-specific service: [CONTEXT] a service genre or service expression that supports or is implemented within only a single domain. [e-Framework Overview] NB: types of services are indicated through service classifications. REC: do not use. Use appropriate service classifications in the service description. e-Framework: [CORE] an “evolving and sustainable, open standards based service-oriented technical framework to support the education and research communities.” [e-Framework] expression: [CONTEXT] see service expression. REC: use the qualified term. The unqualified term is for contextual use only. framework: [CONTEXT] a collection of cooperating service genres within a domain. [GoF] a vocabulary of components (e.g., service genre, service expression and reference model) used to model concepts and behaviours within a domain or to create a particular type of infrastructure (system or environment). Associated with the vocabulary is the grammar or language used to describe how the elements are combined or constrained to create systems and environments. NB: in object-oriented software, a framework is a “set of cooperating classes that make up a reusable design for a specific class of software” [GoF]. NB: the grammars and languages are used to describe the reference models and service descriptions. genre: [CONTEXT] see service genre. REC: use the qualified term. The unqualified term is for contextual use only. identifier: [CONTEXT] an unambiguous name for a resource. [WWW Arch] REC: do not specify an identifier implementation or scheme (e.g., URI) in the overall e-Framework. implementation: [CONTEXT] see service implementation. REC: use the qualified term. The unqualified term is for contextual use only. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 31 infrastructure service: [CONTEXT] a service implementation that is widely used to provide capabilities in support of another service implementation. NB: use instead of shared service. NB: types of service are indicated through service classifications. REC: do not use. Use appropriate service classifications in the service description. instance: [CONTEXT] see service instance. REC: use the qualified term. The unqualified term is for contextual use only. managed service: [CONTEXT] a service expression with associated semantics, policies, monitoring and management controls accessible via service interfaces. [WS Gloss] NB: is there confusion between a managed service expression and a managed service instance? NB: types of services are indicated through service classifications. message: [CONTEXT] a unit of data sent from one service implementation or service instance to another. [WS Arch] messaging: [CONTEXT] transmission of messages through a network via protocols. [WS Arch] metamodel: [CORE] the overall technical description of the e-Framework elements, the overall process used to build and document these elements and the processes used to translate these elements into designs and deployed applications within the domains of the e-Framework. The model of the conceptual service-oriented approach to the e-Framework. middleware: [CONTEXT] communications software used to link requestors to providers or link support software to integrate service implementations into an application. open standard: [CONTEXT] a standard (de jure or de facto) or specification, developed collaboratively through an open, consensus-building process, that is platform independent, vendor neutral, extensible, reusable, publicly accessible, and not encumbered by royalties, licenses or constraints on use and implementation. [e-Framework Overview] pattern: [CONTEXT] see service pattern. REC: use the qualified term. The unqualified term is for contextual use only. policy: [CONTEXT] a constraint on the behaviour of an service implementation (and its service instance). [WS Arch] principle: [CONTEXT] a fundamental rule that applies to a large number of situations. [WWW Arch] protocol: [CONTEXT] a set of formal rules describing how to transmit data, especially across a network. [WS Gloss] provider (agent): [CONTEXT] see provider (service implementation). REC: do not use agent. Use provider or provider service implementation. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 32 provider (service implementation): [CONTEXT] a service implementation (or its service instances) used by other service implementations that provides the functionality and behaviour of the provider. [WS Arch, WS Gloss] reference architecture: [CONTEXT] a generalisation of the common functions, features, capabilities, and design of a software system based on multiple implemented examples. A reference architecture is instantiated to create the software architecture or design of a specific software system. [Ref Arch] REC: do not use. reference implementation: [CONTEXT] a software system illustrating the normative implementation of a standard. REC: do not use. reference model: [CORE] a description of the needs, requirements, workflows, management policies and processes within a domain and the mapping of these to a design of a structured collection of service genres and service expressions, resources, associated standards, specifications, data formats, protocols, bindings, etc., that can be used to implement software applications within the domain. [e-Framework Overview] requestor (agent): [CONTEXT] see requestor (service implementation). REC: do not use agent. Use requestor or requestor service implementation. requestor (service implementation): [CONTEXT] an application or service implementation (or its service instances) that interacts with other (provider) service implementations (or their service instances) requesting that the providers perform some function for the requestor. [WS Arch, WS Gloss] resource: [CORE] something that has a representation, is owned, controlled (by policy) and is uniquely identified. [WS Arch] SERVICE: [CONTEXT] a general operational capability (e.g., a JISC production service), not an element of the e-Framework. NB: the formatted term SERVICES is used to denote general capabilities, not service elements of the e-Framework. service: [CONTENT] a resource characterised by the functionality (performance of tasks) it provides. To be used, a service must be implemented. A definition of function and scope is specified through statements of behaviour and data representation. A service is a type of resource. [WS Arch] NB: the narrow technical terms used in the e-Framework should not be confused with the broader contextual terms of “service” or SERVICE. REC: avoid the use of “service”. Do not use as a definition of an element of the e-Framework to describe capabilities. Use specific terms, e.g., service genre, service expression. REC: when used, service is an adjective for other nouns, or as a type of service classification. shared service: [CONTEXT] no definition provided. NB: types of service are indicated through service classifications. REC: do not use. Use appropriate service classifications in the service description. service artifact: [CONTEXT] see service instance. REC: do not use. Use service instance. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 33 service description: [CORE] an informal narrative and graphical description of a service genre or a service expression presented in a normative format. It documents all aspects and characteristics of the service genre or service expression. NB: the service description is informal, human readable. The service definition is formal, machine processible. NB: description is also applied to other elements, e.g., service pattern, reference model. REC: use the qualified terms: service genre description, service expression description, reference model description, service pattern description. service definition: [CORE] a machine-processible definition or specification of the interface to a service expression and the semantics of the service expression. It defines the message formats, datatypes, transport protocols, and transport serialisation formats that should be used between the requester service implementation and the provider service implementation. Formats, datatypes, protocols, etc., should be based on defined standards and specifications. The service definition represents an agreement governing the mechanics of interacting with the service expression. [WS Arch] REC: use the qualified term service expression definition. service expression: [CORE] a specific set of functionality and behaviours described in terms on interfaces, messages, standards and technologies. A specialisation of a single service genre by specification of exact interfaces and standards used. NB: different choices of interfaces, standards or technologies for a single service genre yield different service expressions. service genre: [CORE] a generic or abstract capability expressed in terms of behaviours in support of a process. Related classes of behaviour. The overall concept of a service without regard to how it is converted into an operational capability. A service genre is independent of specific interfaces, technologies and standards. service implementation: [CORE] operational code providing the complete functionality specified in a service expression definition. A component of the computational infrastructure that implements the functionality defined by a service expression. A computational resource. [WS Arch] service implementation design (specification): [CONTEXT] software specification used to guide development and programming of a service implementation, derived from a service expression description. The design is created by selecting and specialising elements from the service expression description, combined with design choices and the addition of constraints imposed by a particular community or from the technologies that will be used to implement and develop the service implementation. NB: multiple different designs can be derived from the same service expression description, but all will have the same behaviour, interfaces and functionality. Differences will be internal to the service implementation and not exposed. service instance: [CORE] a deployed, operating service implementation. Code bound to an identified network end point (e.g., a network address). The service implementation may also be bound to specific resources. NB: the same service implementation may be deployed multiple times. service pattern: [CORE] description of the key aspects of a common design for an operation, behaviour or communication used in creating a reusable service-oriented design. Patterns are identified from examples, not created. [GoF] NB: Patterns may be composed of service genres XOR service expressions. NB: distinct from architectural, application, domain, design, business process, enterprise, organisation, or user interface patterns. NB: the definition is a transliteration of the definition for design patterns, replacing object-oriented terminology with serviceoriented terminology. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 34 service toolkit: [CORE] a reusable collection of service implementations designed to be used in any application or with any reference model. [GoF] NB: a service toolkit is typically distributed with auxiliary software (sample applications, data). NB: the JISC-specific definition “a service-oriented interface (adapter, façade, proxy) for a legacy application” conflicts with the use of toolkit in object-oriented software and other areas. shared service: [CONTEXT] no definition provided. NB: shared service is a specific JISC term. NB: types of service are indicated through service classifications. REC: do not use. Use appropriate service classifications in the service description. soa (service-oriented approach): [CORE] a software design methodology using networks of loosely-coupled, communicating services. [WS Arch] SOA (Service-Oriented Architecture): [CONTEXT] software architecture for a service-oriented approach implemented using a particular technology, e.g., CORBA, web services. SOAs enable domain-oriented operations through message exchange within a network of services. Services and messages have platform-independent formal definitions, based on open standards. They define standard interfaces and protocols to encapsulate information tools as services that clients can access without knowledge or control of their inner workings. [WS Arch, Foster] NB: soa is a generic concept. SOA is that concept implemented using a particular technology, typically web services. state: [CONTEXT] the representation of a resource (attributes, values, properties) at some point in time. [WS Gloss] state model: [CONTEXT] an idealised model of the real world represented through resources, each of which has state. toolkit: [CONTEXT] see service toolkit. NB: in object-oriented software, a toolkit is “a set of related and reusable classes designed to provide useful, general purpose functionality”. [GoF] REC: use the qualified term. The unqualified term is for contextual use only. web service: [CONTEXT] “a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processible format (specifically WSDL). Other systems interact with the web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialisation in conjunction with other Web-related standards.” [WS Arch, WS Gloss] web service definition: [CONTEXT] a service definition for a web service. A WSDL document. [WS Arch] workflow: [CONTEXT] the paths through a networked structure of tasks and activities. The steps in a business process. Simplified Semantic Model of the e-Framework A diagrammatic representation of the relationships between the elements of the e-Framework: frameworks, reference models, service genres, service expressions, service implementations, service toolkits, applications, etc. The semantic model is inspired by those used to define the Web Services Architecture [WS Arch]. REC: while a formal semantic model (e.g., an OWL representation) could be developed, this is premature and should be deferred until there is feedback and consensus that the model is correct. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 35 The diagrams below are placeholders and need to be generalised from [WS Arch] and the [SOA RM] to just soa and the e-Framework. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 36 Issues This section outlines a set of issues identified during the development of this document and provides preliminary recommendations for their resolution. NB: the order of presentation is not significant. NB: the list of issues in incomplete. NB: issues that have been discussed or resolved in whole or part have not been eliminated from the list. Terminology: What is the final resolution for terminology and definitions? Will any terms be changed? Are additional terms needed? NB: the document is structured so that core terms are placeholder text and the actual terms used can be substituted automatically. REC: circulate and discuss among the key stakeholders (e-Framework Operations Group, the e-Framework Development and Maintenance Group, and the JISC e-Framework Working Group) and finalise terminology and definitions before public circulation of the document or production of derivative works. Service Classification: To minimise the number of elements and layers of descriptions, service classifications are used to characterise all core elements of the e-Framework (reference model, service genre, service expression and service pattern descriptions). A set of formal service classifications to be used in the descriptions is needed. The same service classification scheme is proposed for use with all elements, i.e., there is not a separate service pattern classification scheme. Significant examples may not exist to develop a complete service classification scheme at this time. REC: develop a service classification scheme by examining actual descriptions. REC: while a complex structured classification scheme could be developed, start with a simple flat list of classification facets and defined values. While a simple flat list is less descriptive, it is easier and less costly to develop and maintain. Simple classifications should be sufficient for service discovery. REC: review the service classification scheme to determine if classification facets should be developed or specialised for different elements. Conformance: Is conformance measured for any elements of the e-Framework? If so, how? Are the e-Framework descriptions or processes normative? REC: defer any consideration of conformance or making the descriptions and processes normative. Open Standards and Specifications: While the focus of the e-Framework is open standards, this document does not identify either domain-specific open standards used within the domains of the e-Framework or underlying technology standards used in documenting service descriptions or in developing service implementations or applications. Should there be an identified set of (recommended) standards? REC: identifying standards should be deferred to actual reference model, service genre, service expression or service pattern descriptions. Consider maintaining a list of standards and usage recommendations for developers. Service implementation designs and application designs will need to refer to appropriate standards. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 37 Registries: Will there be a registry of reference model, service genre, service expression and service pattern descriptions, service toolkits, service implementations, etc.? REC: develop a simple registry for the core descriptive elements of the e-Framework (reference model, service genre, service expression and service pattern descriptions). Develop separate registries for service implementations, service toolkits and machine-processible elements used to implement applications. Service versus SERVICES: Current background documents [e-Framework, e-Framework Overview] focus on the concept of a service. There may be confusion over service as a technical element of the e-Framework and the broader provisioning of SERVICES to the community, independent of how these are implemented or deployed. Terminology such as user services (tool, application, portal) may not be sufficient to explain how the service implementations are deployed to develop systems and applications. The distinction between service as a concept (service genre, service expression) and service implementation as its implementation may further confuse the e-Framework stakeholders. REC: provide additional overview documents presenting how the e-Framework is used in building ICT systems for learning, teaching, research, etc. REC: avoid the unqualified use of service in the formal documentation. REC: use service only as an adjective to another noun. Application Design: The e-Framework is a service-oriented approach. It does not describe or dictate a particular approach to building applications from service implementations, e.g., use or type of middleware. Is the collection of reference model, service genre, service expression and service pattern descriptions sufficient to build interoperable applications and systems? Can such decisions be deferred to application designers and developers? REC: discuss among the key stakeholders the scope of the e-Framework and what additional information needs to be provided to application developers and what is needed to manage application deployment. Implementation Guidance: Will the e-Framework include implementation guidance (to aid in interoperability) for designing web services and XML-based document formats? REC: provide recommendations on designing web services and XML-based document formats. Formal Description Formats: Should the formal description of a core element of the e-Framework (reference model, service genre, service expression, service pattern) be specified in a formal way, i.e., should there be a formal description format for these elements of the e-Framework? REC: consider developing an XML document format (e.g., an XSD) for use in describing the elements of the e-Framework. Reference Model Description Format: Is the reference model description format sufficiently detailed and precise? Are all critical items included? Is there sufficient guidance to develop consistent descriptions? REC: attempt to describe several existing (ELF) reference models in the proposed format. Have independent individuals or teams develop the reference model descriptions. Refine the description format based on results of this process. Other Modelling Approaches: Should the descriptions, formats, etc., be refined based on considerations from other modelling approaches, e.g., the Rational Unified Process (RUP), OMG’s Model Driven Architecture (MDA), or the OASIS Business Process Modelling (BPM)? REC: defer any consideration of other approaches until there is sufficient feedback and consensus to the overall approach outlined herein. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 38 Prescriptive Development Methodologies: How prescriptive should the e-Framework be in terms of describing a methodology or process for designing (identify, create, document) service genres, service expressions, service patterns and reference models? This document prescribes the description and document format for each, but not the process used to create same. REC: this document and the e-Framework are descriptive and definitional (it is “what”). The document does not define “how” to apply any of the definitions or descriptions within an overall development and deployment process. The e-Framework should not be prescriptive in processes, only in documents. Methods defined herein are offered as guidance. REC: best practices of how to use the e-Framework should be gathered and documented to provide additional guidance on its use. What is a Resource: The term resource denotes a generic concept. It is not the same as the concept of an information asset within the information or library community, or the concept of a resource wrapped by a web service from the grid community. In the e-Framework, access to resources is defined through service genres, service expressions and controlled and managed by service implementations. REC: in supporting material, provide a clear presentation of how resources are modelled and used in the e-Framework. Domain Complexity: The e-Framework formally covers a fixed set of major domains. The concepts can be applied to smaller problem areas. The elements of the e-Framework can be applied independently of granularity or size of domain. Reference models can be at the domain or subdomain level. REC: in supporting material, provide a clear presentation of the applicability of the elements of the e-Framework to domains of different sizes and complexities. Annotated Bibliography [Alexander] Alexander, C., et al., A Pattern Language: Towns, Buildings, Construction, Oxford University Press, 1977, ISBN: 0195019199 The source of “pattern” in software engineering. [e-Biz Patterns] Adams, J., Koushik, S., Vasudeva, G., Galambos, G., Patterns for e-business: A Strategy for Reuse, IBM Press, 2001, ISBN: 1931180027 [e-Framework] The e-Framework for Education and Research http://www.e-framework.org/ The e-Framework web site. [e-Framework Overview] Olivier, B., Roberts, T., Blinco, K., The e-Framework for Education and Research: An Overview, Version R1, July 2005 http://www.e-framework.org/resources/eframeworkrV1.pdf [FRBR] Functional Requirements for Bibliographic Records, International Federation of Library Associations and Institutions, 1998, ISBN: 359811382X http://www.ifla.org/VII/s13/frbr/frbr.pdf Presentation of the FRBR model. [Foster] Foster, I., “Service-Oriented Science” Science 6 May 2005 Vol. 308, no. 5723, pp. 814 – 817, DOI: 10.1126/science.1110411 A general discussion of how to build a “soa” information architecture for e-science. The discussion focuses on going from manual processes to automated ones. Critical problems to address are: interoperability (services and data), scale, management (including sustainment), QC (for data, metadata [including provenance], services), and the separation of concerns (domain-specific services, domain-independent services [management, registries, orchestration] and physical infrastructure). [GoF] Gamma, E., Helm, R., Johnson, R., Vlissides, J., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995, ISBN: 0201633612 The classic book on design patterns. It introduces the notation used to describe design patterns and includes a catalogue of patterns. The focus is on object-oriented software. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 39 [HLA] IEEE Standard for Modelling and Simulation (M&S) High Level Architecture (HLA) — Framework and Rules, IEEE Std 1516-2000, The Institute of Electrical and Electronics Engineers, Inc., 21 September 2000, ISBN: 0-7381-2620-9 HLA defines a model of interacting simulation service implementations (federates) that operate within an overall simulation environment with a corresponding management and communications infrastructure (federation). Rules for federates and federations have applicability to services and applications. [Marca] Marca, D., Open Process Frameworks: Patterns for the Adaptive e-Enterprise, Wiley-IEEE Computer Society Press, 18 August 2005, ISBN: 0471736112 Describes a process that can be used to map business requirements and workflows to a net-centric model. [OED] Oxford English Dictionary, Oxford University Press, 2005 http://dictionary.oed.com/ General definitions. [OPF] Open Process Framework http://www.opfro.org/ OPF is a framework for defining software development; an alternative to the Rational Unified Process (RUP). The site contain an interesting glossary of terms, focusing on software modelling (in the OO sense) and a descriptive template for describing components and processes similar to the format used to describe design patterns. [RFC 2119] Bradner, S., Key words for use in RFCs to Indicate Requirement Levels, IETF RFC 2119, March 1997 http://ietf.org/rfc/rfc2119.txt Definitions of normative terms used such as SHALL, SHALL NOT, etc. [Ref Arch] Gallagher, B., Using the Architecture Tradeoff Analysis Method to Evaluate a Reference Architecture: A Case Study, Technical Report, CMU/SEI-2000-TN-007, June 2000 http://www.sei.cmu.edu/publications/documents/00.reports/00tn007/00tn007.html Contains working definitions of architecture, reference architecture and presents an overview of a case study of how they are used in software engineering. [SOA Blueprint] SOA Blueprints, OASIS Draft, 19 December 2005 http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-blueprints Presents a model for using patterns (reference models in e-Framework terms) to define systems based on service-oriented architectures. TODO: incorporate definitions, etc., into the rest of the document. [SOA RM] MacKenzie, C. M., et al., Reference Model for Service-Oriented Architectures, OASIS Working Draft 11, 15 December 2005 http://www.oasis-open.org/committees/download.php/15966/wd-soa-rm-11.pdf OASIS’s model of a set of concepts and their relationships to enable designers and developers to understand and describe service-oriented systems. TODO: incorporate definitions, etc., into the rest of the document [WS Arch] Booth, D., et al., Eds., Web Services Architecture, W3C Working Group Note, 11 February 2004 http://www.w3.org/TR/ws-arch/ W3C’s conceptual model of web services and their role within a larger SOA. It includes a set of definitions of components and conceptual models of the relationships among these components. Many of the core concepts are independent of a web orientation and can be applied to more general service-oriented architectures. [WS Gloss] Hass, H., Brown, A., Web Services Glossary, W3C Working Group Note, 11 February 2004 http://www.w3.org/TR/ws-gloss/ A concise set of definitions used by W3C in describing their Web Services Architecture [WS Arch]. [WS OWL] Paolucci, M., Srinivasan, N., Sycara, K., OWL Ontology of Web Services Architecture Concepts http://www.w3.org/2004/02/wsa/ Formal OWL ontologies of the W3C Web Services Architecture [WS Arch]. e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 40 [WWW Arch] Jacobs, I., Walsh, N., Architecture of the World Wide Web, Volume One, W3C Recommendation, 15 December 2004 http://www.w3c.org/TR/webarch/ A summary of the core components and key constraints, principles and design choices underlying the web. The principles and practices can be applied in designing services. Change Log Version 0.5 0.6 0.7 Release Date 2006-01-12 2006-01-16 2006-02-06 Comment First partial release for internal review by RM group. First complete release for internal review by RM group. Document reordered, terminology changed. The document uses Word autotext field codes for all core terms. The field code names and their values are defined below. Changing the autotext value (change the text value, select it, insert/autotext/new, enter the tag name) and performing a document update (Alt-a, F9) will change the text throughout the document. Setting tools/options/views/field codes:always will shade in gray all autotext in the document. NB: codes are not case sensitive. NB: individual codes and values must be defined for each case of the value in the document. NB: values in the list below are not field codes. Code Value ef-rm ef-rmic ef-rmac ef-sg ef-sgic ef-sgac ef-sx ef-sxic ef-sxac ef-si ef-siic ef-siac ef-sn ef-sp ef-spic ef-spac ef-st ef-sclass ef-sclassic ef-sclassac ef-mm ef-mmic ef-dom ef-domic Domain ef-bs ef-bss ef-bigs ef-bigss ef-app ef-appic ef-des ef-desic ef-def ef-defic ef-res ef-resic reference model Reference model Reference Model service genre Service genre Service Genre service expression Service expression Service Expression service implementation Service implementation Service Implementation service instance service pattern Service pattern Service Pattern service toolkit service classification Service classification Service Classification metamodel Metamodel domain SERVICE SERVICES service Service application Application description Description definition Definition resource Resource e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 41 Additional Diagrams for Inclusion / Adaptation [SOA Blueprint] [SOA Blueprint] e-Framework Definitions and Terminology V0.7 2016-05-31 02:38:46 AM 42