Specification - Plastic$Header: /cvsroot/ist-plastic/Plastic/web/docs/plastic0_3.html,v 1.1 2006/07/10 11:29:17 jwskene Exp $ This is the EMOF translation of the conceptual model for PLASTIC, based on Deliverable 1.1 (see http://www-c.inria.fr:9098/plastic/deliverable/year-1). This preamble establishes the basis for interpreting the specification. The specification is written in a combination of three languages: English, a concrete syntax for EMOF, and OCL2. EMOF and OCL are defined respectively by the following specifications: - The OMG MOF 2.0 Core Final Adopted Specification Available: http://www.omg.org/cgi-bin/doc?ptc/2003-10-04 - The OMG UML 2.0 OCL Final Adoped Specification Available: http://www.omg.org/cgi-bin/doc?ptc/2003-10-14 The relationship between the EMOF concrete syntax and the EMOF abstract syntax is straightforward. It is implemented in the JavaCC grammar contained in the UCL MDA Tools project on sourceforge.net in the file EMOFOCL/uk/ac/ucl/cs/emofocl/parser/emof.jj The language definition consists of a model of SLAs and the service environment that forms their context. The part of the model that models SLAs defines the abstract syntax of the language. The relationships between the syntactic part of the model and the part of the model modelling services define the semantics of the language. Disregarding any statement to the contrary made in the MOF or OCL2 specifications, this is a model of real-world objects and relationships, at a particular level of abstraction. The types of services, parties and data described in the model are descriptions of these things as they exist in the real world. The types of specification artifacts such as SLAs, and parts of these artefacts, are descriptions of concrete artefacts in the real world. This specification offers several things: 1. A model of the commonly understood reference concepts for the Plastic project and architecture. and 2. A definition of when a scenario can be considered to be an instance of this Plastic model, and therefore a Plastic scenario. and 3. A definition of how the parties interacting with the Plastic architecture should behave, for example when they are bound by SLAs. and 4. Informal comments on the use of the model and its meaning, which are not definitive. A scenario in the real world can be considered to be a Plastic scenario under the following conditions: 1. All objects in the real world relevant to the scenario conform to one of the concrete types defined in this specification, according to the definition of type conformance given below. For every type of real-world object relevant to scenarios, we offer: 1. A definition of the type in our concrete syntax for EMOF, including a name (in English), properties with names (in English), and a full type definition according to the EMOF specification. and 2. A comment on the type, in English, that is labelled "Definitive:" and 3. A comment on each property, in English, that is labelled "Definitive:" and 4. Possibly one or more type invariants expressed using OCL2, labelled "Wellformedness:". These constraints must always hold true in any situation in which an agreement on a SLAng SLA can be said to exist. The English description accompanying these constraints is not meaningful for the purposes of determining type conformance, but is intended to assist human interpretation of the accompanying OCL constraint. and 5. Any number of comments on aspects of the type labelled "Informal:". These comments are not definitive of the language, but are intended to aid comprehension of the definitive parts of the specification. A real-world object under inspection can be interpreted as conforming to a type described in this model if: a. It is compatible with the definitive description of objects of this type given in this specification. and b. It has all of the properties of objects of this type, and all those properties are compatible with the definitive descriptions of the properties given in this specification, and the values of those properties conform to the definitions of the types of the respective properties given in this specification, per the definition of compatibility defined here. and c. It meets all "Wellformedness" constraints on those objects defined in this specification, as per the semantics of OCL2, and the interpretation of all properties as objects conforming to types described in this specification. How parties should behave: Parties and their behaviour are construed as objects conforming to types in the model. They should therefore behave according to the descriptions and constraints associated with the model. If parties violate these constraints, for example by refusing to participate in the administration of an SLA, then a scenario may no longer be considered to be a normal Plastic scenario, and the Plastic project will not formally address these cases. Informal advice: Non-definitive comments in this specification are labelled as "Informal:". Contents:
Package - ::conceptualmodelDefinitive: The conceptual model package contains types representing the key concepts of Plastic at their highest level of abstraction. Class - ::conceptualmodel::LocationInformal: Location is an identifier of a context and it can be related both to physical and logical context. This entity is useful to model mobility in the PLASTIC platform. Properties:
Operations:Invariants:Class - ::conceptualmodel::AdaptionSpecsInformal: This entity models the rules used to adapt a software component to a specific context. Properties:
Operations:Invariants:Class - ::conceptualmodel::SoftwareComponentInformal: A software component can be a COTS, a newly implemented one, or an Assembled component. Properties:
Operations:Invariants:Class - ::conceptualmodel::ComponentDescriptionInformal: Component Description contains functional and non-functional specifications of the software component it corresponds. Among non-functional aspects the PLASTIC platform requires that QoS attributes of the component are explicitly defined. Properties:
Operations:Invariants:Class - ::conceptualmodel::ContextDescriptionInformal: This entity represents the information the PLASTIC platform is able to retrieve from the environment, suitably structured. In general this information is partial since it is too heavy (and useless) to gather the complete information on context. It contains descriptions of the (logical and physical) available resources. Properties:
Operations:Invariants:Class - ::conceptualmodel::ActorInformal: a person (superclass for Service Developer, Service Provider, Service Consumer, Service Integrator, Service Registry, and Component Assembler). Properties:Operations:Invariants:Class - ::conceptualmodel::ComponentAssemblerExtends: ::conceptualmodel::Actor Informal: this entity identifies the actor responsible of composing Software Components into an Assembled Component. Properties:
Operations:Invariants:Class - ::conceptualmodel::AssembledComponentExtends: ::conceptualmodel::SoftwareComponent Informal: An assembled component is Software Component. Properties:
Operations:Invariants:Class - ::conceptualmodel::ProvidedFunctionalityInformal: A provided functionality is a service [TODO] Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceDeveloperExtends: ::conceptualmodel::Actor Informal: a Service Developer is an Actor and it identifies the developer of a software service. It may coincide with the Service Provider. Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceProviderExtends: ::conceptualmodel::Actor Informal: a Service Provider is an Actor providing software services for future usage when these are implemented. It is network addressable. It accepts and executes requests from Service Consumers. The Service Provider may coincide with the Software Developer. Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceSpecificationInformal: This entity contains information about a service. Properties:
Operations:Invariants:Class - ::conceptualmodel::ContextInformal: This entity represents the logical and physical context in which the service will be executed. Properties:
Operations:Invariants:Class - ::conceptualmodel::ComposedSoftwareServiceExtends: ::conceptualmodel::SoftwareService Informal: a Composed Software Service is a Software Service. This entity identifies software services when they result from the composition of other software services. Properties:
Operations:Invariants:Class - ::conceptualmodel::SoftwareServiceExtends: ::conceptualmodel::ProvidedFunctionality Informal: a Software Service is a Provided Functionality. This entity model a simple Software Service. Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceRegistryExtends: ::conceptualmodel::Actor Informal: the Service Registry is an Actor modelling a network-based directory, possibily distributed, that contains available services, building upon service discovery technology. It accepts and stores service descriptions from Service Integrator. Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceIntegratorExtends: ::conceptualmodel::Actor Informal: The Service integrator is an Actor, responsible for the composition of Software Services and Composed Software Services, to obtain more complex services (as required by Service Consumers). Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceConsumerExtends: ::conceptualmodel::Actor Informal: the Service Consumer is an Actor interested in Software Services. Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceRequestInformal: a request for a Service (expressed by a Service Consumer). Properties:
Operations:Invariants:Class - ::conceptualmodel::AbstractServiceInformal: This entity models Abstract Services according to the SecSE model, see p.89 of D1.1. Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceDescriptionInformal: the Service Description associated to Software Services. Properties:
Operations:Invariants:Class - ::conceptualmodel::AvailableResourcesSpecsExtends: ::conceptualmodel::Context Informal: Available resource Specs is (part of) a Context and it contains the description of the resources available at the service consumer side (in other words, it contains specifications about the device the service consumer uses). Properties:
Operations:Invariants:Class - ::conceptualmodel::ServiceRequestRequirementsInformal: the Service Request Requirements associated with a Service Request. These cover functional and non functional aspects. Properties:
Operations:Invariants:Class - ::conceptualmodel::SLAInformal: see the package slang. Properties:Operations:Invariants:Class - ::conceptualmodel::ServiceAdditionalInformationInformal: (Customer-Side) Service Additional Information contains user supplied information about a service. Such information is collected and stored by the user during and after the execution of the service. It contains usage history, the satisfaction degree of the service, information related to execution environments, the profile of the typical user of the service and the typical access devices used. Properties:
Operations:Invariants:Package - ::typesInformal: Contains types used in both the syntactic or semantic model. Enumeration - ::types::TimeUnitDefinitive: An enumeration type used to indicate a unit of time associated with some quantity in the model.
Class - ::types::PercentageDefinitive: In the syntactic model, indicates a percentage written in an SLA. In the services model, this is the type of features of an object that can be interpreted as a degree of completeness of some totality. Properties:
Operations:Invariants:
Class - ::types::DurationDefinitive: In the syntactic model a duration is the specification of a length of time. In the services model, a duration is either an actual length of time, or a record of a length of time. Properties:
Operations:
Invariants:
Class - ::types::DateDefinitive: In the syntactic model a date is the specification of an instant in time. In the services model, a duration is either an actual instant time, or a record of an instant of time. Properties:
Operations:
Invariants:Primitive type - ::types::RealDefinitive: In the syntactic model, indicates real numbers written into SLAs. In the service model, this is the type for attributes of an object that can be interpreted as having a value within a continous range. Equivalent to the OCL real type. Primitive type - ::types::BooleanDefinitive: In the syntactic model, indicates a value of true or false written into SLAs. In the service model, this is the type for attributes of an object that can be interpreted as being either true or false. Equivalent to the OCL boolean type. Primitive type - ::types::IntegerDefinitive: In the syntactic model, indicates an whole number written into an SLA. In the service model, this is the type for attributes of an object that can be interpreted as being a natural quantity. Equivalent to the OCL integer type. Primitive type - ::types::StringDefinitive: In the syntactic model, indicates some text included in an SLA. In the service model, indicates some information present in the domain. Equivalent to the OCL string type. Package - ::slangInformal: The slang package contains type specifications for SLAs expressible in the SLAng language and their component expressions. Subpackages contain types specific to particular kinds of SLA, for example electronic service SLAs. Abstract class - ::slang::SLAExtends: ::conceptualmodel::SLA Definitive: SLAng is a language for expressing SLAs. Concrete SLAs otherwise conforming to this type and its related SLAng syntactic types are instances of this class if and only if the parties described in the concrete SLA also agree that the SLA is in force. Properties:
Operations:Invariants:Abstract class - ::slang::AdministeredSLAExtends: ::slang::SLA Definitive: Some types of SLA are administered, meaning that the client and provider consult on the evidence upon which the determination of violations will be based. SLAs that are mutually monitorable, but not arbitratable by a third party may need to be administered in order to maintain trust relationships between the parties. Properties:
Operations:
Invariants:
Class - ::slang::AdministrationDateDefinitive: An administration date defines the end of an administrative period for an SLA, and a subsequent deadline by which the SLA must have been administered for that period. Properties:
Operations:Invariants:
Class - ::slang::TermsDefinitive: Every SLA contains a set of terms, which are definitions of the things in the real world that the SLA constrains, but not specifically what the constraints are - these are described in the conditions section of the SLA. Different kinds of SLA refer to different types of things, but every SLA expressible in SLAng must define at least who the provider of the service is, and who the client is. Properties:
Operations:Invariants:Abstract class - ::slang::ConditionsDefinitive: All SLAs feature a set of conditions, which specify the parameters for the constraints imposed on associated services by the SLA. Properties:
Operations:Invariants:Abstract class - ::slang::DefinitionDefinitive: The terms of an SLA contain a number of definitions of various types of things in the real world. Properties:
Operations:Invariants:Abstract class - ::slang::PartyDefinitionExtends: ::slang::Definition Definitive: A definition of some person or organisation with a role to play in the service provision scenario. Properties:
Operations:Invariants:Class - ::slang::ClientDefinitionExtends: ::slang::PartyDefinition Definitive: A client definition is a type of party definition identifying the party that will act as the client to the service constrained by the SLA. Properties:
Operations:Invariants:Class - ::slang::ProviderDefinitionExtends: ::slang::PartyDefinition Definitive: A provider definition is a type of party definition identifying the party that will act as the provider of the service constrained by the SLA. Properties:
Operations:Invariants:Abstract class - ::slang::ServiceDefinitionExtends: ::slang::Definition Definitive: A service definition identifies the service being constrained by an SLA. Properties:
Operations:Invariants:Class - ::slang::PenaltyDefinitionExtends: ::slang::Definition Definitive: A penalty definition is a pre-agreed penalty that some party will have to pay if a violation of a particular type occurs Properties:
Operations:Invariants:Class - ::slang::StateDefinitionExtends: ::slang::Definition Definitive: A definition of a state of the service or another aspect of the real world. The state of the real world may effect the application of condition clauses. Informal: In order to preserve the property of monitorability for ES SLAs, authors of the SLA should only refer to states the occupancy of which can be assumed to hold, or can be unambiguously determined from the history of service usages presented in any account of the behaviour of the service. Properties:
Operations:Invariants:Class - ::slang::ScheduleDefinitive: Schedules are part of the specification of when conditions in an SLA apply. The conditions specified in an SLA need not all apply at the same time. Moreover, the specification of when the conditions apply may need to be complex. Therefore all condition clauses must be associated with one or more schedules. Informal: The effect of schedules on the determination of violations is defined by the OCL definitions contributing to the definition of violation invariants. Each schedule expresses a number of cycles of a specified period. Within these periods, associated condition clauses first apply for a particular duration, then do not apply for the remainder of the duration. These cycles begin at a specified start date and then cease at a specified end date, which need not be a whole number of cycles later. Any clause may be associated with several schedules, and the clause applies whenever any of its schedules apply. By combining schedules in this way, complicated patterns of application can be associated with clauses. Using schedules, it is possible to specify that several conditions clauses of the same kind apply simultaneously. Depending on the definition of violation behaviour for the clause this may result in several penalties being applied, or only the penalty from the clause that in some sense applies the most restrictive constraint. Properties:
Operations:
Invariants:Abstract class - ::slang::ConditionClauseDefinitive: All SLAs will define a number of condition clauses, which specify the parameters for the constraints implied by the SLA on the objects in the real world to which it applies. Properties:
Operations:Invariants:Abstract class - ::slang::ScheduledClauseExtends: ::slang::ConditionClause Definitive: Some types of condition clause are associated with some schedules, with the interpretation that the constraints implied by the clause only apply when any of its associated schedules apply. Properties:
Operations:
Invariants:Package - ::servicesInformal: This package contains types definitions for all of the types of things that SLAng SLAs describe and constrain. Class - ::services::PartyDefinitive: Parties are people, groups or organisations who can perform some role in a service provision scenario, for example being either the client or provider of a service. Properties:
Operations:Invariants:Abstract class - ::services::AssetDefinitive: Assets are objects in the real world that are identifiably the property and hence responsibility of some party. Properties:
Operations:Invariants:Abstract class - ::services::ServiceExtends: ::services::Asset Definitive: Parties may own services, which are a type of asset. Properties:
Operations:Invariants:Class - ::services::ServiceContextDefinitive: Services exist in a wider context, encompassing all aspects of the world relevant to the behaviour of the service. Properties:
Operations:
Invariants:
Abstract class - ::services::EventDefinitive: An event is the completion of some activity at a specific instant of time. Properties:
Operations:Invariants:Class - ::services::StateDefinitive: A possible condition of the service context. Properties:
Operations:Invariants:
Class - ::services::StateTransitionDefinitive: The occurrance of events may trigger a change of state in the service context. Properties:
Operations:Invariants:
Class - ::services::ViolationDefinitive: Violations are determined to have occurred when the behaviour of a system or a party associated with an SLA is inconsistent with the conditions established in a SLAng SLA. Violations are always the fault of a specific party, and may result in penalties being levied against that party, depending on what has been agreed in the SLA. Properties:
Operations:
Invariants:
Abstract class - ::services::EvidenceDefinitive: Evidence is any kind of information presented by a party for the purpose of determining whether an SLA has been violated. Properties:
Operations:
Invariants:Abstract class - ::services::ReportDefinitive: Reports are communications between parties that are not a technical part of the delivery or use of a service. Informal: It is sometimes necessary for parties to communicate in a manner that does not use the service being constrained by the SLA. For example, if the service is broken, the client may not communicate with the server, but will wish to notify the server that an error condition needs to be rectified. Also, In the electronic service scenarios covered by our ES SLAs, there is also no way for the service provider to initiate communications with the client using the service, he must wait until the client submits a request. However, the service provider needs to communicate some information to the client when an error condition has been rectified. Reports are an abstraction of these communications, and may in fact be emails, telephone calls, carrier pigeon, or any other appropriate form of communication between the parties. Properties:
Operations:Invariants:Class - ::services::ReportRecordExtends: ::services::Evidence Definitive: A report record is evidence presented by a party to the effect that a particular report was sent at a particular time. Properties:
Operations:Invariants:Class - ::services::AdministrationExtends: ::services::Event Definitive: An administration is an event indicating the culmination of the activity of the parties performing a reconciliation of their accounts of the service provision scenario for the administration period prior to the administration, and then calculating violations based on the reconciled account. Properties:
Operations:Invariants:
Class - ::services::ReconciliationExtends: ::services::Event Definitive: Reconciliation is the first stage in an administration of an SLA. The parties to the SLA submit accounts of the service behaviour as they recorded it over the period being administered. These accounts are then reconciled into a single account on which violation calculations are to be based, according to the reconciliation procedures specified in the SLA and agreed on by the parties. Properties:
Operations:Invariants:
Class - ::services::ViolationCalculationExtends: ::services::Event Definitive: Violation calculation is the second stage in the administration of an SLA. Violations should be calculated in a manner equivalent to the evaluation of the violation calculation operations specified in this specification, over the account resulting from the prior reconciliation in the administration of which this calculation forms a part, with the evidence interpreted as objects conforming to the evidence types specified in this specification. Properties:
Operations:Invariants:
Class - ::services::AccountDefinitive: An account is a collection of evidence. It is either submitted by a party prior to reconciliation, or is the result of several reconciled accounts following reconciliation. Properties:
Operations:
Invariants:
|