Fusion Apps Technical Overview
Fusion Apps Technical Overview
Agenda Fusion Apps Architecture Overview Fusion Apps User Experience Application Development Framework (ADF) Fusion Apps SOA Infrastructure Fusion Apps Deployment Questions
Copyright 2011. Apps Associates LLC
Services Layer
Java Server Faces
ADF Faces Components
WebCenter Services
ADF BC
Services
Fusion Schema
Analytics
Web Services
FDI - Microsoft Desktop applications Rules Engine Scheduler facts results Mediator & BPEL
Assign Task Task Complete
Analytics / Monitoring
Copyright 2011. Apps Associates LLC
Policy evaluation
Orchestration
Workflow, approvals
Data
DB Schema
BPEL Process
Assign Task Task Complete
facts
Rules Engine
results
Monitoring
Human interaction
Orchestration
Policy evaluation
Fusion Applications
Business Processes
Portals
Dashboards
Custom Solutions
SOA Services
Id, Role & Policy Management, AAA, TLS, Message Level Security, SSO, Entitlements
SOA
Service Discovery, Enablement, Mediation, & Orchestration
BPM
BP Analysis, Design, Execution, Management, & Monitoring
EDA
Event Detection, Complex Event Processing
BI
Data Query, & Analytics, Reporting, Predictive Modeling
MDM
Data Cleansing, Normalization, Rationalization, & Provisioning
CM
Content Lifecycle Management, Conversion, Pub / Sub
Infrastructure Platform
Integration
Engineering
Security
M&M
User Interaction
Data Services
Connectivity Services
Conceptual View
Employees Customers Partners
Terminal
IVR
Mobil
.. . .. . .. .
Client Apps
Fat Clients
Presentation Services Business Process Services Business Activity Services Data Services Connectivity Services
Shared Portlets
Multi-Channel Delivery
Service Layers
Workflow
Service Orchestration
Enrichment
Data Caching
Data Aggregation
Data Synchronization
System Access
Messaging
Partner Integration
Encapsulation
Utility Services
SOA Infrastructure
Governance
Mediation
Discovery
Security
Oracle ADF
Desktop
ADF Swing Metadata Services (MDS) Office JSP
Browser-Based
JSF
ADF Faces
View
Struts
Controller Model
Java
EJB
BAM
BPEL
ADFbc
BI
XML
TopLink
JMX
Business Services
Data Services
Relational Data XML Data Legacy Data Packaged Apps
Client Apps
Fat Clients
Presentation Services Business Process Services Business Activity Services Data Services Connectivity Services
Shared Portlets
Multi-Channel Delivery
Service Layers
Workflow
Service Orchestration
Enrichment
SOA Infrastructure
Governance
Mediation
Discovery
Security
Data Caching
Data Aggregation
Data Synchronization
System Access
Messaging
Partner Integration
Encapsulation
Utility Services
ADF Layers
Employees Customers Partners Terminal IVR Mobil
.. . .. . .. .
Client Apps
ADF Desktop
ADF Mobile
ADF Faces
Composite Applications
Web Apps
Portals
Mashups
BPM Process
Fat Clients
Struts
Swing
JSF
JSF
Presentation Services
Shared Portlets
Multi-Channel Delivery
Service Layers
Service Orchestration
Data Services
Enrichment
Data Caching
Data Aggregation
Data Synchronization
Messaging
Partner Integration
Encapsulation
Utility Services
SOA Infrastructure
ADF Controller
Data Binding
ADF View
Governance
Entity Objects
Mediation
View Objects
Discovery
Security
ADF Model
Client Apps
Fat Clients
Presentation Services
Service Layers
Service Orchestration
ADFbc
Java
EJB
Enrichment
BI
Data Caching
Data Aggregation
System Access
Messaging
Partner Integration
Encapsulation
Utility Services
Adapters
JDBC
file://
SOA Infrastructure
Governance
Mediation
Discovery
Security
OER
Design-time Tools
Manage, Discover
ADF JDev
Develop Deployed on Database UDDI Toplink Binding Oracle Platform Security Services
OEM IdM
OWLS
WCS (UI)
ODI
OCOH
Deployment Platform
Security
Client Apps
Fat Clients
JSP
Swing
JSF
Struts
Multi-Channel Delivery
Service Layers
Service Orchestration
Governance
SDO
Mediation
Enrichment
EJB3
Data Caching SQL Data Aggregation Data Synchronization
X509
System Access
Messaging
Partner Integration
UDDI
Encapsulation
Utility Services
Discovery
SCA
SAML
Security
SOA Infrastructure
JSR 227
JAAS
Layered Architecture
Well defined Layering scheme with MVC architecture
Model Layer View Layer Controller Layer Business Services Layer Data Layer
Reusability
ADF promotes both design-time (code/component) and runtime (Services) reuse
Design-time: Services can be rolled up into an ADF library or a Resource Catalog that includes ADF library and infrastructure connectivity components, and shared with application or Service development teams for consumption. Runtime: Business services can be built and deployed centrally for consumption through supported interfaces that include Web Services/WSDL, EJB 3.0 and message-based.
Agility
Model driven development Allows changes to be made quickly to respond to changes in business Component based development makes it easy to reconfigure and update business logic flow Modular , loosely coupled design allows components to be updated independently without affecting other parts of the application (e.g. UI can be updated independent of the business components) Built-in patterns standardize application/Service development and enable faster delivery.
Copyright 2011. Apps Associates LLC
Separation of concerns
Layering
Model-View-Controller (MVC) pattern Business Services Layer
ADF business components (Entity Objects Vs View Objects Vs Application modules) define the scope of the components clearly Data controls allow abstract invocation of business logic from the UI.
Copyright 2011. Apps Associates LLC
Composability
Supports composability at multiple levels Application modules are composed of Entity Objects and View Objects Supports Service Component Architecture programming model for building Services that can be consumed by SCA composites. Task flows can include other task flows
Discoverability
UDDI support to publish and discover Services Components, application libraries and projects that can be packaged and reused. They can be linked and discovered through an Enterprise Metadata Repository like Oracle Enterprise Repository. Resource catalogs enable localized discovery of application components.
Copyright 2011. Apps Associates LLC
Standards Compliance
Open standards based framework Supports the following standards
J2EE JSR 227 Web Services (SOAP, UDDI, WSDL) WSRP, JSR 168, JSR 268 Service Component Architecture (SCA) SDO (Service Data Objects) Security (JAAS, X509, SAML) JCA, JPA, JMS, JDBC
Security
ADF supports Authorization and Authentication Access policies can be defined and executed WS-Security is supported Web Service data control security includes
X509 token authentication SAML authentication SAML assertion Digital signatures SOAP encryption and decryption
Define Service before developing Services using ADF. Validate the database models against business requirements and functional models before generating entity and view objects. When creating an application module that deals with multiple business entities, each business entity must be abstracted with a respective Entity object. Service Contract and interfaces should drive the design and development of ADF business components. Web Services interface must not be used for intra application module communication. ADF Fusion applications must be designed with future customization support. (e.g. prefer jspx over jsp) View objects should be driven by business requirements. View objects should not be used for simply representing a row of the physical data model. Data controls should be used to abstract the business services implementation from the UI components. Applications developed using ADF must be deployable on any Javacapable application server. Visual and declarative validation should be used when applicable.
DISCUSSION: Any additional principles and best practices???
Copyright 2011. Apps Associates LLC
ADF is used to develop Service-Oriented Applications. That means that you can develop both Services and Composite applications with ADF. Services: ADF can be used to build SOA Services that can be exposed using a choice of interfaces Composite applications: Composite applications that consume Services and other business components can be built using ADF. ADF also helps rapid development of UI components. Enterprise Services should be identified during the analysis phase and should be designed, developed and deployed in a shared environment for the consumption of the ADF composite application.
Copyright 2011. Apps Associates LLC
SOA Composer Oracle or Non-Oracle MDM Business Rules & Policies Human Workflow Process Composer BPEL Process Manager Mediator Service Data Objects (WS SOAP & REST)
Java Business Logic
Integration friendly, visible and documented Centrally configured using BPEL Centrally monitored using Enterprise Manager
Description
Developers customize processes to suit business needs. Support human workflow with complex approvals including approval hierarchies Decouple external systems. Allows bringing new systems online without changing core Processes Make it easier for business analyst to modify process at runtime. Support Batch processing and other long running jobs as scheduled /async processes
Usage
Simple sequential BPEL process steps Customer can modify steps
Most important usage by many fusion apps Manual task or approval tasks
Mediator is an example End to End Integration Flexibility with Rules based routing
Business Analysts arrange orchestration flow of delivered processes Process Composer use case
Executed as a batch or is a long running process Processing itself happens outside Orchestration, fault handling and compensations are key
Event Processing
Extensibility Scenarios
Customization Runtime configuration Runtime design changes Adding custom logic at design time
Extension Always design time (developer) Adding new functionality New composite deployed As a service endpoint Subscribe to an event
Customization Examples
Processes:
A business analyst needs to modify a business process
Rules:
A user needs to add a personal rule to his work list A business analyst needs to change the rules used as a condition or lookup
Workflow:
An administrator needs to change assignment rules or events in a workflow for everyone A user wants to specify her notification channel
Copyright 2011. Apps Associates LLC
Tools: Processes
Management Rules
Notifications
Worklist Application
Task Forms
Identity Management
BPM Worklist
Event related changes Approval task related changes Approval stage configuration Approval assignment rules Graphical display of approvals Task display
SOA Composer
StateCode MA NY CA
Design-Time Customization
Infrastructure for protecting changes across upgrades
Use cases: Process and Scope level customizations Adding New activity in BPEL without new artifacts
e.g. Adding Assign, wait, switch, scope, etc
Extensibility Scenarios
Customization Runtime configuration Runtime design changes Adding custom logic at design time
Extension Always design time (developer) Adding new functionality New composite deployed As a service endpoint Subscribe to an event
SaaS
ISV
Enterprise Repository
Demo: http://oukc.oracle.com/static09/opn/ap5/91665ps09/fusion/9166_demo.html
SOA composite
newSupplier event
SOA composite SOA composite
SOA composite
PL/SQL Interfaces
PL/SQL Generates Events
PL/SQL Interfaces
BPEL process subscribes to PL/SQL event
Invoke
Specifies a standard data method and can modify business data regardless of how it is physically accessed. Fusion Application uses many ADF Objects. Using SDO in SOA allows the developer to share the underlying business data.
Copyright 2011. Apps Associates LLC
ESS ESS
UI
Business Event
ODI
Mediator
BPEL
ADF Service
Deployment
Deployment is handled through underlying container Session management is through application modules and implemented through container properties. JDev provides ant based deployment tools Deployment unit could be one or more application modules. Deployment format is EAR (Enterprise Archive) Can be deployed in a single container or distributed Disaster recovery is handled through container configuration
Presentation Browser
Business Services
Fusion Application
Fusion Application Runtime Framework
Packaged Applications
Rich Clients
Databases
Repository
ADF Applications
ADF Runtime Domain Extension
JDeveloper IDE
ANT
Development Tools
Deployment Tools
Deployment Platform
Repository
Clustered deployment
Repository
Load Balancer
Fusion Cluster
Load Balancer
Repository
Copyright 2011. Apps Associates LLC
Repository
Functional Cluster 1
Load Balancer
Functional Cluster 2
Repository
Functional Cluster 1
Firewall
Copyright 2011. Apps Associates LLC
Firewall
Grid deployment
Management
Database Clusters
Virtualization Layer
Hardware Layer
Storage Grid
Business Services
Deployment Artifacts
Deployment Artifacts
QUESTIONS?