Track8 Session3

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 47

Better Manage Your

Distributed Development
Team and Project Using
SAP NetWeaver
Development
Infrastructure

Richard Andrulis
SAP America
Basic Terminology
Strategies for Distributed Development Projects
SAP Netweaver Development Infrastructure (NWDI)
Case Study
Co-development
Wrap-up
The Value of SAP Custom Development

REAL CHALLENGES PREMIER ORGANIZATION DELIVERED VALUE

! Have unique business ! Seven development ! Enables innovation while


processes and need centers worldwide addressing unique
unique software solution business requirements
! 600+ employees
! Run disparate systems ! Accelerates time-to-
! 200+ projects in 2004
needing intensive
market
integration ! 45% growth in 2005
headcount ! Leverages 30+ years of
! Require custom
developments to fit with ! Leverages $1.5 billion in
development experience
SAP release strategy SAP R&D ! Mitigates business risk
! Lacking internal talent for
! Increases return on SAP
custom development
initiatives investment

! Minimize long-term ! Protects investment with


maintenance costs for long-term maintenance
custom applications options

SAP AG 2005, 3
Quick Quiz

What do you first think of when I say CBS?


1. Survivor, CSI
2. Columbia Business School
3. SAP Java Development Infrastructure

What do you think of when I say, Eclipse?


1. A car from Mitsubishi
2. The apparent juxtaposition of sun, earth, and moon?
3. The open source platform that forms the basis for SAPs
Netweaver Developer Studio

What, if anything, does the phrase, 0x2B | ~ 0x2B, mean to you?

SAP AG 2005, 4
Basic Terminology
Strategies for Distributed Development Projects
SAP Netweaver Development Infrastructure (NWDI)
Case Study
Co-development
Wrap-up
The Component Model Elements (Bottom-Up)

Products
Product version
! Overlapping selections of software components

Software Components (SCs)


*
! Delivery and installation units (e.g., HR in ABAP)
* 1 0/1
! Group development components without overlapping SC version Release
! Own the release definition
1

Development Components (DCs)


! Development and build units
*
! Group development objects without overlapping DC version
1
Development Objects
! Stored as versioned files in the source repository *
(DTR) DO version
! i.e., Web Dynpro view, table definition, Java source
file, *.jsp, ejb,

SAP AG 2005, 6
Software and Development Components

Software Components (SCs)


! Group Development Components (DCs) with related functionality
! Represent the most common level for delivering code to the customer
Software Component Archive (SCA)
! Provide the granularity for user permissions for editing development objects
! Usually 12 SCs per product

Development Components (DCs)


! Reusable building blocks for Software Components. A DC is a named container
for arbitrary Development Objects (DO)
! These contained objects are not directly visible to other components,
i.e., the DC acts as a black box

Development Objects (DOs)


! Java source files
! Java Server Pages (JSPs)
! Dictionary definitions
! Deployment descriptors
! Etc.

SAP AG 2005, 7
DCs: Public Parts

! You must explicitly define Public Parts if you want some of these
objects to be visible from the outside

! A public part has a name and a purpose and contains a list of


objects called entities

! Note, need to watch out for cyclical dependencies (currently not


allowed) between DCs

SAP AG 2005, 8
Basic Terminology
Strategies for Distributed Development Projects
SAP Netweaver Development Infrastructure (NWDI)
Case Study
Co-development
Wrap-up
Distributed Development

Approach Strategy
! The critical difference from ! Break application into logical work
regular development is that packages, which minimizes the
teams are physically separated, dependencies for cross-team
making communication difficult communication
! Minimize cross-team ! Explicitly define all interfaces
dependencies in order to between work packages
minimize need for communication
! Assign each work package to a
between teams
separate team to implement the
predefined interfaces

SAP AG 2005, 10
ESA Guiding Principles

Enterprise Services Architecture (ESA) provides a design philosophy


for distributed development

! Increase abstraction where it makes business sense.


! Modularity manage the complexity of a large system
by breaking it into a number of smaller parts
! Connect the modular parts (components) using
services
! Loose coupling
! Emphasis on design that is incrementally improved. *
* Enterprise Services Architecture, by Dan Woods.

SAP AG 2005, 11
Guiding Principles Component-Based Design

! Component-based design provides a means to break down


an application into basic, reusable units

! Each component exposes a well-defined interface to other


components while its internal implementation remains
invisible (a black box)

! Components are only dependent on the interface of other


components, but not on their internal workings

SAP AG 2005, 12
Distributed Development Strategies

One Team Everyone works together on a work package


! This provides the greatest communication challenges

Parallel Development Each team works independently on


well-defined and separate work packages
! Requires the least inter-team communication, and hence presents
the lowest risk for miscommunication

Sequential Development Teams hand off work packages after


completing some portion
! Likely to have communication problems
! Not very time efficient since one team often must wait for another
! May be necessary if one team has specific skills required for several
work packages

SAP AG 2005, 13
Work Package

Planning
! Sub-division of the total scope of the project
! Clear set of inputs, prerequisites, and deliverables. It will contain a set
of tasks to be accomplished and an allocated list of assigned resources
! Scheduled start and finish date

Alignment
! Schedule is integrated with higher-level schedules of the project

Commitment
! An accountable unit of work performed within a project

SAP AG 2005, 14
Work Package Breakdown Recommendations

! Not more than two, three at the most, locations should be


included for the execution of the project because the
coordination overhead will increase

! Constraints such as infrastructure, public holidays, and time


zone differences across locations should be considered for
time-critical projects

! UI/Customer Acceptance Test should be executed near


the customer

! Work package breakdown should not be focused on specific


individuals (i.e., nobody leasing), but rather be driven by the
deliverables of the phase/project

! Internal quality management (reviews, audits, etc.) must be as


local to development as possible

SAP AG 2005, 15
Basic Terminology
Strategies for Distributed Development Projects
SAP Netweaver Development Infrastructure (NWDI)
Case Study
Co-development
Wrap-up
NWDI Based Development Process
Local Dev. Environment

Local File System


Local J2EE
Local DC Build Test System

Build

6 Test succeeds
4a 5
3

SAP NetWeaver
1 Developer Studio UI 4b
SLD Dev.
Conf. 7 Name Server
2 12 Release
Central Dev. Environment

8
Check in Activate
Software Logistics Central J2EE
CMS Test System
inact
9 11b
act Build
11a 10
DTR Server CBS Test succeeds

SAP AG 2005, 17
NWDI Based Development Track

Planned for
Development Consolidation tracks in final
Configuration Configuration assembly SLD

Change
Workspaces Request Workspaces

3
1
1 2 1 2 Component A Component
Version i
Pool

Buildspace Buildspace

Central
Consolidation Test Production
Development
System System System
System

SAP AG 2005, 18
Co-Development Scenario

One typical scenario is the development of complex applications where the


various software components are organized in layers. All software
components in a particular layer are developed in one track, and then
forwarded to a follow-on track where the software components of the next
layer are developed.

SAP AG 2005, 19
Development Landscape
Central Development Environment
Local Team Environment
Local Team Environment CMS

Local Development
Environment
Local Development DTR CBS
Environment
Netweaver
NetWeaver
Developer Studio
Developer Studio
Local J2EE Engine SLD
Local J2EE Engine

Local J2EE Engine Central J2EE Engine

XI

BI SAP Extern

SAP AG 2005, 20
Design Time Repository/System Landscape
Directory/Name Server

Design Time Repository


Versioning source code management
Distributed development of software in teams
Transport and replication of sources

System Landscape Directory/Name Server


Component information, landscape description and name reservation, based
on standard Common Information Model (CIM)

CIM is a general schema for describing the elements in a system landscape;


this standard is independent of any implementation

Name Service Central check instance for the uniqueness of names

SAP AG 2005, 21
Component Build Server (CBS)

Build on request Central build of changes happens in real-time, upon


request of the developer, as opposed to a nightly build

Central storage of build results and build tools CBS offers the build
results and the environment required for the build (libraries, generators,
build scripts needed for compilation) in a central archive pool

Activation concept Distinction is made between an inactive and an active


state of the development objects. To pass changes from the inactive to the
active state, you must activate them. A prerequisite for this is the successful
central build of the changed development components.

SAP AG 2005, 22
Change Management Server (CMS)

Change Management Server (CMS) manages the transport of software


changes within a SAP Java development landscape. Use the CMS to execute
the following tasks:

Configuring the SAP NetWeaver Java Development Infrastructure

Transporting software changes in your development landscape

Packing and delivering software component versions you developed in


the SAP NetWeaver Development Infrastructure

SAP AG 2005, 23
Distributed Development

Java application development by more than one developer is always


distributed development

Every developer works on a local code base which is a snapshot of the


central source code repository (DTR)

This provides the developer with an independent development environment


with both advantages and obligations

No requirement of permanent connection to the central infrastructure, but


additional challenges to team organization and synchronization in addition
to the intricacies of classical distributed development

SAP AG 2005, 24
Java Development Infrastructure (Local)

Developers are responsible for keeping the local source code version in sync
with the central DTR in both directions

One huge advantage of NWDI is that the DTR keeps track of changes and
dependencies, and so it knows which components need to be synchronized
due to changes made by other developers

Dont need teams to say, Oh, you can download this code now, the system
will do it once it is checked in.

SAP AG 2005, 25
Basic Terminology
Strategies for Distributed Development Projects
SAP Netweaver Development Infrastructure (NWDI)
Case Study
Co-development
Wrap-up
Case Study

! Live application
! Built using NW04 technology
! Utilized much of SAP NetWeaver stack
! For external/internal users (i.e., exposed on Internet)
! Both read/update access to data
! Developed in parallel with customer
! Developed at six different sites
" Developers spoke five different languages and were scattered
across a 13-hour time zone difference

SAP AG 2005, 27
Architecture Block Diagram
Application
Permissions
Core Application Logic
Application UI EJB Wrapped
Active FFS
Integration
SAFE Hub
Directory (.Net)

WAS Services

UME
Web R/3
Dyn Pro XI

SLD
Portal

Custom Application
UWL
WS Cache EM

Reusable
Services XMLA
ABAP Stack Web- BW
Exposed as Service

WS
Workflow CR Data
Local
Persistence BI SDK Data
Consolidatio
Reports n
Manage Collaboration
Workflow Integration to BW
Exposed Using UWL Application Specific Using BI SDK
Persisting Data (Without
Collaboration Data Workflow Access)

SAP AG 2005, 28
Custom (J2EE) Application Detail View

Back-End
Systems

Middle Tier
SCEM
Entity Services External
Application Services /
Services
Proxies
DAO
BAPI
Session Proxies
Beans R/3
Web Web
Dyn JDO Services
Pro Proxies

Business XI
BI SDK
Logic
Objects
Local
Database
BW

SAP AG 2005, 29
Example Project Structure

SAP AG 2005, 30
DC Dependencies and Packaging

Web Dynpro WD UI

EJBs WD Model

Dependency
Appl. Services

Entity Services EJBs

Data Model

Common (Utils) Appl. Services


Library
Common (Utils)

Entity Services Deployable WS

Data Model Dictionary

SAP AG 2005, 31
Actual Work Package Assignments

SAP Custom Development

Customer

SAP AG 2005, 32
Leveraging for Future Projects

The following Architecture/Design patterns can be used as


blueprints for future custom applications for the customer:

! Custom Composite Application Patterns


" Use of Data Objects to pass messages between layers (should have
two sets one for UI and one for application logic)
" Separation of business logic from data access logic
" Integration of third-party tools

! Common Services (see following slides)


" Identify services that could be used by other applications
" Create a separate SC for these shared services

SAP AG 2005, 33
Leverage Current Infrastructure for Future Projects

Project A Generic Services Project X Project Y

UI UI UI

Generic
Services Services Services
Services

Generic
EntityEntity Entity Entity
Services
Services Services Services

Proxies Proxies Proxies

XI
Project A Enterprise Project X
Services Services Services
SAP AG 2005, 34
Reality

! Work packages dont always correspond to Development


Components

! Separation of UI (client) and services should always be


maintained to adhere to ESA guidelines. This is helped by having
a separate team for UI development and for service development.

! Need a good way to handle updating common functionality

! It took several tries before we got the process right for how to
synchronize and build using NWDI

SAP AG 2005, 35
Reality Solutions

! Set up Development Guidelines at the beginning of the project


and update them as necessary. They should include everything
from naming conventions to style guidelines.
! Need to train developers on NWDI. Once we got the process
working, we had no more troubles with NWDI.
! Need to schedule a regular deployment to central server so
everyone could test latest code changes for the entire team
! Need one solution architect focusing only on technical issues
and making sure teams are consistent in their approach
(e.g., use of design patterns, etc.)
! Its still necessary to bring people face-to-face, but its not always
necessary to bring together the entire team it can be just the
ambassadors
! Use an IM service. Just knowing when people in different time
zones are online is invaluable.
SAP AG 2005, 36
Basic Terminology
Strategies for Distributed Development Projects
SAP Netweaver Development Infrastructure (NWDI)
Case Study
Co-development
Wrap-up
Co-development

Development was divided between SAP and customer:


! SAP developed core infrastructure and main application

! Customer developed applications, launched from main


application

! Code delivery was only from SAP to customer

! Three types of integration:


1. At UI level, WebDynpro application places current context in user
session and calls a hyperlink to a URL as defined in application
configuration
2. At service level, call existing services
3. At application level, call customer exits (see next slides)

SAP AG 2005, 38
Integration Points Between SAP and Customer

! Integration through application configuration and J2EE session

! NWDI used for management of two software components (one at


customer and one at SAP):
" SAP provided weekly deployments with source code
" Customer developed the second software components in parallel
" Customer was able to enhance SAP provided code before
deployment (include third party, etc.). NWDI managed conflicts
between customers and SAPs versions.

! Sharing accomplished by software component dependencies


defined in the JDI and SLD

SAP AG 2005, 39
Third-Party Components

! Usage of third-party components in WAS Java stack provides a


new level of flexibility
! The following third-party packages were used:
" POI Library Excel Export
" Apache PDF Generator Formatting Objects Processor (FOP)
! Integration of third-party components
" SAP provided Customer Exits in Java code to allow Customer to plug-in
third-party components
" Create an external library development component and load all
third-party classes
" Create public parts for the new DC

SAP AG 2005, 40
Recommended DC Structure (Plug-In Design)
Hard reference
Weak reference
WD DC Web Dynpro

J2EE Appl. or
Plugins
Library DC
Service (EJB) /

Service Impl. Service Def.

BO Factory BO Interfaces

J2EE * Without DAO reference


BO Impl. Abstract BOs*
Appl. DC J2EE Library DC

DAO Common DO
Presentation Layer
RFC Proxy
Business Layer
Utils
DB (JDO) Integration Layer
Misc
JCA (XMLA)

WS DC Web Service Model Dictionary DC

SAP AG 2005, 41
Basic Terminology
Strategies for Distributed Development Projects
SAP Netweaver Development Infrastructure (NWDI)
Case Study
Co-development
Wrap-up
Resources

To learn more about SAP and SAP Custom Development,


visit our site:
! http://www.sap.com
! http://www.sap.com/services/customdev

To speak to someone in SAP Custom Development


! Christopher Farrell
Newtown Square Office, Pennsylvania, United States
T + 610-661-8029
! Ellen Thiele
Newtown Square Office, Pennsylvania, United States
T + 610-661-1435

SAP AG 2005, 43
7 Key Points to Take Home

! Distributed development requires much more planning make


sure to budget for it
! High-level design is critical make sure everyone understands it
(ideally, all teams are involved in high-level design)
! Plan work packages to minimize the risk of miscommunication
! Enforce coding standards in distributed developments almost
certainly, different people will end up needing to work on the
same code
! Design fine-grained DCs
! Assign your best developers to critical work packages; be sure
they can communicate well
! NWDI is inherently built for distributed development, but you
need to train people on how to best utilize it

SAP AG 2005, 44
Your Turn!

Questions & Discussion

SAP AG 2005, 45
Contact

Rich Andrulis
Solution Architect
SAP Custom Development

SAP America, Inc.


3999 West Chester Pike
Newtown Square, PA 19073 USA

T 1-610-661-0837
F 1-610-661-0838
E richard.andrulis@sap.com

http://www.sap.com

SAP AG 2005, 46
Copyright 2005 SAP AG. All Rights Reserved
! No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG.
The information contained herein may be changed without prior notice.
! Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.
! Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.
! IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries,
zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, and Informix are trademarks or registered trademarks of IBM
Corporation in the United States and/or other countries.
! Oracle is a registered trademark of Oracle Corporation.
! UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.
! Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix
Systems, Inc.
! HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute
of Technology.
! Java is a registered trademark of Sun Microsystems, Inc.
! JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by
Netscape.
! MaxDB is a trademark of MySQL AB, Sweden.
! SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver and other SAP products and services mentioned herein as well as their
respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All
other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves
informational purposes only. National product specifications may vary.
! These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP
Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or
omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the
express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an
additional warranty.

SAP AG 2005, 47

You might also like