Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf ·...

16
1 Sponsored by: Sponsored by: Sponsored by: Sponsored by: Oracle Developer Day Track # 1: Session #2 Web Services Speaker

Transcript of Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf ·...

Page 1: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

1

Sponsored by:Sponsored by:Sponsored by:Sponsored by:

OracleDeveloper Day

Track # 1: Session #2

Web Services

Speaker

Page 2: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

2

Agenda

� Developing Web services

– Architecture, development and interoperability

� Quality of service

– Security, reliability, management

– QoS deployment options

� Best Practices

– Web Services and Management

WSDL

Web Service(J2EE, PL/SQL,

.NET,C/C++,Legacy …)

Web Service(J2EE, PL/SQL,

.NET,C/C++,Legacy …)

Web Service

Client(J2EE, .NET,PL/SQL …)

Web Service

Client(J2EE, .NET,PL/SQL …)

Points to description

DescribesService

FindsService

Invokes with

XML Messages

Basic Web Services

SOAP

UDDI

Registry

Points to service

Page 3: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

3

Enterprise Web Services

SOA Tools

SOAP, WSDL, UDDISOAP, WSDL, UDDI

WSWS--I Basic ProfileI Basic Profile

Web Service PolicyWeb Service Policy

Web Service TransactionsWeb Service Transactions

Web Service Reliable MessagingWeb Service Reliable Messaging

JAXJAX--*: JAX*: JAX--B, JAXB, JAX--P, JAXP, JAX--RPC, …RPC, …

Web Service SecurityWeb Service Security

Web Service OrchestrationWeb Service Orchestration

Web Service Distributed ManagementWeb Service Distributed ManagementTPM, Mainframe,

Legacy Sys

Applications

Databases

B2B Partners

� Standards + QoS + Processes

J2EE 1.4 Standards

DescriptionJava APIsfor XML

Java API for XML Registries

Java API for XML Remote Procedure CallJAX-RPC

SAAJ

Java API for XML Data Binding

SOAP API for Attachments in Java

JAXP

JAXB

JAXR

Java API for XML Parsing

Stateless Session EJB Endpoint ModelEJB 2.1

Web Services Deployment ModelJSR 109

Page 4: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

4

JAX-RPC

� Core WS standard for Java– Enables portability across containers

(different vendors implemented differently before JAX-RPC for J2EE 1.4)

� Standard class and interface structure for client and server

– Various hook-points for custom serializers, custom handlers, attachments

� Tools must provide abstractions to handle service as set of classes

– Navigator structure for quick location

– Wizard support for declarative definition

Web Services Interoperability

� Web Services Interoperability

– Develops profiles

– Suggests best practices

– Provides testing tools

� Runtime and tools uptake

– Oracle JDeveloper analysis

– OracleAS compliance

Page 5: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

5

Beyond J2EE 1.4

Description

Simplifying EJB development

JSR- 181

WSIF

Web Services Metadata for the JavaTM Platform

EJB 3.0

Web Services Invocation Framework

JSR-181 Annotations

� Support a code-driven version of the

bottom up use case : create web services implicitly by annotating the source code

� Example annotations

– @WebService

– @WebMethod

– @WebParam

– @WebResult

– @SOAPBinding

– …

Page 6: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

6

EJB 3.0 as Web Service

package buslogic;

import java.rmi.RemoteException;import java.rmi.Remote;import javax.jws.WebMethod;import javax.jws.WebService;

@WebServicepublic interface CustomerFacade{

@WebMethod

public Integer getCreditRating(String ssn);

}

� Annotate business

interface

� Deploys to Java EE

container(s) as a Web

Service

Web Services Invocation Framework (WSIF)

� Describe any artifact with WSDL, invoke with native protocols

– No overhead from SOAP processing

– Focus on performance and transactionality

� Used extensively by BPEL

Page 7: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

7

Two Development Use CasesTop Down Contract Driven And Bottom Up

Service

Implementation

WSDL

e.g. EJB/Java Class to WSDL

e.g. WSDL contract as the interface & message description

Service

Implementation

WSDL

Bottom Up Top Down

D E M O N S T R A T I O N

Publishing with Annotations

Bottom-Up Web Service

Page 8: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

8

Agenda

� Developing Web services

– Architecture, development and interoperability

� Quality of service

– Security, reliability, management

– QoS deployment options

� Best Practices

– Web Services and Management

Quality of Service Requirements

� Reliability– Are my messages actually being delivered?

Guaranteed delivery, ordered delivery

– WS-ReliableExchange standard in OASIS

� Security– Are my messages secure?

Authentication, encryption and signing

– WS-Security standard in OASIS

� Management– How is my system handling messages?

Configuration, logging, monitoring

– WS for Distributed Management (WSDM) standard in OASIS

Page 9: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

9

Web Services Reliability

ApplicationLayer

SOAP NodeWith

Reliable Messaging

ApplicationLayer

SOAP NodeWith

Reliable Messaging

Msg

Ack

Sender Receiver

• At least once semantics

• At most once semantics

• Guaranteed message ordering

• Exactly once semantics

Web Services SecurityClient

Security

JAXJAX--RPC RPC

Service Service

EndpointEndpoint

JAXJAX--RPC RPC

ClientClient

Transport

HTTP, JMS

SOAP

Message

SOAP

Message

SOAP

Message

SOAP

Message

ServerSecurity

Add AuthAdd Auth

TokenTokenEncryptEncryptSignSign

DecryptDecryptCheckCheck

SignatureSignatureChckChck AuthAuth

Token*Token*

Check Check

SignatureSignatureDecryptDecrypt

ChckChck AuthAuth

TokenToken

SignSignEncryptEncryptAdd AuthAdd Auth

Token*Token*

• Authentication- User name/password token

- X.509 token

- SAML token for SSO Applications

• XML Digital Signatures

• XML Encryption

Keystore Keystore

Page 10: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

10

Administration of Web Services

Auditing, Logging, Reliability and

WS-Security

Monitoring andPerformance

Analysis

D E M O N S T R A T I O N

Administration of Web Services

Page 11: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

11

Web Services Management� Managing and deploying operational policies

across applications and Web services

– Layer best-practice security and management

across all services

� No modifications to applications or services

– Support WS-* standards

� Can secure/manage Web services implemented in heterogeneous languages and environments

Oracle Web Services Manager: Components

BUILDPolicies

ENFORCEPolicies

MONITOR

Policies

Policy

Manager

Policy

Gateway

PolicyAgents Web Service

Monitor

Web Services

Page 12: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

12

Policy Enforcement and Visibility: Monitoring

� Provide real-time

visibility into Web Service interactions

– Automatic issue resolution by dynamically updating policies

– Alerts about anomalies

– Enforce policies

– Validate compliance with IT best practices

Deployment Options QoS

� Oracle Application Server

– Administrator manages policies service by service

– Configuration for Oracle Application Server services only

– Designed to be seamless with Oracle Application Server

� Integration in JDeveloper and Application Server Control

� Independent Web Service Manager

– Framework manage groups of policies for groups of services

– Configuration for any service

� J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP …

– Designed to scale to large scale heterogeneous deployments

Page 13: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

13

D E M O N S T R A T I O N

Web Services Management

Agenda

� Developing Web services

– Architecture, development and interoperability

� Quality of service

– Security, reliability, management

– QoS deployment options

� Best Practices

– Web Services and Management

Page 14: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

14

Best Practices – Web Services

� Build coarse grained Web services not fine grained

� Design to an interface, not an implementation

� Interoperability

– Target conformity to WS-I

– Avoid language dependent types to maximize interoperability

(e.g. Java collections)

– Provide sample clients to jumpstart clients

� Know when to use Web services

– Often native protocols are all that is available or may be faster

– Use WSIF bindings for native protocols and BPEL

Best Practices – Web Services Management

� Development

– Use native container for development and testing

� Security, Reliability, Management …

� Deployment– If working homogeneously use Oracle Application Server

– If working in a heterogeneous environment strongly consider a

Web Services Management framework

Page 15: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

15

Join Over 3,000,000 Developers!Join Over 3,000,000 Developers!Join Over 3,000,000 Developers!Join Over 3,000,000 Developers!

Free Software DownloadsFree Software DownloadsFree Software DownloadsFree Software DownloadsFree Technical AdviceFree Technical AdviceFree Technical AdviceFree Technical Advice

www.oracle.com/technology/products/www.oracle.com/technology/products/www.oracle.com/technology/products/www.oracle.com/technology/products/jdevjdevjdevjdevotnotnotnotn.oracle.com/tech/.oracle.com/tech/.oracle.com/tech/.oracle.com/tech/webserviceswebserviceswebserviceswebservices

otnotnotnotn.oracle.com/tech/java.oracle.com/tech/java.oracle.com/tech/java.oracle.com/tech/javaotnotnotnotn.oracle.com/.oracle.com/.oracle.com/.oracle.com/bpelbpelbpelbpel

Learn Oracle From Oracle

� Instructor led training

� Self-Study

� Online learning

� Oracle Certification

� Oracle iLearning

� Oracle Tutor

oracle.com/education

Page 16: Oracle Developer Day - Peoplepeople.cs.ksu.edu/~hankley/d764/Oracle/Slides/J2EE Track/WS_ODD.pdf · J2EE (Oracle, IBM, BEA …), .NET, C, Perl, PHP … – Designed to scale to large

16

AQ&Q U E S T I O N SQ U E S T I O N S

A N S W E R SA N S W E R S

Sponsored by:Sponsored by:Sponsored by:Sponsored by:

OracleDeveloper Day