STRESS06-margaria

advertisement
Service Engineering
- between Software and Business -
Tiziana Margaria
Chair of Service and Software Engineering
Universität Potsdam
T. Margaria
STRESS ‘06 – 24.5.2006
Overview
• A motivating scenario
• How does it work
• The roots
• Web services (Example)
– The Tool Provider view
– The Tool User view
• Status and perspectives
T. Margaria
STRESS ‘06 – 24.5.2006
Coordinating Heterogeneous Entities
Presentation
Coordination
Components
Elementary Services
Demo this afternoon
T. Margaria
STRESS ‘06 – 24.5.2006
Aggressive Model Driven Design
Component Based
Design
Model Library
…
M1
AMDD
Mn
Compilation/Synthesis
M1
…
Mn
Integration as
Consistency/Compatibility
Component Library
…
C1
Integration
Cn
Integration
Running System
T. Margaria
Global Model
Synthesis/Technology Mapping
Running System
STRESS ‘06 – 24.5.2006
Aggressive Model Driven Design
Systems on a Chip
a board
T. Margaria
a chip
STRESS ‘06 – 24.5.2006
ABC: Library-based,
Actor-oriented Modelling & Design
Service
Independent
Building Blocks
= Actors
Component
Model Library
Feature Library
SIB1
..
uses
SIBn
Macro 1
..
FLG1
…
FLGn
Temporal Constraints
and Types
Macro n
Temporal Formulas = Property Specifications
Service Logic Graphs = System Models
Global SLG
Actor Orientation
• model checking composition of
behaviors
• separation of behav. interface
from implementation
T. Margaria
Running System
STRESS ‘06 – 24.5.2006
Layered Architecture
of jABC Applications
User Centric
Layers
Presentation
Coordination
Application
Agents
Services
Features
Components
System Centric
Layers
Business Objects
SIBs,SLGs,
Macros
Classes
Persistency
T. Margaria
STRESS ‘06 – 24.5.2006
Challenge: Inconsistent Needs
Scenario:
complex, distributed, and interdependent service
provision
Central issue: user-level flow of control
• Flexibility: complete online reconfigurability of
features, a whole service, and of role definition
• Scalability: manage many such services on the
same ASP cluster and use remote services
• Telecommunication-level quality of service,
(availability and reliability)
T. Margaria
STRESS ‘06 – 24.5.2006
Concept - Coarse Granular Level
• combine basic functionalities
• by means of a graphical notation
• according to the control flow
Device-A-hook-up
Correct-Signal-In-Application?
passed
T. Margaria
failed
STRESS ‘06 – 24.5.2006
Link to UML-based Design-Tools
• SLGs
T. Margaria
sequence and activity diagrams
STRESS ‘06 – 24.5.2006
How to Engineer a Complex Application
Tiziana Margaria
Chair of Service and Software Engineering
Universität Potsdam
Martin Karusseit
Chair of Programming Systems
Universität Dortmund
T. Margaria
STRESS ‘06 – 24.5.2006
AMDD for Design:
The Online Conference Service
Articles
Authors
PC Chair
Final Report
Report Task
Report
PC Members
Report Task
Report
Reviewers
T. Margaria
STRESS ‘06 – 24.5.2006
Roles
Subfeatures
Top level
Features
T. Margaria
STRESS ‘06 – 24.5.2006
Hierarchical Design
SIBs
Create
Newsgroup
SLG
SLGs
Main Functionalities
T. Margaria
STRESS ‘06 – 24.5.2006
The SIB Model
SIBs
…
Create
Newsgroup
SIB
<<Name>>
<<Category>>
<<Formal Parameter>>
<<Branches>>
<<Executable Code>>
CVSCreateConnection
SIB Specification
T. Margaria
STRESS ‘06 – 24.5.2006
Global
Logic
Plane
SLG of the Application
Skeleton
Service
Features
…
Online
Conference
Service:
>2800 SIBs
>4000 branches
T. Margaria
STRESS ‘06 – 24.5.2006
Feature
• piece of (optional) functionality on top of a base
system.
• (monotonic)
• may consider or require other features
• defined from an external point of view
(e.g. users and/or providers of services)
• granularity determined by marketing or
provisioning
T. Margaria
STRESS ‘06 – 24.5.2006
Feature Logic
„Article“ Feature SLG
Sub-Features
…
Submit Article
T. Margaria
STRESS ‘06 – 24.5.2006
Feature-oriented Description
• behaviours of a base system and a set of optional features
• as Service Logic Graphs (SLGs)
• library of reusable components:
Service Independent Building-Blocks (SIBs).
• set of abstract requirements for the intended purposes
• Interactions are expressed via constraints.
• Any feature composition is allowed that does not violate
the constraints.
T. Margaria
STRESS ‘06 – 24.5.2006
OCS Feature Reusal (excerpt)
Main Features
Sub-Features
Article
Bidding
Delegation
Report
Tasklist
SubstituteSubmitArticle
SubstituteSubmitArticle
ModifyArticle
SubmitFinalArticleVersion
SubmitArticle
ReadDownloadArticle
DelegateArticle
Article
Reportlist
x
x
x
SubmitReport
x
SubmitFinalReport
ModifyFinalReport
AcceptRejectReviewTask
x
x
RemoveArticle
SendMailtoAuthor
ShowAbstracts
Reusal at the application level!
T. Margaria
STRESS ‘06 – 24.5.2006
Design Validation
– Local constraints
– Global constraints
T. Margaria
STRESS ‘06 – 24.5.2006
Model Checking Service Logic Graphs
Structures:
Control view of
Service Logic Graphs,
i.e.:
• SIBs as states
• Edges as transitions
• SIB names as observations
(automaton alphabet)
• SIB parameters as additional
observations
T. Margaria
Logic:
Full mu-calculus
• universal and existential
specifications
• forward and backward
modalities
• first order extensions
referencing SIB parameters
STRESS ‘06 – 24.5.2006
The Model: DFA
• defined as a quadruple (S, Act, , s0 )

set of building blocks S

set of possible branching conditions Act

a set of transitions   S  Act  S

initial block s0
• visualised as a graph
• constitute basis for design of (web) applications
• constitute basis for checking consistency
T. Margaria
STRESS ‘06 – 24.5.2006
Global constraints:
•
formulated as SLTL formulas
 :: A |  |     |  c   | G( ) |  U 
A: atomic propositions over S
c: propositional logical formula over Act
•
T. Margaria
interpreted over set of all possible sequences
STRESS ‘06 – 24.5.2006
What do we check?
• Role Management feature:
– A user can modify the defined roles only after having
successfully registered as Administrator
~(‘ModifyRoles) unless ‘UserLogin [Role=Admin]
• ForgottenPwd feature:
– once the form for the private question is displayed, the
correctness and completeness of the user-entered data
should always be checked
‘ShowFrameSetFiles => [{ok}] AF_F (‘CheckReqParam)
– If this check fails, redisplay the input form
‘CheckReqParam =>
[{missing, exists_empty}] AF_F (`ShowFrameSetFiles)
T. Margaria
STRESS ‘06 – 24.5.2006
What do we check?
• ForgottenPwd feature:
– The password question should only be shown once a
valid e-mail address has been input.
‘ShowPwdQuestion =>
(AF_B(‘CheckEmailAddr) /\
AWU_B(~’CheckEmailAddr, ![{successful}]!T))
– The notification page that an e-mail with the new
password has been sent should not be shown before it
was really sent out:
‘Service2Context =>
ASU_F ( ‘ShowPwdAck,’SendMimeMessage)
T. Margaria
STRESS ‘06 – 24.5.2006
Agile Process-Oriented Design
Business Process
Analysis
Process
Requirements
Validation, Analysis
Orchestration
Process Model
Deployment
Platform
Services
T. Margaria
Running Process
Testing &
Monitoring
STRESS ‘06 – 24.5.2006
Service-Oriented Design:
The Roots
Tiziana Margaria
Service Engineering
for Distributed Systems
Bernhard Steffen
Manfred Reitenspieß
Programming Systems
and Compilers
Business Development
RTP4 Continuous Services
Granny´s
Freephone
T. Margaria
STRESS ‘06 – 24.5.2006
The IN Service Definition Environment
Early AMDD
T. Margaria
STRESS ‘06 – 24.5.2006
IN Architecture
Management
Execution
Provisioning
T. Margaria
Design
STRESS ‘06 – 24.5.2006
IN Conceptual Model Planes
s e rv ic e 2
s e rv ic e 1
S F 1
S F n
s e rv ic e
p la n e
S F 2
g lo b a l s e rv ic e lo g ic
P O I
G S L 1
S IB 1
B C P
G S L 2
S IB 2
P O R
S IB n
F E 1
g lo b a l
fu n c tio n a l
p la n e
G S L n
F E 2
F
E
A
E F
F
E
A
E F
E F
d istrib u te d
fu n c tio n a l
p la n e
E F
P E 2
P 2
P 1
P E 1
P E n
F E 1
F E 2
P n
T. Margaria
p h y sic a l
p la n e p ro to c o ls
an d
p ro c e s sin g
STRESS ‘06 – 24.5.2006
Service Plane
The Service Plane represents an exclusively serviceoriented view.
This view contains no information whatsoever regarding
the implementation of the services in the network.
What is perceived is the network's service-related
behavior as seen, for example, by a service user.
Services are composed of one or more Service
Features (SFs), which represent the "lowest level" of
services.
The Global Service Logic (GSL) describes how service
features are built using SIBs.
T. Margaria
STRESS ‘06 – 24.5.2006
IN CS.1 Services
•
•
•
•
•
•
Automatic Alternative Billing (AAB)
Abbreviated Dialing (ABD)
Account Card Calling (ACC)
Credit Card Calling (CCC)
Call Distribution (CD)
Call Forwarding (CF)
– Comp. of Call to Busy Subscriber
•
•
•
– Conference Calling (CON)
Call Rerouting Distribution (CRD)
Destination Call Routing (DCR)
Follow-Me-Diversion (FMD)
•
Freephone (FPH)
T. Margaria
•
•
•
•
•
•
•
•
•
•
•
•
Mass Calling (MAS)
Malicious Call Identification (MCI)
Premium Rate (PRM)
Security Screening (SEC)
Selective Call Forward on
Busy/Don’t Answer (SCF)
Split Charging (SPL)
Televoting (VOT)
Terminating Call Screening (TCS)
User-Defined Routing (UDR)
Universal Access Number (UAN)
Universal Personal
Telecommunications (UPT)
Virtual Private Network (VPN)
STRESS ‘06 – 24.5.2006
IN CS.1 Service Features
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Abbreviated Dialing (ABD)
Announcement (CRA)
Attendant (ATT)
Authentication (AUTC)
Authorization Code (AUTZ)
Automatic Call Back (ACB)
Call Distribution (CD)
Call Forwarding (CF)
Call Forwarding on Busy (CFC)
Call Gapping (GAP)
Call Hold with Announcement (CHA)
Call Limiter (LIM)
Call Logging (LOG)
Call Queuing (QUE)
Call Transfer (TRA)
Call Waiting (CW)
Closed User Group (CUG)
Consultation Calling (COC)
Customer Profile Management (CPM)
T. Margaria
Customized Recorded
Customized ringing (CRG)
Destinating User Prompter (DUP)
Follow-Me Diversion (FMD)
Mass Calling (MAS)
Meet-Me Conference (MMC)
Multiway Calling (MWC)
Off-Net Access (OFA)
Off-Net Calling (ONC)
One Number (ONE)
Origin Dependent Routing (ODR)
Originating Call screening (OCS)
Originating User Prompter (OUP)
Personal Numbering (PN)
Private Numbering Plan (PNP)
Reverse Charging (REVC)
Split Charging (SPLC)
STRESS ‘06 – 24.5.2006
Example: Authentification Feature
T. Margaria
STRESS ‘06 – 24.5.2006
Service Independent Building Blocks
• SIBs are
– reusable modular building blocks,
– describing a single complete activity,
– used by the service designer to create services
• independent from any physical architecture considerations
(PIM)
• Each SIB has an interface with inputs and outputs
SIBs = {Algorithm, Charge, Compare, Distribution, Limit,
Log Call Information, Queue, Screen, Service Data
Management, Status Notification, Translate,
User Interaction,Verify}
T. Margaria
STRESS ‘06 – 24.5.2006
Example: The Queue SIB
Parameters
Branches
Entry
Context
T. Margaria
STRESS ‘06 – 24.5.2006
Example: Universal Personal Telephony
UPT is a mobility service which enables subscribers to use a
number of telecommunications services to
• initiate any type of service and
• receive any type of call
on the basis of a unique Personal Telecommunications
Number (PTN) across multiple networks at any usernetwork access (fixed, movable or mobile), irrespective of
geographic location, limited only by terminal and network
capabilities.
The PTN will be translated to an appropriate destination
number for routing based on the capabilities subscribed to
by each Service Subscriber (SS).
T. Margaria
STRESS ‘06 – 24.5.2006
Example: Service mappings
• Authorization Code (AUTZ)
• Follow-Me Diversion (FMD)
• Personal Numbering (PN)
• Split Charging (SPLC)
T. Margaria
STRESS ‘06 – 24.5.2006
Service Creation Environment (SCE)
• Framework for defining, developing and testing SLPs
e.g.
–
–
–
–
graphical SIB-based ‘drag and drop’
graphical SDL-based
high level, 4GL language based
low level C-language based with special resources e.g.
libraries and runtimes
– proprietary graphic and/or text based
• Services are loaded via SMS to SCPs
T. Margaria
STRESS ‘06 – 24.5.2006
Example of IN Service Creation
• IN: Service logic design with SDL and coding with C
(* CVOPS state-automaton for 700-service *)
(* state
input
actions *)
idle
idle
InitialDP
700-s e rvic e ?
Ye s
Not in us e
Not OK
db_nt_re que s t
Conne c tTo
Re s ourc e
Re le as e Call
Start
(wfDbTime r)
me s s age Id=123
idle
wf_nt_re s p
Play
Announc e me nt
Re le as e Call
InitialDP {
(* Call c-function that checks
calledPartyNumber *)
result=numberTranslationService()
if(result==700SERVICE){
(* send query to database
and wait for reply *)
db_nt_request
start(wfDbTimer)
to(wf_nt_resp)
}
else
if(result==SERVICE_NOT_IN_USE){
(* Play annoucement to user *)
ConnectToResource
messageId=123
PlayAnnouncement
ReleaseCall
to(idle)
}
else{
(* error *)
ReleaseCall
to(idle)
}
}
wf_nt_resp
db_nt_resp
idle
T. Margaria
{
stop(wfDbTimer)
if(dbStatus==OK){
...
STRESS ‘06 – 24.5.2006
T. Margaria
STRESS ‘06 – 24.5.2006
Overview
• A motivating scenario
• How does it work
• The roots
• Web services (Example)
– The Tool Provider view
– The Tool User view
• Status and perspectives
T. Margaria
STRESS ‘06 – 24.5.2006
The SWS Challenge in jETI
Tiziana Margaria
Christian Kubczak
Service Engineering for
Distributed Systems
Bernhard Steffen
Ralf Nagel
Chair of Programming Systems
and Compilers
The jABC/jETI Approach
to Mediation and Choreography
Tiziana Margaria
Christian Winkler
Bernhard Steffen
Christian Kubczak
Ralf Nagel
Chair of Service and Software
Chair of Programming Systems
Engineering
and Compilers
The ETI Idea (1996)
• Make tools remotely available
• Simple GUI to use tools
• (operating) System independent
technology
• Simple way of integrating tools
Giving Software/Tools a Trial as
easy as Test Driving a Car ?
T. Margaria
STRESS ‘06 – 24.5.2006
The ETI Idea (1996)
•
•
•
•
Make tools remotely available
Simple GUI to use tools
(operating) System independent technology
Simple way of integrating tools
T. Margaria
STRESS ‘06 – 24.5.2006
Providing Tool Access
For structured access to the tool functionalities in the tool repository,
users can
– get detailed information on each available tool feature
– execute single tool features
– combine heterogeneous tool functionalities to programs
– run the programs via the Internet
tool coordination and Internet-based execution
facilities are the conceptual key features
T. Margaria
STRESS ‘06 – 24.5.2006
The ETI Community Service
• a Web-based, open platform
• interactive experimentation with
heterogeneous tools
• elaborate coordination support
• coordination programs can be run
via the Net
T. Margaria
STRESS ‘06 – 24.5.2006
Weaknesses of the Original
Process
Integrator
• needs to be familiar with HLL and C++
• needs direct access to ETI’s core
Integration becomes support-intensive!
Tool-Provider ≠ Tool-Integrator
T. Margaria
STRESS ‘06 – 24.5.2006
ABC / Java ABC (jABC)
Plugins
SIBs
SLGs
Demo this afternoon
T. Margaria
STRESS ‘06 – 24.5.2006
Overview
• A motivating scenario
• How does it work
• The roots
• Web services (Example)
– The Tool Provider view
– The Tool User view
• Status and perspectives
T. Margaria
STRESS ‘06 – 24.5.2006
jETI Platform
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Executer
HTML Tool
Configurator
Tomcat Servlet
Container
jETI Tool
Provider
jABC Framework
jETI Extension
ABC VFS Interface
jETI Plugin
File
SIB
Java
Class
Edit
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
jETI Client
T. Margaria
STRESS ‘06 – 24.5.2006
Step 1: Tool Integration
jETI
Provider
Tool Tool
Provider
<XML>
Tool
Description
</XML>
Tool
Executer
HTML Tool
Configurator
tool
TomcatLocal
Servlet
Container
T. Margaria
STRESS ‘06 – 24.5.2006
Step 2: Tool Registration
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Executer
HTML Tool
Configurator
Tomcat Servlet
Container
ABC VFS Interface
SIB
Java
Class
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
T. Margaria
STRESS ‘06 – 24.5.2006
Overview
• A motivating scenario
• How does it work
• The roots
• Web services (Example)
– The Tool Provider view
– The Tool User view
• Status and perspectives
T. Margaria
STRESS ‘06 – 24.5.2006
Step 3: Tool Invocation Control Flow
ABC VFS Interface
jETI Plugin
File
SIB
Java
Class
Edit
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
jETI Client
T. Margaria
STRESS ‘06 – 24.5.2006
Step 4: Execute Tool Control Flow
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Executer
HTML Tool
Configurator
Tomcat Servlet
Container
jETI Plugin
File
Edit
jETI Client
T. Margaria
STRESS ‘06 – 24.5.2006
Deploy jETI-Configurator and jETI-Executor
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Executer
jETI Tool
Provider
HTML Tool
Configurator
Tomcat Servlet
Container
ABC VFS Interface
jETI Plugin
File
SIB
Java
Class
Edit
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
jETI Client
T. Margaria
STRESS ‘06 – 24.5.2006
Tool Configuration
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Executer
jETI Tool
Provider
HTML Tool
Configurator
Tomcat Servlet
Container
ABC VFS Interface
jETI Plugin
File
SIB
Java
Class
Edit
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
jETI Client
T. Margaria
STRESS ‘06 – 24.5.2006
Tool Parameter Configuration
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Executer
jETI Tool
Provider
HTML Tool
Configurator
Tomcat Servlet
Container
ABC VFS Interface
jETI Plugin
File
SIB
Java
Class
Edit
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
jETI Client
T. Margaria
STRESS ‘06 – 24.5.2006
Register Tools at Component Server
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Description
Tool
Executer
jETI Tool
Provider
HTML Tool
Configurator
Tomcat Servlet
Container
ABC VFS Interface
jETI Plugin
File
SIB
Java
Class
Edit
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
jETI Client
T. Margaria
STRESS ‘06 – 24.5.2006
jETI Tool-Configuration
T. Margaria
STRESS ‘06 – 24.5.2006
Creating a New Tool
T. Margaria
STRESS ‘06 – 24.5.2006
Creating Tool Parameters
T. Margaria
STRESS ‘06 – 24.5.2006
Specify Tool Parameter
T. Margaria
STRESS ‘06 – 24.5.2006
Tool Parameters Specified
T. Margaria
STRESS ‘06 – 24.5.2006
Tool Configuration Completed
T. Margaria
STRESS ‘06 – 24.5.2006
Tools Registered at Component Server
T. Margaria
STRESS ‘06 – 24.5.2006
Overview
• An Evolving framework
• How does it work
• The Tool Provider view
• The Tool User view
• Perspectives
T. Margaria
STRESS ‘06 – 24.5.2006
Starting jABC Client
available tools
T. Margaria
STRESS ‘06 – 24.5.2006
Setting Tool Parameters
selected tool invocation
tool node name
tool parameter
edit single parameter
tool execution results
T. Margaria
STRESS ‘06 – 24.5.2006
Tool Invocation Control Flow
T. Margaria
STRESS ‘06 – 24.5.2006
Execute Tool Control Flow
T. Margaria
STRESS ‘06 – 24.5.2006
Execute Tool Sequence
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Executer
jETI Tool
Provider
HTML Tool
Configurator
Tomcat Servlet
Container
ABC VFS Interface
jETI Plugin
File
SIB
Java
Class
Edit
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
jETI Client
T. Margaria
STRESS ‘06 – 24.5.2006
Overview
• An Evolving framework
• How does it work
• The Tool Provider view
• The Tool User view
– An Example execution
• Perspectives
T. Margaria
STRESS ‘06 – 24.5.2006
Model Preparation (1)
T. Margaria
STRESS ‘06 – 24.5.2006
Model Preparation (2)
T. Margaria
STRESS ‘06 – 24.5.2006
Calling the Tracer
T. Margaria
STRESS ‘06 – 24.5.2006
Executing the Codeviewer
T. Margaria
STRESS ‘06 – 24.5.2006
Output of the Codeviewer
T. Margaria
STRESS ‘06 – 24.5.2006
Executing the JAD
T. Margaria
STRESS ‘06 – 24.5.2006
Output of JAD (1)
T. Margaria
STRESS ‘06 – 24.5.2006
Executing ZKM and JAD
T. Margaria
STRESS ‘06 – 24.5.2006
Output of JAD (2)
T. Margaria
STRESS ‘06 – 24.5.2006
Executing SOOT and JAD
T. Margaria
STRESS ‘06 – 24.5.2006
Output of JAD (3)
T. Margaria
STRESS ‘06 – 24.5.2006
Execution Completion
T. Margaria
STRESS ‘06 – 24.5.2006
FMICS jETI Repository of MC Tools
Participants:
CWI:
INRIA:
ISTI:
Jaco van de Pol, Bert Lisser (T)
Hubert Garavel, Radu Mateescu
Stefania Gnesi, Diego Latella,
Franco Mazzanti (T), Gianluca Trentanni (T)
U. Brno:
Lubos Brim, Jiri Barnat (T)
U. Dortmund/U. Potsdam: Tiziana Margaria, Bernhard Steffen
Christian Kubczak (T), Stefan Naujokat (T)
Marco Bakera (T), Christian Topnik (T)
U. Malaga: Pedro Merino, Jesus Martinez (T)
U. Saarbrücken: Holger Hermanns, Reza Pulungan (T)
[CCLRC: Juan Bicarregui, Alvaro Arenas] for information
Coordination: Tiziana Margaria, Christian Kubczak,
all the group leaders of the groups above.
T. Margaria
STRESS ‘06 – 24.5.2006
Overview
• A motivating scenario
• How does it work
• The roots
• Web services (Example)
– The Tool Provider view
– The Tool User view
• SWS Challenge 2006
• Status and perspectives
T. Margaria
STRESS ‘06 – 24.5.2006
SWS Challenge 2006
Phase I : Service Mediation
T. Margaria
STRESS ‘06 – 24.5.2006
A Service Mediation Scenario
T. Margaria
STRESS ‘06 – 24.5.2006
Solution:
1.
2.
3.
4.
Generate SIBs from Moon’s WSDL descriptions of the Legacy
System
Model Mediator workflow in jABC (SLG)
Generate web service out of the mediator SLG
Use generated web service with RosettaNet Client
T. Margaria
STRESS ‘06 – 24.5.2006
Integrating (Web) Services
1.
Generate SIBs from Moon’s WSDL descriptions of the Legacy
System
SOAP
SOAP
Web-Service
Building
Block
T. Margaria
WSDL
jETI
STRESS ‘06 – 24.5.2006
2. Moon Mediator Workflow
T. Margaria
STRESS ‘06 – 24.5.2006
T. Margaria
STRESS ‘06 – 24.5.2006
T. Margaria
STRESS ‘06 – 24.5.2006
2. Moon Mediator Workflow - WS
T. Margaria
STRESS ‘06 – 24.5.2006
3. Integrating/Providing (Web) Services
SOAP
Web-Service
Building
Block
WSDL
jETI
Building
Mediator Block
WSDL
Web-Service
jETI-Tool
T. Margaria
STRESS ‘06 – 24.5.2006
jETI Status
…
•
Generic Orchestration SIBs
•
•
•
•
•
•
SWS Challenge (Web Services)
Bioinformatics (Services and SIBs)
GIS (SUN/Ricoh/ProDV)
Office Automation Support
IKEA SCM
FMICS jETI Platform
Halle 1 Stand A90/A91
T. Margaria
STRESS ‘06 – 24.5.2006
jETI Status
T. Margaria
STRESS ‘06 – 24.5.2006
Conclusions and Perspectives
• Service-oriented, model-driven
• Not new!
• Web Service technology:
– Integration by registration
– Seamless remote execution
• Experience in many different domains
• Compile vs. runtime
• Standardizing services in a domain (Service catalogues)
• Services as “functions”
• Semantics!
T. Margaria
STRESS ‘06 – 24.5.2006
Workflows in Bioinformatics
Tiziana Margaria
Chair of Service and Software Engineering
Universität Potsdam
Christian Kubczak
Marc Njoku
Chair of Programming Systems
Universität Dortmund
SEDS
Universität Göttingen
T. Margaria
STRESS ‘06 – 24.5.2006
Gene name/ EnsemblID
Llist of species
Region
Get Orthologous IDs
(recursively)
List with ID‘s
Get
Sequences for
all IDs
WUBlast each
aginst each
(Asynchronous
Webservice)
Liste with
Sequences
List of
species
(s.above.)
WU-Blast
Result
Identify the ‚right‘
WUBlast-match
Array of Positions
[ID1 / ID2]
Search Array of Positions for
the best Position
For each ID, output the
best Position
Orthologe ID‘s holen
•
Sinn:
– Stellt ein Set aller zueinander orthologen Gene (ausgehend von dem
Eingangs-Gen) in allen gegebenen Arten zusammen.
•
Eingangsinterface
– String ensemblID
– organismType(XML)[] organismList
•
Ausgangsinterface
– Array mit den Informationen Artname, EnsemblID (Array of orthologs, XML?)
•
Vorhanden
– Webservice, der die ‚orthologen IDs‘ für ein Artenpaar zurück gibt
•
• Eingabe 2* organismType und eine ensemblID
• Ausgabe Acessionnumber[] idList
Problem
– Das Holen der ‚orthologen IDs‘ muss rekursiv und jeder gegen jeden
erfolgen
•
TODO
– rekursiver Ansatz verwirklichen
– Ausgangsinterface besser definieren
T. Margaria
STRESS ‘06 – 24.5.2006
Sequenzen für alle ID‘s holen
•
Sinn:
– Sequenzen für das anschließende Blasten bereitstellen.
•
Eingangsinterface
– organismType(XML) Artname
– String EnsemblID
– String Bereichsangabe (first exon, promotor etc.)
•
Ausgangsinterface
– sequenceType(XML) Sequenz
•
Vorhanden
– Ensembl Java API, Beispielprogramm
•
Problem
– Modul holt eine Sequenz und muss in Schleife
angesprochen werden
•
TODO
– Modul schreiben
– Schleife konzipieren
T. Margaria
STRESS ‘06 – 24.5.2006
Gene
name
Get ID
ID
Get orthologue
IDs
List of species
Specie
s
For each
species, until
list empty
List of
species
Refined
Specs
For each species
but the current
one, till list empty
For all IDs, till
all compared
Complete ID List
For each ID,
till list empty
ID
Get
sequence ID
Sequence
WU Blast
Specie
s
For each species,
till list empty
Result
Identify hit
For each ID of the
blasted species
Positions
For each species
but the current
one, till list empty
Add results to
matrix
(ID ->
species)
Positions
for one ID
Prepare
matrix
for all IDs
Position
matrix
(ID x ID)
Go through
matrix
columns
Column
Determine best
position (ID) in a
column
T. Margaria
Best positions for all IDs
Collect
position result
STRESS ‘06 – 24.5.2006
Getting
the pairs
T. Margaria
STRESS ‘06 – 24.5.2006
Build the
result
Format
the result
T. Margaria
STRESS ‘06 – 24.5.2006
T. Margaria
STRESS ‘06 – 24.5.2006
T. Margaria
STRESS ‘06 – 24.5.2006
The Final SLG
T. Margaria
STRESS ‘06 – 24.5.2006
Service Engineering
- between Software and Business -
Tiziana Margaria
Chair of Service and Software Engineering
Universität Potsdam
T. Margaria
STRESS ‘06 – 24.5.2006
Services…
for comfort
and increased productivity
(Peter Naur,
NATO Software Engineering Conference
Garmisch Partenkirchen, 1968)
T. Margaria
STRESS ‘06 – 24.5.2006
Enhancing R2D2C with Learning
Tiziana Margaria
Bernhard Steffen
Mike Hinchey (NASA Goddard)
Christopher Rouff (SAIC)
Jim Rash (NASA Goddard)
T. Margaria
STRESS ‘06 – 24.5.2006
Requirements (to Design) to Code
Requirements
expressed as
scenarios
(reversed)
Models
Mathematical laws
of concurrency
Existing code
generating tools
Code
Existing model
extraction (reverse
engineering) tools
Two ways to apply R2D2C:
Engineered system:
Reverse engineered system: first
T. Margaria
, then
STRESS ‘06 – 24.5.2006
7
NASA‘s R2D2C
D4 Analysis:
uses available commercial, public
domain, and specially developed tools
D1 Scenarios Capture:
(CSP based)
Engineers, end users, and others write scenarios
describing intended system operation.
D5 Code Generation:
The input scenarios may be represented in a
Uses specialconstrained
purpose tools,
natural language using a syntax-directed
or FDR, or e.g.,
conversion
of textual
CSP toor
B graphical forms.
editor, or in other
and then using the B Toolkit).
D2 Traces Generation:
Traces and sequences of atomic events are
derived from the D1 scenarios
D3 Model Inference:
A formal model, or formal specification, expressed in CSP
is inferred by an automatic theorem prover (here ACL2)
using the traces derived in D2.
T. Margaria
STRESS ‘06 – 24.5.2006
Learning-Based Requirements Completion
Requirement specifications in terms of individual traces are
by their nature very partial.
They represent only the most prominent situations.
Techniques for systematically completing such partial
requirement specifications are of major practical
importance.
Requirements completion based on
Automatic (active) automata learning.
T. Margaria
STRESS ‘06 – 24.5.2006
Enhanced R2D2C
(with Requirement Completion)
L1
Temporal
Constraints
L2
Requirem.
Completion
Traces
T. Margaria
Seq.
Model
Seq.
Model
STRESS ‘06 – 24.5.2006
Enhanced R2D2C:
Replace Mode [D3/L2]:
• the requirements completion component L2 replaces
model inference (bypassed):
• Analysis and code generation work on the model
produced by L2.
• Currently, this means that we restrict ourselves to
sequential models.
T. Margaria
STRESS ‘06 – 24.5.2006
Enhanced R2D2C:
Integrated mode:
• the requirement completion component L2 is added to
the original process.
• L2
– supports the evaluation of the given set of
requirement traces,
– hints at underspecified portions
– which may be successively completed.
•
This option strengthens the original R2D2C process.
For true model-based system-level design!
T. Margaria
STRESS ‘06 – 24.5.2006
R2D2C Uses
• End-to-end automatic code generation of provably correct
systems
• Automatic reimplementation after any requirements change
• Exploiting re-use across platforms
• Reverse engineering legacy systems to a mathematically
sound model
• Analysis and documentation of existing systems (e.g., expert
systems)
• Re-engineering of legacy systems to a provably correct new
implementation
T. Margaria
STRESS ‘06 – 24.5.2006
12
Benefits of the Method
• Automation of entire development process
• Significant increase in quality
–
–
–
–
Ability to do formal proof on properties of implementations
Ability to do formal proof of correctness
Automated means for requirements analysis
Guaranteed correspondence between requirements and
their implementation as code
• Model-enabling also legacy systems
T. Margaria
STRESS ‘06 – 24.5.2006
11
Domains (to date)
• Verification of Robotic Procedures
(e.g. Hubble Space Telescope Robotic
Servicing Mission)
• Wireless Sensor Networks
• Communication Systems
• Agent Based Systems
T. Margaria
STRESS ‘06 – 24.5.2006
T. Margaria
STRESS ‘06 – 24.5.2006
MaTRICS:
Remote Configuration of Systems
T. Margaria
STRESS ‘06 – 24.5.2006
MaTRICS Sendmail Config.
modelled and implemented as SLG:
T. Margaria
STRESS ‘06 – 24.5.2006
Client
Protocol
Manager
Palette
T. Margaria
STRESS ‘06 – 24.5.2006
T. Margaria
STRESS ‘06 – 24.5.2006
Download