190 likes | 302 Views
JavaDeus 2008. a short introduction. circumstances mission some facts concepts environment life demo questions & answers. circumstances. problems with classical Web applications network bandwidth consumption server CPU consumption uncomfortable UI browser/scripting hell
E N D
a short introduction • circumstances • mission • some facts • concepts • environment • life demo • questions & answers
circumstances • problems with • classical Web applications • network bandwidth consumption • server CPU consumption • uncomfortable UI • browser/scripting hell • integration with non-WebApps difficult • fat clients / distributed applications • firewall problem • distribution dilemma • security issues
mission • minimize network bandwidth consumption • reduce server CPU use • have standard UI look-and-feel (Windows) • support flexible distribution • accomplish high security requirements • work with firewalls • be easy to learn • reduce development time and costs • be open for any kind of extensions
facts • first version released in 2003 • 30 products running in sIT Solutions • some of them handles up to 40 requests/second • hugest application has more than 200 screens • ~30 XMA developer in sIT Solutions • 4 architects for support and improvements • new products realized more and more with XMA (instead of .NET) • since March 2008 open source • hosted at Codehaus
concepts • overview • widgets and models • pages • components • launching • deltas
Backend Application-Server BusinessLogic Presentation-Logic Presentation-Logic XMA Download Request WAN Client overview • centralized standard servlet container • presentation code is dynamically shipped to the client upon a new release • then only business data is transported to client
Server Widget- Model sync‘d in server side events Client Widget Widget- Model always sync‘d widgets and models • a widget is an UI element (e.g. Windows control) • a widget is backed up by a widget model on client • a client widget model is mirrored on server side • client and server models are synchronized transparently on server calls
pages • in openXMA server and client page classes are the main implementation zone • an openXMA page is the unit of visibility – in other words something like a screen, dialog, window… Server Page WM1 can access WM2 server event method (RPC) WM3 forces sync calls • client pages have UI event methods ClientPage UI event method WM1 can access • server pages have RPC methods that will be called from client side WM2 WM3
components • an XMA component is the unit of modularity • a component consists of one or more XMA pages • components are referenced with an URL • can be called from other components • can be called from user • every XMA application consists of one or more components
client side comp. server side comp. client side comp. server download ifnecessary call(RPC) client MIME type association start Browser boot runtime launching • the openXMA boot runtime is responsible to load, cache and execute components • downloads necessary libraries (XMA, SWT) too • openXMA applications are launched by • browser (default) • command line call of boot runtime (Eclipse launch)
deltas • every data transfer in XMA is highly optimized • only necessary information will be transferred: • client side code is cached locally • on new versions only binary deltas will be transmitted (at next component usage) • widget model content will be transferred only if changed (and only the changed ones!) • runtime network traffic occurs only, if RPCs are called, what’s in developers hand
environment • project creation wizard • component creation wizard • GUI design editor • business data mapper • source code generator
project creation wizard • creates whole Eclipse project • Ant buid file • Maven pom • necessary directories • properties • sample component and page
component creation wizard • modifies • Ant build • descriptor • creates • a new package • an XMA file • opens • the XMA component file in GUI designer
GUI design editor • creates pages • adds widgets • does layout • edits widgets properties
business data mapper • maps Java Beans to UI widgets
source code generator • creates, based on the openXMA file • generated classes for components and pages, client and server side • developer classes for components and pages, client and server side (only the first time) • a component interface (can be used from other components) • property files with static widget texts (internationalization)
to get involved www.openxma.org