Accenture Foundation Platform for Java - Spring One -28 April ...

antlertextureSoftware and s/w Development

Jul 14, 2012 (4 years and 9 months ago)

751 views

Accenture Foundation Platform for Java
Spring One
28 April 2009
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
2
Agenda
Influences on Industrialization
What is Industrialization?
Strength in Models
Accelerating Java Build Environments
Standardization and Industrialization
Why Use Industrialization?
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
4
Agenda
Influences on Industrialization
Why use Industrialization ?
What is Industrialization?
Strength in Models
Accelerating Java Build Environments
Standardization and Industrialization
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
5
Industrializing Development
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
6
ADS Methods and Tools
￿
Based on deep experience, leveraging the
collective insights from hundreds of Accenture
projects
￿
Employing Java technology, complimenting
ADS and supported with Java
specific accelerators, and targeted methods and tools
￿
Beyond Java, providing methods, tools, and
capabilities that enable SI delivery
￿
An industrialized approach, offering end
to
end
consistency and standardization across all work
phases and locations
￿
Integrated throughout, providing a seamless flow
of tools and deliverables throughout your
development efforts
￿
Flexible and tailorable, addressing your specific
environment, toolset, terminology, and needs
￿
Quick uptake, getting you started –fast –via
accelerators, deep expertise, assets, and a
“playbook”for successful implementation
The Accenture Delivery Suite provides a full range of methods and
tools to drive successful Custom Java implementations.
Accenture Delivery Suite
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
7
2. As the logical extension to the methodology,
ADAprovides a central comprehensive
capability view of architectureDelivery+focused
Architecture Development
ADS Architecture Blueprint…
1. ADMprovides the standard
methodology and process
5. Consolidated into focused
Acceleratorassets leveraging
bottom
up, hands
on, technically
driven experience from
practitioners.
Technology Specific Guidelines
Reference Application
Execution Architecture
Development Architecture
Conceptual
Blueprints
Application
Analyze
Application
Design
Application
Build
Application
Test
Application
Technical
Architecture
Deploy
Test
Build
Design
Analyze
Plan
Analyze
Tech Arch
Build
Tech Arch
Test
Tech
Arch
Design
Tech Arch
3. Defining standard application architectures
through common Application Styles(Web
based, Batch, integration,
Portal, BI, ECM, Silent Commerce/RFID, Mobility, etc.)H
Service Details
Application Framework
Interactions and Services
4. Aligned to a standard catalog /
inventory of technical architecture
services (ARM for Dev, Exe, and
Ops)H
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
8
Foundation Platform for Java
Overview
Java Execution Framework (JEF)•Run+time services
•Application shell and meta+
model
Java Build Accelerator (JBA)•OSS development tools
integrated into Eclipse
•Generation capabilities for
“application scaffold”and
“project scaffold”
Java Developer Enablement•“micro methodology”extensions to ADM
•“How To”Guides and example
documentation
Java Reference Application•“Gold Standard”
illustration of AFP+J
Operations Enablement•Prescriptive guides to facilitate
integration with operations and
monitoring tools
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
9
From RFP to Deployment
Development Architecture Stream
Tool Stack Debate
Tool Install
Integration
Configuration
Cont
Integration
Setup
No Standard Arch:
Typically 2+8 Months
Prior to App Dev Start
Dev Arch
Process
Definition
Technical Architecture Stream
Using JFP
Provision
Environment
Generate
Project Structure
Using Archetype
Generate
Application
Scaffold
Framework Debate
15 days
25 days
5 days
?? days
<1 day
<1 day
<1 days
?? days
40+120 days
X days
1* days
10 days
Compile
Documentation
and build “white
space”code
Define App
Meta+Model
Develop
Code Shells
Develop
Logic
Develop
Logic
X days
Java Foundation Platform:
Start in 1 day!
*each developer, each flow!
We have shown the first 3 steps above actually completed in <10 minutes!
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
10
Agenda
Influences on Industrialization
What is Industrialization ?
Strength in Models
Accelerating Java Build Environments
Standardization and Industrialization
Why Use Industrialization?
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
11
Influences on Industrialization
￿
Opinionated Frameworks
￿
Maven –Appfuse QuickStart and their use of archetypes
￿
Grails & Rails & the influence of dynamic languages (but we’re writing Java Apps)
￿
Associated principles with frameworks (e.g. convention over configuration, DRY, etc.)
￿
Model Driven Design & Domain Specific Languages
￿
Eclipse Modeling Framework
￿
Skyway’s Implementation of Spring Framework DSLs via EMF
￿
Standardization of OSS Technologies
￿
Spring Framework
￿
Eclipse
￿
Host of other OSS technologies
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
12
Why Use Industrialization?
Agenda
Influences on Industrialization
What is Industrialization ?
Strength in Models
Java Build Environment –Project Scaffolding
Standardization and Industrialization
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
15
Java Build Accelerator +Environment
Foundation Architecture
16
Foundation Platform for Java
Java Build Accelerator (JBA)
￿
Build environment
￿
Extends Eclipse with standard
developer workstation tools
and continuous build
integration
￿
Project Generation
￿
Automates generation of project directory structure for
development
￿
Application Scaffold Generation
￿
Generates application scaffold
(shell) that conforms to the
application meta
model
Provides a standard, OSS+based build environment for development and productivity that are
available as a simple download (e.g., virtual machine), hosted or in the cloud
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
17
￿
Graphical Modeling Environmentfor building applications for each ADA Application Style:
Web (currently implemented), Batch (future), Integration (future)
Eclipse Plugins: Skyway Build and Accentureware
￿
Meta Modelrepresenting ADA Web Application Style (Batch, Integration in future)
￿
Code Templatesincorporating ADA Execution Framework and conforming to Accenture
standards and standard design patterns
￿
Project Generationand Build Capability for each ADA Application Style:
Web (currently implemented), Batch (currently implemented), Integration (future)
Foundation Platform for Java
Java Build Accelerator (JBA)
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
18
Project and Scaffold generation capability uses the meta
model to generate
everything a developer needs to focus on writing business logic
Foundation Platform for Java
Java Build Accelerator (JBA)
Foundation Architecture
19
ProjectStereotype Evolution
(1) was
archetype script invoked
mvn archetype:create
-DarchetypeGroupId=.accenture.foundation.maven.archetypes
-DarchetypeArtifactId=was-application-archetype
-DarchetypeVersion=1.0-SNAPSHOT
-DgroupId=$1
-DartifactId=$2
-DpackageName=$3
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
1. Maven compliant
project generation
2. Manual steps in
command line before
Eclipse
3. Manual steps in
Eclipse
Eclipse
Foundation Architecture
20
Command Line Generated Maven
Conventions
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Maven
conventions•src directories
•resource directories
•test directories
•test resources
•target (assembly)
Foundation Architecture
21
Eclipse
Project Stereotype w/ Skyway
Foundation Architecture
22
Project Stereotype w/ Skyway (cont)
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
24
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Maven Project
Options•
Choice of which eclipse
projects to place
stereotypes
•Categories (stereotypes)
differ depending on
application style
•Select maven layout for
code generation
Foundation Architecture
25
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Maven (m2eclipse
plugin) created layered
wtp multi
project
configuration: •dao project
•domain project
•management (jmx)
•model (DSLs & eCore)
•service project
•web
•Generated configurations
Foundation Architecture Code Generation
Foundation Architecture
26
Demo Project Stereotypes (Maven)F
Not too different from: “grails create
app”<name>
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
27
Agenda
Influences on Industrialization
What is Industrialization ?
Strength inMeta+Models
Accelerating Java Build Environments
Standardization and Industrialization
Why Use Industrialization?
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
28
Strength in Models: EMF 101
•The Eclipse Modeling Framework
has:
•Eclipse Graphical Editor
Framework (GEF)
•Eclipse Graphical Modeling
Framework (GMF)
•JET/M2T for code generation.
•Currently, several commercial
vendors, such as:
•Rational
•Borland
•Omondo
•eUML
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
29
MDD: Eclipse Modeling Framework (EMF)
￿
EMF is a low cost entry into models that doesn’t require high end
modeling tools.
￿
Create the XMI document directly
￿
Export the XMI document from a modeling tool such as Rational
Software Architect
￿
Annotate Java interfaces with model properties
￿
Use XML Schema to describe the form of a serialization of the model
“Should I model or should I program?”Answer: “Both”. “They are the same thing”
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
30
EMF: Simplified Modeling
/** * @model */
public interface Book {
/** * @model */
String getTitle();
/** * @model */
int getPages();
/** @model
type="org.eclipse.example.library.Book"
opposite="author“
*/
EList getBooks;
}
<eClassifiers xsi:type="ecore:EClass" name="Book">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="title"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="pages"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="100"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="category"
eType="#//BookCategory"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="author" lowerBound="1"
eType="#//Author" eOpposite="#//Author/books"/>
</eClassifiers>
Java InterfacesXMIUML
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
31
EMF: Simplified Modeling
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
32
EMF: Simplified Modeling
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
<eClassifiers xsi:type="ecore:EClass“
name="Book">
<eStructuralFeatures xsi:type="ecore:EAttribute“
name="title“
eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//
EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute“
name="pages"
eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="100"/>
<eStructuralFeatures xsi:type="ecore:EAttribute“
name="category“
eType="#//BookCategory"/>
<eStructuralFeatures xsi:type="ecore:EReference"
name="author" lowerBound="1"
eType="#//Author“
eOpposite="#//Author/books"/>
</eClassifiers>
Foundation Architecture
33
EMF: Simplified Modeling
/**
* @model
*/
public interface Book {
/** @model */String getTitle();/** @model */int getPages();/** @model type="org.eclipse.example.library.Book" opposite="author“*/
EList getBooks();
}
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
34
EMF Meta+Model & Type System
Isn’t it interesting that Java has been used for over a decade in ITand
has no DSL for the domain layer. Projects are left to themselvesto
solve the problem. ORM is the closest we have today through JPA
annotation but its not a Java DSL. It’s an ORM DSL.
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
35
Demo: Sample EMF Model: Library
￿
This is an UML+like model of EMF types. They are not POJOs.
They are MetaObjects (EObject, ECollection, eAttribute, etc.)
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
36
Web+Based Application Style –Interactions and Services
Foundation Architecture
37
SkywayMVC DSL Core Artifacts
Artefact
Implementation
Project
POJO –Reference to project level variables
DAO
POJO –Data Access Object by Data Type
Query
Methods within the DAO POJO
Service
POJO –Spring Service stereotype
Operation
Methods within the Service
Web Controller
POJO –Spring MVC Annotated Controller
Command Object
POJO @ModelAttributes within the Controller
Domain
POJO –JPA managed Entity
Action
POJO –Business Logic to execute
Exception
POJO –Extends java.lang.Exception
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
38
Foundation Architecture +Sources and Targets
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
MVC+DSL
DB
ECore
Code
DB
Hibernate JPA
Spring
UML
Maven
...
UML
Foundation Architecture
39
Foundation Architecture Code Generation

Foundation Architecture Project

New Interaction Input

Provided as Eclipse
Plug
in dependent on
Skyway plugin

Emphasis on
Componentization

Blursor merges the
lines between
modeling and coding
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
40
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Use the Simple EMF
Editor to create
stereotypes •Simple JSP page
•2 domain objects
•Exception Classes
•Controller Object
•Service Object
Foundation Architecture
41
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture Code Generation
Code is just as an FA
developer would expect for
spring
mvc.
•Each stereotype specified
has both code and spring
configurations generated
•The Dao is an example of
both interfaces and impl
s
generated for Address &
Person
•Pattern repeated for each
stereotype with each
respective layered project.
Foundation Architecture
42
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture Code Generation
Spring
mvc controller uses new prescribed mvc annotations:.
•The @Controllerannotates the pojo class as an mvc controller
•The @RequestMappingspecifies convention for url mapping
•The @ModelAttributeprovides for a domain object (command)
to be used for data binding.
Foundation Architecture
43
Demo: Model from standard ECore Editor
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
44
CRUD Application from Domain Model
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
45
Demo: CRUD Application from Domain Model
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
46
Spring Web Flow –your code is your model
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
47
SWF –generated configuration
Foundation Architecture
48
Demo: Sample flow creation
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
49
Why Use Industrialization?
Agenda
Influences on Industrialization
What is Industrialization ?
Strength in Models
Accelerating Java Build Environments
Standardization and Industrialization
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
50
Foundation Architecture for Java
Guiding Principles
￿
Simplicity–provides a base solution that can be more broadly
understood, applied and modified or maintained
￿
Pragmatism –provide proven capabilities, avoid “bleeding age”
technologies, and eliminate philosophical debate
￿
Impact Delivery–strive for solution to maximize productivity,
factory
like development
￿
Ease of Deployment–Hosted or “one step, push button”virtual
provisioning
￿
OSS and External Standards–Incorporate proven Open Source
solutions ensuring standardization
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
51
•Cost savings with true, end+to+end delivery platform
–Architecture productivity ~250 –500 days savings
–Application productivity ~ 5 –20% through more consistent,
simpler platform
–Open Source provides lower cost software platform
–As a very general guideline, we estimate savings of:
$250,000
$500,000 in fees either as lower price or increased
margin
•Prescribed architecture in a box reduces time to market
–Reduces time to research and agree tools and services
–Greatly simplified installation and configuration
•Proven solution with reduced risk
–Leverages proven solutions from client experience supported by
continuous process for harvesting
–Integrated with full breadth of Accenture platform –ADM and ADT
for a complete, industrial
strength platform
–Will reduce Cost
of
Poor Quality
Foundation Architecture for Java
Value Proposition Summary
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
53
Summary: Application Style Accelerators
Application Framework
Interaction and Services
Services
Provides full set of architecture
components:
￿
Execution Architecture
￿
A prescribed and pre
configured OSS execution architecture stack with
necessary extensions
￿
Prescribed operations architecture
￿
Prescribed infrastructure architecture
￿
Prescribed security architecture
￿
Defined Application Meta
Model
￿
Architecture design documentation
￿
Developer enablement: how
to
documentation with examples,
guidelines, standards
￿
A tailored, detailed version of the methodology
￿
Application code templatesbased
on architecture meta
model
￿
Reference Application
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
54
Further Information / Contacts
￿
Wayne Lund–Chief Architect
wayne.lesley.lund@accenture.com
￿
Max Furmanov–Program Manager
max.furmanov@accenture.com
￿
Tomi Vanek
tomas.vanek@accenture.com
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Foundation Architecture
55
Questions?
Questions?
Copyright ©2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.