inews: XML in der Praxis Konvertierung von Objekten nach XML und zurück Dr. St. Seefeld / INGTES AG



Ähnliche Dokumente
SAP NetWeaver Gateway. 2013

Java und XML 2. Java und XML

Securing SOAP e-services

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

Java Enterprise Architekturen Willkommen in der Realität

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Modul 2: Grundlegende Managementkonzepte

Grundlagen von Python

Klausur Interoperabilität

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

OP-LOG

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Content Management Datenbanken, Schnittstellen

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Zustandsgebundene Webservices

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

3. Stored Procedures und PL/SQL

Theoretische Informatik I

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

JavaScript in Drupal

XMPP: Extensible Messaging and Presence Protocol

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Treuhand Cloud. Die Arbeitsumgebung in der Cloud

Auf die richtige Verbindung kommt es an! Wir präsentieren Ihnen: CROSS MEDIA PUBLISHING

Verteilte Systeme: Übung 4

Seminar Informationsintegration und Informationsqualität. Dragan Sunjka. 30. Juni 2006

Akonadi. Der PIM-Service für den freien Desktop. Tobias König. 30. März 2010

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Objektorientierte Programmierung OOP

CORBA. Systemprogrammierung WS

An integrated total solution for automatic job scheduling without user interaction

5. Programmierschnittstellen für XML

Transparente Hausverwaltung Marketingschmäh oder doch: eine neue Dimension der Dienstleistung?

ISA Einrichtung einer DFUE VErbindung - von Marc Grote

AJAX Implementierung mit Joomla!

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

:: Anleitung Hosting Server 1cloud.ch ::

Rechnung Angebot Zeiterfassung

ORACLE Business Components for Java (BC4J) Marco Grawunder

Anleitung zur Nutzung des SharePort Utility

1 Dataport 12.Juli 2007 Internationale Standards zu Identity Management. Deckblatt. Harald Krause

Treuhand Dialogik Cloud

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Gesicherte Prozeduren

Kurzfassung der Studienarbeit

4D Server v12 64-bit Version BETA VERSION

12.4 Sicherheitsarchitektur

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

TemplaVoila T3AK07 - TYPO3 Akademie 2.0

3D Visualisierung von UML Umgebungsmodellen

Hilfe zur ekim. Inhalt:

5. Programmierschnittstellen für XML

Der Weg zur eigenen App

Acht Gute Gründe für Integration und einen Content Backbone

Einspielanleitung für das Update DdD Cowis backoffice DdD Cowis pos

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Java Einführung Packages

Übung - Datenmigration in Windows 7

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Diplomarbeit: GOMMA: Eine Plattform zur flexiblen Verwaltung und Analyse von Ontologie Mappings in der Bio-/Medizininformatik

jet IDS HIGH-LEIT OPC-GATEWAY zur Anbindung von Automatisierungssystemen Ein offenes, skalierbares SCADA System für alle Infrastrukturanwendungen

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

ObjectBridge Java Edition

BGP-Alarmsystem. Gunnar Bornemann Diplomarbeit Lehrstuhl für Netzwerkarchitekturen Technische Universität München

SAP SharePoint Integration. e1 Business Solutions GmbH

BIF/SWE - Übungsbeispiel

Allgemeines zu Datenbanken

BIF/SWE 1 - Übungsbeispiel

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Noch besser als PDF: ISO-normiertes PDF/A

Der Einsatz von Open-Source-Produkten im Unternehmen, dargestellt am Beispiel von OpenOffice

1. Konfiguration Outlook 2007 MAPI (mit Autodiscover).

Corporate Websites MEHRSPRACHIGE MULTICHANNEL-PROJEKTE MIT WORKFLOWS. 18. und 19. September DMEXCO Michael Steinfort, comspace.

Anwenderleitfaden Citrix. Stand Februar 2008

Robot Karol für Delphi

Applikationsvirtualisierung in der Praxis. Vortrag an der IHK Südlicher Oberrhein, Freiburg Thomas Stöcklin / 2007 thomas.stoecklin@gmx.

SEMINAR Modifikation für die Nutzung des Community Builders

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Jürgen Schwab, debis Systemhaus

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Einrichten eines Microsoft Exchange-Account auf einem Android-System

Fragen und Antworten

Kurzeinführung Excel2App. Version 1.0.0

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

Jump Project. Softwarelösungen für professionelles Projektmanagement

Sage Customer View für Windows 8 Funktionen

OSL Storage Cluster und RSIO unter Linux Storage-Attachment und Hochverfügbarkeit in 5 Minuten

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Open Source als de-facto Standard bei Swisscom Cloud Services

Der lokale und verteilte Fall

Transkript:

inews: XML in der Praxis Konvertierung von Objekten nach XML und zurück Dr. St. Seefeld / INGTES AG

Objekte und XML Bei der Arbeit mit objektorientierten Programmiersprachen und XML kommt schnell der Wunsch auf, Objekte in XML umzuwandeln und umgekehrt. 2

Objekte und XML Objekt1 Objekt2 Objekt3 <axmldokument>... </axmldokument > Netz <axmldokument>... </axmldokument > Objekt1 Objekt2 Objekt3 3

Inhalt Wofür XML? Newsmanagement-System inews Anforderungen an inews Wie XML? DOM Wie XML? Implementierung 4

inews - Übersicht inews ist ein Newsmanagement-System, dient dem Empfang, der Verarbeitung und Weiterleitung von Agenturmeldungen, lässt sich an Kundenbedürfnisse anpassen. Zielpublikum: Kunden mit Agenturfeed 5

inews Systemarchitektur Satellitenantenne Modem SAT-Receiver inews-receiver News-Ticker inews-server DB inews-web-publisher Printer Intranet/Internet inews-client2 inews-client1 6

inews - Benutzeroberfläche inews 7

inews - Anforderungen Flexibles internes Format Multimedia Verteilt Plattform übergreifend Schlank Ressourcensparend TCP/IP basierend Zukunftsgerichtet 8

inews - Architektur Mehrschichtenarchitektur Client Server Receiver Agenten basiert Datenbank Alle inews-komponenten sind Befehlssender und -empfänger. 9

inews - Kommunikation Verbindung über TCP/IP Entsprechend Anforderungen Bewährte Technologie Datenaustausch als XML Flexibel Einfach zu erweitern Zukunftsgerichtet 10

Objekte zu XML Repräsentation von Daten Im Programm als Objekte Bei der Übertragung als XML Frage Wie kann ich Objekte in XML umwandeln? Wie kann ich Objekte aus XML erstellen? 11

Objekte zu XML Obj2 Obj1 Obj3 <Obj1...> <Obj2...> <Obj4...\> </Obj2> <Obj3... \> </Obj1> Obj4 DOM 12

Objekte zu XML DOM Document Object Model API für XML Dokumente Zugriff und Manipulationen auf XML- Dokumente W3C Spezifikation Unabhängig von Programmiersprache Von diversen Anbietern erhältlich 13

DOM XML Dokumente als Baumstruktur <TABLE> <TBODY> <TR> <TD>Forelle</TD> <TD>Fisch</TD> </TR> <TR> <TD>Storch</TD> <TD>Vogel</TD> </TR> </TBODY> </TABLE> <TABLE> <TBODY> <TR> <TR> <TD> <TD> <TD> <TD> Forelle Fisch Storch Vogel 14

DOM Objektstruktur (vereinfacht) Child Nodes 0..* TNode Attributes 0..* Attr TCharacterData Element XMLDocument Comment Text CDATASection 15

Beispiel: Filterkriterien inews kann Meldungen nach Benutzerkriterien Suchen und Filtern. Filterkriterien können mit UND, ODER und NICHT verknüpft werden. 16

Objekte zu XML Beispiel Filter nach DOM SelectionRelation LTerm Autor RelationType = RTerm Meier Dokument Element Name: Filter Gratis Attribut Tag: LTerm Wert: Autor Attribut Tag:... Wert:... Attribut Tag:... Wert:... <axml-dokument> 17

Objekte zu DOM Objekte werden DOM-Elemente Variablenname wird Name des Elements Unabhängig von der Klasse Klassentyp wird Attribut Objektvariablen werden DOM-Attribute Variablenname wird Name des Attributs Variablenwert wird Wert des Attributs 18

Objekte zu DOM Klasse TSelRelation = class mlterm : string; mrelationtype : TRelOp; mrterm : string; end; var Filter : TSelRelation XML Stream <Filter _class = "TSelRelation" LTerm = "Autor" RelationType = "=" Rterm = "Meier" \> 19

Objekte zu DOM Problem: Wo findet die Zuordnung Variablen zu Tags statt? Member-Variablen sind im Code definiert TSelRelation = class mlterm : string; mrelationtype : TRelOp; mrterm : string; end; var Filter : TSelRelation Tags sind Strings, im XML Stream <Filter _class = "TSelRelation LTerm = "Autor" RelationType = "=" Rterm = "Meier \> 20

Objekte zu DOM Zuordnung Variablennamen - Tag Ausserhalb der Klasse Automatisch vom System Innerhalb der Klasse 21

Objekte zu DOM Ausserhalb der Klasse Eine Hilfsklasse kennt alle Variablen der Klasse Klasse Nachteile Hilfsklasse Zuordnung() Pro Klasse eine Hilfsklasse Anpassungen an zwei Orten Kein Information Hiding DOM 22

Objekte zu DOM Zuordnung durch das System Zuordnung durch Compiler bzw. das Runtime System Klasse DOM Nachteile Geht oft nicht mir privaten Variablen Wenig Kontrolle 23

Objekte zu DOM Innerhalb der Klasse Klasse weiss, wie sie sich in DOM umwandeln muss Nachteil Klasse Ballast für Klasse Zuordnung() Vorteile überwiegen DOM 24

Objekte zu DOM Ballast in Klasse klein halten durch Vermittler (Mediator) Converter Convert(data) Data Zuordnung() Exchanger ExchangeX() ExchangeY() Selection Zuordnung()... Zuordnung() DOM 25

Objekt zu DOM-Elemente Converter Convert Data DOM ex: Exchanger Create Create Element Exchange(ex) ExchangeX ExchangeY GetElement Delete DOMtoXML Create Attr Create Attr 26

Komplexe Strukturen SelectionOperation Operation AND SelectionRelation LTerm Autor RelationType = RTerm Meier SelectionRelation LTerm Agentur RelationType = RTerm SDA <Filter _Class= "SelOperation" Operation="AND"> <Item1 Attribute="Autor" Value=... \> <Item2 Attribute="Agentur" Value=... \> </Filter > 27

Komplexe Strukturen XML erlaubt beliebige Verschachtelung z. B.: ( (Quelle = sda UND Sprache = deu ) ODER (Quelle = ap UND Sprache = eng ) ODER (Quelle = Reuters ) ) UND NICHT (Kategorie = vm ) Selection SelectionRelation SelectionOperation 28

Objekte zu XML Vorteile des gewählten Ansatzes Alle Informationen bleiben in der Klasse Eine einzige Prozedur für Objekt zu DOM und DOM zu Objekt Konvertieren verknüpfter Objekte Konvertieren abgeleiteter Objekte 29

Zusammenfassung inews Beispiel einer verteilten Applikation Kommunikation mittels XML-Protokoll Umwandlung von Objekt zu XML über DOM Jede Klasse ist selbst für ihre Umwandlung zuständig Abhängigkeiten wurden reduziert 30

Fazit XML hat sich bewährt Ausgereift, flexibel, leicht zu debuggen Infrastruktur ist vorhanden Parser, DOM Performance ist nicht kritisch Synergien Gleiche Mechanismen für Kommunikation und Konfigurationsfiles 31

Vielen Dank für Ihre Aufmerksamkeit Fragen? 32

Objekte zu DOM Beispielcode einer Exchange-Prozedur procedure TSelRelation.Exchange( anexch: Exchanger ); begin anexch.exchattr('attribute',flterm,''); anexch.exchattr('value',frterm,''); anexch.exchattr('relation',frelop,'='); end; 33

inews - Kommunikation Möglichkeiten für die Kommunikation zwischen Komponenten DCOM /.NET CORBA RMI (Java) SOAP Eigenes Format 34