<Insert Picture Here>
The Fusion Development PlatformJaime CidPrincipal Sales ConsultantFusion Middleware / Enterprise 2.0 May 2009
Oracle Corporation (July 2008)
• World’s largest enterprise software vendor• $22.4 billion revenue in FY08
• 25% total revenue growth• 28% new software license growth
• 300,000 global customers• 84,000 employees
• 20,000 developers• 7,500 support personnel
• 20,000 partners• 9,100 Independent Software Vendors
• Operating in 145 Countries
• E-Business Suite
• PeopleSoft Enterprise
• Siebel
• JD Edwards
• Oracle Retail
• i-Flex
• Communications Billing
• Utilities
• ProfitLogic
• G-Log
• Agile PLM
• Oracle GRC
• Database
• Real Application Clusters
• Partitioning
• OLAP and Data Mining
• Security
• Spatial
• Oracle Lite
• Times Ten
Database Middleware Applications
• Development Tools
• TP-Monitor
• Application Server
• Application Grids
• Data Integration
• SOA / Integration
• Business Intelligence
• Content Management
• Identity Management
• Enterprise 2.0
• Enterprise Performance
Management
• BEA
Oracle’s Fusion Strategy
• Oracle Fusion Architecture• Blueprint for SOA-based Enterprise Solutions
• Oracle Fusion Middleware• Technology Infrastructure for Next Gen Applications
• Oracle Fusion Applications• Protect, Extend, Evolve through Fusion Architecture and Middleware
Oracle Fusion Middleware
Oracle Fusion Applications
• Merge Oracle EBS, Siebel, Peoplesoft into one offering with multiple modules
• Convergence and evolution of different Web Platforms• Probably one of the largest software development
projects in the world• Thousands of developers (~8,000 )• Several years in the making
What We Wanted – Business Drivers
• Cutting Edge User Interface• Agility• System Integration• Standards• Scalability, Security, Portability• Time to market
How We’ll Get There
Java EE 5 SOA Web 2.0
Business LogicView Data
TaskComplete
AssignTask
Human WorkflowService
BPELProcessBusiness
ActivityMonitoring
OrchestrationHuman interaction Policy evaluationMonitoring
User InterfaceADF Faces components
Business Services
JSR-227Data
Binding
Web Services
Oracle Fusion Architecture
DB Schema
Web
Cen
ter
Events
RulesEngine
results
facts
The Challange
• On one side:• JPA, EJB, AJAX, JavaScript, BPEL, SOAP, WSDL, RMI,
JNDI, JDBC, O/R, HTML, DOM….
• On the other side:• Thousands of developers• Most don’t know these technologies• Most come from 4GL background• Expecting a visual and declarative approach• Don’t have time to learn all these new technologies• Need to focus on their specific application needs• Unified way of doing things
• How do you make it easy and approachable?
The Solution - Oracle ADF
• Development framework that simplifies development of Java EE-based Web & SOA applications
• Abstract developers from technology complexities• Example - UI Components abstracts from Ajax, Flash,
Javascript, DOM
• Provides end-to-end infrastructure solutions… • O/R Mapping, persistence, caching, controller, binding, UI
framework
• …and an easy way to use them• Visual editors, Property editors, dialogs etc…
Try Yourself
• ADF Online Interactive Demo:• http://bit.ly/adfdemo
• Data Visualization Tools Demo:• http://bit.ly/adfdvt
<Insert Picture Here>
Fusion User Interface
Compelling Features of Fusion for UIs
• ADF Faces Rich Client Components • Large skin-able component set for JSF
• ADF DVT Components• Charts, Gant, Geo-map, Gauges• Also JSF components – no new skills required
• Active Data • Push to the client
• ADF Task Flows • Reusable processes and fragments
• WebCenter• Documents, Search, Mash-ups, Presence, Discussions, 2.0, …
• Single skill set• Mobile, GIS, BI dashboards, data entry
From These
To This
Integrated, standards based, user interaction suite
Notifications
Discussions & Presence
Documents
Search
CustomPartner
Legacy
Other Apps…
Business Intelligence Apps
With ADF and other components likeOracle Web Center Framework (ADF based)
Wiki / Blog
Social Networks
Composer : Application Customization
Example Fusion Applications UI’s
Fusion ApplicationsHCM
Fusion ApplicationsProjects
Fusion ApplicationsProcurement
Oracle Enterprise Manager 11gFusion Middleware Control
<Insert Picture Here>
Oracle JDeveloper
Oracle JDeveloper Goals
• Development tool for Fusion Applications• Oracle has ~8,000 applications developers • They must be productive
• Design time for Fusion Middleware• Integrated development experience• Take advantage of special features
• Simplify Transition to Java• Addressing the enterprise developer in addition to the Java
experts
Common Architecture
Fu
sio
n A
pp
lica
tio
ns
ADF
J2EE App Server
Metadata Services (MDS)
WebCenter SOA Mobile
JDeveloperJDeveloperF
usi
on
Ap
pli
cati
on
s En
terprise M
anag
er
• Standards-based IDE• Single stack for all SOA development
• J2EE, WS, SCA & XML Development
• WebCenter, BPEL, BI & Wireless Development
• Service-Oriented Development
• Event-Driven Development
• Productivity With Choice• Supports choice of technologies
• Supports choice of development styles
• Supports choice of Application Servers & Databases
• Highly customizable & extensible
Fusion Development ToolOracle JDeveloper
Task Flow Modeling
Business Process Modeling
Data Transformation
Page Design
Routing Rules& Events
Visual and Declarative Development
• WYSIWYG Editors• JSF, JSP, HTML, Swing
• Visual Page Flow • Task Flow, JSF, Struts
• Modelers• DB and popular UML modelers
• Visual Editors• XML Schema, XSLT, WSDL
• Process Flow• BPEL Editor• Mediator
Choice of Development Styles
Visual Declarative
Code
<Insert Picture Here>
Fusion Architecture
What is an Application?
Business LogicView Data
“Traditional” Oracle Development…
User InterfaceUIX /JSP
Business ServicesADF BC / EJB
DBSchema
Web Services
Forms / Reports
Application Express
“Traditional”- Build Your Own…
• Batch processes• PL/SQL, Perl, REXX, csh, RPT, etc. etc.
• Rules engine• Workflow• Data loaders• Data Transformers• Dashboards• Security• The database is the hub
Business LogicView Data
Orchestration Human interactionPolicy evaluationMonitoring
The Fusion Blueprint
RulesEngine Assign
Task
TaskComplete
Human WorkflowService
Mediator /BPEL Process
results
factsBusinessActivity
Monitoring
User InterfaceADF Faces components
Business ServicesADF Business Components
DataBinding
SDO Services
DatabaseSchema
DatabaseSchema
Events
Common Development Framework
• Oracle Application Development Framework (ADF)• Increase productivity & ease-of-use
• Visual and declarative development• Takes care of the “plumbing” code• Implements best practices
• Promote service oriented development• Re-usable business services• Composite applications development
• Standards-based• Choice of technology, deployment platform
• Common framework for the platform
Fusion Development
BusinessBusinessServicesServices
ExposedExposedPortletsPortlets
User User InterfaceInterface
BusinessBusinessProcessesProcesses
Relational Data
Packaged Apps
XML Data
Fusion / ADF Architecture
Business Services
Data Services
ADF Bindings (JSR 227)ADF Bindings (JSR 227) Model
Controller
JSFJSF View
Desktop Browser-Based
StrutsStruts JSF/ADF Task FlowJSF/ADF Task Flow
OfficeOfficeADFADF SwingSwing JSPJSP
TopLinkTopLink
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web ServicesServices
JavaJava
ADF Faces / DVTADF Faces / DVT
XML DataXML Data Legacy DataLegacy DataRelational Relational DataData
Packaged Packaged AppsApps
Business Services
Data Services
ADF Bindings (JSR 227)ADF Bindings (JSR 227) Model
Controller
JSFJSF View
Desktop Browser-Based
StrutsStruts JSF/ADF Task FlowJSF/ADF Task Flow
OfficeOfficeADFADF SwingSwing
ADF – Fusion Stack
JSPJSP
TopLinkTopLink
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web ServicesServices
JavaJava
ADF Faces / DVTADF Faces / DVT
XML DataXML Data Legacy DataLegacy DataRelational Relational DataData
Packaged Packaged AppsApps
<Insert Picture Here>
Business Services
Business Services
User Interface
Business Processes
Exposed Portlets
Business Service Goals
• Bridge Object-Relational gap• Manage CRUD operations
• Queries/DML
• Implement business rules• Data validation• Business logic
• Reusable• Not only for UIs
• Standards-based
Business Service Selection
Core Java EE Frameworks
Enterprise JavaBeans
Web services
Java classes
Benefits• Develop with a single API• No extra libraries required
Benefits• Declarative development• Built-in design patterns
ADF Business Components
Oracle TopLink
Which Service Framework?
• ADFbc is the expected default implementation for relational access• Declarative• Customizable• Scalable
• Some exceptions for:• High transaction grid environments• Non-relational (XML / Cubic / JMX)
• If in doubt – come and talk to us
ADF Business Components
ADF is a framework that simplifies developing Java EE business services for developers familiar with declarative
development and relational databases
• Provides data interaction & business logic execution• Enables declarative-style development
• Wizard-based and visual development• Implemented in metadata, not code
• Enables business logic development• Pre-defined Java methods for common events (create,
delete, row currency)• Declarative business rules
Declarative Development
<Insert Picture Here>
Business Processes
Business Services
User Interface
Business Processes
Exposed Portlets
Business Process Development
• BPEL - standard for service integration
• Orchestrate heterogeneous services
• Hundreds of adapters for any back-end system
• Visual development of business processes
• Consistent development experience• Same tool• Visual, drag & drop
Event support across the stack
• Operations on ADF-BC objects trigger events, initiating SOA composites
• ESB fan-out patterns
• Etc.
SOA composite
createSupplier
ADF page flowand BC
newSupplier event
SOA composite
newSupplier event
Orchestrate components - SCA
New order Event
BPEL orchestration
Business Rules
Human Tasks
Web services, ADFBC – SDO and adapters
<Insert Picture Here>
User Interface
Business Services
User Interface
Business Processes
Exposed Portlets
JSF – The UI Framework of Choice
• Simplify Web Development• Server side UI generation• Component based, not mark-up• Automatic event and state handling• Diverse client base, not just HTML• Designed with tooling in mind• Applicable to wide spectrum of programmer types
• A Java EE standard
ADF Faces Enhances JSF
• Over 150 types of UI components• Trees, tabs, shuttles, etc.…..
• Rich interactive component set• Partial page rendering (PPR)• AJAX functionality
• Value-added features• Skinning, templating• Multiple renderers (HTML, PDA, wireless,…)• Drag and drop data binding• Accessibility• Internationalization
• Open source (Apache Trinidad)
ADF Faces Rich Client Architecture
Client Side Server Side
Label1
Label2
Label3
OK
DOM
Peer Objects
Document
Form
Element
Servlet
JSF Lifecycle
In Memory Tree
View Root
Form
UI Component
Renderer
iPhone Safari Render kit• The Oracle ADF Mobile Browser client, however, enables developers
to leverage the AJAX capabilities of the iPhone Safari browser, while maintain complete compatibility with mobile browsers that can only handle plain HTML or WAP 2.0 contents.
• Furthermore, it helps developers create user interfaces that are optimized for iPhone screen size and mobile Web use.
ADF Faces Rich Client Samples
ADF Faces Components
CommonComponents
LayoutComponents
Operations
Oracle Data Visualization Tools (DVT)
• Graph• Gauge• Geographic Map
• Pivot Table• Gantt Chart
Data Visualization Components (DVT)
Cuyahoga County GIS Example
Data Binding with the ADF ModelThe heart of ADF
• Single interface for any business service implementation• Abstract implementation from clients
• Drag-and-drop data binding for all services
ADF Skins & JSF Page Templates
• ADF Skins• Skin is a style sheet based on the CSS 3.0 syntax• Load dynamically during runtime
• ADF Page Templates• Consistent layout and style for all your pages• Base UI components for layout and look• Pluggable content zones (facets) for page-specific content• Cannot be nested
Page Fragments
• Not complete JSF pages – they do not have a document tag (af:document) or view tag (f:view)
• Cannot be run on its own• Share the same request scope if inside the same
page• Reusable portion of a page• Reduce the complexity of large pages
Task FlowsReusable ADF Components
• An extension to the ADF page flow concept• Can include pages, page fragments, method calls and
other task flows• Support for bookmarking, transaction management,
exception handling, and the browser back button
WebCenter Services TaskFlows Catalog
Discussions TaskFlowDiscussions TaskFlow
Document Library TaskFlowDocument Library TaskFlow
Search TaskFlowSearch TaskFlow
<Insert Picture Here>
Exposing Portlets
Business Services
User Interface
Business Processes
Exposed Portlets
Exposing Portlets
• Portlets are reusable web components providing personalization and customization capabilities• Standards-based portlets (JSR 168)
• Oracle PDK-Java portlets
• PL/SQL portlets
• JSF components• PanelCustomizable
• Move left/right/up/down
• Hide/show
• ShowDetailFrame
• Minimize/maximize
Task Flows vs. Portlets
• Similar in functionality and behavior• Task flows are local to the application
• Can share information and transaction boundaries with other items on the page
• Portlets are external to the application• Has some overhead
• Task flows can be portletized for reuse outside the application (JSR-301)
<Insert Picture Here>
Alternative UIs
Business Services
User Interface
Business Processes
Exposed Portlets
Desktop DevelopmentExcel Integration
Microsoft Office
Declarative
Binding
Bulk
Transactions
Connected
DisconnectedSecure
Business Services
ADF Mobile Browser Architecture
Business Services
Data Services
Model
Controller
View
Struts
Relational Data XML Data Legacy Data
JSP
Met
adat
a S
e rv i
ces
ADFm (JSR 227)
Packaged Apps
JSF MyFaces
JSF/ADFc
Java EJB BAM BPEL ADF BC BI XML
OfficeSwing
WebServices
Portlet Toplink JMXJCR
Mobile Browser Client
ADF Mobile Browser – Design Time Support
• Mobile render kit handles support for different markup / device capabilities
• Single application to handle both HTML and AJAX clients
• Declarative, drag-and-drop development paradigm
• Same Business Logic components are shared across mobile and desktop applications
ADF Mobile Browser – Run Time Support
• Supports both consumer and smartphone browsers• Leverages AJAX features in smartphone browsers• Downgrades gracefully to support plain HTML browsers
• Requires browsers supporting HTML / XHTML MP1 and WAP 2.0• Can be skinned with different style sheets based on user agent detection• Components size dynamically based on form factor• Partial page refresh
• Requires full AJAX support
• Page animation/transition support
ADF Mobile BrowserMobile Browser Support
• Apple iPhone and iPod Touch Safari• BlackBerry Browser 4.2 and above
• Browser version 4.6 and above supports PPR
• Windows Mobile Pocket IE 5 and 6• Ensure “Fit to Screen” view is selected to optimize display
• Nokia S60 Browser• Android Browser• Plain HTML Browsers in Consumer Mobile Phones
• Minimal browser requirement: HTML / XHTML MP1 and WAP 2.0 support• Need to download from Apace MyFaces Trinidad project
<Insert Picture Here>
Metadata Services
What is Metadata Services Framework (MDS)?
• A common infrastructure for metadata • Available across App Server Suite
• ADF, SOA, Business Process Management (BPEL) etc. • Provides runtime and design time services such as
• Flexible, Open Storage Options (export/import, file or database)
• Versioning- track and rollback changes to your application• Team Development Support• Dependency Management• Sandboxing • Customization and Personalization
Customizing with MDS
• How it is used • Web Center’s Page Editor
• Allows Business Analysts and Admin browser based design experience
• ADF components persist end user personalization to MDS• User removes columns from a table or freezes columns
• Customization Developer Role in Jdeveloper (seeded)• Allows developers to verticalize their applications• i.e Change attributes displayed based on industry• Customer customizes delivered product to better meet their
business practices.
Metadata Services Customization
Base Document
User1’s User Customization Laura’s Page
John’s Page
Site Customization
+
+
MDS Customization Engine
MetadataRepository -File or DB
No User
Customization
Customization
• Multiple layers of customization• Configuration determines:
• Number of layers (Verticalization, Site, User etc.)• Precedence of layers
• Context can be determined at runtime• Customizations saved as separate XML documents• Base and customized metadata stored in MDS
repository
Customization Layers simplify Upgrade
Industry Site User Industry Site User
Version 1 Version 2
Customer CustomizationsCarry Forward
Upgrade Can Change Base
Metadata
End User Customization
• User customizations of ADF components• ex.User hides and reorders columns in a table
• Changes Persists for the Session• Changes Persists across Sessions using MDS• Project Level Settings
• Many ADF components support user customization out of the box
End User Customization
• Developers choose which to persist• Initially specified at the application• Override setting for a page• Override for an instance of a component
Developer Customization
• Customizations are made with JDeveloper’s Customization Role
• Customization are made for each defined layer• Experience is the same as creating base metadata• Only Metadata is customizable (not java files etc.)• Only existing metadata, can’t create new pages etc.
Oracle FusionDevelopment Platform
• Integrated• Full development life cycle• Not only for Java EE but for the entire platform
• Productive• Visual and Declarative• ADF
• Standard• Choice of technologies• Choice of deployment platforms