1
1
<Insert Picture Here>
Glassfish Metro – Java Web Services Stack
Martin Grebac
Metro Project Lead
3
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 making
purchasing decisions.
The development, release, and timing of any features
or functionality described for Oracle’s products remains
at the sole discretion of Oracle.
4
Agenda
• Overview
• Architecture
• Demos
• Roadmap
• Q&A
5
What is Metro?
Metro is one-stop shop for all your web services
needs.
6
What is Metro?
• Java Web Services Stack
• Part of GlassFish project
• Production Quality
• High-Performance
• Interoperability
– Tested for Interop with RSP 1.0 and WS-I BSP 1.1
– Tested with WCF Stack 3.0 / 3.5 versions
– Tested with other Oracle 11g products (security)
• X.509, SAML, Username Token against SOA, OSB, ADF,
WLS
7
METRO = JAX-WS RI + WSIT (Tango)
• JAX-WS RI
– Implements Java API for XML Web Services (JAX-WS)
– Provides core web services support
– Extensible and Pluggable Architecture
• Web Services Interoperability Technology (WSIT)
– Provides Quality Of Service (QoS) support
• Security, Reliability, Transactions
– Implementation of WS-* Specifications
• Interoperability with .NET 3+
8
Architecture
9
Core Features
• JAX-WS – Easy to use Web services API
• POJO concepts via annotations
– Descriptor free programming
• Databinding (new), Encoding, Protocol, Transport
independence
• Default integrated with Java Architecture for XML
Binding (JAXB)
– Java platform API
– 100% schema support
10
Advanced Features
• Bootstrapping Communication and Configuration
– WS-MetadataExchange
– WS-Policy
• Quality of Service
– Reliable Message Delivery
– Atomic Transactions
– Secured Communication
• Transparent to application code
11
Reliable Messaging
• Message Delivery Protocol
• Different Message Delivery Assurance Modes
– Exactly Once, At Least Once, At Most Once
– In Order – can be combined with above
• Incomplete Message Sequence Handling
– Discard entire sequence, discard after first gap
– Enforcing same-origin on a message sequence
• Sequence bound to a WS-SC session
• Supports High Availability
<wsrmp:RMAssertion>
<wsp:Policy>
<wsrmp:SequenceSTR/>
<wsrmp:DeliveryAssurance>
<wsp:Policy>
<wsrmp:ExactlyOnce/>
<wsrmp:InOrder/>
</wsp:Policy>
</wsrmp:DeliveryAssurance>
</wsp:Policy>
</wsrmp:RMAssertion>
12
Transactions
• Message Delivery Protocol
• Different Message Delivery Assurance Modes
– Exactly Once, At Least Once, At Most Once
– In Order – can be combined with above
• Incomplete Message Sequence Handling
– Discard entire sequence, discard after first gap
– Enforcing same-origin on a message sequence
• Sequence bound to a WS-SC session
• Supports High Availability
wsp:Policy wsu:Id=“TransactedPolicy”>
<wsat:ATAssertion wsp:optional=“true”/>
</wsp:Policy>
13
Security
• Supports Security Mechanisms
– X.509
– Username Token
– Saml Token
– Kerberos …
• Configurable Through WS-Policy
configuration WSDL
– Better in NetBeans
• WS-Security, WS-Trust, STS, …
14
Programming Model
• Develop using JAX-WS APIs
– Server side: @WebService
– Client side: use wsimport.sh to generate client proxy
• Advanced features in configuration file
– Server side: wsit-$endpointClassName.xml
– Client side: wsit-client.xml
– generate through NetBeans GUI
15
Latest Features
• High Availability
– Since Metro 2.1
• Works with GlassFish 3.1(.x) Cluster
• Replication of stateful session data
– Reliable Messaging
• Sequences, Unacknowledged Messages, …
– Secure Conversation
• Secure Conversation session
– Security
• Nonce Manager
16
Latest Features
17
Latest Features
18
Latest Features
• Security Improvements
– RSA-SHA256, 384, 512
– Use of JAAS KeystoreLoginModule
– Policy Alternatives for client authentication tokens
• Modular Databinding
– JAXB RI / Moxy / SDO switchable
• Lots of small improvements and bugfixes
19
DEMO • “Hello World” Service
• Message Level Security
• Reliable Message delivery
20
Which version?
• Metro 2.1.1
– Latest greatest, download from http://metro.java.net
– Production ready version
– High Availability
• Metro 2.2
– In development
– Aligned with GlassFish 3.1.2
– Available early next year
• Metro 2.2.1, 2.3 - TBD
21
Community
• Lots of Adoption
– Java SE/EE SDK, IBM JDK, GlassFish, Weblogic, …
• Active mailing lists and forum
• Extensible
– JAXB, JAX-WS extensions
– Spring, JSON, SMTP, …
• Be Active!
– Vote on issues, provide patches, improve and/or review our
docs
22
Summary
• METRO – Full featured WS Stack
• Popular in Java Community
• Many advanced features
• Interoperability (Microsoft .NET)
• High Performance
• Integrated with GlassFish
• Running standalone on Servlet containers
23
Q&A
24
Interested?
• http://metro.java.net
– http://wsit.java.net
– http://jax-ws.java.net
– http://jaxb.java.net
– http://glassfish.java.net