SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Alper TÜRKYILMAZ
Outline
• JSFI
• Internal Structure
    – XML
    – Custom Widgets
•   Runtime Architecture
•   IDE
•   “JSFI on Air”
•   What’s next?
JSFI
A Flexible Desktop Application for any Middle or
              Large Scale System
   – Single collaborative desktop application
   – User friendly graphical interface (Rich content)
   – Easy & fast development / integration
   – Rapid Deployment


• Swing Runtime Engine   • Swing embedded RCP Runtime Engine   • RCP Runtime Engine
• Swing Based IDE        • Swing Based IDE                     • Eclipse based IDE


                                    Evolution
JSFI
                  Designtime                                    Runtime


                                                          JSFI Rendering
                DnD IDE                                      Engine
Custom JSFI                           XML Resource
  Widgets                                (BiML)             over RCP



      Visual       Invocation                   Service      Event
                                                                                 Session
       GEF         Flow GEF     XML Editor       Based      Handling Rule Engine
                                                                                 Mngmnt.
      Editor         Editor                     Comm.      Mechanism
                                                           SWT Event
               Eclipse e4 platform               OSGI
                                                            Handling
                                                           Mechanism

                                                           Eclipse e4 platform
Look Through JSFI
Look Through IDE
.biml Structure
• BiML : Business Interaction Markup Language
  – Visual Interface
    • All visual component definitions
  – Functional Interface
    •   Variable definitions
    •   Event defintions
    •   Invocation definitions
    •   Service definitions
    •   Rule definitions
    •   Message definitions
Custom Widgets
•   UIDialogButton
•   UIInquiryButton
•   UIFlashChart (ofc2)
•   UITable (KTable)
    – Checkbox, Combo, DateField, FileChooser, Dialog
    – MaskeditField, NumericField, TextField, TimeField
•   UICombo &UIList
•   UIMaskTextField (Nebula Project)
•   UINumericField (Nebula Project)
•   UIDateField (Nebula Project)
Xlet
• Derived form of org.eclipse.ui.part.ViewPart
• Linkage between Eclipse Platform and JSFI
  Engine
• Compose of:
  – a Context
  – an XletPart
• Xlet Types:
  – ConcreteXlet (Java)
  – DynamicXlet (XML)
Xlet Parts
•   Blocking/Non-blocking Rendering
•   Specialized event types
•   Registers/deregisters services
•   Reusable
•   Types:
    –   XletPage
    –   XletPageStack
    –   XletRegion
    –   XletDialog
    –   XletInquiry
Context
• Provides data for
  – Rendering
  – Event handling
• Consists of:
  – Invoker Manager (per Xlet)
  – ReferenceStore (per XletPart)
  – Focus Traverse Manager (per XletPart)
Event Handling Mechanism

   Xlet    Xlet       Xlet

  Event   Event      Event
  Queue   Queue      Queue




          SWT
          Event
          Queue
Invocation & Execution
• Invocation : definition ~ model

• Invoker : execution

• InvokerManager : coordination

• Callback : asynchronisation

• Fault Handling
Invocation Types
•   BeanInvocation
•   Reference Invocation
•   ListofInvocation
•   SynchOperationInvocation
•   AsynchOperationInvocation
•   TopicRegistration
•   TopicDeregistration
•   ConstantValueInvocation
•   LoopInvocation
•   PageInvocation
•   CallbackInvocation
Bean Invocation
• Bean is
  – A visual component
  – A variable
• Specialized Beans:
  – Page
  – “this”
  – Util
  – Session
Operation Invocation Steps
• processInput
  – Consumer Input processing....
• execute
  – Provider I/O processing ....
  – Remote provider service execution...
  – Local invocations...
• processOutput
  – Consumer output processing...
• All phases can be invoked in different
  environment..
Operation Invocation Persp.
• Perspective I
   – Synch Operation
   – Asynch Operation
   – Topic Operation
• Perspective II
   – Heterogenous Operation
   – Homogenous Operation
• Perspective III
   – GUI Blocking Operation
   – Background Operation
Operation Invocation
                                Process Input          Process Input
                               Process Output         Process Output


                 SWING                    EXECUTE                      SWT
                                          Normalized Region


Homogenous Operation Call
All types




Heterogenous Operation Call
Topic Operation




 Multiplexing Operation Call
 Topic Publisher




                                                              SWT
                                                         Display
Synch Operation Invocation
                                                                       PROVIDER
              CONSUMER
                                                     <services>
<refi n="REGISTERCUSTOMERINFO">                      <service n=“CALLCENTER”>
                                                               n=“ CALLCENTER”
   <soi t="CALLCENTER" o="HANGUP">                      <synchoperation o="HANGUP">
                                                                           o="HANGUP">
      <il>                                                 <il>
          <i s="TXT_CUSTOMERNO" k="CUSTOMERNO"/>              <i t="GIRIS.MUSTERINO" k="CUSTOMERNO"/>
          <i s=“T" k="PTYPE3"/>
             s=“                                              <i t="GIRIS.TIP" k="PTYPE3"/>
          <i s=“TXT_AD" k="CUSTOMERNAME"/>
                 TXT_AD"                                      <i t="AD" k="CUSTOMERNAME"/>
          <i s=“TXT_SOYAD" k="CUSTOMERSURNAME"/>
                 TXT_SOYAD"                                   <i t="SOYAD" k="CUSTOMERSURNAME"/>
      </il>                                                </il>
                                                           </i
      <ol>
        ol>                                                <refi n=“CONCATNAME”/>
          <o t="GIRIS.MUSTERINO" k="CUSTOMERNO"/>          <ol>
          <o t="GIRIS.TIP" k="PTYPE3"/>                           <o s="TXT_CUSTOMERNO" k="CUSTOMERNO"/>
          <o t="AD" k="CUSTOMERNAME"/>                            <o s=“T" k="PTYPE3"/>
                                                                      s=“
          <o t="SOYAD" k="CUSTOMERSURNAME"/>                      <o s=“TXT_AD" k="CUSTOMERNAME"/>
                                                                          TXT_AD"
      </ol>
      </ol>                                                       <o s=“TXT_SOYAD" k="CUSTOMERSURNAME"/>
                                                                          TXT_SOYAD"
   </soi>
   </soi>                                                  </ol>
</refi>                                                   </synchoperation>
                                                     </service>
                                                     </services>




        Input  GET                                                  Input  SET
        Output  SET                           Operation             Output  GET
Asynch Operation Invocation
              CONSUMER                                                  PROVIDER
                                                          <services>
                                                             <asynchoperation o="HANGUP">
                                                                                o="HANGUP">
<refi ref="REGISTERCUSTOMERINFO">                               <il>
   <aoi t="CALLCENTER" o="HANGUP">                                 <i t="GIRIS.MUSTERINO" k="CUSTOMERNO"/>
      <il>                                                         <i t="GIRIS.TIP" k="PTYPE3"/>
         <i s="TXT_CUSTOMERNO" k="CUSTOMERNO"/>                    <i t="AD" k="CUSTOMERNAME"/>
         <i s=“T" k="PTYPE3"/>
             s=“                                                   <i t="SOYAD" k="CUSTOMERSURNAME"/>
         <i s=“TXT_AD" k="CUSTOMERNAME"/>
                 TXT_AD"                                        </il>
                                                                </i
         <i s=“TXT_SOYAD" k="CUSTOMERSURNAME"/>
                 TXT_SOYAD"                                     <refi n=“CONCATNAME”/>
      </il>                                                     <bi t="GIRIS.BT_DEVAM" o=“setEnabled">
      <onresponse>
      <onresponse>                                                    <value>true</value>
         <ol>
           ol>                                                  </bi>
             <o t="GIRIS.MUSTERINO" k="CUSTOMERNO"/>            <bi t="GIRIS1.MUSNO" o=“setText">
             <o t="GIRIS.TIP" k="PTYPE3"/>                         <bi t="GIRIS1.MUSTERINO“ o=“getText”/>
             <o t="AD" k="CUSTOMERNAME"/>                       </bi>
             <o t="SOYAD" k="CUSTOMERSURNAME"/>                 <onevent s="ACCOUNTLIST" type=“modify">
                                                                                           type=“
         </ol>
          </ol>                                                    <ol>
         <bi t="GIRIS.MUSNO" o=“setText">                             <o s="TXT_CUSTOMERNO" k="CUSTOMERNO"/>
             <bi t="GIRIS.MUSTERINO“ o=“getText”/>                    <o s=“T" k="PTYPE3"/>
                                                                          s=“
         </bi>                                                        <o s=“TXT_AD" k="CUSTOMERNAME"/>
                                                                              TXT_AD"
      </onresponse>
      </onresponse>                                                   <o s=“TXT_SOYAD" k="CUSTOMERSURNAME"/>
                                                                              TXT_SOYAD"
   </aoi>
   </aoi>                                                           </ol>
</refi>                                                         </onevent>
                                                              </ asynchoperation >

                                                          </services>



               Input  GET                                               Input  SET
               Output  SET                        Operation             Output  GET
Topic Registration
     CONSUMER- subscriber                                    PROVIDER - publisher
<refi n="REGISTERCUSTOMERINFO">
   <tor t="CALLCENTER" o="HANGUP">
   <tor
      <il/>
        il/>
      <ol>
        ol>
          <o t="TXT_CUSTOMERNOFROM" k="REGISTRATIONID"/>   <services>
      </ol>                                                   <topicoperation o="HANGUP">
                                                                                o="HANGUP">
      <onpublish>
        onpublish>                                               <onevent s="ACCOUNTLIST" type=“modify">
                                                                                            type=“
          <ol>
            ol>                                                     <il>
              <o t="GIRIS.MUSTERINO" k="CUSTOMERNO"/>                  <i s="TXT_CUSTOMERNO" k="CUSTOMERNO"/>
              <o t="GIRIS.TIP" k="PTYPE3"/>                            <i s=“TXTTYPE" k="PTYPE3"/>
                                                                           s=“
              <o t="AD" k="CUSTOMERNAME"/>                             <i s=“TXT_AD" k="CUSTOMERNAME"/>
                                                                               TXT_AD"
              <o t="SOYAD" k="CUSTOMERSURNAME"/>                       <i s=“TXT_SOYAD" k="CUSTOMERSURNAME"/>
                                                                               TXT_SOYAD"
          </ol>
          </ol>                                                      </il>
          <refi n=“CONCATNAME”/>                                 </onevent>
          <bi t="GIRIS.BT_DEVAM" o=“setEnabled">              </ topicoperation>
              <value>true</value>                          </services>
          </bi>
          <bi t="GIRIS.MUSNO" o=“setText">
              <bi t="GIRIS.MUSTERINO“ o=“getText”/>
          </bi>
      </onpublish>
      </onpublish>
   </tor>
   </tor>
</refi>


             Input  GET                                                Input  SET
             Output  SET                        Operation              Output  GET
                                                                  Map through keys...
                                                            Assign values between consumer
                                                                      & provider...
Rule Engine
• Rule Execution
  – a Rule definition
  – a Context


• Rule Types:
  – Global rules
  – Rules defined in XletParts
Service Communication
•   Collaborative Xlets
•   Well defined boundaries
•   Types:
    – Tangible Service (Java)
       • Authentication service etc.
    – Dynamic Service (XML)
       • Services Defined through XletParts
    – Proxy Service (Remote)
       • Services configured for external legacy sytems.
IDE
•   Extended from XWT
•   DnD XletPart creation
•   Flow based event definition
•   Flow based service (ReferenceInvocation) definition
•   Direct XML editing
•   Perspective design
•   Integrated with JSFI Runtime engine for
    preview
DEMO
“JSFI on Air”
• Credit Europe Bank (CEB) Call Center
  (Germany)
  – CTIToolbar Xlet
    • Service Communication, Xlets, Context.


  – CEB Core Banking Application
    • Service communication (Proxy, tangible)
Call Center
                          SWT XLET

                          SWT XLET
SWT XLET




                         SWING XLET
What’s next?
•   WS Integration
•   Printing API
•   Open-office Integration
•   BIRT integration
•   RAP integration for Web
Thank You

Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Symfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friendSymfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friend
Kirill Chebunin
 

Was ist angesagt? (17)

Ajax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
Ajax Applications with JSF 2 and new RichFaces 4 - HerbstcampusAjax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
Ajax Applications with JSF 2 and new RichFaces 4 - Herbstcampus
 
Symfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friendSymfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friend
 
OSGi Blueprint Services
OSGi Blueprint ServicesOSGi Blueprint Services
OSGi Blueprint Services
 
Code generation with javac plugin
Code generation with javac pluginCode generation with javac plugin
Code generation with javac plugin
 
HTML5 - Semantics, struture, and APIs of HTML Documents
HTML5 - Semantics, struture, and APIs of HTML DocumentsHTML5 - Semantics, struture, and APIs of HTML Documents
HTML5 - Semantics, struture, and APIs of HTML Documents
 
ql.io at NodePDX
ql.io at NodePDXql.io at NodePDX
ql.io at NodePDX
 
J2EE jsp_01
J2EE jsp_01J2EE jsp_01
J2EE jsp_01
 
Wt unit 4 server side technology-2
Wt unit 4 server side technology-2Wt unit 4 server side technology-2
Wt unit 4 server side technology-2
 
ngCore
ngCorengCore
ngCore
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web Application
 
Hands On With Rich Faces 4 - JavaOne 2010
Hands On With Rich Faces 4 - JavaOne 2010Hands On With Rich Faces 4 - JavaOne 2010
Hands On With Rich Faces 4 - JavaOne 2010
 
Practical Protocols with Associated Types
Practical Protocols with Associated TypesPractical Protocols with Associated Types
Practical Protocols with Associated Types
 
The Rails Way
The Rails WayThe Rails Way
The Rails Way
 
Angular 1 + es6
Angular 1 + es6Angular 1 + es6
Angular 1 + es6
 
Mobile Open Day: React Native: Crossplatform fast dive
Mobile Open Day: React Native: Crossplatform fast diveMobile Open Day: React Native: Crossplatform fast dive
Mobile Open Day: React Native: Crossplatform fast dive
 
Building scalable applications with angular js
Building scalable applications with angular jsBuilding scalable applications with angular js
Building scalable applications with angular js
 
AngularJS.part1
AngularJS.part1AngularJS.part1
AngularJS.part1
 

Andere mochten auch

Andere mochten auch (7)

Ikaruson Pc
Ikaruson PcIkaruson Pc
Ikaruson Pc
 
Ikarus
IkarusIkarus
Ikarus
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Ähnlich wie JSFI - Dynamic RCP Desktop Application

Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features
WSO2
 
Introducing the WSO2 Complex Event Processor
Introducing the WSO2 Complex Event ProcessorIntroducing the WSO2 Complex Event Processor
Introducing the WSO2 Complex Event Processor
WSO2
 
Servlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp objectServlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp object
ADITYADIXIT974283
 
Lifecycle Management of SOA Artifacts for WSO2 Products
Lifecycle Management of SOA Artifacts for WSO2 ProductsLifecycle Management of SOA Artifacts for WSO2 Products
Lifecycle Management of SOA Artifacts for WSO2 Products
WSO2
 
Lets have some fun with twilio open tok
Lets have some fun with   twilio open tokLets have some fun with   twilio open tok
Lets have some fun with twilio open tok
mirahman
 

Ähnlich wie JSFI - Dynamic RCP Desktop Application (20)

Global Scale ESB with Mule
Global Scale ESB with MuleGlobal Scale ESB with Mule
Global Scale ESB with Mule
 
Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features
 
Integrating SAP the Java EE Way - JBoss One Day talk 2012
Integrating SAP the Java EE Way - JBoss One Day talk 2012Integrating SAP the Java EE Way - JBoss One Day talk 2012
Integrating SAP the Java EE Way - JBoss One Day talk 2012
 
Introducing the WSO2 Complex Event Processor
Introducing the WSO2 Complex Event ProcessorIntroducing the WSO2 Complex Event Processor
Introducing the WSO2 Complex Event Processor
 
Angular Js Basics
Angular Js BasicsAngular Js Basics
Angular Js Basics
 
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular CodebasesITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
 
Rich Portlet Development in uPortal
Rich Portlet Development in uPortalRich Portlet Development in uPortal
Rich Portlet Development in uPortal
 
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
 
Foomo / Zugspitze Presentation
Foomo / Zugspitze PresentationFoomo / Zugspitze Presentation
Foomo / Zugspitze Presentation
 
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & Providers
DEVNET-1128	Cisco Intercloud Fabric NB Api's for Business & ProvidersDEVNET-1128	Cisco Intercloud Fabric NB Api's for Business & Providers
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & Providers
 
Symfony2 from the Trenches
Symfony2 from the TrenchesSymfony2 from the Trenches
Symfony2 from the Trenches
 
Re-Design with Elixir/OTP
Re-Design with Elixir/OTPRe-Design with Elixir/OTP
Re-Design with Elixir/OTP
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
 
Michiel Overeem (AFAS) - Enterprise software schaalbaar maken met Service Fab...
Michiel Overeem (AFAS) - Enterprise software schaalbaar maken met Service Fab...Michiel Overeem (AFAS) - Enterprise software schaalbaar maken met Service Fab...
Michiel Overeem (AFAS) - Enterprise software schaalbaar maken met Service Fab...
 
Servlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp objectServlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp object
 
Struts2 - 101
Struts2 - 101Struts2 - 101
Struts2 - 101
 
Lifecycle Management of SOA Artifacts for WSO2 Products
Lifecycle Management of SOA Artifacts for WSO2 ProductsLifecycle Management of SOA Artifacts for WSO2 Products
Lifecycle Management of SOA Artifacts for WSO2 Products
 
Lets have some fun with twilio open tok
Lets have some fun with   twilio open tokLets have some fun with   twilio open tok
Lets have some fun with twilio open tok
 
Profiling Mondrian MDX Requests in a Production Environment
Profiling Mondrian MDX Requests in a Production EnvironmentProfiling Mondrian MDX Requests in a Production Environment
Profiling Mondrian MDX Requests in a Production Environment
 

JSFI - Dynamic RCP Desktop Application

  • 2. Outline • JSFI • Internal Structure – XML – Custom Widgets • Runtime Architecture • IDE • “JSFI on Air” • What’s next?
  • 3. JSFI A Flexible Desktop Application for any Middle or Large Scale System – Single collaborative desktop application – User friendly graphical interface (Rich content) – Easy & fast development / integration – Rapid Deployment • Swing Runtime Engine • Swing embedded RCP Runtime Engine • RCP Runtime Engine • Swing Based IDE • Swing Based IDE • Eclipse based IDE Evolution
  • 4. JSFI Designtime Runtime JSFI Rendering DnD IDE Engine Custom JSFI XML Resource Widgets (BiML) over RCP Visual Invocation Service Event Session GEF Flow GEF XML Editor Based Handling Rule Engine Mngmnt. Editor Editor Comm. Mechanism SWT Event Eclipse e4 platform OSGI Handling Mechanism Eclipse e4 platform
  • 7. .biml Structure • BiML : Business Interaction Markup Language – Visual Interface • All visual component definitions – Functional Interface • Variable definitions • Event defintions • Invocation definitions • Service definitions • Rule definitions • Message definitions
  • 8. Custom Widgets • UIDialogButton • UIInquiryButton • UIFlashChart (ofc2) • UITable (KTable) – Checkbox, Combo, DateField, FileChooser, Dialog – MaskeditField, NumericField, TextField, TimeField • UICombo &UIList • UIMaskTextField (Nebula Project) • UINumericField (Nebula Project) • UIDateField (Nebula Project)
  • 9. Xlet • Derived form of org.eclipse.ui.part.ViewPart • Linkage between Eclipse Platform and JSFI Engine • Compose of: – a Context – an XletPart • Xlet Types: – ConcreteXlet (Java) – DynamicXlet (XML)
  • 10. Xlet Parts • Blocking/Non-blocking Rendering • Specialized event types • Registers/deregisters services • Reusable • Types: – XletPage – XletPageStack – XletRegion – XletDialog – XletInquiry
  • 11. Context • Provides data for – Rendering – Event handling • Consists of: – Invoker Manager (per Xlet) – ReferenceStore (per XletPart) – Focus Traverse Manager (per XletPart)
  • 12. Event Handling Mechanism Xlet Xlet Xlet Event Event Event Queue Queue Queue SWT Event Queue
  • 13. Invocation & Execution • Invocation : definition ~ model • Invoker : execution • InvokerManager : coordination • Callback : asynchronisation • Fault Handling
  • 14. Invocation Types • BeanInvocation • Reference Invocation • ListofInvocation • SynchOperationInvocation • AsynchOperationInvocation • TopicRegistration • TopicDeregistration • ConstantValueInvocation • LoopInvocation • PageInvocation • CallbackInvocation
  • 15. Bean Invocation • Bean is – A visual component – A variable • Specialized Beans: – Page – “this” – Util – Session
  • 16. Operation Invocation Steps • processInput – Consumer Input processing.... • execute – Provider I/O processing .... – Remote provider service execution... – Local invocations... • processOutput – Consumer output processing... • All phases can be invoked in different environment..
  • 17. Operation Invocation Persp. • Perspective I – Synch Operation – Asynch Operation – Topic Operation • Perspective II – Heterogenous Operation – Homogenous Operation • Perspective III – GUI Blocking Operation – Background Operation
  • 18. Operation Invocation Process Input Process Input Process Output Process Output SWING EXECUTE SWT Normalized Region Homogenous Operation Call All types Heterogenous Operation Call Topic Operation Multiplexing Operation Call Topic Publisher SWT Display
  • 19. Synch Operation Invocation PROVIDER CONSUMER <services> <refi n="REGISTERCUSTOMERINFO"> <service n=“CALLCENTER”> n=“ CALLCENTER” <soi t="CALLCENTER" o="HANGUP"> <synchoperation o="HANGUP"> o="HANGUP"> <il> <il> <i s="TXT_CUSTOMERNO" k="CUSTOMERNO"/> <i t="GIRIS.MUSTERINO" k="CUSTOMERNO"/> <i s=“T" k="PTYPE3"/> s=“ <i t="GIRIS.TIP" k="PTYPE3"/> <i s=“TXT_AD" k="CUSTOMERNAME"/> TXT_AD" <i t="AD" k="CUSTOMERNAME"/> <i s=“TXT_SOYAD" k="CUSTOMERSURNAME"/> TXT_SOYAD" <i t="SOYAD" k="CUSTOMERSURNAME"/> </il> </il> </i <ol> ol> <refi n=“CONCATNAME”/> <o t="GIRIS.MUSTERINO" k="CUSTOMERNO"/> <ol> <o t="GIRIS.TIP" k="PTYPE3"/> <o s="TXT_CUSTOMERNO" k="CUSTOMERNO"/> <o t="AD" k="CUSTOMERNAME"/> <o s=“T" k="PTYPE3"/> s=“ <o t="SOYAD" k="CUSTOMERSURNAME"/> <o s=“TXT_AD" k="CUSTOMERNAME"/> TXT_AD" </ol> </ol> <o s=“TXT_SOYAD" k="CUSTOMERSURNAME"/> TXT_SOYAD" </soi> </soi> </ol> </refi> </synchoperation> </service> </services> Input GET Input SET Output SET Operation Output GET
  • 20. Asynch Operation Invocation CONSUMER PROVIDER <services> <asynchoperation o="HANGUP"> o="HANGUP"> <refi ref="REGISTERCUSTOMERINFO"> <il> <aoi t="CALLCENTER" o="HANGUP"> <i t="GIRIS.MUSTERINO" k="CUSTOMERNO"/> <il> <i t="GIRIS.TIP" k="PTYPE3"/> <i s="TXT_CUSTOMERNO" k="CUSTOMERNO"/> <i t="AD" k="CUSTOMERNAME"/> <i s=“T" k="PTYPE3"/> s=“ <i t="SOYAD" k="CUSTOMERSURNAME"/> <i s=“TXT_AD" k="CUSTOMERNAME"/> TXT_AD" </il> </i <i s=“TXT_SOYAD" k="CUSTOMERSURNAME"/> TXT_SOYAD" <refi n=“CONCATNAME”/> </il> <bi t="GIRIS.BT_DEVAM" o=“setEnabled"> <onresponse> <onresponse> <value>true</value> <ol> ol> </bi> <o t="GIRIS.MUSTERINO" k="CUSTOMERNO"/> <bi t="GIRIS1.MUSNO" o=“setText"> <o t="GIRIS.TIP" k="PTYPE3"/> <bi t="GIRIS1.MUSTERINO“ o=“getText”/> <o t="AD" k="CUSTOMERNAME"/> </bi> <o t="SOYAD" k="CUSTOMERSURNAME"/> <onevent s="ACCOUNTLIST" type=“modify"> type=“ </ol> </ol> <ol> <bi t="GIRIS.MUSNO" o=“setText"> <o s="TXT_CUSTOMERNO" k="CUSTOMERNO"/> <bi t="GIRIS.MUSTERINO“ o=“getText”/> <o s=“T" k="PTYPE3"/> s=“ </bi> <o s=“TXT_AD" k="CUSTOMERNAME"/> TXT_AD" </onresponse> </onresponse> <o s=“TXT_SOYAD" k="CUSTOMERSURNAME"/> TXT_SOYAD" </aoi> </aoi> </ol> </refi> </onevent> </ asynchoperation > </services> Input GET Input SET Output SET Operation Output GET
  • 21. Topic Registration CONSUMER- subscriber PROVIDER - publisher <refi n="REGISTERCUSTOMERINFO"> <tor t="CALLCENTER" o="HANGUP"> <tor <il/> il/> <ol> ol> <o t="TXT_CUSTOMERNOFROM" k="REGISTRATIONID"/> <services> </ol> <topicoperation o="HANGUP"> o="HANGUP"> <onpublish> onpublish> <onevent s="ACCOUNTLIST" type=“modify"> type=“ <ol> ol> <il> <o t="GIRIS.MUSTERINO" k="CUSTOMERNO"/> <i s="TXT_CUSTOMERNO" k="CUSTOMERNO"/> <o t="GIRIS.TIP" k="PTYPE3"/> <i s=“TXTTYPE" k="PTYPE3"/> s=“ <o t="AD" k="CUSTOMERNAME"/> <i s=“TXT_AD" k="CUSTOMERNAME"/> TXT_AD" <o t="SOYAD" k="CUSTOMERSURNAME"/> <i s=“TXT_SOYAD" k="CUSTOMERSURNAME"/> TXT_SOYAD" </ol> </ol> </il> <refi n=“CONCATNAME”/> </onevent> <bi t="GIRIS.BT_DEVAM" o=“setEnabled"> </ topicoperation> <value>true</value> </services> </bi> <bi t="GIRIS.MUSNO" o=“setText"> <bi t="GIRIS.MUSTERINO“ o=“getText”/> </bi> </onpublish> </onpublish> </tor> </tor> </refi> Input GET Input SET Output SET Operation Output GET Map through keys... Assign values between consumer & provider...
  • 22. Rule Engine • Rule Execution – a Rule definition – a Context • Rule Types: – Global rules – Rules defined in XletParts
  • 23. Service Communication • Collaborative Xlets • Well defined boundaries • Types: – Tangible Service (Java) • Authentication service etc. – Dynamic Service (XML) • Services Defined through XletParts – Proxy Service (Remote) • Services configured for external legacy sytems.
  • 24. IDE • Extended from XWT • DnD XletPart creation • Flow based event definition • Flow based service (ReferenceInvocation) definition • Direct XML editing • Perspective design • Integrated with JSFI Runtime engine for preview
  • 25. DEMO
  • 26. “JSFI on Air” • Credit Europe Bank (CEB) Call Center (Germany) – CTIToolbar Xlet • Service Communication, Xlets, Context. – CEB Core Banking Application • Service communication (Proxy, tangible)
  • 27. Call Center SWT XLET SWT XLET SWT XLET SWING XLET
  • 28. What’s next? • WS Integration • Printing API • Open-office Integration • BIRT integration • RAP integration for Web