Automatically deriving choreography-conforming systems of services
|
|
- Osborne Manning
- 6 years ago
- Views:
Transcription
1 Automticlly deriving choreogrphy-conforming systems of services Gregorio Díz Dept. de Sistems Informáticos Universidd de Cstill-L Mnch Alcete, Spin Ismel Rodríguez Dept. Sist. Informáticos y Computción Universidd Complutense de Mdrid Mdrid, Spin isrodrig@sip.ucm.es Astrct We present forml method to derive set of we services from given choreogrphy, in such wy tht the system consisting of these services necessrily conforms to the choreogrphy. A forml model to represent orchestrtions nd choreogrphies is given, nd we define severl conformnce semntic reltions llowing to detect whether set of orchestrtion models representing some we services leds to the overll communictions descried in choreogrphy. 1 Introduction We services relted technologies re set of middlewre technologies for supporting Service-Oriented Computing [13]. The definition of we service-oriented system involves two complementry views: Orchestrtion nd choreogrphy. The orchestrtion concerns the internl ehvior of we service in terms of invoctions to other services. It is supported, e.g., y WS-PEL [1] (usiness Processes for We Services), which is lnguge for descriing the we service ehvior (workflow) in terms of the composition of other we services. On the other hnd, the choreogrphy concerns the oservle interction mong we services. It cn e defined, e.g., y using WS-CDL [18] (Choreogrphy Description Lnguge for We Services). Roughly speking, the reltion etween orchestrtion nd choreogrphy cn e stted s follows: The collortive ehvior, descried y the choreogrphy, should e the result of the interction of the individul ehviors of ech involved prty, which re defined vi the orchestrtion. In this pper we present some forml frmeworks to utomticlly derive we services (in prticulr, their orchestrtion definition) from given choreogrphy, in such wy tht the concurrent ehvior of these derived services necessrily conforms to the choreogrphy. The first derivtion method is sed on dding n orchestrtor service, which is kind of director tht is responsile of coordinting services nd controlling the system workflow. An lterntive method deriving decentrlized system, with no orchestrtor, is presented too. In order to fix the mening of conformnce in this context, we define severl semntic reltions such tht, given the orchestrtion of some we services nd choreogrphy defining how these we services should interct, they decide whether the interction of these we services necessrily leds to the required oservle ehvior. Models of orchestrtions nd choreogrphies re constructed y mens of two different forml lnguges. Lnguges explicitly consider chrcteristics such s service identifiers, specific senders/ddressees, messge uffers for representing synchronous communictions, or messge types. This pper mkes the following contriutions. First, the proposed method to derive conforming set of service models from given choreogrphy model cn e used to define models nd erly prototypes of we services systems, s well s to formlly/empiriclly nlyze the properties of these models/prototypes. Moreover, if service orchestrtions do not hve to e utomticlly derived ut re given, then the proposed conformnce reltions etween orchestrtions nd choreogrphies lso llow developers to select the dequte service tht ccomplishes the ehvior of certin role, thus iding we service discovery tsks. Models defined in the proposed modeling lnguges cn e used to nlyze the properties of systems of services, such s stuck-freeness nd other prolems derived from concurrent execution. For instnce, y nlyzing the order of exchnged messges we cn study whether the informtion is redy when required, which concerns correltion nd compenstion issues. 2 Relted Work There re few relted works tht del with the synchronous communiction in contrcts for we service context. In fct, we re only wre of three works from vn der Alst et l. [17], Kohei Hond et l. [12] nd, rvetti nd Zvttro [4]. In prticulr, vn der Alst et l. [17] present n pproch for formlizing complince nd refinement notions, which re pplied to service systems specified using open Workflow Nets ( type of Petri Nets) where the communiction is synchronous. The uthors show how the contrct refinement cn e done independently, nd they check whether contrcts do not contin cycles. Kohei Hond et l. [12] present generliztion of inry session types to multiprty sessions for π-clculus. They provide new notion 1
2 of types which cn directly strct the intended converstion structure mong n-prties s glol scenrios, retining n intuitive type syntx. They lso provide consistency criteri for converstion structure with respect to the protocol specifiction (contrct), nd type discipline for individul processes y using projection. rvetti nd Zvttro [4] llow to compre systems of orchestrtions nd choreogrphies y mens of the testing reltion given y [2, 9]. Systems re represented y using process lgeric nottion, nd opertionl semntics for this lnguge re defined in terms of leled trnsitions systems. On the contrry, our frmework uses n extension of finite stte mchines to define orchestrtions nd choreogrphies, nd semntic reltion sed on the conformnce reltion [15, 16] is used to compre oth models. In ddition, let us note tht [4] considers the suitility of service for given choreogrphy regrdless of the ctul definition of the rest of services it will interct with, i.e. the service must e vlid for the considered role y its own. This eses the tsk of finding suitle service fitting into choreogrphy role: Since the rest of services do not hve to e considered, we cn serch for suitle services for ech role in prllel. However, let us note tht sometimes this is not relistic. In some situtions, the suitility of service ctully depends on the ctivities provided y the rest of services. For instnce, let us consider tht trvel gency service requires tht either the ir compny service or the hotel service (or oth) provide trnsfer to tke the client from the irport to the hotel. A hotel providing trnsfer is good regrdless of whether the ir compny provides trnsfer s well or not. However, hotel not providing trnsfer is vlid for the trvel gency only if the ir compny does provide the trnsfer. This kind of sutle requirements nd conditionl dependencies is explicitly considered in our frmework. Thus, contrrily to [4], our frmework considers tht the suitility of service depends on wht the rest of services ctully do. Furthermore, this pper presents method to utomticlly derive services from choreogrphy in such wy tht the system consisting of these services necessrily conforms to the choreogrphy. This contrsts with the projection notion given in [4], which does not gurntee tht derived services do so. Other works concern the projection nd conformnce vlidtion etween choreogrphy nd orchestrtion with synchronous communiction. rvetti nd Zvttro [3] propose theory of contrcts for conformnce checking. They define n effective procedure tht cn e used to verify whether service with given contrct cn correctly ply specific role within choreogrphy. In [14], Zongyn et l. define the concept of restricted nturl choreogrphy tht is esily implementle, nd they propose two structurl conditions s criterion to distinguish the restricted nturl choreogrphy. Furthermore, they propose new concept, the dominnt role of choice for projection concerns. Crone et l. [7] study the description of communiction ehviors from glol point of view of the communiction nd end-point ehvior levels. Three definitions for proper-structured glol description nd theory for projection re developed. ultn nd Fu [6, 5] specify We Services s converstions y Finite Stte Mchines tht nlyze whether UML collortion digrms re relizle or not. 3 Forml model In this section we present our lnguges to define models of orchestrtions nd choreogrphies. This section constitutes extended, revised, nd motivted version of [10], where rief introduction to these lnguges is given. Some preliminry nottion is presented next. Definition 3.1 Given type A nd 1,..., n A with n 0, we denote y [ 1,..., n ] the list of elements 1,..., n of A. We denote the empty list y [ ]. Given two lists σ = [ 1,..., n ] nd σ = [ 1,..., m ] of elements of type A nd some A, we consider σ = [ 1,..., n, ] nd σ σ = [ 1,..., n, 1,..., m ]. Given set of lists L, pth-closure of L is ny suset V L such tht for ll σ V we hve tht () either σ = [ ] or σ = σ for some σ with σ V ; nd () there do not exist σ, σ V such tht σ = σ nd σ = σ with. We sy tht pth-closure V of L is complete in L if it is mximl in L, tht is, if there does not exist pth-closure V L such tht V V. The set of ll complete pthclosures of L is denoted y Comp(L). We present our model of we service orchestrtion. The internl ehvior of we service in terms of its interction with other we services is represented y finite stte mchine where, t ech stte s, the mchine cn receive n input i nd produce n output o s response efore moving to new stte s. Moreover, ech trnsition explicitly defines which service must send i: A sender identifier snd is ttched to the trnsition denoting tht, if i is sent y service snd, then the trnsition cn e triggered. We ssume tht ll we services re identified y given identifier elonging to set ID. Moreover, trnsitions lso denote the ddressee of the output o, which is denoted y n identifier dr. Let us note tht we services receive messges synchronously. This is represented in the model y considering n input uffer where ll inputs received nd not processed yet re cumulted. Ech input hs ttched the identifier of the sender of the input. A prtition of the set of possile inputs will e explicitly provided, nd ech set of the prtition will denote type of inputs. If service trnsition requires receiving n input i whose type is t, then we will check if the first messge of type t ppering in the input uffer is i indeed. If it is so (the predicte ville given in the next definition will e used to check this), then we will e le to consume the input from the input uffer nd tke the trnsition. 1 Definition 3.2 Given set of service identifiers ID, service for ID is tuple (id, S, I, O, s in, T, ψ) where id ID is the 1 Note tht, equivlently, we could spek out different input uffers, one for ech type, rther thn single input uffer. 2
3 identifier of the service, S is the set of sttes, I is the set of inputs, O is the set of outputs, s in S is the initil stte, T is the set of trnsitions, nd ψ is prtition of I, i.e. we hve p ψ p = I nd for ll p, p ψ we hve p p =. Ech trnsition t T is tuple (s, i, snd, o, dr, s ) where s, s S re the initil nd finl sttes respectively, i I is n input, snd ID is the required sender of i, o O is n output, nd dr ID is the ddressee of o. A trnsition (s, i, snd, o, dr, s ) is lso denoted y s (snd,i)/(dr,o) s. Given service M = (id, S, I, O, s in, T), n input uffer for M is list [(id 1, i 1 ),..., (id k, i k )] where id 1,..., id k ID nd i 1,..., i k I. A configurtion of M is pir c = (s, ) where s S is stte of M nd is n input uffer for M. The set of ll input uffers is denoted y. The initil configurtion of M is (s in, [ ]). Let us suppose tht, given set S, 2 S denotes the powerset of S. Let = [(id 1, i 1 ),..., (id k, i k )] with k 0 e n input uffer, id ID, i I, nd S 2 I. We hve ville(, id, i, S) iff, for some 1 j k, we hve (id j, i j ) = (id, i) nd there do not exist l < j, id ID, nd i S, such tht (id l, i l ) = (id, i ). We hve insert(, id, i) = (id, i). In ddition, we lso hve remove(, id, i) = [(id 1, i 1 ),..., (id j 1, i j 1 ), (id j+1, i j+1 ),..., (id k, i k )], provided tht j IN is the minimum vlue such tht j [1..k], id = id j, nd i = i j. Next we compose services into systems of services. Definition 3.3 Let ID = {id 1,..., id p }. For ll 1 j p, let M j = (id j, S j, I j, O j, s j,in, T j, ψ j ) e service for ID. Then, S = (M 1,..., M p ) is system of services for ID. For ll 1 j p, let c j e configurtion of M j. We sy tht c = (c 1,..., c p ) is configurtion of S. Let c 1,...,c p e the initil configurtions of M 1,..., M p, respectively. Then, (c 1,..., c p) is the initil configurtion of S. We formlly define how systems evolve, i.e. how service of the system triggers trnsition nd how this ffects other services in the system. Outputs of services will e considered s inputs of the services these outputs re sent to. esides, we consider specil cse of input/output tht will e used to denote null communiction. If the input of trnsition is null then we re denoting tht the service cn tke this trnsition without witing for ny previous messge from ny other service, tht is, we denote proctive ction of the service. Similrly, null output denotes tht no messge is sent to other service fter tking the corresponding trnsition. In oth cses, the sender nd the ddressee of the trnsition re irrelevnt, respectively, so in these cses they will lso y denoted y null symol. A system evolution will e denoted y tuple (c, snd, i, proc, o, dr, c ) where c nd c re the initil nd the finl configurtion of the system, respectively, i is the input processed in the evolution, o is the output sent s result of the evolution, proc is the service whose trnsition is tken in the evolution, snd is the sender of i, nd dr is the ddressee of o. There re two resons why n evolution cn e produced: () service proctively initites trnsition, tht is, trnsition whose input is null is tken; nd () service triggers trnsition ecuse there is n ville messge in its input uffer lelled y the sender identifier nd the input required y the trnsition. In oth cses () nd (), there re two possiilities regrding new output is sent or not: (1) if the trnsition denotes null output then no other input uffer is modified; (2) otherwise, i.e. if the trnsition denotes n output different from null, then this output is stored in the uffer of the ddressee s n input. y considering ny comintion of either () or () with either (1) or (2), four kinds of evolutions rise indeed. Definition 3.4 Let ID = {id 1,..., id p } e set of service identifiers nd S = (M 1,...,M p ) e system of services for ID where for ll 1 j p we hve tht M j = (id j, S j, I j, O j, s j,in, T j, ψ j ). Let c = (c 1,...,c p ) e configurtion of S where for ll 1 j p we hve c j = (s j, j ). An evolution of S from the configurtion c is ny tuple (c, snd, i, proc, o, dr, c ) where i I 1... I p is the input of the evolution, o O 1... O p is the output of the evolution, c = ((s 1, 1 ),...,(s p, p )) is the new configurtion of S, nd snd, proc, dr ID re the sender, the processer, nd the ddressee of the evolution, respectively. All these elements must e defined ccording to one of the following choices: () (evolution ctivted y some service y itself) For some (null,null)/(dr 1 j p, let us suppose s,o) j s T j. Then, s j = s nd j = j. esides, snd = null, proc = id j, dr = dr ; () (evolution ctivted y processing messge from the input uffer of some service) For some 1 j p, (snd let us suppose tht s,i)/(dr,o) j s T j nd we hve ville( j, snd, i, p), where p is the only set elonging to ψ j such tht i p. Then, s j = s nd j = remove( j, snd, i). esides, snd = snd, proc = id j, nd dr = dr ; where, oth in () nd (), the new configurtions of the rest of services re defined ccording to one of the following choices: (1) (no messge is sent to other service) If dr = null or o = null then for ll 1 q k with q j we hve s q = s q nd q = q. (2) ( messge is sent to other service) Otherwise, let id g = dr for some 1 g k. Then, we hve s g = s g nd g = insert( g, id j, o). esides, for ll 1 q k with q j nd q g we hve s q = s q nd q = q. Figure 1 (left nd center) shows simple client/server orchestrtion specifiction where the client (A) sends requests to the server () nd the server responds to them, until the 3
4 A Client (, response) /(, ) (, )/(, exit) (, )/ (, request) Server (A, request)/ (A, response) C Chor response A exit A request A (A, exit)/(, ) Figure 1. A client/server orchestrtion (left nd center) nd choreogrphy specifiction (right). client notifies tht it leves the system. Initil sttes re denoted y doule circle node, nd null inputs nd outputs re denoted y the dsh symol. As we will see lter, the conformnce of system of service orchestrtions with respect to choreogrphy will e ssessed in terms of the ehviors of oth mchines. We extrct the ehviors of systems of services s follows: Given ny sequence of consecutive evolutions of the system from its initil configurtion, we tke the sequence of inputs nd outputs lelling ech evolution nd we remove ll null elements from this sequence. The extrcted sequence (clled trce) represents the effective ehvior of the originl sequence. We distinguish two kinds of trces. A sending trce is sequence of outputs ordered s they re sent y their corresponding senders. A processing trce is sequence of inputs ordered s they re processed y the services which receive them, tht is, they re ordered s they re tken from the input uffer of ech ddressee service to trigger some of its trnsitions. oth trces ttch some informtion to explicitly denote the services involved in ech opertion. Definition 3.5 Let S e system, c 1 e the initil configurtion of S, nd (c 1, snd 1, i 1, proc 1, o 1, dr 1, c 2 ), (c 2, snd 2, i 2, proc 2, o 2, dr 2, c 3 ),..., (c k, snd k, i k, proc k, o k, dr k, c k+1 ) e k consecutive evolutions of S. Let 1... r denote ll indexes of non-null outputs in the previous sequence, i.e. we hve j { 1,..., r } iff o j null. Then, [(proc 1, o 1, dr 1 ),..., (proc r, o r, dr r )] is sending trce of S. In ddition, if there do not exist snd, i, proc, o, dr, c such tht (c k+1, snd, i, proc, o, dr, c ) is n evolution of S then we lso sy tht [(proc 1, o 1, dr 1 ),..., (proc r, o r, dr r ), stop] is sending trce of S. The set of ll sending trces of S is denoted y sndtrces(s). Let 1... r denote ll indexes of nonnull inputs in the previous sequence, i.e. we hve j { 1,..., r } iff i j null. Then, [(snd 1, i 1, proc 1 ),..., (snd r, i r, proc r )] is processing trce of S. In ddition, if there do not exist snd, i, proc, o, dr, c such tht (c k+1, snd, i, proc, o, dr, c ) is n evolution of S then we lso sy tht [(snd 1, i 1, proc 1 ),..., (snd r, i r, proc r ), stop] is processing trce of S. The set of ll processing trces of S is denoted y prctrces(s). Next we introduce our formlism to represent choreogrphies. Contrrily to systems of orchestrtions, this formlism focuses on representing the interction of services s whole. Thus single mchine, insted of the composition of severl mchines, is considered. Ech choreogrphy trnsition denotes messge ction where some service sends messge to nother one. Definition 3.6 A choreogrphy mchine C is tuple C = (S, M, ID, s in, T) where S denotes the set of sttes, M is the set of messges, ID is the set of service identifiers, s in S is the initil stte, nd T is the set of trnsitions. A trnsition t T is tuple (s, m, snd, dr, s ) where s, s S re the initil nd finl sttes, respectively, m M is the messge, nd snd, dr ID re the sender nd the ddressee of the messge, respectively. A trnsition (s, m, snd, dr, s ) is m/(snd dr) lso denoted y s s. A configurtion of C is ny stte s S. An evolution of C from the configurtion s S is ny trnsition (s, m, snd, dr, s ) T from stte s. The initil configurtion of C is s in. Coming ck to our previous exmple, Figure 1 (right) depicts choreogrphy C etween services A nd, tht is, the client nd the server. The trnsitions of this choreogrphy ctully denote the sme evolutions we cn find in system of services consisting of services A nd. As we did efore for systems of services, next we identify the sequences of messges tht cn e produced y choreogrphy mchine. Definition 3.7 Let c 1 e the initil configurtion of choreogrphy mchine C. Let (c 1, m 1, snd 1, dr 1, c 2 ),..., (c k, m k, snd k, dr k, c k+1 ) e k 0 consecutive evolutions of C. We sy tht σ = [(snd 1, m 1, dr 1 ),..., (snd k, m k, dr k )] is trce of C. In ddition, if there do not exist m, snd, dr, c such tht (c k+1, m, snd, dr, c ) is n evolution of C then we lso sy tht [(snd 1, m 1, dr 1 ),..., (snd k, m k, dr k ), stop] is trce of C. The set of ll trces of C is denoted y trces(c). 4 Conformnce reltions nd derivtion of choreogrphy-complint sets of services Now we re provided with ll the required forml mchinery to define our conformnce reltions etween systems of 4
5 orchestrtions nd choreogrphies. We will consider semntic reltion inspired in the conformnce testing reltion given in [15, 16]. This notion is devoted to check whether n implementtion meets the requirements imposed y specifiction. In our cse, we will check whether the ehvior of system of orchestrtion services meets the requirement given y the choreogrphy. However, there re some importnt differences etween the notion proposed in [15, 16] nd the notion considered here. Contrrily to those works, the ehvior of orchestrtions nd choreogrphies will not e compred in terms of their possile interctions with n externl entity (i.e. user, oserver, externl ppliction, etc) ut in terms of wht oth models cn/cnnot do y their own, ecuse oth models re considered s closed worlds. Let us lso note tht nondeterminism llows choreogrphy to provide multiple vlid wys to perform the opertions it defines. Consequently, we consider tht system of orchestrtion services conforms to choreogrphy if it performs one or more of these vlid wys. For ech of these vlid wys, cre must e tken not to llow the system of services to incompletely perform it, i.e. to finish in n intermedite stte provided tht the choreogrphy does not llow it either. In order to check these requirements, only complete pth-closures will e considered (see Definition 3.1). Moreover, the set of complete pth-closures of the system of choreogrphies is required to e non-empty ecuse the system is required to provide t lest one (complete) wy to perform the requirement given y the choreogrphy. Alterntively, we lso consider nother reltion where the system of orchestrtions is required to perform ll execution wys defined y the choreogrphy. This lterntive notion will e clled full conformnce. Let us recll tht we consider synchronous communictions in our frmework. Thus, the moment when messge is sent does not necessrily coincide with the moment when this messge is tken y the receiver from its input uffer nd is processed. In fct, we cn define choreogrphy in such wy tht defined communictions refer to either the former kind of events or the ltter (i.e., instnts where messges re sent, or instnts where messges re processed y their receivers, respectively). Thus, we consider two wys in which system of services my conform to choreogrphy: with respect to sending trces, nd with respect to processing trces. esides, we explicitly identify the cse where oth conformnce notions simultneously hold. Definition 4.1 Let S e system of services nd C e chorogrphy mchine. We sy tht S conforms to C with respect to sending ctions, denoted y S conf s C, if either we hve Comp(sndTrces(S)) Comp(trces(C)) or we hve = Comp(sndTrces(S)) = Comp(trces(C)). We sy tht S fully conforms to C with respect to sending ctions, denoted y S conf f s C, if Comp(sndTrces(S)) = Comp(trces(C)). We sy tht S conforms to C with respect to processing ctions, denoted y S conf p C, if we hve either Comp(prcTrces(S)) Comp(trces(C)) or = Comp(prcTrces(S)) = Comp(trces(C)). We sy tht S fully conforms to C with respect to sending ctions, denoted y S conf f p C, if Comp(prcTrces(S)) = Comp(trces(C)). We sy tht S conforms to C, denoted y S conf C, if S conf s C nd S conf p C. We sy tht S fully conforms to C, denoted y S conf f C, if S conf f s C nd S conf f p C. The sutle differences etween ll the previous semntic reltions re illustrted in detil, y mens of severl exmples nd smll cse study, in Appendix A. Once we re provided with pproprite notions to compre sets of orchestrtion models with choreogrphy models, we study the prolem of utomticlly deriving orchestrtion services from given choreogrphy, in such wy tht the system consisting of these derived services conforms to the choreogrphy. Next we consider deriving services y projecting the structure of the choreogrphy into ech involved service. Ech service copies the form of sttes nd trnsitions of the choreogrphy, though service trnsitions re leled only y ctions concerning the service. Unfortuntely, if services re derived in this wy then, in generl, the resulting set of services does not conform to the choreogrphy with respect to ny of the proposed conformnce notions. Let us consider Figure 4, depicted in Appendix A. Services 24, 25, nd 26 re projections of the choreogrphy 27 into ech service regrded in the definition of 27. However, the composition of 24, 25, nd 26 does not necessrily led to the ehvior required y 27. In prticulr, it could e the cse tht service 25 tkes its right choice (i.e. it sends c to 26) while 24 tkes its left choice (i.e. it sends to 25), which is not llowed y 27. Moreover, if only messges ppering in choreogrphy 27 re llowed in services then no lterntive definition of 24, 25, nd 26 llows to meet the requirement imposed y 27: Service 24 cnnot decide whether it must send or c to 25 ecuse it cnnot know the messge sent y 25 to 26. The prolem of investigting how we cn design synchronous communicting processes in such wy they will necessrily produce some ehvior or rech some configurtion hve een tckled in severl wys in the literture. For instnce, [11] studies the prolem of designing two synchronous processes in such wy tht their progress is gurnteed, while [8] studies the cses where we cnnot define some communicting processes conforming to given specifiction. We will mke ny choreogrphy relizle y dding some control messges to the definition of services. These messges will llow services to know wht is required t ech time to properly mke the next decision, ccording to the choreogrphy specifiction. Next we reconsider our conformnce reltions under the ssumption tht these dditionl messges re llowed indeed. Tht is, services re llowed to send/receive dditionl messges not included in the choreogrphy. In order to void confusion etween stndrd chorogrphy messges nd other messges, the ltter messges re required to e different to the former. Regrding the definition of conformnce reltions, we require 5
6 trces inclusion/equlity gin, though we remove dditionl messges prior to compring sets of trces. Definition 4.2 Let σ sndtrces(s) prctrces(s) where S is system of services. The constrin of σ to set of inputs nd outputs Q, denoted y σ Q, is the result of removing from σ ll elements (, m, ) with m Q. Let S e system of services for ID nd let C = (S, M, ID, s in, T) e choreogrphy. Let conf x {conf s, conf f s, conf p, conf f p}. We hve S conf x C if S conf x C provided tht the occurrences of sndtrces(s) nd prctrces(s) ppering in Definition 4.1 re replced y sets {σ M σ sndtrces(s)} nd {σ M σ prctrces(s)}, respectively. Now, let conf x {conf, conf f }. We hve S conf x C if S conf x C provided tht the occurrences of conf s, conf f s, conf p, conf f p ppering in the definition of conf nd conf f, given in Definition 4.1, re replced y conf s, conf f s, conf p, conf f p, respectively. We revisit our previous exmple. Let us modify services 24 nd 25 in such wy tht, right fter 25 sends or c to service 26, service 25 tells service 24 whether or c ws sent. This is done y sending to service 24 new messge d or e, respectively. Services 24 nd 25 (lso depicted in Figure 4) re the resulting new versions of services 24 nd 25, respectively. Let us note tht the system consisting in 24, 25, nd 26 conforms to 27 with respect to ll conformnce reltions introduced in the previous definition, ecuse ll of them ignore messges d nd e. Intuitively, derivtion of services sed on simple projection does not work ecuse it does not mke services follow the non-deterministic choices tken y the choreogrphy. In order to solve this prolem, next we consider n lterntive wy to extrct services from the choreogrphy. In prticulr, new control messges re dded to mke ll services follow the sme non-determinism choices of the choreogrphy, s we did in our previous exmple. In order to do it, we will introduce new service, clled the orchestrtor, which will e responsile of mking ll non-deterministic choices of the choreogrphy. For ech stte s j of the choreogrphy hving severl outgoing trnsitions, n equivlent trnsition will e non-deterministiclly tken y the orchestrtor (sy, the p-th ville trnsition). Next, the orchestrtor will tke severl consecutive trnsitions to nnounce its choice to ll services. In ech of these trnsitions, the orchestrtor will send messge jp to nother service, mening tht the p-th trnsition leving stte s j must e tken y the service. After () the orchestrtor nnounces its choice to ll services; nd () the orchestrtor receives messge jp from the ddressee of the choreogrphy trnsition (this messge denotes tht the ddressee hs processed the messge), the orchestrtor will rech stte representing the stte reched in the choreogrphy fter tking the selected trnsition, nd the sme process will e followed gin. y dding the orchestrtor, we mke sure tht ll services follow the sme non-deterministic choices of the choreogrphy, nd thus system consisting of the orchestrtion nd the corresponding derived services will conform to the choreogrphy with respect to ll conf x reltions given in Definition 4.2. Let us note tht, since the only messge required y the orchestrtor to continue is sent y the ddressee denoted in the choreogrphy trnsition, t given time the orchestrtor nd the services could hve reched different steps of the choreogrphy simultion execution (in generl, the orchestrtor will e in further step). There is no risk tht services confuse the order in which ech trnsition must e tken, ecuse ll messges controlling trnsition choices re introduced in input uffers (s the rest of messges) nd they will elong to the sme type. Thus, they will e processed in the sme order s the orchestrtor sent ech of them. This gurntees tht services will e led through the choreogrphy grph y following the orchestrtor pln, in the sme order s plnned. Next we will ssume tht the identifier of the orchestrtor is orc. Definition 4.3 Let C = (S, M, ID, s in, T) e choreogrphy mchine where ID = {id 1,..., id n } nd S = {s 1,..., s l }. For ll 1 i n, the controlled service for C nd id i, denoted controlled(c, id i ), is service M i = id i, S {s ij, s ij i, j [1..l]}, M { ij i, j [1..l]}, M { ij i, j [1..l]}, s in, T i, {{m} m M} {{ ij i, j [1..l]}} where for ll s j S the following trnsitions re in T i : Let t 1,..., t k e the trnsitions leving s j in C. For ll (orc, jp)/(null,null) 1 p k we hve s j s jp T i. m/(snd dr) Let t p = s j s j T e the p-th trnsition leving s j in C. For ll 1 j l nd 1 p k (snd we hve s,i)/(dr,o) jp u jp T i, where () if snd = id i then snd = i = null, dr = dr, o = m, nd u jp = s j. () else, if dr = id i then snd = snd, i = m, dr = o = null, nd u jp = s jp. esides, we lso hve (null,null)/(orc, jp) s j in T i. s jp (c) else snd = i = dr = o = null nd u jp = s j. The orchestrtor of C, denoted y orchestrtor(c), is service O = orc, S {s ijk i, j [1..l], k [1..n+1]}, M { ij i, j [1..l]}, M { ij i, j [1..l]}, s in, T o, {{m} m M} {{ ij i, j [1..l]}} where for ll s j S the following trnsitions re included in T o : Let t 1,..., t k e the trnsitions leving s j in C. For ll (null,null)/(null,null) 1 p k we hve s j s jp1 T o. 6
7 A C e f A o (A,1) (,1) (A,2) (,2) (,1)/ (A,2)/ A (o,1)/ (,e) (,f)/ (o,2) (o,2)/ (o,1)/ (A,e)/ (o,1) (A,f) Figure 2. Derivtion of services with orchestrtor. (o,2)/ Definition 4.5 We hve tht controlled (C, id i ) is defined s controlled(c, id i ) fter replcing cses () nd () of Definition 4.3 y the following expressions: () if snd = id i then snd = i = null, dr = dr, o = m, nd u jp = s jp. esides, we lso hve (null,null)/(orc, jp) s j in T i. s jp () else, if dr = id i then snd = snd, i = m, dr = o = null, nd u jp = s j. Theorem 4.6 Let C = (S, M, ID, s in, T) e choreogrphy with ID = {id 1,...,id n }. Let S = (controlled (C, id 1 ),..., controlled (C, id n ), orchestrtor(c)). For ll conf x {conf s, conff s } we hve S conf x C. m/(snd dr) Let t p = s j s j T e the p-th trnsition leving s j in C. For ll 1 p k, 1 i n we (null,null)/(id i, jp) hve s jpi s jp i+1 T o. (dr, jp)/(null,null) hve s jp n+1 s j T o. We lso Theorem 4.4 Let C = (S, M, ID, s in, T) e choreogrphy with ID = {id 1,..., id n }. Let S = (controlled(c, id 1 ),..., controlled(c, id n ), orchestrtor(c)). For ll conf x {conf s, conf p, conf, conf f s, conf f p, conf f } we hve S conf x C. Figure 2 shows choreogrphy C s well s the services derived from C y pplying Definition 4.3, including n orchestrtor O. If we do not need to meet the conformnce with respect to processing trces, tht is, if we only require conf s nd conf f s, then we do not need to require tht ddressees of choreogrphy trnsitions lock the dvnce of the orchestrtor until they process received messges. This restriction ws imposed just to force the messge processing follow the order required y the choreogrphy. Alterntively, if ddressees do not lock the orchestrtor then, for instnce, the service responsile of processing the second messge of the execution could process it efore the service responsile of processing the first one does so. Even if the orchestrtor were not required to wit for the ddressees, the order in which messges re sent would e correct s long s the orchestrtor is required to wit for the senders. Actully, if we only consider conformnce with respect to sending trces then replcing the restriction of witing for the ddresses y the restriction of witing for the senders is good choice in terms of efficiency. This is ecuse, in this cse, the orchestrtor will not e locked just witing for the messge to e processed; on the contrry, it will e le to go on even if the messge hs not een processed yet. Thus, y tking this lterntive, the rte of ctivities the services cn ctully execute in prllel is incresed. Let us note tht we cn remove the orchestrtor nd distriute its responsiilities mong the services themselves, thus mking decentrlized solution. Let s e choreogrphy stte with severl outgoing trnsitions. Insted of using n orchestrtor to choose which trnsition is tken, we do s follows: We sort ll outgoing trnsitions e.g. y the nme of the sender nd we mke the first sender choose etween () tking ny of the trnsitions where it is the sender; or () refusing to do so. In cse () it will nnounce its choice to the rest of services, thus plying the role of the orchestrtor in this step. In cse () it will notify its rejection to choose trnsition to the second service. Then, the second service will choose either () or () in the sme wy, nd so on up to the lst sender, which will e forced to tke one of its trnsitions. Let us note tht, in this lterntive design, service cn receive the request to tke given non-deterministic choice from severl services, nd thus ll corresponding trnsitions must e creted. This complictes the definition of the derivtion; due to the lck of spce, the forml definition of this derivtion is given in Appendix (see Definitions 5.1 nd 5.1). As it is shown in Theorems 5.2 nd 5.2, the set of services derived in this wy lso conforms to the choreogrphy with respect to ll reltions given in Definition 4.2 (if services wit for the ddressee of the choreogrphy trnsition) or with respect to conf s nd conff s (if they do not). An exmple of derivtion of the former kind is depicted in Figure 3. For the ske of simplicity, some trnsitions included in the forml derivtion hve een omitted. Service A receives the responsiility of either tking one of the trnsitions where it is the sender (there is only one in this exmple) or refusing to do so. In the former cse, it tells the next service in the list () tht it will decide the trnsition indeed (messge 2) nd next it tells ll services (i.e. just ) which of its trnsitions it will ctully tke (21). Then, it sends e to nd wits for signl indicting tht hs processed the messge (2). In the ltter cse, i.e. if it refuses to choose one of its trnsitions, then it tells its decision to next service (messge 1) nd wits for the rest of services (just ) to tell it which choice it must tke. When does so (11), it wits for receiving from nd next it cknowledges the 7
8 A C e f A A (,1) (,11)/ (,f)/ (,1) (,2) (,21) (,e) (,2)/ ( A,1 )/ ( A,2)/ (A,11) (A,f) (A,1)/ ( A,21)/ (A,e)/ (A,2) Figure 3. Derivtion of services without orchestrtor. reception (1). The ehvior of turns out to e dul to the ehvior of A. 5 Conclusions nd future work In this pper we hve presented forml frmework to utomticlly extrct system of services tht conforms to given choreogrphy. Two derivtion methods, one of them sed on n orchestrtor service nd the other one yielding decentrlized system, re presented. For ech method, we consider two lterntives: Mking the system conform with respect to instnts where messges re sent, or mking it conform with respect to ll proposed criteri. Lnguges for defining models of orchestrtions nd choreogrphies hve een presented, nd we hve defined some forml semntic reltions where, in prticulr, sending trces re distinguished from processing trces, nd the suitility of service for given choreogrphy my depend on the ctivities of the rest of services it will e connected with, which contrsts with previous works [4]. The proposed frmework is illustrted with severl toy exmples nd smll cse study, given Appendix A. References [1] T. Andrews nd F. Curer. We Service usiness Process Execution Lnguge, Working Drft, Version 2.0, 1. [2] M. orele, R. D. Nicol, nd R. Pugliese. Trce nd testing equivlence on synchronous processes. Inf. Comput., 172(2): , [3] M. rvetti nd G. Zvttro. Towrds unifying theory for choreogrphy conformnce nd contrct complince. In Softwre Composition, pges 34 50, [4] M. rvetti nd G. Zvttro. Contrct complince nd choreogrphy conformnce in the presence of messge queues. In Proc. of 5th Interntionl workshop on We Services nd Forml Methods, WS-FM 08, LNCS (in press). Springer, [5] T. ultn nd X. Fu. Choreogrphy modeling nd nlysis with collortion digrms. IEEE Dt Eng. ull., 31(3):27 30, [6] T. ultn nd X. Fu. Specifiction of relizle service converstions using collortion digrms. Service Oriented Computing nd Applictions, 2(1):27 39, [7] M. Crone, K. Hond, nd N. Yoshid. Theoreticl spects of communiction-centred progrmming. Electr. Notes Theor. Comput. Sci., 209: , [8] H. Cstejón, R. rek, nd G. ochmnn. Relizility of collortion-sed service specifictions. Asi-Pcific Softwre Engineering Conference, 0:73 80, [9] I. Cstellni nd M. Hennessy. Testing theories for synchronous lnguges. In FSTTCS, pges , [10] G. Díz nd I. Rodríguez. Checking the conformnce of orchestrtions with respect to choreogrphies in we services: A forml pproch (to pper s short pper). In FMOODS/FORTE Springer, [11] M. Goud nd Y. Yu. Synthesis of communicting finite-stte mchines with gurnteed progress. IEEE Trnsctions on Communictions, 32(7): , [12] K. Hond, N. Yoshid, nd M. Crone. Multiprty synchronous session types. In POPL, pges , [13] M. Huhns nd M. Singh. Service-oriented computing: Key concepts nd principles. In IEEE Internet Computing, pges IEEE Computer Society Press, [14] Z. Qiu, X. Zho, C. Ci, nd H. Yng. Towrds the theoreticl foundtion of choreogrphy. In WWW, pges , [15] J. Tretmns. Conformnce testing with lelled trnsition systems: Implementtion reltions nd test genertion. Computer Networks nd ISDN Systems, 29:49 79, [16] J. Tretmns. Testing concurrent systems: A forml pproch. In CONCUR 99, LNCS 1664, pges Springer, [17] W. M. P. vn der Alst, N. Lohmnn, P. Mssuthe, C. Sthl, nd K. Wolf. From pulic views to privte views - correctness-y-design for services. In WS-FM, pges , [18] W3C. We Services Choreogrphy Description Lnguge, WD-ws-cdl
9 (1,)/ (2,) (1,)/ (4,) (4,) (3,)/ (2,) (1,)/ (1,)/ (4,) (4,) (3,)/ (10,) 10 (9,) (12,msg) 12 (11,msg)/ (11,ck) 13 (13,msg!) 14 (14,msg?)/ (9,)/ (12,ck)/ 15 (17,) (17,) (22,) 22 (21,)/ 22' (21,)/ (21,)/ (21,)/ (21,c)/ (15,)/ (16,)/ (22,) (21,)/ (21,c)/ 24 (25,) 25 (24,)/ ' (25',) (25',d)/ (25',e)/ 25' (24',)/ (26,) (26,c) (26,) (26,c) (25,)/ (25,c)/ c (24',d) (24',e) (25,) (25,c) (24,)/ (24,c)/ c (25',) (25',c) (24',)/ (24',c)/ Figure 4. Orchestrtions nd choreogrphies. 9
10 Appendix A: Exmples nd Cse Study In this ppendix we illustrte the use of the conformnce reltions given in Definition 4.1 with some simple exmples, nd next we show smll cse study including more elorted system. Intuitively, complete pthclosure (see Definition 3.1) is set consisting of (mximl) sequence s well s ll of its prefixes. Let us note tht the longest element of finite complete pth-closure of trces necessrily finishes with the stop symol. For the ske of clrity, from now on complete pth-closure will e referred just y its longest element not including the stop symol. For instnce, the complete pthclosure {[ ], [(1,, 2)], [(1,, 2), (1,, 2)], [(1,, 2), (1,, 2), stop]} will e referred just y [(1,, 2), (1,, 2)] (nd we will sy tht [(1,, 2), (1,, 2)] is complete trce). Following similr ide, n infinite complete pth-closure of the form {[ ], [( 1, 1, c 1 )], [( 1, 1, c 1 ), ( 2, 2, c 2 )], [( 1, 1, c 1 ), ( 2, 2, c 2 ), ( 3, 3, c 3 )],...} will e referred y the infinite list [( 1, 1, c 1 ), ( 2, 2, c 2 ), ( 3, 3, c 3 ),...]. Figure 4 presents severl orchestrtion services nd choreogrphies. For ll depicted services we will ssume ech input elongs to different type of inputs. Let S 1 e system of orchestrtion services consisting of services 1 nd 2. We check whether S 1 conforms to choreogrphies 5 nd 6. If we consider the conf s reltion, then we oserve tht S 1 conforms to oth 5 nd 6. This is ecuse the only possile complete sending trce of S 1 is [(1,, 2), (1,, 2)], which is included in the set of complete trces of 5 (which is {[(1,, 2), (1,, 2)], [(1,, 2), (1,, 2)]}) nd 6 ({[(1,, 2), (1,, 2)]}). Concerning full conformnce, we hve tht S 1 fully conforms to 6 with respect to sending trces, ut not to 5. Regrding processing trces, let us note tht S 1 cn generte the complete processing trces [(1,, 2), (1,, 2)] nd [(1,, 2), (1,, 2)] (note tht, fter nd re received in the input uffer of service 2, service 2 cn process them in ny order). oth complete processing trces re included in the set of complete trces of 5, ut not in the corresponding set of 6, which only includes [(1,, 2), (1,, 2)]. Thus, if either conf p or conf f p re considered, then S 1 conforms to 5, ut not to 6. Let S 2 e the system consisting of services 3 nd 4, nd let us compre it with choreogrphies 7 nd 8. In this cse, we hve the opposite result s efore. In prticulr, if processing trces re considered, then S 2 conforms to oth choreogrphies (if full conformnce is considered, it only conforms to 8). However, S 2 does not conform to 8 when sending trces re considered, regrdless of whether full conformnce is considered or not. Let us note tht S 2 cn perform the sending trces [(3,, 4), (3,, 4)] nd [(3,, 4), (3,, 4)]. However, the sets of complete trces of choreogrphies 7 nd 8 re {[(3,, 4), (3,, 4)], [(3,, 4), (3,, 4)]} nd {[(3,, 4), (3,, 4)]}, respectively. Thus, if conf s or conf f s re considered, then S 2 conforms to choreogrphy 7, ut not to choreogrphy 8. Next, let S 3 e the system consisting of services 9 nd 10. We compre S 3 with choreogrphies 11 nd 12. The set of complete sending trces of S 3 is equl to {[(9,, 10), (9,, 10)], [(9,, 10), (9,, 10)]}, while the set of complete processing trces of S 3 is {[(9,, 10)]}. On the one hnd, the only complete trce of choreogrphy 11 is [(9,, 10)], so S 3 conforms to 11 only if processing trces re considered (with respect to oth conf p nd conf f p ). On the other hnd, choreogrphy 12 cn produce oth [(9,, 10), (9,, 10)] nd [(9,, 10), (9,, 10)]. Since only complete trces re considered, S 3 conforms to 12 only if sending trces re regrded (ccording to oth conf s nd conf f s ). Despite of the fct tht only synchronous communictions re considered in our frmework, synchronous communictions cn e trivilly defined indeed. Let us consider the system S 4 consisting of services 13 nd 14. After 13 sends messge msg to 14, service 13 will e locked until 14 performs its unique trnsition nd sends messge ck ck to 13. So, synchronous communiction etween 13 nd 14 is ctully expressed y this trivil structure. A syntctic sugr to denote synchronous communiction like this is implicitly proposed in pictures of services 15 nd 16, which re intended to e equivlent to 13 nd 14, respectively. In prticulr, we propose to denote synchronous communiction on messge msg y using new symols msg? nd msg!. Let us note tht if only these kind of messges re used in orchestrtions, then conf s = conf p = conf nd conf f s = conff p = conff. Let us recll tht the suitility of n orchestrtion service to fulfill given choreogrphy depends on the ehvior of the rest of involved services. In order to illustrte this, we revisit the trvel gency exmple presented in Section 2. A trvel gency (service 17) wits for messge (stnding for we provide you with trnsfer service ) from ny of two possile services: n ir compny or hotel. We consider two possile ir compnies, represented y services 15 nd 15. Service 15 provides service 17 with trnsfer service, while 15 does nothing. Similrly, services 16 nd 16 represent two hotels, where only 16 provides the trvel gency with trnsfer. Most comintions of, on one hnd, either 15 or 15 nd, on the other hnd, either 16 or 16, llow 17 to stisfy the choreogrphy 18 with respect to (non-full) sending nd processing conformnce. In fct, only comining 15 with 16 fils to meet oth non-full semntic reltions. Thus, either the ir compny or the hotel must provide the trnsfer. If full conformnce is required, then the only vlid comintion of ir compny nd hotel consists in tking 15 nd 16, respectively. We show tht systems of orchestrtions re required to complete ll strted sequences, tht is, they re required not to finish strted sequence until the choreogrphy explicitly llows it. Let us consider orchestrtion services 21, 22, nd 22, s well s choreogrphy 23. Let S 5 e system consisting of services 21 nd 22. The sequence [(21,, 22), (21,, 22)] is oth the only complete sending trce nd the only complete processing trce of S 5. Thus, S 5 conforms to choreogrphy 23 with respect to oth kinds 10
11 of trces. Let us sustitute the definition of service 22 y tht given for service 22, nd let S 5 e the resulting system. The set of complete sending trces of S 5 is the sme s S 5, so S 5 lso conforms to 23 with respect to sending trces. However, the set of complete processing trces of S 5 is {[(21,, 22 ), (21,, 22 )], [(21,, 22 )]} ecuse 22 could tke its right pth nd get stuck fter receiving (more formlly, [(21,, 22 ), stop] is processing trce of S 5). Since [(21,, 22 )] is not complete processing trce of 23, S 5 does not conform to 23 with respect to processing trces. Finlly, we consider cse where there re infinite complete trces in systems due to the presence of loops. Let us revisit the orchestrtions nd the choreogrphy previously depicted in Figure 1, nd let S e the composition of A nd. The infinite set of complete trces of choreogrphy C is T = {σ, σ 1, σ 2, σ 3,...}, where σ is the infinite conctention of the susequence α = [(A, request, ), (, response, A)], tht is, σ = α α α..., nd for ll i IN we hve σ i = (α) i (A, exit, ). In fct, the infinite set of complete sending nd processing trces of S is T s well, so we hve tht S conforms to C with respect to ll reltions conf s, conf p, conf, conf f s, conf f p, nd conf f. Finlly, we present smll cse study consisting in more elorted system. This is typicl purchse process tht uses Internet s usiness context for trnsction. There re three ctors in this exmple: customer, seller nd crrier. The purchse works s follows: A customer wnts to uy product y using Internet. There re severl sellers tht offer different products in Internet Servers sed on We-pges. The customer contcts seller in order to uy the desired product. The seller checks the stock nd contcts with crrier. Finlly, the crrier delivers the product to the customer. Figures 5 nd 6 depict the orchestrtion of the three ctors represented in this purchse process, tht is, the customer, the seller nd the crrier. The ehvior of ech prticipnt is defined s follows: Customer: It contcts the seller to uy product. After consulting the product list, it cn either order product or do nothing. If the customer decides to uy product, then it must send the seller the informtion out the product nd the pyment method. After the pyment, it wits to receive the product from crrier. Seller: It receives the customer order nd the pyment method. The seller checks if there is enough stock to deliver the order nd sends n cceptnce notifiction to the customer. If there is stock to deliver the order, then it contcts with crrier to deliver the product. Crrier: It picks up the order nd the customer informtion in order to deliver the product to the customer. Figure 7 shows the choreogrphy of this Internet purchse process. Once the orchestrtions of the three service nd the choreogrphy specifiction re defined, we use the conformnce reltions given in Definition 4.1 to check if the coms 1 (1,iProduct,2), (2,lProduct,1), (1,Nothing,2) s 2 (1,iProduct,2), (2,lProduct,1), (1,Product), (2,NoStock,1) s 3 (1,iProduct,2), (2,lProduct,1), (1,Product), (2,Stock,1), (1,iPyment,2), (2,Receipt,1), (2,PickOrder,3), (3,DeliverOrder,1) Tle 1. The choreogrphy C trces. position of the proposed orchestrtion services stisfies the choreogrphy. Let us consider the system S = (1, 2, 3), where 1, 2, nd 3 represent the client service, the seller service, nd the crrier service, respectively. Let C e the choreogrphy mchine depicted in Figure 7, nd let s 1, s 2, s 3 e the sequences depicted in Tle 1. For ll complete trce σ of C, σ is n infinite conctention of susequences σ = α 1 α 2 α 3 α 4... where for ll i IN we hve α i {s 1, s 2, s 3 }. Let us note tht ny complete sending or processing trce σ of S must lso e n infinite conctention of susequences s 1, s 2, s 3. Hence, for ll σ Comp(sndTrces(S)) Comp(prcTrces(S)) we hve σ Comp(trces(C)), nd thus we hve oth Sconf s C nd Sconf p C, which implies SconfC. Moreover, in this cse we lso hve tht, for ll σ Comp(trces(C)), σ Comp(sndTrces(S)) nd σ Comp(prcTrces(S)). Therefore, we lso hve Sconf f s C, Sconff p C, nd Sconff C. Appendix : Derivtion of decentrlized systems of services In this ppendix we formlly present the derivtion of decentrlized systems of services from choreogrphies. Two lterntives re considered: Mking the system conform to the choreogrphy with respect to ll proposed conf x conformnce reltions, nd mking it conform only with respect to sending trces. Theorems 5.2 nd 5.4 show the correctness of oth pproches. Definition 5.1 Let C = (S, M, ID, s in, T) e choreogrphy mchine where ID = {id 1,..., id n } nd S = {s 1,..., s l }. For ll s S nd id ID, let T s,id = {(s, m, id, dr, s ) dr, m, s : (s, m, id, dr, s ) T } nd m s,id = T s,id. For ll 1 j m s,id, let t s,id,j denote the j-th trnsition of T s,id ccording to some ritrry ordering criterium. Let [id s,.. s.,ids 1 ] denote the sequence s hs of ll identifiers id ID such tht m s,id 1, ordered ccording to some ritrry ordering criterium. For ll 1 i n, the decentrlized service for C nd id i, denoted decentrl(c, id i ), is service M i = (id i, S i, I i, O i, s in, T i, {I i }), where S i, I i, O i consist of ll sttes, inputs, nd outputs ppering in trnsitions descried next nd, for ll s S, the following trnsitions re in T i : [CASE 1] If there re trnsitions leving s in which id i is the sender, ut id i is neither the first nor the lst service 11
Dr. D.M. Akbar Hussain
Dr. D.M. Akr Hussin Lexicl Anlysis. Bsic Ide: Red the source code nd generte tokens, it is similr wht humns will do to red in; just tking on the input nd reking it down in pieces. Ech token is sequence
More informationFig.25: the Role of LEX
The Lnguge for Specifying Lexicl Anlyzer We shll now study how to uild lexicl nlyzer from specifiction of tokens in the form of list of regulr expressions The discussion centers round the design of n existing
More informationIn the last lecture, we discussed how valid tokens may be specified by regular expressions.
LECTURE 5 Scnning SYNTAX ANALYSIS We know from our previous lectures tht the process of verifying the syntx of the progrm is performed in two stges: Scnning: Identifying nd verifying tokens in progrm.
More informationCS321 Languages and Compiler Design I. Winter 2012 Lecture 5
CS321 Lnguges nd Compiler Design I Winter 2012 Lecture 5 1 FINITE AUTOMATA A non-deterministic finite utomton (NFA) consists of: An input lphet Σ, e.g. Σ =,. A set of sttes S, e.g. S = {1, 3, 5, 7, 11,
More informationthis grammar generates the following language: Because this symbol will also be used in a later step, it receives the
LR() nlysis Drwcks of LR(). Look-hed symols s eplined efore, concerning LR(), it is possile to consult the net set to determine, in the reduction sttes, for which symols it would e possile to perform reductions.
More informationCOMP 423 lecture 11 Jan. 28, 2008
COMP 423 lecture 11 Jn. 28, 2008 Up to now, we hve looked t how some symols in n lphet occur more frequently thn others nd how we cn sve its y using code such tht the codewords for more frequently occuring
More informationDefinition of Regular Expression
Definition of Regulr Expression After the definition of the string nd lnguges, we re redy to descrie regulr expressions, the nottion we shll use to define the clss of lnguges known s regulr sets. Recll
More informationIf you are at the university, either physically or via the VPN, you can download the chapters of this book as PDFs.
Lecture 5 Wlks, Trils, Pths nd Connectedness Reding: Some of the mteril in this lecture comes from Section 1.2 of Dieter Jungnickel (2008), Grphs, Networks nd Algorithms, 3rd edition, which is ville online
More informationUT1553B BCRT True Dual-port Memory Interface
UTMC APPICATION NOTE UT553B BCRT True Dul-port Memory Interfce INTRODUCTION The UTMC UT553B BCRT is monolithic CMOS integrted circuit tht provides comprehensive MI-STD- 553B Bus Controller nd Remote Terminl
More informationCSCI 3130: Formal Languages and Automata Theory Lecture 12 The Chinese University of Hong Kong, Fall 2011
CSCI 3130: Forml Lnguges nd utomt Theory Lecture 12 The Chinese University of Hong Kong, Fll 2011 ndrej Bogdnov In progrmming lnguges, uilding prse trees is significnt tsk ecuse prse trees tell us the
More informationLanguages. L((a (b)(c))*) = { ε,a,bc,aa,abc,bca,... } εw = wε = w. εabba = abbaε = abba. (a (b)(c)) *
Pln for Tody nd Beginning Next week Interpreter nd Compiler Structure, or Softwre Architecture Overview of Progrmming Assignments The MeggyJv compiler we will e uilding. Regulr Expressions Finite Stte
More information2 Computing all Intersections of a Set of Segments Line Segment Intersection
15-451/651: Design & Anlysis of Algorithms Novemer 14, 2016 Lecture #21 Sweep-Line nd Segment Intersection lst chnged: Novemer 8, 2017 1 Preliminries The sweep-line prdigm is very powerful lgorithmic design
More informationCS143 Handout 07 Summer 2011 June 24 th, 2011 Written Set 1: Lexical Analysis
CS143 Hndout 07 Summer 2011 June 24 th, 2011 Written Set 1: Lexicl Anlysis In this first written ssignment, you'll get the chnce to ply round with the vrious constructions tht come up when doing lexicl
More informationA Tautology Checker loosely related to Stålmarck s Algorithm by Martin Richards
A Tutology Checker loosely relted to Stålmrck s Algorithm y Mrtin Richrds mr@cl.cm.c.uk http://www.cl.cm.c.uk/users/mr/ University Computer Lortory New Museum Site Pemroke Street Cmridge, CB2 3QG Mrtin
More informationTries. Yufei Tao KAIST. April 9, Y. Tao, April 9, 2013 Tries
Tries Yufei To KAIST April 9, 2013 Y. To, April 9, 2013 Tries In this lecture, we will discuss the following exct mtching prolem on strings. Prolem Let S e set of strings, ech of which hs unique integer
More informationDistributed Systems Principles and Paradigms
Distriuted Systems Principles nd Prdigms Chpter 11 (version April 7, 2008) Mrten vn Steen Vrije Universiteit Amsterdm, Fculty of Science Dept. Mthemtics nd Computer Science Room R4.20. Tel: (020) 598 7784
More informationPointwise convergence need not behave well with respect to standard properties such as continuity.
Chpter 3 Uniform Convergence Lecture 9 Sequences of functions re of gret importnce in mny res of pure nd pplied mthemtics, nd their properties cn often be studied in the context of metric spces, s in Exmples
More informationLecture 10 Evolutionary Computation: Evolution strategies and genetic programming
Lecture 10 Evolutionry Computtion: Evolution strtegies nd genetic progrmming Evolution strtegies Genetic progrmming Summry Negnevitsky, Person Eduction, 2011 1 Evolution Strtegies Another pproch to simulting
More informationΕΠΛ323 - Θεωρία και Πρακτική Μεταγλωττιστών
ΕΠΛ323 - Θωρία και Πρακτική Μταγλωττιστών Lecture 3 Lexicl Anlysis Elis Athnsopoulos elisthn@cs.ucy.c.cy Recognition of Tokens if expressions nd reltionl opertors if è if then è then else è else relop
More informationJae-yoon Jung, Wonchang Hur, Hoontae Kim, and Suk-Ho Kang
Business Process Choreogrphy for B2B Collortion Je-yoon Jung, Wonchng Hur, Hoonte Kim, nd Suk-Ho Kng Deprtment of Industril Engineering, Seoul Ntionl University, Seoul, 151-742, Repulic of Kore Astrcts
More informationWhat are suffix trees?
Suffix Trees 1 Wht re suffix trees? Allow lgorithm designers to store very lrge mount of informtion out strings while still keeping within liner spce Allow users to serch for new strings in the originl
More informationASTs, Regex, Parsing, and Pretty Printing
ASTs, Regex, Prsing, nd Pretty Printing CS 2112 Fll 2016 1 Algeric Expressions To strt, consider integer rithmetic. Suppose we hve the following 1. The lphet we will use is the digits {0, 1, 2, 3, 4, 5,
More informationLecture 7: Integration Techniques
Lecture 7: Integrtion Techniques Antiderivtives nd Indefinite Integrls. In differentil clculus, we were interested in the derivtive of given rel-vlued function, whether it ws lgeric, eponentil or logrithmic.
More informationCS412/413. Introduction to Compilers Tim Teitelbaum. Lecture 4: Lexical Analyzers 28 Jan 08
CS412/413 Introduction to Compilers Tim Teitelum Lecture 4: Lexicl Anlyzers 28 Jn 08 Outline DFA stte minimiztion Lexicl nlyzers Automting lexicl nlysis Jlex lexicl nlyzer genertor CS 412/413 Spring 2008
More informationRegistering as a HPE Reseller. Quick Reference Guide for new Partners in Asia Pacific
Registering s HPE Reseller Quick Reference Guide for new Prtners in Asi Pcific Registering s new Reseller prtner There re five min steps to e new Reseller prtner. Crete your Appliction Copyright 2017 Hewlett
More information9 Graph Cutting Procedures
9 Grph Cutting Procedures Lst clss we begn looking t how to embed rbitrry metrics into distributions of trees, nd proved the following theorem due to Brtl (1996): Theorem 9.1 (Brtl (1996)) Given metric
More informationCSCE 531, Spring 2017, Midterm Exam Answer Key
CCE 531, pring 2017, Midterm Exm Answer Key 1. (15 points) Using the method descried in the ook or in clss, convert the following regulr expression into n equivlent (nondeterministic) finite utomton: (
More informationMA1008. Calculus and Linear Algebra for Engineers. Course Notes for Section B. Stephen Wills. Department of Mathematics. University College Cork
MA1008 Clculus nd Liner Algebr for Engineers Course Notes for Section B Stephen Wills Deprtment of Mthemtics University College Cork s.wills@ucc.ie http://euclid.ucc.ie/pges/stff/wills/teching/m1008/ma1008.html
More informationSOME EXAMPLES OF SUBDIVISION OF SMALL CATEGORIES
SOME EXAMPLES OF SUBDIVISION OF SMALL CATEGORIES MARCELLO DELGADO Abstrct. The purpose of this pper is to build up the bsic conceptul frmework nd underlying motivtions tht will llow us to understnd ctegoricl
More informationSlides for Data Mining by I. H. Witten and E. Frank
Slides for Dt Mining y I. H. Witten nd E. Frnk Simplicity first Simple lgorithms often work very well! There re mny kinds of simple structure, eg: One ttriute does ll the work All ttriutes contriute eqully
More informationTopic 2: Lexing and Flexing
Topic 2: Lexing nd Flexing COS 320 Compiling Techniques Princeton University Spring 2016 Lennrt Beringer 1 2 The Compiler Lexicl Anlysis Gol: rek strem of ASCII chrcters (source/input) into sequence of
More informationPresentation Martin Randers
Presenttion Mrtin Rnders Outline Introduction Algorithms Implementtion nd experiments Memory consumption Summry Introduction Introduction Evolution of species cn e modelled in trees Trees consist of nodes
More informationARCHITECTURES FOR TESTING DISTRIBUTED SYSTEMS
1 ARCHITECTURES FOR TESTING DISTRIBUTED SYSTEMS Andres Ulrich, Hrtmut König Siemens AG, Corporte Technology, ZT SE 1, 81739 München, Germny E-mil: ndres.ulrich@mchp.siemens.de BTU Cottus, Deprtment of
More informationLexical Analysis: Constructing a Scanner from Regular Expressions
Lexicl Anlysis: Constructing Scnner from Regulr Expressions Gol Show how to construct FA to recognize ny RE This Lecture Convert RE to n nondeterministic finite utomton (NFA) Use Thompson s construction
More informationMATH 25 CLASS 5 NOTES, SEP
MATH 25 CLASS 5 NOTES, SEP 30 2011 Contents 1. A brief diversion: reltively prime numbers 1 2. Lest common multiples 3 3. Finding ll solutions to x + by = c 4 Quick links to definitions/theorems Euclid
More informationINTRODUCTION TO SIMPLICIAL COMPLEXES
INTRODUCTION TO SIMPLICIAL COMPLEXES CASEY KELLEHER AND ALESSANDRA PANTANO 0.1. Introduction. In this ctivity set we re going to introduce notion from Algebric Topology clled simplicil homology. The min
More informationRegistering as an HPE Reseller
Registering s n HPE Reseller Quick Reference Guide for new Prtners Mrch 2019 Registering s new Reseller prtner There re four min steps to register on the Prtner Redy Portl s new Reseller prtner: Appliction
More informationUnit #9 : Definite Integral Properties, Fundamental Theorem of Calculus
Unit #9 : Definite Integrl Properties, Fundmentl Theorem of Clculus Gols: Identify properties of definite integrls Define odd nd even functions, nd reltionship to integrl vlues Introduce the Fundmentl
More informationMidterm 2 Sample solution
Nme: Instructions Midterm 2 Smple solution CMSC 430 Introduction to Compilers Fll 2012 November 28, 2012 This exm contins 9 pges, including this one. Mke sure you hve ll the pges. Write your nme on the
More informationFrom Dependencies to Evaluation Strategies
From Dependencies to Evlution Strtegies Possile strtegies: 1 let the user define the evlution order 2 utomtic strtegy sed on the dependencies: use locl dependencies to determine which ttriutes to compute
More informationTO REGULAR EXPRESSIONS
Suject :- Computer Science Course Nme :- Theory Of Computtion DA TO REGULAR EXPRESSIONS Report Sumitted y:- Ajy Singh Meen 07000505 jysmeen@cse.iit.c.in BASIC DEINITIONS DA:- A finite stte mchine where
More informationReducing a DFA to a Minimal DFA
Lexicl Anlysis - Prt 4 Reducing DFA to Miniml DFA Input: DFA IN Assume DFA IN never gets stuck (dd ded stte if necessry) Output: DFA MIN An equivlent DFA with the minimum numer of sttes. Hrry H. Porter,
More informationFile Manager Quick Reference Guide. June Prepared for the Mayo Clinic Enterprise Kahua Deployment
File Mnger Quick Reference Guide June 2018 Prepred for the Myo Clinic Enterprise Khu Deployment NVIGTION IN FILE MNGER To nvigte in File Mnger, users will mke use of the left pne to nvigte nd further pnes
More informationLexical Analysis. Amitabha Sanyal. (www.cse.iitb.ac.in/ as) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay
Lexicl Anlysis Amith Snyl (www.cse.iit.c.in/ s) Deprtment of Computer Science nd Engineering, Indin Institute of Technology, Bomy Septemer 27 College of Engineering, Pune Lexicl Anlysis: 2/6 Recp The input
More informationThe Greedy Method. The Greedy Method
Lists nd Itertors /8/26 Presenttion for use with the textook, Algorithm Design nd Applictions, y M. T. Goodrich nd R. Tmssi, Wiley, 25 The Greedy Method The Greedy Method The greedy method is generl lgorithm
More informationA dual of the rectangle-segmentation problem for binary matrices
A dul of the rectngle-segmenttion prolem for inry mtrices Thoms Klinowski Astrct We consider the prolem to decompose inry mtrix into smll numer of inry mtrices whose -entries form rectngle. We show tht
More informationMisrepresentation of Preferences
Misrepresenttion of Preferences Gicomo Bonnno Deprtment of Economics, University of Cliforni, Dvis, USA gfbonnno@ucdvis.edu Socil choice functions Arrow s theorem sys tht it is not possible to extrct from
More informationAn Efficient Divide and Conquer Algorithm for Exact Hazard Free Logic Minimization
An Efficient Divide nd Conquer Algorithm for Exct Hzrd Free Logic Minimiztion J.W.J.M. Rutten, M.R.C.M. Berkelr, C.A.J. vn Eijk, M.A.J. Kolsteren Eindhoven University of Technology Informtion nd Communiction
More informationMobile IP route optimization method for a carrier-scale IP network
Moile IP route optimiztion method for crrier-scle IP network Tkeshi Ihr, Hiroyuki Ohnishi, nd Ysushi Tkgi NTT Network Service Systems Lortories 3-9-11 Midori-cho, Musshino-shi, Tokyo 180-8585, Jpn Phone:
More informationP(r)dr = probability of generating a random number in the interval dr near r. For this probability idea to make sense we must have
Rndom Numers nd Monte Crlo Methods Rndom Numer Methods The integrtion methods discussed so fr ll re sed upon mking polynomil pproximtions to the integrnd. Another clss of numericl methods relies upon using
More informationPPS: User Manual. Krishnendu Chatterjee, Martin Chmelik, Raghav Gupta, and Ayush Kanodia
PPS: User Mnul Krishnendu Chtterjee, Mrtin Chmelik, Rghv Gupt, nd Ayush Knodi IST Austri (Institute of Science nd Technology Austri), Klosterneuurg, Austri In this section we descrie the tool fetures,
More information10.5 Graphing Quadratic Functions
0.5 Grphing Qudrtic Functions Now tht we cn solve qudrtic equtions, we wnt to lern how to grph the function ssocited with the qudrtic eqution. We cll this the qudrtic function. Grphs of Qudrtic Functions
More informationLexical analysis, scanners. Construction of a scanner
Lexicl nlysis scnners (NB. Pges 4-5 re for those who need to refresh their knowledge of DFAs nd NFAs. These re not presented during the lectures) Construction of scnner Tools: stte utomt nd trnsition digrms.
More informationA Formalism for Functionality Preserving System Level Transformations
A Formlism for Functionlity Preserving System Level Trnsformtions Smr Abdi Dniel Gjski Center for Embedded Computer Systems UC Irvine Center for Embedded Computer Systems UC Irvine Irvine, CA 92697 Irvine,
More informationLR Parsing, Part 2. Constructing Parse Tables. Need to Automatically Construct LR Parse Tables: Action and GOTO Table
TDDD55 Compilers nd Interpreters TDDB44 Compiler Construction LR Prsing, Prt 2 Constructing Prse Tles Prse tle construction Grmmr conflict hndling Ctegories of LR Grmmrs nd Prsers Peter Fritzson, Christoph
More informationDeterministic. Finite Automata. And Regular Languages. Fall 2018 Costas Busch - RPI 1
Deterministic Finite Automt And Regulr Lnguges Fll 2018 Costs Busch - RPI 1 Deterministic Finite Automton (DFA) Input Tpe String Finite Automton Output Accept or Reject Fll 2018 Costs Busch - RPI 2 Trnsition
More informationCompiler Construction D7011E
Compiler Construction D7011E Lecture 3: Lexer genertors Viktor Leijon Slides lrgely y John Nordlnder with mteril generously provided y Mrk P. Jones. 1 Recp: Hndwritten Lexers: Don t require sophisticted
More informationToday. CS 188: Artificial Intelligence Fall Recap: Search. Example: Pancake Problem. Example: Pancake Problem. General Tree Search.
CS 88: Artificil Intelligence Fll 00 Lecture : A* Serch 9//00 A* Serch rph Serch Tody Heuristic Design Dn Klein UC Berkeley Multiple slides from Sturt Russell or Andrew Moore Recp: Serch Exmple: Pncke
More informationSynchronizability of Conversations Among Web Services
1 Synchronizbility of Converstions Among Web Services Xing Fu, Tevfik Bultn, Jinwen Su Abstrct We present frmework for nlyzing interctions mong web services tht communicte with synchronous messges. We
More informationMTH 146 Conics Supplement
105- Review of Conics MTH 146 Conics Supplement In this section we review conics If ou ne more detils thn re present in the notes, r through section 105 of the ook Definition: A prol is the set of points
More informationSuffix trees, suffix arrays, BWT
ALGORITHMES POUR LA BIO-INFORMATIQUE ET LA VISUALISATION COURS 3 Rluc Uricru Suffix trees, suffix rrys, BWT Bsed on: Suffix trees nd suffix rrys presenttion y Him Kpln Suffix trees course y Pco Gomez Liner-Time
More informationCS 241 Week 4 Tutorial Solutions
CS 4 Week 4 Tutoril Solutions Writing n Assemler, Prt & Regulr Lnguges Prt Winter 8 Assemling instrutions utomtilly. slt $d, $s, $t. Solution: $d, $s, nd $t ll fit in -it signed integers sine they re 5-it
More informationCoordinating Activities in Collaborative Environments: A High Level Petri Nets Based Approach
Coordinting Activities in Collortive Environments: A High Level Petri Nets Bsed Approch Alerto B. Rposo, Léo P. Mglhães nd Ivn L. M. Ricrte Stte University of Cmpins (UNICAMP) School of Electricl nd Computer
More informationSimrad ES80. Software Release Note Introduction
Simrd ES80 Softwre Relese 1.3.0 Introduction This document descries the chnges introduced with the new softwre version. Product: ES80 Softwre version: 1.3.0 This softwre controls ll functionlity in the
More informationAn Event Structuring Approach to Real-Time Design Peter Gorm Larsen Abstract IFAD { Institute of Applied Computer Science Munkebjergvnget 17, DK-5230
An Event Structuring Approch to Rel-Time Design Peter Gorm Lrsen Astrct IFAD { Institute of Applied Computer Science Munkeergvnget 17, DK-5230 Odense M, Denmrk E-mil: peter@ifd.dk In the development of
More informationA Heuristic Approach for Discovering Reference Models by Mining Process Model Variants
A Heuristic Approch for Discovering Reference Models by Mining Process Model Vrints Chen Li 1, Mnfred Reichert 2, nd Andres Wombcher 3 1 Informtion System Group, University of Twente, The Netherlnds lic@cs.utwente.nl
More informationTool Vendor Perspectives SysML Thus Far
Frontiers 2008 Pnel Georgi Tec, 05-13-08 Tool Vendor Perspectives SysML Thus Fr Hns-Peter Hoffmnn, Ph.D Chief Systems Methodologist Telelogic, Systems & Softwre Modeling Business Unit Peter.Hoffmnn@telelogic.com
More informationIntermediate Information Structures
CPSC 335 Intermedite Informtion Structures LECTURE 13 Suffix Trees Jon Rokne Computer Science University of Clgry Cnd Modified from CMSC 423 - Todd Trengen UMD upd Preprocessing Strings We will look t
More informationEfficient Algorithms For Optimizing Policy-Constrained Routing
Efficient Algorithms For Optimizing Policy-Constrined Routing Andrew R. Curtis curtis@cs.colostte.edu Ross M. McConnell rmm@cs.colostte.edu Dn Mssey mssey@cs.colostte.edu Astrct Routing policies ply n
More informationOUTPUT DELIVERY SYSTEM
Differences in ODS formtting for HTML with Proc Print nd Proc Report Lur L. M. Thornton, USDA-ARS, Animl Improvement Progrms Lortory, Beltsville, MD ABSTRACT While Proc Print is terrific tool for dt checking
More informationTyping with Weird Keyboards Notes
Typing with Weird Keyords Notes Ykov Berchenko-Kogn August 25, 2012 Astrct Consider lnguge with n lphet consisting of just four letters,,,, nd. There is spelling rule tht sys tht whenever you see n next
More informationImproper Integrals. October 4, 2017
Improper Integrls October 4, 7 Introduction We hve seen how to clculte definite integrl when the it is rel number. However, there re times when we re interested to compute the integrl sy for emple 3. Here
More informationLab 1 - Counter. Create a project. Add files to the project. Compile design files. Run simulation. Debug results
1 L 1 - Counter A project is collection mechnism for n HDL design under specifiction or test. Projects in ModelSim ese interction nd re useful for orgnizing files nd specifying simultion settings. The
More informationCS 432 Fall Mike Lam, Professor a (bc)* Regular Expressions and Finite Automata
CS 432 Fll 2017 Mike Lm, Professor (c)* Regulr Expressions nd Finite Automt Compiltion Current focus "Bck end" Source code Tokens Syntx tree Mchine code chr dt[20]; int min() { flot x = 42.0; return 7;
More informationPARALLEL AND DISTRIBUTED COMPUTING
PARALLEL AND DISTRIBUTED COMPUTING 2009/2010 1 st Semester Teste Jnury 9, 2010 Durtion: 2h00 - No extr mteril llowed. This includes notes, scrtch pper, clcultor, etc. - Give your nswers in the ville spce
More informationEECS150 - Digital Design Lecture 23 - High-level Design and Optimization 3, Parallelism and Pipelining
EECS150 - Digitl Design Lecture 23 - High-level Design nd Optimiztion 3, Prllelism nd Pipelining Nov 12, 2002 John Wwrzynek Fll 2002 EECS150 - Lec23-HL3 Pge 1 Prllelism Prllelism is the ct of doing more
More informationF. R. K. Chung y. University ofpennsylvania. Philadelphia, Pennsylvania R. L. Graham. AT&T Labs - Research. March 2,1997.
Forced convex n-gons in the plne F. R. K. Chung y University ofpennsylvni Phildelphi, Pennsylvni 19104 R. L. Grhm AT&T Ls - Reserch Murry Hill, New Jersey 07974 Mrch 2,1997 Astrct In seminl pper from 1935,
More informationAnnouncements. CS 188: Artificial Intelligence Fall Recap: Search. Today. Example: Pancake Problem. Example: Pancake Problem
Announcements Project : erch It s live! Due 9/. trt erly nd sk questions. It s longer thn most! Need prtner? Come up fter clss or try Pizz ections: cn go to ny, ut hve priority in your own C 88: Artificil
More information1. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES)
Numbers nd Opertions, Algebr, nd Functions 45. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES) In sequence of terms involving eponentil growth, which the testing service lso clls geometric
More informationL. Yaroslavsky. Fundamentals of Digital Image Processing. Course
L. Yroslvsky. Fundmentls of Digitl Imge Processing. Course 0555.330 Lecture. Imge enhncement.. Imge enhncement s n imge processing tsk. Clssifiction of imge enhncement methods Imge enhncement is processing
More informationEpson Projector Content Manager Operation Guide
Epson Projector Content Mnger Opertion Guide Contents 2 Introduction to the Epson Projector Content Mnger Softwre 3 Epson Projector Content Mnger Fetures... 4 Setting Up the Softwre for the First Time
More informationPosition Heaps: A Simple and Dynamic Text Indexing Data Structure
Position Heps: A Simple nd Dynmic Text Indexing Dt Structure Andrzej Ehrenfeucht, Ross M. McConnell, Niss Osheim, Sung-Whn Woo Dept. of Computer Science, 40 UCB, University of Colordo t Boulder, Boulder,
More informationEngineer To Engineer Note
Engineer To Engineer Note EE-169 Technicl Notes on using Anlog Devices' DSP components nd development tools Contct our technicl support by phone: (800) ANALOG-D or e-mil: dsp.support@nlog.com Or visit
More information1.5 Extrema and the Mean Value Theorem
.5 Extrem nd the Men Vlue Theorem.5. Mximum nd Minimum Vlues Definition.5. (Glol Mximum). Let f : D! R e function with domin D. Then f hs n glol mximum vlue t point c, iff(c) f(x) for ll x D. The vlue
More informationMa/CS 6b Class 1: Graph Recap
M/CS 6 Clss 1: Grph Recp By Adm Sheffer Course Detils Adm Sheffer. Office hour: Tuesdys 4pm. dmsh@cltech.edu TA: Victor Kstkin. Office hour: Tuesdys 7pm. 1:00 Mondy, Wednesdy, nd Fridy. http://www.mth.cltech.edu/~2014-15/2term/m006/
More informationDiscussion 1 Recap. COP4600 Discussion 2 OS concepts, System call, and Assignment 1. Questions. Questions. Outline. Outline 10/24/2010
COP4600 Discussion 2 OS concepts, System cll, nd Assignment 1 TA: Hufeng Jin hj0@cise.ufl.edu Discussion 1 Recp Introduction to C C Bsic Types (chr, int, long, flot, doule, ) C Preprocessors (#include,
More informationCSc 453. Compilers and Systems Software. 4 : Lexical Analysis II. Department of Computer Science University of Arizona
CSc 453 Compilers nd Systems Softwre 4 : Lexicl Anlysis II Deprtment of Computer Science University of Arizon collerg@gmil.com Copyright c 2009 Christin Collerg Implementing Automt NFAs nd DFAs cn e hrd-coded
More informationBefore We Begin. Introduction to Spatial Domain Filtering. Introduction to Digital Image Processing. Overview (1): Administrative Details (1):
Overview (): Before We Begin Administrtive detils Review some questions to consider Winter 2006 Imge Enhncement in the Sptil Domin: Bsics of Sptil Filtering, Smoothing Sptil Filters, Order Sttistics Filters
More informationΕΠΛ323 - Θεωρία και Πρακτική Μεταγλωττιστών. Lecture 3b Lexical Analysis Elias Athanasopoulos
ΕΠΛ323 - Θωρία και Πρακτική Μταγλωττιστών Lecture 3 Lexicl Anlysis Elis Athnsopoulos elisthn@cs.ucy.c.cy RecogniNon of Tokens if expressions nd relnonl opertors if è if then è then else è else relop è
More informationMcAfee Network Security Platform
10/100/1000 Copper Active Fil-Open Bypss Kit Guide Revision E McAfee Network Security Pltform This document descries the contents nd how to instll the McAfee 10/100/1000 Copper Active Fil-Open Bypss Kit
More information2014 Haskell January Test Regular Expressions and Finite Automata
0 Hskell Jnury Test Regulr Expressions nd Finite Automt This test comprises four prts nd the mximum mrk is 5. Prts I, II nd III re worth 3 of the 5 mrks vilble. The 0 Hskell Progrmming Prize will be wrded
More informationEasyMP Multi PC Projection Operation Guide
EsyMP Multi PC Projection Opertion Guide Contents 2 Introduction to EsyMP Multi PC Projection 5 EsyMP Multi PC Projection Fetures... 6 Connection to Vrious Devices... 6 Four-Pnel Disply... 6 Chnge Presenters
More information1.1. Interval Notation and Set Notation Essential Question When is it convenient to use set-builder notation to represent a set of numbers?
1.1 TEXAS ESSENTIAL KNOWLEDGE AND SKILLS Prepring for 2A.6.K, 2A.7.I Intervl Nottion nd Set Nottion Essentil Question When is it convenient to use set-uilder nottion to represent set of numers? A collection
More informationGraphs with at most two trees in a forest building process
Grphs with t most two trees in forest uilding process rxiv:802.0533v [mth.co] 4 Fe 208 Steve Butler Mis Hmnk Mrie Hrdt Astrct Given grph, we cn form spnning forest y first sorting the edges in some order,
More informationSystems I. Logic Design I. Topics Digital logic Logic gates Simple combinational logic circuits
Systems I Logic Design I Topics Digitl logic Logic gtes Simple comintionl logic circuits Simple C sttement.. C = + ; Wht pieces of hrdwre do you think you might need? Storge - for vlues,, C Computtion
More informationFinite Automata. Lecture 4 Sections Robb T. Koether. Hampden-Sydney College. Wed, Jan 21, 2015
Finite Automt Lecture 4 Sections 3.6-3.7 Ro T. Koether Hmpden-Sydney College Wed, Jn 21, 2015 Ro T. Koether (Hmpden-Sydney College) Finite Automt Wed, Jn 21, 2015 1 / 23 1 Nondeterministic Finite Automt
More information1 Quad-Edge Construction Operators
CS48: Computer Grphics Hndout # Geometric Modeling Originl Hndout #5 Stnford University Tuesdy, 8 December 99 Originl Lecture #5: 9 November 99 Topics: Mnipultions with Qud-Edge Dt Structures Scribe: Mike
More informationpdfapilot Server 2 Manual
pdfpilot Server 2 Mnul 2011 by clls softwre gmbh Schönhuser Allee 6/7 D 10119 Berlin Germny info@cllssoftwre.com www.cllssoftwre.com Mnul clls pdfpilot Server 2 Pge 2 clls pdfpilot Server 2 Mnul Lst modified:
More informationSection 10.4 Hyperbolas
66 Section 10.4 Hyperbols Objective : Definition of hyperbol & hyperbols centered t (0, 0). The third type of conic we will study is the hyperbol. It is defined in the sme mnner tht we defined the prbol
More informationa(e, x) = x. Diagrammatically, this is encoded as the following commutative diagrams / X
4. Mon, Sept. 30 Lst time, we defined the quotient topology coming from continuous surjection q : X! Y. Recll tht q is quotient mp (nd Y hs the quotient topology) if V Y is open precisely when q (V ) X
More information