of 41
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
1/41
Enterprise Development Strategies for Java, WebLogic Server, and the Oracle
Fusion Middleware Stack
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
2/41
The following is intended to outline our general product
direction. It is intended for information purposes only,
and may not be incorporated into any contract. It is not
a commitment to deliver any material, code, or
functionality, and should not be relied upon in makingpurchasing decisions.
The development, release, and timing of any features
or functionality described for Oracles products remains
at the sole discretion of Oracle.
2010 Oracle Corporation 2
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
3/41
Application Grid Agenda & Roadmap
2010 Oracle Corporation 332010 Oracle Corporation
DevelopmentApproach (POJO)
Interface and Persistence
Frameworks and Dev Workbench
Runtime Services,Build Environment
Clustered caching
Testing,
Tuning,
Diagnostics
CloudApp Grid
Deployment
1. Why App Grid?
2. Roadmap3. Conclusion
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
4/41
2010 Oracle Corporation 4
Fault tolerance
Application
Application Grid with
Coherence
Replicate data ingrid for fail-over
Application
Application Grid withCoherence
Frequent access toshared data
Cache data in gridto offload back end
High-speed, data-intensive
computing
Hold datain-memory;
parallelize tasks
Enterprise Requirements are AdvancingShared, in-memory data addresses broad range of use cases
42010 Oracle Corporation
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
5/41
SOA and Portals Need Application GridEnterprise data brokers remove bottlenecks for UI and data services
ApplicationServers
WebServers
Data Demand
Ever ExpandingUniverse of Users
Data Supply
Oracle Coherence brokers data supply with data demand
Scale out data grid in middle tier using commodity hardware Broker data supply and demand
Data Sources
Java Objects
52010 Oracle Corporation
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
6/41
2010 Oracle Corporation 6
Choice
Your development style, your toolselection, your dev/test server platform
Productivity
Design pattern repository for jumpstarting
development
Familiarity Option to leverage a familiar, standard API
like JPA for Application Grid development
Agility
Integrated portfolio; in-memory cache
integration to TopLink, WebLogic Server
Developer Requirements
62010 Oracle Corporation
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
7/41
Application Grid Agenda & Roadmap
2010 Oracle Corporation 772010 Oracle Corporation
DevelopmentApproach (POJO)
Interface and Persistence
Frameworks and Dev Workbench
Runtime Services,Build Environment
Clustered caching
Testing,
Tuning,
Diagnostics
CloudApp Grid
Deployment
1. Why App Grid?
2. Roadmap3. Conclusion
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
8/41
Java SE/EE Platform Evolution
1998 2000 2002 2004 2006 2008 2010
J2EE 1.2
Servlet,
EJB, JSP,JMS, Mail,
J2EE 1.3
JCA,
JAAS,XML,
CMP,
J2EE 1.4
WebSvcs,
JMX,Deployme
nt,
Java EE 5
JPA, EJB3,
Annotations,Faces,
Java EE 6
More POJOs,
Web Profile,EJBLite, Restful
WS, Injection,
J2SE 1.3
HotSpot,JNDI,
JPDA,
Sound,
J2SE 1.4
NIO, JAXP,Crypto,
SSL,
Logging,
J2SE 5.0
GenericsAnnotations
Autoboxing
Concurrent
Java SE 6
Performance,Scripting,
JAX-WS,
JAXB, StAX,
JDK 7
Modularity, Coin,InvokeDynamic,
NIO2,
Development Approach (POJO)2010 Oracle Corporation 8
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
9/41
Trend to Lightweight, Testable Plain Java Objects
Less configuration
complexity Easier testability and
alignment with OStoolsAnt / Maven / Hudson
Java EE 6.0 makesadvances in this area (CDI) Context and
Dependency Injection
EJB3 JPA JSF 2.0 (Beans, etc)
Java EE will onlycontinue to improve
92010 Oracle CorporationDevelopment Approach (POJO)
Managed Beans
JPA 2
Context
Dependency & Injection
JSF2
EJB 3.1
JAX-RS
JAX-WS
Persistence
Facelets
JSR 330
BasicComponent
Presentation
Dependency
Injection
Business
Services
REST
SOAP
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
10/41
DBMS Modeling Java Java EE ESB BPM Rules Portal Mobile / Desktop
Common IDE Framework
Common Modeling Framework
Common Business Catalog
Common Metadata Manager
Common App Lifecycle Management
JDeveloper 11gUnified Java / SOA IDE
102010 Oracle CorporationFrameworks and Dev Workbench
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
11/41
Artifact
AppXRay
Presentation
Component
Data Access
External Resources
JSPCSS JSF JSTLHTML Struts
Web
ServicesPOJO
Resource
bundles
XML
schema
Java
Variable
Java / Java EE
Web Services
WebLogic Server
Spring, ORM, DB
Spring
DAO
EJB 3
JPAHibernate TopLink
Oracle Enterprise Pack for EclipseOpen source skill leverage increases productivity
112010 Oracle CorporationFrameworks and Dev Workbench
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
12/41
Relational Data XML Data LegacyData
BusinessServices
Data Services
Model
Controller
View
Desktop Browser/ Mobile DevicesMS Office
Relational Data XML Data Legacy Data
JSFMS Office ADF Faces JSPSwing
JSF / ADFc Struts
Web ServicesJava EJB BAM BPEL ADF BC BI XML
Portlet
ADF Bindings (JSR 227)
MetadataServices
TopLink JCR JMX
Oracle ADF 11g For Declarative/Visual DevelopersStandards-based productivity with choice
122010 Oracle Corporation
Packaged Apps
Frameworks and Dev Workbench
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
13/41
Eclipse Persistence Services Project(EclipseLink)
DBWSSDOEISMOXyJPA
XML Data Legacy SystemsDatabases
Java SE Java EE OSGi Spring ADF
132010 Oracle Corporation
The Persistence RI for Java EE 6:
Frameworks and Dev Workbench
http://www.oracle.com/technology/products/coherence/coherencedatagrid/information_fabric.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/information_fabric.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/dynamic_cluster_membership.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/dynamic_cluster_membership.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/cache_events.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/cache_events.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/cluster_data.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/cluster_data.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/data_grids.htmlhttp://www.oracle.com/technology/products/coherence/coherencedatagrid/data_grids.html7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
14/41
Simplified configuration supporting Spring pre-configured beans
Use WebLogic services (e.g. JTA) without modifying Spring config
Spring console now displays runtime mbeans for dynamic statistics
Oracle JDeveloper, Oracle Enterprise Pack for Eclipse support MedRec Sample App upgraded with Spring 2.5.3
Spring DI upgraded to support Spring 2.5.3
Inject additional data types into web/ejb container beyond JEE5
WebLogic Cluster/Domain
Managed WLS
Spring Apps
WLS JEE
WLS Admin Server
WLS Console
Managed WLS
Spring Apps
WLS JEE
Managed WLS
Spring Apps
WLS JEE
Managed WLS
Spring Apps
WLS JEE
SimplifiedConfiguration
DistributedMonitoring
Spring Framework support in the foundationSeamless Oracle WebLogic Server integration
Frameworks and Dev Workbench
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
15/41
Oracle WebLogic ServerConverged infrastructure for the Oracle platform
The #1 Java EE application server, designed for the most Mission-
Critical of applications
Operations / Corp Architecture compliance enterprise friendly
Developer-friendly shorter iterative dev, less runtime debuggingComprehensive command line, scripting and IDE support
Advanced dynamic class redefinition in server and IDE, as-you- type
design-time dependency analysis and validation
Application dependency visualization for unfamiliar code
WebLogic Server Clusters
Coherence Data Grid
Databases MainframesLegacy Commodity Virtualized
WebLogic
Differentiator:the ilities
152010 Oracle CorporationRuntime Services / Build Env
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
16/41
Modern Server Development on the Application GridBuild, automation, dependency, integration tools and testing tools
2010 Oracle Corporation 16
Hudson
DependencyManagement
Tools
AutomationTools
TrackingTools
VersionControlTools
Testing
ContinuousIntegration
Tools
WebLogic
TopLink
Runtime Services / Build Env
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
17/41
Environment for Quick Application Grid SetupLeverage modular server download, install, and start-up
Lightweight installers
Optional service startup
Fast deployment and server start
Advanced Dynamic Class
Redefinition
172010 Oracle CorporationRuntime Services / Build Env
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
18/41
BuildEdit
DeployTest
Java EE 5 dynamic classredefinition (DCR) helps but...
Oracles FastSwap DCR farexceeds base Java EE 5 features
BuildEdit
Test
FastSwap DCR allowsJava class shape
change
Iterate Application Grid Code FasterDebugging your application without re-deployment
Javas DCR limited toJava classes thatretain their shape
182010 Oracle CorporationRuntime Services / Build Env
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
19/412010 Oracle Corporation
Command-line/scripting tools for WebLogic domains Offline (not connected to live server - primarily for domain creation)
Online (connected to live server - primarily for runtime monitoring)
Interactive mode (a command shell)
Scripted mode (for automation)
Jython based
Python code in JVM
WebLogic specific set of
management APIs
Easy access to WebLogicJMX API
Faster Application Grid Configuration ManagementWebLogic Automation, Configuration Management Scripting
Runtime Services / Build Env19
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
20/412010 Oracle Corporation 20
Source: pricescan.com
Memory is becoming
exponentially cheaper
Many applications arememory-constrained
Traditional approaches
alone cant make
effective use of hugememory
Trend: The Cost of Memory is Falling Dramaticallybut Java needs help in using it
202010 Oracle CorporationClustered Caching
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
21/41
Memory spans multiple
machines
Automatically partitions
and exploits all memory
Add/remove nodes dynamically Reliability through redundancy
Performance through
parallelization
Scale linearly to terabytes and
thousands of nodes
2010 Oracle Corporation 21
JRockit JRockit
Coherence
JRockit
WebLogic
Server
In-Memory Distributed Computing with CoherenceCache huge data-sets in memory of multiple machines
212010 Oracle CorporationClustered Caching
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
22/412010 Oracle Corporation 22
Clustered Data Management
A fully coherent, single system image (SSI) Scalability for both read and write access
Fast, transparent failover and failback
Linear scalability for storage and processing
No Single-Points-of-Failure (SPOFs)
Clusterwide locking and transactions A single API for the logical layer, XML
configuration for the physical layer
Data Storage Options
On-heap
NIO RAM
NIO Disk
File-based
Other IDE
Basic Coherence Development Concepts/Features
222010 Oracle CorporationClustered Caching
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
23/412010 Oracle Corporation 23
Serialization Options
java.io.Serializable com.tangosol.io.pof.PofSerializer
java.io.Externalizable
com.tangosol.io.ExternalizableLite.
com.tangosol.run.xml.XmlBean
Configurability and Extensibility
Namespace Hierarchy
Caching Strategies
Other IDE
Basic Coherence Development Concepts/Features
232010 Oracle CorporationClustered Caching
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
24/412010 Oracle Corporation 24
Coherence Cache Types / Strategies
242010 Oracle Corporation
Replicated
Cache
Optimistic
Cache
Partitioned
Cache
Near Cache
backed by
partitioned
cache
LocalCache not
clustered
Topology Replicated Replicated Partitioned Cache Local Caches +
Partitioned Cache
Local Cache
Read Performance Instant Instant Locally cached:
instant --Remote:
network speed
Locally cached:
instant --Remote:
network speed
Instant
Fault Tolerance Extremely High Extremely High Configurable Zero to
Extremely High
Configurable 4 Zero
to Extremely High
Zero
Write Performance Fast Fast Extremely fast Extremely fast Instant
Memory Usage
(Per JVM)
DataSize DataSize DataSize/JVMs x
Redundancy
LocalCache +
[DataSize / JVMs]
DataSize
Coherency fully coherent fully coherent fully coherent fully coherent n/a
Memory Usage(Total)
JVMs x DataSize JVMs x DataSize Redundancy xDataSize
[Redundancy xDataSize] + [JVMs x
LocalCache]
n/a
Locking fully transactional none fully transactional fully transactional fully transactional
Typical Uses Metadata n/a (see Near
Cache)
Read-write caches Read-heavy caches
w/ access affinity
Local data
Clustered Caching
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
25/41
Larger application clusters can lead to
database bottlenecks with traditionalJPA scaling approaches like:
Adding nodes to a cluster
Tuning database performance to reducequery time
Prior to TopLink Grid, there were twostrategies for scaling JPA applicationsinto a cluster:
Disable Shared Cache
Cache Coordinationcommunicate
changes via messaging
TopLink Grid: Removing Database Bottlenecks
252010 Oracle Corporation
App Tier
Clusters
Data Tier
Database
Interface and Persistence
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
26/41
Scaling JPA with TopLink Grid
TopLink Grid integrates EclipseLink JPA and
Coherence Supports 'JPA on the Grid' Architecture
EclipseLink JPA applications using Coherence as a shared
(L2) cache replacement along with configuration for more
advanced usage
Base configuration uses Coherence data grid asdistributed shared cache Updates to Coherence cache immediately available to all
cluster nodes
Advanced configurations uses data grid to processqueries to avoid database access and decreasedatabase load
262010 Oracle CorporationInterface and Persistence
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
27/41
TopLink Grid Typical Configurations
Grid cache Coherence as shared (L2) cache Configurable per entity type
Entities read by one grid member are put into Coherence andare immediately available across the entire grid
Grid readAll supported read queries executed in the Coherence datagrid
All writes performed directly on the database by TopLink(synchronously) and Coherence updated
Grid entityAll supported read queries and all writes are executed in theCoherence data grid
272010 Oracle CorporationInterface and Persistence
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
28/41
TopLink Grid with Coherence Cache
Application
EntityManager
EntityManagerFactory
L1 Cache
Application
EntityManager
EntityManagerFactory
L1 Cache
Coherence
282010 Oracle CorporationInterface and Persistence
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
29/41
How Is TopLink Grid Different from Hibernate with
Coherence?
Hibernate does not cache objects, it caches data rows
Hibernate caches serialized data rows in Coherence
Using Coherence as a cache for Hibernate
Every cache hit incurs both object construction and
serialization costs
Worse, object construction cost is paid by every cluster
member for every cache hit
Hibernate only uses Coherence as a cacheTopLink
Grid is unique in supporting execution of queriesagainst Coherence which can significantly offload the
database and increase throughput
292010 Oracle CorporationInterface and Persistence
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
30/41
Limitations in TopLink 11gR1
JPQL translated to Filter and executed in Coherence:
TopLink Grid 11gR1 Supports single Entity queries with
constraints on attributes, e.g.:select e from Employee e where e.name = 'Joe'
Complex queries must be executed on database: Multi-Entity queries or queries that traverse relationships
('joins'), e.g.:select e from Employee e
where e.address.city = 'Bonn'
Projection (Report) queries, e.g.:select e.name, e.city from Employee e
302010 Oracle CorporationInterface and Persistence
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
31/41
Testing and Tuning in Todays Enterprise
UnitTesting
User Interface
Testing
IntegrationTesting
Load
testing
Security /ComplianceProfiling
and
Runtime
Instrumentation
Open Source TestingTools
312010 Oracle Corporation
RegressionTesting
InfinitestJester
MockRunner
Oracle Testing/Profiling Tools
Oracle Load TestingOracle Functional Testing
Oracle AD4J
Oracle JRMC
HTTPUnitJUnit
Selenium
Testing, Diagnostics, Tuning
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
32/41
Operating Systems
Database
Middleware
Applications
Configuration Management
Service Level Management
Application PerformanceManagement
Lifecycle Management
Dashboards
AD4J
Diagnose problemsin production
View all java activity:
instrumentation notneeded
Trace transactionsacross tiers, into theOracle DB
Application Diagnostics for Java (AD4J)Application performance management solution
322010 Oracle CorporationTesting, Diagnostics, Tuning
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
33/41
Operations
Production
diagnostics
Development
Deploy
Profiling &performance
tuning
Regression
testing
Troubleshooting
Monitoring
Alerts & triggers
Diagnostics with Oracle JRockit Mission Control
332010 Oracle CorporationTesting, Diagnostics, Tuning
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
34/41
On-demand development
environment provisioning Fast pilots, prototyping
Eliminate delays from:
HW procurement
Insufficient laptop resources
Needing a particular OS for
testing / QA
Long downloads
Installation Initial configuration
Challenge: Connectivity to
enterprise resources
Hypervisor
JRockit VE
Application(s)
Machine Resource Pool
Virtualized
Managed
Server
WebLogic
Cluster
How Can Cloud Computing Help FMW Developers?
342010 Oracle Corporation
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
35/41
WebLogic Suite-based Application Grid on Virtualized Infrastructure
Production Environment
Application Grid: Fast Provisioning / DeploymentFusion Middleware Appliance Builder
Appliance
Builder
Dept App
Development Environments
Dept App Custom code and
environment
descriptionDept AppDept App
2009 Oracle Corporation 35Oracle Confidential
EnterpriseManager
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
36/41
Your Network
Debug / Deploy
Public Internet
IDE Tools on your desktop
Debug / Deploy
Remote Server (s)
AMAZON EC2
Instances
Amazon
EBS
Oracle Enterprise Linux
WebLogic Server
Other IDE
Public Cloud Development Scenario A
362010 Oracle CorporationCloud App Grid Deployment
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
37/41
Your NetworkPublic Internet
AMAZON EC2
Instances
WebLogic Server
Amazon
EBS
Oracle Enterprise Linux
VNC
Other IDE
Public Cloud Development Scenario B
372010 Oracle CorporationCloud App Grid Deployment
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
38/41
Application Grid Agenda & Roadmap
2010 Oracle Corporation 38382010 Oracle Corporation
DevelopmentApproach (POJO)
Interface and Persistence
Frameworks and Dev Workbench
Runtime Services,Build Environment
Clustered caching
Testing,
Tuning,
Diagnostics
Cloud
App Grid
Deployment
1. Why App Grid?
2. Roadmap3. Conclusion
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
39/41
In Review
2010 Oracle Corporation 39
Your choice: JDeveloper or Eclipse
Scale JPA applications with Grid
No rewrite for performance
Automated cache management
Spring Framework integration
Leverage server virtualization
Clients for Java, .NET, C++
Application Grid Development
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
40/41
For More Information
2010 Oracle Corporation 40
search.oracle.com
application grid
or
www.oracle.com / goto / application grid
7/28/2019 appgriddevdevelopment11g-100121145653-phpapp02
41/41