WebDynpro Overview

Embed Size (px)

Citation preview

  • 8/20/2019 WebDynpro Overview

    1/16

    Andreas Fahle

    SAP Web Dynpro: Overview

    Seminar System Modeling

    01.06.2005

  • 8/20/2019 WebDynpro Overview

    2/16

    HPI, Seminar System Modeling - SS2005 / 2

    Agenda

    IntroductionWhat is Web Dynpro?

    Objectives and approaches

    Basic concepts

    ExampleViews, Controllers, and Models

    Components and Applications

    Contexts

    Meta-model

    Development process

    Declarative vs. procedural programming

    Common steps

    Execution

    Summary

  • 8/20/2019 WebDynpro Overview

    3/16

    HPI, Seminar System Modeling - SS2005 / 3

    Introduction – What is Web Dynpro? (1)

    WD is a UI framework for SAP NetWeaver.WD supports programming in Java, ABAP, and .NET.

    Focus on Java version here

    WD comes with powerful design tools.

    Eclipse-basedPart of NetWeaver Developer Studio

  • 8/20/2019 WebDynpro Overview

    4/16

    HPI, Seminar System Modeling - SS2005 / 4

    Introduction – What is Web Dynpro? (2)

  • 8/20/2019 WebDynpro Overview

    5/16

    HPI, Seminar System Modeling - SS2005 / 5

    Introduction – What is Web Dynpro? (3)

    History: Why the name „Web Dynpro“?Dynpro = „Dynamic program“

    Dynpro is SAP‘s legacy technology for interactive UIs (R/2, R/3)

    programming in ABAP

    Dynpro‘s are rendered in SAP GUI applicationWeb Dynpro is to combine

    „high interactivity“ (= dynamic GUI) and

    „zero installation“ (= ubiquitous GUI, e.g. web browser)

  • 8/20/2019 WebDynpro Overview

    6/16

    HPI, Seminar System Modeling - SS2005 / 6

    Introduction – Objectives and approaches

    „minimize coding, maximize design“

    tools allow graphical/declarative programming, code is generated

    „separate layout and logics“

    view vs. controller, plus data binding and navigation plugs

    „support arbitrary backends“JavaBeans, ABAP, and Web Services are supported

    „run on multiple platforms“

    Java, ABAP, and .NET are supported

    „high fidelity web UI“browser-based WD client, including

    modern web browsers (IE 5.5, Mozilla 1.7)

    mobile devices (PocketPC, Blackberry)

    Web Dynpro Client for Windows (SAPGUI-Nachfolger)different rendering modes (server-side vs. client-side)

    accessibility

    internationalization

  • 8/20/2019 WebDynpro Overview

    7/16

    HPI, Seminar System Modeling - SS2005 / 7

    Basic concepts – Example

    This is a simple example:

    simple data types,one view,

    no further controllers beyond component and view controller.

    componentEmployeeBaseDataEditor

    model

    Human Ressources

    model classEmployee

    view controllerof EmployeeForm

    context

    componentcontroller

    viewEmployeeForm

    control"name" text field

    control propertytext

    control property

    control

    context elementemployee/name

    context

    context elementemployee/name

    context element context element

    model property"name" attribute

    model property

    to thebackend

    "model manager"

  • 8/20/2019 WebDynpro Overview

    8/16

    HPI, Seminar System Modeling - SS2005 / 8

    Basic concepts – Views, Controllers, and Models

    View 

    description of a visible screen area

    contains and lays out controls (aka widgets)

    defines actions (i.e. relevant input on controls by the user), which

    trigger event handlingController 

    performs event handling

    each component has a component controller 

    each view has a view controller custom controllers may be added for further structuring

    Model 

    represents the data in the backend

    Note: Manifestation of the „Model-View-Controller“ pattern isquestionable, although claimed by SAP.

    Views don‘t get updates directly from the model.

  • 8/20/2019 WebDynpro Overview

    9/16

    HPI, Seminar System Modeling - SS2005 / 9

    Basic concepts – Components and Applications

    Component 

    reusable UI program package

    mostly contains views, often uses models

    communicates with other components via component interfaces 

    Application something runnable (from client application, i.e. web browser)

    identified by URL

    Running an application means

    starting a component,

    „navigating“ to an initial view in an initial window.

  • 8/20/2019 WebDynpro Overview

    10/16

    HPI, Seminar System Modeling - SS2005 / 10

    Basic concepts – Contexts

    A context represents a hierarchical data „model“(i.e. application metadata).

    Each controller has a context.Typically, ...

    ... a view controller‘s context keeps the„model“ of the data to be presented incontrols; these metadata are bound tocontrol properties,

    ... a component or custom controller‘s 

    context keeps the „model“ of all datarequired in the component; these metadataare bound to a model.

    Context elements may be mapped across

    contexts.Data changes are synchronized betweencontrols and models, according to contextmappings.

  • 8/20/2019 WebDynpro Overview

    11/16

    HPI, Seminar System Modeling - SS2005 / 11

    Basic concepts – Meta-model

    navigationlink

    view

    plug

    inbound

    plug

    outboundplug

    control

    controller

    viewcontroller

    componentcontroller

    customcontroller

    context

    component

    contextelement

    map

    modelclass

    model

    application

    start

    use consist ofconsist of

    bindbind

    window

    navigation

    screen layout

    have

    have

    modelproperty

    controlproperty

    havehave

  • 8/20/2019 WebDynpro Overview

    12/16

    HPI, Seminar System Modeling - SS2005 / 12

    Development process – Declarative vs. Procedural

    Declarative programming of

    layout and navigation

    application data anddata binding

    Procedural programming of

    event handlers

    additional methods

    Web Dynpro Tools

    developer

    Editor

    Generator

    Web DynproMetadata

    Java Code

    R

    //@@begin javadoc:onActionBack(ServerEvent)

    /** Declared validating event handler. */

    //@@end

     public void  onActionBack( IWDCustomEvent wdEvent )

    {

    //@@begin onActionBack(ServerEvent)

    wdThis.wdFirePlugToStartView();

    //@@end

    }

  • 8/20/2019 WebDynpro Overview

    13/16

    HPI, Seminar System Modeling - SS2005 / 13

    graph/decl

    Development process – Common steps

    Start

    Create component (code is generated)

    Design views

    Create view (code is generated)

    Place controls on view (metadata are generated)Add control properties (metadata are updated)

    Design screen layout

    Apply screen layout to views (metadata are generated)

    Design navigationCreate and connect navigation plugs (code is gen‘d)

    Write event handlers

    Design data flow

    Populate and map contexts (metadata are generated)

    Use models (metadata are generated)

    Add additional features

    Add controllers, write event handlers and methods

    declarative

    graphical

    procedural

    procedural

    declarative

    graphical

    declarative

    graph/decl

    graph/decl

  • 8/20/2019 WebDynpro Overview

    14/16

    HPI, Seminar System Modeling - SS2005 / 14

    Execution

    Web-Dynpro-based application runs on presentation server.Web Dynpro client knows only about screen data (e.g. HTML widgets),not about data binding and contexts.

    Use of widgets (i.e. entering text) may cause events, which trigger a

    roundtrip :message from client to server, and context update

    possibly further activity by controllers at the server

    message from server to client, and screen update

    Client Presentation server

    Backend server(J2EE-based)

    Web browser

    Web Dynproclient

    Web server

    Web Dynproruntime

    Web-Dynpro-based application

    J2EEApplication Server

    Backendapplication

    R

    HTTP

    businessdata

    R

    RMI

    Backend server(ABAP-based)

    R

    SAP Java

    Connector

    R

    SOAP

    Web Service provider

    screen data

    R

    R

    User

    R

  • 8/20/2019 WebDynpro Overview

    15/16

    HPI, Seminar System Modeling - SS2005 / 15

    Summary

    Web Dynpro is a powerful UI Framework for SAP NetWeaver.

    Most of the programming can be done in a graphical and/or declarativemanner.

    Web Dynpro is open for new backend types, frontend types, as well asfurther programming languages.

    Component-orientation supports re-use.Data are mapped and synchronized between UI controls and thebackend via models and contexts.

    All activity (i.e. roundtrips) is initiated from the client.

  • 8/20/2019 WebDynpro Overview

    16/16

    HPI, Seminar System Modeling - SS2005 / 16

    References

    Kessler, K., Tillert, P., Dobrikov, P.: Java-Programmierung mit demSAP Web Application Server. Galileo Press, Bonn 2005.

    McNulty, P.: Web Dynpro Overview. SAP AG, 2002.

    Tillert, P., Wilson, A.: Web Dynpro Introduction/Concepts. SAP AG,2003.

    SAP Library – Development Manual, Web Dynpro.SAP Library – Architecture Manual, Web Dynpro Architecture.

    SAP Online Help, Creating Your First Web Dynpro Application.

    Knöpfel, A.: Konzepte der Beschreibung interaktiver Systeme.

    Universitätsverlag Potsdam, Potsdam 2005.