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?

More Related Content

PPSX
Moderne backends mit dem aktor programmiermodell
PDF
Java Web Programming [8/9] : JSF and AJAX
PDF
A portlet-API based approach for application integration
PDF
Java Web Programming [2/9] : Servlet Basic
PPT
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
PDF
How to create your own Volto site!
PDF
[FEConf Korea 2017]Angular 컴포넌트 대화법
PDF
IOC + Javascript
Moderne backends mit dem aktor programmiermodell
Java Web Programming [8/9] : JSF and AJAX
A portlet-API based approach for application integration
Java Web Programming [2/9] : Servlet Basic
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
How to create your own Volto site!
[FEConf Korea 2017]Angular 컴포넌트 대화법
IOC + Javascript

What's hot (17)

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

Viewers also liked (7)

PPTX
Ikaruson Pc
PPTX
PDF
Learn BEM: CSS Naming Convention
PPTX
How to Build a Dynamic Social Media Plan
PDF
SEO: Getting Personal
PDF
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
PDF
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Ikaruson Pc
Learn BEM: CSS Naming Convention
How to Build a Dynamic Social Media Plan
SEO: Getting Personal
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?
Ad

Similar to JSFI - Dynamic RCP Desktop Application (20)

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

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