SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Java on Tracks
Die Kind-im-Manne-Session

    Dirk Weil | GEDOPLAN
Dirk Weil
    • GEDOPLAN GmbH, Bielefeld
    • Java EE seit 1998
    • Konzeption und
      Realisierung
    • Vorträge
    • Seminare
    • Veröffentlichungen



2            Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Die Ausgangslage

    Job




                                                  Keller

3    Java on Tracks – die Kind-im-Manne-Session        dirk.weil@gedoplan.de
V5T11
    • Visual Train Control

    • VT 11.5




                       http://commons.wikimedia.org/wiki/
                       File:601_Verkehrsmuseum_Nuernberg_11092010_complete_train.JPG

4               Java on Tracks – die Kind-im-Manne-Session               dirk.weil@gedoplan.de
Aufgaben von V5T11
    • Visualisierung des Gleisplans.
    • Anzeige von Gleisbelegungen.
    • Reservieren und Freigeben von Fahrstraßen
      inklusive der dazu nötigen Weichen- und
      Signalstellungen.

    • Keine Automatisierung des Fahrbetriebs!




5              Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Mehrzugsteuerung Selectrix
    • Keine getrennten Stromkreise
    • Loks enthalten
      Decoder
    • erhalten Befehle
      über die Gleisspannung
      –   Geschwindigkeit, Richtung
      –   Licht
      –   Horn
      –   …


6                Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Mehrzugsteuerung Selectrix
    • Zentrale
      – Gleisspannung
      – SX-Bus
    • Funktionsdecoder
      – Steuerung von Weichen, Signalen
    • Besetztmelder
      – Überwachung von Gleisen
    • Interface
      – Konverter SX-Bus                   serielle Schnittstelle


7                 Java on Tracks – die Kind-im-Manne-Session        dirk.weil@gedoplan.de
Systemaufbau




8   Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Wer hat's erfunden?




    GEDOPLAN Code Camp 2012
9           Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Selectrix Connector
     • Anbindung des Selectrix-Systems
     • Bidirektionaler Connector nach JCA 1.6
     • Outbound: Setzen und Abfragen von einzelnen
       Adressen
       – setValue(12, 0b01001110)

                                                Geschwindigkeitsstufe 14
                                                vorwärts
                                                Licht an
                                                Horn aus



10             Java on Tracks – die Kind-im-Manne-Session             dirk.weil@gedoplan.de
Selectrix Connector
     • Inbound: Melden von Zustandsänderungen
       – SelectrixMessage(90, 0b00100000)

                                                                …

                                                            Gleis 11
                                                            Gleis 12
                                                            Gleis 1
                                                            …




11             Java on Tracks – die Kind-im-Manne-Session              dirk.weil@gedoplan.de
Selectrix Connector
     • Zugriff auf serielle und parallele Schnittstellen
        – commapi 2.0: uralt, stagniert
        – rxtx: GNU-Implementierung, derzeit auf
          rxtx.qbang.org zu finden
        – Java Communications 3.0: Oracle hat den Faden
          wieder aufgenommen; derzeit keine Windows-
          Implementierung




12               Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Betriebssteuerung
     • Geschäftslogik
       – Objektrepräsentation der Modellbahn (Loks, Weichen,
         Signale, Gleisabschnitte)
       – Objektrepräsentation der MZS (Zentrale,
         Funktionsdecoder, Besetztmelder)
       – Bidirektionale Synchronisation mit der MZS
       – Initialisierung aus XML-Konfig.-Datei
       – geplant: Speicherung des Systemzustandes in einer
         DB



13              Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Betriebssteuerung
                                             Selectrix
                                            Connector


                                            Steuerung




                                                                              Messaging/Events
     API (setValue)




                                             Funktions-            Besetzt-
                          Lok
                           Lok                decoder              melder


                                            Weiche                   Gleis



                                                    Signal



14                    Java on Tracks – die Kind-im-Manne-Session              dirk.weil@gedoplan.de
Betriebssteuerung
     • Systemzustand:
       @ApplicationScoped CDI Bean

        @ApplicationScoped
        public class SteuerungProducer
        {
          @Produces @ApplicationScoped
          private Steuerung                               steuerung;

          @PostConstruct
          private void init()
          {
            this.steuerung = XmlConverter.fromXml(Steuerung.class, …);
            …
          }


15               Java on Tracks – die Kind-im-Manne-Session            dirk.weil@gedoplan.de
Betriebssteuerung
     • Fahrstraßensteuerung
       – Reservieren von Fahrstraßen
         = Stellen benötigter Weichen und Signale
       – Kollisionskontrolle




16              Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Betriebssteuerung
     • Serviceangebot für Clients




                                     Model (JSF)
                EJB (Remote)




                                                                        REST WS
                                         Steuerung



                                          Besetzt-         Funktions-
                                  Lok
                                   Lok    melder            decoder



                                         Weiche               Gleis




                                                  Signal




17              Java on Tracks – die Kind-im-Manne-Session                        dirk.weil@gedoplan.de
Stellwerk
     •   Visualisierung des Gleisplans
     •   Stellen von Weichen und Signalen
     •   Reservieren von Fahrstraßen
     •   Anzeige von Gleisbelegungen




18               Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Stellwerk




19   Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Stellwerk
     • Ansatz im Code Camp
       – Gleisplan als SVG
       – Darstellung der Zustände per Transformation des
         Objektmodells hinter der Grafik
       – Listener-Registrierung auf Grafikelementen für User-
         Aktionen
     • Vielversprechend
     • Aus Zeitgründen nicht realisiert



20               Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Remote Control
     • Mobile Variante eines
       "Walk Around Controllers"
       – Auswahl einer Lok
       – Steuerung von
         Geschwindigkeit, Licht etc.




21               Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Demo




22   Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Impressionen aus dem Keller …




23       Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
… und aus dem "echten Leben"
     • Steuerung eines
       fahrerlosen
       Transportsystems
       (FTS)




24             Java on Tracks – die Kind-im-Manne-Session   dirk.weil@gedoplan.de
Schön, dass Sie da waren!




                            dirk.weil@gedoplan.de

Más contenido relacionado

Destacado

Mi0039 e-commerce
Mi0039 e-commerceMi0039 e-commerce
Mi0039 e-commercesmumbahelp
 
Rammeverk: Bruk av registerdata til statistikkformål
Rammeverk: Bruk av registerdata til statistikkformålRammeverk: Bruk av registerdata til statistikkformål
Rammeverk: Bruk av registerdata til statistikkformålNordisk statistikermøte 2013
 
R2 creative divulgacao_servicos
R2 creative divulgacao_servicosR2 creative divulgacao_servicos
R2 creative divulgacao_servicosr2creative
 
Mi0036 business intelligence tools
Mi0036  business intelligence toolsMi0036  business intelligence tools
Mi0036 business intelligence toolssmumbahelp
 
7. sınıf 1.dönem 1.yazılı sınavı
7. sınıf 1.dönem 1.yazılı sınavı7. sınıf 1.dönem 1.yazılı sınavı
7. sınıf 1.dönem 1.yazılı sınavıingilizceschool
 
Oppgavegiveren: Quality of the diaries in the finnish and swedish time use su...
Oppgavegiveren: Quality of the diaries in the finnish and swedish time use su...Oppgavegiveren: Quality of the diaries in the finnish and swedish time use su...
Oppgavegiveren: Quality of the diaries in the finnish and swedish time use su...Nordisk statistikermøte 2013
 
Produksjonsprosessen: Kvalitetsutredning for sjøfartsstatistikk
Produksjonsprosessen: Kvalitetsutredning for sjøfartsstatistikkProduksjonsprosessen: Kvalitetsutredning for sjøfartsstatistikk
Produksjonsprosessen: Kvalitetsutredning for sjøfartsstatistikkNordisk statistikermøte 2013
 
Bt0068 computer organization and architecture
Bt0068   computer organization and architectureBt0068   computer organization and architecture
Bt0068 computer organization and architecturesmumbahelp
 
Aufgewacht, aufgebrochen, aber noch nicht angekommen. das deutsche archivwese...
Aufgewacht, aufgebrochen, aber noch nicht angekommen. das deutsche archivwese...Aufgewacht, aufgebrochen, aber noch nicht angekommen. das deutsche archivwese...
Aufgewacht, aufgebrochen, aber noch nicht angekommen. das deutsche archivwese...Archive20
 
Bba101 communication skills
Bba101   communication skillsBba101   communication skills
Bba101 communication skillssmumbahelp
 
Spanish style homes
Spanish style homesSpanish style homes
Spanish style homesholard1
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 

Destacado (12)

Mi0039 e-commerce
Mi0039 e-commerceMi0039 e-commerce
Mi0039 e-commerce
 
Rammeverk: Bruk av registerdata til statistikkformål
Rammeverk: Bruk av registerdata til statistikkformålRammeverk: Bruk av registerdata til statistikkformål
Rammeverk: Bruk av registerdata til statistikkformål
 
R2 creative divulgacao_servicos
R2 creative divulgacao_servicosR2 creative divulgacao_servicos
R2 creative divulgacao_servicos
 
Mi0036 business intelligence tools
Mi0036  business intelligence toolsMi0036  business intelligence tools
Mi0036 business intelligence tools
 
7. sınıf 1.dönem 1.yazılı sınavı
7. sınıf 1.dönem 1.yazılı sınavı7. sınıf 1.dönem 1.yazılı sınavı
7. sınıf 1.dönem 1.yazılı sınavı
 
Oppgavegiveren: Quality of the diaries in the finnish and swedish time use su...
Oppgavegiveren: Quality of the diaries in the finnish and swedish time use su...Oppgavegiveren: Quality of the diaries in the finnish and swedish time use su...
Oppgavegiveren: Quality of the diaries in the finnish and swedish time use su...
 
Produksjonsprosessen: Kvalitetsutredning for sjøfartsstatistikk
Produksjonsprosessen: Kvalitetsutredning for sjøfartsstatistikkProduksjonsprosessen: Kvalitetsutredning for sjøfartsstatistikk
Produksjonsprosessen: Kvalitetsutredning for sjøfartsstatistikk
 
Bt0068 computer organization and architecture
Bt0068   computer organization and architectureBt0068   computer organization and architecture
Bt0068 computer organization and architecture
 
Aufgewacht, aufgebrochen, aber noch nicht angekommen. das deutsche archivwese...
Aufgewacht, aufgebrochen, aber noch nicht angekommen. das deutsche archivwese...Aufgewacht, aufgebrochen, aber noch nicht angekommen. das deutsche archivwese...
Aufgewacht, aufgebrochen, aber noch nicht angekommen. das deutsche archivwese...
 
Bba101 communication skills
Bba101   communication skillsBba101   communication skills
Bba101 communication skills
 
Spanish style homes
Spanish style homesSpanish style homes
Spanish style homes
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 

Similar a Java on Tracks – die Kind-im-Manne-Session

Java EE hochverfügbar
Java EE hochverfügbarJava EE hochverfügbar
Java EE hochverfügbargedoplan
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!OPEN KNOWLEDGE GmbH
 
Java on Tracks - Modellbahnsteuerung mit JEE, MicroProfile und self-contained...
Java on Tracks - Modellbahnsteuerung mit JEE, MicroProfile und self-contained...Java on Tracks - Modellbahnsteuerung mit JEE, MicroProfile und self-contained...
Java on Tracks - Modellbahnsteuerung mit JEE, MicroProfile und self-contained...gedoplan
 
DAOG SIG: HA Architekturen mit MySQL
DAOG SIG: HA Architekturen mit MySQLDAOG SIG: HA Architekturen mit MySQL
DAOG SIG: HA Architekturen mit MySQLFromDual GmbH
 
Einführung in die funktionale Programmierung mit Clojure
Einführung in die funktionale Programmierung mit ClojureEinführung in die funktionale Programmierung mit Clojure
Einführung in die funktionale Programmierung mit ClojureSascha Koch
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Servergedoplan
 

Similar a Java on Tracks – die Kind-im-Manne-Session (6)

Java EE hochverfügbar
Java EE hochverfügbarJava EE hochverfügbar
Java EE hochverfügbar
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
Java on Tracks - Modellbahnsteuerung mit JEE, MicroProfile und self-contained...
Java on Tracks - Modellbahnsteuerung mit JEE, MicroProfile und self-contained...Java on Tracks - Modellbahnsteuerung mit JEE, MicroProfile und self-contained...
Java on Tracks - Modellbahnsteuerung mit JEE, MicroProfile und self-contained...
 
DAOG SIG: HA Architekturen mit MySQL
DAOG SIG: HA Architekturen mit MySQLDAOG SIG: HA Architekturen mit MySQL
DAOG SIG: HA Architekturen mit MySQL
 
Einführung in die funktionale Programmierung mit Clojure
Einführung in die funktionale Programmierung mit ClojureEinführung in die funktionale Programmierung mit Clojure
Einführung in die funktionale Programmierung mit Clojure
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Server
 

Java on Tracks – die Kind-im-Manne-Session

  • 1. Java on Tracks Die Kind-im-Manne-Session Dirk Weil | GEDOPLAN
  • 2. Dirk Weil • GEDOPLAN GmbH, Bielefeld • Java EE seit 1998 • Konzeption und Realisierung • Vorträge • Seminare • Veröffentlichungen 2 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 3. Die Ausgangslage Job Keller 3 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 4. V5T11 • Visual Train Control • VT 11.5 http://commons.wikimedia.org/wiki/ File:601_Verkehrsmuseum_Nuernberg_11092010_complete_train.JPG 4 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 5. Aufgaben von V5T11 • Visualisierung des Gleisplans. • Anzeige von Gleisbelegungen. • Reservieren und Freigeben von Fahrstraßen inklusive der dazu nötigen Weichen- und Signalstellungen. • Keine Automatisierung des Fahrbetriebs! 5 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 6. Mehrzugsteuerung Selectrix • Keine getrennten Stromkreise • Loks enthalten Decoder • erhalten Befehle über die Gleisspannung – Geschwindigkeit, Richtung – Licht – Horn – … 6 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 7. Mehrzugsteuerung Selectrix • Zentrale – Gleisspannung – SX-Bus • Funktionsdecoder – Steuerung von Weichen, Signalen • Besetztmelder – Überwachung von Gleisen • Interface – Konverter SX-Bus serielle Schnittstelle 7 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 8. Systemaufbau 8 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 9. Wer hat's erfunden? GEDOPLAN Code Camp 2012 9 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 10. Selectrix Connector • Anbindung des Selectrix-Systems • Bidirektionaler Connector nach JCA 1.6 • Outbound: Setzen und Abfragen von einzelnen Adressen – setValue(12, 0b01001110) Geschwindigkeitsstufe 14 vorwärts Licht an Horn aus 10 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 11. Selectrix Connector • Inbound: Melden von Zustandsänderungen – SelectrixMessage(90, 0b00100000) … Gleis 11 Gleis 12 Gleis 1 … 11 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 12. Selectrix Connector • Zugriff auf serielle und parallele Schnittstellen – commapi 2.0: uralt, stagniert – rxtx: GNU-Implementierung, derzeit auf rxtx.qbang.org zu finden – Java Communications 3.0: Oracle hat den Faden wieder aufgenommen; derzeit keine Windows- Implementierung 12 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 13. Betriebssteuerung • Geschäftslogik – Objektrepräsentation der Modellbahn (Loks, Weichen, Signale, Gleisabschnitte) – Objektrepräsentation der MZS (Zentrale, Funktionsdecoder, Besetztmelder) – Bidirektionale Synchronisation mit der MZS – Initialisierung aus XML-Konfig.-Datei – geplant: Speicherung des Systemzustandes in einer DB 13 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 14. Betriebssteuerung Selectrix Connector Steuerung Messaging/Events API (setValue) Funktions- Besetzt- Lok Lok decoder melder Weiche Gleis Signal 14 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 15. Betriebssteuerung • Systemzustand: @ApplicationScoped CDI Bean @ApplicationScoped public class SteuerungProducer { @Produces @ApplicationScoped private Steuerung steuerung; @PostConstruct private void init() { this.steuerung = XmlConverter.fromXml(Steuerung.class, …); … } 15 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 16. Betriebssteuerung • Fahrstraßensteuerung – Reservieren von Fahrstraßen = Stellen benötigter Weichen und Signale – Kollisionskontrolle 16 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 17. Betriebssteuerung • Serviceangebot für Clients Model (JSF) EJB (Remote) REST WS Steuerung Besetzt- Funktions- Lok Lok melder decoder Weiche Gleis Signal 17 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 18. Stellwerk • Visualisierung des Gleisplans • Stellen von Weichen und Signalen • Reservieren von Fahrstraßen • Anzeige von Gleisbelegungen 18 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 19. Stellwerk 19 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 20. Stellwerk • Ansatz im Code Camp – Gleisplan als SVG – Darstellung der Zustände per Transformation des Objektmodells hinter der Grafik – Listener-Registrierung auf Grafikelementen für User- Aktionen • Vielversprechend • Aus Zeitgründen nicht realisiert 20 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 21. Remote Control • Mobile Variante eines "Walk Around Controllers" – Auswahl einer Lok – Steuerung von Geschwindigkeit, Licht etc. 21 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 22. Demo 22 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 23. Impressionen aus dem Keller … 23 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 24. … und aus dem "echten Leben" • Steuerung eines fahrerlosen Transportsystems (FTS) 24 Java on Tracks – die Kind-im-Manne-Session dirk.weil@gedoplan.de
  • 25. Schön, dass Sie da waren! dirk.weil@gedoplan.de