1 Enterprise app. development with Ajax & XUL XTECH Sebastian Schürmann
2 What youre g onna hear now! Why Sixt adtopted XUL Why we use AJAX (-X +J) What dev. Tools you can use for it Which components the framework consists of What kind of widgets we use and how they are constructed What Application(s) have we build Team Structure at Sixt Lessons we learned on XUL MAYFLOWER GmbH
3 What is M ayflower/ Thinkphp PHP service provider over 30 employees distributed on 2 sites: Munich and Würzburg 4 associates: Johann-Peter Hartmann, Albrecht Günther, Björn Schotte, Gregor Streng deep-rooted with the PHP-Community developer driven company PHP projects for various Enterprises as Sixt, Hypovereinsbank, Vaillant LAMP-Stack experts MAYFLOWER GmbH
4 Presenter developer since 1999 Mayflower team member since 2005 jack of all trades: Development to QA working in the XUL Project for over a Year part of various opensource projects (Mainly as QA) Postnuke (cms) PnCommerce (ecommerce) me: MAYFLOWER GmbH
6 XUL development tools MAYFLOWER GmbH
9 The Requirements Find a way to implement modern GUI applications on top of a COBOL based enterprise architecture without rewriting from scratch and be fast with it. MAYFLOWER GmbH
10 The Contenders/Inhouse G UI Technolog ies CO BO L Only terminal based applications Limited developer ressources avail. hundreds of Applications Sixt Powerbuilder Not open source, long development cycles Island applications as result Java Very limited number of deployed Sixt High development costs MAYFLOWER GmbH
12 The first Project Incident Handling Companywide use: from callcenter to the legal department (different kind of users!) ~ 40 GUIs to enter and process data Connected to various serverside systems PDF document generation server services DTAUS bank file generation service Plattform: Mozilla on Cytrix dektop to minimize deployment issues. MAYFLOWER GmbH
13 Technica l Elements of Sixt XUL Apps. Ajax Cobol/PHP/SQL connector object Excel like datagrid for serial data Treewidget Data dictionary with length and fieldtype definitions for clientside validation Enumerations (e.g. country lists) Helper API (data formats, comparisons etc.) Page controller API (DOM events and operations) MAYFLOWER GmbH
14 AJAX in Sixt XUL Data serialization with JSO N Serverside JSON C M odule for performant (de-) serialization N Cobol-method calls in one http-request (batching ) Easy handling of dependent AJAX-Requests Large amounts of data transferred with no performance headaches. Simple PHP backend archictecture COBOL, SQL and PHP methods usable Cobol and SQL Calls mixable into one request MAYFLOWER GmbH
15 N -method calls in one request? Data retrieval of ~ 30 Cobol Methods on in itial loading of a incident case Special dependencies (car-contractor-credit cards) make use of dependant calls Optimal Re-use of the CRUD and other Cobol Methods in Data-Grids MAYFLOWER GmbH
16 An Example...
17 Request Batching Why? Save request instantiation and authentification Reduce concurrency Problems Use database transactions in AJAX-SQL Simplify errorhandling issues Better performance in high latency situations Delivers data of multiple function calls at once MAYFLOWER GmbH
19 Datag rid MAYFLOWER GmbH
20 Tabular Data The Datag rid Allows to edit data in a Excel like spreadsheet style Allows textfields and selectboxes Field based validation when data is changed without a request to the server Optimal usabillity for large amounts of data Automatic determination of changed data (deltas) and contol over resulting storage operations MAYFLOWER GmbH
21 Tree MAYFLOWER GmbH
22 Hierarchic datastructures - Tree Simple JS API to Build trees Attach event code to tree-nodes Read tree data Open and close subtrees NO Implementation as <XUL/>-tag/XBL Several DOM performance optimizations Eases complex tasks (list to hierarcy) MAYFLOWER GmbH
23 Whats so web 2.0 about all this? Mashup of several services in the Sixt IT Landscape Cobol data services PDF generation DTAUS file generation Mailservices Browser based application Scripting language for GUI and glue layer (PHP) Rapid Development Process (RAD) MAYFLOWER GmbH
25 The Third Project: Developer Tra inig s New Team was formed Summer 2005 ~ 10 people working on Sixt Different backgrounds and history of candidates Web + Scripting Langs Cobol Powerbuilder One Week of training for the newbies First productive work started after 2-3 Weeks MAYFLOWER GmbH
26 M ore Projects Car leasing application (price calculation etc.) Leasing contract systems International money transfer via dtazv Connector to the datawarehouse Extensive security & permission checks, down to the DOM-Level. Different users have different rights in the same application context. etc, etc, etc... MAYFLOWER GmbH
28 Lesson 2: Process Issues Ajax Apps and the XUL-Framework are very agile, behave like it release early release often don't do big Prototypes start to be really productive in a early stage don't fear refactoring Scrum as agile management method fits well to this kind of application development Use the right tools, instead of the well known ones Automated tests help finding side-effects of changes to the codebase MAYFLOWER GmbH
29 Lesson 3: Desig n & Performance Issues Serverside Methods, if re-used (optimal situation), might need a additional Layer on the client side (model layer) Trade more performance in async requests for complexity in the code Do not re-invent the serverside wheel in the client Even clients (browsers) might have limited processing power and RAM MAYFLOWER GmbH
30 M ore Infos mayflower.de xulplanet.com developer.mozilla.org MAYFLOWER GmbH
31 Thanks for listening ;) Sebastian Schürmann Mayflower GmbH Sendlinger Tor. 42a München +49 (89)
Abstract Some Patterns for Insurance Systems Wolfgang Keller c/o EA Generali, Neusetzgasse 1, A1100 Wien, Austria Email: email@example.com http://www.objectarchitects.de/ Building flexible insurance
Open Learning Universiteit Unit 3 Learning Unit 3 Architectural patterns Contents Introduction............................................... 35 3.1 Patterns..............................................
What s New in Oracle SOA Suite 12c O R A C L E W H I T E P A P E R J U L Y 2 0 1 4 Disclaimer The following is intended to outline our general product direction. It is intended for information purposes
theguard! SmartChange Intelligent SAP change management think big, change SMART! theguard! SmartChange theguard! SmartChange takes an intelligent SAP change management approach. It provides maximum automation,
MAKE YOUR WEB PRESENCE FELT WITH MOVABLE TYPE. WE MAKE IT SIMPLE TO CREATE AND EASY TO MANAGE YOUR CONTENT. Six Apart Movable Type WHY CHOOSE MOVABLE TYPE? Publishers large and small love our professional
CONTENTS About the Service Cloud Workbook........................................ 1 Tutorial #1: Setting Up a Help Desk....................................... 4 Step 1: Customize Highlights Panels.........................................
Smart GWT Quick Start Guide Smart GWT v5.0 Smart GWT Quick Start Guide Copyright 2014 and beyond Isomorphic Software, Inc. All rights reserved. The information and technical data contained herein are licensed
SIMATIC IT Production Suite V6.6 www.siemens.com Functional Overview April 2013 Functional Overview SIMATIC IT Production Suite V6.6 April 2013 2 Contents Introduction... 6 MES and Production Modelling...
FileMaker Server 13 FileMaker Server Help 2010-2013 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks of FileMaker,
The Definitive Guide to Plone First Edition 12th December 2006 1 Table of Contents 1 Chapter 1 1.1 Introducing Plone 2 Chapter 2 1.1.1 What Is a Content Management System? 1.1.2 Do You Want a Content Management
Data migration, a practical example from the business world Master of Science Thesis in Software Engineering and Technology LINA RINTAMÄKI Chalmers University of Technology University of Gothenburg Department
Oracle Data Integrator Best Practices for a Data Warehouse Oracle Best Practices March 2008 Oracle Data Integrator Best Practices for a Data Warehouse PREFACE... 7 PURPOSE... 7 AUDIENCE... 7 ADDITIONAL
QualysGuard WAS Getting Started Guide Version 4.1 April 24, 2015 Copyright 2011-2015 by Qualys, Inc. All Rights Reserved. Qualys, the Qualys logo and QualysGuard are registered trademarks of Qualys, Inc.
VISUAL PRODUCT MODELING SYSTEM (VP/MS) CRACK THE CODE FOR ADMINISTERING CALCULATIONS AND BUSINESS RULES CRACK THE CODE FOR ADMINISTERING CALCULATIONS AND BUSINESS RULES INCREASE SPEED WHILE REDUCING COSTS
METADATA STANDARDS AND METADATA REGISTRIES: AN OVERVIEW Bruce E. Bargmeyer, Environmental Protection Agency, and Daniel W. Gillman, Bureau of Labor Statistics Daniel W. Gillman, Bureau of Labor Statistics,
THE DESIGN AND IMPLEMENTATION OF AN E-COMMERCE SITE FOR ONLINE BOOK SALES By Swapna Kodali Project Report Submitted to the faculty of the University Graduate School in partial fulfillment of the requirements
User Guide and Reference Manual Version 3.1 September 2014 Scientific Toolworks, Inc. 53 N Main St. George, UT 84770 Copyright 2014 Scientific Toolworks, Inc. All rights reserved. The information in this
CHAPTER 19 Part 7: Application Development BUILDING E-COMMERCE APPLICATIONS AND INFRASTRUCTURE Content Helping Customers Navigate the Web Site and Increase Sales at Campmor 19.1 Major E-Commerce Applications
Data protection Protecting personal data in online services: learning from the mistakes of others May 2014 Contents Introduction... 2 What the DPA says... 4 Software security updates... 5 Software security
Two Value Releases per Year How IT Can Deliver Releases with Tangible Business Value Every Six Months TABLE OF CONTENTS 0 LEGAL DISCLAIMER... 4 1 IMPROVE VALUE CHAIN AND REDUCE SG&A COSTS IN FAST CYCLES...
Integration: Why Good Enough Doesn t Cut It 13 ways to mess with success Digitalization the process of exploiting digital information to maximize business success has increased the value of your data to
Rob Davis Everyone wants a good process. Our businesses would be more profitable if we had them. But do we know what a good process is? Would we recognized one if we saw it? And how do we ensure we can
Google Apps as an Alternative to Microsoft Office in a Multinational Company The GAPS Project Thesis presented in order to obtain the Bachelor s degree HES by: Luc BOURQUIN Supervisor: Thierry CEILLIER,
UML and Patterns.book Page 61 Thursday, September 16, 2004 9:48 PM Chapter 6 6 USE CASES The indispensable first step to getting the things you want out of life: decide what you want. Ben Stein Objectives
Programming from the Ground Up Jonathan Bartlett Edited by Dominick Bruno, Jr. Programming from the Ground Up by Jonathan Bartlett Edited by Dominick Bruno, Jr. Copyright 2003 by Jonathan Bartlett Permission