SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Fabian Urban




                               >> SenchaCon 2011
                         Fabian Urban
                            FORTIS

             Using Ext JS with a
                Java Back-end




         © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      Ext JS / Sencha Touch with a Java
      back-end is a perfect combination

       Having a container has many advantages.

       Web applications must as run smoothly as
        desktop applications.

       Using better technologies means writing
        less error prone code.

       Theoretically I can do everything, and in
        practice it is as simple as in theory :-)

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      What is perfect???
                                                          application
                                        save                 runs
                                        time               smoothly
                 write
                 less
                 code
                                               Perfect!
                                                                  performance
                                                                   optimized
                                  minimize
                                   risk of
                                   writing
                                 error prone          easy
                                    code

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Having a container has many advantages
     No need to persist data across requests. Use different scopes.
     Better performance:
     No need to recreate instances for every request. No unnecessary
     database access.

      Client 1                   Request          Session         Application
      Request A                  Scoped Beans     Scoped          Scoped
                                                  Beans           Beans
      Client 1                   Request
      Request B                  Scoped Beans


      Client 2                   Request          Session
      Request A                  Scoped Beans     Scoped
                                                  Beans
      Client 2                   Request
      Request B                  Scoped Beans

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      If an application is declared to be
      final, then it has to be final
      Development Server
           Application

           database=DEV                                         Database
           user=foo                                               DEV
           password=bar


      Production Server


                                                                Database
                                                                  PROD


     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      … so we don’t have to update the
      configuration before every deployment
      Development Server
           Application                          MyDS
                                             database=DEV

           DataSource=MyDS
                                             user=foo           Database
                                             password=bar
                                                                  DEV



      Production Server

                                                MyDS
                                             database=PROD
                                             user=abc           Database
                                             password=def
                                                                  PROD


     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      The less we have to do
      the earlier it’s done
      Without Connection Pooling (open / close database connection for
      each request)




      With Connection Pooling




     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Having a container has many advantages
           Java Application Server (Development)
                                                     DataSource
              Application        DataSource: MyDs   Configuration


             No open / close database
             connection for each request.           Connection      Database
             Better Database performance
                                                     Pooling          Dev
             (No session overhead).


           Java Application Server (Prod)
                                                     DataSource
              Application        DataSource: MyDs   Configuration


             Deploy application without
             spending time on updating              Connection      Database
             login credentials
                                                     Pooling          Prod

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Web applications must run as smoothly
      as desktop applications
      Server-side Rendering




                                                              NETWORK   SERVER

      Client-side Rendering
                                                No rendering is done on the
                                                server side:
                                                less network traffic.
                                                Web applications run
                                                smoothly like desktop
                                                applications.


     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Using better technologies means
      writing less error prone code
       JAX-RS: Easy way to map HTTP requests to
           a class/method, using annotations.
       Jackson: Easy way to apply JSON
           marshalling/unmarshalling.    (http://
           jackson.codehaus.org/)
       CDI:
          Easy way to fire/observe events
           (loosely coupled).
          Easy way to apply interceptors (AOP).
          Easy way to write portable extensions
           (code reuse).

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Using better technologies means:
      writing less code
      @ApplicationScoped
      public class SomeApplicationScopedBean {

           private String fooText;

           public String getFooText() {   return fooText;   }

           public void setFooText(String fooText) {   this.fooText = fooText;    }
      }
      @SessionScoped
      public class SomeSessionScopedBean {
         @Inject
         private SomeApplicationScopedBean someApplicationScopedBean;

      We do not want to worry about {doing stuff like bean injection.
         public void doSomething()
      someApplicationScopedBean someApplicationScopedBean.getFooText();
              String fooText = = … // where do I get this from???
      Bean injection somethingautomatically when using the @Inject annotation.
              // do is done with fooText
         }
      }
      Thanks to CDI, we don‘t waste time writing unnecessary code.

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Java data transfer object (DTO)
      public class UserDto {

                 private String firstName;
                 private String lastName;
                 private Integer age;

                 public UserDto() {}

                 // getter and setter
      }


     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Marshalling and unmarshalling JSON
      data using Jackson is very easy
      ObjectMapper objectMapper = new ObjectMapper();
       UserDto fabian = new UserDto("Fabian", "Urban", 27);
       String json = objectMapper.writeValueAsString(fabian);
       > {"firstName":"Fabian","lastName":"Urban","age":27}

       UserDto youngFabian = objectMapper.readValue(
       "{"firstName":"Fabian", "lastName":"Urban“,
       "age":19}", UserDto.class);

       youngFabian.getAge();
       > 19


      OK, that‘s simple … but you do not really want to
      worry about writing that … do you?
     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Applying JAX-RS resources can be that
      simple
       @javax.ws.rs.ApplicationPath(“resources“)
       public class UserManagerApp extends javax.ws.rs.core.Application {
       }

      @Path(“user“)
      public class UserResource {

           @POST                                            Why spend time on
           @Path(“doSomething")                             writing complicated
           @Consumes(MediaType.APPLICATION_JSON)            code that does some
           @Produces(MediaType.APPLICATION_JSON)            routing and JSON
           public UserDto doSomething(UserDto user) {       marshalling/
                       // do something                      unmarshalling if
                                                            JAX-RS and Jackson
                       return user;                         can do that for
           }                                                you?
      }

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination

      Live Walkthrough


                       A Simple Chat Application Using
                         JAX-RS and Jackson on
                         the Server Side

                       and

                       Ext.Ajax.request on
                         the Client Side



     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Ext Direct libs for Java
       No standard lib but different
        implementations available:

              directjngine          http://code.google.com/p/
                  directjngine/
              extdirectspring           http://code.google.com/p/
                  extdirectspring/
              extdirect4java          http://code.google.com/p/
                  extdirect4java
              extdirectj-s2-plugin              http://code.google.com/
                  p/extdirectj-s2-plugin/
                 HQExtDirect http://bitbucket.org/cattus/
                  hqextdirect/


     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Enable Ext Direct on the Java back-
      end makes it even simpler
       public class UserManager {

            @ExtDirectAccess
            public UserDto doSomething(@Name(“user”) UserDto user) {
                 user.setAge(19);
                 return user;
            }
       }

       var userDto = {
           firstName: ‘Fabian’,
           lastName: ‘Urban’,
           age: 27
       };
       var namedArguments = { user: userDto };
       UserManager.doSomething(namedArguments, function(returnedUserDto) {
           Ext.Window.MessageBox.alert(‘Fabians real age’,
           returnedUserDto.age); // Fabians real age: 19
       });

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination

      Live Walkthrough


                       Simple Ext Direct Chat
                         Application Using
                         JAX-RS and Jackson on
                         the Server Side

                       and

                       Ext Direct
                         Technology on the
                         Client Side

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Less dependencies in the code makes
      maintaining code a lot easier
              We do not
              worry to               We do not want to
             care about             worry about writing         We do not want
                 JSON                 complex code to           to worry about
             marshalling             invoke methods on               JSON
                                      the server side           unmarshalling




                                                            But do
                                                                    w
          We do not                 Today we’ve
                                                            want t e then
        want to worry            learned that we do                o worr
        about routing            not really want to        about          y
        on the server               worry about
                                                                  which
                                                           method
                                                                  s
                                                          availa are
             side                     anything
                                                                 bl
                                                          server e on the
                                                                  side?
     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Less dependencies in the code makes
      maintaining code a lot easier
      public class FooController {
         @Inject
         private EventController eventController;

           public void handleFooEvent(@Observes FooEvent fooEvent) {
                // do something with event data
                BarEvent barEvent = new BarEvent();         @ClientEvent
                eventController.fireGlobalEvent(barEvent); public class FooEvent {
           }                                                   // properties,
      }                                                        // getters,
                                                               // setters
                                                            }


      var fooEvent = { /* some foo event properties */ };
      eventController.fireGlobalEvent(‘de.fit4ria.event.FooEvent', fooEvent);

      eventController.observes(‘de.fit4ria.event.BarEvent’, function(barEvent){
          // do something with barEvent data
      });

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination

      Live Walkthrough


                       The Event-based Version of the
                         Chat Application




     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Events vs. Ext Direct
      Event-based                             Service-based
                                              (Ext Direct)
       loosely coupled                       client needs to
        code                                    know the services

       perfectly                             perfectly
        integrates with                         integrates with
        CDI                                     Ext JS




     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      We can easily delegate to methods on
      the client side
      Client                                 Server
                                              public class FooManager {
                                                     public void doA() {…}
                                              }

      function doSomething() {                public class BarManager {
             FooManager.doA();                       public void doB() {…}
             BarManager.doB();                }
             XyzManager.doC();
                                              public class XyzManager{
             doClientSideAction();
                                                     public void doC() {…}
      }
                                              }

      function doClientSideAction() {
             // do something
      }

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      … or on the server side
      Client                                 Server
                                             public class SomeManager {
                                              @Inject
                                              private FooManager fooManager;

                                                 @Inject
                                                 private BarManager barManager;

                                                 @Inject
                                                 private XyzManager xyzManager;
      function doSomething() {
          SomeManager.doSomething();             public void doSomething() {
          doClientSideAction();                    fooManager.doA();
      }                                            barManager.doB();
                                                   xyzManager.doC();
      function doClientSideAction() {            }
             // do something                 }
      }

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      … or you don’t worry about delegation
     client or server … doesn‘t matter
                                                                                    Some
      eventController.fireGlobalEvent(“some.SomeEvent“);// client
                                                                                    Event
      eventController.fireGlobalEvent(new SomeEvent()); // server

     Server
      public class FooManager {
        public void handleSomeEvent(@Observes SomeEvent someEvent) { /* do A */ }
      }

      public class BarManager {
        public void handleSomeEvent(@Observes SomeEvent someEvent) { /* do B */ }
      }

      public class XyzManager {
        public void handleSomeEvent(@Observes SomeEvent someEvent) { /* do C */ }
      }



     Client
      eventController.observes(‘some.SomeEvent‘, function() {
          // do something
      });

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Ext JS / Sencha Touch with a Java back-end is a perfect combination
      Summary

       Technologies / specifications like
        JAX-RS, Jackson and CDI simplify the
        code.

       The enterprise Java standards not only
        support service-based, but also event-
        based applications. You have the choice!

       Ext JS / Sencha Touch with a Java back-
        end is a perfect combination!


     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11
Fabian Urban




      >> Contact
      Thank you for listening
      Contact:
      Fabian Urban
      fabian.urban@fortis-it.de
      www.fortis-it.de


      FORTIS IT-Service GmbH
      Duvenstedter Damm 72
      22397 Hamburg
      T: +49(0)40 607 699 22
      Altenburger Straße 9
      33699 Bielefeld
      T: +49(0)521 920 198 40




     Want to check examples of this talk?
     http://laboris.fortis-it.de/~urbanfbi/SenchaCon2011/ExtJSJavaHowto.pdf

     © FORTIS IT-SERVICES GMBH


Wednesday, November 2, 11

Weitere ähnliche Inhalte

Was ist angesagt?

9sept2009 concept electronics
9sept2009 concept electronics9sept2009 concept electronics
9sept2009 concept electronicsAgora Group
 
Novell Success Stories: Endpoint Management in High Tech and Professional Ser...
Novell Success Stories: Endpoint Management in High Tech and Professional Ser...Novell Success Stories: Endpoint Management in High Tech and Professional Ser...
Novell Success Stories: Endpoint Management in High Tech and Professional Ser...Novell
 
Novell Success Stories: Endpoint Management for Nonprofits
Novell Success Stories: Endpoint Management for NonprofitsNovell Success Stories: Endpoint Management for Nonprofits
Novell Success Stories: Endpoint Management for NonprofitsNovell
 
Windows and Linux Interopability
Windows and Linux InteropabilityWindows and Linux Interopability
Windows and Linux InteropabilityNovell
 
Novell Success Stories: Collaboration in Government
Novell Success Stories: Collaboration in GovernmentNovell Success Stories: Collaboration in Government
Novell Success Stories: Collaboration in GovernmentNovell
 
Novell Success Stories: Endpoint Management in Retail and Manufacturing
Novell Success Stories: Endpoint Management in Retail and ManufacturingNovell Success Stories: Endpoint Management in Retail and Manufacturing
Novell Success Stories: Endpoint Management in Retail and ManufacturingNovell
 
Novell Success Stories: Endpoint Management in Education
Novell Success Stories: Endpoint Management in EducationNovell Success Stories: Endpoint Management in Education
Novell Success Stories: Endpoint Management in EducationNovell
 
What an Enterprise Should Look for in a Cloud Provider
What an Enterprise Should Look for in a Cloud ProviderWhat an Enterprise Should Look for in a Cloud Provider
What an Enterprise Should Look for in a Cloud ProviderNovell
 
Nathan Winters What’s New And Cool In Ocs 2007 R2
Nathan Winters   What’s New And Cool In Ocs 2007 R2Nathan Winters   What’s New And Cool In Ocs 2007 R2
Nathan Winters What’s New And Cool In Ocs 2007 R2Nathan Winters
 
Next Generation UC Clients and Endpoints
Next Generation UC Clients and EndpointsNext Generation UC Clients and Endpoints
Next Generation UC Clients and EndpointsCisco Canada
 
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...Novell
 
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...Novell
 
Stairway to heaven webinar
Stairway to heaven webinarStairway to heaven webinar
Stairway to heaven webinarCloudBees
 
Novell Support Revealed! An Insider's Peek and Feedback Opportunity
Novell Support Revealed! An Insider's Peek and Feedback OpportunityNovell Support Revealed! An Insider's Peek and Feedback Opportunity
Novell Support Revealed! An Insider's Peek and Feedback OpportunityNovell
 
Client Virtualization
Client VirtualizationClient Virtualization
Client VirtualizationAmit Gatenyo
 
Protecting Linux Workloads with PlateSpin Disaster Recovery
Protecting Linux Workloads with PlateSpin Disaster RecoveryProtecting Linux Workloads with PlateSpin Disaster Recovery
Protecting Linux Workloads with PlateSpin Disaster RecoveryNovell
 
V c loudapi_coffeetalk__pimplaskar_may2010
V c loudapi_coffeetalk__pimplaskar_may2010V c loudapi_coffeetalk__pimplaskar_may2010
V c loudapi_coffeetalk__pimplaskar_may2010Pablo Roesch
 

Was ist angesagt? (19)

9sept2009 concept electronics
9sept2009 concept electronics9sept2009 concept electronics
9sept2009 concept electronics
 
Novell Success Stories: Endpoint Management in High Tech and Professional Ser...
Novell Success Stories: Endpoint Management in High Tech and Professional Ser...Novell Success Stories: Endpoint Management in High Tech and Professional Ser...
Novell Success Stories: Endpoint Management in High Tech and Professional Ser...
 
Novell Success Stories: Endpoint Management for Nonprofits
Novell Success Stories: Endpoint Management for NonprofitsNovell Success Stories: Endpoint Management for Nonprofits
Novell Success Stories: Endpoint Management for Nonprofits
 
Windows and Linux Interopability
Windows and Linux InteropabilityWindows and Linux Interopability
Windows and Linux Interopability
 
Novell Success Stories: Collaboration in Government
Novell Success Stories: Collaboration in GovernmentNovell Success Stories: Collaboration in Government
Novell Success Stories: Collaboration in Government
 
Novell Success Stories: Endpoint Management in Retail and Manufacturing
Novell Success Stories: Endpoint Management in Retail and ManufacturingNovell Success Stories: Endpoint Management in Retail and Manufacturing
Novell Success Stories: Endpoint Management in Retail and Manufacturing
 
Novell Success Stories: Endpoint Management in Education
Novell Success Stories: Endpoint Management in EducationNovell Success Stories: Endpoint Management in Education
Novell Success Stories: Endpoint Management in Education
 
What an Enterprise Should Look for in a Cloud Provider
What an Enterprise Should Look for in a Cloud ProviderWhat an Enterprise Should Look for in a Cloud Provider
What an Enterprise Should Look for in a Cloud Provider
 
Nathan Winters What’s New And Cool In Ocs 2007 R2
Nathan Winters   What’s New And Cool In Ocs 2007 R2Nathan Winters   What’s New And Cool In Ocs 2007 R2
Nathan Winters What’s New And Cool In Ocs 2007 R2
 
Next Generation UC Clients and Endpoints
Next Generation UC Clients and EndpointsNext Generation UC Clients and Endpoints
Next Generation UC Clients and Endpoints
 
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
 
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
 
Cisco Localisation Toolkit
Cisco Localisation ToolkitCisco Localisation Toolkit
Cisco Localisation Toolkit
 
Oracle VDI 3.3 Overview
Oracle VDI 3.3 OverviewOracle VDI 3.3 Overview
Oracle VDI 3.3 Overview
 
Stairway to heaven webinar
Stairway to heaven webinarStairway to heaven webinar
Stairway to heaven webinar
 
Novell Support Revealed! An Insider's Peek and Feedback Opportunity
Novell Support Revealed! An Insider's Peek and Feedback OpportunityNovell Support Revealed! An Insider's Peek and Feedback Opportunity
Novell Support Revealed! An Insider's Peek and Feedback Opportunity
 
Client Virtualization
Client VirtualizationClient Virtualization
Client Virtualization
 
Protecting Linux Workloads with PlateSpin Disaster Recovery
Protecting Linux Workloads with PlateSpin Disaster RecoveryProtecting Linux Workloads with PlateSpin Disaster Recovery
Protecting Linux Workloads with PlateSpin Disaster Recovery
 
V c loudapi_coffeetalk__pimplaskar_may2010
V c loudapi_coffeetalk__pimplaskar_may2010V c loudapi_coffeetalk__pimplaskar_may2010
V c loudapi_coffeetalk__pimplaskar_may2010
 

Ähnlich wie Java Server-side Breakout

Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloudAnand B Narasimhan
 
Viestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeViestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeSalcom Group
 
A Lap Around Silverlight 5
A Lap Around Silverlight 5A Lap Around Silverlight 5
A Lap Around Silverlight 5Frank La Vigne
 
Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013Salcom Group
 
100413_urapad_at_kyoto
100413_urapad_at_kyoto100413_urapad_at_kyoto
100413_urapad_at_kyotoKengo HAMASAKI
 
Securing Your Endpoints Using Novell ZENworks Endpoint Security Management
Securing Your Endpoints Using Novell ZENworks Endpoint Security ManagementSecuring Your Endpoints Using Novell ZENworks Endpoint Security Management
Securing Your Endpoints Using Novell ZENworks Endpoint Security ManagementNovell
 
Generated REST Gateways for Mobile Applications
Generated REST Gateways for Mobile ApplicationsGenerated REST Gateways for Mobile Applications
Generated REST Gateways for Mobile ApplicationsWolfgang Frank
 
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Anton Arhipov
 
Virtualization case study
Virtualization case studyVirtualization case study
Virtualization case studyMirza Adil
 
Thinkfree Office Live Introduction Material En
Thinkfree Office Live   Introduction Material EnThinkfree Office Live   Introduction Material En
Thinkfree Office Live Introduction Material EnBenedict Ji
 
Distributed Shared Memory on Ericsson Labs
Distributed Shared Memory on Ericsson LabsDistributed Shared Memory on Ericsson Labs
Distributed Shared Memory on Ericsson LabsEricsson Labs
 
Team-Based Approach to Deploying VDI in Learning Environments
Team-Based Approach to Deploying VDI in Learning EnvironmentsTeam-Based Approach to Deploying VDI in Learning Environments
Team-Based Approach to Deploying VDI in Learning EnvironmentsJeremy Anderson
 
What's new in Citrix xen Desktop
What's new in Citrix xen DesktopWhat's new in Citrix xen Desktop
What's new in Citrix xen DesktopDigicomp Academy AG
 
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011grandyho
 

Ähnlich wie Java Server-side Breakout (20)

Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloud
 
Viestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeViestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / Exchange
 
A Lap Around Silverlight 5
A Lap Around Silverlight 5A Lap Around Silverlight 5
A Lap Around Silverlight 5
 
Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013
 
100413_urapad_at_kyoto
100413_urapad_at_kyoto100413_urapad_at_kyoto
100413_urapad_at_kyoto
 
Securing Your Endpoints Using Novell ZENworks Endpoint Security Management
Securing Your Endpoints Using Novell ZENworks Endpoint Security ManagementSecuring Your Endpoints Using Novell ZENworks Endpoint Security Management
Securing Your Endpoints Using Novell ZENworks Endpoint Security Management
 
Exchange 2013 ABC's: Architecture, Best Practices and Client Access
Exchange 2013 ABC's: Architecture, Best Practices and Client AccessExchange 2013 ABC's: Architecture, Best Practices and Client Access
Exchange 2013 ABC's: Architecture, Best Practices and Client Access
 
Roger boesch news xd_xa_nov (1)
Roger boesch news xd_xa_nov (1)Roger boesch news xd_xa_nov (1)
Roger boesch news xd_xa_nov (1)
 
Generated REST Gateways for Mobile Applications
Generated REST Gateways for Mobile ApplicationsGenerated REST Gateways for Mobile Applications
Generated REST Gateways for Mobile Applications
 
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
 
Virtualization case study
Virtualization case studyVirtualization case study
Virtualization case study
 
Thinkfree Office Live Introduction Material En
Thinkfree Office Live   Introduction Material EnThinkfree Office Live   Introduction Material En
Thinkfree Office Live Introduction Material En
 
Distributed Shared Memory on Ericsson Labs
Distributed Shared Memory on Ericsson LabsDistributed Shared Memory on Ericsson Labs
Distributed Shared Memory on Ericsson Labs
 
01 introduction
01 introduction01 introduction
01 introduction
 
Flex User Group breton
Flex User Group bretonFlex User Group breton
Flex User Group breton
 
Empower Employee to Work Anyplace, Amytime
Empower Employee to Work Anyplace, AmytimeEmpower Employee to Work Anyplace, Amytime
Empower Employee to Work Anyplace, Amytime
 
Team-Based Approach to Deploying VDI in Learning Environments
Team-Based Approach to Deploying VDI in Learning EnvironmentsTeam-Based Approach to Deploying VDI in Learning Environments
Team-Based Approach to Deploying VDI in Learning Environments
 
What's new in Citrix xen Desktop
What's new in Citrix xen DesktopWhat's new in Citrix xen Desktop
What's new in Citrix xen Desktop
 
Lync 2013: Architecture & Administration
Lync 2013: Architecture & AdministrationLync 2013: Architecture & Administration
Lync 2013: Architecture & Administration
 
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
 

Mehr von Sencha

Breathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web ComponentsBreathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web ComponentsSencha
 
Ext JS 6.6 Highlights
Ext JS 6.6 HighlightsExt JS 6.6 Highlights
Ext JS 6.6 HighlightsSencha
 
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...Sencha
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha
 
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha
 
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and ToolingSencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and ToolingSencha
 
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App Sencha
 
Sencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop FirstSencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop FirstSencha
 
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and BeyondSencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and BeyondSencha
 
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data GridLeveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data GridSencha
 
Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportSencha
 
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React AppsIntroducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React AppsSencha
 
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark BrocatoSenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark BrocatoSencha
 
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...Sencha
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...Sencha
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSencha
 
Ext JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell SimeonsExt JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell SimeonsSencha
 
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...Sencha
 

Mehr von Sencha (20)

Breathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web ComponentsBreathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web Components
 
Ext JS 6.6 Highlights
Ext JS 6.6 HighlightsExt JS 6.6 Highlights
Ext JS 6.6 Highlights
 
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha Test
 
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
 
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and ToolingSencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
 
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
Sencha Roadshow 2017: Sencha Best Practices: Coworkee App
 
Sencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop FirstSencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop First
 
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and BeyondSencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
 
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data GridLeveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
 
Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research Report
 
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React AppsIntroducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
 
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark BrocatoSenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
 
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
 
Ext JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell SimeonsExt JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell Simeons
 
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
 

Kürzlich hochgeladen

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Kürzlich hochgeladen (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Java Server-side Breakout

  • 1. Fabian Urban >> SenchaCon 2011 Fabian Urban FORTIS Using Ext JS with a Java Back-end © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 2. Fabian Urban Ext JS / Sencha Touch with a Java back-end is a perfect combination  Having a container has many advantages.  Web applications must as run smoothly as desktop applications.  Using better technologies means writing less error prone code.  Theoretically I can do everything, and in practice it is as simple as in theory :-) © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 3. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination What is perfect??? application save runs time smoothly write less code Perfect! performance optimized minimize risk of writing error prone easy code © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 4. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Having a container has many advantages No need to persist data across requests. Use different scopes. Better performance: No need to recreate instances for every request. No unnecessary database access. Client 1 Request Session Application Request A Scoped Beans Scoped Scoped Beans Beans Client 1 Request Request B Scoped Beans Client 2 Request Session Request A Scoped Beans Scoped Beans Client 2 Request Request B Scoped Beans © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 5. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination If an application is declared to be final, then it has to be final Development Server Application database=DEV Database user=foo DEV password=bar Production Server Database PROD © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 6. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination … so we don’t have to update the configuration before every deployment Development Server Application MyDS database=DEV DataSource=MyDS user=foo Database password=bar DEV Production Server MyDS database=PROD user=abc Database password=def PROD © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 7. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination The less we have to do the earlier it’s done Without Connection Pooling (open / close database connection for each request) With Connection Pooling © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 8. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Having a container has many advantages Java Application Server (Development) DataSource Application DataSource: MyDs Configuration No open / close database connection for each request. Connection Database Better Database performance Pooling Dev (No session overhead). Java Application Server (Prod) DataSource Application DataSource: MyDs Configuration Deploy application without spending time on updating Connection Database login credentials Pooling Prod © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 9. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Web applications must run as smoothly as desktop applications Server-side Rendering NETWORK SERVER Client-side Rendering No rendering is done on the server side: less network traffic. Web applications run smoothly like desktop applications. © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 10. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Using better technologies means writing less error prone code  JAX-RS: Easy way to map HTTP requests to a class/method, using annotations.  Jackson: Easy way to apply JSON marshalling/unmarshalling. (http:// jackson.codehaus.org/)  CDI:  Easy way to fire/observe events (loosely coupled).  Easy way to apply interceptors (AOP).  Easy way to write portable extensions (code reuse). © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 11. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Using better technologies means: writing less code @ApplicationScoped public class SomeApplicationScopedBean { private String fooText; public String getFooText() { return fooText; } public void setFooText(String fooText) { this.fooText = fooText; } } @SessionScoped public class SomeSessionScopedBean { @Inject private SomeApplicationScopedBean someApplicationScopedBean; We do not want to worry about {doing stuff like bean injection. public void doSomething() someApplicationScopedBean someApplicationScopedBean.getFooText(); String fooText = = … // where do I get this from??? Bean injection somethingautomatically when using the @Inject annotation. // do is done with fooText } } Thanks to CDI, we don‘t waste time writing unnecessary code. © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 12. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Java data transfer object (DTO) public class UserDto { private String firstName; private String lastName; private Integer age; public UserDto() {} // getter and setter } © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 13. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Marshalling and unmarshalling JSON data using Jackson is very easy ObjectMapper objectMapper = new ObjectMapper(); UserDto fabian = new UserDto("Fabian", "Urban", 27); String json = objectMapper.writeValueAsString(fabian); > {"firstName":"Fabian","lastName":"Urban","age":27} UserDto youngFabian = objectMapper.readValue( "{"firstName":"Fabian", "lastName":"Urban“, "age":19}", UserDto.class); youngFabian.getAge(); > 19 OK, that‘s simple … but you do not really want to worry about writing that … do you? © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 14. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Applying JAX-RS resources can be that simple @javax.ws.rs.ApplicationPath(“resources“) public class UserManagerApp extends javax.ws.rs.core.Application { } @Path(“user“) public class UserResource { @POST Why spend time on @Path(“doSomething") writing complicated @Consumes(MediaType.APPLICATION_JSON) code that does some @Produces(MediaType.APPLICATION_JSON) routing and JSON public UserDto doSomething(UserDto user) { marshalling/ // do something unmarshalling if JAX-RS and Jackson return user; can do that for } you? } © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 15. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Live Walkthrough A Simple Chat Application Using JAX-RS and Jackson on the Server Side and Ext.Ajax.request on the Client Side © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 16. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Ext Direct libs for Java  No standard lib but different implementations available:  directjngine http://code.google.com/p/ directjngine/  extdirectspring http://code.google.com/p/ extdirectspring/  extdirect4java http://code.google.com/p/ extdirect4java  extdirectj-s2-plugin http://code.google.com/ p/extdirectj-s2-plugin/  HQExtDirect http://bitbucket.org/cattus/ hqextdirect/ © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 17. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Enable Ext Direct on the Java back- end makes it even simpler public class UserManager { @ExtDirectAccess public UserDto doSomething(@Name(“user”) UserDto user) { user.setAge(19); return user; } } var userDto = { firstName: ‘Fabian’, lastName: ‘Urban’, age: 27 }; var namedArguments = { user: userDto }; UserManager.doSomething(namedArguments, function(returnedUserDto) { Ext.Window.MessageBox.alert(‘Fabians real age’, returnedUserDto.age); // Fabians real age: 19 }); © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 18. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Live Walkthrough Simple Ext Direct Chat Application Using JAX-RS and Jackson on the Server Side and Ext Direct Technology on the Client Side © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 19. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Less dependencies in the code makes maintaining code a lot easier We do not worry to We do not want to care about worry about writing We do not want JSON complex code to to worry about marshalling invoke methods on JSON the server side unmarshalling But do w We do not Today we’ve want t e then want to worry learned that we do o worr about routing not really want to about y on the server worry about which method s availa are side anything bl server e on the side? © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 20. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Less dependencies in the code makes maintaining code a lot easier public class FooController { @Inject private EventController eventController; public void handleFooEvent(@Observes FooEvent fooEvent) { // do something with event data BarEvent barEvent = new BarEvent(); @ClientEvent eventController.fireGlobalEvent(barEvent); public class FooEvent { } // properties, } // getters, // setters } var fooEvent = { /* some foo event properties */ }; eventController.fireGlobalEvent(‘de.fit4ria.event.FooEvent', fooEvent); eventController.observes(‘de.fit4ria.event.BarEvent’, function(barEvent){ // do something with barEvent data }); © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 21. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Live Walkthrough The Event-based Version of the Chat Application © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 22. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Events vs. Ext Direct Event-based Service-based (Ext Direct)  loosely coupled client needs to code know the services  perfectly perfectly integrates with integrates with CDI Ext JS © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 23. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination We can easily delegate to methods on the client side Client Server public class FooManager { public void doA() {…} } function doSomething() { public class BarManager { FooManager.doA(); public void doB() {…} BarManager.doB(); } XyzManager.doC(); public class XyzManager{ doClientSideAction(); public void doC() {…} } } function doClientSideAction() { // do something } © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 24. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination … or on the server side Client Server public class SomeManager { @Inject private FooManager fooManager; @Inject private BarManager barManager; @Inject private XyzManager xyzManager; function doSomething() { SomeManager.doSomething(); public void doSomething() { doClientSideAction(); fooManager.doA(); } barManager.doB(); xyzManager.doC(); function doClientSideAction() { } // do something } } © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 25. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination … or you don’t worry about delegation client or server … doesn‘t matter Some eventController.fireGlobalEvent(“some.SomeEvent“);// client Event eventController.fireGlobalEvent(new SomeEvent()); // server Server public class FooManager { public void handleSomeEvent(@Observes SomeEvent someEvent) { /* do A */ } } public class BarManager { public void handleSomeEvent(@Observes SomeEvent someEvent) { /* do B */ } } public class XyzManager { public void handleSomeEvent(@Observes SomeEvent someEvent) { /* do C */ } } Client eventController.observes(‘some.SomeEvent‘, function() { // do something }); © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 26. Fabian Urban >> Ext JS / Sencha Touch with a Java back-end is a perfect combination Summary  Technologies / specifications like JAX-RS, Jackson and CDI simplify the code.  The enterprise Java standards not only support service-based, but also event- based applications. You have the choice!  Ext JS / Sencha Touch with a Java back- end is a perfect combination! © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11
  • 27. Fabian Urban >> Contact Thank you for listening Contact: Fabian Urban fabian.urban@fortis-it.de www.fortis-it.de FORTIS IT-Service GmbH Duvenstedter Damm 72 22397 Hamburg T: +49(0)40 607 699 22 Altenburger Straße 9 33699 Bielefeld T: +49(0)521 920 198 40 Want to check examples of this talk? http://laboris.fortis-it.de/~urbanfbi/SenchaCon2011/ExtJSJavaHowto.pdf © FORTIS IT-SERVICES GMBH Wednesday, November 2, 11