47
1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and Development Environments

Embed Size (px)

DESCRIPTION

Slides from Oracle's ADF Architecture TV series covering the Planning & Getting Started phase of ADF projects, specifically the planning & getting started tasks to think about. Like to know more? Check out: - Subscribe to the YouTube channel - http://bit.ly/adftvsub - Planning and Getting Started Playlist - http://www.youtube.com/playlist?list=PLJz3HAsCPVaRzwcWgFLjMWDDT6OV1x2ma - Read the episode index on the ADF Architecture Square - http://bit.ly/adfarchsquare

Citation preview

Page 1: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Page 2: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ORACLE PRODUCT

LOGO

Planning & Getting Started: Team, Skills and Development Environments

Real World ADF Design & Architecture Principles

15th Feb 2013 v1.0

Page 3: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Learning Objectives

•  At the end of this module you should be able to:

– Understand what roles are required to support an ADF project

– What tools, hardware and infrastructure you need to get in place

– How do you prepare for an ADF project

Image: imagerymajestic/ FreeDigitalPhotos.net

Page 4: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Team Size, Roles, Expertise •  Developer Tools •  Developer PCs •  Database & WLS Setup for Development Environments

Page 5: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Exercise We've an unlimited budget! What roles would we like to support our ADF project

with? Both technical and non.

Image: imagerymajestic/ FreeDigitalPhotos.net

Page 6: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

How Big Should Our Project Team Be?

•  There isn't a 1 size fits all –  Team size directly relates to the

application size & requirements – Small developments = 1 team

member with multiple responsibilities

–  Large developments = multiple teams with multiple members & separate responsibilities

Image: Simon Howden / FreeDigitalPhotos.net

Page 7: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ADF Development Roles Each project team

•  ADF team leader •  ADF developer(s)

Preferably

•  Database developers •  Java expert (more soon) •  Java EE expert (more soon) •  JSF expert

Image: marin/ FreeDigitalPhotos.net

Page 8: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Supporting Design Roles

•  Enterprise architects •  System architects •  Database architects •  FMW skilled architects •  Web designers •  User experience advocates

Image: tungphoto / FreeDigitalPhotos.net

Page 9: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Supporting Technical Roles

•  Change control administrators •  Database administrators •  WebLogic Server administrators •  LDAP administrators •  Firewall administrators •  SSL security administrators •  DevOps

Image: David Castillo twobee / FreeDigitalPhotos.net

Page 10: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Software Development Roles

•  IT manager •  Project manager •  Enterprise architect •  Change control officers •  Risk managers •  QA managers •  Documentation writers

Image: David Castillo Dominici/ FreeDigitalPhotos.net

Page 11: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Supporting QA Roles

•  Development and Code QAs •  Load/stress testers •  Functional testers •  Users/system custodians

Image: David Castillo Stuart Miles / FreeDigitalPhotos.net

Page 12: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Users

•  Expert users •  Domain knowledge experts •  End users

Image: akeeries/ FreeDigitalPhotos.net

Page 13: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

It would be great to have a team of Java experts, but most of our team are just

starting out. What Java does the average ADF team member need to know?

Exercise

Image: imagerymajestic/ FreeDigitalPhotos.net

Page 14: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

How competent in Java do I need to be for ADF?

“Not everybody who writes needs the skills of Shakespeare. But everybody who writes need to follow rules of spelling and grammar in order to make themselves understood. Every programmer on the project needs to know Java as a programming language and to be able to write syntactically correct Java code. But not everyone who writes Java code needs to be a virtuoso with full command of inheritance, interfaces and inner classes.”

Sten Vesterli’s Oracle ADF Enterprise Application Development Made Simple

Page 15: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Java Skills for Average ADF Developers Java SE 7 Programming I þ  Java Basics

þ Working with Java Data Types

þ Using Operators and Decision Constructs

þ Creating and Using Arrays

þ Using Loop Constructs þ Working with Methods and Encapsulation

þ Working with Inheritance

þ Handling Exceptions

Java SE 7 Programming II þ  Java Class Design

þ  Java Advanced Class Design

þ Object-Oriented Principles

☐ String Processing

þ Exceptions ý Assertions

☐ Java I/O Fundamentals

☐ Java File I/O

☐ JDBC

ý Threads ý Concurrency

☐ Localization

?

?

?

?

?

Page 16: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Java EE Skills •  At least 1 team member should be knowledge in the following Java

EE technologies: –  Servlets –  HTTP Session –  Vanilla JSF and the JSF lifecycle

•  Be warned –  Some highly skilled Java EE programmers will not want to work with ADF –  They are trained and knowledgeable in core Java EE technologies and competing

frameworks –  Typically will have open-source preference –  And human nature dictates experts can be defensive of their preferences –  Be careful they don't convince you against why you chose ADF in the first place

Page 17: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ADF Competence

•  Ensure to have at least one experienced ADF programmer on the team

•  Put all the team on ADF training •  Preferably both! •  Start with a small project – THINK BIG (not the

other way round)

•  ADF is a massive framework with a huge array of features •  Teams will struggle to learn everything in a short timeframe •  = A large risk to ambitious deadlines or complicated projects

Image: phanlop88 / FreeDigitalPhotos.net

Page 18: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ADF Community Participation Encourage staff to:

•  Read the ADF manuals

•  Share experience internally •  Participate & use the JDeveloper/ADF OTN Forum •  Search Oracle Supports notes •  Lodge (quality!) SRs with Oracle Support •  Keep up to date with ADF announcements & blogs •  Join ADF community groups like the ADF EMG

•  Blog and present on ADF •  Attend ADF sessions at conferences like Oracle Open World

Page 19: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Other Team Expertise

What other expertise does your average ADF programmer need?

Source control? ...?

Page 20: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Team Size, Roles, Expertise •  Developers Tools •  Developer PCs •  Database & WLS Setup for Development Environments

Page 21: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

What software tools besides JDeveloper do you think we should provide our

developers to make building software easier?

Exercise

Image: imagerymajestic/ FreeDigitalPhotos.net

Page 22: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Tools to Assist ADF Developers

•  Source version control software –  e.g. SVN

•  Application Lifecycle Management (ALM) software

•  Automated testing software –  e.g. JUnit, Selenium, OATS

•  Build & Continuous Integration (CI) software –  e.g. Ant, ojdeploy, Hudson, Cloud Developer Services

•  Others? –  e.g. SoapUI, FireBug, UI design tools...

Page 23: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Team Size, Roles, Expertise •  Developer Tools •  Developer PCs •  Database & WLS Setup for Development Environments

Page 24: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Developer PCs – General Rules

•  For any development team over 1 person –  Standardize developer PC setup –  Document everything & update this periodically

•  Download and keep the JDeveloper install files from Oracle •  Standardize on

–  One JDeveloper edition (e.g. studio edition) –  Set of extensions –  Patches

•  Track carefully what version of JDeveloper each application uses

Page 25: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Developer PCs - JDeveloper •  JDeveloper installations need to cater for

–  Build scripts that assume location of services –  Case sensitive build scripts –  Moving between operating systems

•  Standardize base installation location & allow for multiple installs –  Standardize the directory case across all installations –  Do not use spaces or special characters –  C:\Oracle\JDeveloper\JDev111160 or C:\Oracle\JDeveloper\JDev112200

•  Standardize "system" installation location too –  Especially useful for requesting Virus Scanner corporate exemptions

(more soon) –  Be mindful however different OS versions do move this by default

Page 26: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Developer PCs – JDeveloper Configuration

•  JDeveloper Configuration: document and standardize on – Any changes to ide.conf or jdev.conf – Any Tools – Preferences updates –  Integrated WLS configurations (consider WLST scripts) – Database connections – Change control connections – Application server connections

Page 27: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Developer PCs – Hardware Requirements •  Oracle dictates minimum hardware requirements •  But these are the minimum, developers' productivity will suffer •  JDeveloper is memory and IO intensive, and has lots of windows

•  The productivity of developers will be enhanced by: –  Additional memory (4GB minimum) –  Large displays (24") –  SSDs (or at minimum 7200RPM or

Hybrid HDD) –  Faster CPUs

Image: Arvind Balaraman / FreeDigitalPhotos.net

Page 28: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Developer PCs - Performance

Virus scanners: •  Potentially major silent killer

of JDeveloper performance •  McAfee virus scanner worst

offender •  Ensure to put in appropriate

Java exemptions •  Get ready for a fight with

enterprise policy bureaucrats

Page 29: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Developer PCs - Browsers •  Preconfigure PCs with every browser possible

–  Enterprise apps: even test with browsers that aren’t corporate standard to identify issues early

–  Encourage developers to use a different browser each day –  Previous versions of IE may require VMs as they can't coexist –  Consider same setup for QA PCs as well –  Consider browser extensions such as Firebug

Page 30: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Developer PCs – Other Setup Options

Consider preconfigured virtual machines

Page 31: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ADF Source Code

•  Log an Oracle Support Request •  Make available on your local network •  In JDeveloper source editor provides:

– Quick JavaDoc lookup – Meaningful parameter insight

•  Debugger – Allows breakpoints and to see values in Oracle source

•  Configure: http://bit.ly/adfdevguide111210s3681 •  See Support Note: 971256.1

Page 32: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Program Agenda

•  Team Size, Roles, Expertise •  Developer Tools •  Developer PCs •  Database & WLS Setup for Development Environments

Page 33: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Development Environment Setup

•  Later parts of course will consider server topologies and more •  What infrastructure do we need to get development rolling?

Image: Renjith Krishnan / FreeDigitalPhotos.net

Page 34: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Development/Test/Production Environments

•  Enterprises typically support 3 types of platforms to assist development: development/test/production

•  Typically one set per system or application •  Change control process

–  Enhancement & bug fixes recorded in change control system –  Allocated to developers on approval –  Are never applied straight to production –  First developed in “development” –  Once completed tested in (1 of many) “test” environments –  Once ready migrated to “production” for users

Production

Test

Development

Page 35: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Development/Test/Production Environments

•  Development/test/prod considerations – Ownership of each environment – Change control procedures – Change control software – Who manages patching/updating –  Team communications & notifications

Production

Test

Development

Page 36: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Development Environment

•  Development environment –  Typically 1 per system – Developers share & work with code in

development –  Little administrative control, backups not always

required – Code can be inherently bug prone, incomplete,

the wrong version, experimental – Required early on in system lifecycle

Production

Test

Development

Page 37: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Testing Environments •  Testing environment(s)

– Code formally released from development for testing

– One of a number of environments, e.g. • QA testing, nightly sanity build & deployments,

automated regression testing, user acceptance testing, load/stress testing, release testing

–  Ideally rebuilt from production regularly –  Ideally a duplicate of production systems + changes – Not required at the beginning of system lifecycle – However ideally should be built early on Production

Test

Development

Page 38: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Production Environments

•  Production environment – Most important environment – Strict administrative controls – Backups critical – Code only migrated once passed all tests – Single point of truth for “released”

development code

Production

Test

Development

Page 39: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ADF Environments

•  Each environment split into database and WLS •  Test/production environments inherently more

complex (e.g. LDAP servers, web servers, clustering. Covered later in course)

Production

Test

Development

Page 40: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ADF Environments

•  ADF applications on the same ADF Runtimes can share WLS environments

•  But different ADF Runtimes require different WLS servers

Production

Test

Development

Page 41: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

41 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ADF “Database” Environments

•  Database changes can have large impact on ADF developers

•  Options – One development database only – Separate database per team – Separate database per developer PC

•  Who manages patches/updates?

Development

Page 42: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

42 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

ADF “WLS” Environments •  Development WLS may be unnecessary as

developers have an integrated WLS with JDeveloper

•  Counter arguments – A dedicated development environment gives

developers another environment to play and collaborate

–  Integrated WLS doesn’t reflect production WLS environments

– Sharing web service development required dedicated WLS

Development

Page 43: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

43 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 43 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

How do Independent Software Vendors support clients on multiple releases?

How to support multiple releases?

Do we keep development and test servers for each release?

How do we deal with outmoded hardware, O/S, servers tech?

What about production copies to test against?

Image: imagerymajestic/ FreeDigitalPhotos.net

Page 44: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

44 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 44 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Image: imagerymajestic/ FreeDigitalPhotos.net

I was just on the phone with our local Oracle sales office. They want to sell us a full Oracle cloud based

solution for our development efforts.

Can it really do everything we need?

Page 45: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

45 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Conclusion

•  Medium to large scale ADF projects require:

–  Experienced and trained staff, including non technical –  Standardized & documented development PCs & infrastructure –  Available tools and expertise –  Documented processes and procedures –  And planning to put all these in place –  You wont have a lot to show, but are essential for successful ADF projects

Page 46: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

46 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Further Reading

•  Sten Vesterli’s Oracle ADF Enterprise Application Development Made Simple

Page 47: Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and Development Environments

47 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.