[원본 출처] http://cxf.apache.org/docs/how-do-i-integrate-my-application-with-cxf.html


CXF provides a broad variety of touch points which your application can take advantage of. This guide should give you an overview of some of the features and options at your disposal.
CXF 는 어플리케이션이 활용할수 있는 넓은 터치 포인트의 다양성을 제공한다. 이 가이드는 당신에게 기능의 몇몇 개요와 처리 옵션을 줄 것이다.

Transports 

CXF works with many different transports. Currently CXF includes support for HTTPJMS, and Local (that is, "in-JVM") transports. The local transport is unique in that it will not work across machines, but simply sends messages in memory. You can also configure the local transport to avoid serialization by using the Object binding or the colocation feature if desired. You can also write your own transport.
CXF 는 많은 transports로 동작한다. 현재 CXF는 HTTPJMS, 과 Local (that is, "in-JVM") transports를 지원 하는 것을 포함한다. local transport는 머신간에 동작하지 않지만 단순히 메모리에 메시지를 보내는 것이 유일하다.  당신은 또한 Object 바인딩과 당신이 희망하는 colocation 기능을 사용하게 됨으로써 직렬화를 피하기 위해 local transport를 환경 구성할 수 있다. 당신은 또한 자체의 transport으로 쓸 수 있다.

Bindings (바인딩)

Bindings map a particular service's messages to a particular protocol. CXF includes support for several different bindings. The SOAP binding, which is the default, maps messages to SOAP and can be used with the various WS-* modules inside CXF. The Pure XML binding avoids serialization of a SOAP envelope and just sends a raw XML message. There is also an HTTP binding which maps a service to HTTP using RESTful semantics.
바인딩은 특별한 프로토콜에 틀별한 서비스의 메시지를 맵핑한다. CXF는 몇몇 다른 바인딩을 지원하는 것을 포함한다. 기본적인 SOAP 바인딩은 SOAP에 메시지를 매핑하고 CXF 내에서 다양한 WS-* 모듈이 사용 될 수 있다. 순수  XML 바인딩은 SOAP envelop의 직렬화를 피하고 단지 원시 XML 메시지를 보낸다. 또한 RESTful 문법(의미론)을 사용하여 HTTP에 서비스를 맵핑하는 HTTP binding 이 있다.

Message Interception and Modification
(메시지 통합과 수정)

Many times you may want to provide functionality for your application that works at a low level with XML messages. This commonly occurs through functionality referred to as Handlers or Interceptors. Handlers/Interceptors are useful for:
많은 시간 당신은  XML 메시지로 로우레벨에서 동작하는 어플리케이션을 위해 기능들을 제공하는 것을 원한다. 이것은 일반적으로  Handlers 나 Interceptors에 참조된  기능을 통해서 발생한다. 

  • Performing authentication based on Headers
    헤더에 기반한 인증을 수행하기
  • Processing custom headers
    사용자정의 헤더 처리하기
  • Transforming a message (i.e. via XSLT or GZip)
    메시지 변환하기(즉 XSLT 또는 GZip을 통해)
  • Redirecting a message
    메시지 리다이렉션하기
  • Getting access to the raw I/O or XML stream
    원시 I/O 또는 XML stream에 접근하기

JAX-WS Handlers (JAX-WS 핸들러)

If you are using the JAX-WS frontend, JAX-WS supports the concept of logical and protocol handlers. Protocol handlers allow you to manipulate the message in its raw, often XML-based, form - i.e. a SAAJ SOAPMessage. Logical handlers allow you to manipulate the message after its already been bound from the protocol to the JAXB object that your service will receive. See this article to learn more about JAX-WS handlers.
만약 당신이 JAX-WS frontend를 사용한다면 JAX-WS는 로컬 또는 프로토콜 핸들러의 개념을 지원한다. 프로코콜 핸들러는 당신이 그것의 가공되지 않는 메시지 종종 XML 기반 form 즉 SAAJ SOAPMessage를 다루는 것을 허용한다. 로컬 핸들러는 당신이 받게 될 서비스의 JAXB 오프젝트에 프로토콜로 부터 이미 바인드된 뒤에 메시지를 다루는 것을 허용한다.

Interceptors (인터셉터)

Interceptors provide access to all the features that CXF has to offer - allowing you to do just about anything, including manipulating the raw bytes or XML of the message.
Interceptors 는 가공되지 않는 Byte 또는 XML 메시지를 다루는 것을 포함하여 단지 무엇을 하는지를 허용하는 CXF가 제공하는 모든 기능에 접근 하는 것을 허용한다. 

Transmitting Binary Data (바이너리 데이타 전송하기)

CXF provides facilities to transmit binary data efficiently via a standard called MTOM. Normally binary data inside an XML message must be Base64 encoded. This results in processing overhead and increases message size by 30%. If you use MTOM, CXF will send/receive MIME messages with the message stored as a MIME attachment, just like email. This results in much more efficient communication and allows you to transmit messages much larger than memory.
CXF 는 MTOM 이라는 표준을 통해서 능률적으로 바이너리 데이타를 전송하기 위한 설비를 제공한다. 보통 XML 메시지 안쪽에 바이너리 데이타는 Base64로 인코딩 되어야 한다. 처리 하는 결과는 과부화되고 30% 메시지 사이즈 증가한다. 만약 당신이 MTOM을 사용하면 CXF는 이메일 처럼 MIME 첨부로써 저장된 메시지로 MIME 메시지를 보내고 받게 될 것이다. 그것은 좀 더 많은 충분한 통신결과이고 메모리보다 더 큰 메시지를 전송하는 것을 허용한다.

WS-*

CXF provides support for a variety of WS-* specifications.
CXF 는 WS-* 명세의 종류를 지원을 제공한다.

Invokers 

Invokers allow you to customize how a particular method or backend service object is executed. This is particularly useful if your underlying service objects are not plain javabeans and instead need to be created or looked up via a custom factory.
Invokers 는 당신이 특별한 메서드 또는 백엔드 서비스 오프젝트를 실행하는  방법을 사용자정의 하는 것을 허용한다. 만약 당신이 제일 밑에 있는 서비스 오프벡트가 순수한 자바 빈즈 그리고 사용자정의 Factory를 통해 생성되거나 찾게 될 필요가 있는 대신으로써 이것은 특별히 유용하다. 



[원본 출처] http://cxf.apache.org/docs/why-cxf.html


With so many options available to developers today in the web services space, one of the questions worth asking is why should I use CXF? In no particular order, here are some of the reasons you might want to use CXF:
웹서비스에서 가능한 많은 옵션을 가진 요즘 개발자들에게 왜 CXF를 사용해야 하는가? 라고 묻는 가치있는 질문 중에 하나는 특별한 순서 없이, 여기 당신이 CXF를 사용하는 것을 원할지 모르는 몇가지 이유가 있다.

JAX-WS Support (JAX-WS 지원)

CXF implements the JAX-WS APIs which make building web services easy. JAX-WS encompasses many different areas:
CXF는 웹서비스를 쉽게 만들기 위해 JAX-WS API를 구현했다. JAX-WS는 많은 다른 영역을 포함한다.

  • Generating WSDL from Java classes and generating Java classes from WSDL
    Java 클래스들로 부터 WSDL 생성하기와 WSDL로 부터 Java 클래스들 생성하기
  • Provider API which allows you to create simple messaging receiving server endpoints
    단순히 메시지를 받는 서버 Endpoints를 허용하는 Provider API 
  • Dispatch API which allows you to send raw XML messages to server endpoints
    원시 XML 메시지를 서버의 Endpoints에 보내는 것을 허용하는 Dispatch API
  • Much more...

Spring Integration (Spring 통합)

Spring is a first class citizen with Apache CXF. CXF supports the Spring 2.0 XML syntax, making it trivial to declare endpoints which are backed by Spring and inject clients into your application.
Spring은 Apache CXF를 사용하는  첫 클래스 주민이다(?) CXF는 당신의 어플리케이션에 Spring과 주입으로 지원을 받은 선언된 Endpoints에 그것을 진부하게 만드는 Spring 2.0 XML 구문을 지원한다.

Aegis Databinding (Aegis 데이타 바인딩)

Aegis Databinding (2.0.x) is our own databinding library that makes development of code-first web services incredibly easy. Unlike JAXB, you don't need annotations at all. It also works correctly with a variety of datatypes such as Lists, Maps, Dates, etc. right out of the box. If you're building a prototype web services that's really invaluable as it means you have to do very little work to get up and running (and one of the primary reasons XFire was started a while back)
Aegis Databinding (2.0.x) 은 믿을수 없이 쉽게 웹서비스의 첫 코드를 개발만드는데 자체의 데이타바인딩 라이블러리이다. JAXB를 좋아 하지 않으면 당신은 모든 어노테이션을 필요로 하지 않는다. 그것은 또한 List나 Maps나 Dates등 같은 다양한데이타 유형을 가지고 정확하게 동작한다.  바로 특출ㅎ게 만약 당신이 웹서비스의 프로토 타입을 만들고 있다면 그것은 웹서비스를 올리고 실행하기 위해 매우 작은 작업으로 해야 한다는 의미로 진짜로 귀중하다. 

RESTful services (RESTful 서비스)

CXF enables the development of RESTful services via annotations using the HTTP Binding. Using URI templates and annotations you can bind a service operation to arbitrary URL/verb combinations. For instance, you can annotate a getCustom method with @Get @HttpResource("/customers/{id}"). CXF will then listen for GET requests on that URL and using the parameter at the {id} location as a parameter to the service.
CXF 는 HTTP Binding 을 사용하는 어노테이션을 통해서 RESTful 서비스들의 개발을 가능하게 한다. URI 템플릿과 어노테이션을 사용여 당신은 서비스 운영을 독자적인 URL/verb 조합으로 바인딩할 수 있다. 예를 들면 당신은 getCustom 메서드에 @Get @HttpResource("/customers/{id}")를 사용하여 어노테이션 할 수 있다. CXF 는 GET URL에 요청과 서비스의 파라터로써 {id} 위치에 파라미터를 사용하여 리스팅하게 될 것이다. 

WS-* Support (WS-* 지원)

CXF supports a variety of web service specifications including WS-Addressing, WS-Policy, WS-ReliableMessaging and WS-Security.
CXF는  WS-Addressing, WS-Policy, WS-ReliableMessaging 와 WS-Security를 가지고 웹서비스 명세의 다양성을 지원한다.

Apache Licensed (아파치 라이선스된)

CXF comes under the liberal Apache license, making CXF great for all types of applications.
CXF 는 applications의 모든 유형을 위한 다수의 CXF를 만드는 것은 자유 Apache license 하에서 나온다. 


+ Recent posts