Sanggu's blog




최상단 광고 코드

 추천 사이트

 애자일 이야기 : http://agile.egloos.com
 서명덕 기자의 인터넷 : http://itviewpoint.com
 비지니스 뉴스 : http://www.ciobiz.co.kr
 MOCOMSYS : http://www.mocomsys.com
 Apache Software : http://www.apache.org
 소프트웨어 기술경력관리: http://career.sw.or.kr
 한이음 (지식경제부): http://www.hanium.or.kr
 IT 기술 뉴스: http://www.bloter.net/
 IBM 티볼리 까페: http://cafe.naver.com/tivolitool.cafe
 JAVA jar 검색 : http://www.findjar.com
 VM Ware 가상화: http://www.vmware.com

2011년 10월 16일 일요일

SAP java 프로그래밍

1. SAP 배경 (위키피디아)
SAP[쌥]은 1972년 독일 만하임에서 다섯 명의 전직 IBM 출신 엔지니어가 설립한 회사로 업무용 애플리케이션 소프트웨어 분야에서 전세계 가장 큰 시장 점유율과 기술 선도적인 업체이다. SAP은 데이터베이스를 이용하여 통합된 업무용 애플리케이션을 개발하였으며, 오늘날 IBM 이나 마이크로소프트 등과 같은 많은 기업들이 SAP 제품을 사용한다.
SAP의 최근 제품인 R/3는 재무, 인사, 제조, 영업, 물류/유통, 설비 및 공사관리 기능뿐만 아니라 문서들이 자동적으로 사용자들에게 전달되는 워크플로우 기능도 제공한다. 또한 기술적으로 클라이언트/서버 모델을 채용하였으며, 윈도우 NT부터 IBM 메인프레임에 이르는 대부분의 운영체계 플랫폼을 지원한다. R/3의 최근 버전은 인터넷을 지원하기도 한다.
현재 SAP은 산업별 솔루션, 비즈니스 웨어하우스(Business Warehouse), 고객관계관리(CRM)와 같은 특성화된 제품 개발과 비즈니스 파트너와의 업무협조를 통해 R/3를 공급하면서 고객을 위한 성공적이고 효율적인 비즈니스 프로세서 리엔지니어링을 실현하고 있다.
 
1998년 5월 기준으로 SAP의 종업원 수는 전세계 50여 개국 15,000여 명이며 15,000개 이상의 사이트에 R/3가 설치되었다.

2.  SAP JAVA 라이브러리 다운로드

JCO라이브러리는 http://service.sap.com/connectors 에서 다운로드 할 수 있고, 다운로드 하기 위해서는
SAP 고객 및 파트너로서 사용자 아이디가  필요 합니다.
1) WINDOWS 계열
   _client.setConnectionInfo(info);
  _client.connect();
  _client.execute("BAPI_COMPANYCODE_GETLIST");
  _client.disconnect();
  Jco 2.0 JDK1.2 이상이 설치되어 있어야 한다. SAP 4.0, 4.5, 4.6, 6.20 을 지원함
다음 설치는 Window 32 플랫폼을 기준으로 설명하고 있다. 다른 플랫폼의 설치 방법은 해당 플랫폼 JCO에 포함되어 있습니다.
 JCO 압축 파일을  풀기위한 디렉토리를 생성하고 압축을 푼다
   JCO루트 디렉토리로 부터 librfc32.dll 파일을 C:\WINDOWS\SYSTEM32 에 복사한다.
   JCO루트 디렉토리로 부터 sapjcorfc.dll 파일을 C:\WINDOWS\SYSTEM32 에 복사한다.
   Sapjco.jar 파일을 IntegrationWorkbench\common\lib에 복사해 넣는다
   Sapjco.jar 파일을 agent\runtime\lib\ext 에 복사해 넣는다.
   IntegrationWorkbench설치디렉토리의 IntegrationWorkbench5.lax파일내의 속성 lax.class.path  common/lib/sapjco.jar과 같이 sapjco.jar 경로를 추가해준다
SAP어댑터 작동시 (RFC함수 이름을 가져온다거나) 검색버튼을 눌러도 아무런 반응이 없을때는 msvcp71.dll, msvcr71.dll, msvcrt.dll 파일을 Windosw\System32 아래에 복사해 놓고 IntegrationWorkbench를 닫았다가 다시 시작해 본다.
-배포를 위한 JCO zip 파일
  sapjco.jar
  librfc32.dll
  sapjcorfc.dll

3. SAP JAVA 프로그래밍
   간단하게 생각해서 SAP에 접속하여 RFC 함수를 Call 하는 것입니다.
   Call로 인하여 원하는 데이터 값을 가져올 수 있습니다.

 필요한 property
 * CLIENT
 * USER
 * PASSWD
 * LANG
 * HOST
 * RFCNAME
 * PORT

method
   _client.setConnectionInfo(info);
   _client.connect();
   _client.execute("BAPI_COMPANYCODE_GETLIST");
   _client.disconnect();

2011년 10월 14일 금요일

FM2012 출시일

WOW! 드디어 FM2012  출시일이 10월 21일날 이라고 합니다.
기본은 FM2011과 비슷하지만 좀더 그래픽 향상, 추가 기능 및 매치엔진쪽 강화됬다고 합니다. 또한 22000몀의 선수 데이터를 가지고 있고.
벌써 흥분 되기 시작하네요~


관심있으신 분들은 아래 FM2012 홈페이지에서 Demo 받아서 즐겜 하시기 바랍니다.
http://www.footballmanager.com/

이번엔 어떤 유망주를 데려다 키워야 할지..^^

CXF client 생성 방법

1. CXF 란?
웹 서비스를 쉽게 구현해주기 위한 apache에서 제공하는  하나의 플랫폼이라고 생각하면 됩니다.
예를 들어 ) 어느 기관에 웹서비스 provider가 존재하고, 우리는 그 provider에서 데이터를 가져오기 위한 client (consumer)를 만든다면 CXF를 이용하는 것은 좋은 선택입니다.
먼저 CXF를 사용하기 위해서는 홈페이지에서 CXF platform을 다운 받아 봅시다.

2. CXF 다운로드
CXF 홈페이지 다운로드  http://cxf.apache.org/download.html


Binary 로 되어 있는 apache-cxf-2.4.3.zip을 다운받습니다.
다운 받은 후 적당한 위치에 압축을 풀면 됩니다.

3. WSDL로 client stub 만들기
위에서 말씀드렸듯이 기관에서 provider를 만들었다면 반드시 WSDL을 제공하게 됩니다.
WSDL은 Web Service Description Language로서 웹서비스에서 주고 받을 (request 파라미터, response parameter) 파라미터 및 provider의 URI, port 등 형식에 대해 정의가 되어 있는 명세서를 나타냅니다. 그러한 WSDL을 가지고 java에서 사용할 수 있는 API를 뽑아내는 것이 stub 입니다. java에 맞는 stub을 뽑아내야 programing을 할 수 있으니까요.

1) WSDL을 자신의 컴퓨터 적당한 위치에 놓습니다.
2) CXF 압축 푼 이름이 apache-cxf 라면 apache-cxf/bin 디렉토리에 들어갑니다.
3) command 창에서 아래와 같이 명령을 내립니다.
    WSDL이름이 test.wsdl이라면..

D:\apache-cxf\bin>wsdl2java –client test.wsdl

D:\apache-cxf\bin>


4) bin 디렉토리에 폴더가 생기며 그 폴더 안에 stub Class 들이 여러개 만들어 질 것입니다.
이렇게 하면 stub 이 생긴것입니다.

4. Client programing
stub이 생성됬음으로 java programing을 예를 들면 eclipse에서 한다면 그 폴더 통채로 프로젝트 내부에 가져다 놓으면 됩니다. 그리고 programing을 하시면 됩니다.

다음엔 CXF programing 방법에 대해 자세히 설명하도록 하겠습니다.

linux 커널 버전 확인

centOS 및 여러 linux 시스템에서 커널 버전 확인 간단히 알 수 있습니다.
명령어 uname -a

해당 결과값은
Linux 호스트 이름 메이저버전.마이너 버전 패치 버전 및 설치 날짜 bit 수에 관련된 정보가 나옵니다.

위의 커널버전은 2.6.18 이라고 부릅니다.

커널 버전의 용어
  • 메이저 버전 :  엔진 kernel의 획기적인 변화가 있을 경우 . 현재는 2버전입니다.
  • 마이너 버전 : 큰 변경 없이 버그 수정 및 기능 적 추가 있을 경우 마이너 버전입니다.
  • 패치 버전 :  기능은 변화없이 수정이 나타날 경우 패치버전을 씁니다.

MCI (Multi Channel Integration) 소개 및 구성

1. MCI 및 EAI 배경
몇년전만 해도 금융권 차세대 프로젝트는 EAI , MCI (대외계 포함) 는 각각의 진행 사항으로 여겨왔으나 현재는 MCI + EAI 포함으로 프로젝트가 진행되고 있다. 이에 따라 기존의 EAI를 주로 한 회사들은 MCI 를 포함한 대외계까지 준비를 해야 하며, 기존의 EAI에서 필요치 않은 기능 리스트들의 구현 및 솔루션에 대해 만들고 있다.

2. MCI 및 EAI 구성
MCI는 크게 대내 MCI, 대외 MCI 로 나눌 수 있으나, 프로젝트시에는 동시에 진행 한다는 것을 염두해 둬야 한다.
  • 대내 MCI : 금융권에서 대내 MCI는 영업점 단말, 인터넷, 스마트폰 및 자동화기기등 고객과의 접점 연계를 대내 MCI라고 한다.
  • 대외 MCI : 카드사, 보험업계 및 VAN 사와 같은 대외기관을 대외 MCI라고 한다.
  • EAI : 대내 MCI 또는 대외 MCI 의 채널 내부(계정계, 카드계)로 들어온 데이터의 필요한 정보를 전문변환 또는 라우팅으로 가공하여 새로운 데이터를 생성해내는 부분을 EAI라고 한다.

3. MCI에 필요한 기능 리스트
   * MCI의 프로토콜은 EAI의 DB, File, SAP 등과 달리 X.25, Socket, HTTP, Soap 프로토콜을 사용하는것이 일반적이다.  또한 회선관리, 암복호화, 장애 및 통보등은 필수적이다. 아래는 기능별로 list를 한 부분이다.

-대외전문관리
-대외전문변환(표준전문<->대외전문)
-메시지 유효성 검사
-메시지 조회 및 추적(전문로깅, 거래메시지 trace, 에러로깅)
-회선 별 집계
-B2Bi(ebXML, RosettaNet, EDI )
-타발/당발 요청 시뮬레이터
-당발 요청 시뮬레이터
-재처리 및 오류 처리
-채번/결번 관리
-센터컷 처리 기능
-개시전문/마감전문  스케쥴러
- 영업일 관리
- 시뮬레이터 : 키 값에 대한 리턴 기능, 응답전문 변환, 지연응답등 즉, request 전문일경우 response 응답에 해당하는 메시지를 보냄.
     
4. MCI 대외계 및 EAI 연계 전체 구성도


      위의 그림처럼 채널 BP사 및 대외기관들은 Socket, X.25, Soap 프로토콜을 사용하여 전문들을 채널을 통해 기관내부로 들어옵니다. 채널로 들어온 데이터를 필요로 하는 기관 내부와 연계하여 사용하는 부분이 EAI가 하는 역할 입니다.

5. 프로젝트 기간
금융권 프로젝트 기간은 최소 1년 이며 길게는 2년까지 이루어 집니다. 각 벤더 사들의 비표준, 표준 전문 개발 및 테스트가 가장 오래걸리게 되며 핵심입니다. 런타임 (트랜잭션 처리)은 가장 중요하며 이를 제외하고 전문 테스트 시뮬레이터를 제대로 갖고 있을 수록 프로젝트의 성패를 좌우 합니다.

2011년 10월 13일 목요일

JAVA encoding UTF-8

1. String object의 UTF-8 encoding
JAVA code 상에서 String을 UTF-8로 encoding 하는 부분이 가장 많습니다.
 그 이유는 모든 문자열을 처리하기 위해서는 UTF-8만큼 좋은 것이 없기 때문입니다.
String encoding처리 로직은 2줄로 가능합니다.


String -> UTF-8 바이트로 변환 -> String 변환

2. XML encoding을 UTF-8로 변환
    xml 헤더의 encoding을 정의는 XML 문서에 필수 입니다. 다음은 XML 헤더 encoding을 추가 하는 방법에 대해 알아 보겠습니다.
 JDK 1.5 이상부터는 Format class 가 생겼습니다. format 인스턴스에 setEncoding 메소드로 해당 encoding charset을 넣어 주시면 됩니다.

아래는 위의 테스트 코드를 Junit으로 나타낸 결과 입니다.



컴퓨터공학과 커리큘럼

 IT 일을 하기 위해서는 이전 대학때의 이론적인 커리큘럼이 중요하다는 것을 새삼 깨닫는다.
그러나 요즘 대학졸업자들의 커리큘럼을 보면 실습 및 응용프로그래밍쪽 너무 집중된다고 느끼는 경우가 꽤 있다. 사실 중요한것은 이론적인 내용들이 기반이 되는것인데 말이다.

제가 대학때 수강하였던 커리큘럼을 정리해보면.

2학년 과정
  • 자료구조
  • 파일처리
  • 논리회로
  • 객체지향 프로그래밍
  • 이산수학
  • 유닉스개론 및 실습
  • 어셈블리어
  • 알고리즘

3학년 과정
  • 컴퓨터네트워크
  • 프로그래밍 언어론
  • 인공지능
  • 멀티미디어
  • 컴퓨터구조
  • 데이터베이스
  • 운영체제
  • 데이터베이스
  • 계산이론

4학년과정
  • 컴퓨터보안
  • 컴파일러
  • 컴퓨터 그래픽스
  • 시스템분석 및 설계
  • 소프트웨어공학
특히 가장 집중해서 들어야 할 과목을 꼽으라면 아래와 같다.
  • 자료구조
  • 알고리즘
  • 컴퓨터네트워크
  • 계산이론
  • 컴파일러
  • 운영체제
  • 소프트웨어공학


2011년 10월 12일 수요일

R&D란.

회사라면 R&D의 조직에 대해 많은 의견을 갖고 있을 것입니다. 그만큼 R&D부서의 성공여부에 따라 회사의 성패가 좌우 하기 때문입니다. 그러나 어느 회사든 R&D를 운용함에 있어서 딜레마에 빠지는데, R&D 조직을 회사의 투자의 개념으로 보는 것인지,  남들도 하기에 운영하는지는 생각해 볼 문제 입니다.
중요한 점은 모든일들은 사람과 사람의 의사소통에서 시작되며, 다 같이 발전 모델을 공유하여 각 팀들을 신뢰한다면 회사는 발전할 것이며 함께 회사를 이끌어 간다는 마음가짐으로 일을 하는것이 중요하다고 봅니다.

아래는 CIO BIZ "애플 R&D 성공은 잡스와 쿡의 팀플레이"의 칼럼을 인용 하였습니다.

액센츄어는 최근 출간한 ‘R&D 혁신의 기술’이란 책을 통해 혁신 기업과 추종 기업의 R&D에 있어 가장 큰 차이점을 구별해 낸다.
액센츄어에 따르면 애플과 GE의 R&D 혁신을 관통하는 가장 중요한 하나의 키워드는 조직 문화다.
아이폰을 내놓은 애플은 이미 ‘개방형 혁신’의 R&D 키워드가 됐다.

특히 “혁신이야 말로 리더를 구분짓는 것”이라 말한 전 CEO 스티브잡스의 리더십은 애플만의 독자적 조직문화를 완성시켰다.

직접 애플의 신제품 개발 프로세스 혁신과 과정을 주도하며 의견을 제시하는 등 깊이 관여해 온 것으로 유명하다.
스티브잡스는 신제품 아이디어 생성 단계부터 직접 참여했다. 상위 1% 직원과 아이디어 리뷰 회의를 이끌었다.

애플에선 스티브잡스가 ‘선택적 소수의 아이디어 공장’을 이끌고, 팀쿡은 아이디어를 현실화하는 ‘실물 공장’을 관리하며 조직 문화를 뒷받침 해온 격이다.

스티브잡스가 참여한 아이디어 리뷰 회의에서 도출된 톡톡 튀는 아이디어는 다각도의 토론을 거쳐 최종 선택의 순간을 맞게 된다.

아이디어를 개념화하는 단계에서는 최고디자인책임자가 아이디어를 구현하는 전담 조직 인력을 직접 관리한다. 생산단계까지 디자인 개념이 곧장 반영될 수 있도록 하면서 ‘아이디어부터 생산까지’ 일원화된 조직 및 의사결정 체계를 갖춘 애플의 혁신은 상위 1%의 아이디어로 세계를 주름잡을 수 있도록 하는 밑바탕이기도 했다.

아이디어의 성공적 결과에 대해선 반드시 보상을 한다.
 반면 실패에 대한 책임도 묻는다. 혁신을 통해 성과를 창출한 직원에게 보상을 통해 동기를 부여하는 조직 문화, 애플이 가진 지속 가능한 ‘혁신’의 힘이다.
GE는 개발자 위주의 프로세스를 탈피하기 위한 고객 지향적 R&D 프로세스를 잘 갖춘 기업으로 평가 받는다. 가전제품, 헬스케어, 항공에서 에너지에 이르기까지 폭넓은 사업을 하고 있어 더 그렇다.

가장 혁신적인 사례는 고객과 대면하는 콜센터를 소통의 가교로 활용한 사례다. GE는 콜센터를 ‘응답센터(Answer Center)’라 바꿔 불렀다.

기업 외부 고객뿐 아니라 기업 내부 부서의 요청도 받도록 했다. 뒤이어 놀라운 일이 벌어졌다.
이 응답센터는 고객 의견을 받아들이는 창구이며, 곧 이 정보를 내부에서 소통시키는 중심적 역할을 하게 된 것이다.
예를 들어 마케팅 혹은 제품 개발 부서에서 신규 제품에 대한 고객의 평가나 제품의 기능에 대한 소회를 알고 싶을 때, 콜센터에 내용을 보낸다.

그후 콜센터에서 고객과 상담을 할 때 이 내용을 대신 질문해주고 답을 받아 제품에 반영할 수 있도록 해준다.
상담원은 마케팅 전략이나 제품 개발 방향성 수립 때에도 고객의 불편함이 무엇인지, 무엇에 대한 개선 요구사항이 있는지 참여해 마치 고객이 된 것처럼 의견을 낸다.
다른 기업은 중요하지 않게 생각하는 역할을 회사의 핵심 채널로 만든 GE의 ‘고객 중심적 철학’이 빛난 사례다.

유효정기자 hjyou@etnews.co.kr

IBM 제품군

1. IBM 제품군
IBM은 소프트웨어 제품들을 통합및 합병하여 지금 현재 다섯 개의 주요 소프트웨어 브랜드를 갖고 있습니다.

  • DB2와 Information Management: Information on demand
  • Lotus: 통신, 협업, 생산성
  • Tivoli: IT 서비스 관리
  • Rational: 비즈니스 중심 개발
  • WebSphere: 비즈니스 프로세스 관리 (엔터프라이즈 제품 인 경우 이 제품군에 속합니다.)


2. IBM의 정책
    IBM의 정책은 IT 산업의 모든 비지니스, 이벤트를 포함하여 모든 정보에 초점을 맞추고 있다고 생각됩니다. 물론 한국 IBM은 IBM전체의 2% 이내의 매출 규모를 갖고 있지만 우리나라 IT 시장에서도 가장 큰 벤더 중 하나입니다.

아래는 IBM의 각 제품군의 설명을 인용 하겠습니다.

Information Management - Information on demand
Information on demand는 알맞은 정보를 알맞은 사람 또는 프로세스에 알맞은 시간에 제공하여 적절한 액션을 수행할 수 있도록 하는 기능이다.
모든 정보를 통합, 분석, 최적화 하여 리스크를 관리하고 새로운 비즈니스 통찰력을 얻도록 한다.
Information on demand를 지원하기 위해, Information Management 브랜드는 다음과 같은 핵심 기능을 제공한다.
  • DB2, Cloudscape, Informix, U2: 정보 저장소와 서버
  • 콘텐트 관리와 디스커버리 서비스: DB2 Content Manager와 IBM Omnifind
  • 정보 통합 서비스: IBM Information Server
  • 비즈니스 정보 서비스: DB2 Data Warehouse Edition IBM Information on demand
Lotus - 통신, 협업, 생산성

Lotus 소프트웨어 브랜드는 사람과 비즈니스를 연결하고, 기존 투자 가치를 확장하며, 새롭고 유연한 애플리케이션 구현 방식을 제공한다.
이 제품들은 적응성 있는 역할 기반의 작업 환경을 만들어서 Software Reference Architecture의 인간 중심 기능을 제공한다.
단일 보안 액세스 포인트를 사용하여 Lotus 오퍼링은 통합 환경을 제공한다.

  • 메일, 캘린더 및 스케줄링, 협업 애플리케이션 (Lotus Notes/Domino)
  • 복합 애플리케이션, 프론트-엔드 통합, 클라이언트 서비스 (Lotus Expeditor)
  • 협업 문서 관리 (Lotus Domino Document Manager와 Lotus Workflow)
  • 모바일 및 엔터프라이즈 액세스 (Lotus Sametime Mobile)
  • 실시간 협업 및 팀 협업 (Lotus Sametime과 Lotus QuickPlace)
Rational - 비즈니스 중심 개발

Rational 브랜드는 소프트웨어 개발의 프로세스 혁신을 선도하는 것으로 잘 알려져 있다. 이 프로세스를 비즈니스 중심 개발(business-driven development)이라고 하며, 개발 프로젝트를 IT 중심 솔루션 보다는 비즈니스의 필요에 맞춰야 하는 필요성을 인식한 개발 방식이다. 비즈니스 중심 개발을 통해 조직은 소프트웨어와 시스템 개발의 비즈니스 프로세스를 관리할 수 있다.
Rational 포트폴리오는 개발팀에게 도움이 되는 다양한 역할 기반의 툴들을 제공하고 있다.
서비스 에셋의 수집, 생성, 테스트, 구성 요구 사항 정의, 비즈니스 프로세스 코딩, 표준 실행 비즈니스 프로세스와 인프라스트럭처의 표준화, 자동화, 통합 비즈니스 모델과 프로세스를 전략적 목표에 적용 다음은 Rational 제품 카테고리이다.
  • Rational RequisitePro, Rational Software Modeler, Rational Data Architect: 요구 사항 및 분석
  • Rational Application Developer, Rational Software Architect, and Rational Systems Developer: 디자인 및 구현
  • Rational Robot, Rational Test RealTime, Rational Functional Tester: 소프트웨어 품질
  • Rational ClearCase, Rational ClearQuest, Rational BuildForge: 소프트웨어 설정 관리
  • Rational Portfolio Manager, Rational Method Composer, Rational Team Unified Platform: 프로세스와 프로젝트 관리
Tivoli- IBM 서비스 관리

Tivoli 소프트웨어는 IT 시스템의 비즈니스 가치를 이해하고 관리할 수 있도록 지능적인 인프라스트럭처 관리 솔루션을 제공해 왔다.
중요한 IT 시스템들을 정책 기반 리소스 할당, 보안, 스토리지, 시스템 관리 솔루션들을 사용하여 관리 및 최적화 할 수 있도록 통합 뷰를 제공한다.
Tivoli 브랜드의 주요 기능은 다음과 같다.
Automated IT Infrastructure Library (ITIL) 워크플로우 오픈 표준 기반의 설정 관리 데이터베이스(CMDB)와 워크플로우 엔진 자동화 된 인프라스트럭처 기반 태스크 자가 관리 자율 기술 베스트 프랙티스와 구현 지원 IT Service management (ITSM)는 세 가지 핵심 컴포넌트를 갖고 있다.

WebSphere - 비즈니스 프로세스 관리

인프라스트럭처를 제공한다.
WebSphere는 SOA 라이프 사이클 동안 엔드투엔드 비즈니스 프로세스 기능을 제공하고, 아울러, 비즈니스 프로세스의 모델링, 어셈블링, 전개, 모니터링을 위한 제품과 비즈니스 프로세스를 시뮬레이트 및 최적화 하는 툴도 제공한다. 이러한 모든 요소들은 엔터프라이즈 서비스 버스(ESB)를 통해 연결된다.
WebSphere 포트폴리오에는 다음과 같은 제품군들이 포함된다.
  • 애플리케이션 서버 - IBM WebSphere 소프트웨어 플랫폼의 기본이다. 이러한 서버 제품군들은 SOA용 애플리케이션의 전개와 실행에 필요한 안전하고, 확장성 있으며, 탄력적인 인프라스트럭처를 제공한다.
  • 비즈니스 통합 - SOA에서의 애플리케이션 통합과 비즈니스 프로세스 관리. 기업 내 데이터, 애플리케이션, 프로세스, 사람들을 통합하여 기존 IT 자산들을 활용한다.
  • Commerce - 온라인 스토어부터 완전히 통합된 멀티티어 수요 체인에 이르기까지, 광범위한 밸류 체인 솔루션을 하나의 플랫폼에 전개할 수 있다.
  • 개발 툴 - 엔터프라이즈 규모의 J2EE 및 SOA 애플리케이션의 생성, 테스트, 전개용 툴. 포털 - 엔터프라이즈를 포털이라고 하는 하나의 커스터마이징 가능한 인터페이스로 통합하는 프레임웍

실시간 log 감시 프로그램 - wintail

개발자 또는 SM 모니터링 운영 하기 위해서는 실시간 log 감시는 필수입니다.
특히 윈도우에서 실행 모듈이 항시 돌고 이를 파악하기 위해서는 log 프로그램이 필수 입니다. 매번 로그파일을 열었다가 닫고 다시 열고를 반복 할 수 없기 때문입니다.
이에 필요한 log 감시 프로그램인 wintail을 소개 합니다.

URL : http://www.baremetalsoft.com/wintail/
해당 사이트에 들어가면.


밑에 Download Wintail.exe 를 클릭 합니다. 즉시 다운로드 받으실 수 있습니다.

사용법 또한 다운받은 아이콘을 클릭하여 해당 파일을 open 하면 지속적으로 log가 쌓이는 것을 확인할 수 있습니다.

IBM WBE (Websphere Business Event) 솔루션

1. WBE 정의
    WebSphere Business Events (WBE)는 이벤트의 종류나 발생 시간에 관계 없이 다양한 이벤트를 수집, 평가, 분석(상관관계)하여 필요한 조치를 수행합니다.
   복잡하고 이질적이고 예측 불가능한 불규칙적인 이벤트를 필터링 및 룰 (rule)에 의해 새로운 이벤트에 대한 조치 및 비지니스 플로우를 나타낼 수 있습니다.

2. 어떤 업무에 사용되는가?
  • 중요한 이벤트 패턴을 감지하기 위해서
  • 서로 다른 이벤트 소스에서 발생하는 다양한 형태의 이벤트를 동시에 처리하기 위해서
  • 이벤트의 발생 뿐 아니라 발생하지 않는 것도 중요한 업무인 경우
  • 이벤트의 발생이 순차적이지 않은 업무
  • 이벤트의 발생이 시간과 관련된 곳 . 특정한 시간까지 꼭 발생해야 하거나 서로 특정한 시간 이내에 같이 발생해야 하는 경우
  • 물리적인 이벤트로부터 실행 가능한 조치(이벤트)가 필요한 경우
  • 다양한 이벤트의 조합에 의해서만 발생하는 조치를 적용하고자 하는 경우
3. WBE 사용자 인터페이스

새로운 이벤트를 제공 받아 필터 및 DBMS에 저장하여 새로운 이벤트 플로우, 모니터링, 플로우 디자인이 가능합니다.

4. WBE Connector
- WVE 자체 connector 사용
  • 디자인 데이터 UI를 통한 설정 제공
  • 런타임 서버 내부에서 실행 (권장사항)
  • 어플리케이션을 외부로 실행
  • 내장 커넥터 (RDMS, HTTP/REST, SMTP, FTP, FileSystem, JMS)
  • ESB 사용
  • 3rd party 제공 어플리케이션 / 어뎁터
5. 요약
  • 이벤트 기반 어플리케이션 개발을 위한 전문 솔루션
  • 통합된 플랫폼 제공
  • 기존의 인프라 제공
  • 신속한 업무 적용
  • 확장 가능한 표준 기반의 아키텍쳐
  • 여러 이벤트를 조합하여 새로운 프로세스 구현 가능

2011년 10월 11일 화요일

log4j 사용법

1. log4j 다운로드 사이트
http://logging.apache.org/log4j/1.2/download.html


위의 site ( http://logging.apache.org/log4j/1.2/download.html )에서 log4j zip 파일을 다운 받습니다.
압축을 풀면manual 및 src 등 여러가지 있으나 필요한 것은 log4j-1.2.16.jar 입니다.

2. log4j Class
아래는 log4j class를 쉽게 사용할 수 있도록 만들어 놓았습니다.
해당 class를 가지고 인스턴트 객체를 생성하여 사용하면 쉽게 사용할 수 있습니다.

LoggerObject.java

import org.apache.log4j.Layout;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;

/**
* @author sgtae
*
*/
public class MopasLogger
{
    private static String pattern = null;
    Logger rootLogger = null;
    Layout layout = null;
    RollingFileAppender ra = null;

    public MopasLogger()
    {
        pattern = "[%d{ISO8601}] %-5r [%t] %l : %-5p %-30c - %m%n";
    }

    public void setLoggerConf(String fileName, String maxFileSize,
                                         int maxBackupIndex, String threshold) throws Exception
    {
        rootLogger = Logger.getRootLogger();
        layout = new PatternLayout(pattern);
        try
        {
            ra = new RollingFileAppender(layout, fileName);
            ra.setAppend(true);
            ra.setMaxFileSize(maxFileSize);
            ra.setMaxBackupIndex(maxBackupIndex);
           this.setThresholdLevel(ra, threshold);
           rootLogger.addAppender(ra);
        }
        catch(Exception e)
        {
             throw new Exception(e.getMessage());
        }
    }

    private void setThresholdLevel(RollingFileAppender ra, String level)
    {
        if(level.equals("OFF"))
            ra.setThreshold(Level.OFF);
        else if(level.equals("FATAL"))
            ra.setThreshold(Level.FATAL);
        else if(level.equals("ERROR"))
            ra.setThreshold(Level.ERROR);
        else if(level.equals("WARN"))
            ra.setThreshold(Level.WARN);
        else if(level.equals("INFO"))
            ra.setThreshold(Level.INFO);
        else if(level.equals("DEBUG"))
            ra.setThreshold(Level.DEBUG);
        else if(level.equals("ALL"))
            ra.setThreshold(Level.ALL);
    }
}


3. log4j 예제

Logger logger = Logger.getLogger(Class.class);
LoggerObject lo = new LoggerObject();
lo.setLogger("log.txt", "10M", 5, "DEBUG");

logger.debug("debug");
logger.info("test");
위와 같이 간단하게 만들면 log.txt 파일에 log가 계속 쌓일 것 입니다.

JAVA eclipse 툴 다운로드

JAVA eclipse 관련 툴을 아래 사이트에서 바로 다운로드 할 수 있습니다.
http://www.eclipse.org/downloads/

 site를 들어가면 위의 화면을 볼 수 있습니다..
이미지 상단 빨간색 선은 Eclipse Modeling , enterprise, embedded, equinox 등 프로젝트 및 개발 환경에 따라 eclipse를 선택할 수 있습니다.

우측 하단 빨간 선을 클릭시 eclipse 버전 별로 선택하여 다운로드 받을 수 있습니다.

2011년 10월 10일 월요일

IBM WMQ

1. Websphere MQ?
  • 분산처리 System의 확산이 대규모로 진행되면서 기존의 온라인 기능 특성, 즉 동기처리(Synchronous) 방식의 솔루션은 많은 문제점들을 노출시켰으며, 이는 결국 분산 System의 여러 가지 장점들마저 평가절하 시키는 결과를 가져왔다.
  • 온라인과 배치(Batch)라는 이분화된 선택구도 안에서 발생하는 각종 문제점을 효율적으로 처리하고, 분산된 System 자원의 자유로운 가동을 최대한 보장하는 것을 주요 골자로 하는 WebSphere MQ는 메시징 기술(Messaging Technology)을 기반으로 한 비동기 (Asynchronous) 처리방식의 미들웨어 제품이다.
2. Websphere MQ 특징?
  • Assured message delivery
    메시지의 전달을 보증함.
  • Time independent processing
    비 동기 처리가 가능함으로 시간에 독립적으로 동작할 수 있음.
  • Application parallelism
    프로그램의 처리를 병렬화 함으로서 성능을 향상 시킬 수 있음.
  • Faster application development
    네트워크 단의 로직(Logic)을 WMQ에서 구현함으로써 응용프로그램에서는 비즈니스 부분만 구현하면 됨.
3 . Messaging & Queuing 방식 사용
  • 어플리케이션 A 와 어플리케이션 B 가 통신할 때, 중간에 큐라는 매개체를 놓고 간접 통신하는 방식
  • 어플리케이션은 target 이 되는 큐의 이름만 알고 있으면 됨 (큐의 실제 위치, 수신 시스템 상황, 네트워크 상황 관계없음)
4. 비동기 처리 방식
  • 송신 어플리케이션 A는 수신 어플리케이션 B의 가동상태나 B가 운영되는 시스템의 가동상태에 무관하게 데이터를 전달할 수 있으며, 수신 큐의 Triggering 조건을 설정함에 따라 어플리케이션 B의 가동 조절 가능
  • 분산된 시스템 자원의 효율적인 가동 및 독립적인 가동 보장
  • 요청과 응답이 분리된 처리
5. 메시지 전달을 보증함
  • 한번 큐로 전달된 데이터는 반드시 큐를 통하여 수신 어플리케이션에 한번 전달되게 하는 “메시지 전달 보증 기술”을 채택함으로써 상용환경 (Commercial Environment)에서의 메시징 기술 적용을 가능하게 한다.
  • Transmission queue에 메시지를 먼저 저장함.
  • 만약 큐 관리자와의 연결이 끊어지면 Application은 종료 함.
6. Websphere MQ 기본 구성
  • Message
    큐를 통해 전달되는 message는 실제 전달하려는 Application Data와 message의 속성 및 처리 방법이 정의되는 Message Descriptor로 구성된다.
  • Queue
    Message를 송,수신처로 비동기적 처리를 가능하게 하는 Storage 영역이다.
  • Message Queue Manager (MQM)
    큐를 이용한 송수신 작업의 모든 Service를 담당하며 각종 큐의 생성, 관계설정, 변경, 삭제 등을 관리
  • Message Queue Interface (MQI)
    Application과 Queue Manager와 연결해 주는 Interface로서 WMQ API를 말함
  • Message Channel Agent (MCA)
    Platform이 다른 각 System에서 Message 전송을 위해 Queue Manager를 연결하는 Communication Link (Channel)를 사용하며, Channel은 optional하게 항시 Active 또는 요청 시 Active로 설정 가능
7. Message Queue Interface (MQI)
  • 응용 프로그램 과 큐 관리자 사이의 Interface
  • 모든 환경에서 사용 가능한 MQ API Major Call
    MQCONN
    MQOPEN
    MQPUT
    MQGET
    MQCLOSE
    MQDISC
    Minor Call
    MQCMIT
    MQBACK
    MQINQ
    MQSET
    MQPUT1
8. Message Channel Agent (MCA)
  • 큐 관리자 사이의 메시지를 전달하기 위한 논리적인 링크(채널)
  • 채널에 관계된 명령은 MCA에서 수신하여 처리 한다.
  • 채널이라는 논리적 링크를 유지하는 역할을 담당한다.
  • 두 서버에서 사용하는 ccsid값이 같은 byte를 사용해야만 연결이 된다. 1 byte : 819(unix), 437(Windows), 500(Host)
    2 bytes : 970(unix), 949(Windows), 933(Host)

2011년 10월 7일 금요일

메모리 DB 조사

1. 메모리DB

메모리DB(In Memory Database, IMDB; main memory database system, MMDB)는 database 저장소로 main memory를 주로 의존하는(사용하는) 데이터베이스 관리 시스템이다.  disk 스토리지 메커니즘을 사용하는 DBMS와는 대조적인 부분이다. 메모리 내에서의 엑세스는 disk 보다 더 빠르고, 예측 가능한 성능을 제공한다. 이동통신 네트워크와 같은 응답시간이 critical 한 분야 에서 사용한다.

2. 제품 리스트

제품 이름 라이센스 설명 언어 자체 API xDBC
적응형 서버 엔터 프라이즈 (ASE) 15.5 commercial 사이베이스enterprise database C
아파치 더비
아파치 라이선스 2.0
Java none JDBC
Altibase commercial 하이브리드 DBMS, 디스크 테이블이 in-memory C
BlackRay GNU 일반 공중 사용 (GPLv2) 라이센스와 BSD 라이센스 C++ Java JDBC, ODBC(제한적SQL)
CSQL GNU 일반 공중 라이센스 unknown
Datablitz commercial DBMS, Lucent Technologies C++(Java)
H2 모질라 공개 라이센스 또는 공중 사용 허가서를 이클립스 메모리 전용 모드 Java none JDBC, ODBC
HSQLDB BSD 라이센스 메모리 전용 모드 Java none JDBC, ODBC
IBM의 TM1 commercial 메모리에 BI 및 데이터 분석 unknown
InfoZoom commercial 메모리에 BI 및 데이터 분석, Windows 플랫폼 C++, C#
membase 아파치 라이선스 NoSQL , 하이브리드 C++, Erlang noSQL
MicroStrategy commercial 메모리 BI MicroStrategy 9 unknown
MonetDB MonetDB 라이센스 Column-store방식 DB C
MySQL GNU 일반 공중 사용 허가서 메인 메모리 스토리지 엔진을 사용하는 클러스터 서버. C
오라클 버클리 DB Sleepycat 라이센스 메모리에서 실행되도록 구성할 수 있음. C / Java Edition C++, Java/JNI, C#, Python, Perl JDBC,ODBC
Polyhedra IMDB commercial 관계형, High-Availability, ENEA 2001년에 인수 C/C++(Java)
QlikView QlikTech  BI툴 unknown
RDM 임베디드 commercial 하이브리드 unknown
RDM 서버 commercial 하이브리드 unknown
Redis BSD NoSQL ANSI C
solidDB ( IBM ) 하이브리드, HSB 기반 HA, 공유 메모리, XA 등 unknown
SQLite 공개 하이브리드, RAM 및 디스크 DB를 함께 사용할 수 있음. C
Starcounter 객체 관계형 dbms(in memory) unknown
오라클 TimesTen commercial 오라클제품 C Pro*C/C++ JDBC,ODBC
VoltDB GNU 일반 공중 사용 허가서 v3 Java(C++)
TREX commercial SAP
Xcelerix commercial 상용 제품

2011년 10월 6일 목요일

EAI 개념

1. EAI 정의
네트워크 프로토콜이나 DB, 운영체제 등에 상관없이 기업과 기업내부의 다양한 시스템과 어플리케이션 및 데이터를 유기적으로 연동하여 이를 통합관리, 사용할 수 있는 환경을 구축할 수 있도록 해주는 하나의 구현 기술이다.
전사적인 응용프로그램,  데이터베이스, 플랫폼,  네트워크의 통합을 의미하며 적용되는 단계에 따라 Business Process Integration (BPI),  Application Integration, Data Integration 등의용어로 표현하기도 한다.
또한 EAI 는 프로토콜 통합, 데이터 통합, 어플리케이션 통합, 프로세스 통합을 모두 의미한다.

WIKIPEDIA 의 정의를 간단히 살펴보자.
재고와 선적(수송) 관리 목적의 공급망 관리(SCM) 응용프로그램과, 현재의 고객과 잠재고객 관리 목적의 고객 관계 관리(CRM) 응용프로그램, 경영 정보학(BI) 업무로부터 발생하는 데이터를 통해 일정 패턴을 찾아 내기 위한 응용프로그램, 인적 자원, 의료 관리, 조직내 모든 의사소통, 기타 여러가지의 데이터를 관리 하기 위한 응용프로그램들은 일반적으로 서로의 정보 공유나, 업무의 이해를 돕기 위한 의견 교환을 할 수 없다. 이런 이유로, 위의 응용프로그램들은 이따금 '자동화의 섬'(islands of automation), 또는 '정보 적재소'(information silo)로 불린다. 이런 상호교류의 부족은 동일한 데이터를 여러 곳에 저장하거나, 간단한 업무를 자동화하지 못하는 것과 같은 비효율을 야기하게 된다.
이에 비해, 기업 응용프로그램 통합은 단일 조직 내부에서의 업무 프로세스를 최대한 단순화 및 자동화 하기 위한 응용프로그램들의 연결을 할 수 있게 하며, 이미 존재하는 응용프로그램과 데이터구조에 대한 전면적인 수정 작업을 하지 않도록 도와 준다. 이에 대해, 가트너 그룹은 'EAI 는 기업환경에서 연결되어 있는 어떠한 응용프로그램과 어떠한 원천 데이터 간에도 이뤄지는 구속 없는 공유'라고 정의 하기도 하였다.
기업 응용프로그램 통합이 가지는 큰 의미는 서로다른 다양한 시스템간의 연결에 있다. 다른 운영체제를 가동 중일 경우, 또는 다른 데이터베이스와 프로그래밍 언어를 사용 중 이거나 더 이상의 고객지원을 받을 수 없는 기존의 레거시 시스템 간의 통합이 여기에 해당된다. 이런 경우, 시스템은 수정하기 힘들정도록 강하게 뭉쳐 있기 때문에, 강 종속시스템(stovepipe system)이라 불린다.
여기서 생각나는 속담은. "구슬이 서말이라도 꿰어야 보배다." 가 아닐까 한다.

2. 도입배경
아래의 그림은 분산 시스템 연결성 문제를 나타낸다.
이러한 분산된 자원들은 서로 복잡하게 얽혀 있습니다. 이러한 문제를 해결하기 위해서는 아래와 같이 연결성을 가질 수 있게 된다.




3. 구성요소
다양한 System과 Application, Middleware 환경 하에서 통합을 위해
  • 데이터 및 정보 추출을 하는 Adapter
  • 데이터/정보를 전송하는 Messaging (Message Oriented Middleware)
  • 송수신 데이터/정보의 Transform/Routing을 제공하는 Broker
  • Biz process 및 시스템 흐름의 상태를 Monitoring 하고 관리하는 Admin 툴


4. 진화과정
    현재는 EAI에서 ESB의 Hub 집중형 형태로 진화되며 구성요소는 B2B connector, Mediator,  Web Service, Adapter , Transaction 등 Service Orchestration 이라 할 수 있는 서비스 프로세스 집약체로 구성이 되고 있다. 또한 BPM (business Process Monitoring) 인  기업의 프로세스를 정의하고 정의된 프로세스에 맞게 활동을 수행하며, 기업의 프로세스 관리체계와 함께 진행된다.
예를들면 ) "카드사의 카드 발급 업무"내용 이라면 업무 수행 중심 즉 하나의 시스템 내에서 수행되는 업무의 수행 통제 및 제어가 주 목적이 되며 Workflow BPM 역할을 수행한다.