Vorlesung 'Architekturen von Web

Download Report

Transcript Vorlesung 'Architekturen von Web

Übersicht BEA Produkte
XML - Überblick und Rolle
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 247
Übersicht BEA Produkte
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 248
Referenzarchitektur mit J2EE Komponenten
Blaue Schrift in gestreiften Boxen
kennzeichnen Komponenten der
J2EE Definition
HTTP
LAN
Enterprise JavaBeans
JAXP
JDBC API
JNDI
JSP
Servlet
Verzeichnis
Services
Geschäfts
Partner
JCA
WebServices
JTA
Prozess-Management
Content Management
JMS - JavaMail
JAAS
Portal Server
ERP Systeme
Alt-Anwend.
Datenbanken
Datenbanken
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 249
BEA Statistik
•
1995 gegründet
– Führender Hersteller von e-Commerce-Infrastrukturlösungen
•
Heute
– Umsatz
• Letztes Geschäftsjahr: $ 820 Mio
• Letztes Quartal: $ 268 Mio
• kürzeste Zeitspanne in der US Börsengeschichte für das Erreichen der 1 Mrd $
Umsatzmarke
– Ca. 3700 Mitarbeiter
– 11.000 Kunden
– Partnerschaften mit führenden Unternehmen
• z.B. auch Softlab
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 250
BEA Produkte
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 251
BEA Produkte
•
WebLogic Server - die Plattform
– J2EE Server
– Fundament der BEA Produkt-Suite
•
WebLogic Integration - die Integrationsplattform für
– Anwendungsintegration
– Business-Prozess-Management
– B2B Integration
•
WebLogic Portal
– Basis für Portal Lösungen
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 252
WebLogic Server
•
•
Application Server mit integriertem Web Server
Implementiert
– Java Standards
•
• J2EE
• Internet Standards
• XML-Dienste, WebServices
Integriert
– Unternehmensdienste, wie LDAP
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 253
EJB Application Server Markt
Oracle iAS
1%
iPlanet
3%
IBM
33%
Other
7%
BEA
56%
Source: Giga Group, December 2000. The EJB Applications Server Market
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 254
WebLogic Integration
Application
Server
• J2EE
• Web Services
• Clustering
• Caching
• Security
•
BEA WebLogic Server
Business Process
Management
• Integrate and automate complex business processes
across value chain
• Single platform for design, execution, and monitoring
process
• Assemble composite applications
• Data integration
•
Formerly BEA WebLogic Process
Integrator
Architekturen von Web-Anwendungen, LMU, WS-01/02
Application
Integration
•
•
•
•
•
Standards-based infrastructure (JCA)
Universal connectivity
Adapter Development Kit (ADK)
Design tools for creating and publishing application
services
New
B2B
Integration
•
•
•
•
•
Connect enterprises quickly and easily
Create and execute collaborative trading partner
agreements (CPA)
Provide security
Deploy Business Web Services
Formerly BEA WebLogic Collaborate
Folie 255
WLI Business Process Management
•
Process Definition
– Modellierung von Geschäftsprozessen
•
– Graphischer Entwurf
Process Execution
– Ausführung von Geschäftsprozessen
•
– Eingebunden in J2EE Architektur
Process Monitoring
– Monitoring von Geschäftsprozessen
– Überwachung des Ablaufs
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 256
WLI Business Process Management
Worklist
Client
API
notification
Process
Engine
XML
RMI
Standard
E-Mail
Client
EJBs & Java
classes
E-Mail
Plug-In
Client
JMS
Application
Plug In
Framework
API
AI Plug In
Application Integration
B2B Plug In
B2B Integration
Custom Plug In
Custom Environment
Template
Template Definition Store
Process Flow Monitoring
Architekturen von Web-Anwendungen, LMU, WS-01/02
Instance
Store
Folie 257
BEA WebLogic Portal
Customers
Partners
Suppliers
Employees
FIREWALL
BEA WebLogic Portal
Custom Applications
Third Party Applications
BEA WebLogic
Personalization
Commerce
Architekturen von Web-Anwendungen, LMU, WS-01/02
Campaign Manager
Folie 258
Portlets
Calendar
Content
Management
To-do List
Email
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 259
BEA WebLogic Portal: Portlets
•
Portlets
– BEA Portlets
• My/Group To-Do List, Search the Web, ...
– Eigenentwicklungen
– 3rd Party Anbieter
• Charts, Web-email, ...
– Implementiert als Java Server Pages
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 260
BEA Produkte im Überblick
Customers
Partners
Suppliers
Employees
FIREWALL
BEA WebLogic Portal
Custom Applications
Third Party Applications
BEA WebLogic
Personalization
Business
Web
Services
Simple
Web
Services
Commerce
Campaign Manager
BEA WebLogic Integration
Application Integration
Business Process Management
B2B Integration
BEA WebLogic Server
Transaction
Persistence
State Management
Architekturen von Web-Anwendungen, LMU, WS-01/02
Enterprise
Applications
ERP
CRM
SCM
Custom
HR
Legacy
High Reliability/Availability
Scalability
Security
Folie 261
Referenzarchitektur; Abdeckung durch BEA
Produkte
WL Server
Partner
Produkte
HTTP
LAN
WL Integration
Enterprise JavaBeans
JAXP
JDBC API
JNDI
Verzeichnis
Services
Geschäfts
Partner
JCA
WebServices
JTA
Prozess-Management
Content Management
JMS - JavaMail
JAAS
Portal Server
JSP
Servlet
WL Portal
ERP Systeme
Alt-Anwend.
Datenbanken
Datenbanken
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 262
XML - Überblick und Rolle
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 263
Geschichte von XML
•
•
•
•
•
1969: GML (General Markup Language): von IBM entwickelt
1986: SGML (Standard GML): ISO
1989: HTML (Hypertext Markup Language): CERN
– Als Technologie des WWW
– Von SGML abgeleitet
– Eine Instanz von SGML
1998: XML (Extensible Markup Language): W3C
In der Folge / im Umfeld von XML
–
–
–
–
Viele ergänzende Standards: XSL, Xlink, Xpointer, XML Schema, ...
XML Sprachen: XHTML, XMI, MathML, SOAP, ...
XML Verarbeitung: Parser, SAX, DOM
XML Produkte: eXelon, Tamino (SAG), ...
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 264
SGML, XML, HTML
Vereinfachungen
SGML
DTD
Spezielle
Sprache
XML
DTD
HTML
Architekturen von Web-Anwendungen, LMU, WS-01/02
XHTML
DTD
...
XMI
Folie 265
Historische Entwicklung
Sprachfamilie
XSL
2000
1998
Sprache
XML
HTML
1992
1986
1970
XHTML MathML
World Wide Web
SGML
GML
IBM:
Charles Goldfarb
Edward Mosher
Raymond Lorie
Architekturen von Web-Anwendungen, LMU, WS-01/02
Internet
Folie 266
W3C Statement (1999, Ausschnitt)
„XML will






Enable internationalized media-independent electronic publishing
Allow industries to define platform-independent protocols for the
exchange of data, especially the data of electronic commerce
Deliver information to user agents in a form that allows automatic
processing after receipt
Make it easy for people to process data using inexpensive software
Allow people to display information the way they want it
Provide metadata -- data about information -- that will help people find
information and help information producers and consumers find each
other“
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 267
XML Dokument „Buch“– dargestellt als Baum
Buch
Titel: "Der Herr der Ringe“
Element
Autor
Tolkien
Inhalt
Band
Name: "Band I“
Titel: "Die Gefährten“
Einführung
Attribut
Kapitel
Titel: "xxxx"
Abschnitt
...
Abschnitt
Kapitel
Titel: "xxxx"
Unterelemente
von Kapitel
...
Band
Name: "Band II“
Titel: "Die zwei Türme“
...
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 268
XML Dokument „Buch“
<?xml version="1.0" encoding="ISO-8859-1"?>
Verarbeitungs<Buch Titel="Der Herr der Ringe">
Anweisungen
<Autor> Tolkien </Autor>
<Band Name="Band I" Titel="Die Gefährten">
<Einführung> xxxxxxxxx </Einführung>
<Kapitel Titel="xxxx">
<Abschnitt> xxxxxxxxx </Abschnitt>
...
<Abschnitt> xxxxxxxxx </Abschnitt>
</Kapitel>
...
<Kapitel Titel="xxxx">
<Abschnitt> xxxxxxxxx </Abschnitt>
...
<Abschnitt> xxxxxxxxx </Abschnitt>
</Kapitel>
</Band>
<Band Name="Band II" Titel="Die zwei Türme">
...
</Band>
<Band Name="Band III" Titel="Die Rückkehr des Königs">
...
</Band>
</Buch>
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 269
DTD – Document Type Definition
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Jetzt kommt die DTD -->
<!DOCTYPE Buch [
<!ELEMENT Buch (Autor Band*)>
<!ELEMENT Autor (#PCDATA)>
<!ELEMENT Band (Einführung Kapitel*)>
<!ELEMENT Einführung (#PCDATA)>
<!ELEMENT Kapitel (Abschnitt*)>
<!ELEMENT Abschnitt (#PCDATA)>
<!ATTLIST Buch Titel CDATA #REQUIRED>
<!ATTLIST Band Name CDATA #REQUIRED
Titel CDATA #REQUIRED>
<!ATTLIST Kapitel Titel CDATA #REQUIRED>
]>
<!-- Ende der DTD -->
<Buch Titel="Der Herr der Ringe">
<Autor>Tolkien</Autor>
<Band Name="Band I" Titel="Die Gefährten">
...
</Band>
...
</Buch>
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 270
Externe und gemischte DTD
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Externe DTD -->
<!DOCTYPE Buch SYSTEM "buch.dtd">
<Buch Titel="Der Herr der Ringe">
<Autor>Tolkien</Autor>
<Band Name="Band I" Titel="Die Gefährten">
...
</Band>
...
</Buch>
Name des Wurzelelements
<!DOCTYPE MyDTD SYSTEM ".../dtd/MyBook.dtd" [
<!ELEMENT ... >
<!ATTLIST ... >
Externe DTD
<!ENTITY
... >
<!NOTATION ... >
Interne DTD
]>
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 271
Wohlgeformt und Gültig
Ein Dokument ist
•
Wohlgeformt
– Wenn es den Syntaxregeln von XML folgt
•
Gültig
– Wenn es eine DTD enthält (intern oder extern) und den Regeln der DTD
gehorcht
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 272
XML Schema
•
DTD haben Nachteile
– Separate Syntax
• Muss separat gelernt werden
• Wichtiger: Separate Tools (Parser, Generatoren)
– Ausdrucksmittel fehlen
•
•
• Z.B. Name spaces
Idee: XML zur Deklaration der Dokumenttypen benutzen:
XML Schema
Struktur eines XML Dokumentes wird durch ein anderes XML
Dokument beschrieben
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 273
XML Schema - Beispiel
<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema
xmlns:xsd =
"http://www.w3.org/2001/XMLSchema"
>
<xsd:element name = "vehicles">
<xsd:complexType>
<xsd:sequence>
<xsd:element name = "nickname"
type = "xsd:string"
maxOccurs = "unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Quelle: http://lucas.ucs.ed.ac.uk/xml-schema/
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 274
XML – Dokument; Daten aus Datenbank
<?xml version="1.0"?>
<stammbaum>
<person
name=“Anna“ id="0815">
</person>
<person
name="Hugo" id="333">
<vater idref="4711">
<mutter idref="0815">
</person>
<person
name="Hans" id="4711">
</person>
</stammbaum>
Architekturen von Web-Anwendungen, LMU, WS-01/02
Element
stammbaum
Element
person
person
person
name
Anna
Attr
name
Hugo
name
Hans
id
0815
Attr
id
333
id
4711
vater
mutter
idref
0815
idref
4711
Folie 275
Nutzungsszenarien von XML
•
•
•
Publizierung im Web
– XHTML
– Nachfolge HTML
Dokumentenmanagement und -austausch
– Basis für vielfältige Standards
– Vereinheitlichung von Werkzeugen
Datenaustausch, Messaging & Queuing
– Basis für Middleware Produkte
– Basis für WebServices
Instanz 1
XML Dokumente
Architekturen von Web-Anwendungen, LMU, WS-01/02
Instanz 2
Folie 276
XML Sprachen
•
•
•
•
•
•
•
•
•
•
•
•
•
XHTML (HTML based on XML)
WML (Web language for WAP mobiles)
MathML (Math formula definition)
SMIL (Synchronized Multimedia Integration Language)
SVG (Scalable Vector Graphics)
XSL (XML Style Language)
XSLT (XML based Transformation language)
XQL (Database Query Language)
XMI (XML based Metadata Interchange format)
SOAP (Simple Object Access Protocol)
WSDL (Web Service Definition Language)
UDDI (Universal Description, Discovery and Integration)
ebXML (electronic business XML)
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 277
Präsentation von XML Dokumenten
•
•
•
•
Ein reines XML Dokument ist nicht direkt zur Präsentation geeignet
Formatierungsinformationen sind notwendig
Style Sheet Sprache ist gefordert
Style Sheet:
Regeln, die festlegen, wie spezielle Elemente eines Dokumentes
dargestellt werden sollen
– Cascading Style Sheets (CSS) benutzt für HTML
– eXtensible Stylesheet Language (XSL)
• XML basiert
• Vielfältige Ausdrucksmittel
• einfach
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 278
eXtensible Stylesheet Language
•
•
•
•
•
Drei Standards spielen eine Rolle: XSLT, XPATH, Bibliothek von
Format-Objekten (XSL-FO)
XML Document: Text und inhaltsorientierte Struktur
XSL Document: Text und Format Informationen
Transformationssprache (XSLT/XPATH) für die Transformation von
XML Dokumenten zu XSL Dokumenten oder andere Formate
XSL Werkzeuge werden benutzt, um aus Dokumenten lesbare
Ausgaben zu erzeugen (Bildschirm, Drucker, ...)
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 279
eXtensible Stylesheet Language
XML Documents
XSL Processor
XSL
Presentation oriented
Web Browser
(X)HTML
XSLT Processor
XML Source
Architekturen von Web-Anwendungen, LMU, WS-01/02
XML
Content oriented
Folie 280
XSLT Transformation to (X)HTML
<?xml version="1.0"?>
<text>
<emphasize>Hello World</emphasize>
</text>
XSLT Processor
<?xml version="1.0"?>
<html>
<body>
<u>Hello World</u>
</body>
</html>
Architekturen von Web-Anwendungen, LMU, WS-01/02
XML Source
<?xml version="1.0"?>
<template match ="emphasize">
<u>
<apply-templates/>
</u>
</template>
XSLT Script
XHTML Document
Folie 281
XSLT Transformation to XSL
<?xml version="1.0"?>
<text>
<emphasize>Hello World</emphasize>
</text>
XSLT Processor
<?xml version="1.0"?>
<template match ="emphasize">
<fo:wrapper font-weight="bold">
<apply-templates/>
</fo:wrapper>
</template>
XSLT Script
<?xml version="1.0"?>
<fo:block>
<fo:wrapper font-weigh="bold">
Hello World
</fo:wrapper>
</fo:block>
Architekturen von Web-Anwendungen, LMU, WS-01/02
XML Source
XSL Document
Folie 282
XML Ergänzungen
•
•
•
•
•
XLink: Referenzen zwischen XML Dokumenten
XPath: Referiert ein Element in einem Dokument durch Pfad
XPointer: Referiert ein Element durch flexiblere Auswahl; basiert auf
XPath.
DOM (Document Object Model): W3C Standard
–
–
–
–
API zum Bearbeiten von XML Dokumenten
Dabei: XML Dokument als Graph betrachtet mit primärer Baumstruktur
Definiert in CORBA IDL; somit sprachunabhängig
Java ist wichtigste Sprache
SAX (Simple API for XML)
– Kein W3C Standard
– Alternative zu DOM
– Event gesteuert, meist in Zusammenhang mit Parsern
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 283
XPointer
XPointer, which is based on the XML Path
Language (XPath), supports addressing into
the internal structures of XML documents. It
allows for traversals of a document tree and
choice of its internal parts based on various
properties, such as element types, attribute
values, character content, and relative
position.
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 284
XLink - XML Linking Language
•
•
•
•
Erlaubt Links zwischen Ressourcen (XML Strukturen)
Einfache Links: Wie Hyperlinks (z.B. in HTML)
Basiert auf XPointer
Komplexere Links
– Zwischen mehr als zwei Ressourcen
– Können unabhängig von Ressourcen existieren
– Metadaten (Attribute) können den Links beigefügt werden
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 285
W3C Activity Statement zu DOM
W3C's Document Object Model (DOM) is a standard API (Application
Programming Interface) to the structure of documents;
It aims to make it easy for programmers to access components and to
delete, add, or edit their content, attributes and style.
In essence, the DOM makes it possible for programmers to write
applications which work properly on all browsers and servers and on
all platforms. While programmers may need to use different
programming languages, they do not need to change their
programming model.
W3C's Document Object Model thus offers programmers a platformand language-neutral program interface which will make programming
reliably across platforms with languages such as Java and
ECMAScript a reality.
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 286
Beispiel: DOM Interface für Enabler von Softlab
XML Anwendung
DOM API
Enabler Java API
Enabler Repository
XML
Dokument
XML
Parser
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 287
XML Umfeld
•
•
•
•
Reihe von Initiativen für den Austausch von Finanzdaten
– Beispiel OFX (Open Financial Exchange)
Ähnliche Initiativen in anderen Branchen
XMI (XML Metadata Interchange): OMG
– Sprache zum Austausch von Modellen in UML
Standards für Web Services
–
–
–
–
SOAP (Simple Open Access Protocol)
WSDL (Web Service Definition Language)
UDDI (Universal Description, Discovery and Integration)
ebXML (electronic business XML)
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 288
Anwendung von XMI
UML Repository
Werkzeug -2
Anwend.
Modell
UML Modellierungswerkzeug
z.B. Rational Rose
1
Anwend.
Modell
1
Werkzeug
Anwend.
Modell
1
2
UML
Meta Modell
1
XMI
Dokument
2
Modell wird in ein Repository oder ein anderes Werkzeug zur
weiteren Bearbeitung übertragen.
Modell wird in ein Anwendungs-Datenbank-Schema übertragen.
Hierzu ist häufig eine Transformation notwendig.
Architekturen von Web-Anwendungen, LMU, WS-01/02
Anwendungs
Repository / Datenbank
AnwendungsModell
AnwendungsDaten
Folie 289
Benutzung von XML im Web-Umfeld
•
•
•
•
•
•
•
•
(X)HTML ist XML Sprache: Basis des Web
Künftig Verarbeitung von XML direkt in Browsern (ohne Transformation
in HTML)
XML als Sprache für Content Management
Document Management
EDI (Electronic Data Interchange)
Metadaten (UML Modell) - Austausch (XMI)
Messaging
WebServices
–
–
–
–
SOAP
WSDL
UDDI
ebXML
Architekturen von Web-Anwendungen, LMU, WS-01/02
Folie 290