Transforming the Way the World Runs Applications

Total Page:16

File Type:pdf, Size:1020Kb

Transforming the Way the World Runs Applications Transforming the Way the World Runs Applications Enterprise OSGiTM - Why should I care? Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 ‣ OSGi - Overview ‣ OSGi - Current Enterprise Initiatives ‣ OSGi - “The Cure” or “the Final Straw”? ‣ The bigger picture ‣ Conclusions Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 ‣ The OSGi Alliance formed in 1999 to focus on standardizing dynamic services in embedded devices; (originally started life as JSR 8!) ‣ OSGi Alliance (www.osgi.org) now has representation from most technology companies and a variety of large end user organizations. ‣ Members include IBM, RedHat, Oracle [BEA], SAP AG, Sun Microsystems, Motorola, Nokia, NEC, SpringSource Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 Modules Life Cycle Execution One of the nicest things about OSGi is Environment Service that there isn’t much to say! Registry Bundles Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi Execution Environment Modules The OSGi ‘Execution Environment’ may be hosted by Java 2 J2SE, CDC, CLDC, MIDP environments. Life Cycle Execution Environment Service The OSGi platform has Foundation Profile and a small number of additions Registry that specifies the minimum requirements on an execution environment to be Bundles useful for OSGi bundles. Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi Modules Modules The ‘Modules’ layer defines the class loading policies. The OSGi Modules layer Life Cycle adds private classes for a module as well as controlled linking between Execution Environment modules. The module layer is fully integrated with the security architecture, Service Registry enabling the option to deploy closed systems, walled gardens, or completely Bundles user managed systems at the discretion of the manufacturer. Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi Life-cycle The ‘Life Cycle’ layer adds bundles that can be dynamically installed, started, Modules stopped, updated and uninstalled. Bundles rely on the module layer for class loading but add an API to manage the modules in run time. Life Cycle Execution Environment The life-cycle layer introduces dynamics that are normally not part of an Service Registry application. Extensive dependency mechanisms are used to assure the correct Bundles operation of the environment. Life cycle operations are fully protected with the security architecture, making it virtually impossible to be attacked by viruses. Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 Bundle Life-cycle!"#$%& '()#$*+,#-.$ /01#$23-)#$/43#5$6#5708'$9:; !"#$%&'()*+ ,-.-&'/".#%.0'1$2/3& A bundle may be in one of six states: 0'7.4)) - Installed &F(4.# $12345567 5#15#7" - Resolved # # " B . 23493$1: 7 ) 4 # - Starting 8 ( 5 7 1 F F8)0-3 ) # # ) 5 & 5 4 . 7.45. - Active 7 ' 0 4=3$>6 ' 962;5>67 - Stopping & ) ) 4 7.8F . 7 ' - Uninstalled 0 ' 23;<<$1: & 81$12345567 !"#$%&%'($)*#%+,%+$,-&**#).%+-%+,%,-/0#)%+$%-"#%1#0,+,-#$-%,-/0&2#%/3%-"#%40&5#6 7/08%&$)%0#5&+$,%-"#0#%($-+*%+-%+,%#91*+:+-*;%($+$,-&**#)<%!"#-"#0%&%'($)*#% "&,%'##$%,-&0-#)%/0%,-/11#)%5(,-%'#%0#:/0)#)%+$%-"#%1#0,+,-#$-%,-/0&2#%/3%-"#% Copyright © 2006-2008 Paremus Ltd Transforming the4 Way0&5 the #World7/ Runs08< %Applications=%'($)*#%-"&-%"&,%'##$%1#0,+,-#$-*;%0#:/0)#)February%&,%,- 2008&0-#)%5(,-%'#% ,-&0-#)%7"#$#>#0%-"#%40&5#7/08%,-&0-,%($-+*%-"#%'($)*#%+,%#91*+:+-*;% ,-/11#)<%?"#%@-&0-%A#>#*%,#0>+:#%+$3*(#$:#,%-"#%&:-(&*%,-&0-+$2%&$)%,-/11+$2% /3%'($)*#,<%@##%,-.%-'4&5&3',&%5"6&',7&6"8"6.-"92%/$%1&2# BCD<% ?"#%!"#$%&%+$-#03&:#%)#3+$#,%&%'&()(*(&+,-5#-"/)%3/0%0#-(0$+$2%&%'($)*#E,% ,-&-#<% F3%-"+,%,1#:+3+:&-+/$%(,#,%-"#%-#05%.6-"5&%-/%)#,:0+'#%&%,-&-#.%-"#$%-"+,%+$:*()#,% -"#%)./0.123%&$)%).455123%,-&-#,< G($)*#%,-&-#,%&0#%#910#,,#)%&,%&%'+-65&,8%-"/(2"%&%'($)*#%:&$%/$*;%'#%+$%/$#% ,-&-#%&-%&$;%-+5#<%?"#%3/**/7+$2%:/)#%,&51*#%:&$%'#%(,#)%-/%)#-#05+$#%+3%&% '($)*#%+,%+$%-"#%)./0.123.%/6.178.%/0%).455123%,-&-#H !"#$$%&'()*)+)($,#-#$*./0.123#4#/5.167#4#*.899123,#:;#<, =>/?)!@($, !"#"# $%&'())*%+,-.%/)0& ?"#%!"#$%&69#(&:(%+$-#03&:#.%7"+:"%+,%2+>#$%-/%-"#%G($)*#%=:-+>&-/0%/3%&% '($)*#.%)#3+$#,%-"#%3/**/7+$2%5#-"/),%3/0%+$,-&**+$2%&%'($)*#H I ;#<(*%%!"#$%&+)(=;#',%J%F$,-&**,%&%'($)*#%30/5%-"#%,1#:+3+#)%*/:&-+/$% ,-0+$2%K7"+:"%,"/(*)%'#%&%LMAN<% I ;#<(*%%!"#$%&+)(=;#'>1#?"()(=&*@,%J%F$,-&**,%&%'($)*#%30/5%-"#%,1#:+3+#)% 1#?"()(=&*@%/'O#:-<% =%'($)*#%5(,-%'#%>&*+)%'#3/0#%+-%+,%+$,-&**#).%/-"#07+,#%-"#%+$,-&**%5(,-%3&+*<% ?"#%>&*+)+-;%/3%&%'($)*#%+,%)+,:(,,#)%+$%1$2/3&':.3"/"-;%/$%1&2# PQ< R>#0;%'($)*#%+,%($+S(#*;%+)#$-+3+#)%';%+-,%*/:&-+/$%,-0+$2<%F3%&$%+$,-&**#)%'($6 )*#%+,%(,+$2%-"#%,1#:+3+#)%*/:&-+/$.%-"#%;#<(*%%!"#$%&%5#-"/),%5(,-%0#-(0$% -"#%!"#$%&%/'O#:-%3/0%-"&-%+$,-&**#)%'($)*#%&$)%$/-%+$,-&**%&%$#7%'($)*#< ?"#%40&5#7/08%5(,-%&,,+2$%&%($+S(#%'($)*#%+)#$-+3+#0%-"&-%+,%"+2"#0%-"&$% &$;%10#>+/(,%'($)*#%+)#$-+3+#0< <=>=?< *@A0$@#5B0-#$C)4.185D$E#)#47#$; OSGi Service Registry Modules The ‘Service Registry’ provides a cooperation model for bundles that takes the dynamics into account. Life Cycle Execution Environment Service The service registry provides a comprehensive model to share local objects Registry Registry between local bundles. A number of events are defined to handle the coming Bundles and going of services. Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 An OSGi Bundle is... ... a JAR file with some additional Metadata! ‣ Identification ‣ Bundle Classpath ‣ Bundle Life-cycle (activator if required) ‣ Dependencies (if any) ‣ Exports (if any) Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi is ... ... Service Oriented! ‣ Bundles can publish their services dynamically; i.e. registering these with the local service registry. ‣ Bundles can “find” and then “bind” to other local services via the local service registry. ‣ Allow Services to installed and uninstalled in a running JVM! Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 Multi-Version Support xyz-version 1.0 Jar Jar xyz-version 2.0 Jar Jar Jar Jar Jar Jar Jar Jar Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 Hierarchical Classloader Structure Classloader Hell :( Boot Classloader System Classloader URLClassloader1 URLClassloader2 Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi Peer Classloader • Peer classloading removes the need for bar baz jars to be artificially promoted in order for two components to see the same class foo Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi Peer Classloader • OSGi GUARANTEES that there will only be one instance of a class for a bar foo baz given package and version Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 Implementations ‣ Open Source Implementations ‣ Knopflerfish - www.knopflerfish.org ‣ Apache Felix - http://cwiki.apache.org/FELIX/index.html ‣ Eclipse Equinox - http://www.eclipse.org/equinox ‣ Commercial Implementations ‣ In addition to the usual suspects... ‣ Makewave - www.makewave.com ‣ Prosyst - www.prosyst.com Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 What about JSR277? A case of re-inventing the wheel? Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi - The most important standard of the Decade*? * SD Times - 1 June 2007 Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 Our Conclusion ‣ An elegant, well designed, mature modular framework for composite services in a single JVM. ‣ Application Decomposition - OSGi bundles are the re- usable so4ware components "LEGO blocks#. ‣ By addressing local dynamism, OSGi provides the foundations for dynamic 2 composite SOA. Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 ‣ OSGi - Overview ‣ OSGi - Current Enterprise Initiatives ‣ OSGi - “The Cure” or “The Final Straw”? ‣ The bigger picture ‣ Conclusions Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi in the Enterprise ‣All Application Servers now have road-maps based on OSGi: • Commercial - IBM (WebSphere) BEA 2 Oracle (WebLogic 2 Fusion), RedHat (JBoss) • Open Source Projects - JONAS, Geronimo, Jetty, GlassFish (optional) ‣In-house developed applications using • Spring DM • Eclipse IDE ‣Third Party applications • ISV.s • Middleware Companies (Iona, MuleSource, etc). Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 OSGi Expert Enterprise Group OSGi EEG set up Sept 2006 to address the Enterprise (BEA, IBM, Eclipse Foundation, SpringSource, Iona, Oracle, RedHat, SAP, Sun Microsystems & SAP) Some of OSGi R5 themes (2009?)... • Multi-Language Support • Classloading & Marshaling • Remote Management • State Management • Support for JNDI & JEE Copyright © 2006-2008 Paremus Ltd Transforming the Way the World Runs Applications February 2008 Java Frameworks Supporting OSGi Spring Dynamic Modules (Spring-OSGi) Felix POJO Framework (Apache OSGi project). +
Recommended publications
  • Building Openjfx
    Building OpenJFX Building a UI toolkit for many different platforms is a complex and challenging endeavor. It requires platform specific tools such as C compilers as well as portable tools like Gradle and the JDK. Which tools must be installed differs from platform to platform. While the OpenJFX build system was designed to remove as many build hurdles as possible, it is necessary to build native code and have the requisite compilers and toolchains installed. On Mac and Linux this is fairly easy, but setting up Windows is more difficult. If you are looking for instructions to build FX for JDK 8uNNN, they have been archived here. Before you start Platform Prerequisites Windows Missing paths issue Mac Linux Ubuntu 18.04 Ubuntu 20.04 Oracle Enterprise Linux 7 and Fedora 21 CentOS 8 Common Prerequisites OpenJDK Git Gradle Ant Environment Variables Getting the Sources Using Gradle on The Command Line Build and Test Platform Builds NOTE: cross-build support is currently untested in the mainline jfx-dev/rt repo Customizing the Build Testing Running system tests with Robot Testing with JDK 9 or JDK 10 Integration with OpenJDK Understanding a JDK Modular world in our developer build Adding new packages in a modular world First Step - development Second Step - cleanup Before you start Do you really want to build OpenJFX? We would like you to, but the latest stable build is already available on the JavaFX website, and JavaFX 8 is bundled by default in Oracle JDK 8 (9 and 10 also included JavaFX, but were superseded by 11, which does not).
    [Show full text]
  • Using FXML in Javafx
    JavaFX and FXML How to use FXML to define the components in a user interface. FXML FXML is an XML format text file that describes an interface for a JavaFX application. You can define components, layouts, styles, and properties in FXML instead of writing code. <GridPane fx:id="root" hgap="10.0" vgap="5.0" xmlns="..."> <children> <Label fx:id="topMessage" GridPane.halignment="CENTER"/> <TextField fx:id="inputField" width="80.0" /> <Button fx:id="submitButton" onAction="#handleGuess" /> <!-- more components --> </children> </GridPane> Creating a UI from FXML The FXMLLoader class reads an FXML file and creates a scene graph for the UI (not the window or Stage). It creates objects for Buttons, Labels, Panes, etc. and performs layout according to the fxml file. creates FXMLLoader reads game.fxml Code to Provide Behavior The FXML scene define components, layouts, and property values, but no behavior or event handlers. You write a Java class called a Controller to provide behavior, including event handlers: class GameController { private TextField inputField; private Button submitButton; /** event handler */ void handleGuess(ActionEvent e)... Connecting References to Objects The FXML scene contains objects for Button, TextField, ... The Controller contains references to the objects, and methods to supply behavior. How to Connect Objects to References? class GameController { private TextField inputField; private Button submitButton; /** event handler */ void handleGuess(ActionEvent e)... fx:id and @FXML In the FXML file, you assign objects an "fx:id". The fx:id is the name of a variable in the Controller class annotated with @FXML. You can annotate methods, too. fx:id="inputField" class GameController { @FXML private TextField inputField; @FXML private Button submitButton; /** event handler */ @FXML void handleGuess(ActionEvent e) The fxml "code" You can use ScaneBuilder to create the fxml file.
    [Show full text]
  • Draft ETSI EN 301 549 V0.0.51
    (2018-02) Draft EN 301 549 V2.1.1 HARMONISED EUROPEAN STANDARD Accessibility requirements for ICT products and services 2 Draft EN 301 549 V2.1.1 (2018-02) Reference REN/HF-00 301 549 Keywords accessibility, HF, ICT, procurement CEN CENELEC ETSI Avenue Marnix 17 Avenue Marnix 17 650 Route des Lucioles B-1000 Brussels - BELGIUM B-1000 Brussels - BELGIUM F-06921 Sophia Antipolis Cedex - FRANCE Tel: + 32 2 550 08 11 Tel.: +32 2 519 68 71 Fax: + 32 2 550 08 19 Fax: +32 2 519 69 19 Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16 Siret N° 348 623 562 00017 - NAF 742 C Association à but non lucratif enregistrée à la Sous-Préfecture de Grasse (06) N° 7803/88 Important notice Individual copies of the present document can be downloaded from: ETSI Search & Browse Standards The present document may be made available in more than one electronic version or in print. In any case of existing or perceived difference in contents between such versions, the reference version is the Portable Document Format (PDF). In case of dispute, the reference shall be the printing on ETSI printers of the PDF version kept on a specific network drive within ETSI Secretariat. Users of the present document should be aware that the document may be subject to revision or change of status. Information on the current status of this and other ETSI documents is available at ETSI deliverable status If you find errors in the present document, please send your comment to one of the following services: ETSI Committee Support Staff Copyright Notification No part may be reproduced except as authorized by written permission.
    [Show full text]
  • Our Journey from Java to Pyqt and Web for Cern Accelerator Control Guis I
    17th Int. Conf. on Acc. and Large Exp. Physics Control Systems ICALEPCS2019, New York, NY, USA JACoW Publishing ISBN: 978-3-95450-209-7 ISSN: 2226-0358 doi:10.18429/JACoW-ICALEPCS2019-TUCPR03 OUR JOURNEY FROM JAVA TO PYQT AND WEB FOR CERN ACCELERATOR CONTROL GUIS I. Sinkarenko, S. Zanzottera, V. Baggiolini, BE-CO-APS, CERN, Geneva, Switzerland Abstract technology choices for GUI, even at the cost of not using Java – our core technology – for GUIs anymore. For more than 15 years, operational GUIs for accelerator controls and some lab applications for equipment experts have been developed in Java, first with Swing and more CRITERIA FOR SELECTING A NEW GUI recently with JavaFX. In March 2018, Oracle announced that Java GUIs were not part of their strategy anymore [1]. TECHNOLOGY They will not ship JavaFX after Java 8 and there are hints In our evaluation of GUI technologies, we considered that they would like to get rid of Swing as well. the following criteria: This was a wakeup call for us. We took the opportunity • Technical match: suitability for Desktop GUI to reconsider all technical options for developing development and good integration with the existing operational GUIs. Our options ranged from sticking with controls environment (Linux, Java, C/C++) and the JavaFX, over using the Qt framework (either using PyQt APIs to the control system; or developing our own Java Bindings to Qt), to using Web • Popularity among our current and future developers: technology both in a browser and in native desktop little (additional) learning effort, attractiveness for new applications.
    [Show full text]
  • Migrating Behavior Searchâ•Žs User Interface from Swing to Javafx
    Augustana College Augustana Digital Commons Celebration of Learning May 3rd, 12:00 AM - 12:00 AM Migrating Behavior Search’s User Interface from Swing to JavaFX An Nguyen Dang Augustana College, Rock Island Illinois Follow this and additional works at: http://digitalcommons.augustana.edu/celebrationoflearning Part of the Education Commons Augustana Digital Commons Citation Nguyen Dang, An. "Migrating Behavior Search’s User Interface from Swing to JavaFX" (2017). Celebration of Learning. http://digitalcommons.augustana.edu/celebrationoflearning/2017/posters/10 This Poster Presentation is brought to you for free and open access by Augustana Digital Commons. It has been accepted for inclusion in Celebration of Learning by an authorized administrator of Augustana Digital Commons. For more information, please contact [email protected]. Migrating BehaviorSearch’s User Interface from Swing to JavaFX An Nguyen Dang, and Forrest Stonedahl* Mathematics and Computer Science Department, Augustana College *Faculty Advisor I. Introduction II. Motivation III. Challenges Agent-Based Models (ABMs) and NetLogo Java Swing Graphical User Interface (GUI) Multithreading in JavaFX • Agent-based modeling is a computer modeling technique that • Earlier versions of BehaviorSearch used the Swing GUI library • When dealing with time-consuming computational tasks, like focuses on modeling the rules of individuals ("agents") and • With Swing, all of the graphical components and controlling what BehaviorSearch does to analyze models, it is important to simulating the interactions between these individuals. methods get embedded in the same code, which makes the code do those tasks in a parallel worker thread, so that the GUI stays • ABMs are widely used to simulate behavior in many fields long and hard to debug responsive.
    [Show full text]
  • (Microsoft Powerpoint
    Entwicklung mit JavaFX Die Java UI-Technologie im JDK 8 Wolfgang Weigend Sen. Leitender Systemberater Java Technologie und Architektur 1 Copyright © 2016 Oracle and/or its affiliates. All rights reserved. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2 Copyright © 2016 Oracle and/or its affiliates. All rights reserved. Agenda • Aktueller Status von JavaFX • Entwicklungsressourcen beim Engineering und in der Java Community • Linux on ARM Port • JavaFX-Aufbau und Architekturkonzept • Migration von Swing Komponenten • Barrierefreiheit • Vorteile bei der Entwicklung von JavaFX Anwendungen • SceneBuilder GUI Editor • Automatisiertes Testen von JavaFX GUI Komponenten • Open Source Projekt OpenJFX • Kundenbeispiele, Projekte und relevante Partnerlösungen • Zusammenfassung 3 Copyright © 2016 Oracle and/or its affiliates. All rights reserved. Aktueller Status von JavaFX • JavaFX 8 ist fester Bestandteil der Java SE 8 – General Availability for Windows, Linux, Mac OS – Java SE 8 Roadmap until 2025 and expected JDK 9 until 2028 – Java SE Development Kit 8 Update 6 for ARM • Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle and is not supported – http://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696.html – http://mail.openjdk.java.net/pipermail/openjfx-dev/2015-January/016570.html • Development Tools – NetBeans 8.2 – JavaFX Scene Builder 2.0 und Version 8.2.0 – e(fx)clipse • major release cycle alignment with eclipse roadmap • minor release cycle with JavaFX roadmap 4 Copyright © 2016 Oracle and/or its affiliates.
    [Show full text]
  • When the Automobile Driver Is Wearing Spectacles. 38 7.3
    VISVESVARAYA TECHNOLOGICAL UNIVERSITY “Jnana Sangama”, Belagavi– 590 018 A PROJECT REPORT ON “MONITORING DRIVER'S ATTENTION LEVEL” Submitted in partial fulfillment for the award of the degree of BACHELOR OF ENGINEERING IN COMPUTER SCIENCE AND ENGINEERING BY SISIR DAS K (1NH12CS118) SIDDHARTHKUMAR PATEL (1NH12CS117) Under the guidance of Ms.Pramilarani K (Senior Assistant Professor, Dept. of CSE, NHCE) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING NEW HORIZON COLLEGE OF ENGINEERING (ISO-9001:2000 certified, Accredited by NAAC ‘A’, Permanently affiliated to VTU) Outer Ring Road, Panathur Post, Near Marathalli, Bangalore – 560103 NEW HORIZON COLLEGE OF ENGINEERING (ISO-9001:2000 certified, Accredited by NAAC ‘A’ Permanently affiliated to VTU) Outer Ring Road, Panathur Post, Near Marathalli, Bangalore-560 103 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CERTIFICATE Certified that the project work entitled “MONITORING DRIVER’S ATTENTION LEVEL” carried out by SISIR DAS K (1NH12CS118) and SIDDHARTHKUMAR PATEL (1NH12CS117) bonafide students of NEW HORIZON COLLEGE OF ENGINEERING in partial fulfilment for the award of Bachelor Of Engineering in Computer Science and Engineering of the Visvesvaraya Technological University, Belgavi during the year 2015-2016. It is certified that all corrections/suggestions indicated for Internal Assessment have been incorporated in the report deposited in the department library. The project report has been approved as it satisfies the academic requirements in respect of Project work prescribed for the said Degree. Name & Signature of Guide Name & Signature of HOD Signature of Principal (Ms. K Pramilarani) (Dr.Prashanth C.S.R.) (Dr.Manjunatha) External Viva Name of Examiner Signature with date 1. 2. ACKNOWLEDGEMENT The satisfaction and euphoria that accompany the successful completion of any task would be, but impossible without the mention of the people who made it possible, whose constant guidance and encouragement crowned our efforts with success.
    [Show full text]
  • AGL HMI Framework Architecture Document
    AGL HMI Framework Architecture Document Version Date 0.2.4 2017/8/2 AGL HMI Framework Architecture Document Index 1. HMI Framework overview ................................................................................... 4 1.1. HMI-FW Related components .......................................................................... 4 1.1.1. Related components .................................................................................. 5 1.1.2. HMI-FW Components .............................................................................. 6 1.2. Considerations on implementation ................................................................... 7 2. HMI-Apps (HMI-FW Related components) .................................................. 8 2.1. Overviw ............................................................................................................. 8 2.1.1. Related external components .................................................................... 8 2.1.2. HMI-Apps Life Cycle ............................................................................... 9 3. GUI-library ......................................................................................................... 10 3.1. Overview ......................................................................................................... 10 3.1.1. Related external components .................................................................. 10 3.1.2. Internal Components ............................................................................... 11 3.2. Graphics
    [Show full text]
  • Javafx Scene Graph to FXML Serialization
    JavaFX Scene Graph Object Serialization ELMIRA KHODABANDEHLOO KTH Information and Communication Technology Degree project in Communication Systems Second level, 30.0 HEC Stockholm, Sweden JavaFX Scene Graph Object Serialization Elmira Khodabandehloo Master of Science Thesis 8 October 2013 Examiner Professor Gerald Q. Maguire Jr. Supervisor Håkan Andersson School of Information and Communication Technology (ICT) KTH Royal Institute of Technology Stockholm, Sweden © Elmira Khodabandehloo, 8 October 2013 Abstract Data visualization is used in order to analyze and perceive patterns in data. One of the use cases of visualization is to graphically represent and compare simulation results. At Ericsson Research, a visualization platform, based on JavaFX 2 is used to visualize simulation results. Three configuration files are required in order to create an application based on the visualization tool: XML, FXML, and CSS. The current problem is that, in order to set up a visualization application, the three configuration files must be written by hand which is a very tedious task. The purpose of this study is to reduce the amount of work which is required to construct a visualization application by providing a serialization function which makes it possible to save the layout (FXML) of the application at run-time based solely on the scene graph. In this master’s thesis, possible frameworks that might ease the implementation of a generic FXML serialization have been investigated and the most promising alternative according to a number of evaluation metrics has been identified. Then, using a design science research method, an algorithm is proposed which is capable of generic object/bean serialization to FXML based on a number of features or requirements.
    [Show full text]
  • Arcgis Runtime Sdks: Building Cross-Platform Apps Tyler Schiewe Lucas Danzinger Rich Zwaap Rex Hansen Agenda
    ArcGIS Runtime SDKs: Building Cross-Platform Apps Tyler Schiewe Lucas Danzinger Rich Zwaap Rex Hansen Agenda • Cross-platform review • ArcGIS Runtime cross-platform options - Java - Qt - .NET Native vs Web? • Native apps • App installed on the device • Use Platform / Operating System APIs • Best performance and device integration • Support for connected and offline workflows • Work well when you have the ability to determine devices • Use ArcGIS Runtime SDKs to create native apps • Web apps • Web site/app downloaded from a server • Best for wider range of users on unknown devices • Use the ArcGIS API for JavaScript to create web client solutions • User experience and capabilities increasingly blurred as technologies evolve http://esriurl.com/ChoosingAnAPI Native app cross-platform considerations • Benefits - Share application code - Enforces good design patterns - Makes your app available to more users • Challenges - Testing - User experience of your app may vary - Handling platform idiosyncrasies (security, bugs, etc) - Development cost Building Native Apps on Multiple Platforms • How do you choose a cross platform SDK? - Business, technical, and user requirements - Developer skillset • Multiple options available - Java - Qt - .NET/Xamarin ArcGIS Runtime cross-platform options • All Runtime APIs built on common Runtime core Java Qt / QML .NET / Xamarin Android Java iOS macOS Qt .NET C++ runtime core Android Linux iOS macOS Windows UWP DirectX x86 x64 ARM OpenGL Java Tyler Schiewe Qt Lucas Danzinger .NET and Xamarin Rich Zwaap Java Tyler
    [Show full text]
  • Using Javafx UI Controls
    JavaFX Working with JavaFX UI Components Release 8 E47848-02 August 2014 In this tutorial, you learn how to build user interfaces in your JavaFX applications with the UI components available through the JavaFX API. JavaFX Working with JavaFX UI Components Release 8 E47848-02 Copyright © 2011, 2014, Oracle and/or its affiliates. All rights reserved. Primary Author: Alla Redko, Irina Fedortsova Primary Author: This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).
    [Show full text]
  • Visualizing the Performance of Scientific Applications Executing
    Visualizing the Performance of Scientific Applications Executing With Parareal Combined Space-Time Parallel Approach by Mengru Wang Bachelor of Electrical Engineering, Beijing Jiaotong University, 2011 A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF Masters of Computer Science In the Graduate Academic Unit of Computer Science Supervisor(s): Eric Aubanel, PhD, Faculty of Computer Science Andrew G. Gerber, PhD, Dept. of Mechanical Engineering Examining Board: Michael Fleming, PhD, Faculty of Computer Science Weichang Du, PhD, Faculty of Computer Science Andy Simoneau, PhD, Dept. of Mechanical Engineering This thesis is accepted Dean of Graduate Studies THE UNIVERSITY OF NEW BRUNSWICK September, 2016 c Mengru Wang, 2017 Abstract Recently, manycore and multicore based massively parallel processing architec- tures, led by GPUs and multicore CPUs, have become the powerful and cost- effective hardware trend in the high performance computing landscape. To in- corporate this processing power, various highly efficient parallel algorithms to exploit multilevel parallelism are being designed and developed. Among them, a novel combined space-time parallel approach that uses the parareal algorithm for time parallelization, demonstrates the possible multiplied speedup on top of that achieved with spatial parallelization. This approach is implemented in the EXN/Aero parallel Computational Fluid Dynamics (CFD) solution, developed by Envenio inc. and UNB CFD lab. Notably, the parareal performance with respect to the speedup and convergence when applied into the combined approach, is fur- ther complicated with the effects from the parallel spatial solver which hinders effective analysis. As a complementary tool to traditional experimental performance analysis with respect to speedup and convergence, in this thesis we propose a visual analysis ii platform, called EXN/Vizer, to help better understand and gain valuable in- sights into the parareal performance in search for potential optimization strate- gies.
    [Show full text]