Service based Software Specification
|
|
|
- Emil Tucker
- 9 years ago
- Views:
Transcription
1 Service based Software Specification Christian Salzmann 1, Bernhard Schätz [salzmann Software & Systems Engineering Technische Universität München Arcisstrasse München, Germany Abstract. Nowadays the term of a service is frequently used in the discipline of modelling distributed system. However, it seems that the meaning of a service varies, depending on the domain it is used in. In this article we describe what various perceptions of the term service have in common and derive a formally founded definition of services that helps to specify services precisely in the context of components. We furthermore point out the differences between common terms like services, components and interfaces, describe some advantages of services and define a foundation for service based specification.. We close with a small example how services are defined and used. Introduction Today s pervasive network infrastructure as emerging through the internet and wireless networks like GPRS, UMTS, and HiperLANs are enabling distributed systems to dynamically evolve during runtime. Those systems consist no longer of a fixed component set that concretely specifies communication relations, but are dynamically composed. The components are not allocated via a certain class or type but via a specific functionality that is needed for the complete functionality of the system. These functionalities are often designated as a service. There are plenty of different definitions of such services. However, this term of service seems to be quite overloaded. There is no precise definition to be found that covers a critical mass. Nevertheless, various terms of services exists. Some precisely founded, some more or less pragmatically emerged. The web service definition language (WSDL) of the W3C consortium defines a service as collections of network endpoints, or ports [CCM+], which basically is an interface or signature description. Another popular use of the term service is found in the area of cellular networks, short messaging service (SMS). In the Open Systems Interconnection- Reference Model (OSI-RM) a service is defined as, a capability of a given layer, and the layers below it, that (a) is provided to the entities of the next higher layer and (b) for a given layer, is provided at the interface between the given layer and the next higher layer.. The most general term might be A service is an abstract protocol 1 This work was supported by Microsoft Research LTD.
2 2 Christian Salzmann, Bernhard Schätz [BL01], which is the definition of Tim Berners-Lee. Inexplicitly there might be a common idea behind all these definitions on a highly abstract level, but it is obvious that these definitions are quite diverse. However, all the above-cited definitions have some aspects in common: interfaces, interactions but no structure. Several questions arises when looking at the various definitions of the term service: What exactly is a service good for and what distinguishes a service from, e.g., an interface as it is common in object oriented programming languages like Java or C++? What does it differentiate from a component or a combination of interfaces and components? After covering these questions in the first sections of this paper, we prepare our definition of the term service by first analysing and modelling the most basic ideas of a service. Afterwards we present a precise notion of services applicable in the domain of distributed systems and wide area internet applications (web services). We begin this by explaining first the formal model we use and then explain how to embed the idea of services into it. In the following section we describe shortly how a development process could make use of this service notion and what advantages this would imply. Finally we explain our idea of services by specifying an example of the usage of services. The aim of the paper is to clarify notions raised but not sufficiently dealt with in the area of service-based engineering by use of a simple formal model. The basic techniques introduced are not specific to the model of stream relations used here but can be easily transferred to I/O-Automate [LT89] or TLA [Lam93]. The contribution of the formalization therefore rather lies in the transfer of the formal techniques than in the introduction of new formal concepts. Basic principles behind this formal model have been applied in a service-engineering environment [Sal02] and in a modelchecking approach to detect feature interaction [Sch02]. Services vs. Components and Interfaces As mentioned above, when specifying the notion of a service, several questions arise: Is there a difference between the notion of a component and a service? What are the differences? Why is it important to distinguish between services and components and what are the advantages of a service based approach? Components are defined as reusable units of behaviour specified by their behaviour and structure [BS01, Müh96]. Structure is defined by assigning subcomponents including their behaviour to a component. A component therefore specifies behavioural and structural attributes, whereas a service represents a more abstract behavioural specification without internal structural constraints. Components and services own interfaces, which are the signatures that define the types of messages that flow via this interface. Popular examples for interfaces are the concept of interfaces in programming languages like Java or the interface of a hardware component. We finally see a service as a structureless, reusable unit of behaviour that specifies its behaviour depending on certain assumptions to the environment. These assumptions about the environments are specified as services as well, namely as a set of needed services.
3 Service based Software Specification 3 So our idea of a service differs from the concept of a component by the fact that a service does not define any structural constraints but the interface. In contrast to a component this defines the internal structure in term as of a glass box view. A service is therefore a clipping of a component behaviour that is underspecified concerning the internal structure and is defined using assumptions about the environment, leading to a partial behaviour. Service Formalization In this section we present the formalization of our service idea. We start with a general introduction of the used model FOCUS, a mathematical model that builds upon the relation between input and output streams of messages. Then we explain how to integrate the concept of services into this model. FOCUS For the mathematical model, we use an adapted version of the general model introduced in [BS01]. Basically, the mathematical model of a component (or service) consists of its externally observable behavior, i.e. the messages received from the environment or sent to it. Messages are sent and received via channels. We use a timed model, splitting the observable behavior into time slots; during each time slot, an arbitrary (but finite) number of messages can be received or sent via each channel. The behavior of a component or service can then be described by channel histories, assigning a sequence of messages to each channel and time slot. In the following, we introduce stream relations to model those forms of behaviors. For a given set of messages M, thesetm* defines the set of finite sequences of messages; <> defines the empty sequence consisting of no messages. For two sequences m 1,m 2 of messages, we define the relation m 1 m 2 to hold iff m 1 is a subsequence of m 2. To model an observed interaction of exchanged messages from the set M, weuse the set of possibly infinite streams of finite sequences, with notation M ω.complete observations are modeled by infinite streams M. Since infinite streams of finite sequences can be identified with functions from the natural numbers Nat to finite sequences M*, i.e. M ω Nat M *, we use the notion s(t) for the finite message sequence assigned to time slot t Nat of a stream s M ω. For both finite sequences and possibly infinite streams, m 1 m 2 defines their concatenation, m 1 m 2 the prefix relation. To combine observation with channels, we introduce the notion of a channel history. Given a set C of channel identifiers, a channel history is a mapping from those identifiers to message streams M.Thesetofallchannel histories for a given set of channel identifiers is described by C, i.e., C C M. For a channel history h C, we define the notion of a message occurring during an interval of time slots: m@ [start,end ] h = t [start,end]. m h(t)
4 4 Christian Salzmann, Bernhard Schätz Furthermore, we define the restriction h C of a channel history h to subset C C by standard function restriction. Concatenation is extended to histories h 1 h 2 by concatenating their messages streams, and the prefix relation is extended similarly. Finally, using channel histories, we define the behavior of a component or service with a given interface by a relation of channel histories. For a given set of channel identifiers, interfaces are defined as pairs (I,O) of channel identifiers with disjunctive sets I and O: I C O C I O =. Given an interface (I,O), astream relation s over this interface is defined as a (partial) function s : I ( O). 2 For stream relation s, wedefinethedomain dom(s) = {i I s(i) }. For a stream relation with interface (I,O), we define its restriction s (I,O ) toasubinterface (I,O ) with I I,O O by s (I,O ) = {(i I,o O ) (i,o) s} using restriction of channel histories. Restriction corresponds to the hiding of channels. Note that since we focus on the introduction of a service notion - in this short introduction we did not impose additional requirements to be fulfilled by a stream function or relation to be realizable or implementable, e.g. a weak causality constraint or a strong realizabilty constraint as defined in [BS01]. In the following, we use the notation I ( O) for total stream functions respecting those additional properties. Note that the properties defined in [BS01] are union stable, i.e. for functions s 1,s 2 : I ( O), also s 1 s 2 I ( O). Therefore, for a total function s : I ( O) we can define [] s = s s I ( O) s s as the most general causality respecting function implementing s. For two total stream relations s 1,s 2 with interfaces (I 1,O 1 )and(i 2,O 2 ), resp., we define the composition s 1 s 2 to be the stream relation with interface (I,O) = (I 1 I 2 \(O 1 O 2 ),O 1 O 2 ) and behavior s1 s2 { s I ( O) s ( I1, O1) = s1 s ( I2, O2) = s2} given the syntactic compatibility O 1 O 2 =. Compositions of stream relations correspond to combing components by connecting their common channels. Interfaces vs. Components vs. Services An interface if IF consists of two disjunctive sets of messages types I, O that represents the directed input and output channels of the interface. Each channel is defined by the set of messages that can flow via the channel. 2 Instead of functional notation for this set-valued function, we will also use relational notation for the ease of reading.
5 Service based Software Specification 5 Based on the definition of an interface, we introduce the notion of a component as well as a service. Definition: A component can communicate with its environment by exchanging messages over an interface. The behaviour of a component with an interface if = (I,O) is characterized by the a total function c : I ( O) withdom(c) = I. As mentioned in Section 0 a component also has a defined structure: it is either an atomic component or it has sub-components with their associated behaviors. Since we do not treat the structural aspects of service architectures here, no formal definition of structured components is introduced (the aspects of structured components and their behavior in the FOCUS model is treated, e.g., in [BS01] or [HS99]). The function c describes the interaction behaviour of the component, i.e. the behaviour observable at its interface. Since a component might behave non-deterministically, different output reactions are possible for the same input. Since a component must however always react to input presented by its environment, totality of the function is expected, i.e. the condition dom(c) = I must hold for the component. This condition is equivalent to i I. c(i) capturing the intended intuition. In contrast to a component, a service behaviour needs not to be total. Definition: A service s with the interface if = (I,O) is a partial function s : I ( O). A service describes partial interaction behaviour. By allowing arbitrary behaviour (i.e. partiality), we can use services to describe only a partial behaviour offered by a component. According to these definitions a component s behaviour is a special kind of service s behaviour. Note that there is a substantial difference between the definition of a component and a service: whereas a component is a total function that has a well defined result for all inputs a service is a partial function that is only defined for a subset of the domain. This means there are some inputs of a service where the definition of the service does not make any assertion how the service behaves. To relate components and services we define the notion of provided services and subinterfaces. A service interface if s = (I s,o s ) is said to be a subinterface of an interface if c = (I c,o c )if I s I c O s O c i.e. if the subinterface is a subset (of the channels) of the second interface. Since the notion of subinterfaces is only a syntactic notion, we must furthermore relate services and components considering their behaviour.
6 6 Christian Salzmann, Bernhard Schätz Definition: A component with interface if c = (I c,o c ) and corresponding behaviour c : I ( O) provides a service with subinterface if s = (I s,o s ) and behaviour s : I ( O) if dom(s) dom(c) I s and i dom(c). (i I s ) dom(s) s(i) = c(i) I s Intuitively, a component providing a service reacts as the service on the channels and inputs taken into account by the service. Note that from a formal point of view there is no difference whether a service is provided by an atomic component or by a network of components, since the latter can be substituted by the combined component as definedinsection0. We may furthermore specify the fact that a component requires a service to provide services in turn. A required service formally does not differ from a provided service besides the direction of the communication and the role it participates in the communication (e.g. sender, receiver). Definition: A component requires a service with interface if s = (I s,o s ) and behaviour s : I ( O) if it provides the complement service if s = (O s,i s )withs : O ( I ), Note that s denotes the complement function (relation) of s. If a component c provides and requires a set of services s i...s j, we demand that these services fulfil additional compatibility constraints. The simplest form of compatibility is called interface compatibility, defined by m,n {i,, j}.m n (I m I n = O m O n = ) This means that the input channels of the services as well as the output channels are pairwise disjoint. Further forms of compatibility are discussed in the following section. Service Combination An important issue when dealing with the combination of services is the problem of feature interaction. Feature interaction stands for the interaction and cooperation of two or more independently specified behaviours. Each function or behaviour may expose the intended behavior if used separately, however when combined unforeseen interaction patterns may show up. One separates between feature interaction (which denotes any patterns, also the purposed) and bad feature interaction (which denote those patterns that are unforeseen and not wanted). Feature interaction is a common and well-known problem that shows up in various disciplines, i.e. telecommunications. In this section we investigate how the explicit representation of the domain of a service helps in combining services and constructing complete component behaviour. The combination of services is linked to the concept of compatibility of services: A compatible collection of services can be combined without exhibiting unwanted behaviour (like some form of unwanted feature interaction). Therefore, a notion of
7 Service based Software Specification 7 compatibility of services is needed to combine services to form a component. In formal approaches dealing with the combination of features or services (e.g., [KB00] or [Sch02]), compatibility of services is defined in terms of consistency of the (specifications of) services. As usual, consistency of a set of specifications is interpreted as the property of having a model satisfying all specification. Analogously, we are therefore interested in a notion of compatibility for a set of ensuring the existence of a component providing these services. To define such a notion, we will therefore first define a general combination S {sm,,s n } of services {s m,,s n }. Definition: Foraset {s m,,s n } of services, the interface of the combined service S {sm,,s n } is defined as if = ( S{s I s, O s ). The combined service m, sn} s {s m, s n } s {s m, s n } behaviour is defined as S {sm,,s n } (i) = {o s {s m,,s n }. i I s dom(s) o O s s(i I s )}. Note that be this form of combination, partial service behaviours are treated as underspecifications. Definition: A combination of services {s m,,s n } is called consistent if the behaviour of the combined service S {sm,,s n } is partial only where all services are: s { s,, s }. dom( s) dom( S{ s,, s }) I m n m n s Structured Specifications In the previous sections, we used the general model of stream functions (or relations) to describe services. A service (or component) is described by relating complete input and output histories. However, this basic model is not generally suited to specify services. Generally, more structured forms of specifications are used, for example stepwise computations. In stepwise computations, the output of a service is computed stepwise: at each step (corresponding to a time slot) an output is computed, depending on the current input received at that step and the previous input. Using this structure, a service definition s is based upon an output function os depending on the current input ci and the previous input ih. Using a generic function hs splitting of the current input from the remaining input is, the service is then defined as s(i) =<> hs(i,<>) hs(ci is,ih) = os(ci,ih) hs(is,ih ci) Using such a structure, a service is then completely defined by the output function. A typical example of stepwise computation is the state-based description of services. The simple structure defined above can of course be generalized to set-valued output functions to model nondeterminism, or to functions depending on the previous output, too.
8 8 Christian Salzmann, Bernhard Schätz Hierarchies of Compatibility As described above, the most general intuitive form of compatibility is defined by consistency of services (i.e., the existence of a combined service). Since this form of compatibility is an existential property of the semantics, it is a rather sophisticated notion to be checked. On the other hand, the introduced notion of interface compatibility is a rather restricted notion leading to non-interacting services. Using such a strict form of compatibility notion for services has the advantage that compatibility is guaranteed by a design rule that can be check syntactically. From a methodical point of views, however intermediate forms of compatibility are useful that are accessible to automatic forms of checking as well as support interacting services. Since the domain of a service describes its assumptions about the environment, we are interested in easier notions of compatibility defined via their domain, similarly to the definition of consistency. Since the explicit specification of the domain of a service generally is less complex than the specification of its behaviour, more efficient automatic proof procedure (e.g. model checkers) can be established. Definition: A set of services {s 1,,s n } is called weakly compatible, if i, j {1,,n}.i j dom(s i ) I s j dom(s j ) I si = It is called strongly compatible if i, j {1,,n}.i j dom(s i ) I s j dom(s j ) I si = where T {t' t' t t T }. As mention in Subsection 0, stream relations of components usually respect additional causality constraints. Therefore, the output of a component providing a service is restricted not only for inputs from the service domain but generally also for other inputs. By adding a prefix closure to the domains of the definition above, the notion of a strong compatibility is defined. A weakly compatible set of services {s m,,s n } ensures that this set is also consistent and thus the combined service S {sm,,s n } exists. If furthermore the set is strongly compatible and the services respect the above mentioned causality properties, there exists a component c : I ( O) providing the combined service with interface if = (I,O). S{sm, s n } A compared to interface compatibility - less restricted syntactic condition ensuring strong compatibility is output interface compatibility: Since a service specification only describes interactions of the component offering the service, it is sufficient to restrict the disjointness to the output channels: for services s 1,s 2,their output interface has to be disjoint, i.e. O s1 O s2 =. For more restricted forms of service specification, even less restricted forms of compatibility ensuring consistency like event compatibility can be defined. This form of compatibility is defined for services described by stepwise computation. Here, two services s 1,s 2 are compatible if their output functions are disjoint, i.e. only react on different input. For example, for services with the same output interfaces and
9 Service based Software Specification 9 corresponding output function os s1,os s2, the condition i,ih I.os s1 (i,ih) os s2 (i,ih) = must hold. Service Completion Besides the methodical advantage of an explicit description of the service domain when defining the compatibility of services, the domain of a service is also useful when extending partial behaviour to a complete description as needed in constructing a component specification. To form a component specification out of a (combined) service description, the service description must be extended from a partial to a total specification. From a methodical point of view, different forms of canonical completions ŝ are possible for a service s.twoprominentexamplesare: - Chaotic completion: If the combination exhibits some undefined behavior at some time point, in the canonical extension any behavior is possible afterwards. - Operational completion: If the combination exhibits some undefined behavior at some time point, in the canonical extension no output is produced at that time point. Chaotic completion is associated with a loose interpretation of a specification. Basically, we use a kind of Assumption-Commitment scheme to construct components from services by chaotic completion (c.f. [SDW93]). The domain part of a service forms the assumption, the service specification forms the commitment part. However, since for a given service s : I ( O), the total function defined by ŝ chaos (i,o) i dom(s) s(i,o) generally is not a causality-respecting function, a component for this service is defined by c(, io) = [ sˆ chaos (, io)] as defined in Section 0. Operational completion is associated with an operational interpretation; it is, e.g., used in [HS01]. Using, e.g. a stepwise computation form of description, this completion can be easily constructed by adapting the output function: <> if oŝ(ci,ih) = oŝ(ci,ih) = { os(ci,ih) if oŝ(ci,ih). Methodical Issues Besides giving the term of services a precise meaning the main advantage of the formalization of services is that it makes an (automated) support of services in a development process possible. Although methodology can not be in the focus of this paper we will try to sketch out how a possible process could be structured and what advantages services would bring to the systematic development of software systems. Services allow modelling of the functionalities of the system without tailoring the structure of the system at the beginning of the development process. The system functionality can be extracted from very abstract specifications of the system, for example UML use cases, which do not narrow the later structure of the system either. We can define a service architecture that specifies the system functionality by combining different services. In this service architecture the functional dependencies are specified but no structural issues (which component realizes which service).
10 10 Christian Salzmann, Bernhard Schätz After modelling the service architecture the different services can be deployed to component networks by composing services into a component type. By doing this structural attributed are added to the system specification. Note that the service architecture itself does constrain the structure of the system very little: a service specification can be realized by many component networks. This deployment could be automated and therefore makes a formal and unambiguous composition necessary. Only with a precise composition of services and components we can avoid problems as described above concerning feature interaction. Figure 1 gives a brief impression how a service based development process could make use of the separation of functionality and structural architecture of a system. Usecases (e.g. UML) leads to Service Architecture (Specification) is used by Isolated Iexrface Interface Service Definition Definition (Specifications) (abstrakt) (abstrakt) formal foundation needed! Service/Component Composition under compliance of feature interaction is used by Komponenten Komponenten Komponenten Isolated Spezifikation Spezifikation Spezifikation Component (konkret) (konkret) (konkret) (Specifications) System specification (including structural specification) Figure 1: Basic steps of a service based development process The process would exist of the following large grained steps: 1. Specification of use cases (i.e. UML) 2. Encapsulation of services out of the use cases 3. Modeling of the combination of different services and how they realize the specified functionality (service architecture) 4. Deployment of the services on a given set of components 5. Choice of realization and alternatives.
11 Service based Software Specification 11 Note that until step four the system is specified without constraining its structure. The result of the deployment is a set of various possible realizations that offer the same functionality but differ in the structure (e.g. which component provides which service, which gives the development more flexibility and better applicability. Example: An Instant Messaging System We present a short example to illustrate the usage of services. For ease of reading we do not cover required services in this example. In our idealized instant messaging system we are able to send messages and instantly receive the status of the message, i.e. if the receiver has received the message. Of course we can also receive messages with the same information for the sender. The system is shown in the following figure as an informal automaton, using the notation c:msg() standing for the occurrence of amessagemsg on channel c. Due to readability we do not include the parameters. sent in:getmsg() recieved out:sendmsg() in:getreceipt() nomsg out:sendreceipt() Figure 2: The Instant messaging service We model now the instant messaging system as a service, being a partial stream processing function. Due to simplicity we only specify a subset of the predicates. The remaining transitions follow analogously or the reader may refer to [BS01] for an algorithm for transferring automata to stream predicates: instmsg : I ( O) I = { inimsg}; O = { outimsg} M = { getreceipt, getmsg, sendmsg, sendreceipt} dom( instmsg) = { inimsg} { getmsg, getreceipt} instmsg(, i o) t.( ( t ' < t. sendmsg( id, adress, sender, text)@ o getreceipt( adress, id)@ i) getmsg( id, sender, text)@ i)) sendreceipt( sender, id)@ α t t ' ], t t+ ] ]',] t t
12 12 Christian Salzmann, Bernhard Schätz This means informally that if we receive a message getmsg at the time t with the according parameters we demand that there will be within a timeframe α a message sendreciept on the output channel. The additional first predicate specifies that if we send a message we will eventually get a receipt message for this sent message (if the receiver has read it). If we now specify a component that provides this service instmsg, we have to specify a total function: myclient : I ( O); I = { in }; O = { out } mc mc myclient( i, o) [ i dom( instmsg) instmsg( i, o)] To construct the component from service specification, we use chaotic completion as defined in section Service Completion above. We now specify two additional services which we will later combine in one component: a forwarding service that forwards all messages to a certain address FwdAddress and an autoreply service that replies a message ArMsg automatically to each sender of any received message: forward : I ( O); I = { infwd}; O= { outfwd} M = { getmsg, sendmsg} dom( forward) = { in } { getmsg} fwd forward(, i o) t. getmsg( id, sender, text)@ i sendmessage( id, FwdAddr, sender, text)@ o t ] tt, + 1] autoreply : I ( O); I = { in }; O = { out } ar dom( autoreply) = { in } { getmsg} autoreply(, i o) ar ar t. getmsg( id, sender, text)@ i sendmsg( id, sender, ArMsg)@ o t ] t, t+ 1] Combining Services We now specify a component that combines all three services instmsg, forward and autoreply. One of the most hazardous problems of combining behaviour is the problem of feature interaction. As described in section 0 we have various ways of
13 Service based Software Specification 13 composing services and component which handle the problem of feature interaction in different ways (from pragmatical to general consistency). The first problem is to detect if any kind of feature interaction may show up. In our example one may have recognized that both services, forward and autoreply, are defined using the same messages. So if both would be using the same channels this would be a potential candidate for feature interaction. However, since we used a composition with interface compatibility separating the channel sets we have disjoint domains and avoid therefore any kind of feature interaction. Indeed if we combined them with shared channels we would have to specifiy if a message should be auto replied, forwarded or both (which does not make very much sense). combinedclient : I ( O); I = { in } { in } { in }; O = { out } { out } { out }; fwd ar imsg fwd ar imsg combinedclient({ i, i, i },{ o, o, o }) [ i dom( instmsg) instmsg( i, o ) i dom( forward) forward( i, o ) i dom( autoreply) autoreply( i, o )] As described above, the deployment can assign more than one component network to one service architecture. In our example we mapped the three services forward, autoreply and instmsg into one component that composed all three services. Nevertheless the same functionality could also be mapped onto other structures as the following example shows: we map the service architecture onto a network existing of two components, one providing the forward and instmsg services, the other the autoreply service.. ComponentA : I A ( O A ); I A = {in fwd } {in msg };O A = {out fwd } {out msg }; componenta({i 1,i 2 },{o 1,o 2 }) [i 1 dom(instmsg) instmsg(i 1,o 1 ) i 2 dom( forward) forward (i 2,o 2 )] ComponentB : I B ( O B ); I B = {in ar };O B = {out ar }; componentb({i 1 },{o 1 }) [i 1 dom(autoreply) autoreply(i 1,o 1 )] Network : I NW ( O NW ); I NW = I A I B ;O NW = O A O B ; Network({i 1,i 2,i 3 },{o 1,o 2,o 3 }) componenta({i 1,i 2 },{o 1,o 2 }) componentb({i 3 },{o 3 })
14 14 Christian Salzmann, Bernhard Schätz Both solutions realize the same functionality but differ substantially in the structure of the system. The following Figure 3 illustrates the two different deployments graphically: In the first case three services are composed into one atomic component combinedclient ; in the second case the service architecture is realized by a component network that exists of two different parallelly composed atomic components, componenta and componentb. The first provides the forward and the autoreply service, the latter the instmsg service. Service Specification: -instmsg - autoreply - forward deployment deployment Network in_fwd in_ar in_instmsg combinedclient out_fwd out_ar out_instmsg in_instmsg in_fwd in_ar componentb componenta out_instmsg out_fwd out_ar Figure 3: Two different deployments Note that this combination totally disenables any kind of feature interaction good and bad one. [JZ00] shows that the question whether an interaction is undesirable is rather complex leading to hints for a suitable resolution at best; thus the subject of resolving feature interaction is not addressed here. Generally, however, if one wants to avoid bad feature interaction and enable good one, one has to specify which message is consumed by which service explicitly. This could be done by multiplexing the disjoint input- and output-channels to one input and output channel at a splitting component that receives the messages and forwards to the disjoint channels of the services. This can be specified with the above described component combination of FOCUS. Conclusion In this article we introduced a formal definition of the notion service and related it to formal model of interacting components. Essential aspects of our service notion are its partiality and its separation between functionality and structure. The introduction of different notions of compositionality and combination as well as the sketched structured specification of services and development process lays a first foundation for a methodical service-based development process.
15 Service based Software Specification 15 While the introduced foundation offers the basic elements to construct service architectures and map them onto component architectures, is has to be enriched for application in an engineering process: Since, e.g., state-based descriptions are popular in the service domain, the stepwise computation scheme must be adapted to specify service domain and service behavior in a state-based fashion. Mechanical support for the checking of compatibility of services especially for those exceeding output or interface compatibility - must be defined as well as support for the solution of conflicts. Finally, based on those techniques, a fine-grained development process must be defined, especially dealing with issues of restructuring and recombination. References [BL01] [BS01] Berners-Lee, T. Are we done yet?. Broy, M. Stoelen, K. Specification and Development of Interactive Systems. Springer, [CCM+] E. Christensen, F. Curbera, G. Meredith, S. Weerawarana: Web Services Description Language (WSDL) 1.1, W3C Note [HS01] Huber, F. Schätz, B. Integrating Formal Description Techniques. In:FM'99-- Formal Methods, Volume II. Wing, J. Woodcock, J. Davies, J. (eds.). Springer, [JZ00] Jackson, M. Zave, P. New Feature Interactions in Mobile and Multimedia Telecommunication Services. In: Calder, M. et al. (eds.) Proc. 6 th Feature Interactions in Telecommunications and Software Systems. IOS Press, [KB00] Khousomi, A. Bevelo, R. A Detection Method Developed after A Thorough Study of the Contest Held in In: Calder, M. et al. (eds.) Proc. 6 th Feature Interactions in Telecommunications and Software Systems. IOS Press, [Lam93] Lamport, L. Specification and Verification of Concurrent Programs. In: de Bakker, J.W. et al. (eds.). A Decade of Concurrency. LNCS Vol Springer, [LT89] Lynch, N. Tuttle, M. An Introdcution to Input/Output Automata. CWI Quaterly 3(2) [Müh96] Mühlhäuser, M. (Ed.): Special Issues in Object- Oriented Programming Proceedings of WCOP 96, dpunkt Verlag, Heidelberg, Gemany, 1997 [Oas02] OASIS Web Page [Sal02] Christian Salzmann Modellbasierter Entwurf spontaner Komponentensysteme. PhD Thesis Technische Universität München [Sch02] Schätz, B. Towards Service-Based Systems Engineering: Formalizing and mu- Checking Service Specifications. Technical Report TUMI-0602, TU München, 2002 [SDW93] Stoelen, K. Dederichs, F. Weber, R. Assumption/Commitment Rules for Networks of Asynchronously Communicating Agents. Technical Report TUM-I9303, TU München, 1993.
Engineering Process Software Qualities Software Architectural Design
Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
A Methodology for the Development of New Telecommunications Services
A Methodology for the Development of New Telecommunications Services DIONISIS X. ADAMOPOULOS Centre for Communication Systems Research School of Elec. Eng., IT and Mathematics University of Surrey Guildford
Chapter 7 Application Protocol Reference Architecture
Application Protocol Reference Architecture Chapter 7 Application Protocol Reference Architecture This chapter proposes an alternative reference architecture for application protocols. The proposed reference
Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
Formal Verification and Linear-time Model Checking
Formal Verification and Linear-time Model Checking Paul Jackson University of Edinburgh Automated Reasoning 21st and 24th October 2013 Why Automated Reasoning? Intellectually stimulating and challenging
Software Engineering
Software Engineering Lecture 04: The B Specification Method Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 50 The B specification method
Towards Modeling and Transformation of Security Requirements for Service-oriented Architectures
Towards Modeling and Transformation of Security Requirements for Service-oriented Architectures Sven Feja 1, Ralph Herkenhöner 2, Meiko Jensen 3, Andreas Speck 1, Hermann de Meer 2, and Jörg Schwenk 3
ONTOLOGY FOR MOBILE PHONE OPERATING SYSTEMS
ONTOLOGY FOR MOBILE PHONE OPERATING SYSTEMS Hasni Neji and Ridha Bouallegue Innov COM Lab, Higher School of Communications of Tunis, Sup Com University of Carthage, Tunis, Tunisia. Email: [email protected];
Advanced Service Creation: Bridging the Gap Between Requirements Elicitation and Service Design
Advanced Service Creation: Bridging the Gap Between Requirements Elicitation and Service Design Dionisis X. Adamopoulos 1, Constantine A. Papandreou 2 1 University of Piraeus, Greece and Centre for Communication
Testing LTL Formula Translation into Büchi Automata
Testing LTL Formula Translation into Büchi Automata Heikki Tauriainen and Keijo Heljanko Helsinki University of Technology, Laboratory for Theoretical Computer Science, P. O. Box 5400, FIN-02015 HUT, Finland
Random vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison
Random vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison Tomi Janhunen 1, Ilkka Niemelä 1, Johannes Oetsch 2, Jörg Pührer 2, and Hans Tompits 2 1 Aalto University, Department
Managing Variability in Software Architectures 1 Felix Bachmann*
Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA [email protected] Len Bass Software Engineering Institute Carnegie
Test Coverage Criteria for Autonomous Mobile Systems based on Coloured Petri Nets
9th Symposium on Formal Methods for Automation and Safety in Railway and Automotive Systems Institut für Verkehrssicherheit und Automatisierungstechnik, TU Braunschweig, 2012 FORMS/FORMAT 2012 (http://www.forms-format.de)
Software Modeling and Verification
Software Modeling and Verification Alessandro Aldini DiSBeF - Sezione STI University of Urbino Carlo Bo Italy 3-4 February 2015 Algorithmic verification Correctness problem Is the software/hardware system
Using Patterns and Composite Propositions to Automate the Generation of Complex LTL
University of Texas at El Paso DigitalCommons@UTEP Departmental Technical Reports (CS) Department of Computer Science 8-1-2007 Using Patterns and Composite Propositions to Automate the Generation of Complex
Lightweight Data Integration using the WebComposition Data Grid Service
Lightweight Data Integration using the WebComposition Data Grid Service Ralph Sommermeier 1, Andreas Heil 2, Martin Gaedke 1 1 Chemnitz University of Technology, Faculty of Computer Science, Distributed
Component Based Software Engineering: A Broad Based Model is Needed
Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish ([email protected]) Brandon Dixon ([email protected]) David Hale ([email protected]) Department of Computer Science
Verifying Semantic of System Composition for an Aspect-Oriented Approach
2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach
Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification
Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by
Simulation-Based Security with Inexhaustible Interactive Turing Machines
Simulation-Based Security with Inexhaustible Interactive Turing Machines Ralf Küsters Institut für Informatik Christian-Albrechts-Universität zu Kiel 24098 Kiel, Germany [email protected]
Service Oriented Architectures Using DoDAF1
1 Service Oriented Architectures Using DoDAF1 Huei-Wan Ang, Fatma Dandashi, Michael McFarren The Mitre Corporation The MITRE Corp. 7515 Colshire Dr. McLean, VA 22102 hwang(at)mitre.org, dandashi(at)mitre.org,
A Semantical Perspective on Verification of Knowledge
A Semantical Perspective on Verification of Knowledge Paul Leemans, Jan Treur, Mark Willems Vrije Universiteit Amsterdam, Department of Artificial Intelligence De Boelelaan 1081a, 1081 HV Amsterdam The
Overview of major concepts in the service oriented extended OeBTO
Modelling business policies and behaviour based on extended Open edi Business Transaction Ontology (OeBTO) Introduction Model Driven Development (MDD) provides a basis for the alignment between business
Introducing Formal Methods. Software Engineering and Formal Methods
Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended
Formal Languages and Automata Theory - Regular Expressions and Finite Automata -
Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March
Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures
Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Carsten Hentrich IBM Business Consulting Services, SerCon GmbH c/o IBM Deutschland GmbH Hechtsheimer
Meta-Model specification V2 D602.012
PROPRIETARY RIGHTS STATEMENT THIS DOCUMENT CONTAINS INFORMATION, WHICH IS PROPRIETARY TO THE CRYSTAL CONSORTIUM. NEITHER THIS DOCUMENT NOR THE INFORMATION CONTAINED HEREIN SHALL BE USED, DUPLICATED OR
The Software Development Process
Systeme hoher Qualität und Sicherheit Universität Bremen WS 2015/2016 Lecture 03 (26.10.2015) The Software Development Process Christoph Lüth Jan Peleska Dieter Hutter Your Daily Menu Models of software
Business-Driven Software Engineering Lecture 3 Foundations of Processes
Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster [email protected] Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary
CHAPTER 7 GENERAL PROOF SYSTEMS
CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes
Software Engineering Reference Framework
Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of
Integration of Application Business Logic and Business Rules with DSL and AOP
Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland [email protected]
Systematic Development of Hybrid Systems
Systematic Development of Hybrid Systems Thomas Stauner BMW Car IT, Petuelring 116, D-80809 München, Germany Email: [email protected], Phone: +49 89 189 311-51 This extended abstract gives an
Using Bonds for Describing Method Dispatch in Role-Oriented Software Models
Using Bonds for Describing Method Dispatch in Role-Oriented Software Models Henri Mühle Technische Universität Dresden Institut für Algebra [email protected] Abstract. Role-oriented software modeling
1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...
1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand
A Model-driven Approach to Predictive Non Functional Analysis of Component-based Systems
A Model-driven Approach to Predictive Non Functional Analysis of Component-based Systems Vincenzo Grassi Università di Roma Tor Vergata, Italy Raffaela Mirandola {vgrassi, mirandola}@info.uniroma2.it Abstract.
Improving Interoperability in Mechatronic Product Developement. Dr. Alain Biahmou, Dr. Arnulf Fröhlich, Dr. Josip Stjepandic
International Conference on Product Lifecycle Management 1 Improving Interoperability in Mechatronic Product Developement Dr. Alain Biahmou, Dr. Arnulf Fröhlich, Dr. Josip Stjepandic PROSTEP AG Dolivostr.
The Model Checker SPIN
The Model Checker SPIN Author: Gerard J. Holzmann Presented By: Maulik Patel Outline Introduction Structure Foundation Algorithms Memory management Example/Demo SPIN-Introduction Introduction SPIN (Simple(
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, [email protected] 2 ABB Corporate Research,
Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions
Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Kathrin Lehmann, Florian Matthes Chair for Software Engineering for Business Information Systems Technische
CHAPTER THREE, Network Services Management Framework
CHAPTER THREE, Acronyms and Terms 3-3 List of Figures 3-4 1 Introduction 3-5 2 Architecture 3-6 2.1 Entity Identification & Addressing 3-7 2.2 Management Domain Registration and Information Service 3-7
PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE
International Journal of Computer ScienceandCommunication Vol. 2, No. 1, January-June2011, pp. 153-157 PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE Neeraj Kumar Singhania University,
SERENITY Pattern-based Software Development Life-Cycle
SERENITY Pattern-based Software Development Life-Cycle Francisco Sanchez-Cid, Antonio Maña Computer Science Department University of Malaga. Spain {cid, amg}@lcc.uma.es Abstract Most of current methodologies
A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus
A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus Karim M. Mahmoud 1,2 1 IBM, Egypt Branch Pyramids Heights Office Park, Giza, Egypt [email protected] 2 Computer
A Framework for the Semantics of Behavioral Contracts
A Framework for the Semantics of Behavioral Contracts Ashley McNeile Metamaxim Ltd, 48 Brunswick Gardens, London W8 4AN, UK [email protected] Abstract. Contracts have proved a powerful concept
GOAL-BASED INTELLIGENT AGENTS
International Journal of Information Technology, Vol. 9 No. 1 GOAL-BASED INTELLIGENT AGENTS Zhiqi Shen, Robert Gay and Xuehong Tao ICIS, School of EEE, Nanyang Technological University, Singapore 639798
Service Level Agreements based on Business Process Modeling
Service Level Agreements based on Business Process Modeling Holger Schmidt Munich Network Management Team University of Munich, Dept. of CS Oettingenstr. 67, 80538 Munich, Germany Email: [email protected]
Introduction to Web Services
Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies
From Workflow Design Patterns to Logical Specifications
AUTOMATYKA/ AUTOMATICS 2013 Vol. 17 No. 1 http://dx.doi.org/10.7494/automat.2013.17.1.59 Rados³aw Klimek* From Workflow Design Patterns to Logical Specifications 1. Introduction Formal methods in software
Model-Based Requirements Engineering with AutoRAID
Model-Based Requirements Engineering with AutoRAID Bernhard Schätz, Andreas Fleischmann, Eva Geisberger, Markus Pister Fakultät für Informatik, Technische Universität München Boltzmannstr. 3, 85748 Garching,
Determination of the normalization level of database schemas through equivalence classes of attributes
Computer Science Journal of Moldova, vol.17, no.2(50), 2009 Determination of the normalization level of database schemas through equivalence classes of attributes Cotelea Vitalie Abstract In this paper,
SEMANTIC-BASED AUTHORING OF TECHNICAL DOCUMENTATION
SEMANTIC-BASED AUTHORING OF TECHNICAL DOCUMENTATION R Setchi, Cardiff University, UK, [email protected] N Lagos, Cardiff University, UK, [email protected] ABSTRACT Authoring of technical documentation is a
Completing Description Logic Knowledge Bases using Formal Concept Analysis
Completing Description Logic Knowledge Bases using Formal Concept Analysis Franz Baader, 1 Bernhard Ganter, 1 Barış Sertkaya, 1 and Ulrike Sattler 2 1 TU Dresden, Germany and 2 The University of Manchester,
A Dynamic, Runtime-Extensible, Client-Managed Service Framework
A Dynamic, Runtime-Extensible, Client-Managed Service Framework D. Parry G. Wells, P. Clayton Computer Science Department Rhodes University Grahamstown, 6140 Email: [email protected] Tel: (046) 603 8640
A Variability Viewpoint for Enterprise Software Systems
2012 Joint Working Conference on Software Architecture & 6th European Conference on Software Architecture A Variability Viewpoint for Enterprise Software Systems Matthias Galster University of Groningen,
Omega Automata: Minimization and Learning 1
Omega Automata: Minimization and Learning 1 Oded Maler CNRS - VERIMAG Grenoble, France 2007 1 Joint work with A. Pnueli, late 80s Summary Machine learning in general and of formal languages in particular
Software Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 7 Integrated Object-Oriented Methodologies: OPEN and FOOM 1 Object-oriented Process, Environment and Notation (OPEN) First introduced in
White Paper Abstract Disclaimer
White Paper Synopsis of the Data Streaming Logical Specification (Phase I) Based on: RapidIO Specification Part X: Data Streaming Logical Specification Rev. 1.2, 08/2004 Abstract The Data Streaming specification
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS David URTING, Stefan VAN BAELEN, Tom HOLVOET and Yolande BERBERS {David.Urting, Stefan.VanBaelen, Tom.Holvoet, Yolande.Berbers}@cs.kuleuven.ac.be
Monitoring Metric First-order Temporal Properties
Monitoring Metric First-order Temporal Properties DAVID BASIN, FELIX KLAEDTKE, SAMUEL MÜLLER, and EUGEN ZĂLINESCU, ETH Zurich Runtime monitoring is a general approach to verifying system properties at
Evaluating OO-CASE tools: OO research meets practice
Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht
Brewer s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services
Brewer s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services Seth Gilbert Nancy Lynch Abstract When designing distributed web services, there are three properties that
A Business Process Services Portal
A Business Process Services Portal IBM Research Report RZ 3782 Cédric Favre 1, Zohar Feldman 3, Beat Gfeller 1, Thomas Gschwind 1, Jana Koehler 1, Jochen M. Küster 1, Oleksandr Maistrenko 1, Alexandru
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection
Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection Martin Leucker Technische Universität München (joint work with Andreas Bauer, Christian Schallhart et. al) FLACOS
Challenges and Opportunities for formal specifications in Service Oriented Architectures
ACSD ATPN Xi an China June 2008 Challenges and Opportunities for formal specifications in Service Oriented Architectures Gustavo Alonso Systems Group Department of Computer Science Swiss Federal Institute
Automated Theorem Proving - summary of lecture 1
Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces
Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The
Investigating a File Transfer Protocol Using CSP and B
Noname manuscript No. (will be inserted by the editor) Investigating a File Transfer Protocol Using CSP and B Neil Evans, Helen Treharne Department of Computer Science, Royal Holloway, University of London
Service Identifier Comparison module Service Rule Comparison module Favourite Application Server Reinvocation Management module
Service Broker for Managing Feature Interactions in IP Multimedia Subsystem Anahita Gouya, Noël Crespi {anahita.gouya, noel.crespi @int-evry.fr}, Institut National des télécommunications (GET-INT) Mobile
Compiler Construction
Compiler Construction Regular expressions Scanning Görel Hedin Reviderad 2013 01 23.a 2013 Compiler Construction 2013 F02-1 Compiler overview source code lexical analysis tokens intermediate code generation
Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson
Mathematics for Computer Science/Software Engineering Notes for the course MSM1F3 Dr. R. A. Wilson October 1996 Chapter 1 Logic Lecture no. 1. We introduce the concept of a proposition, which is a statement
Temporal Logics. Computation Tree Logic
Temporal Logics CTL: definition, relationship between operators, adequate sets, specifying properties, safety/liveness/fairness Modeling: sequential, concurrent systems; maximum parallelism/interleaving
SOLUTIONS TO ASSIGNMENT 1 MATH 576
SOLUTIONS TO ASSIGNMENT 1 MATH 576 SOLUTIONS BY OLIVIER MARTIN 13 #5. Let T be the topology generated by A on X. We want to show T = J B J where B is the set of all topologies J on X with A J. This amounts
Architecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/
Architecture Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Some slides were adapted from L. Osterweil, B. Meyer, and P. Müller material Reda Bendraou LI386-S1
Semantic Description of Distributed Business Processes
Semantic Description of Distributed Business Processes Authors: S. Agarwal, S. Rudolph, A. Abecker Presenter: Veli Bicer FZI Forschungszentrum Informatik, Karlsruhe Outline Motivation Formalism for Modeling
Integrating Benders decomposition within Constraint Programming
Integrating Benders decomposition within Constraint Programming Hadrien Cambazard, Narendra Jussien email: {hcambaza,jussien}@emn.fr École des Mines de Nantes, LINA CNRS FRE 2729 4 rue Alfred Kastler BP
Extend the value of your core business systems.
Legacy systems renovation to SOA September 2006 Extend the value of your core business systems. Transforming legacy applications into an SOA framework Page 2 Contents 2 Unshackling your core business systems
Lecture 9 - Message Authentication Codes
Lecture 9 - Message Authentication Codes Boaz Barak March 1, 2010 Reading: Boneh-Shoup chapter 6, Sections 9.1 9.3. Data integrity Until now we ve only been interested in protecting secrecy of data. However,
[Refer Slide Time: 05:10]
Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture
Quotes from Object-Oriented Software Construction
Quotes from Object-Oriented Software Construction Bertrand Meyer Prentice-Hall, 1988 Preface, p. xiv We study the object-oriented approach as a set of principles, methods and tools which can be instrumental
virtual class local mappings semantically equivalent local classes ... Schema Integration
Data Integration Techniques based on Data Quality Aspects Michael Gertz Department of Computer Science University of California, Davis One Shields Avenue Davis, CA 95616, USA [email protected] Ingo
ONTOLOGY BASED FEEDBACK GENERATION IN DESIGN- ORIENTED E-LEARNING SYSTEMS
ONTOLOGY BASED FEEDBACK GENERATION IN DESIGN- ORIENTED E-LEARNING SYSTEMS Harrie Passier and Johan Jeuring Faculty of Computer Science, Open University of the Netherlands Valkenburgerweg 177, 6419 AT Heerlen,
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:
Design Patterns for Complex Event Processing
Design Patterns for Complex Event Processing Adrian Paschke BioTec Center, Technical University Dresden, 01307 Dresden, Germany adrian.paschke AT biotec.tu-dresden.de ABSTRACT Currently engineering efficient
THE SEARCH FOR NATURAL DEFINABILITY IN THE TURING DEGREES
THE SEARCH FOR NATURAL DEFINABILITY IN THE TURING DEGREES ANDREW E.M. LEWIS 1. Introduction This will be a course on the Turing degrees. We shall assume very little background knowledge: familiarity with
