SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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)
 

Destaque

خاص عشان الموقع
خاص عشان الموقعخاص عشان الموقع
خاص عشان الموقع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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Último

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
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
 
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
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
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
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 

Último (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
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
 
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...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
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
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 

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