JSFI - Dynamic RCP Desktop Application

962 views

Published on

Dynamic RCP Desktop Application

2 Comments
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
962
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
8
Comments
2
Likes
0
Embeds 0
No embeds

No notes for slide

JSFI - Dynamic RCP Desktop Application

  1. 1. Alper TÜRKYILMAZ
  2. 2. Outline • JSFI • Internal Structure – XML – Custom Widgets • Runtime Architecture • IDE • “JSFI on Air” • What’s next?
  3. 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. 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
  5. 5. Look Through JSFI
  6. 6. Look Through IDE
  7. 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. 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. 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. 10. Xlet Parts • Blocking/Non-blocking Rendering • Specialized event types • Registers/deregisters services • Reusable • Types: – XletPage – XletPageStack – XletRegion – XletDialog – XletInquiry
  11. 11. Context • Provides data for – Rendering – Event handling • Consists of: – Invoker Manager (per Xlet) – ReferenceStore (per XletPart) – Focus Traverse Manager (per XletPart)
  12. 12. Event Handling Mechanism Xlet Xlet Xlet Event Event Event Queue Queue Queue SWT Event Queue
  13. 13. Invocation & Execution • Invocation : definition ~ model • Invoker : execution • InvokerManager : coordination • Callback : asynchronisation • Fault Handling
  14. 14. Invocation Types • BeanInvocation • Reference Invocation • ListofInvocation • SynchOperationInvocation • AsynchOperationInvocation • TopicRegistration • TopicDeregistration • ConstantValueInvocation • LoopInvocation • PageInvocation • CallbackInvocation
  15. 15. Bean Invocation • Bean is – A visual component – A variable • Specialized Beans: – Page – “this” – Util – Session
  16. 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. 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. 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. 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. 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. 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. 22. Rule Engine • Rule Execution – a Rule definition – a Context • Rule Types: – Global rules – Rules defined in XletParts
  23. 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. 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. 25. DEMO
  26. 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. 27. Call Center SWT XLET SWT XLET SWT XLET SWING XLET
  28. 28. What’s next? • WS Integration • Printing API • Open-office Integration • BIRT integration • RAP integration for Web
  29. 29. Thank You Questions?

×