Analyzing Service-Oriented Systems Using Their Data and Structure
Dragan Ivanovi´ c,1 Manuel Carro,1,2 Manuel Hermenegildo1,2
1Universidad Politécnica de Madrid, 2IMDEA Software Institute Madrid
Analyzing Service-Oriented Systems Using Their Data and Structure c, - - PowerPoint PPT Presentation
Analyzing Service-Oriented Systems Using Their Data and Structure c, 1 Manuel Carro, 1 , 2 Dragan Ivanovi Manuel Hermenegildo 1 , 2 1 Universidad Politcnica de Madrid, 2 IMDEA Software Institute Madrid S-Cube@ICSE 2012 Zrich June 5,
1Universidad Politécnica de Madrid, 2IMDEA Software Institute Madrid
◮ Traditionally: stress on control structure.
◮ Integrating the impact of data content / size:
◮ Domain-specific view – application dependent ◮ E.g.: content, quality, privacy... ◮ Possibly: a combination of views ◮ Known for input data, implicit in control/data dependencies
◮ known attributes of input data, ◮ control structure, and ◮ alertdata operations.
α1 α2 α3 ... i1 i2 i3 ...
α1 α2 α3 ...
...
w(X1,X2,A1,Y1,A2,Y2,A3,Z1,A4,Z2):- A1=f1(X1), Y1=f1Y1(X1), A2=f2(X2), Y2=f2Y2(X2), A3=f3(Y1,Y2), ...
... X1=f(U1,U2), X2=f(U1), X3=f, ...
[[X1,A1,Y1,A3,Z1], [A3,Z1,A4,Z2], [X2,A4,Z2], [X2,A2,Y2,A3,Z1,A4,Z2]]
a1: Retrieve medical history a2: Retrieve medication record
x: Patient ID
medication a3: Continue last prescription ¬stable
stable
y: Medical history z: Medication record
◮ A high-level (non-executable) description.
a41: Run tests to produce medication criteria a42: Search medication databases Result sufficiently specific?
no yes
y: Medical history z: Medication record c: Criterion p: Prescription candidate
Symptoms Tests Coverage
Name Address PIN SSN
◮ E.g.: databases from which items y (Medical history) and z
◮ If input (Patient ID) is a passport, it has Name and PIN.
◮ The attributes may be inherited by data it writes. ◮ It may introduce new attributes from its own sources.
a41: Run tests to produce medication criteria a42: Search medication databases Result sufficiently specific?
no yes
y: Medical history z: Medication record c: Criterion p: Prescription candidate
◮ loops ◮ branching (if-then-else) ◮ recursion, non-determinism, etc.
◮ based on abstract interpretation; ◮ well-studied, powerful analysis tools (CiaoPP); ◮ logic variables: placeholders for FOL terms
◮ mechanically; ◮ keeping only the part of semantics relevant for sharing; ◮ data items and activities → logic variables; ◮ not mimicking full operational behavior
◮ approximations that represent infinite families of sharing
◮ can be set up from a context/lattice: input substitutions; ◮ can be represented as a context/lattice: sharing results.
Name PIN Symp. Tests Cover.
◮ x, d, e in the upper part
◮ For activities: attributes of the accessed data ◮ Again: safe approximation – all potential attributes included
Main medical workflow Health Organization Medical Examiners Medication Provider Registry & Archive +
a1: Retrieve medical history a2: Retrieve medication record
+
medication a3: Continue last prescription ¬stable stable
a41: Run tests to produce medication criteria a42: Search medication databases Result sufficiently specific? no yes
Workflow for service a4.
◮ Composition fragments assigned to swim-lanes (partners) ◮ Basis: protecting sensitive data
◮ Supporting fragmentation
◮ Checking data compliance
◮ Robust top-down development
Good for aggregate measures. Usually simpler to calculate. Not very informa- tive for individual running instances.
Can be combined with the average case approach. More difficult to calculate. Useful for monitoring/ adapting individual running instances.
◮ Given knowledge on QoS metrics for component services. ◮ Enabling us to abort / adapt ahead of time ⇒ prevention. ◮ Inversely: certain SLA compliance ⇒ reuse of resources.
◮ Contingency planning for the case of failure. ◮ Defining a range of adaptation actions.
◮ Exploring relationship between:
send/receive
proc start/stop invoke/reply continuation
lifecycle events continuation QoS prediction
Adaptation Mechanism
predictions QoS metrics adaptation actions event flow Continuation: describing the remainder of the orchestration from the point of prediction until finish. ⇒ lower coupling ⇒ stateless implementation
◮ Accepted by the predictor. ◮ Used to derive constraint model.
◮ By external observation:
◮ Directly from the execution engine:
SLA compli- ance SLA failure
◮ For two cases: SLA compliance and SLA failure.
◮ Infers upper and lower bound on # of iterations (k)
◮ Can be pre-computed statically or computed at run-time.
☞
0
+
1
Retrieve account record
2
Retrieve usage patterns
3
+
User ID
Generate new content profile
6
Reuse current content profile
5
stable ¬stable Fitting?
7
no Write configuration
8
Account record Usage patterns Content profile Content profile
☞
0
+
1
Retrieve account record
2
Retrieve usage patterns
3
+
User ID
Generate new content profile
6
Reuse current content profile
5
stable ¬stable Fitting?
7
no Write configuration
8
Account record Usage patterns Content profile Content profile
1 3
2 4
☞
0
+
1
Retrieve account record
2
Retrieve usage patterns
3
+
User ID
Generate new content profile
6
Reuse current content profile
5
stable ¬stable Fitting?
7
no
k times
Write configuration
8
Account record Usage patterns Content profile Content profile
◮ Ongoing work with colleagues from TUW and UniDuE. ◮ 100 test runs, median execution time: 36 923 ms. ◮ Continuous prediction (cca 160 times) for each instance. ◮ Looking at first definite succ/fail prediction per instance. ◮ Tmx chosen to reflect failure rates between 0% and 100%.
◮ Able to predict SLA compliance early for reasonable failure rates. ◮ SLA failures predicted between 5 000 ms and 9 000 ms before
◮ 295 to 490 ms to run 160 predictions per instance. ◮ ≈ 1 − 2% of instance execution time.
◮ Extend towards minimal sharing and adaptation
◮ Automate derivation of Horn-Clause programs from
◮ Extend to include stateful conversations.
◮ Continue with experimental / real life evaluation. ◮ Interfacing with various process engines. ◮ Explore in depth the effects of inaccurate / imprecise
◮ Enrich the model to cope with imprecision.
1Universidad Politécnica de Madrid, 2IMDEA Software Institute Madrid