PowerPoint 프레젠테이션

Similar documents
PowerPoint 프레젠테이션

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

슬라이드 1

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

[Brochure] KOR_TunA

Intro to Servlet, EJB, JSP, WS

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint 프레젠테이션

Microsoft Word - src.doc

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

Spring Boot

No Slide Title

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

untitled

Microsoft PowerPoint - CSharp-10-예외처리

슬라이드 1

Apache Ivy

슬라이드 1

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint 프레젠테이션

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

[Brochure] KOR_LENA WAS_

PowerPoint 프레젠테이션

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

TTA Journal No.157_서체변경.indd

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

문서의 제목 나눔고딕B, 54pt

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.


PowerPoint 프레젠테이션

The Pocket Guide to TCP/IP Sockets: C Version

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

JVM 메모리구조

PowerPoint 프레젠테이션

PowerPoint Presentation

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft PowerPoint - chap01-C언어개요.pptx

Interstage5 SOAP서비스 설정 가이드

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

J2EE & Web Services iSeminar

DE1-SoC Board

슬라이드 1

본 강의에 들어가기 전

Microsoft Word - CPL-TR OM2M.doc

PowerPoint 프레젠테이션

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

<4D F736F F F696E74202D20B9DDB5B5C3BC20C0AFC6BFB8AEC6BC20B8F0B4CFC5CDB8B520BDC3BDBAC5DB5F E BC8A3C8AF20B8F0B5E55D>

쉽게 풀어쓴 C 프로그래밊

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r


서현수

Microsoft PowerPoint - 04-UDP Programming.ppt

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Sun Java System Messaging Server 63 64

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

ibmdw_rest_v1.0.ppt

DBMS & SQL Server Installation Database Laboratory

CODESYS 런타임 설치과정

슬라이드 1

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

PowerPoint 프레젠테이션

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

문서의 제목 나눔고딕B, 54pt

4S 1차년도 평가 발표자료

쉽게 풀어쓴 C 프로그래밍

Agenda Red Hat JBoss Fuse 연계사례 Lessons Learned

PowerPoint Presentation

¾Æ½Ã¾ÆÀú³Î8È£-ÅëÇÕ

Microsoft PowerPoint App Fundamentals[Part1].pptx

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

PowerPoint Template

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Samsung SDS Enterprise Cloud Networking CDN Load Balancer WAN

슬라이드 1

Network Programming

게시판 스팸 실시간 차단 시스템

歯CRM개괄_허순영.PDF

Chapter 1

RHEV 2.2 인증서 만료 확인 및 갱신

2장 변수와 프로시저 작성하기


문서의 제목 나눔고딕B, 54pt

SANsymphony-V

문서의 제목 나눔고딕B, 54pt

PowerPoint 프레젠테이션

Google Maps Android API v2

Microsoft Word - Armjtag_문서1.doc

[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Su

슬라이드 1

JDK이클립스

Transcription:

공개 SW 솔루션설치 & 활용가이드 시스템 SW > 분산시스템 SW 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide

CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 주요기능 6. 활용예제 7. FAQ 8. 용어정리

- 3-1. 개요 소개 주요기능 EIP(Enterprise Integration Patterns) 기반의오픈소스통합연계프레임워크 CAMEL(Concise Application Message Exchange Language) 은복잡한라우팅규칙을정의하는통합을위한언어 Camel 프로젝트는 2007 년에 Apache 2 오픈소스라이선스로시작하여강력한커뮤니티를기반으로 Integration 분야에서유명한프로젝트 통합연계라우팅엔진 ( 라이브러리 ) EIP 연계패턴을내부구현하였으며다양한 DSL 을통해서조합가능 라우팅을위해서다양한언어로구현된 DSL 지원 다양한연계컴포넌트가구현되어있고사용가능 (150+) 대분류 시스템 SW 소분류 분산시스템 SW 라이선스형태 Apache 2 사전설치솔루션 JAVA 1.8 이상 운영제제 Cross-platform 버전 2.22.0 특징보안취약점개발회사 / 커뮤니티공식홈페이지 EIP 연계패턴구현 DSL(Domain specific Lanaguage) 지원 Java, XML, Scala, Groovy 등지원 특정컨테이너나프레임워크의의존성없음 (Ligithweight 로마이크로서비스형태로서비스가능 ) 취약점 ID : CVE-2018-8027 심각도 : 9.8 CRITICAL(V3) 취약점설명 : Apache Camel 의코어는 XSD 유효성검사프로세서에서 XXE 에취약 대응방안 : 2.20.4 이상, 2.21.1 이상으로업그레이드 참고경로 : http://camel.apache.org/security-advisories.data/cve-2018-8027.txt.asc Apache Software Foundation http://camel.apache.org

- 4-2. 기능요약 통합연계라우팅엔진 Camel 은메시지라우팅연계엔진 다양한프로토콜, 메시지를통합하여일관된인터페이스로처리가능 EIP (Enterprise Integration Patterns) 구현 기업연계패턴을분석하여패턴화시킨것이 EIP 패턴임 Camel 을통하여 EIP 패턴에기반하여다양한연계유형을조립하여구성할수있음 DSL (Domain Specific Language) 지원 메시지라우팅및메시지프로세싱을다양한언어로기술할수있도록함 Java, XML, Groovy, Scalar, Kotlin( 진행중 ) 등다앙햔언어지원 다양한연계컴포넌트 (150+), 메시지변환프로세서제공 다양한연계컴포넌트, 메시지변환프로세스가제작되어포함되어있음 필요시사용자컴포넌트를제작하여함께구동시킬수있음 Lightwight core 라이브러리모듈 Camel core 모듈은 4M 정도의라이브러리형태로가벼움 다양한컨테이너에포함되어구동될수있고마이크로서비스형태의서비스가가능함

2. 기능요약 - 5 -

2. 기능요약 Apache Camel 구조 라우트 (Route) 컴포넌트, 프로세서들의연속적인메시지연결의정의다. 시스템간혹은시스템내부에서정의된메시지연결플로우로메시지가어디서 / 어떻게 / 어디로흘러갈지정의한다. Camel 라우트는메시지플로우가 1:1 혹은 1:N, N:1 등다양하게정의될수있다. 컴포넌트 (Component) Endpoint URL 을가지는 Camel 이메시지를라우팅할수있는프로그램단위다. 통신프로토콜을구현한컴포넌트, 파일시스템연동을구현한컴포넌트등다양한컴포넌트가있다. Camel 내부에미리구현된컴포넌트가 150 여종이있으며사용자가새로만들어끼워넣을수있다. 프로세서 (Processor) 프로세서는 Camel 내부에서메시지를생성, 변환, 수정, 검증등의작업을하여다른컴포넌트로라우팅하는모듈이다. Camel 은 EIP 패턴에의한메시지프로세싱을지원한다. - 6 -

2. 기능요약 Apache Camel 구조 CamelContext Camel 의핵심런타임 API 로컴포넌트, 프로서서, EndPoint, 데이터타입, 라우팅등을관리한다. CamleContext 에의해서다양한모듈이로딩되고관리된다. DSL(Domain Specific Language) 컴포넌트와프로세서를통하여라우트구성을정의하기위해서사용하는언어다. Camel 은 Java, Spring XML, Scala, Groovy 등다양한언어형태를지원한다. EndPoint Producer DSL 을통하여다양한동적라우팅및메시지변환등프로그래밍요소를삽입하여사용가능하다. Camel 컴포넌트의주소를나타내며 URI 형태로기술한다. 라우팅을기술하기위해서컴포넌트의 Endpoint 를기술한다. Endpoint 에메시지를생성, 전달할수있는개체다. Consumer Producer 에의해생성된메시지를수신하는개체, 수신후 Exchange 를생성하여라우터에던져준다. - 7 -

- 8-3. 실행환경 설치요구사항 Java 응용프로그램에쉽게포함될수있도록최소한의종속성을가진라이브러리 (Camel core Module 4M) Java 1.8 이상설치환경 다양한표준화기술을같이활용하여환경구축지원 - Apache ServiceMix - 널리사용되는분산형오픈소스 ESB 및 JBI 컨테이너 - Apache ActiveMQ: 많은시스템에서사용하고안정적이고신뢰할수있는 Message Broker - Apache CXF: Smart web services 지원 (JAX-WS and JAX-RS) - Apache Karaf: OSGi Platform으로서모든종류의 Application을운영할수있으며 Bundle단위 Life Cycle을관리 (Run-Time환경에서 Bundle단위로 Install, Uninstall, Start, Stop) - Apache MINA: 높은성능을보장하는 NIO-driven networking 서비스지원

- 9-4. 설치및실행 세부목차 3.1 다운받기 3.2 개발환경설치 3.3 Maven build

- 12-4. 설치및실행 4.1 다운받기 Apache Camel WEB site - http://camel.apache.org/download.html IDE Tool(eclips or STS) install - http://www.springsource.org/springsource-tool-suite-download/ Maven install - STS 사용시 maven 이기본탑재되어생략가능한단계이다. JDK install - http://www.oracle.com/technetwork/java/javase/downloads/index.html

- 14-4. 설치및실행 4.2 개발환경설치 해당압축파일을푼후이클립스프로젝트에넣는다. 프로젝트의 Build Path 에필요한라이브러리를추가한다. 혹은 Maven 이설치되어있을경우 pom.xml 에해당라이브러리를명시해준다.

4. 설치및실행 4.3 Maven Build Maven http://camel.apache.org/running-examples.html url 에서 Camel 에대한 Maven 실행법을알수있다. 실행하기전에 pom.xml 을확인하여야한다. Maven 을설치한후다운받은 Camel 예제를실행하는방법이다. # 예제를실행할폴더로이동후 Camel#> mvn exec:java #spring base 의예제를실행할경우 Camel#> camel:run 다음은 IDE 에서 Maven 을사용하는방법이다. mvn idea:idea 다음은이클립스에서사용하는방법이다. mvn eclipse:eclipse - 14 -

- 13-5. 기능소개 세부목차 5.1 기본아키텍처 5.2 메시지 (Message) 5.3 메시지교환 (Exchange) 5.4 라우트 (Route) 5.5 컴포넌트 (Component) 5.6 엔드포인트 (Endpoint) 5.7 프로세서 (Processor) 5.8 생성자 (Producer)/ 소비자 (Consumer)

- 14-5. 기능소개 5.1 기본아키텍처 [ CAMEL 기본아키텍처 ] 출처 : Camel in Action (manning)

- 15-5. 기능소개 5.2 메시지 (Message) 메시지개념 EIP에정의된메시지는메시징채널을사용할때시스템이서로통신하기위해사용하는엔티티 메시지는송신측에서수신측으로방향성이정해짐 메시지는다양한전송프로토콜에의해서다양한포맷으로생성되나 Camel은헤더 (Header), 첨부 (Attachments), 본문 (body) 로표준화시켜서관리함. 메시지는 java.lang.string 유형의식별자로고유하게식별됨

5. 기능소개 5.3 메시지교환 (Exchange) Exchange 개념 Exchange는 Camel 내부에서사용하는메시지의컨테이너모델 Message Exchange Patterns (MEPs) 에의해서정의 InOnly 또는 InOut 메시징스타일을사용하는지메시징교환패턴정보가짐 InOnly - 단방향메시지 ( 이벤트메시지 ). 예를들어, JMS 메시징은보통단방향메시징 InOut - 요청 - 응답메시지. 예를들어, HTTP 기반전송은클라이언트가웹페이지를검색하고서버의응답을기다리면서요청하는경우가많음 Exchange ID : 교환을식별하는고유 ID. 명시적으로제공되지않으면기본적으로자동생성됨 InOnly InOut - 16 -

5. 기능소개 5.4 라우트 (Route)(1/2) 라우트개념 하나의시스템간연동인터페이스를정의 예로시스템 A에서 B로웹서비스를이용해서연동을했다면이것이하나의 Route가됨 1:1 관계, 1:N관계, N:1 등다양한관계지원 CamelContext에의해서다수의 route가관리되며각각 DSL(domain specific Language) 에의해서기술됨 - 17 -

5. 기능소개 5.4 라우트 (Route)(2/2) 라우트기술 (DSL) 라우트는 DSL (Domain specific Language) 에의해서기술됨 같은내용을 Java, XML, Scalar, Groovy 등의언어를통해서기술가능 Java DSL 를통한라우트설정 XML DSL 를통한라우트설정 - 18 -

5. 기능소개 5.5 컴포넌트 (Component)(1/2) 컴포넌트개념 어댑터의개념으로각컴포넌트는 Endpoint URI 를생성함 Camel 내에서는 URI 를통해서각각의컴포넌트를인식함 컴포넌트는송신시스템으로부터메시지를읽어오며 ( 소비자역할 ), 수신시스템으로메시지를전송 ( 생상자역할 ) 하는역할수행 예를들어송신시스템을 FTP 로연동하고싶으면 FTP Conponent, JDBC 로연동하고싶으면 JDBC 컴포넌트를사용 컴포넌트는클래스패스에의해서자동으로등록가능하며 API 를통한등록도가능함 - 19 -

- 20-5. 기능소개 5.5 컴포넌트 (Component)(2/2) Camel 은미리구현된 150 개이상의다양한컴포넌트구현체가있음 다양한상용 / 공개소프트웨어와연동이가능하며연계프로토콜구현체를컴포넌트로사용가능 라우터설정시해당컴포넌트의 URI 를통해서호출함 컴포넌트 ArtifactId URI AMQP camel-amqp amqp:[queue: topic:]destinationname[?options] AWS-EC2 camel-aws aws-ec2://label[?options] Bean camel-core bean:beanname[?options] CXF camel-cxf cxf:<bean:cxfendpoint //someaddress>[?options] FTP camel-ftp ftp:contextpath[?options] Git camel-git git:localrepositorypath[?options] Google Drive camel-google-drive google-drive://endpoint-prefix/endpoint?[options] HTTP camel-http http:hostname[:port][/resourceuri][?options] JMS camel-jms jms:[queue: topic:]destinationname[?options]

5. 기능소개 5.6 엔드포인트 (Endpoint) Endpoint 개념 시스템은채널을통하여메시지를송수신가능 Endpoint는채널의끝을모델링하여추상화한것으로컴포넌트에의해서생성됨 시스템들을통합하게해주는중립적인인터페이스역할 생산자와소비자를생성하는팩토리역할을수행 URI는 Scheme, Context Path, Options으로구성됨. Endpoint 구성 ( 예 ) file://input?noop=true Scheme ( 컴포넌트식별자 Context path ( 내용기술 ) Options ( 옵션 ) - 21 -

- 22-5. 기능소개 5.7 프로세서 (Processor)(1/2) Processor 의개념 시스템간의연동에는메시지를받을후에수신시스템으로보내기전에처리수행 송신시스템으로부터받은메시지를수신시스템에보내기전에처리를수행하는부분을 Processor라함 EIP에정의된라우팅 (Routing), 메시지변환 (Transformation), 메시지중계 (Mediation), 검증 (Valiadtion) 등이구현되어있고사용자정의 processor를구현할수있음

- 23-5. 기능소개 5.7 프로세서 (Processor)(2/2) 메시지변환 포맷변환 (Format Transformation) : 메시지의포맷을변경하는작업수행 JAXB JSON Google ProtoBuf HL7 EDI/CSV 등 타입변환 (TypeConverter) : 데이터의타입을변경하는작업을수행 File String byte[] InputStream/OutputStream Document/Source (XML) 등

5. 기능소개 5.8 소비자 / 생산자 (Consumer/Producer) 소비자 (Consumer) 개념 생성자로부터메시지를수신후 Exchange 를생성하여 Camel 내부로전달이때메시지객체가새로생성 소비자에는두가지모델존재 - Event-driven consumers 웹서비스와같이 Consumer는특별한메시징채널 (TCP/IP,JMS..) 을통해클라이언트가메시지를보내는것을기다림 ( 웹서비스, HTTP, RMI 등 ) - Polling consumers 스케줄을통해주기적으로메시지를가져감, 단이전메시지가처리완료되지않았다면 메시지를가져가지않음 (FTP, Email, File 등 ) 추가적으로 생상자 (Producer) 개념 Endpoint 에메시지를생성, 전달할수있는개체 - 24 -

- 25-6. 활용예제 세부목차 6.1 Java DSL 을통한파일이동 6.2 Spring DSL 을통한 SFTP 파일업로드 6.3 Spring DSL 을통한 HTTP File 전송예제

- 26-6. 활용예제 6.1 Java DSL 을통한파일이동 (1/3) 1. 프로그램개요 Camel 을이용하여특정디렉터리폴더의파일을폴링하여파일이존재하면다른디렉터리로 복사하여이동한다.

- 27-6. 활용예제 6.1 Java DSL 을통한파일이동 (2/3) 2. RouteBuilder 클래스작성 CamelRouteBuilder.java CamelRouteBuilder.java 클래스작성 JAVA DSL을통해라우팅설정 RouteBuilder 클래스를상속하여 configure() 메서드를구현하여작성 라우팅설정은 from ( ) - to( ) 메시드체인을통해서구현 file:// uri 를통하여파일디렉터리관련컴포넌트를사용 라우팅이 from input 폴더를폴링후파일이있을시에 to output 폴더로보내주는라우팅설정

- 28-6. 활용예제 6.1 Java DSL 을통한파일이동 (3/3) 3. 메인프로그램작성 FileRouter.java 메인실행클래스작성 Camel Context 구현체중 default 구현체를이용하여 Camel 엔진을구동 이전장에서구현한 CamelRouteBuilder 클래스의인스턴스를 addroutes() 메서드를통하여 CamelContext에라우트추가 프로그램을실행하면 Input 폴더의파일들이 Output 폴더로이동한다. FileRouter.java

- 29-6. 활용예제 6.2 Spring DSL 을통한 SFTP 예제 (1/4) 1. 프로그램개요 Camel 을이용하여특정디렉터를폴링하여파일이존재하면 SFTP 프로토콜을이용하여 파일전송한다. ( 전송도중전송파일의크기로깅 )

- 30-6. 활용예제 6.2 Spring DSL 을통한 SFTP 예제 (2/4) 2. Routing XML 파일생성 XML DSL (Spring DSL) 을통하여라우팅설정 (sftp_client.xml 파일생성 ) 라우팅설정은 XML 내의 <route> 엘리먼트내애서 <from url = > <to url= > 를이용하여설정 from의설정은 File 컴포넌트 (file://) 를이용하고 to 설정은 SFTP 컴포넌트 (sftp://) 이용 from과 to 사이의 process 엘리먼트를설정하여파일로깅을위한프로세서설정 <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" 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.xsd"> <!-- 중간단계에서데이터처리를위해사용할프로세서 bean 지정 --> <bean name="measureservice" class="kr.co.bizframe.camel.test.processor.testmeasureprocessor" /> <camelcontext xmlns="http://camel.apache.org/schema/spring"> <route id="filetest1"> <! 시작부분 --> <from uri=file://input?noop=true/> <process ref="measureservice"/> <! 수신부분 --> <to uri="sftp:// 계정명 @ 주소 : 포트 /camel_test/output?password= 비밀번호 "/> </route> </camelcontext> </beans> sftp_client.xml

- 31-6. 활용예제 6.2 Spring DSL 을통한 SFTP 예제 (3/4) 3. 메인프로그램작성 FtpClient.java라는클래스작성 CamelContext를 Spring에서이용하기위해서래핑한클래스인 rg.apache.camel.spring.main 클래스를통하여 CamelContext 이용 앞서작성한 sftp_client.xml을 Main 인스턴스의 setapplicationcontexturi() 메서드를통하여라우팅설정 해당프로그램을실행하면 input 폴더의파일을 sftp로파일이업로드되는것을볼수있음 FtpClient.java

- 32-6. 활용예제 6.2 Spring DSL 을통한 SFTP 예제 (4/4) 4. 프로세서프로그램작성 MessureProcessor.java MeasureProcessor.java는 Camel의사용자정의프로세서에해당 해당예제는파일에대한크기를로깅하는프로세스 Process() 메서드내에서원하는로직을추가가능 ( 로깅, 변환 ) sftp_client.xml 파일내에서 <process ref="measureservice"/> 로 <from> <to> 사이에정해주면해당프로세서가실행

- 33-6. 활용예제 6.3 Spring DSL 을통한 http 파일전송 1. 프로그램개요 HTTP 프로토콜을이용하여클라이언트에서서버로파일을전송하는프로그램으로클라이언트, 서버 각각 camel 을이용하여구현한다.

- 34-6. 활용예제 6.3 Spring DSL 을통한 http 파일전송 ( 송신 )(1/2) 1. 송신 ( 클라이언트 ) 측 Routing xml 생성 XML DSL (Spring DSL) 을이용하여라우팅설정 (http_client.xml 파일생성 ) 라우팅설정은 XML 내의 <route> 엘리먼트내애서 <from url = > <to url= > 를이용하여설정 from의설정은 File 컴포넌트 (file://) 를이용하고 to 설정은 HTTP 컴포넌트 (http://) 를이용 to 부분에파일을보낼서버의 HTTP endpoint 입력 <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" 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.xsd"> <!-- 파일용량체크프로세서선언 --> <bean name="measureservice" class= kr.co.nipa.camel.processor.measureprocessor" /> <camelcontext xmlns="http://camel.apache.org/schema/spring"> <route id="filetest"> <from uri="file://input?noop=true" /> <process ref="measureservice"/> <to uri="http://camel.nipa.or.kr:10022/myservice/"/> </route> </camelcontext> </beans> http_client.xml

- 35-6. 활용예제 6.3 Spring DSL 을통한 http 파일전송 ( 송신 )(2/2) 2. 송신 ( 클라이언트 ) 측메인프로그램작성 HttpClient.java라는클래스작성 CamelContext를 Spring에서이용하기위해서래핑한클래스인 org.apache.camel.spring.main 클래스를이용하여 CamelContext를이용 앞서작성한 http_client.xml을 Main의 application context 에설정하여라우팅을설정 해당프로그램을실행하면 input 폴더의파일을 HTTP 프로토콜을이용하여서버로전송 HttpClient.java

- 36-6. 활용예제 6.3 Spring DSL 을통한 http 파일전송 ( 수신 )(1/2) 1. 수신 ( 서버 ) 측 Routing xml 생성 XML DSL (Spring DSL) 을이용하여라우팅설정 (http_server.xml 파일생성 ) 라우팅설정은 XML 내의 <route> 엘리먼트내애서 <from url = > <to url= > 를이용하여설정 From 부분에 jetty 컴포넌트 (HTTP 서블릿컴포넌트 ) 를사용하여 HTTP 서버설정 To 부분은파일컴포넌트를사용하여파일을받아서처리할디렉터리설정 <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" 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.xsd"> <!-- 파일용량체크프로세서선언 --> <bean name="measureservice" class= kr.co.nipa.camel.processor.measureprocessor" /> <camelcontext id="camel" xmlns="http://camel.apache.org/schema/spring"> <!--http server--> <route id="server_http"> <!--jetty Conponent 를사용해 http 서버로드 --> <from uri="jetty:http://camel.nipa.or.kr:10022/myservice/"/> <!-- 파일용량체크프로세서 --> <process ref="measureservice"/> <!-- 수신어플리케이션 Endpoint--> <to uri="file://receive"/> </route> </camelcontext> </beans> http_server.xml

- 37-6. 활용예제 6.3 Spring DSL 을통한 http 파일전송 ( 수신 )(2/2) 2. 수신 ( 서버 ) 측메인프로그램작성 HttpServer.java라는클래스작성 CamelContext를 Spring에서이용하기위해서래핑한클래스인 org.apache.camel.spring.main 클래스를이용하여 CamelContext를사용 앞서작성한 http_server.xml을 Main의 application context 에설정하여라우팅을설정 해당프로그램을실행하면 HTTP 클라이언트로부터 HTTP 프로토콜을통해전송받은파일을 receiver 디렉터리로파일을이동하여생성시킴 HttpServer.java

- 38-7. FAQ Q Camel 은 ESB 인가요? & A Camel 자체는 ESB라고부르기어려우며메시지라우팅엔진라이브러리라고보시면됩니다. 물론 ESB의주요엔진으로사용될수있고 Camel을이용하여간단한 ESB 뿐만아니라모니터리어, HA 기능을추가하여엔터프라이급 ESB로사용도가능합니다. Q Camel을사용시라이선스는어떻게되나요? & A Camel의라이선스는무료입니다. 다만, 기술지원서비스 ( 개발지원서비스, 유지관리서비스 ) 가필요하신사용자는 Camel에대해서컨설팅을제공하는업체를선택하여기술지원을받을수있습니다.

- 39-8. 용어정리 용어 설명 ESB (Enterprise Service Bus) 서비스들을컴포넌트화된논리적집합으로묶는핵심미들웨어이며, 비즈니스프로세스환경에맞게설계및전개할수있는아키텍처패턴 ActiveMQ Router JMS (Java Messaging Service) Maven JMS ( Java Message Service ) 클라이언트와함께 Java 로작성된오픈소스메시지브로커 둘혹은그이상의네트워크와네트워크간데이터전송을위해최적경로를설정해주며데이터를해당경로를따라한통신망에서다른통신망으로통신할수있도록도와주는인터넷접속장비 자바프로그램이네트워크를통해데이터를송수신하는자바 API 자바프로젝트를위한자동빌드툴로아파치라이선스로배포

Open Source Software Installation & Application Guide 이저작물은크리에이티브커먼즈저작자표시 2. 0 대한민국라이선스에따라이용하실수있습니다.