Apache CXF New Directions in Integration

22
Apache CXF New Directions in Integration Daniel Kulp VP Open Source Development Talend

description

Slides from my WJAX 2013 Presentation where we talked about many of the new features and directions that Apache CXF is taking.

Transcript of Apache CXF New Directions in Integration

Page 1: Apache CXF New Directions in Integration

Apache CXF New Directions in

IntegrationDaniel Kulp

VP Open Source Development Talend

Page 2: Apache CXF New Directions in Integration

Your Speaker• VP - Open Source Development at Talend

• Team of engineers devoted to Apache Projects

• Worked on WebService/SOA related technology for over 10 years

• Apache Software Foundation

• Apache CXF - since the beginning

• Apache Maven, Apache WebServices, Apache Camel, Apache ServiceMix, Apache Aries, etc…

• Apache Member

Page 3: Apache CXF New Directions in Integration

A Little About Apache CXF• Entered the Apache Incubator in August 2006

• Merge of Celtix and XFire

• Compete with Axis/Axis2?

• Graduated in April 2008

• JAX-WS 2.x certified, JAX-RS 1.1 certified

• 8 “minor” versions (2.0 - 2.7), 82 patch releases

• 33 committers - 21 active

Page 4: Apache CXF New Directions in Integration

• The most complete implementation of WS-* specifications.

• DOSGi Reference Implementation of OSGi Remote Service Specification

• Apache CXF Fediz - Web Security Framework

• Used in products by Talend, JBoss, Fuse, WSO2, Pramati, MuleSoft, TomEE, IBM, etc…

• Embedded all over - Google “CXF - Service List”

Page 5: Apache CXF New Directions in Integration

2010 - Is CXF Finished?• Go into maintenance mode? NO!!!!

• Development Efforts Centered around:

• Deployment options

• REST/JAX-RS Based Services

• Services

• Security

Page 6: Apache CXF New Directions in Integration

Deployment Models• Always have had

• Good for standalone applications

• Top Notch Spring support

• Good for WAR based applications (other than conflicts with various app servers)

• OSGi support has “improved”

• Single big bundle -> little bundles

• Blueprint support and enhancements

• Better management

Page 7: Apache CXF New Directions in Integration

Changed for 3.0• Major refactoring of “api”, “core”, and WSDL based

APIs

• No more wsdl4j.jar or neethi.jar or mail.jar needed for JAX-RS (amongst others)

• Smaller core - removed a lot of duplicate functionality, unused code, deprecated code, etc….

• Better hooks for embedders like TomEE, JBoss, and Talend

Page 8: Apache CXF New Directions in Integration

REST/JAX-RS• 2.3.x-2.6.x is JAX-RS 1.1 Compliant

• 2.7.x started work on JAX-RS 2.0

• Filters, Interceptors, parts of Async Invokation, dynamic features, exception classes, etc…

• 3.0 will be JAX-RS 2.0 compliant

• Client API, Bean Validation

Page 9: Apache CXF New Directions in Integration

• OAuth 1, OAuth 2, SAML, Kerberos

• WADL generation from services

• Interface generation from WADL

• Started discussions about RAML

• FIQL searches// Find all employees younger than 25 or older than 35 living in London!http://server.com/employees?_s=(age=lt=25,age=gt=35);city==London

Page 10: Apache CXF New Directions in Integration

Services• 2.5.0 - introduced “out of the box” services based on CXF

technology

• WS-Notification

• Ported from ServiceMix

• WS-Notification Service using ActiveMQ backend

• JBI removed, pure JAX-WS API’s

• API module added

• WS-Eventing - new for CXF 3.0

Page 11: Apache CXF New Directions in Integration

• Security Token Service (STS)

• Initially developed for a Talend Customer

• Full production ready STS

• Supports Issue, Validate, Cancel, Renew binding

• Pluggable token validators, claims handlers, SAML customizers, etc…

• Advanced use cases: KeyTypes (Public/Symmetric/Bearer), OnBehalfOf, ActAs, Claims, etc…

• Enhanced support for Roles

Page 12: Apache CXF New Directions in Integration

• WS-Discovery (CXF 2.7)

• “Probe” the network for services

• Services can announce their availability

• Not just “software services”

• ONVIF compliant IP cameras

• Network Printers

• Network Scanners

Page 13: Apache CXF New Directions in Integration

• XML Key Management Service (XKMS)

• New for CXF 3.0, back ported for 2.7.7

• Normal - Java KeyStores

• XKMS front end for organizations PKI

• Supports LDAP and File based back ends

Page 14: Apache CXF New Directions in Integration

• XKMS - continued

• WSS4J Crypto Providers

• Adding support to CXF’s STS to validate keys via XKMS

Page 15: Apache CXF New Directions in Integration

Fediz• Framework that implements WS-

Federation Passive Requestor Profile

• Plugins to Tomcat to redirect to an IDP for authentication

• Contains a light weight IDP

• Soon: support for Jetty, Spring Security, CXF

Page 16: Apache CXF New Directions in Integration

Security

“I’m going to make CXF’s WS-Security implementation the best WS-Security implementation.”

!- Colm O hEigeartaigh

http://coheigea.blogspot.com/

Page 17: Apache CXF New Directions in Integration

Security• STS, XKMS services

• XACML/SAML utilities

• SPNego/Kerberos profiles

• Prevent various DOS attacks

• ehCache based Nonce/Timestamp caches

• XML based attacks (DTD, size, limits)

• New algorithms

Page 18: Apache CXF New Directions in Integration

• Streaming WS-Security Implementation for 3.0

• StAX Based

• No more DOM/SAAJ (unless required)

• Higher performance

• Quicker failures

• Support MIME attachments

Page 19: Apache CXF New Directions in Integration

Other 3.0 Things• WS-RM updates

• Full 1.1 support, tested extensively with .NET

• Termination of sequences

• JMX management

• Support for WS-RM with WS-Security and WS-SecureConversation

Page 20: Apache CXF New Directions in Integration

• CXF specific front end code generator

• Allow passing Bus instances, CXF features

• Guarantees that CXF is picked up

• Allows future configuration points

Page 21: Apache CXF New Directions in Integration

3.0 Roadmap• A “milestone” release in the next week or so

• A second milestone or beta before the end of the year

• 3.0 in early Q1

• Normal 2.7.x/2.6.x patch releases every 8 weeks

• Fediz 1.1 release (voting now)

Page 22: Apache CXF New Directions in Integration

Questions and More Information

• Apache CXF

• http://cxf.apache.org

[email protected]

• Me

[email protected] or [email protected]