FA K U LT Ä T F Ü R I N F O R M AT I K Technische Universität München. Bachelorarbeit in Informatik

Größe: px
Ab Seite anzeigen:

Download "FA K U LT Ä T F Ü R I N F O R M AT I K Technische Universität München. Bachelorarbeit in Informatik"

Transkript

1 FA K U LT Ä T F Ü R I N F O R M AT I K Technische Universität München Bachelorarbeit in Informatik K O N Z E P T I O N U N D R E A L I S I E R U N G E I N E R A N D R O I D B A S I E RT E N A P P L I K AT I O N Z U R S T E U E R U N G U N D Ü B E RWA C H U N G D E S F O RT I S S S M A RT E N E R G Y L I V I N G L A B lisa velden

2 FA K U LT Ä T F Ü R I N F O R M AT I K Technische Universität München Bachelorarbeit in Informatik K O N Z E P T I O N U N D R E A L I S I E R U N G E I N E R A N D R O I D B A S I E RT E N A P P L I K AT I O N Z U R S T E U E R U N G U N D Ü B E RWA C H U N G D E S F O RT I S S S M A RT E N E R G Y L I V I N G L A B D E S I G N A N D I M P L E M E N TAT I O N O F A N A N D R O I D A P P L I C AT I O N T O C O N T R O L A N D M O N I T O R T H E F O RT I S S S M A RT E N E R G Y L I V I N G L A B bearbeiterin: aufgabensteller: betreuerin: lisa velden pd dr. rer. nat. habil. bernhard schätz dagmar koß abgabedatum: 17. september 2012

3 E R K L Ä R U N G Ich versichere, dass ich diese Bachelorarbeit selbständig verfasst und nur die angegebenen Quellen und Hilfsmittel verwendet habe. München, 17. September 2012 Lisa Velden iii

4 A B S T R A C T The Smart Energy Living Lab is a demonstrator for a Smart Micro Grid, consisting of sensors, actuators and smart meters, which are interconnected via a messagebus to a server application and a database. The aim of this Smart Micro Grid is to measure and control the energy flow. In the context of this thesis an Android application was developed that provides the user with an overview of the device states and allows him to alter those states. iv

5 I N H A LT S V E R Z E I C H N I S 1 einführung Motivation Smart-Micro-Grid Android-Applikation als Benutzerschnittstelle Skizze der Arbeit smart-energy-living-lab bei fortiss 4 3 oberflächen-design Anforderungen an die Applikation Ansichten kommunikation mit dem smart-micro-grid Netzwerkkommunikation JSON und Gson SystemConnector software-design Activities StartIPActivity RoomChoiceActivity SmartGridActivity Datenstrukturen SmartGridObject SmartGridData Kommunikation UpdateTask SmartGridCommunication Listener schlussfolgerung Zusammenfassung Ausblick literatur 29 Anhang 30 a anhang 31 v

6 A B B I L D U N G S V E R Z E I C H N I S Abbildung 2.1 Architektur des Smart-Micro-Grids Abbildung 3.1 Sichten innerhalb der Android-Applikation.. 7 Abbildung 4.1 Integration der Android-Komponente Abbildung 5.1 Vereinfachtes Klassendiagramm Abbildung 5.2 Startansicht zur Eingabe der IP-Adresse Abbildung 5.3 Ansicht mit Raumauswahl Abbildung 5.4 Hauptansicht mit Gruppenübersicht Abbildung 5.5 Ansicht mit ausgeklappten Gerätelisten Abbildung A.1 Detaillierteres Klassendiagramm vi

7 A B K Ü R Z U N G E N API OSGi UI JMS JSON Application Programming Interface (Programmierschnittstelle) Open Services Gateway initiative User Interface (Benutzerschnittstelle) Java Message Service JavaScript Object Notation vii

8 E I N F Ü H R U N G motivation In Zeiten stetig steigender Energiepreise bei ebenfalls steigendem Bedarf ist effiziente Energienutzung ein essentielles Ziel. Weiterhin motivieren die zunehmenden ökologischen Auswirkungen klassischer Energieressourcen wie auch deren Knappheit eine Energiewende, die eine nachhaltige Energieversorgung mit erneuerbaren Energien anstrebt. Eine Schlüsselstellung nimmt hierbei die Dezentralisierung des Stromnetzes ein. Statt der Nutzung weniger Großkraftwerke, die die gesamte Netzlast tragen, findet eine verteilte Energiegewinnung und -speicherung statt. Diese Umstrukturierung führt zu dem Konzept von Smart-Grids, die Stromnetze mit Informationstechnologie verbinden. Durch die Hinzunahme der IT können Netzknoten miteinander kommunizieren und Stromverbrauch und -erzeugung einfacher regulieren, sodass Stromengpässe vermieden werden können. Zur nachhaltigen und effizienten Nutzung der verfügbaren Energiequellen gehört jedoch ebenso den Stromverbrauch der verwendeten Geräte im Auge zu behalten und um diesen reduzieren zu können, ist es nötig, dass die Geräte sinnvoll ansteuerbar sind. Dies wird durch die Verwendung der Informationstechnologie in einem Smart-Grid vereinfacht. Innerhalb des Smart-Grids kann es Nutzer geben, die die Energie, die sie selbst benötigen auch selbst produzieren und gegebenenfalls zu viel erzeugte Energie wieder an das globale Stromnetz zurückgeben. Solche Nutzer werden Prosumer genannt, da sie sowohl Konsument als auch Produzent sind. Im Rahmen eines Smart-Grids können Netzknoten, die als Prosumer agieren, als Smart-Micro-Grid aufgefasst werden Smart-Micro-Grid Nach [Her09] ist ein Smart-Micro-Grid ein kleines Energiesystem bestehend aus Stromerzeugungs-, Stromverteilungs- und Energiespeicherungskomponenten. Zusätzlich ist es mit Sensoren und einer Energiemanagementsoftware ausgestattet. Dieses System ist an ein größeres Stromnetz angeschlossen, kann aber auch als unabhängige Insel operieren. 1

9 1.2 skizze der arbeit Android-Applikation als Benutzerschnittstelle Ein wichtiges Anforderungsziel von Smart-Grids ist die Interoperabilität einzelner Komponenten und die Integration heterogener Geräte in das System. Da diese jedoch von verschiedenen Herstellern stammen können und es keine etablierten Standards gibt, gestaltet sich die Integration oft schwierig. Dieses Muster setzt sich bis zu den Benutzerschnittstellen solcher Systeme fort. Es existieren bereits eine Reihe von Lösungen zur Hausautomation, die in dieser Hinsicht mit einem Smart-Micro-Grid vergleichbar sind. Dort werden jedoch zumeist unternehmenseigene Benutzerschnittstellen entwickelt, wodurch keine Herstellerunabhängigkeit erreicht wird. Da heute der Gebrauch von Tablets und Smartphones jedoch immer alltäglicher wird, liegt es nahe, die vorhandenen Möglichkeiten zu nutzen und verschiedene Anwendungen in einem Gerät zu vereinigen. Android ist als offene und weit verbreitete Plattform für die Entwicklung einer solchen Benutzerschnittstelle sehr gut geeignet. Im Rahmen dieser Arbeit ist eine solche Benutzerschnittstelle als Android-Applikation für das Smart-Energy-Living-Lab bei fortiss entwickelt worden. 1.2 skizze der arbeit Kapitel 1 einführung Dieses Kapitel gibt dem Leser einen Überblick über die Arbeit und motiviert die Entwicklung einer Android-Anwendung für ein Smart-Micro-Grid. Kapitel 2 smart-energy-living-lab bei fortiss In diesem Kapitel wird das Smart-Engery-Living-Lab bei fortiss vorgestellt. Kapitel 3 oberflächen-design Um die Benutzung und Funktionsweise der Applikation zu verdeutlichen, wird in diesem Kapitel das Oberflächen-Design der Applikation erläutert und die Abfolge der einzelnen Ansichten dargestellt. Kapitel 4 kommunikation mit dem smart-micro-grid In diesem Kapitel werden die Schnittstelle zur Kommunikation zwischen Android-Anwendung und Smart-Micro-Grid-System sowie die dafür eingesetzten Techniken beschrieben. Kapitel 5 software-design Es wird detaillierter erklärt, wie die einzelnen Komponenten der Anwendung umgesetzt worden sind und miteinander kommunizieren.

10 1.2 skizze der arbeit 3 Kapitel 6 schlussfolgerung Die Arbeit schließt mit einer Zusammenfassung ab und erörtert verschiedene Möglichkeiten, die bestehende Anwendung weiter zu verbessern und zu entwickeln.

11 S M A RT- E N E R G Y- L I V I N G - L A B B E I F O RT I S S 2 Das Smart-Energy-Living-Lab, das bei fortiss entwickelt wird, ist ein Proof-of-Concept für ein Smart-Micro-Grid. Ein ausschnitthafter Überblick der Architektur dieses Smart-Micro-Grids ist in Abbildung 2.1 dargestellt. Die nachfolgende Beschreibung der Architektur orientiert sich an [Koß+12]. Die einzelnen Komponenten sind über einen Service-Bus, der sowohl asynchrone Unicast- als auch Multicast-Kommunikation zur Verfügung stellt, miteinander verbunden. Dieser wird durch die Apache ActiveMQ realisiert, die die Java Message Service (JMS) API implementiert. Ein Dienst, der an diesem Bus hängt, kann nun Informationen mit einem anderen Dienst austauschen, wenn er den Namen des Service-Busses sowie den Namen des benötigten Dienstes kennt. Das Bussystem empfängt und routet diese Nachrichten. Da es sich bei dem Smart-Micro-Grid um ein heterogenes System handelt, ist es nötig, eine herstellerunabhängige Softwareplattform zu verwenden, um die verschiedenen Komponenten einbinden zu können. Als solch eine Softwareplattform dient das OSGi-Framework, welches das Smart-Micro-Grid als Komponentenmodell modularisiert. In diesem Framework werden die einzelnen Komponenten Bundles genannt und als Service registriert. Somit können sie nach Bedarf mitinstalliert oder auch weggelassen werden, was das System sehr flexibel macht. LocationManager Persistency RuleSystem Service Bus (JMS) EnOcean Wrapper IPSwitch Wrapper Wrapper... Abbildung 2.1: Architektur des Smart-Micro-Grids 4

12 smart-energy-living-lab bei fortiss 5 Ein essentieller Bestandteil des Smart-Micro-Grids ist der LocationManager, der die Topologie des Systems als Graph abspeichert. Diese Struktur ermöglicht es, Abhängigkeiten und Zuordnungen zu modellieren. Der LocationManager kann somit dazu verwendet werden, alle Geräte zu ermitteln, die einem bestimmten Raum zugeordnet sind. Dazu ist lediglich eine Graphtraversierung notwendig. Weiterhin werden Metadaten zu einzelnen Geräten im Location Manager gespeichert, wie z.b. die Kategorie, zu der ein Gerät zugeordnet wurde oder ein menschenlesbarer Name für dieses Gerät. Mit Hilfe von Wrappern werden gerätespezifische und proprietäre Protokolle abstrahiert, sodass sie eine Schnittstelle zwischen den Geräten und der eventbasierten Kommunikation des Bussystems bilden. EventHandler reagieren auf Events, die über das Bussystem propagiert wurden, und verarbeiten diese je nach ihrer Implementierung. Zwei EventHandler des Smart-Micro-Grids sind in Abbildung 2.1 rot unterlegt dargestellt. Einer davon ist das Regelsystem, welches testet, ob ein weiteres Event ausgelöst werden muss, um eine zuvor vom Administrator oder Nutzer definierte Regel zu erfüllen. Ein anderer EventHandler ist die Persistency, die Events dauerhaft abspeichert und eine Schnittstelle zum Abfragen gespeicherter Events anbietet. Aktuelle und vergangene Messwerte von Sensoren und Zustände von Geräten sind dadurch über die Persistency abrufbar.

13 O B E R F L Ä C H E N - D E S I G N anforderungen an die applikation Die Android-Applikation soll für einen auswählbaren Raum aus dem Smart-Energy-Living-Lab eine Geräteübersicht anzeigen. Dabei ist eine Anforderung, dass alle verfügbaren Geräte des Raumes gruppiert nach ihrer Kategorie darstellt werden und für jedes Gerät der aktuelle Zustand sichtbar ist. Sofern es für eine Kategorie sinnvoll erscheint, wird auch der Kategorie ein Wert zugeordnet. So gilt beispielsweise die Kategorie Licht als eingeschaltet, sobald mindestens ein reales Licht eingeschaltet ist. Ebenso wird die Kategorie Fenster als offen angezeigt, wenn mindestens ein Fenster geöffnet ist. Wohingegen für die Darstellung der Temperatur ein Durchschnittswert aller Temperatursensoren im Raum als Übersichtswert herangezogen wird. 3.2 ansichten Bevor die Übersicht für einen bestimmten Raum angezeigt werden kann, muss zunächst der Raum ausgewählt und die entsprechenden Daten vom Server heruntergeladen werden. Um die dazu erforderlichen Eingaben des Benutzers zu erhalten, wurden zwei weitere Ansichten eingeführt, die in Abbildung 3.1 zu sehen sind. Auf der ersten Ansicht, mit der die Applikation startet, gibt der Nutzer die gewünschte IP-Adresse, über die auf den Service-Bus zugegriffen wird, ein. Um dem Nutzer das wiederholte Eingeben der gleichen Adresse zu ersparen, wird diese gespeichert und bei einem erneuten Start der Applikation bereits in das Eingabefeld eingetragen. Nachdem die Verbindung zum Smart-Micro-Grid-Server erfolgt ist, wird eine Übersicht aller verfügbaren Räume auf einer neuen Ansicht angezeigt. Nach der Auswahl eines Raumes gelangt man zu der gewünschten Geräteübersicht. 6

14 3.2 ansichten 7 Abbildung 3.1: Sichten innerhalb der Android-Applikation

15 K O M M U N I K AT I O N M I T D E M S M A RT- M I C R O - G R I D 4 Da es keine Portierung der ActiveMQ-Implementierung auf die Android-Plattform gibt und auch keine andere Message-Queue- Implementierung von JMS häufig auf Android verwendet wird, ist von einer direkten Anbindung der Applikation an den Service-Bus abgesehen worden. Stattdessen greift die Android-Anwendung über das HTTP-Protokoll auf die Daten, die im JavaScript Object Notation (JSON)-Format angeboten werden, zu. Somit ist der Datenaustausch unabhängig von den jeweiligen Implementierungen der Applikation und des Smart-Micro-Grid-Systems. 4.1 netzwerkkommunikation Die Android-Applikation sendet, um aktuelle Daten für einen bestimmten Raum zu erhalten, einen HTTP-Request an den Server. Diese Anfrage wird von der SystemConnector-Komponente, die als Schnittstelle zum Smart-Micro-Grid am Service-Bus hängt, verarbeitet. Eine Anfrage, die mit der GET-Methode versendet worden ist und deren URL auf /rooms endet, erwartet eine Liste der im System verfügbaren Räume als Antwort. Um für einen dieser Räume weitere Daten anzufordern, wird ebenfalls die GET-Methode verwendet und die ID des Raumes als Parameter mit in der URL übergeben. Steuerbefehle der Applikation werden als POST-Requests versendet, die im Message-Body ein SmartGridObject (siehe Kapitel 5) mit geändertem Value-Attribut haben. 4.2 json und gson Da die Daten, die zwischen der Android-Applikation und dem Smart-Micro-Grid ausgetauscht werden, Java-Objekte sind, werden diese serialisiert und im JSON-Format via HTTP übertragen. JSON ist als schlankes Datenaustauschformat [JSO] hierzu besonders geeignet und aufgrund seiner Programmiersprachenunabhängigkeit auch vielseitig einsetzbar. So kann dieses Austauschformat beibehalten werden, wenn die Applikation auf andere Plattformen wie z.b. ios oder Windows Mobile portiert wird. 8

16 4.3 systemconnector 9 Android Device Android Device JSON over HTTP LocationManager SystemConnector Persistency RuleSystem Service Bus (JMS) EnOcean Wrapper IPSwitch Wrapper Wrapper... Abbildung 4.1: Integration der Android-Komponente Für die Konvertierung von Java- und JSON-Objekten wird die Gson-Bibliothek [Goo12#2] benutzt, die tojson()-methoden bereitstellt, mit denen beliebige Java-Objekte in das JSON-Format serialisiert werden können. Um wieder aus einem JSON-Objekt ein Java- Objekt zu erhalten, wird die fromjson()-methode verwendet, der die gewünschte Klasse, zu der das zu erzeugende Java-Objekt gehört, als Parameter übergeben wird. Um Inkompatibilität vorzubeugen, sollte sowohl auf Applikations- als auch auf Serverseite immer nur eine Version der Gson-Bibliothek benutzt werden. 4.3 systemconnector Als Schnittstelle zwischen dem Smart-Micro-Grid-System und der Android-Applikation dient der SystemConnector. Wie Android- Geräte über diesen mit dem Smart-Micro-Grid verbunden werden, ist in Abbildung 4.1 schematisch dargestellt. SystemConnector erbt von der abstrakten HttpServlet-Klasse und überschreibt eine doget()- und eine dopost()-methode, um auf die GET bzw. POST-Methoden der HTTP-Requests zu reagieren. Um den SystemConnector als Servlet in der Activator-Klasse zu

17 4.3 systemconnector 10 registrieren, wird die entsprechende URL, unter der das Servlet von nun an erreichbar ist, dort eingetragen. Für diese Applikation ist das wobei SERVER_IP die IP-Adresse des Servers bezeichnet, auf dem das Smart-Micro-Grid-System läuft. Da die zuvor genannte Activator-Klasse das BundleActivator- Interface aus dem OSGi-Framework implementiert, dient diese Klasse auch dazu, den SystemConnector an das Bussystem des Smart-Micro- Grids anzubinden. Abhängig von der URL, mit der ein Request beim SystemConnector ankommt, löst dieser verschiedene Aktionen aus. Endet die URL mit /rooms, so wird eine Liste der im System verfügbaren Räume zurückgeschickt. Da die Räume logisch im Smart-Micro-Grid den Queues zugeordnet sind, entspricht die Menge der Räume allen Queues, die nicht mit Q enden. Beinhaltet die URL hingegen /android?room=room_id, wobei ROOM_ID den Identifikator eines bestimmten Raumes bezeichnet, werden alle Gerätedaten, die diesem Raum zugeordnet sind, an die Android-Applikation geschickt. Dazu wird zunächst unterschieden, ob bereits ein SmartGridData-Objekt existiert oder nicht. Falls noch keines existiert, so erzeugt die createdataobject(string room)-methode ein solches Objekt für den ihr übergebenen Raum. Andernfalls aktualisiert die updatedataobject(string room)- Methode, die Werte der Kinderelemente des bereits bestehenden Objekts, indem sie nach den entsprechenden Werten aus der ValueCache-Klasse fragt. In der zuletzt genannten Klasse werden die Werte bereits verwendeter Geräte zwischengespeichert. Da es sich bei ValueCache um einen EventHandler handelt, ist auch garantiert, dass immer aktuelle Werte in diesem Cache vorliegen. Wenn ein neues SmartGridData-Objekt erzeugt wird, dann wird zunächst mit Hilfe der Accumulate-Klasse die Durchschnittstemperatur des Raumes aus allen verfügbaren Temperatursensoren bestimmt. Anschließend wird für jede Gerätekategorie eine Liste erstellt, die Tupel bestehend aus ID, Name und aktuellem Wert eines Gerätes enthält. Die benötigten Geräteidentifikatoren können bestimmt werden, indem man den LocationManager ausgehend von dem gewünschten Raum aus traversiert. Dabei liefert der LocationManager auch den Namen, der später zur Anzeige der Geräte herangezogen wird. Wohingegen die Werte der Geräte, ebenso wie beim Aktualisieren, aus ValueCache gewonnen werden.

18 4.3 systemconnector 11 Die URL eines gültigen Requests mittels POST muss auf /android enden. In diesem Falle jedoch ohne Parameter, da man nicht an einem bestimmten Raum interessiert ist, sondern nur an dem SmartGridObject-Objekt, das geändert werden soll. Dazu wird über das WrapperInterface des bezeichneten Gerätes der neu erhaltene Wert aus dem SmartGridObject gesetzt.

19 S O F T WA R E - D E S I G N 5 In diesem Kapitel wird das Software-Design der Applikation diskutiert. Zur Verdeutlichung ist in Abbildung 5.1 ein vereinfachtes Klassendiagramm dargestellt. In Abbildung A.1 befindet sich eine detailliertere Version. 5.1 activities Wie in Kapitel 3 angesprochen, stellt die Applikation mehrere Ansichten zur Verfügung, die jeweils in einer Activity implementiert werden. Das zugehörige User Interface wird in einer XML-Datei definiert und als Ressource in die Applikation eingebunden. Aktionen oder weitere Anpassungen der UI-Elemente können dann im Programmcode der Activity umgesetzt werden. Activities werden in einem speziellen Thread ausgeführt, dem UI-Thread, dies ist der einzige Thread, von dem aus Änderungen an der UI vorgenommen werden sollten StartIPActivity Die erste Activity, mit der die Applikation startet, ist die StartIPActivity. Diese dient dazu, dass der Nutzer die IP-Adresse des Servers eingibt, auf dem das Smart-Micro-Grid-System läuft. Da das System bisher nur vor Ort im fortiss Smart-Energy-Living-Lab verwendet oder ersatzweise lokal simuliert werden kann, ist es nötig, verschiedene Adressen eingeben zu können. Die zugehörige Ansicht zu dieser Activity ist in Abbildung 5.2 dargestellt. Die eingegebene IP-Adresse wird in den darauffolgenden Activities verwendet, um sich mit dem System zu verbinden. Folglich ist es erforderlich, diesen Wert an die nächste Activity weiterzureichen. Theoretisch ist es möglich, der nachfolgenden Activity Werte mitzuteilen, indem mit Hilfe der Methode Intent.putExtras() zusätzliche Informationen übergeben werden. Da die Adresse jedoch in mehr als nur einer Activity benötigt wird, wird hier auf das SharedPreferences-Interface zurückgegriffen. Dieses Interface sorgt dafür, dass Schlüssel-Wert-Paare direkt auf dem Android-Gerät in einer XML-Datei gespeichert werden. Somit kann auch bei einem Neustart der Applikation auf diese Einträge zurückgegriffen werden. Diese Eigenschaft ermöglicht es, die zuletzt eingegebene IP-Adresse beim Start der Applikation in das Eingabefeld zu laden, wodurch der Nutzer die Adresse nicht jedes Mal neu eingeben muss, sie aber 12

20 5.1 activities 13 Abbildung 5.1: Vereinfachtes Klassendiagramm

21 5.1 activities 14 Abbildung 5.2: Startansicht zur Eingabe der IP-Adresse bei Bedarf ändern kann. Für die angelegte XML-Datei ist der Operationsmodus MODE_PRIVATE gewählt worden, da die Smart-Micro-Grid-Applikation die einzige Applikation auf dem Android-Gerät ist, die Zugang zu dieser Datei haben soll. Wenn der Nutzer sich mit dem System verbinden möchte, was in der Applikation technisch gesehen zunächst dem Aufruf der nächsten Activity entspricht, dann wird unmittelbar vor dem Aufruf der Activity die eingegebene Adresse mit einem regulären Ausdruck für IP-Adressen verglichen, um syntaktische Fehleingaben auszuschließen. Im Falle einer Fehleingabe erscheint ein Warnhinweis und der Nutzer hat die Möglichkeit, eine neue Eingabe zu machen. Andernfalls wird die nächste Activity, in diesem Fall die RoomChoiceActivity, gestartet RoomChoiceActivity Die RoomChoiceActivity zeigt eine Übersicht der Räume im Smart- Micro-Grid an. Dazu wird mit Hilfe des in Unterabschnitt beschriebenen SharedPreferences-Interface die abgespeicherte IP-Adresse aus der referenzierten XML-Datei ausgelesen und ein

22 5.1 activities 15 Abbildung 5.3: Ansicht mit Raumauswahl Thread gestartet, der eine HTTP-Verbindung zum Smart-Micro-Grid aufbaut. An wird ein Request gestellt, woraufhin der Server eine als JSON-Objekt serialisierte Liste der verfügbaren Räume zurücksendet. Diese Liste wird auf Applikationsseite in ein Array von Strings deserialisiert und für jeden Eintrag des Arrays ein RadioButton auf dem Bildschirm angezeigt. Aus der entstehenden Gruppe von RadioButtons kann der Nutzer den gewünschten Raum auswählen. Sobald der Show room -Button betätigt wird, wird die ID des gewählten Raumes ebenso wie zuvor die IP-Adresse in die SharedPreferences-Datei geschrieben und die nächste Activity gestartet. Falls der HTTP-Request an den Smart-Micro-Grid-Server keine Räume zurückgeliefert hat, wird wiederum ein Warnhinweis angezeigt, der diesmal durch Drücken von OK zur Kenntnis genommen werden muss. Da häufig das Aufrufen eines nicht erreichbaren Servers zu diesem Fehler führt, wird man anschließend wieder auf die vorhergehende StartIPActivity zurückgeleitet, um sich gegebenenfalls mit einer anderen IP-Adresse zu verbinden.

23 5.1 activities 16 Abbildung 5.4: Hauptansicht mit Gruppenübersicht SmartGridActivity Die zentrale Ansicht der Applikation ist die SmartGridActivity, da hier die Geräteübersicht des Raumes angezeigt wird und der Nutzer auch Aktionen auf den Geräten ausführen kann. So kann er verschiedene Lichter ein- und ausschalten oder die Sonnenblenden hoch- und herunterfahren lassen. Die einzelnen Geräte werden anhand ihrer Kategorie Gruppen zugeordnet, sodass beim Starten der SmartGridActivity zuerst eine Gruppenübersicht erscheint, was in Abbildung 5.4 dargestellt ist. Hier wird, wie in Kapitel 3 erwähnt, bereits die Durchschnittstemperatur angezeigt, sowie, ob nach Definition das Licht angeschaltet ist, die Fenster offen sind oder sich jemand im Raum befindet. Ein Klick auf eine Gruppe fährt eine detailliertere Unterliste aus, in der alle Geräte dieser Kategorie enthalten sind. Für jedes Gerät wird der Name angezeigt sowie der aktuelle Wert. Es gibt drei unterschiedliche Möglichkeiten, wie diese Kinderelemente der Gruppe angezeigt werden können: Handelt es sich bei dem Gerät um einen Sensor oder einen sonstigen Wert, der ausschließlich gelesen werden soll, so wird der Wert gegebenenfalls mit Einheit angezeigt.

24 5.1 activities 17 Abbildung 5.5: Ansicht mit ausgeklappten Gerätelisten Wenn der Wert des Gerätes veränderbar ist und es sich um einen Wert handelt, der nur genau zwei Zustände einnehmen kann wie an/aus, dann wird ein ToggleButton angezeigt, der durch Klicken seinen Zustand ändert. Ist der veränderliche Wert eine Fließkommazahl, dann gibt es neben dem Namen noch zwei weitere Anzeigen: Einen Schieberegler, um den Wert des Gerätes zu verstellen und zur besseren Lesbarkeit den aktuellen Wert als Text inklusive Einheit. In Abbildung 5.5 kann man diese detaillierte Ansicht mit ausgeklappten Kinderelementen sehen. Um eine solche ausklappbare Liste zu erzeugen, wird ein ExpandableListView verwendet, der in der Layout-XML-Datei der SmartGridActivity deklariert ist. Um diesen View zu verwenden, erweitert die SmartGridActivity eine ExpandableListActivity und verwendet einen ExpandableListAdapter, der dem ExpandableListView die anzuzeigenden Daten zur Verfügung stellt. Dieser Adapter ist dafür verantwortlich, die Kinderelemente in der richtigen Gruppe anzuzeigen und Views sowohl für die Gruppen- als auch die Kinderelemente zu instantiieren.

25 5.1 activities 18 Ein View unter Android entspricht entweder einem einzelnen UI-Element oder einer Kombination daraus. Vor allem für interaktive UI-Komponenten werden spezielle Unterklassen von View angeboten, um verschiedene Funktionalitäten anbieten zu können. In dieser Applikation sind die Views der Kinderelemente RelativeLayouts, die wiederum weitere UI-Elemente wie TextViews oder ToggleButtons enthalten. ExpandableListAdapter ist ein Interface, das für diese Applikation von der Klasse DeviceListAdapter implementiert wird. Neben der Erweiterung der ExpandableListActivity- Klasse, implementiert SmartGridActivity auch das ICallbackHandler-Interface, um auf Daten zu reagieren, die von SmartGridCommunication empfangen werden. Die Kommunikation der einzelnen Klassen innerhalb der Android-Applikation wird in Abschnitt 5.3 ausführlicher erklärt. Dort wird auch der UpdateTask beschrieben, der in der oncreate()-methode der SmartGridActivity, also gleich beim Start, erzeugt wird und von dort aus alle 50 Sekunden neu gestartet wird. DeviceListAdapter DeviceListAdapter wird als Adapter für den ExpandableListView in SmartGridActivity gesetzt und verwaltet die Daten für die Gruppen und deren Kinder, die später angezeigt werden sollen. Diese Daten stammen aus einem SmartGridData-Objekt (siehe Unterabschnitt 5.2.2). Bei der Erzeugung einer DeviceListAdapter-Instanz wird zunächst ein leeres SmartGridData-Objekt konstruiert, welches später durch ein neues Objekt überschrieben wird, das die vom Smart-Micro-Grid empfangenen Daten enthält. Zur Verwaltung dieser Daten dient zunächst ein statisches Array für die Gruppen: { "Temperature", "Heating", "Blinds", "Light", "Person in room", "Windows" } Die Kinder werden in zwei verschiedenen Arrays verwaltet, die jeweils Listen von SmartGridObjects enthalten und wie folgt umgesetzt sind: Ein Array vom Typ List<SmartGridDoubleObject>[] für Fließkommawerte und ein Array vom Typ List<SmartGridBoolObject>[], das die Elemente mit boolean-werten beinhaltet. Diese Aufteilung wird durch das Java-Typsystem erzwungen. Jede Liste dieser SmartGridObject-Objekte repräsentiert alle Geräte des

26 5.1 activities 19 Raumes, die zu einer bestimmten Kategorie gehören und somit einer der oben erwähnten Gruppen zugeordnet werden können. Die Werte für diese Listen stammen aus den entsprechenden Collections von SmartGridData, die in Unterabschnitt näher erläutert werden. Der Index, an dem eine bestimmte Liste im Array gespeichert wird, ist der gleiche, an dem auch der Gruppenname im Gruppenarray gespeichert wird. Da dies zumindest für eines der beiden Arrays nicht zutreffen kann, ist folgende Konvention getroffen worden: Die ersten drei Gruppen, die Elemente mit double-werten enthalten, werden zuerst in der Raumübersicht angezeigt, sodass hier die Bedingung erfüllt ist. Für die restlichen Listen muss ein Offset von der Größe des Arrays mit double-werten beachtet werden. DeviceListAdapter implementiert das ExpandableListAdapter- Interface, indem es von BaseExpandableListAdapter erbt. Er überschreibt einige Funktionen der abstrakten Superklasse, die der Adapter benötigt, um den ExpandableListView zu generieren: Für die Gruppenübersichten werden folgende Methoden überschrieben, wobei der Integer-Parameter groupposition, der bei einigen dieser Methoden übergeben wird, dem Index des statischen Gruppenarrays entspricht: getgroupid(): gibt groupposition zurück getgroupcount(): gibt die Anzahl der Gruppen zurück, also die Länge des Gruppenarrays getgroup(): gibt die Gruppe an der Stelle groupposition zurück getgroupview() Bei der Anzeige der Kinderelemente spielt der Integer- Parameter childposition eine entscheidende Rolle. Er gibt die Position an, an der ein Gerät innerhalb seiner Liste auftaucht. Hier muss Folgendes überschrieben werden: getchildid(): gibt childposition zurück getchildrencount(): gibt die Anzahl der Kinder einer Gruppe zurück, also die Größe der betreffenden Liste getchild(): gibt das Kind zurück, dass sich in der Liste, die an Index groupposition gespeichert ist, befindet und innerhalb der Liste dann an Position childposition zu finden ist. Wegen der getrennten Speicherung von boolean- und double-elementen muss man bei den boolean-elementen, wenn diese Methode aufgerufen wird, die Länge des List<SmartGridDoubleObject>-Arrays von groupposition abziehen. getchildview()

27 5.1 activities 20 getgroupview() und getchildview() erzeugen schließlich den View, der in der Applikation zu sehen ist. Dazu wird in getgroupview() ein neuer TextView erzeugt, der den Gruppennamen und gegebenenfalls einen Übersichtswert enthält. getchildview() entscheidet, ob es sich bei dem anzuzeigenden Kind um ein Gerät handelt, dessen Wert nur gelesen wird oder um ein Gerät mit boolean-wert oder um eines mit double-wert. Für jede dieser drei Möglichkeiten gibt es eine Layout-XML- Datei, die eben neben dem Label entweder einen TextView, einen ToggleButton oder eine Kombination aus SeekBar und TextView bereitstellt. Abhängig davon, welcher Typ benötigt wird, wird der entsprechende View aus der zugehörigen XML- Datei erstellt und die View-Elemente mit Name und Wert des Gerätes belegt. Ein Beispiel für eine solche Layout-XML-Datei befindet sich in Listing A.1. Zuletzt werden auch noch ischildselectable() und hasstableids() überschrieben, die beide true zurückliefern. Da die Gruppen statisch sind und die Geräte in den Listen sortiert, hat auch jedes Element und jede Gruppe immer wieder die gleiche ID, weshalb dem ExpandableListView stabile IDs zugesichert werden können und somit Optimierungen bei der Anzeige vorgenommen werden können. Neben der Erweiterung der BaseExpandableListAdapter- Klasse implementiert DeviceListAdapter auch - ebenso wie SmartGridActivity - das ICallbackHandler-Interface, um die aktuellen Daten aus SmartGridCommunication, der Klasse für den Empfang der Smart-Micro-Grid-Daten (siehe Unterabschnitt 5.3.2), entgegenzunehmen. Für die Implementierung des ICallbackHandlers wird die Methode response() überschrieben, die synchronisiert werden muss, da es möglich ist, dass mehrere Threads auf sie zugreifen. Dieser Methode werden die vom Smart-Micro-Grid neu empfangenen Daten als SmartGridData-Objekt übergeben, mit dem das interne SmartGridData-Objekt in DeviceListAdapter überschrieben wird. Zusätzlich werden die nicht-statischen Listen der Kinderelemente aktualisiert und es wird dafür gesorgt, dass die Übersichtswerte der Gruppen neu berechnet werden. Zuletzt wird notifydatasetchanged() aufgerufen, um dem Adapter mitzuteilen, dass sich die Daten geändert haben und eine Aktualisierung der Anzeige notwendig ist.

28 5.2 datenstrukturen datenstrukturen Um die Daten, die von dem Smart-Micro-Grid empfangen werden, geeignet verwalten zu können, sind zwei Datenstrukturen entworfen worden. Die erste ist SmartGridObject, die ein einzelnes Gerät aus dem Smart-Micro-Grid repräsentiert, wohingegen die zweite Datenstruktur namens SmartGridData den ganzen Raum darstellt, indem dort Listen von SmartGridObject-Objekten sortiert nach ihrer Kategorie abgespeichert werden SmartGridObject Eine Instanz der Klasse SmartGridObject beschreibt ein Gerät aus dem Smart-Micro-Grid und besitzt drei Attribute: id: entspricht der internen ID des Living-Lab-Demonstrators, d.h. sie ist nach dem Schema queue-name?interal-device-id aufgebaut name: der Name, der später in der UI angezeigt wird und dem HRNName, also dem menschenlesbaren Namen, entspricht, der für die entsprechende ID im LocationManager hinterlegt ist value: der aktuellste Wert, den die Persistency für die entsprechende ID liefert Die letzten beiden Attribute werden für die Darstellung des Gerätes im ExpandableListView benötigt. Die ID wird gebraucht, um jedes Gerät eindeutig identifizieren zu können und vor allem, um auf Smart-Micro-Grid-Seite zum Ändern des Wertes wieder darauf zugreifen zu können. SmartGridObject<T> ist als generische Klasse modelliert worden, da der Wert des Gerätes entweder ein boolean oder ein double Wert sein kann. Da ungebundene generische Parameter in Java jedoch vom Compiler gelöscht werden, um keinen Laufzeit-Overhead zu erzeugen [Ora12], gibt es zwei Klassen, die von SmartGridObject erben. Genauer erbt SmartGridDoubleObject von SmartGridObject<Double> und SmartGridBoolObject von SmartGridObject<Boolean>. Außerdem implementiert SmartGridObject das Comparable<T>- Interface, das für die Einsortierung der Objekte in den Collections von SmartGridData erforderlich ist.

29 5.2 datenstrukturen SmartGridData Mit der Klasse SmartGridData werden die einzelnen SmartGridObject-Objekte eines Raumes verwaltet. Für den Raum gibt es ein roomid-attribut und für jede Kategorie von Geräten gibt es eine Collection, die alle Geräte dieser Kategorie aus dem Raum beinhaltet. Wenn diese Geräte Fließkommawerte haben, dann werden sie in einer Collection<SmartGridDoubleObject> abgespeichert, andernfalls in Collection<SmartGridBoolObject>. Als Implementierung dieser Collections dient jeweils ein TreeSet<E>, in dem die Elemente alphabetisch sortiert vorliegen und in O(log n) hinzugefügt werden können. Darum ist es erforderlich, dass SmartGridObject Comparable<T> implementiert, da das Überschreiben der compareto()-methode ermöglicht, dass eine alphabetische Sortierung als natürliche Sortierung der Objekte angesehen wird. Neben den Methoden für die Gerätelisten, stellt SmartGridData auch Methoden für die Gruppenübersichtswerte bereit. So gibt die Methode isoneset() an, ob mindestens ein Element der übergebenen Collection<SmartGridBoolObject> auf true gesetzt ist, was der bereits erwähnten Konvention entspricht, dass die Gruppenübersicht einer boolean-kategorie einen positiven Wert anzeigt, sobald mindestens eines der Kinder einen positiven Wert hat.

30 5.3 kommunikation kommunikation Für die Kommunikation ist auf Seiten des Smart-Micro-Grids der SystemConnector verantwortlich und auf Applikationsseite ist die entsprechende Schnittstelle SmartGridCommunication, die andere Klassen benutzen, um Anfragen zu stellen oder zu bearbeiten UpdateTask Der UpdateTask ist dafür zuständig, den gesamten Datensatz aus SmartGridData regelmäßig zu aktualisieren. Dazu wird dieser Task ab dem Start der SmartGridActivity von dieser Klasse aus alle 50 Sekunden neu gestartet. Um solch einen zeitlich festgelegten Ablauf zu ermöglichen, erweitert UpdateTask die abstrakte Klasse TimerTask, deren run()-methode aus dem Runnable-Interface überschrieben werden muss. Dies geschieht, indem innerhalb von run() die refresh()- Methode der SmartGridCommunication-Klasse aufgerufen wird SmartGridCommunication Die Hauptklasse für die Kommunikation mit dem Smart-Micro-Grid ist SmartGridCommunication. Dies ist eine generische Klasse, um auch die Verwendung generischer SmartGridObject-Objekte zuzulassen. Damit man sich jedoch bei der Erzeugung einer Instanz dieser Klasse nicht um den Typ eines eventuell übergebenden SmartGridObjects kümmern muss, ist der Konstruktor von SmartGridCommunication von außen nicht sichtbar. Stattdessen wurden drei statische Methoden eingeführt, die jeweils ein SmartGridCommunication-Objekt zurückgeben: constructvoidcommunication(icallbackhandler cb, Context context) constructcommunication(smartgridobject<v> req, Context context) und constructcommunication(icallbackhandler cb, SmartGridObject<V> req, Context context) Die erste Methode wird verwendet, wenn nur Daten vom Smart- Micro-Grid gelesen werden sollen, aber kein SmartGridObject dahin zurückgeschickt wird. Die letzten beiden Methoden sind dazu da, auch das interne SmartGridObject zu setzen, das an das Smart- Micro-Grid gesendet werden soll, um dort den entsprechenden Wert des Gerätes zu aktualisieren. Bei einer der beiden Methoden wird ein ICallbackHandle-Interface übergeben. Dieser Mechanismus wird zur Anzeige der aktualisierten Daten im ExpandableListView eingesetzt.

31 5.3 kommunikation 24 Innerhalb des privaten Konstruktors werden das interne SmartGridObject-Objekt sowie das ICallbackHandler-Objekt gesetzt und sowohl die IP-Adresse als auch der in RoomChoiceActivity gewählte Raum aus SharedPreferences ausgelesen. Mit Hilfe der IP-Adresse wird die URL zusammengebaut, die für die Verbindung zum Smart-Micro-Grid-Server benötigt wird. Eine weitere statische Methode dieser Klasse ist refresh(), die von UpdateTask aus aufgerufen wird und für die Aktualisierung der Anzeige in der Applikation neue Daten beim Smart-Micro-Grid abruft. Dazu wird eine SmartGridCommunication- Instanz mit constructvoidcommunication( ICallbackHandler cb, Context context) erzeugt und ausgeführt. Das erzeugte SmartGridCommunication-Objekt wird abgespeichert und bei einem erneuten Aufruf von refresh() wird nur ein neues Objekt erzeugt, wenn die zuvor angelegte Variable null ist. Sobald der Aktualisierungsvorgang abgeschlossen ist, wird diese Referenz wieder auf null gesetzt, sodass immer nur ein Aktualisierungstask existiert. Dennoch dürfen das Erzeugen dieses Tasks sowie das null-setzen nur exklusiv vonstatten gehen. Da jedoch Objekte mit Wert null nicht gesperrt werden können, gibt es ein extra Objekt refreshtasklock, das die kritischen Abschnitte umschließt und nur für dessen Sperrung zuständig ist. Eine Instanz von SmartGridCommunication ist ausführbar, stellt also die Methode execute() bereit, da die Klasse die abstrakte Klasse AsyncTask erweitert. AsyncTask ist eine android-spezifische Klasse, die die Ausführung aufwändiger Operationen im Hintergrund ermöglicht ohne den UI-Thread zu blockieren, aber dennoch das Ergebnis dieser Operationen an den UI-Thread weiterleitet. Es handelt sich dabei um eine generische Klasse mit drei generischen Typen: Params, Progress und Result, die als Parametertypen für die Methoden der vier Schritte eines AsyncTasks erforderlich sind: 1. onpreexecute() 2. doinbackground() 3. onprogressupdate() 4. onpostexecute() onpreexecute() und onprogressupdate() werden in dieser Applikation nicht benötigt, könnten jedoch dafür benutzt werden, den Fortschritt der Ausführung mit einem animierten ProgressBar anzuzeigen. doinbackground() ist die einzige abstrakte Methode, die überschrieben werden muss. Hier wird entweder dopost() aufgerufen, falls das interne SmartGridObject nicht null ist oder, wenn es

32 5.3 kommunikation 25 null ist, doget(). In onpostexecute() wird dann das Ergebnis der doinbackground()-methode an den UI-Thread weitergegeben, jedoch nur, wenn das ICallbackHandler-Objekt nicht mit null initialisiert worden ist. Außerdem wird, sofern es sich bei der aktuellen Instanz von SmartGridCommunication um einen Aktualisierungstask handelt, das refreshtask-objekt wieder auf null gesetzt. Da bei keiner dieser Methoden von AsyncTask die übergebenen Parameter berücksichtigt werden, sondern immer nur auf durch den Konstruktor gesetzte interne Objekte zurückgegriffen wird, werden Params, Progress und Result als Void definiert, sodass die Klasse AsyncTask<Void, Void, Void> erweitert wird. Die Methoden doget() und dopost() sind für den Datenaustausch mit dem Smart-Micro-Grid zuständig. Dort wird jeweils eine HTTP- Verbindung zum Server aufgebaut. Im Falle von doget() wird an die URL, mit der die Verbindung aufgebaut wird, noch ein Parameter angehängt, der die ID des anzuzeigenden Raumes angibt. Diese wurde zuvor in SharedPreferences abgespeichert und ist darum jetzt zugänglich. Wenn die Verbindung aufgebaut wurde, werden die Daten vom Server gelesen und sofort mittels Gson (siehe Abschnitt 4.2) in eine Instanz der SmartGridData-Klasse umgewandelt. Diese Instanz beinhaltet somit alle neuen Raumdaten und wird in onpostexecute() an den UI-Thread übermittelt. Die Methode dopost() ist dafür verantwortlich, ein SmartGridObject, in dem das value-attribut verändert worden ist, an das Smart-Micro-Grid zu schicken. Dieses Objekt ist bei einer der constructcommunication()-methoden übergeben worden und wird hier in den Ausgabestrom der HTTP-Verbindung geschrieben. In diesem Fall müssen keine Daten vom Server gelesen werden, da der entsprechende Wert intern bereits geändert worden ist und der UpdateTask sich darum kümmert, Daten, die außerhalb der Applikation geändert worden sind, zu holen.

33 5.3 kommunikation Listener Es gibt zwei Listener, die auf Aktionen in der UI hören: OnBoolClickListener und OnDoubleChangeListener OnBoolClickListener löst, sobald ein ToggleButton geklickt wurde, eine onclick()-methode aus, die den Wert des Gerätes, zu dem der ToggleButton gehört, ändert und eine neue Instanz von SmartGridCommunication ausführt, damit diese den geänderten Wert an das Smart-Micro-Grid übertragen kann. Außerdem wird DeviceListAdapter informiert, dass sich die Daten geändert haben, damit die Anzeige aktualisiert wird. OnDoubleChangeListener hört darauf, ob der Regler der SeekBar eines Gerätes mit double-werten bewegt wurde. Wenn ja, wird sich der neue Wert gemerkt und in dem Textfeld neben der SeekBar ausgegeben. Ist der Verschiebevorgang des Reglers beendet, wird auch der Wert im SmartGridObject-Objekt angepasst und dieses Objekt wie bei dem OnBoolClickListener an SmartGridCommunication übergeben und DeviceListAdapter über die Veränderung in Kenntnis gesetzt. Beide Listener implementieren überdies das ICallbackHandler- Interface, womit realisiert werden kann, dass immer nur ein Änderungsvorgang gleichzeitig stattfinden darf.

34 S C H L U S S F O L G E R U N G zusammenfassung Es ist eine Applikation entwickelt worden, die es ermöglicht, einem Büronutzer einen Raum aus dem Smart-Energy-Living-Lab anzuzeigen, sodass er eine Übersicht aller vorhanden Geräte erhält und auch Änderungen an diesen vornehmen kann. 6.2 ausblick Denkbar wäre es nun, die Sicht des Büronutzers soweit einzuschränken, dass er nur das Büro sehen kann, in dem er tatsächlich arbeitet oder die Räume sehen kann, für die er eine Berechtigung besitzt. Dazu könnte man die Applikation um ein Login- und Authentisierungsmodul erweitern, das derzeit für die Webschnittstelle des Smart-Energy-Living-Labs entwickelt wird. Außerdem ist es möglich, dem Nutzer weitere Werte anzuzeigen. Ein Beispiel hierzu wären Helligkeitswerte, wobei sowohl der Tageslichtwert als auch der Wert im Raum selbst angezeigt werden können. Dazu muss lediglich die SmartGridData -Modellierung um eine weitere Kategorienliste ergänzt und diese mit Daten gefüllt werden. Zudem könnten Detailansichten für die einzelnen Geräte eingeführt werden, in denen zusätzliche Informationen wie z.b. der Energieverbrauch des Gerätes aufgeführt sind. An dieser Stelle könnte man auch ältere Daten abrufen, sodass sich der Stromverbrauch oder Temperaturverlauf über einen bestimmten Zeitraum graphisch darstellen lassen. Um dies zu realisieren, muss jedoch das zugrundeliegende Datenmodell erweitert werden, da es derzeit nur einen Wert für ein Gerät zulässt. Bisher werden durch Polling regelmäßig Daten vom Server abgerufen, um auch Werte zu erhalten, die außerhalb der Applikation geändert worden sind. Da nur in bestimmten Zeitabständen Daten abgefragt werden, kann es zu merklichen Verzögerungen kommen, bis diese in der Applikation angezeigt werden. Außerdem ist die Netzwerklast sehr hoch, da regelmäßig große Datenpakete transferiert werden, auch wenn eigentlich keine Änderung der Daten stattgefunden hat. Diese Probleme könnten durch eine Umstellung auf Push- Benachrichtigungen umgangen werden. Google hat dazu im Juli den neuen Service Google Cloud Messaging for Android (GCM) [Goo12#1] 27

35 6.2 ausblick 28 veröffentlicht, der es ermöglicht mittels Push Nachrichten von einem Server zu einer Android-Applikation auf ein Android-Gerät zu senden, diese in Nachrichtenwarteschlangen einzureihen und bei Erreichbarkeit der Applikation zuzustellen.

36 L I T E R AT U R [Goo12#1] Google Inc. Google Cloud Messaging for Android url: m/index.html. [Goo12#2] [Her09] [JSO] [Koß+12] [Ora12] Google Inc. Gson API. Juli url: e-gson.googlecode.com/svn/trunk/gson/docs/javadoc s/index.html. C. Hertzog. Smart Grid Dictionary. GreenSpring Marketing LLC, isbn: JSON. Einführung in JSON. url: D. Koß u. a. Establishing a Smart Grid Node Architecture and Demonstrator in an Office Environment Using the SOA Approach. In: First International Workshop on Software Engineering Challenges for the Smart Grid. Conference Publishing Solutions, 2012, S Oracle. Type Erasure url: m/javase/tutorial/java/generics/erasure.html. 29

37 A N H A N G 30

38 A N H A N G A Listing A.1: Layout-XML-Datei für Gerät mit ToggleButton <?xml version=" 1. 0 " encoding=" utf 8"?> <RelativeLayout xmlns:android= " h t t p : //schemas. android. com/apk/res/android " android:layout_width=" f i l l _ p a r e n t " android:layout_height=" 64 dip " a n d r o i d : g r a v i t y=" c e n t e r _ v e r t i c a l " "> <TextView " s t y l e " a n d r o i d : l a y o u t _ a l i g n P a r e n t L e f t =" true " a n d r o i d : l a y o u t _ c e n t e r V e r t i c a l =" true " /> <ToggleButton " android:layout_width=" wrap_content " android:layout_height=" wrap_content " android:layout_marginright=" 6dip " android:layout_alignparentright=" true " android:texton=" on " a n d r o i d : t e x t O f f =" o f f " /> </RelativeLayout> 31

39 anhang 32 Abbildung A.1: Detaillierteres Klassendiagramm

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Mobile Computing I. Tickapp Projekt. Dustin Augstein, Thomas Filbry, Eric Jahn Sommersemester 2011. Prof. Dr. Jörg Sahm

Mobile Computing I. Tickapp Projekt. Dustin Augstein, Thomas Filbry, Eric Jahn Sommersemester 2011. Prof. Dr. Jörg Sahm Mobile Computing I Tickapp Projekt Dustin Augstein, Thomas Filbry, Eric Jahn Sommersemester 2011 Prof. Dr. Jörg Sahm Inhaltsverzeichnis Abbildungsverzeichniss... 3 1. Beschreibung der Anwendung... 4 1.1

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Sophos Mobile Control Benutzerhandbuch für Android

Sophos Mobile Control Benutzerhandbuch für Android Sophos Mobile Control Benutzerhandbuch für Android Produktversion: 2 Stand: Dezember 2011 Inhalt 1 Über Sophos Mobile Control... 3 2 Einrichten von Sophos Mobile Control auf einem Android-Mobiltelefon...

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

Mehr

Handbuch Groupware - Mailserver

Handbuch Groupware - Mailserver Handbuch Inhaltsverzeichnis 1. Einführung...3 2. Ordnerliste...3 2.1 E-Mail...3 2.2 Kalender...3 2.3 Kontakte...3 2.4 Dokumente...3 2.5 Aufgaben...3 2.6 Notizen...3 2.7 Gelöschte Objekte...3 3. Menüleiste...4

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Accounts und Kontakte in Android

Accounts und Kontakte in Android Accounts und Kontakte in Android Die letzten Wochen habe ich daran gearbeitet, die Kontakte der AddressTable von Leonardo und mir ins Android Adressbuch zu bringen. Dazu habe ich die AddressManagement-Applikation

Mehr

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Das Programm Mensch ärgere Dich nicht ermöglicht das Spielen des gleichnamigen Spieles über Netzwerke. Jeder Spieler verfügt dabei über einen Clienten,

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter Einführung in die Android App-Entwicklung Patrick Treyer und Jannis Pinter Agenda Was ist Android? Android Versionen Layout, Strings und das Android Manifest Activities, Intents und Services Entwicklungsumgebung

Mehr

0. Inhaltsverzeichnis

0. Inhaltsverzeichnis 0. Inhaltsverzeichnis 0. Inhaltsverzeichnis...1 1. Kurze Einführung WebService Architektur...2 1.1 Synchrones Modell:...2 1.2 Asynchrones Modell:...2 1.3 Vorteile:...3 1.4 Voraussetzungen...3 2. Testseite

Mehr

Vgl. Oestereich Kap 2.7 Seiten 134-147

Vgl. Oestereich Kap 2.7 Seiten 134-147 Vgl. Oestereich Kap 2.7 Seiten 134-147 1 Sequenzdiagramme beschreiben die Kommunikation/Interaktion zwischen den Objekten (bzw. verschiedenen Rollen) eines Szenarios. Es wird beschrieben, welche Objekte

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen

Mehr

Synchronisation des Temperatur-Loggers

Synchronisation des Temperatur-Loggers Synchronisation des Temperaturloggers Juni 10, 2010 1 / 7 Synchronisation des Temperatur-Loggers Einführung Zwei oder mehr Installationen der Temperaturlogger-Software können so zusammen geschaltet werden,

Mehr

Access und OpenOffice.org

Access und OpenOffice.org Access-Datenbanken in OpenOffice.org 1.1 einbinden Herausgegeben durch das OpenOffice.org Germanophone-Projekt Autoren Autoren vorhergehender Versionen Timo Kozlowski Alle in diesem Dokument erwähnten

Mehr

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Web-Content-Management-Systeme () dienen dazu, komplexe Websites zu verwalten und den Autoren einzelner Webseiten möglichst

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Version 2.0.1 Deutsch 03.06.2014. In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Version 2.0.1 Deutsch 03.06.2014. In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen. Version 2.0.1 Deutsch 03.06.2014 In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen. Inhaltsverzeichnis... 1 1. Hinweise... 2 2. Konfiguration... 3 2.1. Generische

Mehr

Programmierung eines NewsTickers in Java

Programmierung eines NewsTickers in Java Programmierung eines NewsTickers in Java ( & ) Projektarbeit Programmiertechnik:Java NTA FH Isny 12. Info David Mayr / Andreas Krug Seite 1 von 7 ::: David Mayr / Andreas Krug [ 12. Info NTA FH Isny ]

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

KOGIS Checkservice Benutzerhandbuch

KOGIS Checkservice Benutzerhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 KOGIS Checkservice Benutzerhandbuch Zusammenfassung Diese Dokumentation beschreibt die Bedienung des KOGIS Checkservice. 4.2.2015

Mehr

Verwendung der Support Webseite

Verwendung der Support Webseite amasol Dokumentation Verwendung der Support Webseite Autor: Michael Bauer, amasol AG Datum: 19.03.2015 Version: 3.2 amasol AG Campus Neue Balan Claudius-Keller-Straße 3 B 81669 München Telefon: +49 (0)89

Mehr

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs Der Aufbau der MS Outlook Integration orientiert sich stark an den SmarTeam Integrationen zu den MS Office Produkten, wobei

Mehr

Scalera Mailplattform Dokumentation für den Anwender Installation und Konfiguration des Outlook Connectors

Scalera Mailplattform Dokumentation für den Anwender Installation und Konfiguration des Outlook Connectors Installation und Konfiguration des Outlook Connectors Vertraulichkeit Die vorliegende Dokumentation beinhaltet vertrauliche Informationen und darf nicht an etwelche Konkurrenten der EveryWare AG weitergereicht

Mehr

SMS versenden mit ewon über Mail Gateway Am Beispiel von dem Freemail Anbieter GMX wird diese Applikation erklärt

SMS versenden mit ewon über Mail Gateway Am Beispiel von dem Freemail Anbieter GMX wird diese Applikation erklärt ewon - Technical Note Nr. 014 Version 1.2 SMS versenden mit ewon über Mail Gateway Am Beispiel von dem Freemail Anbieter GMX wird diese Applikation erklärt Übersicht 1. Thema 2. Benötigte Komponenten 3.

Mehr

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

Bedienungsanleitung. Version 2.0. Aufruf des Online-Update-Managers. Bedienungsanleitung Online-Update Stand Juni 2010

Bedienungsanleitung. Version 2.0. Aufruf des Online-Update-Managers. Bedienungsanleitung Online-Update Stand Juni 2010 Bedienungsanleitung Online-Update Version 2.0 Aufruf des Online-Update-Managers Von Haus aus ist der Online-Update-Manager so eingestellt, dass die Updates automatisch heruntergeladen werden. An jedem

Mehr

Mobile Anwendungen Google Cloud Messaging

Mobile Anwendungen Google Cloud Messaging Mobile Anwendungen Google Cloud Messaging 1. Allgemeines zu Google Cloud Messaging (GCM): - 60% der Top 100 Apps nutzen Google Cloud Messagging - 200.000 Messages pro Sekunde = 17 Milliarden Messages pro

Mehr

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 23 2 / 23 Wie kommen Daten von einem Webserver? In der Praxis existieren verschiedene Wege, wie ein Server einem Client zu

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 13. Aufgabe (13 Punkte) Schreiben Sie eine neue Klasse Zahlenanalyse, mit der Integer-Objekte genauer betrachtet werden können. Bei den zu entwickelnden Methoden kann es immer sinnvoll sein, sich den Ablauf

Mehr

SiteAudit Knowledge Base. Move Add Change Tracking. Vorteile Übersicht. In diesem Artikel: Vorteile Übersicht Funktionsübersicht Berichte anpassen

SiteAudit Knowledge Base. Move Add Change Tracking. Vorteile Übersicht. In diesem Artikel: Vorteile Übersicht Funktionsübersicht Berichte anpassen SiteAudit Knowledge Base Move Add Change Tracking Dezember 2010 In diesem Artikel: Vorteile Übersicht Funktionsübersicht Berichte anpassen MAC Benachrichtigungen Vorteile Übersicht Heutzutage ändern sich

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Inhalt Toast-Meldungen Permissions Sensoren GPS (Global Positioning System) Kamera Anzeigen von Koordinaten auf einer

Mehr

Sophos Mobile Control Benutzerhandbuch für Apple ios

Sophos Mobile Control Benutzerhandbuch für Apple ios Sophos Mobile Control Benutzerhandbuch für Apple ios Produktversion: 2 Stand: Dezember 2011 Inhalt 1 Über Sophos Mobile Control... 3 2 Einrichten von Sophos Mobile Control auf einem Apple iphone... 4 3

Mehr

CAS genesisworld.exchange connect Abgleich von Adressen und Terminen

CAS genesisworld.exchange connect Abgleich von Adressen und Terminen Abgleich von Adressen und Terminen Stand Juni 2004 Was ist CAS genesisworld.exchange connect? Inhalt 1 Was ist CAS genesisworld.exchange connect?... 3 2 Systemvoraussetzungen... 5 2.1 Software...5 2.2

Mehr

Dokumentation Authentische Strukturdaten

Dokumentation Authentische Strukturdaten Dokumentation Version 1.1 Version 1.0 Seite 1/18 31.10.2008 Inhaltsverzeichnis 1. Allgemeines...3 1.1 Phasenmodell...3 1.1.1 Phase I...3 1.1.2 Phase II...3 1.1.3 Phase III...3 1.2 Datenaktualität...3 2.

Mehr

Versand von Einladungen zur Teilnahme an der Umfrage mit Seriendruck Funktion von Microsoft Office 2007

Versand von Einladungen zur Teilnahme an der Umfrage mit Seriendruck Funktion von Microsoft Office 2007 Versand von Einladungen zur Teilnahme an der Umfrage mit Seriendruck Funktion von Microsoft Office 2007 [Eine Schritt für Schritt Anleitung] Inhalt 1. Erstellen einer Liste mit Probandendaten... 2 2. Erstellung

Mehr

Inhalt. Fahrrad-Konfigurator 8 Allgemeine Bedienung 8 Laden von Internet Konfigurationen 9 Anlegen und bearbeiten von Vorordern 10.

Inhalt. Fahrrad-Konfigurator 8 Allgemeine Bedienung 8 Laden von Internet Konfigurationen 9 Anlegen und bearbeiten von Vorordern 10. 1 Inhalt Allgemeines 3 Module von Veloport 3 Arbeiten mit den Auswahldialogen 5 Anlegen von Lieferanten für die Online-Bestellung 6 Laufrad-Konfigurator 7 Seite Fahrrad-Konfigurator 8 Allgemeine Bedienung

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Bedienungsanleitung Modbus-LAN Gateway

Bedienungsanleitung Modbus-LAN Gateway Bedienungsanleitung Modbus-LAN Gateway Bedienungsanleitung Modbus-LAN Gateway Inhalt 1. Starten der Konfigurationsoberfläche des MLG... 3 2. Konfiguration MLG... 4 2.1. Network Settings... 4 2.1.1 Statische

Mehr

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling Open-Xchange Authentication & Sessionhandling Version Date Author Changes 1.0 28.08.2006 Stephan Martin Initiale Version 1.1 29.08.2006 Marcus Klein Details Authentication via JSON 1.2 04.09.2006 Stephan

Mehr

Technische Anforderungen. zum Empfang. von XML-Nachrichten

Technische Anforderungen. zum Empfang. von XML-Nachrichten Technische Anforderungen zum Empfang von XML-Nachrichten 25.11.2004 Peer Uwe Peters 2 1 Inhaltsverzeichnis 1 INHALTSVERZEICHNIS... 2 2 ZIEL DIESES DOKUMENTS... 3 3 KONTEXT... 3 4 SENDEWEG... 4 5 ERREICHBARKEIT...

Mehr

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI The expert for industrial and automotive communication IXXAT Hauptsitz Geschäftsbereich USA IXXAT Automation GmbH IXXAT Inc. Leibnizstr.

Mehr

PDF FormServer Quickstart

PDF FormServer Quickstart PDF FormServer Quickstart 1. Voraussetzungen Der PDF FormServer benötigt als Basis einen Computer mit den Betriebssystemen Windows 98SE, Windows NT, Windows 2000, Windows XP Pro, Windows 2000 Server oder

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Terminland Schritt für Schritt

Terminland Schritt für Schritt Einbindung von Terminland auf Smartphones und Tablets mit dem Betriebssystem Android Stand: 01.11.2013 Inhalt 1. Überblick... 2 2. Ermitteln der Internetadresse des Terminland-Terminplans... 2 3. Einbindung

Mehr

Kurzanleitung GigaMove

Kurzanleitung GigaMove Kurzanleitung GigaMove Dezember 2014 Inhalt Kurzerklärung... 1 Erstellen eines neuen Benutzerkontos... 2 Login... 5 Datei bereitstellen... 6 Bereitgestellte Datei herunterladen... 6 Datei anfordern...

Mehr

NEUERUNGEN IN VIVENDI MOBIL 5

NEUERUNGEN IN VIVENDI MOBIL 5 NEUERUNGEN IN VIVENDI MOBIL 5 PRODUKT(E): Vivendi Mobil KATEGORIE: Sonstiges VERSION: ab 5.00 Frage: In der Versionshistorie ist von der neuen Vivendi Mobil-Version 5 zu lesen. Welche Vorteile und Änderungen

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

März 2012. Funktionsweise von Eye-Fi Flussdiagramm-Übersicht

März 2012. Funktionsweise von Eye-Fi Flussdiagramm-Übersicht März 2012 Funktionsweise von Eye-Fi Flussdiagramm-Übersicht 2012 Visioneer, Inc. (ein Xerox-Markenlizenznehmer) Alle Rechte vorbehalten. XEROX, XEROX sowie Design und DocToMe sind eingetragene Marken der

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel XDK

Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK vertraut. Es wird Schritt für Schritt die erste eigene Hybrid-App entwickelt

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Integration Billpay in Intershop 7

Integration Billpay in Intershop 7 Integration Billpay in Intershop 7 Stand: 05.10.2012 Version: 1.0 Seite 2 von 7 Änderungshistorie Datum Version Bearbeiter Änderungen 05.10.2012 1.0 Mirko Stölzel Initiale Version Seite 3 von 7 Inhalt

Mehr

Benutzerdokumentation Hosted Backup Services Client

Benutzerdokumentation Hosted Backup Services Client Benutzerdokumentation Hosted Backup Services Client Geschäftshaus Pilatushof Grabenhofstrasse 4 6010 Kriens Version 1.1 28.04.2014 Inhaltsverzeichnis 1 Einleitung 4 2 Voraussetzungen 4 3 Installation 5

Mehr

dpa-infocom - Datenlieferung

dpa-infocom - Datenlieferung dpa-infocom - Datenlieferung Copyright 2006 von dpa-infocom GmbH Status des Dokuments: FINAL Inhaltsverzeichnis Inhaltsverzeichnis...1 1. Verzeichnisstrukturen...2 2. Nachrichtenmanagement...2 3. Datenübertragung...3

Mehr

Websense Secure Messaging Benutzerhilfe

Websense Secure Messaging Benutzerhilfe Websense Secure Messaging Benutzerhilfe Willkommen bei Websense Secure Messaging, einem Tool, das ein sicheres Portal für die Übertragung und Anzeige vertraulicher, persönlicher Daten in E-Mails bietet.

Mehr

Softwaretechnik (WS 11/12)

Softwaretechnik (WS 11/12) Universität Augsburg, LSt. Softwaretechnik, K. Stenzel, H. Seebach, G. Anders Softwaretechnik (WS 11/12) Lösungsvorschlag 5 Aufgabe 1 (System Behavior: System Sequence Diagrams) (10/5 Punkte) a) Was sind

Mehr

CloudMatic V1.0. Inhalt

CloudMatic V1.0. Inhalt CloudMatic V1.0 Inhalt Einleitung... 2 CCUs hinzufügen... 3 meine-homematic.de... 4 Eigenes VPN... 4 View Editor... 5 Übersicht... 5 Allgemeine Einstellungen... 6 Kanäle hinzufügen... 6 Spezielle Kanäle...

Mehr

ARAkoll 2013 Dokumentation. Datum: 21.11.2012

ARAkoll 2013 Dokumentation. Datum: 21.11.2012 ARAkoll 2013 Dokumentation Datum: 21.11.2012 INHALT Allgemeines... 3 Funktionsübersicht... 3 Allgemeine Funktionen... 3 ARAmatic Symbolleiste... 3 Monatsprotokoll erzeugen... 4 Jahresprotokoll erzeugen

Mehr

telpho10 Update 2.1.6

telpho10 Update 2.1.6 telpho10 Update 2.1.6 Datum: 31.03.2011 NEUERUNGEN... 2 STANDORTANZEIGE GESPERRTER IP ADRESSEN... 2 NEUE SEITE SYSTEM STATUS IN DER ADMINISTRATOR WEB-GUI... 2 NEUE SEITE SNOM FIRMWARE IN DER ADMINISTRATOR

Mehr

Softwaretool Data Delivery Designer

Softwaretool Data Delivery Designer Softwaretool Data Delivery Designer 1. Einführung 1.1 Ausgangslage In Unternehmen existieren verschiedene und häufig sehr heterogene Informationssysteme die durch unterschiedliche Softwarelösungen verwaltet

Mehr

PC-Kaufmann Supportinformation - Proxy Konfiguration für Elster

PC-Kaufmann Supportinformation - Proxy Konfiguration für Elster Seite 1 von 12 Dieses Dokument dient für Sie als Hilfe für die Konfiguration verschiedener Proxy-Server, wenn Sie Ihre Daten per Elster an das Finanzamt über einen Proxy-Server senden möchten. 1. Was ist

Mehr

BIF/SWE 1 - Übungsbeispiel

BIF/SWE 1 - Übungsbeispiel Arthur Zaczek Sep 2015 1 Übungsbeispiel embedded sensor cloud 1.1 Aufgabenstellung Auf einem [[tragen Sie bitte hier Ihr Embedded System Ihrer Wahl ein]] soll ein Messdaten Erfassungssystem implementiert

Mehr

Online Bedienungsanleitung elektronisches Postfach

Online Bedienungsanleitung elektronisches Postfach Online Bedienungsanleitung elektronisches Postfach 1. elektronisches Postfach 1.1. Prüfung ob das Postfach bereits für Sie bereit steht. 1.2. Postfach aktivieren 1.3. Neue Mitteilungen/Nachrichten von

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

NH-Schuldenverwaltung 2015 1. Neuerungen 2015. Excel-Ausgabe bei fast allen Auswertungen verfügbar

NH-Schuldenverwaltung 2015 1. Neuerungen 2015. Excel-Ausgabe bei fast allen Auswertungen verfügbar NH-Schuldenverwaltung 2015 1 Neuerungen 2015 Excel-Ausgabe bei fast allen Auswertungen verfügbar Fortan ist es möglich unter dem Menüpunkt Listen nahezu alle Auswertungen der Einzelpunkte auch nach Excel

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

Mehr

econsult WebAkte 1 Inhalt

econsult WebAkte 1 Inhalt econsult WebAkte 1 Inhalt 2 Allgemein... 2 3 Einstellungen... 3 4 Anlegen der econsult Akte... 4 5 WebAkte Mandant... 5 5.1 Berechtigung... 5 5.2 Mitteilung senden... 6 5.2.1 Dokumente... 6 5.2.2 econsult

Mehr

Bei Truecrypt handelt es sich um ein Open-Source Verschlüsselungs-Programm, das unter folgendem Link für verschiedene Plattformen verfügbar ist:

Bei Truecrypt handelt es sich um ein Open-Source Verschlüsselungs-Programm, das unter folgendem Link für verschiedene Plattformen verfügbar ist: Selbstdatenschutz Dropbox & Co. sicher nutzen "MEO - My Eyes Only" Um Unbefugten (inklusive dem Betreiber des Dienstes) die Einsicht in Dateien in Clouddiensten zu verwehren, sollte man diese verschlüsseln.

Mehr

Der PDF-Druck. EDIORG Software GmbH, Linz

Der PDF-Druck. EDIORG Software GmbH, Linz Der PDF-Druck Der Makler hat nun auch die Möglichkeit, ein als PDF generiertes Angebot per E-Mail 1. als Anhang oder 2. als Link zu versenden oder 3. wie bisher das PDF über WORD zu generieren. Es soll

Mehr

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch:

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch: O UTLOOK EDITION Was ist die Outlook Edition? Outlook Edition integriert Microsoft Outlook E-Mail in Salesforce. Die Outlook Edition fügt neue Schaltflächen und Optionen zur Outlook- Benutzeroberfläche

Mehr

Eine Open Source Plattform für Smart Micro Grids

Eine Open Source Plattform für Smart Micro Grids Eine 6. Innovation Forum Digitalisierung Dr. Markus Duchon fortiss GmbH An-Institut Technische Universität München Überblick Intelligente Energienetze Smart Micro Grid Node Informationsnetze Energienetze

Mehr

DEJORIS iphone-app Anleitung

DEJORIS iphone-app Anleitung DEJORIS iphone-app Anleitung Stand: März 2014 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Voraussetzungen... 3 1.2. Funktionen von allgemeinen Schaltflächen und Symbolen... 4 2. Arbeiten mit der DEJORIS-App...

Mehr

WufooConnector Handbuch für Daylite 4

WufooConnector Handbuch für Daylite 4 WufooConnector Handbuch für Daylite 4 WufooConnector Handbuch für Daylite 4 1 Allgemeines 1.1 Das WufooConnector Plugin für Daylite 4 4 2 Einrichtung 2.1 2.2 2.3 Installation 6 Lizensierung 8 API Key einrichten

Mehr

Synchronisations -Assistent 2.6

Synchronisations -Assistent 2.6 TimePunch Synchronisations -Assistent 2.6 Benutzerhandbuch 22.10.2014 TimePunch KG, Wormser Str. 37, 68642 Bürstadt Dokumenten Information: Dokumenten-Name Benutzerhandbuch, Synchronisations-Assistent

Mehr

Bedienungsanleitung zur Inbetriebnahme des Funkempfänger EFB-EXP-72a mit Ethernet-Schnittstelle

Bedienungsanleitung zur Inbetriebnahme des Funkempfänger EFB-EXP-72a mit Ethernet-Schnittstelle zur Inbetriebnahme des Funkempfänger EFB-EXP-72a mit Ethernet-Schnittstelle 1. Funktion und Voreinstellung Der EFB-EXP-72a basiert auf der Funktionsweise des Funkempfängers EFB-RS232 mit dem Unterschied,

Mehr

Web- Applikationen. in Java-Web

Web- Applikationen. in Java-Web Einführung in Java-Web Web- Applikationen Frank Huber Humboldt-Universität zu Berlin Allgemeines Java: Programmierung ist Programmierung nach Konvention Insbesondere bei Web-Applikationen wurde eine API

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Administration Erste Schritte im Brainloop Datenraum

Administration Erste Schritte im Brainloop Datenraum Administration Erste Schritte im Brainloop Datenraum Inhalt 1. Überblick... 2 2. Limits anpassen... 2 2.1 Anzahl der Benutzer Lizenzen anpassen. 2 2.2 Zusätzlichen Speicherplatz anpassen. 3 3. Gruppe anlegen...

Mehr

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API PHP-Framework zur Anbindung an die plenty API Inhaltsverzeichnis 1 Kurzbeschreibung...3 2 Integration...4 3 Möglichkeiten...5 3.1 Artikel...5 3.2 Aufträge...5 3.3 Kunden...5 4 Interne Funktionsweise...7

Mehr

4 Codierung nach Viginere (Lösung)

4 Codierung nach Viginere (Lösung) Kapitel 4 Codierung nach Viginere (Lösung) Seite 1/14 4 Codierung nach Viginere (Lösung) 4.1 Einführung Blaise de Vigenère lebte von 1523 bis 1596 in Frankreich und war nach dem Studium bei verschiedenen

Mehr

Dokumentation Softwareprojekt AlumniDatenbank

Dokumentation Softwareprojekt AlumniDatenbank Dokumentation Softwareprojekt AlumniDatenbank an der Hochschule Anhalt (FH) Hochschule für angewandte Wissenschaften Fachbereich Informatik 13. Februar 2007 Betreuer (HS Anhalt): Prof. Dr. Detlef Klöditz

Mehr

Anleitungen zu Inside FHNW

Anleitungen zu Inside FHNW Anleitungen zu Inside FHNW Jasmin Kämpf, Sabina Tschanz und Caroline Weibel, elearning.aps@fhnw.ch Version 1.0 20.8.14 Zürich, August 2014 1 Inhaltsverzeichnis 1. Anleitung Inside FHNW Gruppe eröffnen

Mehr

SharePoint Schnittstelle für Microsoft Dynamics CRM 2011

SharePoint Schnittstelle für Microsoft Dynamics CRM 2011 SharePoint Schnittstelle für Microsoft Dynamics CRM 2011 Benutzerhandbuch zur SharePoint Schnittstelle für MS CRM 2011 Schnittstellenversion: 5.2.2 Dokumentenversion: 3.1 Inhalt 1. Vorwort... 4 2. Funktionsbeschreibung...

Mehr

Projekt Xaml Konverter

Projekt Xaml Konverter Carsten Kuhn, Danny Kautzsch, Matthias Jauernig Leipzig, 01.02.2008 Lehrveranstaltung Compilerbau (Aufbaukurs) Prof. Waldmann, Fb IMN, HTWK Leipzig Projekt Xaml Konverter Aufgabenbeschreibung Mit Xaml

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Installation/Update und Konfiguration des Renderservice (v1.7.0)

Installation/Update und Konfiguration des Renderservice (v1.7.0) Installation/Update und Konfiguration des Renderservice (v1.7.0) [edu- sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des Renderservice.] edu- sharing / metaventis GmbH Postfach

Mehr