SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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)
 

Andere mochten auch

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

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

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
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
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
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 

Kürzlich hochgeladen (20)

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...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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 ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
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...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 

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