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