Oracle Application Development Framework (ADF)

Werbung
Oracle White Paper—Oracle Application Development Framework - Überblick
Oracle White Paper
Juli 2009
Oracle Application Development
Framework (ADF) - Überblick
Oracle White Paper—Oracle Application Development Framework - Überblick
Einleitung .......................................................................................... 1
Oracle ADF vereinfacht die Entwicklung mit Java EE .................... 2
ORACLE ADF - ARCHITEKTUR ....................................................... 3
Die Business Services-Schicht ...................................................... 5
Die Controller-Schicht .................................................................... 5
Die View-Schicht ........................................................................... 5
Die Model-Schicht ......................................................................... 6
Produktivität bei freier Auswahl (Productivity with Choice) ............. 6
ORACLE ADF - NUTZEN .................................................................. 7
Visuelle und deklarative Java EE-Entwicklung............................... 7
Vorteile gegenüber anderen Frameworks ...................................... 9
Resümée ......................................................................................... 11
Oracle White Paper—Oracle Application Development Framework - Überblick
Einleitung
Die Java Enterprise Edition (Java EE) ist eine standardisierte, robuste, skalierbare und
sichere Plattform, die in der heutigen Zeit die Grundlage vieler UnternehmensAnwendungen bildet. Java EE bietet eine Reihe von Spezifikationen, um mehrschichtige
Applikationen auf Basis der Programmiersprache JavaTM zu schreiben. In der
Vergangenheit gab es einen direkten Zusammenhang zwischen der Stabilität einer
Applikation und der erforderlichen Komplexität, um diese zu erreichen. Mit dem
Framework Oracle ADF ist es nun möglich, mit deutlich verringertem Aufwand
leistungsfähige Java EE-Applikationen zu entwickeln, die auf Standardmustern und
-methoden beruhen.
Zusätzlich verlangt die verstärkte Notwendigkeit in den Organisationen, KompositApplikationen nach den Prinzipien einer service-orientierten Architektur (SOA) zu
schaffen, von den Entwicklern, extrem agile Applikationen zu schreiben.
Die Implementierung erprobter Vorgehensweisen in Bezug auf agile Applikationen
erfordert in der Regel das Schreiben von Infrastruktur-Programmcode in beträchtlichem
Umfang. Dies bildet ein weiteres Hindernis für Entwickler, die ihre erste Java EEApplikation schreiben.
Neben der Unterstützung für robuste, performante und wartbare Applikationen bietet das
Oracle Application Development Framework auch den besten Infrastruktur-Code seiner
Art, um agile SOA-basierte Applikationen zu entwickeln. Damit entfällt die Notwendigkeit,
in den Organisationen "hausgemachte" Implementierungen dafür zu entwickeln und die
Teams können schneller mit der produktiven Entwicklung beginnen.
1
Oracle White Paper—Oracle Application Development Framework - Überblick
Oracle ADF vereinfacht die Entwicklung mit Java EE
Das Oracle Application Development Framework (Oracle ADF) ist ein innovatives,
weiterentwickeltes Java EE Entwicklungs-Framework von Oracle und wird, im Unterschied zu
den meisten anderen Frameworks, direkt durch die Integrierte Entwicklungsumgebung (IDE)
des Oracle JDeveloper 11g unterstützt.
Oracle ADF vereinfacht die Java EE-Entwicklung, indem die Entwickler weitgehend von der
Notwendigkeit befreit werden, Infrastruktur-Code zu schreiben, und sich auf die Funktionalität
der Applikation konzentrieren können. Oracle ADF stellt die Implementierung der Infrastruktur
als Teil des Frameworks bereit. Da es nicht ausreicht, eine Reihe von Services zur Laufzeit
bereitzustellen, unterstützt Oracle ADF auch den Entwicklungsprozess durch eine visuelle und
deklarative Arbeitsweise bei der Java EE-Entwicklung mit Hilfe des Oracle JDeveloper 11g.
So vereinfacht beispielsweise Oracle ADF die Entwicklung agiler Applikationen, die Daten als
Service exponieren, indem ein Service-Interface mit den eingebauten Business Services in ADF
gekoppelt wird. Diese Trennung der Implementierungsdetails vom Business Service wird in
Oracle ADF über Metadaten realisiert. Die Verwendung dieser metadaten-getriebenen
Architektur erlaubt es den Entwicklern, sich auf die Geschäftslogik und die Ergonomie zu
konzentrieren, statt sich um Details des Zugriffs auf den Service zu kümmern.
Die Entwicklung der Oberfläche geschieht durch eine einfache Drag&Drop-Operation des
gewünschten Data Controls auf den Seitenentwurf und die Auswahl, durch welche Komponente
die Daten dargestellt werden sollen. Im Beispiel werden eine Datenbank-Tabelle als Business
Service exponiert und die Daten in tabellarischer Form dargestellt, indem das Data Control
durch Drag&Drop auf die Seite gezogen und im aufgeblendeten Fenster die TabellenKomponente für die Darstellung ausgewählt wird. Alles Weitere wird von Oracle ADF erledigt.
2
Oracle White Paper—Oracle Application Development Framework - Überblick
Beim Einsatz von Oracle ADF werden die Implementierungsdetails dieses Service als Metadaten
in der Model-Schicht gespeichert. Dies ermöglicht es Entwicklern, den Service ohne Änderungen
der Benutzerschnittstelle auszutauschen. Applikationen können so schnell an veränderte
Anforderungen angepasst werden. Zudem muss der Entwickler der Benutzerschnittstelle nicht
die Details des Business Service kennen und kann sich auf die Oberfläche der Applikation und
die Logik der Interaktion konzentrieren.
ORACLE ADF - ARCHITEKTUR
Oracle ADF beruht auf dem Entwurfsmuster (Design Pattern) des Model-View-Controller
(MVC). Eine MVC-Applikation gliedert sich in:
1) eine Model-Schicht, in der die Interaktion mit den Datenquellen stattfindet und die
Geschäftslogik ausgeführt wird,
2) eine View-Schicht, die die Benutzerschnittstelle der Applikation repräsentiert und
3) einen Controller, der den Ablauf der Applikation steuert und als Schnittstelle zwischen Modelund View-Schicht agiert.
Die Zerlegung von Applikationen in diese Schichten vereinfacht die Wartung und
Wiederverwendbarkeit von Komponenten zwischen Applikationen. Die Unabhängigkeit der
Schichten voneinander führt zu einer lose gekoppelten service-orientierten Architektur (SOA).
3
Oracle White Paper—Oracle Application Development Framework - Überblick
Oracle ADF implementiert MVC und trennt die Model-Schicht von der Business ServicesSchicht, um eine service-orientierte Entwicklung von Applikationen zu ermöglichen. Die
Architektur von Oracle ADF besteht aus vier Schichten:
•
Die Business Services-Schicht - stellt den Zugriff auf Daten in verschiedenen Quellen bereit
und führt die Geschäftslogik aus.
•
Die Model-Schicht – bildet eine Abstraktionsschicht oberhalb der Business Services-Schicht.
Somit können die View- und Controller-Schicht mit unterschiedlichen Implementierungen von
Business Services auf konsistente Weise zusammenarbeiten.
•
Die Controller-Schicht – bietet einen Mechanismus, um den Ablauf einer Web-Applikation zu
steuern.
•
Die View-Schicht – repräsentiert die Benutzerschnittstelle der Applikation.
Abb. 1: Die Architektur von Oracle ADF
Mit Oracle ADF können Entwickler die Technologie auswählen, die sie für die Implementierung
jeder Schicht bevorzugen. Die Abbildung 1 zeigt die verschiedenen Auswahlmöglichkeiten, die
den Entwicklern beim Erstellen von Oracle ADF-Applikationen zur Verfügung stehen. Durch
die ADF Model-Schicht, die für die Integration der verschiedenen Komponenten einer Java EEApplikation verantwortlich ist, wird eine Flexibilität der Entwicklung erreicht. EJB, Web
Services, JavaBeans, JPA/EclipseLink/TopLink und viele andere Technologien können der
Oracle ADF Model-Schicht als Business Services dienen. Die View-Schicht kann sowohl Swing-
4
Oracle White Paper—Oracle Application Development Framework - Überblick
Applikationen und die Integration von MS Office als auch HTML-Oberflächen auf Basis von
JSP, Java Server Faces (JSF) und ADF Faces umfassen.
Die Business Services-Schicht
Die Business Service-Schicht ist für die Interaktion mit einer Persistenz-Schicht verantwortlich.
Sie enthält Funktionen, wie die Persistenzierung der Daten, die objekt-relationale Abbildung und
die Ausführung von Geschäftslogik.
Für die Implementierung der Business Service-Schicht kann mit Oracle ADF folgende Optionen
eingesetzt werden: einfache Java-Klassen, EJB 2.1/3.0, Web Services, JPA-Objekte und Oracle
ADF Business Components.
Die Controller-Schicht
Die Controller-Schicht steuert den Ablauf der Applikation und behandelt die Benutzereingaben.
So bestimmt beispielsweise der Controller, welche Aktion (Suchen) ausgeführt werden muss,
wenn die Schaltfläche "Suchen" auf einer Seite gedrückt wurde und zu welcher Seite
(Suchergebnisse) anschließend navigiert werden muss.
Im JDeveloper stehen drei Controller für Web-basierte Applikationen zur Verfügung: der Oracle
ADF Controller, der die umfassendste Funktionalität bietet; der funktional nicht erweiterte JSF
Controller und der Apache Struts Controller. Unabhängig vom gewählten Controller, wird der
Ablauf der Applikation typischerweise entworfen, indem Seiten und Navigationsregeln im
Diagramm definiert werden. Mit Hilfe des ADF Controller kann der Ablauf einer Applikation in
kleinere, wiederverwendbare Task Flows zerlegt werden. Task Flows können nicht-sichtbare
Komponenten wie z.B. Methodenaufrufe enthalten; Seitenfragmente (Page Fragments) können
in einer Region innerhalb einer einzelnen Seite als Folge angezeigt werden. Dieses Vorgehen
ermöglicht die maximale Wiederverwendbarkeit von Oberflächen-Fragmenten und die
vereinfachte Integration in Portale und Mashup-Applikationen
Die View-Schicht
Die View-Schicht repräsentiert die Benutzerschnittstelle der Applikation. Die View-Schicht kann
ausgehend von HTML, JSP, JavaServer Faces (JSF), Rich Client-Java-Komponenten oder XML
und seinen Variationen als Benutzeroberfläche dargestellt werden. Die View-Schicht kann als
Web-Client, als Client-Server-Applikation mit Swing, als Microsoft Excel-Arbeitsblatt oder als
mobile Applikation für mobile Endgeräte (Z.B. Telefon) implementiert werden.
5
Oracle White Paper—Oracle Application Development Framework - Überblick
Die Model-Schicht
Die Model-Schicht verbindet die Business Services mit den Objekten, die Business Services in
anderen Schichten nutzen. Die Implementierung der Model-Schicht befindet sich bei Oracle
ADF oberhalb der Business Services und bietet damit eine einheitliche Schnittstelle, die für den
Zugriff auf jede Art von Business Service genutzt werden kann. Die Model-Schicht besteht aus
zwei Teilen, den Data Controls und den Data Bindings, welche Metadaten-Dateien zur
Beschreibung der Schnittstelle verwenden. Die Data Controls verbergen die
Implementierungsdetails des Business Service vor den Clients. Die Data Bindings stellen den
Oberflächen-Komponenten die Methoden und Attribute der Data Controls zur Verfügung. Auf
diese Weise wird eine klare Trennung zwischen View und Model erreicht. Durch die
Verwendung von Metadaten in der Model-Schicht ist die Arbeitsweise der Entwickler beim
Verbinden der Implementierung jedes Business Service mit den Controller- und View-Schichten
identisch. Die Model-Schicht in Oracle ADF dient auch als Grundlage für den Standardentwurf
JSR-227 “A Standard Data Binding & Data Access Facility for J2EE”. Das Ziel dieses Entwurfs
ist die Standardisierung des Data Binding für Java EE-Applikationen.
Produktivität bei freier Auswahl (Productivity with Choice)
Entwickler können aus verschiedenen Technologien zur Implementierung der Oracle ADFSchichten auswählen und damit gleichermaßen produktiv entwickeln. So würden beispielsweise
dieselben Vorgehensweisen und Methoden eingesetzt, um sowohl eine ADF Swing-Applikation
auf Basis von ADF Business Components als auch eine ADF Faces-Applikation auf Basis von
Enterprise Java Beans zu erstellen. Zusätzlich zur Auswahl der Technologien können die
Entwickler zwischen verschiedenen Arbeitsweisen (deklarativ, visuell oder auf Basis des Codes),
verschiedenen Entwicklungsumgebungen (JDeveloper oder andere IDE, wie z.B.Eclipse) und
verschiedenen Deployment-Plattformen (jeder Java EE-konforme Server) wählen.
6
Oracle White Paper—Oracle Application Development Framework - Überblick
ORACLE ADF - NUTZEN
Visuelle und deklarative Java EE-Entwicklung
Entscheidend für den Nutzen eines Frameworks sind Entwicklungs-Werkzeuge, die die
Erstellung von Applikationen auf Basis dieses Frameworks vereinfachen.
Oracle bietet visuelle und deklarative Werkzeuge für jede Schicht von Oracle ADF. JavaEntwickler profitieren selbst dann von diesen Werkzeugen, die im JDeveloper IDE integriert
sind, wenn sie nicht die Laufzeit-Funktionen von Oracle ADF nutzen.
Entwicklung der Business Services
Oracle JDeveloper bietet eine Vielzahl von Möglichkeiten, um Business Services zu erstellen:
EJB/JPA, Web Services, einfache Java-Objekte und u.a. auch ADF Business Components (ADF
BC). “Productivity with Choice” ist ein Eckpfeiler dieses Vorgehens. So können mit ADF BC
durch ein wizard-getriebenes Vorgehen Business Services generiert werden, die Java Interfaces
für Tabellen enthalten. Mit einem einfachen Click können diese Interfaces anschließend als Web
Services (einschließlich SDO Web Services) veröffentlicht werden. Um beim Thema "visuell und
deklarativ" zu bleiben, kann dasselbe Ergebnis auch erreicht werden, indem man diese Interfaces
über eine visuelle Modellierung generiert.
Das Framework Oracle ADF Business Components konzentriert sich auf die Erzeugung von
Objekten, die die Business Services-Schicht für eine Datenquelle auf stärker deklarative Weise
implementieren. Es beinhaltet Services für die Transaktions-Steuerung, das Pooling von
Ressourcen, das Sperrverhalten (Locking), deklarative Validierungsregeln, Übersetzungen und die
objekt-relationale Abbildung. Oracle ADF BC sollte Entwicklern vertraut sein, die Erfahrungen
in der Entwicklung von 4GL, deklarativen datenbank-getriebenen Applikationen haben. Es bietet
solche Funktionen, wie die Definition von Java-Objekten auf Basis von SQL, die deklarative
Festlegung von Validierungsregeln und vordefinierte Ereignisse, für die Programmcode innerhalb
des Lebenszyklus des Business Service eingefügt werden kann. Die Entwicklung der ADF BC
erfolgt über deklarative Dialoge und das Setzen von Eigenschaften (Property Inspector). Durch
die im Framework eingebaute Implementierung bekannter Java EE-Entwurfsmuster (Design
Pattern) sind Performance und Skalierbarkeit der Applikation gewährleistet.
Entwicklung der Benutzerschnittstelle
Im Oracle JDeveloper gibt es zahlreiche visuelle und deklarative Funktionalitäten für die Viewund Controller-Schichten einer Applikation:
•
Ein Page Flow-Modellierungswerkzeug für den ADF Controller, das grundlegende JSFFramework und das Open-Source Apache Struts-Framework, das eine visuelle Modellierung
des Seitenablaufs durch einfaches Drag&Drop von Komponenten im Diagramm ermöglicht.
7
Oracle White Paper—Oracle Application Development Framework - Überblick
•
Ein visueller Editor für JSP, JSF, HTML, Swing und für Oberflächen drahtloser Geräte, der
eine Entwicklung nach dem WYSIWYG-Prinzip für alle Typen von Komponenten erlaubt.
•
Deklarative Entwicklungswerkzeuge, um der Oberfläche Komponenten hinzuzufügen,
deklarative Komponenten zu erstellen, einen Property Inspector, eine erweiterbare
Komponenten-Palette und eine Data Control-Palette.
•
Wiederverwendbarkeit – einige Funktionen, die eine größtmögliche Wiederverwendbarkeit
unterstützen, einschießlich der Erstellung von Task Flows, ADF Libraries und von
deklarativen Komponenten.
•
ADF Faces – eine umfangreiche Bibliothek von Oberflächen-Komponenten, die auf den
Standard API von JSF aufbauen und die modernsten Technologien, wie z.B. AJAX und die
partielle Aktualisierung von Seiten, enthalten, um leistungsfähige interaktive Oberflächen zu
gestalten.
Abb. 2: Visuelle Bearbeitung von JSP und JSF
Die visuellen und deklarativen Entwicklungs-Werkzeuge sind im JDeveloper IDE synchronisiert,
so dass der visuelle Editor, der Property Inspector und die Modellierungs-Werkzeuge zu jedem
Zeitpunkt mit dem Programmcode abgeglichen werden. So sind die Entwickler in der Lage, ihre
Arbeitsweise zu wählen, Drag & Drop zu nutzen, deklarativ Eigenschaften festzulegen oder
direkt im Programmcode zu editieren.
8
Oracle White Paper—Oracle Application Development Framework - Überblick
Verbinden von Business Services und Benutzerschnittstelle
Der Oracle JDeveloper bietet eine sehr einfache Möglichkeit, um Komponenten der Business
Services-Schicht mit den Controller- und View-Schichten zu verbinden und nutzt dabei eine
innovative Implementierung der Data Controls nach JSR-227. Die Data Control-Palette
ermöglicht dabei eine Sicht auf die Business Services-Schicht. Entwickler können Daten-Objekte
per Drag&Drop auswählen und mit einer Implementierung in der Oberfläche verbinden. Der
gleiche Mechanismus kann benutzt werden, um Aktionen des Controllers mit Methoden zu
verknüpfen, die in der Business Services-Schicht definiert sind. All dies ist auf rein visuelle und
deklarative Weise möglich.
Vorteile gegenüber anderen Frameworks
Die wesentlichen Eigenschaften von Oracle ADF, die es gegenüber anderen Java EEFrameworks auszeichnet, sind
Durchgängigkeit (End-toEnd) – Oracle ADF konzentriert sich nicht nur auf eine Schicht der
Java EE-Architektur. ADF bietet stattdessen eine integrierte und komplette Lösung für jede
Schicht, angefangen von der View-Schicht und die Data Bindings (JSR-227), über die Business
Services und den Datenzugriff bis zur Unterstützung für jede Phase des Entwicklungszyklus vom
Projektbeginn bis zum Support.
Entwicklungs-Umgebung – Vielen anderen Java EE-Frameworks fehlt die Unterstützung
durch Entwicklungs-Werkzeuge. Der Oracle JDeveloper bietet visuelle Hilfestellungen und eine
deklarative Arbeitsweise. Er reduziert die Notwendigkeit, Programmcode zu schreiben, und ist
damit das perfekte Werkzeug zum Entwickeln von ADF-Applikationen. Das deklarative
Vorgehen bei der Entwicklung verkürzt die Lernkurve für Entwickler, die mit 4GL-Werkzeugen
vertraut sind.
Plattform-Unabhängigkeit – Andere Frameworks binden die Entwickler an einen spezifischen
Software-Hersteller. Die Laufzeitumgebung von Oracle ADF kann auf jedem Java EEkonformen Application Server installiert werden und Business Services können sich mit jeder
SQL-92-konformen Datenbank verbinden.
Wahl der Technologie – Entwickler bevorzugen bestimmte Technologien für die
Implementierung der verschiedenen Schichten einer Applikation. Oracle ADF unterstützt
mehrere Technologien in jeder Schicht der Applikation und verlangt vom Entwickler nicht eine
spezielle Technologie oder ein spezielles Vorgehen.
Technologisches Commitment – Es ist wichtig darauf hinzuweisen, dass Oracle ADF die
ausgewählte Technologie für die nächste Generation der Unternehmens-Software von Oracle ist
und kontinuierlich in der internen Entwicklung eingesetzt wird. Das Produkt wird sowohl zur
9
Oracle White Paper—Oracle Application Development Framework - Überblick
Entwicklung von Portal-Applikationen, mobilen Applikationen als auch Web-Applikationen
genutzt und enthält deshalb einen abgestimmten, supporteten und konsistenten Satz von
Technologien.
Metadaten-getrieben – Alle Schichten des Oracle ADF Frameworks bieten die Möglichkeit
eines deklarativen Vorgehens durch die Konfiguration von XML-Metadaten. Zugleich wird das
Schreiben von Programmcode unterstützt, falls dies erforderlich ist. Es kann das gesamte
Framework oder Teile davon zum Erstellen der eigenen Applikation eingesetzt werden.
Komponenten der Applikationen sind in höherem Maße flexibel und wiederverwendbar. Durch
die Verwendung von Metadaten können Regeln für daten-gebundene Felder in der ModelSchicht definiert werden. Feldbezeichner, Validierungen und Tooltip-Eigenschaften können als
Metadaten der ADF Data Bindings festgelegt werden – diese Eigenschaften werden so
unabhängig von der Implementierung der Benutzeroberfläche verwendet. Zusätzlich erlauben die
Metadata Services (MDS) Anpassungen der Benutzeroberfläche über zwei verschiedene
Schichten der Implementierung: Die erste Schicht („seeded customization”) bezieht sich auf eine
applikationsweite Anpassung, die sich auf alle Mitglieder einer bestimmten Gruppe auswirkt.
Die zweite Schicht (“user customization”) wird oft als "Personalisierung" bezeichnet, bei der ein
Endanwender spezielle Anpassungen an seiner Applikation vornimmt, die dann dauerhaft im
MDS-Repository gespeichert werden können.
Erweiterte Wiederverwendbarkeit – JDeveloper und ADF unterstützen die
Wiederverwendbarkeit durch viele herausragende Funktionen: JSF Seitenvorlagen (Templates),
Task Flows und Vorlagen für Task Flows, ADF-Bibliotheken, Regionen auf Basis von JSFSeiten-Fragmenten sowie Task Flows und vieles mehr.
Verfügbarkeit des Quellcodes - Oracle stellt Kunden mit einem gültigen Lizenzvertrag den
Quelltext des ADF-Frameworks zur Verfügung. Durch die Verfügbarkeit des Quelltextes
können Entwickler die grundlegenden Mechanismen des Frameworks besser verstehen und
Probleme in ihrer Applikation aufdecken.
Support - Oracle ADF ist ein offizielles Produkt von Oracle und wird damit durch die Oracle
Support Organisation betreut. Dies ermöglicht den kontinuierlichen Support durch eine eablierte
Organisation.
Training - Oracle University bietet reguläre Standardkurse zu Oracle ADF and JDeveloper an.
10
Oracle White Paper—Oracle Application Development Framework - Überblick
Resümée
Oracle ADF vereinfacht die Java EE-Entwicklung durch eine bereitgestellte Implementierung
von Entwurfsmustern (Design Pattern) und von Infrastruktur-Code. Oracle ADF bietet eine
Auswahl von Entwicklungsansätzen, eingesetzten Technologien und Plattformen für das
Deployment. Die Kombination der fortschrittlichen Architektur von Oracle ADF mit der
visuellen Entwicklungsumgebung des Oracle JDeveloper 11g bietet eine perfekte Lösung sowohl
für Einsteiger als auch für erfahrene Entwickler, die eine höhere Produktivität bei der
Entwicklung von Java-Applikationen anstreben.
Weitere Informationen über Oracle ADF und den Oracle JDeveloper sind im Oracle Technology
Network (OTN) zu finden: http://otn.oracle.com/products/jdev.
11
Oracle Application Development Framework
(ADF) - Überblick
Juli 2009
Autor: Shaun O’Brien
Co-Autor: Shay Shmeltzer
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Copyright © 2009, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and
the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other
warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or
fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are
formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any
means, electronic or mechanical, for any purpose, without our prior written permission.
Worldwide Inquiries:
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective
Phone: +1.650.506.7000
owners.
Fax: +1.650.506.7200
oracle.com
0109
Herunterladen