SlideShare a Scribd company logo
Tutorial
               Dynamic Server Applications
                    with Eclipse RT

                                                                                    PHP                InternetOfThings                         Native                                         iPad App
                                                                                   WebApp                   Device                               App                                           Mobile Apps




                                                                                                                      LoadBalancer
                                                                                    REST        REST       REST        REST                REST          REST             REST              REST
                                                                                    API         API        API         API                 API           API              API               API

                                                                                 Gyrex      Gyrex      Gyrex      Gyrex                 Gyrex        Gyrex          Gyrex          Gyrex
                                                                                 Node       Node       Node       Node                  Node         Node           Node           Node




                                                                                                                ZK            ZK                  ZK            • coordinates the cluster
                                                                                                               Node          Node                Node           • Holds the complete
                                                                                                                                                                application- and cluster
                                                                                                                          ZK Clust er                           configuration
                                                                                data repositories




Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
The authors
         Gunnar Wagenknecht                                                               Andreas Mihm
         gunnar@wagenknecht.org                                                           andreas.mihm@ageto.net
         CTO                                                                              Head of Research
         AGETO, Germany                                                                   AGETO, Germany




                                                       Jochen Hiller
                                                       jo.hiller@googlemail.com
                                                       Developer Evangelist
                                                       Deutsche Telekom AG, Germany




Tutorial: Dynamic Server Applications with EclipseRT     Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
In this tutorial you will
     o LEARN what modern server applications need
       to feature

     o UNDERSTAND the usage of selected EclipseRT
       technologies

     o BUILD an EclipseRT server application based
       on Equinox and Eclipse Gyrex

     o SETUP a private cluster connecting all
       attendees
Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
Modern Server Application
                         Requirements
                                                                                                              Million
         o Support high traffic use cases                                                                transactions
                                                                                                            per hour

         o Support different frontend
           technologies and devices

         o modular in development and deployment

         o Easy to setup

         o Open for new technologies  easy to extend AND to
           shrink
            o e.g. persistence
Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
Eclipse RT
         “EclipseRT is the collection of OSGi-based runtimes and frameworks built
         by the Eclipse open source projects. “

                                   Containers, Middleware, EnterpriseFrameworks




Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
Equinox
       o reference implementation for OSGi spec

       o foundation of EclipseRT

       o component oriented development and assembly




Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
Eclipse jetty
     features
        o Asynchronous HTTP Server
        o Standard based Servlet Container
        o Web Sockets server
        o Asynchronous HTTP Client
        o OSGi, JNDI, JMX, JASPI, AJP support

     Small foot print allows large scaling

     Jetty runs in
        o Apache Hadoop
        o Google AppEngine




Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
EclipseLink
                               Comprehensive Java persistence solution
                         addressing relational, XML, and database web services.

                              Java SE             Java EE        OSGi               Spring               ADF


                                JPA                MOXy          EIS               SDO                   DBWS




                              EclipseLink



                            Databases                           XML Data                                 Legacy Systems




Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
GYREX
                 lightweight application stack for building server
                    applications using EclipseRT technologies.

      o built-in clustering

      o built-in web-based administration UI

      o built-in multi tenancy

      o enhancements for professional maintenance
            - centralized logging
            - cluster provisioning UI



Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
GYREX Components
                                                                     Logging                 Metrics                   RAP
                         Repositories
                  (JDBC, EclipseLink, NoSQL)                                 Debug/Trace                             Console

                                                                               Monitoring                            Admin
                      HTTP Applications
                   (Jetty, OSGi HttpService)
                                                                  Clustering & Coord.                    Configuration
                                                                      (ZooKeeper)                  (Eclipse Preferences API)


                                                                           Provisioning                      Processing
                                                                               (p2)                      (Eclipse Jobs API)

                        Contextual Runtime                                                      Cloud



                                                                    Equinox




Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
GYREX Infrastructure Setup
                                          For a High Traffic Application
                                            with different frontends

                     PHP                        InternetOfThings                     Native                                   iPad App
                    WebApp                           Device                           App                                     Mobile Apps




                                                                 LoadBalancer
                      REST             REST            REST          REST        REST           REST           REST       REST
                      API              API             API           API         API            API            API        API
                  Gyrex           Gyrex          Gyrex          Gyrex         Gyrex         Gyrex           Gyrex     Gyrex
                  Node            Node           Node           Node          Node          Node            Node      Node



        p2                                                 ZK            ZK             ZK            • coordinates the cluster
       repo                                               Node          Node           Node           • Holds the complete
                                                                                                      application- and cluster
                         data repositories              ZK Cluster
                                                                                                      configuration




Tutorial: Dynamic Server Applications with EclipseRT      Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
GYREX Features
  o light weight application stack                                            PHP
                                                                             WebApp
                                                                                                 InternetOfThings
                                                                                                      Device
                                                                                                                                         Native
                                                                                                                                          App
                                                                                                                                                                                     iPad App
                                                                                                                                                                                     Mobile Apps



  o fast 100% OSGi runtime
                                                                                                                LoadBalancer
                                                                               REST       REST       REST        REST                REST         REST           REST          REST


  o central cluster configuration
                                                                               API        API        API         API                 API          API            API           API
                                                                            Gyrex     Gyrex      Gyrex      Gyrex                Gyrex        Gyrex         Gyrex        Gyrex
                                                                            Node      Node       Node       Node                 Node         Node          Node         Node

    through zookeeper
                                                                                                          ZK                   ZK          ZK            • coordinates the cluster
                                                                                                         Node                 Node        Node           • Holds the complete
                                                                                                                                                         application- and cluster

  o cluster aware job scheduling
                                                                                                                 ZK Cluster
                                                                                                                                                         configuration
                                                                           data repositories




  o multi tenant application support

  o automated deployment through p2

  o support for cluster node roles, e.g. „job worker node“ and „api
    node“


Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
Excercises
      o Setup workspace and target platform

      o Simple OSGi Service implementation

      o JAXRS example application

      o Private cluster setup


Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
Setup Steps
      o Copy USB-stick content to local disk

      o Extract fresh Eclipse installation from archive

      o Copy samples folder into eclipse/dropins

      o Start Eclipse with new workspace

      o Open Java Perspective

      o Import targetplatform project
        (File->Import->Existing Projects)

      o Set LOCAL TargetPlatform
Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
For more information
      o http://www.eclipse.org/gyrex/

      o http://www.eclipse.org/equinox/

      o http://www.eclipse.org/rt/




Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
Give Feedback on the Sessions

             1                  Sign In: www.eclipsecon.org




             2                  Select Session Evaluate




             3                  Vote



Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
Thank You
                              for your attention



Tutorial: Dynamic Server Applications with EclipseRT   Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller

More Related Content

Viewers also liked

Building Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsBuilding Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applications
Gunnar Wagenknecht
 
Open Source programmieren und dafür Gehalt bekommen @ AGETO
Open Source programmieren und dafür Gehalt bekommen @ AGETOOpen Source programmieren und dafür Gehalt bekommen @ AGETO
Open Source programmieren und dafür Gehalt bekommen @ AGETO
Gunnar Wagenknecht
 
Managing large and distributed Eclipse server applications.
Managing large and distributed Eclipse server applications.Managing large and distributed Eclipse server applications.
Managing large and distributed Eclipse server applications.
Gunnar Wagenknecht
 
Running a Succesful Open Source Project
Running a Succesful Open Source ProjectRunning a Succesful Open Source Project
Running a Succesful Open Source Project
Gunnar Wagenknecht
 
Developing Runtime Applications with Eclipse Gyrex
Developing Runtime Applications with Eclipse GyrexDeveloping Runtime Applications with Eclipse Gyrex
Developing Runtime Applications with Eclipse Gyrex
Gunnar Wagenknecht
 
An Introduction to EclipseRT
An Introduction to EclipseRTAn Introduction to EclipseRT
An Introduction to EclipseRT
Gunnar Wagenknecht
 
Building Server-Side Eclipse based web applications 2010
Building Server-Side Eclipse based web applications 2010Building Server-Side Eclipse based web applications 2010
Building Server-Side Eclipse based web applications 2010
Gunnar Wagenknecht
 
Tasty Recipes for OSGi Bundles
Tasty Recipes for OSGi BundlesTasty Recipes for OSGi Bundles
Tasty Recipes for OSGi Bundles
Gunnar Wagenknecht
 
A Scalable Stack for Modular Web Applications
A Scalable Stack for Modular Web ApplicationsA Scalable Stack for Modular Web Applications
A Scalable Stack for Modular Web Applications
Gunnar Wagenknecht
 
Tips & Tricks for Maven Tycho
Tips & Tricks for Maven TychoTips & Tricks for Maven Tycho
Tips & Tricks for Maven Tycho
Gunnar Wagenknecht
 

Viewers also liked (10)

Building Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsBuilding Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applications
 
Open Source programmieren und dafür Gehalt bekommen @ AGETO
Open Source programmieren und dafür Gehalt bekommen @ AGETOOpen Source programmieren und dafür Gehalt bekommen @ AGETO
Open Source programmieren und dafür Gehalt bekommen @ AGETO
 
Managing large and distributed Eclipse server applications.
Managing large and distributed Eclipse server applications.Managing large and distributed Eclipse server applications.
Managing large and distributed Eclipse server applications.
 
Running a Succesful Open Source Project
Running a Succesful Open Source ProjectRunning a Succesful Open Source Project
Running a Succesful Open Source Project
 
Developing Runtime Applications with Eclipse Gyrex
Developing Runtime Applications with Eclipse GyrexDeveloping Runtime Applications with Eclipse Gyrex
Developing Runtime Applications with Eclipse Gyrex
 
An Introduction to EclipseRT
An Introduction to EclipseRTAn Introduction to EclipseRT
An Introduction to EclipseRT
 
Building Server-Side Eclipse based web applications 2010
Building Server-Side Eclipse based web applications 2010Building Server-Side Eclipse based web applications 2010
Building Server-Side Eclipse based web applications 2010
 
Tasty Recipes for OSGi Bundles
Tasty Recipes for OSGi BundlesTasty Recipes for OSGi Bundles
Tasty Recipes for OSGi Bundles
 
A Scalable Stack for Modular Web Applications
A Scalable Stack for Modular Web ApplicationsA Scalable Stack for Modular Web Applications
A Scalable Stack for Modular Web Applications
 
Tips & Tricks for Maven Tycho
Tips & Tricks for Maven TychoTips & Tricks for Maven Tycho
Tips & Tricks for Maven Tycho
 

Similar to Building Server Applications with EclipseRT

Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
mfrancis
 
Are you ready to be edgy? Bringing applications to the edge of the network
Are you ready to be edgy? Bringing applications to the edge of the networkAre you ready to be edgy? Bringing applications to the edge of the network
Are you ready to be edgy? Bringing applications to the edge of the network
Megan O'Keefe
 
g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008
guest462d7
 
Abhishek_Kumar
Abhishek_KumarAbhishek_Kumar
Abhishek_Kumar
Abhishek Kumar
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
YoungSu Son
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
François Le Droff
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Mickael Istria
 
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayC:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
Arik Weinstein
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
Lee Calcote
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
Stefane Fermigier
 
OpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco HeavenOpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco Heaven
Trinath Somanchi
 
What is Node JS ?
What is Node JS ?What is Node JS ?
What is Node JS ?
Balajihope
 
Observability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with KeptnObservability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with Keptn
Andreas Grabner
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with JavaJakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
Niklas Heidloff
 
Introduction to Jhipster
Introduction to JhipsterIntroduction to Jhipster
Introduction to Jhipster
Knoldus Inc.
 
(DVO313) Building Next-Generation Applications with Amazon ECS
(DVO313) Building Next-Generation Applications with Amazon ECS(DVO313) Building Next-Generation Applications with Amazon ECS
(DVO313) Building Next-Generation Applications with Amazon ECS
Amazon Web Services
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?
Mark Russell
 
Running containers in production, the ING story
Running containers in production, the ING storyRunning containers in production, the ING story
Running containers in production, the ING story
Thijs Ebbers
 
Akraino and Edge Computing
Akraino and Edge ComputingAkraino and Edge Computing
Akraino and Edge Computing
Liz Warner
 

Similar to Building Server Applications with EclipseRT (20)

Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
 
Are you ready to be edgy? Bringing applications to the edge of the network
Are you ready to be edgy? Bringing applications to the edge of the networkAre you ready to be edgy? Bringing applications to the edge of the network
Are you ready to be edgy? Bringing applications to the edge of the network
 
g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008
 
Abhishek_Kumar
Abhishek_KumarAbhishek_Kumar
Abhishek_Kumar
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
 
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayC:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
OpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco HeavenOpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco Heaven
 
What is Node JS ?
What is Node JS ?What is Node JS ?
What is Node JS ?
 
Observability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with KeptnObservability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with Keptn
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with JavaJakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
 
Introduction to Jhipster
Introduction to JhipsterIntroduction to Jhipster
Introduction to Jhipster
 
(DVO313) Building Next-Generation Applications with Amazon ECS
(DVO313) Building Next-Generation Applications with Amazon ECS(DVO313) Building Next-Generation Applications with Amazon ECS
(DVO313) Building Next-Generation Applications with Amazon ECS
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?
 
Running containers in production, the ING story
Running containers in production, the ING storyRunning containers in production, the ING story
Running containers in production, the ING story
 
Akraino and Edge Computing
Akraino and Edge ComputingAkraino and Edge Computing
Akraino and Edge Computing
 

Recently uploaded

inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
DianaGray10
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 

Recently uploaded (20)

inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 

Building Server Applications with EclipseRT

  • 1. Tutorial Dynamic Server Applications with Eclipse RT PHP InternetOfThings Native iPad App WebApp Device App Mobile Apps LoadBalancer REST REST REST REST REST REST REST REST API API API API API API API API Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Node Node Node Node Node Node Node Node ZK ZK ZK • coordinates the cluster Node Node Node • Holds the complete application- and cluster ZK Clust er configuration data repositories Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 2. The authors Gunnar Wagenknecht Andreas Mihm gunnar@wagenknecht.org andreas.mihm@ageto.net CTO Head of Research AGETO, Germany AGETO, Germany Jochen Hiller jo.hiller@googlemail.com Developer Evangelist Deutsche Telekom AG, Germany Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 3. In this tutorial you will o LEARN what modern server applications need to feature o UNDERSTAND the usage of selected EclipseRT technologies o BUILD an EclipseRT server application based on Equinox and Eclipse Gyrex o SETUP a private cluster connecting all attendees Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 4. Modern Server Application Requirements Million o Support high traffic use cases transactions per hour o Support different frontend technologies and devices o modular in development and deployment o Easy to setup o Open for new technologies  easy to extend AND to shrink o e.g. persistence Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 5. Eclipse RT “EclipseRT is the collection of OSGi-based runtimes and frameworks built by the Eclipse open source projects. “ Containers, Middleware, EnterpriseFrameworks Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 6. Equinox o reference implementation for OSGi spec o foundation of EclipseRT o component oriented development and assembly Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 7. Eclipse jetty features o Asynchronous HTTP Server o Standard based Servlet Container o Web Sockets server o Asynchronous HTTP Client o OSGi, JNDI, JMX, JASPI, AJP support Small foot print allows large scaling Jetty runs in o Apache Hadoop o Google AppEngine Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 8. EclipseLink Comprehensive Java persistence solution addressing relational, XML, and database web services. Java SE Java EE OSGi Spring ADF JPA MOXy EIS SDO DBWS EclipseLink Databases XML Data Legacy Systems Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 9. GYREX lightweight application stack for building server applications using EclipseRT technologies. o built-in clustering o built-in web-based administration UI o built-in multi tenancy o enhancements for professional maintenance - centralized logging - cluster provisioning UI Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 10. GYREX Components Logging Metrics RAP Repositories (JDBC, EclipseLink, NoSQL) Debug/Trace Console Monitoring Admin HTTP Applications (Jetty, OSGi HttpService) Clustering & Coord. Configuration (ZooKeeper) (Eclipse Preferences API) Provisioning Processing (p2) (Eclipse Jobs API) Contextual Runtime Cloud Equinox Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 11. GYREX Infrastructure Setup For a High Traffic Application with different frontends PHP InternetOfThings Native iPad App WebApp Device App Mobile Apps LoadBalancer REST REST REST REST REST REST REST REST API API API API API API API API Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Node Node Node Node Node Node Node Node p2 ZK ZK ZK • coordinates the cluster repo Node Node Node • Holds the complete application- and cluster data repositories ZK Cluster configuration Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 12. GYREX Features o light weight application stack PHP WebApp InternetOfThings Device Native App iPad App Mobile Apps o fast 100% OSGi runtime LoadBalancer REST REST REST REST REST REST REST REST o central cluster configuration API API API API API API API API Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Gyrex Node Node Node Node Node Node Node Node through zookeeper ZK ZK ZK • coordinates the cluster Node Node Node • Holds the complete application- and cluster o cluster aware job scheduling ZK Cluster configuration data repositories o multi tenant application support o automated deployment through p2 o support for cluster node roles, e.g. „job worker node“ and „api node“ Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 13. Excercises o Setup workspace and target platform o Simple OSGi Service implementation o JAXRS example application o Private cluster setup Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 14. Setup Steps o Copy USB-stick content to local disk o Extract fresh Eclipse installation from archive o Copy samples folder into eclipse/dropins o Start Eclipse with new workspace o Open Java Perspective o Import targetplatform project (File->Import->Existing Projects) o Set LOCAL TargetPlatform Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 15. For more information o http://www.eclipse.org/gyrex/ o http://www.eclipse.org/equinox/ o http://www.eclipse.org/rt/ Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 16. Give Feedback on the Sessions 1 Sign In: www.eclipsecon.org 2 Select Session Evaluate 3 Vote Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller
  • 17. Thank You for your attention Tutorial: Dynamic Server Applications with EclipseRT Gunnar Wagenknecht, Andreas Mihm, Jochen Hiller