[원본 출처] 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를 사용하여 로그인 할 수 있을 것이다. 웹콘솔로 부터 당신은 당신의 번들을 시작하고 멈출수 있고 다시 추가 기능을 설치 할수 있다.


+ Recent posts