Apache CXF
Encyclopedia
Apache CXF is an open-source, fully featured Web services framework. It originated as the combination of two open-source projects: Celtix
developed by IONA Technologies
(acquired by Progress Software in 2008) and XFire
developed by a team hosted at Codehaus. These two projects were combined by people working together at the Apache Software Foundation
. The name CXF derives from combining the "Celtix" and "XFire" project names.
The CXF key design considerations include:
CXF is often used with Apache ServiceMix
, Apache Camel
and Apache ActiveMQ
in Service-oriented architecture
(SOA) infrastructure projects.
Celtix
Celtix delivers a Java Enterprise Service Bus runtime and set of APIs that make it easy to add transports, message formats, and security features...
developed by IONA Technologies
IONA Technologies
IONA Technologies was an Irish software company. It was founded in 1991.The company began life as a campus company in Trinity College, Dublin and maintains headquarters in Dublin, Boston and Tokyo....
(acquired by Progress Software in 2008) and XFire
Codehaus XFire
is a Java SOAP framework for development and consumption of web services.Unlike earlier similar products, such as Apache Axis 1.x that use in-memory tree models for XML, XFire uses StAX resulting in better performance..Apache Axis2 also uses StAX....
developed by a team hosted at Codehaus. These two projects were combined by people working together at the Apache Software Foundation
Apache Software Foundation
The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...
. The name CXF derives from combining the "Celtix" and "XFire" project names.
The CXF key design considerations include:
- Clean separation of front-endsFront-end and back-endFront end and back end are generalized terms that refer to the initial and the end stages of a process. The front end is responsible for collecting input in various forms from the user and processing it to conform to a specification the back end can use...
, like JAX-WS, from the core codeSource codeIn computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
. - Simplicity with, for instance, the creation of clientsClient (computing)A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
and endpoints without annotations. - High performance with minimum computational overheadComputational overheadIn computer science, overhead is generally considered any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to attain a particular goal...
. - Embeddable Web service component: example embeddings include Spring Framework and Geronimo.
CXF is often used with Apache ServiceMix
Apache ServiceMix
Apache ServiceMix is an enterprise-class open-source distributed enterprise service bus and service-oriented architecture . It was built from the ground up on the semantics and APIs of the Java Business Integration specification JSR 208 and released under the Apache License...
, Apache Camel
Apache Camel
Apache Camel is a rule-based routing and mediation engine which provides a Java object-based implementation of the Enterprise Integration Patterns using an API to configure routing and mediation rules...
and Apache ActiveMQ
Apache ActiveMQ
Apache ActiveMQ is an open source message broker which fully implements the Java Message Service 1.1 . It provides "Enterprise Features" like clustering, multiple message stores, and ability to use any database as a JMS persistence provider besides VM, cache, and journal persistency.Apart from...
in Service-oriented architecture
Service-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...
(SOA) infrastructure projects.
Features
CXF includes a broad feature set, but it is primarily focused on the following areas:- Web Services Standards Support:
- SOAPSOAPSOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks...
- WS-AddressingWS-AddressingWS-Addressing or Web Services Addressing is a specification of transport-neutral mechanisms that allow web services to communicate addressing information...
- WS-PolicyWS-PolicyWS-Policy is a specification that allows web services to use XML to advertise their policies and for web service consumers to specify their policy requirements.WS-Policy is a W3C recommendation as of September 2007....
- WS-ReliableMessagingWS-ReliableMessagingWS-ReliableMessaging describes a protocol that allows SOAP messages to be reliably delivered between distributed applications in the presence of software component, system, or network failures....
- WS-SecureConversationWS-SecureConversationWS-SecureConversation is a Web Services specification, created by IBM and others, that works in conjunction with WS-Security, WS-Trust and WS-Policy to allow the creation and sharing of security contexts...
- WS-SecurityWS-SecurityWS-Security is a flexible and feature-rich extension to SOAP to apply security to web services. It is a member of the WS-* family of web service specifications and was published by OASIS....
- WS-SecurityPolicyWS-SecurityPolicyis a WS* specification, created by IBM and 12 co-authors, that has become an OASIS standard as of version 1.2. It extends the fundamental security protocols specified by the WS-Security, WS-Trust and WS-SecureConversation by offering mechanisms to represent the capabilities and requirements of web...
- SOAP
- JAX-WSJAX-WSThe Java API for XML Web Services is a Java programming language API for creating web services. It is part of the Java EE platform from Sun Microsystems. Like the other Java EE APIs, JAX-WS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients...
API for Web service development- Java first support
- WSDLWeb Services Description LanguageThe Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...
first tooling
- JAX-RSJAX-RSJAX-RS: Java API for RESTful Web Services is a Java programming language API that provides support in creating web services according to the Representational State Transfer architectural style...
(JSR 311 1.0) API for RESTfulRepresentational State TransferRepresentational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation...
Web service development - JavaScriptJavaScriptJavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
programming model for service and client development - MavenApache MavenMaven is a build automation and software comprehension tool. While primarily used for Java programming, it can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. Maven serves a similar purpose to the Apache Ant tool, but it is based on different concepts and...
tooling - CORBAÇorbaChorba , ciorbă , shurpa , shorpo , or sorpa is one of various kinds of soup or stew found in national cuisines across Middle East...
support - HTTP and JMS transport layers
- Embeddable Deployment:
- ServiceMix or other JBI containers
- Geronimo or other Java EE containers
- TomcatApache TomcatApache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation...
or other servlet containers - OSGiOSGiThe Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...
- Reference OSGiOSGiThe Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...
Remote Services implementation
Commercial Support
Enterprise support for CXF is available from independent vendors including FuseSource, JBoss, Talend, and Sosnoski Software Associates. See the CXF Support Page for details on all support options.See also
- JAX-WS RIJAX-WSThe Java API for XML Web Services is a Java programming language API for creating web services. It is part of the Java EE platform from Sun Microsystems. Like the other Java EE APIs, JAX-WS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients...
The reference implementation of the JAX-WS specification, used directly by GlassFish MetroGlassFish MetroMetro is an opensource web service stack that is a part of the GlassFish project, though it can also be used in a stand-alone configuration. Components of metro include JAXB RI, JAX-WS RI, SAAJ RI, StAX and WSIT... - The Axis Web Services frameworkApache AxisApache Axis is an open source, XML based Web service framework. It consists of a Java and a C++ implementation of the SOAP server, and various utilities and APIs for generating and deploying Web service applications. Using Apache Axis, developers can create interoperable, distributed computing...
- The JAX-RS specification.
- List of web service frameworks