+ All Categories
Home > Documents > appgriddevdevelopment11g-100121145653-phpapp02

appgriddevdevelopment11g-100121145653-phpapp02

Date post: 03-Apr-2018
Category:
Upload: u4rishi
View: 216 times
Download: 0 times
Share this document with a friend

of 41

Transcript
  • 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.html
  • 7/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


Recommended