[원본 출처] http://servicemix.apache.org/docs/5.0.x/camel/index.html



Apache Camel is a powerful open source integration framework based on known Enterprise Integration Patterns with powerful Bean Integration.
Apache Camel은 파워풀 빈 통합을 가지고 엔터프라이즈 통합 패턴(EIP)으로 알려진 것에 근거한 파워풀한 오픈 소스 통합 프레임워크이다. 

Camel in ServiceMix(ServiceMix 의 Camel)

In ServiceMix, Apache Camel is like our swiss army knife for creating integration solutions. It allows using XML or a Java/Scala-based DSL to express your routes, comes with over 70 optional components, has powerful and versatile Java bean integration, error handling, ... and tons of other features.
ServiceMix에서 Apache Camel이 통합 솔루션을 생성하기 위해 스위스 육군 칼(맥가이버칼) 같다. 그것은 XML 또는 Java/스칼라 기반 DSL을 당신의 라오터를 표현하기 위해 사용 하는 것과 70개 이상의 부가적인 컴포넌트들을 함게 제공하고 강력하고 다양한 Java 빈 연계를 가지고 에러를 핸들링하고 그리고 다른 기능의 톤을 허용한다.

Apache Camel is installed by default if you first start the container. We also have out-of-the-box hot-deployment support for both Spring and Blueprint to make it easy to deploy your own Camel routes, as well as optionally installable features for all the available Camel components.
만약 당신이 먼저 컨테이너를 시작하기를 원하면 Apache Camel은 기본으로 설치되어 있다. 우리는 또한 Spring과 Blueprint가 당신의 Camel 라우터를 배포하기 쉽게 만들어 주기 위해 뿐만 아니라 부가적으로 모든 Camel 컴포넌트를 위한 설치 가능한 기능을 지원하는 핫 디플플로이 외부 박스를 가지고 있다

Goal of this guide(이 가이드의 목적)

The goal of this guide is to look into the details for using Camel inside ServiceMix:
이 가이드의 목적은 ServiceMix안에 Camel을 사용하기 위한 상세를 찾기 위한 것이다.

  • deployment options

  • installing additional components

Examples(예제)

The Apache ServiceMix distributions also contain a set of Camel examples. You can find these examples in theexamples/camel directory.
Apache ServiceMix 배포판은 Camel 예제 세트를 또한 포함한다. 당신은 examples/camel 디렉토리에서 그런 예제를 찾을 수 있다.

More information about Camel(Camel에 대한 이상의 정보)

More information about Camel itself, can be found on http://camel.apache.org.
Camel 그 자체에 대한 더 많은 정보는 http://camel.apache.org에 찾을 수 있다.

There's also a great book available about Camel
또한 Camel에 대한 가능한 책이다.

  • Ibsen, Claus, and Anstey, Jonathan. (December 2010). Camel in Action. Greenwich, CT: Manning. ISBN: 9781935182368.


[원본 출처] http://servicemix.apache.org/docs/5.0.x/activemq/activemq-camel-example.html


Using ActiveMQ with Camel (Camel을 가지고 ActiveMQ 사용하기)

Using Spring-DM (Spring-DM 사용하기)

It is often easy to define two application contexts for spring-dm, it helps you re-use configuration in Junit tests and cleanly separates OSGi from the normal spring application contexts.
그건은 종종 spring-dm을 위한 두개의 어플리케이션 컨텍스트를 정의하는 것이 쉽고 그것은 당신이 JUnit 테스트에서 환경구성을 재사용하고 보통의 Spring 어플리케이션 컨텍스트들로 부터 OSGi를 깨끗하게 분리하는 것을 돕는다.

You define these files in a bundle by adding them to the classpath under META-INF/spring
당신은 번들에서 META-INF/spring 폴더 아래 클래스패스에 그것들을 추가 함으로써 그 파일들을 정의하라

OSGi Application context (OSGi 어플리케이션 컨텍스트)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xmlns:ctx="http://www.springframework.org/schema/context"
  xmlns:osgi="http://www.springframework.org/schema/osgi"
  xmlns:osgix="http://www.springframework.org/schema/osgi-compendium"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
    http://www.springframework.org/schema/osgi-compendium http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd">

    <!-- Make sure we use the ServiceMix provided connection pool in our beans -->
    <osgi:reference id="jmsConnectionPool" interface="javax.jms.ConnectionFactory"/>

</beans>

Normal spring application context. (일반적인 Spring 어플리케이션 컨텍스트)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:camel="http://camel.apache.org/schema/spring"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://camel.apache.org/schema/spring
        http://camel.apache.org/schema/spring/camel-spring-${camel-version}.xsd">

    <camelContext xmlns="http://camel.apache.org/schema/spring">
        <route>
            <from uri="jms:queue:start"/>
            <to uri="mock:result"/>
        </route>
    </camelContext>

    <!-- This bean will import use the OSGi service from the context above -->
    <bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
        <property name="connectionFactory" ref="jmsConnectionPool" />
        <!-- If you have a transaction manager configured
        <property name="transacted" value="true" />
        <property name="transactionManager" ref="transactionManager" />
        -->
    </bean>

</beans>



번역자 주) 한번에 전체를 지정해주는 것이 아니라 jms Connection 의 경우 OSGi 에 구현해 두고 일반적인 어플리케이션에서는 그것을 ref로 참조한 Jms 컴포넌트를 사용하는 것을 말한다.




[원본 출처] http://servicemix.apache.org/docs/5.0.x/activemq/index.html



Introducing ActiveMQ(ActiveMQ 소개하기)

Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns provider.
Apache ActiveMQ는 가장 있기 있고 파워풀한 오픈 소스 메시징과 연계 패턴들을 제공하고 있다.
Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols
and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License
Apache ActiveMQ는 빠르고 전체 JMS 1.1 과 J2EE 1.4 를 지원하기 때문에 많은 크로스 랭키지 클라이언트와 프로토콜들과 많은 진보된 지원하고 많은 진보된 기능을 지원한다. Apache AcitveMQ는 Apache 2.0 라이선스 하에서 릴리즈 되었다.

ActiveMQ Supports (ActiveMQ 지원)

Easy communication via Cross Language Clients
크로스 랭기쥐 클라이언트간 쉬운 통신

  • ActiveMQ C++ Clients

  • Ajax

  • C Integration

  • CMS

  • Delphi and FreePascal

  • dot Net

  • Perl

  • PHP

  • Pike

  • Python

  • Ruby

  • WebSockets

  • JMS to JMS Bridge

Several Protocols
몇가지 프로토콜

  • AMQP

  • OpenWire

  • REST

  • RSS and Atom

  • Stomp

  • WSIF

  • WS Notification

  • XMPP

Using ActiveMQ from ServiceMix(ServiceMix 에서 ActiveMQ 사용하기)

To start using ActiveMQ from your code, simply get a hold of the connection pool declared in the activemq-broker.xml file.
당신의 코드에서 ActiveMQ를 사용하는 것을 시작하기 위해 간단히 activemq-broker.xml 파일에 선언된 커넥션 풀을 잡아라

If you want to use ActiveMQ as a JBI component, configure servicemix-jms. You can also utilize ActiveMQ from Camel via the
camel-jms component.
만약 당신이 JBI 컴포넌트로서 ActiveMQ를 사용을 원하면, servicemix-jms 를 환경구성하라 당신은 또한 camel-jms 컴포넌트를 사용하여 Camel로 부터 ActiveMQ를 활용할 수 있을 것이다.

When should I use ActiveMQ?(언제 ActiveMQ를 사용해야 하는가?)

Whenever you have a unit of work or payload that you could process asynchronously, you would like to have multiple recipients, concurrent competing recipients to scale or leverage multiple processing units. If you want to spread load across multiple system boundaries. You want to cluster or provide fail over and messaging security, you have long running flows.
당신이 당신은 비동기적으로 진행할수 있는 업무나 페이로드의 한 묶음을 가지고 있을때마다. 당신은 복수의 응답자나 동시에 경쟁하는 응답자들이 확장 또는 복수의 절차를 진행하는 단위 활용하는 것을 하고 싶어 한다. 아마 당신이 복수의 시스템의 경계들을 지나 부하를 분산하기를 원한다. 당신은 클러스터링 하거나 장애처리나 메시지 보안을 제공하기를 원한다면 당신은 긴 실행흐름을 가

In any of these instances it would be strongly suggested you evaluate what a scalable and secure messaging solution can bring to the table.
그런 인스턴스의 어느 하나에서 그것은 당신이 확장성과 보안 메시징 솔루션이 테이블에 가지고 올수 있는 것이 무엇인지를 평가하는 것을 강력하기 제안될 것이다. 

Common use cases(일반적 사용 예)

Integration with other systems, since you can pass messages in and out of ActiveMQ from pretty much any programming language it is very simple to start integrating heterogeneous environments.
다른 시스템들을 통합에서 당신은 매우 많은 모든 프로그래밍 언어로 부터 AcitveMQ의 in 또는 out 메시지를 전달 할수 있기 때문에 그것은 이기종 환경들을 통합하기를 시작하는것이 매우 쉽다. 

Providing an event driven architecture. You can develop your solutions based on actions as opposed to looking for data or relying on completely synchronous behaviour.
이벤트 드리븐(기반) 아키텍처를 제공한다.  당신은 완전히 동기화된 동작에서 데이타나 찾거나 의존하는 것에 반대 되는 것으로써 실행에 기반하여 당신의 솔루션을 개발 할 수 있다.

Providing infrastructure for messaging across large distances, leverage the network connectors and broker networks to integrate for example geographically different data centres.
지리적으로 다른 데이타 센터를 위해 장거리, 네트워크 커텍터 활용과 연계하기 위한 브로커 네트워크들을 지나 메시징을 위한 기반구조를 제공한다. 



[원본 출처] http://servicemix.apache.org/docs/5.0.x/user/technology-selection.html


Technology selection guide(기술 선택 가이드)

ServiceMix 4 offers a set of different messaging and integration technologies:
ServiceMix 4 는 다른 메시징과 통합 기술 한 세트를 제공한다.

  • ActiveMQ

  • Camel

  • CXF

  • JBI

  • NMR

Depending on the solution you're building, you want to select one or more of these technologies. Below are some guidelines to help you pick the right mix for your problem.
만약 당신이 하나 또는 그 이상의 드 기술들을 선택하기를 원하면 당신이 만드는 솔루션에 종속되어 있다. 아래 당신의 문제를 올바르게 혼합하기 위해 선택하는 것을 도울 몇몇 가이드라인들이 있다.

When to use Camel? (언제 Camel을 사용하는가?)

For any integration scenario, we recommend to start as simple as possible. Camel allows you to build routes for integration scenario's quickly and efficiently. You can deploy these routes directly on ServiceMix by deploying the plain Spring XML route or by packaging the route in an OSGi bundle.
모든 연계 시나리오를 위해 우리는 가능한한 단순하게 시작 할 것을 추천한다. Camel 은 빠르고 충분히 통합의 시나리오를 위해 당신이 라우터를 빌드하는 것을 허용한다. 당신은 순수 Spring XML 라우터를 개발 함으로써 또는 OSGi 번들에 라우터를 패키징 함으로써 ServiceMix에 직접 그 라우터들을 배포할 수 있다. 

As you need more (advanced) features, start combining Camel with ActiveMQ, CXF and/or the NMR
좀 더 진보된 기능을 원하면 Camel을 ActiveMQ와 CXF와 그리고 NMR과 결합하는 것을 시작하라.

When to use ActiveMQ?(언제 ActiveMQ를 사용하는가?)

ActiveMQ is a JMS message broker, featuring support for clustering, pluggable persistence mechanism, master-slave configuration for failover, ...
ActiveMQ는 JMS 메시지 브로커이다. 클러스터링을 지원하고, 지속적인 메커니즘을 플러그 할수 있고, 장애조치(failover)를 위해 master-slave 환경구성을 하는 기능을 하고 있다.

ServiceMix 4 includes an instance of the ActiveMQ broker, which can be combined with Camel to provide easy-to-use message persistence and reliable messaging.
ServiceMix 4는 ActiveMQ 브로커의 인스턴스 하나를 포함한다. 그 인스턴스는 쉽게 사용할수 있는 메시지의 지속성과 신뢰할수 있는 메시지를  위해 Camel과 결합될 수 있다.

After setting up multiple instances of ActiveMQ (or ServiceMix 4) on the network, you can configure ActiveMQ clustering or master-slave mode to allow for a more reliable and scalable set-up.
네트워크 상에서 ActiveMQ ( 또는 ServiceMix 4)의 다수의 인스턴스를 설정한 뒤에 당신은 더 신뢰할수 있고 확장할수 있는 설정을 허용하기 위해 ActiveMQ 클러스터링 또는  master-slave 모드를 환경 구성할 수 있다.  

When to use CXF?(언제 CXF 를 사용하는가?)

CXF is an open-source services framework that you can use to suit your WS-* standards integration needs. It allows you to use common programming APIs like JAX-RS or JAX-WS for building your own services and to expose them to the outside world.

CXF 는 당신이 WS-* 표준 연계를 필요를 적합하게 하기 위해 사용할 수 있는 오픈소스 서비스 프레임워크이다.

You can use CXF from within your Camel routes with the Camel CXF component.
당신은 Camel CXF 컴포넌트를 사용하여 Camel 라우터들 안에서 CXF를 사용할 수 있다.

When to use NMR?(언제 NMR을 사용하는가?)

The NMR provides the basic ESB features for ServiceMix 4. You can use it to connect multiple camel routes in a lightweight way. It can also be used as a common transport on which you can add container-level auditing by registering your own ExchangeListener implementation.
NMR은 ServiceMix4를 위해 기본적인 ESB의 기능을 제공한다. 당신은 경량화된 방법에서 그것을 복수의 Camel 라우터들을 연결하기 위해 사용할 수 있다. 그것은 또한 당신이 당신 자신의 ExchangeListener 구현체를 등록함으로써 컨테이너 레벨의 심사하는 것을 추가 하기 위해서  보통의 운송으로 사용 될수 있다. 

When to use JBI?(언제 JBI를 사용하는가?)

We still support JBI 1.0 in ServiceMix 4 so you can leverage your previous investments and move your existing JBI artifacts from ServiceMix 3 to the new container with no/minimal changes before migrating them to use Camel and/or CXF directly. For new projects, you should consider JBI deprecated and always use Camel and/or CXF inside ServiceMix instead.
우리는 여전히 ServiceMix 4 에서 JBI 1.0을 지원한다. 그래서 당신은 Camel과 CXF를 직접 사용하기 위해 마이그래이션하기 전에 ServiceMix 3으로 부터 새 컨터에지로 없거나 최소의 변화로 당신의 이전 투자들의 이점을 가질수 있고 당신의 존재하고 있는 JBI 구조물들을 옮길수 있다.  새 프로젝트를 위해 당신은 사용되지 않는 JBI를 고려해야하고 대신에 ServiceMix 안쪽에 Camel 이나 또는 CXF를 항상 사용해야 한다. 



[원본 출처] http://servicemix.apache.org/docs/5.0.x/user/what-is-smx4.html

번역자 주) ServiceMix 4가 이전 버전과 많이 차이나며 이후 버전과는 공통성이 많다 
그래서 인지 아직 홈페이지에는 User Guide가 4.x 버전으로 설명되어 있다.
임의로 수정하지 않고 원본 그대로를 번역하는 중이므로 
원문에 작성되지 않은 부분에 대해서는 그대로 표기 하였다.

What is ServiceMix 4? (ServiceMix 4는 무엇인가?)

Apache ServiceMix is an open source ESB (Enterprise Service Bus) that combines the functionality of a Service Oriented Architecture (SOA) and the modularity. The adoption of a Service Bus allows to decouple the applicatons together and reduce dependencies. Messages are used to wired the applications (=services) and/or connectors to exchange information using different protocols or communications mode like FTP, HTTP, WebServices, ...
Apache ServiceMix 는 서비스 지향 아키테거(SOA)의 기능성과 모듈화을 결합한 오픈소스 ESB(Enterprise Service Bus) 이다. Service Bus의 채용은 어플리케이션간에 분리할 수 있게 그리고 의존성을 감소하도록 허락한다. 메시지는 어플리케이션들(서비스들)과 그리고 또는 커넥터들이 다른 프로토콜과 또는 FTP, HTTP, WebService, 등등의 커뮤니케이션 모드를 사용하여 정보를 교환하기 위해 연결에 사용된다.

This new version of Apache ServiceMix is more than an evolution of the previous as the kernel of the platform has been completety rewritten and is designed top of the OSGI specification. Using OSGI framework brings a new important feature for SOA development : modularity. That means that we can handle classloading and application lifecycle differently between the components.
이 Apache ServiceMix의 새 버전은 플랫폼의 커널로 완전히 재작성되고 OSGI 명세서 위에 설계됨으로써 이전의 진화 보다 더 되었다. OSGI 프레임워크를 사용하여 SOA 개발을 위한 중요한 새 기능을 가져왔다. : 모듈화. 그것은 우리가 다른 컴포넌트들 사이에서 클래스 로딩과 어플리케이션의 라이프사이클을 핸들링 할 수 있는 것을 의미 하고  의미한다.

ServiceMix is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (inside a client or server), as a standalone ESB provider or as a service within another ESB. You can use ServiceMix in Java SE or Java EE application server.
ServiceMix는 경량화되었고 쉽게 내장될 수 있고 Spring을 지원을 통합했고 그리고 네트워크의 끝(클라이언트나 서버안에)에 독립적인 ESB 제공자로서 또는 다른 ESB에 포함된 서비스로써 실행될 수 있다. 당신은 Java SE 나 Java EE 어플리케이션 서버에 ServiceMix를 사용할 수 있다. 

Platform presentation(플랫폼 소개)

Apache ServiceMix is an distributed ESB built from the ground up on the Java Business Integration (JBI) specification JSR 208 and released under the Apache license. The goal of JBI is to allow components and services to be integrated in a vendor independent way, allowing users and vendors to plug and play.
Apache ServiceMix는 지상 최대의 자바 비즈니스 통합(JBI) 명세 JSR 208 과 Apache 라이선스하에 릴리즈된 분산된 ESB 빌트이다. JBI의 목적은 사용자들과 벤더들이 플러그 앤 플레이를 허용함으로써 컴포넌트들과 서비스들이 밴더 독립적 방식에 통합되도록 하는 것을 허용한다. 

ServiceMix uses ActiveMQ to provide remoting, clustering, reliability and distributed failover.
ServiceMix는 원격과 클러스터링과 신뢰성 그리고 분산된 장애처리(failover)를 제공하기 위해  ActiveMQ를 사용한다.

ServiceMix is completely integrated into Apache Geronimo, which allows you to deploy JBI components and services directly into Geronimo. ServiceMix is being JBI certified as part of the Geronimo project.
ServiceMix는 완벽하게 Apache Geronimo에 통합되었고 당신이 JBI 컴포넌트들과 서비스들을 직접적으로 Geronimo에 배포하는 것을 허락한다. ServiceMix 는 Geronimo 프로젝트의 일부로써 인증된 JBI가 되었다.  

ServiceMix can be embedded into a JEE application server such as JBoss, Oracle Weblogic or IBM Websphere. 
ServiceMix 는 JBoss나 Oracle Weblobic 또는 IBM Websphere 같은 JEE 어플리케이션 서버에 내장 될 수 있다. 

ServiceMix includes a complete JBI container supporting all parts of the JBI specification including:
ServiceMix는 JBI 명세서에 포함된 모든 부분을 지원하기 위한 완벽한 JBI 컨테이너를 포함한다. 

  • NMR (Normalized Message Router)
    NMR (표준화된 메시지 라우터)

  • JBI Management MBeans
    JBI 관리 MBean들 

  • full support for the JBI deployment units with hot-deployment of JBI components
    JBI 컴포넌트들의 핫-디플로이를 위한 JBI 배포 유닛을 전체 지원

ServiceMix also provides a simple to use client API for working with JBI components and services.
ServiceMix는 또한 단순한 JBI 컴포넌트들과 서비스들을 가지고 동작하는 클라이언트 API를 사용하는 것을 제공한다.

ServiceMix includes many JBI components including HTTP, JMX, CXF, BPEL, etc.
ServiceMix는 HTTP, JMX, CXF, BPEL 등등의 많은 JBI 컴포넌트들을 포함한다.

OSGi for Dummies(더비를 위한 OSGi)

OSGi technology is the dynamic module system for Java. The OSGi Service Platform provides functionality to Java that makes Java the premier environment for software integration and thus for development. Java provides the portability that is required to support products on many different platforms. The OSGi technology provides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. These components can be composed into an application and deployed.
OSGi technology 는 자바를 위한 동적인 모듈 시스템이다. OSGi 서비스 플랫폼은 소프트웨어 통합과 개발을 위해 자바 최고의 환경을 만들기 위해 기능성을 제공한다. Java는 많은 다른 플랫폼들에서 제품을 지원하기 위해 필요로 하는 휴대성 제공한다. OSGi 기술은 작고 재사용가능하고 협력가능한 컴포넌트들로부터 구성되기 위해 어플리케이션을 허용하는 표준화된 근원들을 제공한다. 그 컴포넌트들은 어플리케이션에 압축되고 배포될 수 있다.

The OSGi Service Platform provides the functions to change the composition dynamically on the device of a variety of networks, without requiring restarts. To minimize the coupling, as well as make these couplings managed, the OSGi technology provides a service-oriented architecture that enables these components to dynamically discover each other for collaboration. The OSGi Alliance has developed many standard component interfaces for common functions like HTTP servers, configuration, logging, security, user administration, XML and many more. Plug-compatible implementations of these components can be obtained from different vendors with different optimizations and costs. However, service interfaces can also be developed on a proprietary basis.
OSGi 서비스 플랫폼은 재시작을 필요로 하지 않고 네트워크의 다양한 장치에서 동적으로 구성을 변경하기 위한 기능을 제공한다. 연결을 최소하기 위해 드들 연결을 관리하게 할 뿐만 아니라 OSGi 기술을 그들 컴포넌트들 동적으로 협력을 위해 각자를 발견하는 것이 가능하도록 서비스 지향 아키텍처를 제공한다. OSGi Alliance는 HTTP 서버들, 구성, 로깅, 보안, 사용자 관리, XML과 같은 더 많은 공통 기능을 위한 많은 표준 컴포넌트 인터페이스가 개발됐다. 그들 컴포넌트들의 플러그할수 있는 호환된 구현체는 다른 최적화와 비용을 가지고 다른 공급사로부터 포함될 수 있다. 그러나 서비스 인터페이스는 또한 독자적으로 개발될수 있다. 

OSGi technology adopters benefit from improved time-to-market and reduced development costs because OSGi technology provides for the integration of pre-built and pre-tested component subsystems. The technology also reduces maintenance costs and enables unique new aftermarket opportunities because components can be dynamically delivered to devices in the field.
OSGi 기술 어댑터들은 향상된 time-to-market(제품을 개발하여 시장에 내여 놓는데 걸리는 시간)과 감소된 개발비용에서 이익이다. 왜냐하면 OSGi 기술은 미리 건조되고 미리 테스트 된 컴포넌트 시스템들의 통합을 위해 제공한다. 그 기술은 또한 관리비용을 줄이고 유일한 새 aftermarket(물건을 판매한뒤 생기는 물품 관련 수요의 시장 특히 부품 시장 및 유지보수 컨설팅등) 기회를 활성화한다. 왜냐하면 컴포넌트들은 동적으로 그 필드 내의 장치에 배달 될 수 있기 때문이다.

For more information, check out the OSGi Alliance website
더 많은 정보를 위해 OSGi Alliance website 를 확인하자

Powered by Apache Karaf(Apache Karaf에 의해 구동된다)

Apache ServiceMix is based on Apache Karaf. Apache Karaf is a small OSGi-based runtime which provides a lightweight container onto which various components and applications can be deployed.
Apache ServiceMix는 Apache Karaf에 기초한다. Apache Karaf는 다양한 컴포넌트들과 어플리케이션을 디플로이 할 수 있는 경량화된 컨테이너를 제공하는 작은 OSGi-기반의 런타임(실행환경)이다. 

Here is a short list of features supported by the Karaf:
여기 Karaf에서 짧은 기능 목록을 제공한다.

Hot deployment: Karaf supports hot deployment of OSGi bundles by monitoring jar files inside the $home/deploy directory. Each time a jar is copied in this folder, it will be installed inside the runtime. You can then update or delete it and changes will be handled automatically. In addition, the Karaf also supports exploded bundles and custom deployers (blueprint and spring ones are included by default).
핫 디플로이 : Karaf 는 $home/deploy 디렉토리 안에 jar 파일 모니터링함으로써 OSGi 번들의 핫 디플로이를 지원한다.  jar는 이 폴더에 복사 될때마다. 그것은 이 런타임(실행환경)에 설치 될 것이다. 우리는 그것들을 업데이트 또는 삭제 할수 있고 그리고 변경이 자동적으로 조정될것이다. 게다가 Karaf 는 또한 파열된 번들과 사용자 배포를 고객 지원한다. 디폴트로 blueprint 와 spring이 포함된다.)

Dynamic configuration: Services are usually configured through the ConfigurationAdmin OSGi service. Such configuration can be defined in Karaf using property files inside the $home/etc directory. These configurations are monitored and changes on the properties files will be propagated to the services.
동적 환경구성 : 서비스들은 일반적으로 ConfigurationAdmin OSGi 서비스를 통해서 구성되어 있다. 그런 구성은 Karaf에 $home/etc 디렉토리안에 프로퍼티 파일을 사용함으로써 정의 될 수 있다. 그 환경구성들은 프로퍼티 파일을 서비스에 전파하게 될 것때 모니터링되고 변경 할수 있다.

Logging System: using a centralized logging back end supported by Log4J, Karaf supports a number of different APIs (JDK 1.4, JCL, SLF4J, Avalon, Tomcat, OSGi)
로깅 시스템 : Log4J에 의해 집중화된 로그백단을 사용하는 것이 지원된다. Karaf는 많은 다른 API들(JDK 1.4, JCL, SLF4J, Avalon, Tomcat, OSG)도 지원한다.

Provisioning: Provisioning of libraries or applications can be done through a number of different ways, by which they will be downloaded locally, installed and started.
프로비저닝(준비 예비, 필요지식을 미리 준비후 요청에 맞게 공급하는 절차) : 그것들을 로컬에 다운로드 되고 설치되고 시작되는 것에 의해 라이블러리들과 어플리케이션들의 프로비저닝은 많은 다른 방법을 통하여 할 수 있다.  

Native OS integration: Karaf can be integrated into your own Operating System as a service so that the lifecycle will be bound to your Operating System.
고유 OS 통합 : Karaf는 서비스로서 당신의 운영체제에 통합 될수 있다. 그래서 생명주기는 당신의 운영체제에 묶인다(바인딩된다.) 

Extensible Shell console: Karaf features a nice text console where you can manage the services, install new applications or libraries and manage their state. This shell is easily extensible by deploying new commands dynamically along with new features or applications.
확장가능한 쉘 콘솔 : Karaf는 어디서나 서비스를 관리하고 새 어플리케이션 또는 라이블러리를 설치하고 그들의 상태를 관리 할수 있는 좋은 text 기반 콘솔을 기능이 있다. 이 쉘은 새로운 기능과 어플리케이션들 사이에서 동적으로 새로운 명령어들을 개발함으로써 쉽게 확장 가능하다.

Remote access: use any SSH client to connect to Karaf and issue commands in the console
원격 접속 : Karaf에 콘솔에 접속하고 명령어를 발행하기 위해  모든 SSH 클라이언트를 사용한다.

Security framework based on JAAS
보안 프레임워크는 JAAS에 기초한다.

Managing instances: Karaf provides simple commands for managing multiple instances. You can easily create, delete, start and stop instances of Karaf through the console.
인스턴스 관리 : Karaf 는 복수의 인스턴스를 관리하기 위해 단순한 명령을 제공한다. 당신은 콘솔을 통해서 Karaf의 인스턴스를 쉽게 생성 삭제 시작 또는 정지 할 수 있다.

For more information, check out the Apache Karaf project page
더 많은 정보를 위해서 Apache Karaf project page을 확인하자

JBI Container &Integration with OSGI

// TODO: write this bit
해야할일 : 이부분 작성하라

Normalized Message Router(표준화된 메시지 라우터)

The Normalized Message Router (NMR) is a general-purpose message bus used for communication between bundles in the OSGi container.
It's modeled after the Normalized Message Router (NMR) defined in the Java Business Integration (JBI) specification (http://www.jcp.org/en/jsr/detail?id=208).
표준화된 메시지 라우터(NMR)은 OSGi 컨테이너에 번들들 사이에 통신을 위해 사용되는 일반적인 목적의 메시지 버스이다. 그것은  자바 비즈니스 통합 (JBI) 명세서(http://www.jcp.org/en/jsr/detail?id=208)에서 정의된 표준화된 메시지 라우터 모델이 되었다.

It can be used to transport XML messages as well as other message body types, optionally augmented with headers and attachments.
그것은 XML 메시지 뿐만 아니라 다른 메시지 바디 유형을 전송하기 위해서 사용될 수 있다. 선택적으로 헤더와 첨부파일들을 가지고 증대되엇다.

For more information, check out the Using the Normalized Message Router User Guide
더 많은 정보를 위해 Using the Normalized Message Router User Guide를 확인하자

Apache Camel

Apache Camel is a powerful open source integration framework based on known Enterprise Integration Patterns with powerful Bean Integration.
Apache Camel 은 강력한 Bean Integration를 가진 언터프라이즈 연계 패턴(Enterprise Integration Patterns)으로 알려진 파워풀한 오픈 소스 통합 연계 프레임워크이다. 

Apache Camel lets you create the Enterprise Integration Patterns to implement routing and mediation rules in either a Java based Domain Specific Language (or Fluent API), via Spring based Xml Configuration files or via the Scala DSL.
Apache Camel 은 Spring 기반의 Xml 환경구성파일을 통해 또는 Scala DSL을 통해 자바기반의 Domain Specific Language (or Fluent API) 에서 당신이 구현된 라우팅과 중재 룰을 위해 엔터프라이즈 연계 패턴을 생성하도록 한다. 

For more information, check out the Using Apache Camel in ServiceMix User Guide.
더 많은 정보를 위해 Using Apache Camel in ServiceMix User Guide 확인하라.

Services proposed

// TODO: write this bit
해야할일 : 이부분 작성하라

Message Broker : Apache ActiveMQ

Apache ServiceMix ships with an embedded instance of Apache ActiveMQ out-of-the-box.
Apache ServiceMix는 외부 박스(제품) Apache ActiveMQ의 내장된 인스턴스를 함께 제공된다.

It is a fully functional Apache ActiveMQ message broker instance listening for TCP connections on port 61616 and STOMPconnections on port 61613.
그것은 61616 포트의 TCP 커넥션들 위해 그리고 61613 포트의 STOMP 커넥션들을 위해 리스팅 하고 있는 전체 기능 Apache ActiveMQ 메시지 브로커 인스턴스이다.

The default configuration for the Apache ActiveMQ message broker resides in the ServiceMix installation directory under the etc sub-directory. The ActiveMQ configuration file is named activemq-broker.xml. It's configured with reasonable default information like Persistence (KahaDB) and Producer Flow Control (essentially to make sure the broker does not run out of memory).
기본 환경구성 for the Apache ActiveMQ 메시지 브로커가 ServiceMix가 설치된 디렉토리 아래 etc sub-디렉토리에 상주한다. ActiveMQ 환경구성 파일은 activemq-broker.xml 이라는 이름이다. 그것은 Persistence (KahaDB) 와 Producer Flow Control와 같은 이유있는 디폴트 정보로 구성되어 있다. (기본적으로 브로커가 메모리가 모자라지 않도록 확인하기 위해)

The configuration file also makes use of a reusable connection pool available to all OSGi bundles exposing a javax.jms.ConnectionFactory as a service for consumption. You can re-use this connection pool via tools such as spring-dm or blueprint.
그 구성 파일은 또한 모든 OSGi 번들이 소비를 위한 서비스로써  javax.jms.ConnectionFactory 를 탐색하게 하기 위해 가능한한 사용할 수 있는 커넥션 풀을 이용한다. 당신은 spring-dm 나 blueprint 같은 툴을 통하여 이 커넥션들을 재사용 할 수 있다. 

The ActiveMQ message broker allows several components such as servicemix-cluster, camel-jmscamel-activemqcxf-jms transport to be utilized without any additional configuration.
ActiveMQ 메시지 브로커는 모든 추가 환경 구성없이 활용되게 하기 위해 servicemix-cluster,camel-jmscamel-activemqcxf-jms transport 같은 몇가지 컴포넌트들을 허용한다. 

Transaction : Geronimo Transaction Manager

// TODO: write this bit
해야할일 : 이부분 작성하라

Routing and Mediation : Apache Camel

Web Services : Apache CXF

// TODO: write this bit
해야할일 : 이부분 작성하라

Web Container

// TODO: write this bit
해야할일 : 이부분 작성하라

SOA platform

// TODO: write this bit
해야할일 : 이부분 작성하라

Spring DM container

// TODO: write this bit
해야할일 : 이부분 작성하라

Blueprint OSGI container

// TODO: write this bit
해야할일 : 이부분 작성하라

EJB Container

// TODO: write this bit
해야할일 : 이부분 작성하라



[원본 출처] http://servicemix.apache.org/docs/5.0.x/user/index.html


Apache ServiceMix is a flexible, open-source integration container that unifies the features and functionality of Apache ActiveMQ, Camel, CXF and Karaf into a powerful runtime platform for building integrations solutions.
Apache ServiceMix 는 유연하고 연계 솔루션 빌드 하기 위한 강력한 실시간 플랫폼에 Apache ActiveMQ, Camel, CXF 그리고 Karaf의 특징과 기능성을 통합한 오픈소스 연계 컨테이너이다.

The goal of this document is to introduce you to the different components that are part of Apache ServiceMix and explain how and when they can be used together.
이 문서의 목적은 당신에게 Apache ServiceMix의 일부인 다른 컴포넌트를 소개하고 어떻게 언제 그것들을 사용할수 있는지를 설명하기 위한 것이다.

Table of contents:
목차


[원본 출처] http://servicemix.apache.org/docs/5.0.x/quickstart/features.html


Optional features (추가 기능)

Everything discussed in the quickstart guide so far is installed out-of-the-box in Apache ServiceMix, but we also have a lot of optional features that can be installed in the container when necessary.
지금까지 이 퀵스타트 가이드에서 논의된 모든 것이 Apache ServiceMix의 박스 안에 설치되어 있었다. 그러나 우리는 또한 필요할때  컨테이너 안에 설치 될수 있는 많은 추가 기능을 가지고 있다.

List of features

The list of features is available with the features:list command. The overview shows you whether or not the feature is currently installed, the version and the name of the feature.
이 기능 목록은 features:list 명령어를 통해서 가능하다. 이 개요는 현재 기능이 설치되어 있는지 아닌지를 보여준다 

The full list contains a lot of different features: optional Camel components, features for adding OBR or wrapper support to Serviceix, a web console, ... Again, you can use things like | and grep to find the things in the list that you're interested in.

전체 리스트는 많은 다른 기능을 포함한다. 추가 Camel 컴포넌트,  OBR 또는 ServiceMix를 지원하는 wrapper를 추가 하는 기능, 웹 콘솔, ... 또 당신은 그 리스트에서 당신이 흥미있는 그것들을 찾기 위해  "|" 와 grep 을 사용할 수 있다.

karaf@root> features:list | grep camel

Example: Web console(예제: 웹 콘솔)

To get the web console installed in ServiceMix, install the feature from your console
ServiceMix에 웹 콘솔을 설치 하기 위해 당신의 콘솔로 부터 기능을 설치하라

karaf@root> features:install webconsole

Afterwards, you can verify that the feature is marked installed in the overview. You'll notice that the webconsole-basefeature has also been installed as a requirement for the webconsole feature itself.
이후 이 개요에서 당신은 기능이 설치되었다는 표시될수 있는 것을 확인 할 수 있다. 당신은 표시될 것이다.  webconsole-base 기능이 또한 webconsole 기능 이 그 자체의 필요로 설치되었던 것을 보게 될 것이다.  

karaf@root> features:list | grep webconsole

You will now be able to point your browser to http://localhost:8181/system/console and login with user smx and passwordsmx to access the web console. From the webconsole, you can also start and stop bundles, install optional features again, ...
당신은 이제 당신의 브라우저에 http://localhost:8181/system/console을  출력하고 웹 콘솔에 접속하기 위해 사용자로 smx 비밀번호로 smx를 사용하여 로그인 할 수 있을 것이다. 웹콘솔로 부터 당신은 당신의 번들을 시작하고 멈출수 있고 다시 추가 기능을 설치 할수 있다.


[원본 출처] http://servicemix.apache.org/docs/5.0.x/quickstart/activemq.html


Adding ActiveMQ to the 'Mix(ServiceMix에 ActveMQ 추가 하기)

Out-of-the-box, every Apache ServiceMix instance comes with an embedded ActiveMQ JMS broker. This makes it easy to communicate between Camel routes using persistent messages on the same machine, but it will also enable you to distribute your routes over multiple instances afterwards for clustering or load-balancing. 
박스의 안에서, 모든 Apache ServiceMix 인스턴스는 내장된 ActiveMQ JMX 브로커를 함께 제공된다. 이는 그것을 같은 기기에서 지속성있는 메시지를 사용하여 Camel 라우터들 사이를 통신하기 쉽게 만든다. 그러나 그것은 또한 당신을 클러스터링 또는 로드밸런싱 이후에 다수의 인스턴스들 위로 당신의 라우터들이 분배하도록 가능하게 할 것이다.

Our scenario(우리 시나리오:이번 예제)

In this scenario, we also want to move files between directories. Instead of logging the move directly, we are going to send an event JMS message onto a queue. Afterwards, we will create a second Camel route to receive the events and log them.
이 시나리오에서, 우리는 또한 이렉토리들 사이에서 파일이 옮겨지는 것을 원한다. 직접적으로 이동 로그기록 대신에 우리는 queue안에 이벤트 JMS 메시지를 보내내게 될 것이다.

Moving files and sending event messages(파일을 이동하고 이벤트 메시지 전송하기)

The first Blueprint XML file we'll create contains a Camel route that moves the files fromactivemq/input to the activemq/output directory. Afterwards, it will generate an event message and send that to an ActiveMQ queue called events.
우리가 만들게 될 첫번째 Blueprint  XML 파일은 activemq/input 에서 activemq/outpu 디렉토리로 파일을 옮기는 Camel 라우터를 포함한다. 이후 그것은 이벤트 메시지를 생성하고 ActiveMQ queue에 이벤트를 콜하기 위해 그것을 보낼 것이다. 

<?xml version="1.0" encoding="UTF-8"?>
<blueprint
    xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      http://www.osgi.org/xmlns/blueprint/v1.0.0
      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
      <route>
        <from uri="file:activemq/input"/>
        <to uri="file:activemq/output"/>

        <setBody>
          <simple>
            FileMovedEvent(file: ${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})
          </simple>
        </setBody>
        <to uri="activemq://events" />
      </route>
    </camelContext>
</blueprint>

Save this file in ServiceMix' deploy folder and use osgi:list to check on the bundle status as you did with the simple Camel example. You should now be able to put files in the activemq/input directory and see them being moved to activemq/output.
ServiceMix의 deploy폴더에 이 파일을 저장하라 그리고 당신이 했던 단순 Camel 예제의 번들 상태를 체크 하기 위해 osgi:list를 이용하라. 당신은 지금 activemq/input 디렉토리에 파일을 올리는 것을 할수 있게 될 것이고 그것들이 activemq/output로 이동 되는 것을 보게 될 것이다.      

Receiving the event messages(이벤트 메시지 받기)

After deploying the first XML file, you're obviously not seeing any events being logged yet. The event messages are sent to an ActiveMQ queue, but there's nobody to receive the events yet. Let's change that now by creating a second Blueprint XML file.
첫번재 XML 파일이 배포되고난 이후에 당신은 분명히 아직 어떤 이벤트가 로깅되는 것을 볼수 없을 것이다. 이 이벤트 메시지는 ActiveMQ queue에 보내진다 그러나 아직 그 이벤트를 받은 누구도 없다. 이제 두번째 Blueprint  XML 파일을 생성함으로써 지금 변경해보자 


<?xml version="1.0" encoding="UTF-8"?>
<blueprint
    xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      http://www.osgi.org/xmlns/blueprint/v1.0.0
      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
      <route>
        <from uri="activemq://events"/>
        <to uri="log:events"/>
      </route>
    </camelContext>
</blueprint>

As soon as this second file has been deployed, you'll start seeing the event messages in your log:display output.
두번째 파일이 배포되자 마자 당신은 당신의 log:display 출력에 이벤트 메시지를 보는 것을 시작하게 될 것이다.

Using the shell to manage the routes(라우터들 관를 위한 쉘 사용하기)

You can now start and stop both routes from the command shell. The important thing to note here is that you can stop the event handler route while files are being processed. As soon as you restart that bundle afterwards, you'll receive the events from all files that have been moved while the route was not running.
당신은 이제 커멘드 쉘을 통해서 라우터를 시작하고 멈출수 있다. 여기 기록하는 것이 중요한 것은 파일이 전송되는 동안 당신은 이벤트 핸들러 라우터를 멈출 수 있다. 당신이 이후 그 번들을 재시작 하자 마자 당신은 라두터가 동작하지 않는 동안 옮겨졌던 모든 파일들로 부터 이벤트를 받게 될 것이다.   


'Apache ServiceMix' 카테고리의 다른 글

ServiceMix User Guide - 소개  (0) 2014.08.11
ServiceMix Quickstart 추가 기능  (0) 2014.08.11
ServiceMix Quickstart Camel 라우팅  (0) 2014.07.29
ServiceMix Quickstart 콘솔  (0) 2014.07.29
ServiceMix Quickstart 설치  (0) 2014.07.29

[원본 출처] http://servicemix.apache.org/docs/5.0.x/quickstart/camel.html


Using Camel(Camel 사용하기)

Now that we know how to operate Apache ServiceMix through the shell console, it's time to start using it for what it is built for. Let's build our very first integration solution with a Camel route and deploy it on ServiceMix.
쉘 콘솔을 통하여 Apache ServiceMix를 어떻게 조작하는지 알게된 지금이 무엇을 빌드하기 위해 그것을 사용하는 것을 시작해야 하는 그때다. 우리의 첫번째 연계 솔루션을 Camel 라우터를 가지고 빌드 하고 그것을 ServiceMix에 배포해 보자

Our simple scenario(간단한 시나리오)

In this simple scenario, we're going to move files from an input directory calledcamel/input to an output directory called camel/output. To ensure we can keep track of which files get moved, we'll also write a message to the log file whenever we move a file.
이 단순 시나리오에서 우리는 calledcamel/input 이라는 input 디렉토리에서 camel/output 이라 불리는 output 디렉토리로 파일을 옮기게 될 것이다. 우리는 파일을 이동하는 것을 추적을 유지할 수 있도록 확인 하기 위해 우리는 또한 우리가 파일을 옮길때마다 로그 파일에 메시지를 기록 할 것이다. 

Creating the route(라우터 생성하기)

One of the most simple ways to deploy a new route on ServiceMix, is by defining the route in a Blueprint XML file.
ServiceMix에 새로운 라우터를 배포하기 위해 가장 단순한 방법중에 하나는 Blueprint  XML 파일에 라우터를 정의 하는 것에 의한 것이다.

<?xml version="1.0" encoding="UTF-8"?>
<blueprint
    xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      http://www.osgi.org/xmlns/blueprint/v1.0.0
      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
      <route>
        <from uri="file:camel/input"/>
        <log message="Moving ${file:name} to the output directory"/>
        <to uri="file:camel/output"/>
      </route>
    </camelContext>

</blueprint>

Deploying the route(라우터 배포하기)

In order to deploy and start the route, just copy the XML file you created into ServiceMix' deploy directory. The file will get picked up and deployed by ServiceMix. You will see a camel/input folder appear in your ServiceMix installation directory and any files you copy into that directory will get moved into the camel/output directory.
라우터를 배포하고 시작할 목적으로 단지 ServiceMix의 deploy 디렉토리에 당신이 만든 XML 파일을 복사하라. 그 파일은 ServiceMix에 의해 올려지고 배포 될 것이다. 당신은 SericeMix 설치 디렉토리에 camel/input 폴더가 나타나는 것을 보게 될 것이고 어떤 파일을 당신이 그 디렉토리에 복사 하게 되면 camel/output 디렉토리로 옮겨 지게 될 것이다.

If you do a log:display in the shell, you will also see the log output for every file that's been moved.
만약 당신이 쉘에서 log:display 라고 치면 당신은 또한 옮겨졌었던 모든 파일들을 위한 log 결과를 보게 될 것이다. 

Using the shell to manage the route(라우터를 관리하기 위해 쉘 사용하기)

Using osgi:list, you'll notice that your XML file has been transformed into a bundle and that the Blueprint container has been created to start your Camel route.
osgi:list 를 사용하면 당신은 당신의 XML 파일이 번들속으로 전송되었었고 Blueprint 컨테이너에 당신의 Camel 라우터가 시작하기 위해 생성되었었다는 것을 알게 될 것이다. 


From this output, you also learn that the bundle id for your XML file is 200. This allow you to start and stop the route whenever necessary. Let's give this a go now...
이번 Output으로 부터 우리는 또한 당신의 XML 파일을 위한 번들 ID가 200이라는 것을 배우게 된다. 그것은 당신이 필요할때 언제나 라우터를 시작하고 정지하는 것을 허락한다. 다음과 같이 해보자. 

First, stop the route with
먼저 다음으로 라우터를 멈추보자

karaf@root> osgi:stop 200

The route is no longer active, so any files you copy into the orders/input folder will remain there for now. As soon as you restart the route, the pending files will get moving again.
라우터는 더이상 살아있지 않다. 그래서 orders/input 폴더에 복사했던 어떤 파일들도 지금 거기에 남게 될 것이다. 당신이 라우터를 재시작하자마자 보류된 파일들이 다시 옮겨지게 될 것이다.

karaf@root> osgi:start 200


'Apache ServiceMix' 카테고리의 다른 글

ServiceMix Quickstart 추가 기능  (0) 2014.08.11
ServiceMix Quickstart ActiveMQ 추가하기  (0) 2014.07.30
ServiceMix Quickstart 콘솔  (0) 2014.07.29
ServiceMix Quickstart 설치  (0) 2014.07.29
ServiceMix Quickstart 소개  (0) 2014.07.29

[원본 출처] http://servicemix.apache.org/docs/5.0.x/quickstart/console.html


Apache ServiceMix console(Apache ServiceMix 콘솔)

Now that we successfully installed and started Apache ServiceMix, we'll take a closer look at the console. This is where you manage your ServiceMix instance, add and remove bundles, install optional features, ...
우리가 성공적으로Apache ServiceMix를 설치를 했고 시작한 지금, 우리는 콘솔로 눈이 가게 될 것이다. 당신이 당신의 ServiceMix를 어디서 관리하고 번들을 추가하고 삭제하는지 이다. 그러려면 옵션 기능을 설치하라

Working with bundles(번들 작동시키기)

When ServiceMix is first started, a whole set of bundles providing the core features for the product are being installed. Let's use the command console to find out more about them...
SerivceMix를 먼저 시작할때 프로젝트를 위한 코어기능을 제공하기 위한 번들의 전체 세트를 설치하게 될 것이다. 자 그것들에 대해 좀더 많이 알아내기 위해서는 커멘트 콘솔을 사용해보자.

The osgi:list command can be used to get a list of all bundles currently installed. Enter this
osgi:list 명령어는 현재 설치된 모든 번들의 리스트를 얻기 위해 사용할 수 있다. 이렇게 입력하라.

karaf@root> osgi:list

This is what the output looks like if you run this on your ServiceMix instance.
만약 당신이 ServiceMix 인스턴스를 실행시켰다면 아래 같은 보이는 결과를 보게 될 것이다. 

For every bundle, you see:
모든 번들에서 당신은 본다.

  • the bundle id (번들 ID)

  • the bundle state (번들 상태)

  • if the bundle contains a Blueprint or Spring XML file, the next 2 columns will show you if the beans defined there were created successfully
    만약 번들이 블루프린트나  Spring XML 파일을 포함하고 있다면 다음 2 컬럼들이 Bean들이 성공적으로 생성되었는지 정의 된 것을 보여 주게 될것이다.

  • the bundle start level (번들의 실행 수준)

  • the bundle name and version (번들의 이름과 버전)

If you're looking for something specific in the list, you can use unix-like pipes and utilities to help you. An example: to look for all Camel related bundles...
만약 당신이 이 리스트에서 무언거 특별한 것을 찾는다면 당신은 unix 처럼 pipe들과 유틸리티를 사용하여 당신을 도울 수 있을 것이다.

karaf@root> osgi:list | grep camel

Working with logging(로그 동작시키기)

Many of the applications you write will have some form of log output. To look at the message in the log file, you can us the log:diplay command.
당신이 썼던 어플리케이선의 대부분은 로그 결과물의 몇몇 형태를 가지게 될 것이다. log 파일에서 메시지를 찾기 위해 당신은 우리의 log:diplay 커멘더를 이용 할 수 있다.

karaf@root> log:display

If you're only interested in the latest exception in the log file, you can uselog:display-exception instead.
만약 당신이 단지 log 파일에서 최근 Exception 에 관심이 있다면 당신은 대신에 log:display-exception 를 사용 할 수 있다. 

karaf@root> log:display-exception

You can also change the log level at runtime by using the log:set command. You can try these commands on your instance now by first setting the log level to DEBUG and then using grep to make sure that you can actually see the extra logging.
당신은 또한 log:set 커멘더를 사용함으로써 런타임환경에서 로그 레벨을 변경 할 수 있다. 당신은 먼저 DEBUG 레벨을 설정하고 그리고 당신이 실제 추가 로깅을 볼때 확인하기 위해 grep 을 사용함으로써 현재 당신의 인스턴스에 그 커멘트들을 사용할 수 있다.

karaf@root> log:set DEBUG
karaf@root> log:display | grep DEBUG

Afterwards, revert the log level to its original INFO value again with log:set.
나중에 log:set 을 사용하여 다시 원래의 INFO 값으로 로그 레벨을 되돌린다.

karaf@root> log:set INFO

...and there's a lot more (그리고 더 많은 것들이 있다)

These are obviously just a few examples of what the command shell is all about. There are a lot more commands in the shell to help you deploy, monitor, manage and troubleshoot the applications you're building with ServiceMix.
분명히 커멘트 쉘의 모든 것에 대해 단지 몇몇 예제만 있다. 당신이 ServiceMix에 빌드된 어플리케이션을 배포, 모니터링, 관리, 문제 해결하는 것을 됩기 위한 쉘에서의 커멘더 들이 더 많이 있다. 

  


'Apache ServiceMix' 카테고리의 다른 글

ServiceMix Quickstart ActiveMQ 추가하기  (0) 2014.07.30
ServiceMix Quickstart Camel 라우팅  (0) 2014.07.29
ServiceMix Quickstart 설치  (0) 2014.07.29
ServiceMix Quickstart 소개  (0) 2014.07.29
ServiceMix 문서  (0) 2014.07.28

+ Recent posts