SlideShare a Scribd company logo
1 of 24
Download to read offline
1




   Riena/RCP Applications in the Web using RAP


                Christian Campo
                EclipseCon 2011 – March 22nd




                  Confidential | Date | Other Information, if necessary
März 23, 2011                                                                                        © 2002 IBM Corporation
                                          Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0
What is Riena again ?

        §  RCP based Framework
        §  Client / Server Applications
        §  Remote OSGi Service Support
        §  End-user focused Navigation Concept
        §  Promotes the separation of View and ViewController




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   2
End-user focused Navigation Concept ?




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   3
RCP started as the Eclipse IDE




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   4
RCP – Apps




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   5
UI Concepts used in Riena




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   6
UI Concepts for Views (=Workarea)



                          •  Model
                                 •  Data modeled in POJO or JavaBeans
                          •  View
                                 •  Widgets
                                 •  Layout
                                 •  Colors, Fonts
                          •  Controller
                              •  ActionListener, SelectionListener, DoubleClickListener
                                 •  Databinding Calls
                                    ActionListener, SelectionListener, DoubleClickListener
                                 •  use of Services (DI ?, OSGi Services)
                                    Databinding Calls
                                 •  use of Services (DI ?, OSGi Services)




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0         7
Many implementation of the same concept




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   8
Riena is also ...

        §  Equinox Security Support for Client / Server Environment
        §  Aimed at large Applications
                §  Avoid Boilerplate Code
                §  Make reoccurring tasks simple
                §  Manage the overall UI structure of the application
        §  Promotes the use of Dependency Injection for Services and
            Extensions using Annotations and API




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   9
What is RAP again ?

        §  RCP, JFace and Workbench for Webapplications
        §  Goals
                §  Any RCP App can be run in a Browser
                §  Single-sourcing (same source for desktop and web)
        §  By default a desktop client with a browser look
        §  Themeable
        §  API to convert Singletons into Session-Singletons




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   10
What is RAP again ?




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   11
Bring Riena and RAP together




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   12
Scalability – RCP/Riena


                                                                                            Riena Server
            Browser
             Browser                                   remote Service Calls
               Browser                                                                    stateless Services
                RCP/Riena
                Browser
                        Client




    •  one Session per JVM                                                             •  many worker threads
    •  many RCP Riena Clients                                                          •  stateless Services
    •  maintains Client state                                                          •  calls can take several
                                                                                          seconds




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0                               13
Scalability – RCP/Riena + RAP


                                                                 RAP Server                  Riena Server
            Browser
             Browser
               Browser                                         Session                     stateless Services
                Browser                                         Session
                  Browser                                         Session
                                                                   Session
                                                                     Session




    •  many Browser Clients                               •    one Session per User     •  many worker threads
                                                          •    short and quick calls    •  stateless Services
                                                          •    stateful                 •  calls can take several
                                                          •    maintains Client state      seconds
                                                          •    runs RCP Client code




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0                                14
Moving Client Code to the Webcontainer

        §  Identify all Singletons
                §  Some are REAL Singletons (ImageCache)
                §  Some need to become SessionSingletons
        §  Create Fragments for RCP/RAP specific code
                §  Create Facades to call one of the specific impl. at runtime
        §  Local (Client) OSGi Services
                §  should not maintain state
                §  should be reentrant
        §  If you are NOT on the UI Thread, its hard to get the correct
            Display instance i.e. in Jobs. (one Display instance per user)
        §  The GOAL is to SingleSource ! (one source for RCP and RAP)


Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   15
How to convert Singletons into SessionSingletons
   RCP
                                                                                       RAP
   public MySingleton {
                         public MySingleton extends SessionSingletonBase {
     private static MySingleton instance = new MySingleton();
                             private static MySingleton instance;
     public static MySingleton getInstance() {
            return instance; public static MySingleton getInstance() {
     }                               return (MySingleton)super.getInstance(MySingleton.class);
  }                          }
                         }
         public MySingleton {
 Riena
              private static SingletonProvider<MySingleton> ME = new
         SessionSingletonProvider<MySingleton>(MySingleton.class);

                     public static MySingleton getInstance() {
                            return ME.getInstance(MySingleton.class);
                     }
               }




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0         16
Creating Facades
                                                                                       Riena
                      // your code using the facades
       public class MyFacade {
                      MyFacade.getInstance().getText(myTextField);
   •  Sometimes you need different code on RCP and RAP
   •  Use a facade to abstract that
   •  Put the platform specific codeinstance = FacadeFactory.getFacade(MyFacade.class);
           private static MyFacade in a fragment

               public static MyFacade getInstance() {
                      return instance;
               }

               public abstract String getText(Text text);
                                                    public class MyFacadeRAP extends MyFacade {
         }
                                            public String getText(Text text) {
                                               ......
public class MyFacadeRCP extends MyFacade { }
                                       }
   public String getText(Text text) {
      ....
   }
}



Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0           17
Moving Riena Client to a Webcontainer

        §  Session -> SessionSingleton
                §  NavigationTreeModel
                §  Workarea (managing the Views attached to Navigation Tree Leafs)
                §  Security (logged User, Permissions, Sessionid)




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   18
One more thing....




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   19
UI Model Desktop -> Web                                                                Riena + RAP Client


   Riena Client




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0                        20
Existing Web Application




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   21
Bring the two together                                                 Menu




Navigation
Tree
                                                                                         Subapplication
                                                                                         Switcher




  Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0               22
...even on the iPad thanks to RAP




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0   23
§  If you want to move your Desktop Client to Web
                §  Understand the problem areas
                §  You need to possibly refactor and rework some of your code
                §  SingleSourcing as much as possible
        §  Contact
                §  http://www.eclipse.org/riena
                §  http://wiki.eclipse.org/Riena_Project
                §  riena-dev@eclipse.org
        §  RT BoF TONIGHT(Tuesday) 8:30 pm




Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0

More Related Content

What's hot

Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013jsievers
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleoTarun Telang
 
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to EclipseGEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to EclipseYoann Rodiere
 
Riena on Eclipse 4
Riena on Eclipse 4Riena on Eclipse 4
Riena on Eclipse 4heikobarth
 
Single sourcing using Rich Ajax Platform
Single sourcing using Rich Ajax PlatformSingle sourcing using Rich Ajax Platform
Single sourcing using Rich Ajax PlatformAnkur Sharma
 
Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)jsievers
 

What's hot (9)

Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleo
 
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to EclipseGEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
 
Riena on Eclipse 4
Riena on Eclipse 4Riena on Eclipse 4
Riena on Eclipse 4
 
Away3D update
Away3D updateAway3D update
Away3D update
 
Single sourcing using Rich Ajax Platform
Single sourcing using Rich Ajax PlatformSingle sourcing using Rich Ajax Platform
Single sourcing using Rich Ajax Platform
 
Tizen Window System
Tizen Window SystemTizen Window System
Tizen Window System
 
Maven 3 / Tycho
Maven 3 / TychoMaven 3 / Tycho
Maven 3 / Tycho
 
Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)
 

Viewers also liked

خاص عشان الموقع
خاص عشان الموقعخاص عشان الموقع
خاص عشان الموقعcoach2010
 
BIA/Kelsey 2014 Picks and Predictions
BIA/Kelsey 2014 Picks and PredictionsBIA/Kelsey 2014 Picks and Predictions
BIA/Kelsey 2014 Picks and PredictionsBIA/Kelsey
 
GI2015 ppt hoffmann_address_intro
GI2015 ppt hoffmann_address_introGI2015 ppt hoffmann_address_intro
GI2015 ppt hoffmann_address_introIGN Vorstand
 
GI2014 ppt sredl+charvat layman – publish your data yourself
GI2014 ppt sredl+charvat layman – publish your data yourselfGI2014 ppt sredl+charvat layman – publish your data yourself
GI2014 ppt sredl+charvat layman – publish your data yourselfIGN Vorstand
 
GI2010 symposium-longhorn (longhorn keynote-presentation_14_may)
GI2010 symposium-longhorn (longhorn keynote-presentation_14_may)GI2010 symposium-longhorn (longhorn keynote-presentation_14_may)
GI2010 symposium-longhorn (longhorn keynote-presentation_14_may)IGN Vorstand
 
Proposal Ideas and Research
Proposal Ideas and ResearchProposal Ideas and Research
Proposal Ideas and ResearchAmy Watkins
 
GI2013 ppt mildorf+team_pprd_erra
GI2013 ppt mildorf+team_pprd_erraGI2013 ppt mildorf+team_pprd_erra
GI2013 ppt mildorf+team_pprd_erraIGN Vorstand
 
Monografia Stragiudiziale Slacc
Monografia Stragiudiziale SlaccMonografia Stragiudiziale Slacc
Monografia Stragiudiziale Slaccaarnaldi
 
Powerpoint on exsisting texts
Powerpoint on exsisting textsPowerpoint on exsisting texts
Powerpoint on exsisting textsJessicaMarsden
 
«Небесный капитан и мир будущего»
«Небесный капитан и мир будущего»«Небесный капитан и мир будущего»
«Небесный капитан и мир будущего»Paul Kolodyazhny
 
GI2010 symposium-fencik (+kliment+tuchyna)
GI2010 symposium-fencik (+kliment+tuchyna)GI2010 symposium-fencik (+kliment+tuchyna)
GI2010 symposium-fencik (+kliment+tuchyna)IGN Vorstand
 
Hr business-process-outsourcing
Hr business-process-outsourcingHr business-process-outsourcing
Hr business-process-outsourcingNathan Gazzard
 
Online+: A standards-based approach to hybrid learning
Online+: A standards-based approach to hybrid learningOnline+: A standards-based approach to hybrid learning
Online+: A standards-based approach to hybrid learningHeather Zink
 

Viewers also liked (20)

Adp the big picture
Adp the big pictureAdp the big picture
Adp the big picture
 
Listening
ListeningListening
Listening
 
خاص عشان الموقع
خاص عشان الموقعخاص عشان الموقع
خاص عشان الموقع
 
BIA/Kelsey 2014 Picks and Predictions
BIA/Kelsey 2014 Picks and PredictionsBIA/Kelsey 2014 Picks and Predictions
BIA/Kelsey 2014 Picks and Predictions
 
GI2015 ppt hoffmann_address_intro
GI2015 ppt hoffmann_address_introGI2015 ppt hoffmann_address_intro
GI2015 ppt hoffmann_address_intro
 
Css tutorial
Css tutorialCss tutorial
Css tutorial
 
GI2014 ppt sredl+charvat layman – publish your data yourself
GI2014 ppt sredl+charvat layman – publish your data yourselfGI2014 ppt sredl+charvat layman – publish your data yourself
GI2014 ppt sredl+charvat layman – publish your data yourself
 
GI2010 symposium-longhorn (longhorn keynote-presentation_14_may)
GI2010 symposium-longhorn (longhorn keynote-presentation_14_may)GI2010 symposium-longhorn (longhorn keynote-presentation_14_may)
GI2010 symposium-longhorn (longhorn keynote-presentation_14_may)
 
Media techs 4
Media techs 4Media techs 4
Media techs 4
 
Lean spagettidiagram
Lean spagettidiagramLean spagettidiagram
Lean spagettidiagram
 
Proposal Ideas and Research
Proposal Ideas and ResearchProposal Ideas and Research
Proposal Ideas and Research
 
GI2013 ppt mildorf+team_pprd_erra
GI2013 ppt mildorf+team_pprd_erraGI2013 ppt mildorf+team_pprd_erra
GI2013 ppt mildorf+team_pprd_erra
 
Monografia Stragiudiziale Slacc
Monografia Stragiudiziale SlaccMonografia Stragiudiziale Slacc
Monografia Stragiudiziale Slacc
 
The big picture
The big pictureThe big picture
The big picture
 
Swt qt ese2010
Swt qt ese2010Swt qt ese2010
Swt qt ese2010
 
Powerpoint on exsisting texts
Powerpoint on exsisting textsPowerpoint on exsisting texts
Powerpoint on exsisting texts
 
«Небесный капитан и мир будущего»
«Небесный капитан и мир будущего»«Небесный капитан и мир будущего»
«Небесный капитан и мир будущего»
 
GI2010 symposium-fencik (+kliment+tuchyna)
GI2010 symposium-fencik (+kliment+tuchyna)GI2010 symposium-fencik (+kliment+tuchyna)
GI2010 symposium-fencik (+kliment+tuchyna)
 
Hr business-process-outsourcing
Hr business-process-outsourcingHr business-process-outsourcing
Hr business-process-outsourcing
 
Online+: A standards-based approach to hybrid learning
Online+: A standards-based approach to hybrid learningOnline+: A standards-based approach to hybrid learning
Online+: A standards-based approach to hybrid learning
 

Similar to Riena onrap econ-2011

Storage Developer Conference - 09/19/2012
Storage Developer Conference - 09/19/2012Storage Developer Conference - 09/19/2012
Storage Developer Conference - 09/19/2012Ceph Community
 
Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014André Rømcke
 
JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers Rafael Benevides
 
Kubernetes for Java Developers
 Kubernetes for Java Developers Kubernetes for Java Developers
Kubernetes for Java DevelopersRed Hat Developers
 
Rich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationRich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationNicko Borodachuk
 
Eclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationEclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationDietmar Schmidt
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conferencedianacheng
 
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 applicationsGunnar 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 2010Gunnar Wagenknecht
 
Web sphere administration
Web sphere administrationWeb sphere administration
Web sphere administrationvenkatcgnm
 
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.tdc-globalcode
 
ServerTemplate™ Deep Dive: Configuration for Multi-Cloud Environments
ServerTemplate™ Deep Dive: Configuration for Multi-Cloud EnvironmentsServerTemplate™ Deep Dive: Configuration for Multi-Cloud Environments
ServerTemplate™ Deep Dive: Configuration for Multi-Cloud EnvironmentsRightScale
 
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, ParisOW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, ParisOW2
 
Integration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud FoundryIntegration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud FoundryJoshua Long
 
EclipseCon 08 - Agile RCP
EclipseCon 08 - Agile RCPEclipseCon 08 - Agile RCP
EclipseCon 08 - Agile RCPHeiko Seeberger
 
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanPlugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanRack Lin
 

Similar to Riena onrap econ-2011 (20)

Project Zero JavaOne 2008
Project Zero JavaOne 2008Project Zero JavaOne 2008
Project Zero JavaOne 2008
 
Storage Developer Conference - 09/19/2012
Storage Developer Conference - 09/19/2012Storage Developer Conference - 09/19/2012
Storage Developer Conference - 09/19/2012
 
Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Project Zero Php Quebec
Project Zero Php QuebecProject Zero Php Quebec
Project Zero Php Quebec
 
JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers
 
Kubernetes for Java Developers
 Kubernetes for Java Developers Kubernetes for Java Developers
Kubernetes for Java Developers
 
Rich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationRich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentation
 
Eclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationEclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process Orchestration
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conference
 
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
 
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
 
Web sphere administration
Web sphere administrationWeb sphere administration
Web sphere administration
 
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
TDC2018FLN | Trilha Containers - Kubernetes para usuarios Docker.
 
ServerTemplate™ Deep Dive: Configuration for Multi-Cloud Environments
ServerTemplate™ Deep Dive: Configuration for Multi-Cloud EnvironmentsServerTemplate™ Deep Dive: Configuration for Multi-Cloud Environments
ServerTemplate™ Deep Dive: Configuration for Multi-Cloud Environments
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, ParisOW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
OW2 JOnAS Use CAse, OW2con11, Nov 24-25, Paris
 
Integration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud FoundryIntegration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud Foundry
 
EclipseCon 08 - Agile RCP
EclipseCon 08 - Agile RCPEclipseCon 08 - Agile RCP
EclipseCon 08 - Agile RCP
 
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanPlugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
 

Recently uploaded

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Recently uploaded (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Riena onrap econ-2011

  • 1. 1 Riena/RCP Applications in the Web using RAP Christian Campo EclipseCon 2011 – March 22nd Confidential | Date | Other Information, if necessary März 23, 2011 © 2002 IBM Corporation Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0
  • 2. What is Riena again ? §  RCP based Framework §  Client / Server Applications §  Remote OSGi Service Support §  End-user focused Navigation Concept §  Promotes the separation of View and ViewController Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 2
  • 3. End-user focused Navigation Concept ? Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 3
  • 4. RCP started as the Eclipse IDE Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 4
  • 5. RCP – Apps Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 5
  • 6. UI Concepts used in Riena Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 6
  • 7. UI Concepts for Views (=Workarea) •  Model •  Data modeled in POJO or JavaBeans •  View •  Widgets •  Layout •  Colors, Fonts •  Controller •  ActionListener, SelectionListener, DoubleClickListener •  Databinding Calls ActionListener, SelectionListener, DoubleClickListener •  use of Services (DI ?, OSGi Services) Databinding Calls •  use of Services (DI ?, OSGi Services) Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 7
  • 8. Many implementation of the same concept Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 8
  • 9. Riena is also ... §  Equinox Security Support for Client / Server Environment §  Aimed at large Applications §  Avoid Boilerplate Code §  Make reoccurring tasks simple §  Manage the overall UI structure of the application §  Promotes the use of Dependency Injection for Services and Extensions using Annotations and API Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 9
  • 10. What is RAP again ? §  RCP, JFace and Workbench for Webapplications §  Goals §  Any RCP App can be run in a Browser §  Single-sourcing (same source for desktop and web) §  By default a desktop client with a browser look §  Themeable §  API to convert Singletons into Session-Singletons Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 10
  • 11. What is RAP again ? Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 11
  • 12. Bring Riena and RAP together Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 12
  • 13. Scalability – RCP/Riena Riena Server Browser Browser remote Service Calls Browser stateless Services RCP/Riena Browser Client •  one Session per JVM •  many worker threads •  many RCP Riena Clients •  stateless Services •  maintains Client state •  calls can take several seconds Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 13
  • 14. Scalability – RCP/Riena + RAP RAP Server Riena Server Browser Browser Browser Session stateless Services Browser Session Browser Session Session Session •  many Browser Clients •  one Session per User •  many worker threads •  short and quick calls •  stateless Services •  stateful •  calls can take several •  maintains Client state seconds •  runs RCP Client code Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 14
  • 15. Moving Client Code to the Webcontainer §  Identify all Singletons §  Some are REAL Singletons (ImageCache) §  Some need to become SessionSingletons §  Create Fragments for RCP/RAP specific code §  Create Facades to call one of the specific impl. at runtime §  Local (Client) OSGi Services §  should not maintain state §  should be reentrant §  If you are NOT on the UI Thread, its hard to get the correct Display instance i.e. in Jobs. (one Display instance per user) §  The GOAL is to SingleSource ! (one source for RCP and RAP) Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 15
  • 16. How to convert Singletons into SessionSingletons RCP RAP public MySingleton { public MySingleton extends SessionSingletonBase { private static MySingleton instance = new MySingleton(); private static MySingleton instance; public static MySingleton getInstance() { return instance; public static MySingleton getInstance() { } return (MySingleton)super.getInstance(MySingleton.class); } } } public MySingleton { Riena private static SingletonProvider<MySingleton> ME = new SessionSingletonProvider<MySingleton>(MySingleton.class); public static MySingleton getInstance() { return ME.getInstance(MySingleton.class); } } Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 16
  • 17. Creating Facades Riena // your code using the facades public class MyFacade { MyFacade.getInstance().getText(myTextField); •  Sometimes you need different code on RCP and RAP •  Use a facade to abstract that •  Put the platform specific codeinstance = FacadeFactory.getFacade(MyFacade.class); private static MyFacade in a fragment public static MyFacade getInstance() { return instance; } public abstract String getText(Text text); public class MyFacadeRAP extends MyFacade { } public String getText(Text text) { ...... public class MyFacadeRCP extends MyFacade { } } public String getText(Text text) { .... } } Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 17
  • 18. Moving Riena Client to a Webcontainer §  Session -> SessionSingleton §  NavigationTreeModel §  Workarea (managing the Views attached to Navigation Tree Leafs) §  Security (logged User, Permissions, Sessionid) Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 18
  • 19. One more thing.... Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 19
  • 20. UI Model Desktop -> Web Riena + RAP Client Riena Client Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 20
  • 21. Existing Web Application Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 21
  • 22. Bring the two together Menu Navigation Tree Subapplication Switcher Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 22
  • 23. ...even on the iPad thanks to RAP Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 23
  • 24. §  If you want to move your Desktop Client to Web §  Understand the problem areas §  You need to possibly refactor and rework some of your code §  SingleSourcing as much as possible §  Contact §  http://www.eclipse.org/riena §  http://wiki.eclipse.org/Riena_Project §  riena-dev@eclipse.org §  RT BoF TONIGHT(Tuesday) 8:30 pm Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0