SlideShare a Scribd company logo
1 of 21
cipi         Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche




Event-Driven Mashup Orchestration with
                Scala

 Michele Stecca, Martino Fornasa, Nicholas Dall’Armellina,
                  and Massimo Maresca
               Computer Platform Research Center (CIPI)
                 University of Padova & Genova (Italy)
                     Honolulu, HI, June 28th, 2012

  Follow me on Twitter: @steccami
  E-mail: m.stecca@cipi.unige.it
cipi    Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche




                    Agenda

1.   Introduction
2.   Mashup Execution Platform (MEP) Design
3.   The Scala programming language
4.   A Scala-based MEP
5.   Performance evaluation
6.   Conclusions


                                                                                      2
cipi      Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche



                1. Introduction (1/5)
…about the ‘Mashup’ concept

 Data Mashup: combining different data sources (e.g.,
  Yahoo!Pipes)
 Presentation Mashup: combining different
  gadgets/widgets in a web page (e.g., iGoogle)
 Process/Functional Mashup: combining different
  services/Web APIs (e.g., JackBe Presto but also IFTTT)
cipi         Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche



                     1. Introduction (2/5)
Reference Scenario
   Availability of contents and services through technologies
    typical of the Web 2.0 philosophy such as RSS Feed,
    Atom, REST-WS, SOAP-WS, etc. See
    programmableweb.com for a list of more than 6000 Web
    APIs

   Internet/Web of Things (need for event management)

   Availability of tools for the rapid development of
    convergent Composite Services (a.k.a., Mashups) that
    combine different resources such as Yahoo Pipes!, JackBe
    Presto, etc.

                                                                                              4
cipi        Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche



                 1. Introduction (3/5)
The Mashup Creation Platform
cipi          Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche



                 1. Introduction (4/5)
The Mashup Creation Platform
                                                               Event Date: July 1st, 2012
                                                               Event Title: Final Match




         Check if RSS item contains
         “Italy defeated Germany”


                                                 TweetText = RSS_Eurosport.title
cipi        Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche



                  1. Introduction (5/5)
System overview

                               Mashup Creation Platform




                                              Mashup Repository




                      Mashup Execution Platform
                        (Server-side platform)
cipi             Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


                           2. The MEP Design (1/2)
We already implemented a Java-based MEP* whose
   high level architecture is depicted in the figure




                                                                            SP=Service Proxy
                                                                            (i.e., a wrapper for Web APIs)




*Stecca M., Maresca M., “An Architecture for a Mashup Container in Virtualized Environments”,
      Cloud, pp.386-393, 2010 IEEE 3rd International Conference on Cloud Computing, Miami,
      Florida, 2010                                                                        8
cipi           Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


                         2. The MEP Design (2/2)
       The MEP has been designed as a Server-side platform “in-
        the-cloud” (reasons: security, performance optimization,
        always-on, etc.)
       It is important to chose a suitable concurrency model
        because of the huge number of Mashup executions taking
        place concurrently
       Two approaches:
         Thread-based (but difficult to optimize the resource usage)
         Event-driven (but difficult to develop)
       How can we improve the existing Java-based MEP
        performance without re-developing the system from the
        scratch?
            Possible answer: by using the Scala
               programming language
                                                                                                    9
cipi       Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


          3. The Scala programming language (1/4)
       Developed at the EPFL Lausanne,
        Switzerland
       It merges the Functional Programming (FP)
        and the OOP paradigms
       It is executed by a JVM  Fully compatibility
        with legacy Java libraries
       Concurrency model: actors (e.g., Erlang)
        It is suitable to exploit the multi-core processors
        An actor is a “computational unit” lighter than a
         system thread
        Actors communicate among each others
         according to the message passing paradigm
                 DestinationActor ! Message                                                  10
cipi       Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


       3. The Scala programming language (2/4)
   Here is the typical Scala Actor’s body
    (pseudocode)

Loop{
     onMessage{
             Case Message1=>
                 Process Message1;
             Case Message2=>
                 Process Message2;
             …
               }
    }
                                                                                          11
cipi       Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


       3. The Scala programming language (3/4)
   Case 1: onMessage=receive primitive




The concurrency model falls back to the Thread model

                                                                                          12
cipi       Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


       3. The Scala programming language (4/4)
   Case 2: onMessage=react primitive




The concurrency model is event driven (a.k.a., threadless
   model)
                                                                                          13
cipi     Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


                4. A Scala-based MEP (1/4)
     The Java-based MEP has been developed in
      modular way (i.e., clear separation between
      the Business Logic and the Concurrency
      logic)
     The idea is to exploit at the same time:
       The Java-based MEP implementation
       The efficient Scala concurrency model
        based on actors
     What have we done?
       We mapped the Orchestrator component and
        each SP into Scala actors
       We defined the MessageDo and the
        MessageEvent Scala messages                                                      14
cipi     Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


   4. A Scala-based MEP (2/4)




                                                                            15
cipi     Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


             4. A Scala-based MEP (3/4)
   The reference example                             OAI=Orchestrator Actor Instance




                                                                                      16
cipi     Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


               4. A Scala-based MEP (4/4)
The Orchestrator component in Scala (code)




                                                                                        17
cipi       Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


                 5. Performance Evaluation (1/2)
The testbed
 Two nodes (QuadCore, 4GB RAM, Ubuntu OS)
       Node 1: traffic injector
       Node 2: the Scala-based MEP
 Deployment of 2 fake SPs and 1 fake Mashup
 Definition of two metrics:
       Mashup Execution Time (MET)
       #Threads




                                                                                               18
cipi     Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche


              5. Performance Evaluation (2/2)

The results




                                                                                          19
cipi    Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche




                     6. Conclusions

 We   successfully migrated the Java-based MEP
  to Scala
 The evaluation tests show how the Scala-based
  MEP outperforms the Java-based MEP
 Future work:
    Additional performance tests

    Focus on the Service Proxy (i.e., adpatation)

     level
     Final Match                               vs
                                                                                       20
cipi         Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche




           Thank you for
           your attention!

Michele Stecca
Follow me on Twitter: @steccami
Email: m.stecca@cipi.unige.it                                                               21

More Related Content

Viewers also liked (16)

Cloud 2010
Cloud 2010Cloud 2010
Cloud 2010
 
Hearing aid-batteries-toronto
Hearing aid-batteries-torontoHearing aid-batteries-toronto
Hearing aid-batteries-toronto
 
Organisational and cultural factors that promote resilience
Organisational and cultural factors that promote resilienceOrganisational and cultural factors that promote resilience
Organisational and cultural factors that promote resilience
 
What i did last summer
What i did last summerWhat i did last summer
What i did last summer
 
html
htmlhtml
html
 
Hearing aid-batteries-toronto
Hearing aid-batteries-torontoHearing aid-batteries-toronto
Hearing aid-batteries-toronto
 
nascar overview - 04/2011
nascar overview - 04/2011nascar overview - 04/2011
nascar overview - 04/2011
 
2dig circ
2dig circ2dig circ
2dig circ
 
SumerSingh_Ashawat
SumerSingh_AshawatSumerSingh_Ashawat
SumerSingh_Ashawat
 
RF Solutions Standard Antenna Datasheet
RF Solutions Standard Antenna DatasheetRF Solutions Standard Antenna Datasheet
RF Solutions Standard Antenna Datasheet
 
Sap forum 2015 Milan
Sap forum 2015 MilanSap forum 2015 Milan
Sap forum 2015 Milan
 
Biotech Bulletin -Fall 2015
Biotech Bulletin -Fall 2015Biotech Bulletin -Fall 2015
Biotech Bulletin -Fall 2015
 
test test
test testtest test
test test
 
Icin2013
Icin2013Icin2013
Icin2013
 
FACELI - D1 - Zilda Maria Fantin Moreira - Linguagem Jurídica - AULA 09
FACELI - D1 - Zilda Maria Fantin Moreira  -  Linguagem Jurídica - AULA 09FACELI - D1 - Zilda Maria Fantin Moreira  -  Linguagem Jurídica - AULA 09
FACELI - D1 - Zilda Maria Fantin Moreira - Linguagem Jurídica - AULA 09
 
Modulo metodos probabilisticos-2013 (2)
Modulo metodos probabilisticos-2013 (2)Modulo metodos probabilisticos-2013 (2)
Modulo metodos probabilisticos-2013 (2)
 

Similar to Scc2012 Scala

CVENJamesYu_201512
CVENJamesYu_201512CVENJamesYu_201512
CVENJamesYu_201512James, Yu
 
Teaching Apache Spark: Demonstrations on the Databricks Cloud Platform
Teaching Apache Spark: Demonstrations on the Databricks Cloud PlatformTeaching Apache Spark: Demonstrations on the Databricks Cloud Platform
Teaching Apache Spark: Demonstrations on the Databricks Cloud PlatformYao Yao
 
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It PosesEnterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It PosesAlex Senkevitch
 
High-Performance and Scalable Designs of Programming Models for Exascale Systems
High-Performance and Scalable Designs of Programming Models for Exascale SystemsHigh-Performance and Scalable Designs of Programming Models for Exascale Systems
High-Performance and Scalable Designs of Programming Models for Exascale Systemsinside-BigData.com
 
Concurrent Matrix Multiplication on Multi-core Processors
Concurrent Matrix Multiplication on Multi-core ProcessorsConcurrent Matrix Multiplication on Multi-core Processors
Concurrent Matrix Multiplication on Multi-core ProcessorsCSCJournals
 
ACS 248th Paper 136 JSmol/JSpecView Eureka Integration
ACS 248th Paper 136 JSmol/JSpecView Eureka IntegrationACS 248th Paper 136 JSmol/JSpecView Eureka Integration
ACS 248th Paper 136 JSmol/JSpecView Eureka IntegrationStuart Chalk
 
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.J On The Beach
 
A Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceA Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceTim Ellison
 
Paper9250 implementation of an i pv6 stack for ns-3
Paper9250 implementation of an i pv6 stack for ns-3Paper9250 implementation of an i pv6 stack for ns-3
Paper9250 implementation of an i pv6 stack for ns-3Suhail Ahmed Chandio
 
Simulations on Computer Network An Improved Study in the Simulator Methodolog...
Simulations on Computer Network An Improved Study in the Simulator Methodolog...Simulations on Computer Network An Improved Study in the Simulator Methodolog...
Simulations on Computer Network An Improved Study in the Simulator Methodolog...YogeshIJTSRD
 
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...Rafael Ferreira da Silva
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformNuxeo
 
Always-on Distributed Spreadsheet Mashups
Always-on Distributed Spreadsheet MashupsAlways-on Distributed Spreadsheet Mashups
Always-on Distributed Spreadsheet Mashupsmashups
 

Similar to Scc2012 Scala (20)

DhevendranResume
DhevendranResumeDhevendranResume
DhevendranResume
 
CVENJamesYu_201512
CVENJamesYu_201512CVENJamesYu_201512
CVENJamesYu_201512
 
Teaching Apache Spark: Demonstrations on the Databricks Cloud Platform
Teaching Apache Spark: Demonstrations on the Databricks Cloud PlatformTeaching Apache Spark: Demonstrations on the Databricks Cloud Platform
Teaching Apache Spark: Demonstrations on the Databricks Cloud Platform
 
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It PosesEnterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
 
Resume 2015
Resume 2015Resume 2015
Resume 2015
 
High-Performance and Scalable Designs of Programming Models for Exascale Systems
High-Performance and Scalable Designs of Programming Models for Exascale SystemsHigh-Performance and Scalable Designs of Programming Models for Exascale Systems
High-Performance and Scalable Designs of Programming Models for Exascale Systems
 
Concurrent Matrix Multiplication on Multi-core Processors
Concurrent Matrix Multiplication on Multi-core ProcessorsConcurrent Matrix Multiplication on Multi-core Processors
Concurrent Matrix Multiplication on Multi-core Processors
 
ACS 248th Paper 136 JSmol/JSpecView Eureka Integration
ACS 248th Paper 136 JSmol/JSpecView Eureka IntegrationACS 248th Paper 136 JSmol/JSpecView Eureka Integration
ACS 248th Paper 136 JSmol/JSpecView Eureka Integration
 
iiwas2009
iiwas2009iiwas2009
iiwas2009
 
PID2143641
PID2143641PID2143641
PID2143641
 
Sambhab_Mohapatra
Sambhab_MohapatraSambhab_Mohapatra
Sambhab_Mohapatra
 
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
 
A Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceA Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark Performance
 
43
4343
43
 
Paper9250 implementation of an i pv6 stack for ns-3
Paper9250 implementation of an i pv6 stack for ns-3Paper9250 implementation of an i pv6 stack for ns-3
Paper9250 implementation of an i pv6 stack for ns-3
 
Simulations on Computer Network An Improved Study in the Simulator Methodolog...
Simulations on Computer Network An Improved Study in the Simulator Methodolog...Simulations on Computer Network An Improved Study in the Simulator Methodolog...
Simulations on Computer Network An Improved Study in the Simulator Methodolog...
 
Reverse Engineering Architectural Feature Models
Reverse Engineering Architectural Feature ModelsReverse Engineering Architectural Feature Models
Reverse Engineering Architectural Feature Models
 
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Always-on Distributed Spreadsheet Mashups
Always-on Distributed Spreadsheet MashupsAlways-on Distributed Spreadsheet Mashups
Always-on Distributed Spreadsheet Mashups
 

More from steccami

Programmazione Dinamica.pdf
Programmazione Dinamica.pdfProgrammazione Dinamica.pdf
Programmazione Dinamica.pdfsteccami
 
From hadoop to spark
From hadoop to sparkFrom hadoop to spark
From hadoop to sparksteccami
 
Industry4.0
Industry4.0Industry4.0
Industry4.0steccami
 
Internet Exchange Point
Internet Exchange PointInternet Exchange Point
Internet Exchange Pointsteccami
 
Storia del Teorema dei 4 colori
Storia del Teorema dei 4 coloriStoria del Teorema dei 4 colori
Storia del Teorema dei 4 coloristeccami
 
Contact tracing
Contact tracingContact tracing
Contact tracingsteccami
 
Introduzione al Machine Learning
Introduzione al Machine LearningIntroduzione al Machine Learning
Introduzione al Machine Learningsteccami
 
SpreadSheetSpace seminar at ICSI
SpreadSheetSpace seminar at ICSISpreadSheetSpace seminar at ICSI
SpreadSheetSpace seminar at ICSIsteccami
 
Smart City application
Smart City applicationSmart City application
Smart City applicationsteccami
 
iCore Smart Transportation use case CRF M3S
iCore Smart Transportation use case CRF M3SiCore Smart Transportation use case CRF M3S
iCore Smart Transportation use case CRF M3Ssteccami
 
Cloud Google App Engine Paas
Cloud   Google App Engine PaasCloud   Google App Engine Paas
Cloud Google App Engine Paassteccami
 
Cloud Amazon IaaS aws
Cloud  Amazon IaaS awsCloud  Amazon IaaS aws
Cloud Amazon IaaS awssteccami
 
Introduzione Cloud Computing
Introduzione Cloud ComputingIntroduzione Cloud Computing
Introduzione Cloud Computingsteccami
 
5th KuVS Meeting
5th KuVS Meeting5th KuVS Meeting
5th KuVS Meetingsteccami
 
IEEE ICIN 2011
IEEE ICIN 2011IEEE ICIN 2011
IEEE ICIN 2011steccami
 
Mashup2010
Mashup2010Mashup2010
Mashup2010steccami
 
Presentazione finale dottorato 15 aprile 2011
Presentazione finale dottorato 15 aprile 2011Presentazione finale dottorato 15 aprile 2011
Presentazione finale dottorato 15 aprile 2011steccami
 

More from steccami (20)

Programmazione Dinamica.pdf
Programmazione Dinamica.pdfProgrammazione Dinamica.pdf
Programmazione Dinamica.pdf
 
From hadoop to spark
From hadoop to sparkFrom hadoop to spark
From hadoop to spark
 
Industry4.0
Industry4.0Industry4.0
Industry4.0
 
Internet Exchange Point
Internet Exchange PointInternet Exchange Point
Internet Exchange Point
 
Storia del Teorema dei 4 colori
Storia del Teorema dei 4 coloriStoria del Teorema dei 4 colori
Storia del Teorema dei 4 colori
 
Contact tracing
Contact tracingContact tracing
Contact tracing
 
Introduzione al Machine Learning
Introduzione al Machine LearningIntroduzione al Machine Learning
Introduzione al Machine Learning
 
SpreadSheetSpace seminar at ICSI
SpreadSheetSpace seminar at ICSISpreadSheetSpace seminar at ICSI
SpreadSheetSpace seminar at ICSI
 
Smart City application
Smart City applicationSmart City application
Smart City application
 
iCore Smart Transportation use case CRF M3S
iCore Smart Transportation use case CRF M3SiCore Smart Transportation use case CRF M3S
iCore Smart Transportation use case CRF M3S
 
Icin2012
Icin2012Icin2012
Icin2012
 
Cloud Google App Engine Paas
Cloud   Google App Engine PaasCloud   Google App Engine Paas
Cloud Google App Engine Paas
 
Cloud Amazon IaaS aws
Cloud  Amazon IaaS awsCloud  Amazon IaaS aws
Cloud Amazon IaaS aws
 
Introduzione Cloud Computing
Introduzione Cloud ComputingIntroduzione Cloud Computing
Introduzione Cloud Computing
 
5th KuVS Meeting
5th KuVS Meeting5th KuVS Meeting
5th KuVS Meeting
 
IEEE ICIN 2011
IEEE ICIN 2011IEEE ICIN 2011
IEEE ICIN 2011
 
Mashup2010
Mashup2010Mashup2010
Mashup2010
 
Webx 2010
Webx 2010Webx 2010
Webx 2010
 
Icin 2009
Icin 2009Icin 2009
Icin 2009
 
Presentazione finale dottorato 15 aprile 2011
Presentazione finale dottorato 15 aprile 2011Presentazione finale dottorato 15 aprile 2011
Presentazione finale dottorato 15 aprile 2011
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Scc2012 Scala

  • 1. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche Event-Driven Mashup Orchestration with Scala Michele Stecca, Martino Fornasa, Nicholas Dall’Armellina, and Massimo Maresca Computer Platform Research Center (CIPI) University of Padova & Genova (Italy) Honolulu, HI, June 28th, 2012 Follow me on Twitter: @steccami E-mail: m.stecca@cipi.unige.it
  • 2. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche Agenda 1. Introduction 2. Mashup Execution Platform (MEP) Design 3. The Scala programming language 4. A Scala-based MEP 5. Performance evaluation 6. Conclusions 2
  • 3. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 1. Introduction (1/5) …about the ‘Mashup’ concept  Data Mashup: combining different data sources (e.g., Yahoo!Pipes)  Presentation Mashup: combining different gadgets/widgets in a web page (e.g., iGoogle)  Process/Functional Mashup: combining different services/Web APIs (e.g., JackBe Presto but also IFTTT)
  • 4. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 1. Introduction (2/5) Reference Scenario  Availability of contents and services through technologies typical of the Web 2.0 philosophy such as RSS Feed, Atom, REST-WS, SOAP-WS, etc. See programmableweb.com for a list of more than 6000 Web APIs  Internet/Web of Things (need for event management)  Availability of tools for the rapid development of convergent Composite Services (a.k.a., Mashups) that combine different resources such as Yahoo Pipes!, JackBe Presto, etc. 4
  • 5. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 1. Introduction (3/5) The Mashup Creation Platform
  • 6. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 1. Introduction (4/5) The Mashup Creation Platform Event Date: July 1st, 2012 Event Title: Final Match Check if RSS item contains “Italy defeated Germany” TweetText = RSS_Eurosport.title
  • 7. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 1. Introduction (5/5) System overview Mashup Creation Platform Mashup Repository Mashup Execution Platform (Server-side platform)
  • 8. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 2. The MEP Design (1/2) We already implemented a Java-based MEP* whose high level architecture is depicted in the figure SP=Service Proxy (i.e., a wrapper for Web APIs) *Stecca M., Maresca M., “An Architecture for a Mashup Container in Virtualized Environments”, Cloud, pp.386-393, 2010 IEEE 3rd International Conference on Cloud Computing, Miami, Florida, 2010 8
  • 9. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 2. The MEP Design (2/2)  The MEP has been designed as a Server-side platform “in- the-cloud” (reasons: security, performance optimization, always-on, etc.)  It is important to chose a suitable concurrency model because of the huge number of Mashup executions taking place concurrently  Two approaches:  Thread-based (but difficult to optimize the resource usage)  Event-driven (but difficult to develop)  How can we improve the existing Java-based MEP performance without re-developing the system from the scratch? Possible answer: by using the Scala programming language 9
  • 10. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 3. The Scala programming language (1/4)  Developed at the EPFL Lausanne, Switzerland  It merges the Functional Programming (FP) and the OOP paradigms  It is executed by a JVM  Fully compatibility with legacy Java libraries  Concurrency model: actors (e.g., Erlang)  It is suitable to exploit the multi-core processors  An actor is a “computational unit” lighter than a system thread  Actors communicate among each others according to the message passing paradigm DestinationActor ! Message 10
  • 11. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 3. The Scala programming language (2/4)  Here is the typical Scala Actor’s body (pseudocode) Loop{ onMessage{ Case Message1=> Process Message1; Case Message2=> Process Message2; … } } 11
  • 12. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 3. The Scala programming language (3/4)  Case 1: onMessage=receive primitive The concurrency model falls back to the Thread model 12
  • 13. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 3. The Scala programming language (4/4)  Case 2: onMessage=react primitive The concurrency model is event driven (a.k.a., threadless model) 13
  • 14. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 4. A Scala-based MEP (1/4)  The Java-based MEP has been developed in modular way (i.e., clear separation between the Business Logic and the Concurrency logic)  The idea is to exploit at the same time:  The Java-based MEP implementation  The efficient Scala concurrency model based on actors  What have we done?  We mapped the Orchestrator component and each SP into Scala actors  We defined the MessageDo and the MessageEvent Scala messages 14
  • 15. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 4. A Scala-based MEP (2/4) 15
  • 16. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 4. A Scala-based MEP (3/4)  The reference example OAI=Orchestrator Actor Instance 16
  • 17. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 4. A Scala-based MEP (4/4) The Orchestrator component in Scala (code) 17
  • 18. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 5. Performance Evaluation (1/2) The testbed  Two nodes (QuadCore, 4GB RAM, Ubuntu OS)  Node 1: traffic injector  Node 2: the Scala-based MEP  Deployment of 2 fake SPs and 1 fake Mashup  Definition of two metrics:  Mashup Execution Time (MET)  #Threads 18
  • 19. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 5. Performance Evaluation (2/2) The results 19
  • 20. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 6. Conclusions  We successfully migrated the Java-based MEP to Scala  The evaluation tests show how the Scala-based MEP outperforms the Java-based MEP  Future work:  Additional performance tests  Focus on the Service Proxy (i.e., adpatation) level  Final Match vs 20
  • 21. cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche Thank you for your attention! Michele Stecca Follow me on Twitter: @steccami Email: m.stecca@cipi.unige.it 21