레이블이 MOM/BTP인 게시물을 표시합니다. 모든 게시물 표시
레이블이 MOM/BTP인 게시물을 표시합니다. 모든 게시물 표시

2022-12-10

미들웨어의 특징, 종류

이종 컴퓨팅 환경이나 서버나 애플리케이션이나 데이터(메시지) 연계를 위해서 사용되는 EAI,ETL 등의 상위 단계라고 생각되는 미들웨어에 대해 알아야 된다고 생각하여 특징과 종류에 대해 간단하게 정리를 했습니다.

  • 미들웨어 특징
  • 미들웨어 = 중간역할
  • 이종컴퓨팅 환경,애플리케이션 상호작용
  • 기업의 프론트엔드와 백엔드 간에 운영통합
  • 서로다른 애플리케이션 간 연계


미들웨어 종류


데이터베이스 미들웨어

  • Database Middleware
  • 데이터베이스에 엑세스하는 것이 최우선일때 사용하기 좋음
  • 도입이 쉽고 비교적 저렴
  • 복잡한 기능은 제공하지 않음
  • 클라이언트와 서버간 양방향 통신을 허용하지 않음(요청이 있을때만)
  • 일반적으로 알려진 미들웨어 유형

TIBCO BW(ActiveMatrix BusinessWorks) 히스토리 정리

TIBCO Software는 1997년 설립된 미국의 비즈니스 인텔리전스 소프트웨어 회사

TIBCO Cloud Integration

TIBCO클라우드 통합(TCI)솔루션과 관련된 하이브리드 엔터프라이즈 서비스형 통합플랫폼(iPaaS)이라고 하며 다양한 통합기능과 장소에 구애받지 않고 빠른 서비스를 이용할수 있다고 합니다.

V3.5.1.0

2022년 09월 출시

V3.2.1.0

2021년 11월 출시

V2.2.1.0

2020년 12월 출시

Software AG webmethod 제품 히스토리 정리

  • webMethods는 1996년에 설립된 엔터프라이즈 소프트웨어 회사입니다
  • 2007년에 Software AG에 5억 4600만달러에 자회사로 인수
  • webMethods Integration Serer는 첫번째 제품

wedMethod Integration Cloud

2022년 12월 31일부터 모든버젼을 폐지(2023년 12월 31일 종료)
2021년 4월에 출시된 v7.0이 최종릴리즈
2018년에 출시된 webMethod.io로 대체(통합 및 자동화에 주력)

webMethods.io

서비스형 통합 플랫폼(iPaaS)
2021년 12월 최신 업데이트를 발표

2022-12-08

SAP PO의 JDBC 어댑터 드라이버 업데이트하는 방법

EAI 시스템 운영을 하다보면 연계시스템으로 인하여 EAI도 영향받는 인터페이스들에 대한 조사나 테스트 그리고 연계 시 사용되는 소스나 파일등을 업데이트하는 경우가 발생되는데요.

JDBC방식의 연계 IF들이 많거나 다양한 DB종류와 연계되는 SAP PO의 인터페이스들도 이런 상황들이 생길수 있는데 예를들어 오라클 DB의 마이그레이션이 되는경우 그 버젼에 맞게 SAP PO의 JDBC드라이버(.jar파일)을 업데이트 하는 경우가 있습니다.

이글은 SAP PO안의 JDBC드라이버를 업데이트할때 순서에 대해 간략하게 정리한 내용입니다.
SAP PO. JDBC Adapter for MS SQL Server and Oracle. Step by step guide 참고

SAP PO에서 JDBC드라이버를 사용하는 위치는 JDBC Adapter, 자바프록시 등에 사용되는 Custom JDBC Drivers 등이 있는데요. NWA에 생성되는 데이터소스 방식과 다르게 JDBC 어댑터의 경우는 com.sap.aii.adapter.lib.sda에 포함된 드라이버에 의존합니다.


JDBC Adapter 드라이버 업데이트하는 순서

1. 현재 설치된 JDBC드라이버 확인

1829286 - Checking the drivers installed for the JMS and JDBC Adapter 참고

NWA(SAP NetWeaver Administrator) > Configuration > Infrastructure > Java Class Loader Viewer

Component Type 'liverary' 선택 후 cm.sap.aii.adapter.lib 컴퍼넌트 이름으로 현재 PO 디폴로이 된 JDBC드라이버를 확인합니다.

2022-11-20

SAP PO 자바커스텀개발을 위한 패키지 정리

SAP PO의 UDF(User defined function), Adapter Module, Adapter 등을 커스텀개발을 할때 사용되는 PO의 자바 패키지나 클래스를 정리해보았습니다.

SAP NetWeaver 7.5 SP 06 Process Integration의 PI Maaping and Lookup API사이트를 참고하셔서 커스텀개발을 진행하시면 좋을것 같습니다.

com.sap.engine.interfaces.messaging.api


Message

샌더나 리시버 사이에 전송되는 메시지는 헤더와 페이로드 등으로 구성되고 있으며 Message 인터페이스는 아래 헤더필드의 값을 가져올수 있습니다.
Message ID, Service, Receive, Sequence ID, Correlation ID 등

2022-11-16

SAP CPI 초보를 위한 튜토리얼(Integration Flow)

SAP CPI를 하기 위해서는 먼저 평가판 계정을 설정을 해야하는데 아래 내용을 참고하시면 됩니다.

Integration Flow에 대한 초보자 튜토리얼 내용은 아래 사이트를 참고했습니다.
Start with SAP CPI Integration Flow: Beginner Tutorial


메뉴소개

Integration Suite 메뉴

Discover > Integratoins

참고할수 있는 ~449개의 SAP의 아이플로우의 템플릿들을 볼수 있고 상세화면에 들어가면 아이플로우의 설명과 생성이나 게시일 등을 나옵니다. 그외 파일과 문서도 다운로드 가능하고 폴더안에 .groovy 스크립트에 관심이 생깁니다.
그리고 Integration Suite가 아닌 사이트를 통해서도 아이플로우 템플릿을 확인 가능한것 같은데 개수가 다른것 같습니다.
SAP API Business Hub > Integrations > Integration Flow
이런 템플릿들은 예전 PI할때 ccBPM때도 존재했었는데 그때에 비하면 CPI의 디자인 방식이 심플하고 깔끔해보입니다.

SAP CPI 평가판 계정 설정하는 방법

이미 인터넷 상에 SAP Cloud Platform Integraton(CPI)에 대한 사이트나 참고할만한 자료는 있지만 생소한 부분이라 이해는 안가는 상태이며 PI/PO 처럼 개발준비나 개발을 진행하는 부분에 대해 체험이라도 해봐야겠다 싶어서 Set up SAP CPI Trial Account 라는

사이트를 통해 1단계~36단계까지 진행은 해봤으나 중간에 오류나 이해가 안되는 동작들이 발생하여 완벽하게 진행이 되지 않은것 같습니다.

그래도 끝까지 설정은 진행하고 마지막 단계의 화면만 기다리고 있는 상태인데 잘 되었으면 좋겠습니다.


SAP BTP 평가판

SAP CPI에 대한 튜토리얼에 대해서는 여러 방법이 있을것 같은데 저는
SAP BTP Cockpit 사이트를 통해 진행했었으며 S-USER가 필요하며

평가판이라 30일 후에 만료된다는 제약사항이 있습니다.

2022-11-04

EAI역사와 제품수명주기에 따른 그당시 분위기와 업체들

오래전의 국내시장의 EAI시장의 분위기와 관련 제품의수명 주기인 도입기, 성장기, 성숙기, 쇠퇴기로 정리해보면 현재 EAI의 시장이 현재 어느단계일지 생각을 하게 됩니다.

각 수명주기에대해 간략하게 정리하면

  • 도입기는 제품이 처음으로 소개되는 과정
  • 성장기는 제품이 시장에 알려지며 판매가 늘어나는 과정
  • 성숙기는 수요가 포화상태에 이르러 경쟁이 치열하여 가격경쟁이 심해지는 과정
  • 쇠퇴기는 제품을 대체할수 있는 무언가가 개발이 되어 제품수요가 감소하는 과정

아래의 EAI관련 년도별 기사의 내용들을 보다보면 EAI의 역사의 도입기는 언제부터 시작되었고 현재는 어느단계인지 명확해지는것 같습니다.


도입기

90년대 말 국내에 EAI란 생소한 용어 알려지기 시작하여 S전자에서 EAI인프라 도입을 위한 솔루션 정보 및 제안을 주요 공급업체들에게 요청하여 국내 EAI시장이 태동하였다고 합니다.
당시주요 업체로는 NEON(New Era Of Networks)의 MQ인티그레이터와 TSI소프트의 머케이터를 필두로 프론텍, 엑티브소프트, 팁코소프트웨어 등이 소개되었다고 합니다.

기업에 EAI 도입이 필요한 이유?

EAI프로젝트를 하다보면 어떤 PM은 이런 질문을 하는 경우가 있었습니다.


'EAI가 왜 필요한거야?' 그럼 그에 답변으로
'거미줄같이 복잡하게 연계되어있는 시스템연계들을 EAI를 통해 단순하게 시스템통합을 가능하게 합니다' 라고.. 이것도 맞는답변일것 같긴하지만 어떤 사이트의 내용을 보니 좀 부끄러운 답변이기도 했던것 같습니다.

오히려 사이트 내용 처럼 간단하게

"EAI는 기업내 수많은 이기종 정보시스템 환경을 통합해서 정보 및 프로세스를 연동해 주는 인프라스트럭처라고 할수 있다."
이렇게 답변하는게 뭔가 더 있어보이는것 같습니다.

한국에서는 EAI가 어느 직무일까?

'국내의 여러IT분야중에 EAI는 어떤 직무일까?' 이런 의문으로 시작하여 정리한 글인것 같습니다. 결론은

메시지지향 미들웨어(Message-oriented middleware, MOM) > EAI(Enterprise Application Integration)

미들웨어와 EAI의 차이는 2005년도 어느 문서의 내용을 보면

"EAI솔루션은 기존 애플리케이션을 변화시키지 않고 이들 간의 통신이 가능하게 한다는 점에서 미들웨어의 하나로 분류"

"미들웨어가 point-to-poing로 애플리케이션을 연결하는데 사용된 반면, EAI솔루션은 기업의 비즈니스 프로세스를 중심으로 여러애플리케이션간의 네트웤를 통합적으로 관리한다는 점에서 미들웨어와 구분"

2022-09-29

SELECT * 사용에 대한 특징 간략정리

*는 별표이며 문자라고도 하고 애스터리크(Asterisk)라고 하는데요. 상징,기호,표시,각주,참고 등 여러 의미가 있는것 같습니다. 시스템을 개발하거나 운영하는 경우 대체로 EAI에서 여러 DB와 연계할때 SELECT * 를 아니면 SELECT 컬럼명으로 조회하는 경우가 있는데 습관적으로 사용하는 방법에 대해 간략하게 정리를 해보고 나중에 구체적인 내용도 기회되면 내용을 추가해봐야겠습니다.

  • * 사용시 불필요한 컬럼까지 Fetch하게 됩니다.(응답시간이 증가)
  • Index only access, Index only scan을 사용할수 없습니다.(select할 컬럼에 인덱스 존재 시)
  • SybaseIQ같은 DB는 Column in block저장방식을 택하고 있어 아스타리크를 사용 시 성능차이가 클수 있다고 합니다.(DB마다 다를듯)
  • SELECT * 은 가독성 및 향후 운영(유지보수 관점)을 위해 지양한다고 합니다.
  • Spring같은 프레임워크에서는 자동매핑을 선호하여 select *를 사용하는 경우가 있다고 합니다.(단, 컬럼명 수정/삭제 되는 경우 오류가 발생될수 있다고 함)
  • 리소스 사용률이 높아지고 지연시간이 길어질수 있다고 합니다.
  • SELECT *를 사용 시 많은 열의 캐싱을 시도합니다.(사이즈가 큰 TEXT나 BLOB 컬럼타입도 존재) 
  • SELECT *를 사용하여 다른 테이블로 복사 시 잘못된 열에 복하는 경우도 있다고 합니다.(두개의 테이블의 컬럼순서가 다른경우)

2022-08-23

SAP PO관점에서 보게되는 CPI는 어떤 모습일까요?

대체로 SAP PO만 개발했던 사람으로서 CPI는 비슷하지만 다른부분들이 더 많은것 같고 앞으로 CPI와 PO는 어떻게 다르고 CPI를 어떠한 방향으로 알아야할지 생각을 해보는 내용입니다.

"솔직히 도움되는 내용은 없으면 만약 PO를 오랫동안 하셨던 분이라면 깨끗하게 이전에 개발했던 방식은 잊고 새로운 마음으로 CPI를 해보시는걸 권장드리고 싶습니다."

아직 페이지의 내용을 다 보고 이해한건 아니지만 같은 뱃속에서 태어난것 같은데 이렇게다 서로 다른건지 ㅎ 

Comprehensive SAP CPI Guide for Standards & Best Practices 웹페이지를 보면 자세하게 정리되어있습니다. 이내용에서 제가 이해한 내용에 대해서만 간략하게 정리를 했습니다.

SAP PO의 FCAServerThreadCount 는 무엇일까요?

FCAServerThredCount에 대해 듣게 되어 찾아본 내용에 대해 간략하게 정리해보려고 합니다. 일반적으로 HTTP프로토콜의 REST,SOAP으로 PI/PO를 호출할때 ICM를 통해 각 JAVA 서버노드에 호출되는걸로 알고 있는데요. 호출되는 시스템이 많아지고 자바노드에 동시에 대량요청건에 대한 처리 가능성이나 처리가 되면서 발생되는 현상에 대해 대안으로 SAP에 권장하는 값에 따라 FCAServerThreadCount의 값을 조정하는 경우도 있는것 같습니다.

어떤때는 MMC(SAP Management Console) 보는데 하나의 HTTP Worker가 8분동안 처리중 상태인게 이상하여 해당 키워드에 대해 검색중에 하나의 노츠를 확인할수 있었습니다.
1945745 - How to increase HTTP Worker (FCA) threads in PI

내용을 보면 PI에서 HTTP Worker 스레드 수를 늘려야 할 경우가 있다고 하는데 디폴트 값인 15가 부족할수 있고 제가 보았던 현상처럼 MMC에서 평소보다 처리중 상태가 오랫동안 유지되는 스레드들이나 덤프를 확인 할수 있다고 하는데 위에서 언급한 FCAServerThreadCount의 FCA는 Fast Channel Architecture를 뜻하는것 같은데 ICM을 통과하는 HTTP관련 채널의 스레드에 영향을 주는 파라메터인지는 아직은 모르겠습니다.

일단 아래 노츠에서는 해당 파라메터의 권장 값이 50이라고 나와있는데 해당 내용들은 PO담당자보다 BC쪽에서 더 익숙한 내용들이 많을꺼 같긴한데 PO담당자도 각 NWA에서 볼수 있는 파라메터의 용도에 대해 미리 숙지하고 있으면 나중에 도움이 될꺼라 생각이 듭니다.
SAP Note 1375656 - SAP NetWeaver PI/AEX/PO system parameters 에서 .pdf파일을 다운로드

2022-08-16

SAP PO에서 SQL Bind Mode를 사용해야하는 걸까?

DB연계시 사용되는 JDBC Receiver Adapter에서 Bind Mode를 사용할때는 일반적으로 생성하던 구조와 다르게 metadata라는 어트리뷰트와 값이 추가가 되어야하는데 이런 설정을 통해 DB연계방식으로 개발된 인터페이스의 성능이 좋아지는 경우도 있었던것 같습니다. 하지만 개발(DATE,DECIMAL같은 컬럼타입의 함수 등)이나 모니터링 상 제약이 있는 부분도 있어 연계하는 시스템의 환경에 따라 사용여부가 결정될것 같고 이런부분들에 대해 간단하게 정리하려고 합니다.


Statement, PreparedStatement 차이

기본적으로 PO에서 JDBC Adapter를 생성하여 XML SQL형석으로 실행시 JDBC에서의 Statement로 쿼리를 실행된다고 이해를 합니다. 즉 10개의 쿼리를 각 각 수행한다고 보시면 되는데요. 이 과정에서 하드파싱으로 인하여 연계한 시스템의 DBA한테 바인딩? 처리해달라고 요청을 가끔 받기도 합니다. 그럼 바인딩 처리와 관련된 PreparedStatement와는 어떤차이가 있을지 찾아보면 제일 큰 차이가 캐시사용여부라고 합니다. 예를 들어 동일한 쿼리를 반복적으로 수행하기보다 캐시에 담긴 쿼리를 재사용하면서 안에 변경되는 값만 바인딩 처리하여 DB에 적은부하와 성능을 좋게 할수 도 있다고 하며 실제로도 이런 바인딩처리를 통해 성능이 좋아졌던 인터페이스도 보았습니다.

2022-08-13

SAP PO에서 Correlation ID를 셋팅하는 방법(두개의 인터페이스 상관관계)

지인분이 만드신 프로그램에 Correlation ID 셋팅으로 두 서버나 인터페이스에 대한 상관관계를 만들어 낼수 있는 부분을 보게되어 좀 더 검색을 통해 간략하게 정리를 하려고 합니다.


Correlation ID는 왜 사용하는걸까?

콜러레이션 아이디는 고유성과 기본키로 하나의 메시지에 할당하는 메시지 아이디와 다르게 상관관계에 따라 첫번째 콜러레이션 아이디가 다르고 두번째도 다르고 이런식으로 1:N인 ICO의 여러 타겟시스템에 보내는 구조의 인터페이스에서 봐왔던 아이디였던것 같습니다. 그리고 BPM이나 JMS 그리고 여러 IF 묶여 하나의 시나리오로 수행이 필요한 것들에 대해 동일 메시지 아이디로 인한 상관관계를 만들기 위해서 콜러레이션 아이디 셋팅이 필요해 보입니다.

2022-07-28

CPI(Cloud Platform Integration)를 왜 알아야하는가?(PO 7.5 유지보수종료기간)

요즘 국내에  CPI(Cloud Platform Integration) 환경에서 진행되는 프로젝트 소문이 들려오는데 현재 SAP PO 7.5 서포트하는 기간과 CPI를 왜 알아야 하는지에 대해 관련 사이트를 찾아정리해보기로 합니다.(CPI는 몰라요)
현재 PO 7.5까지 알고 있는데 2003년의 XI(Exchange Infrastructure) 2.0부터 지금의 PO(Process Orchestration) 7.5까지 그다음에 어떤 버젼이 이어질지 궁금하기도 합니다.  
일단 SAP PO 7.5 서포트관련 로드맵과 CPI를 같이 검색해보니 아래 사이트들이 눈에 보입니다.

EAI(Enterprise Application Integration) Kinds, History of SAP XI/PI/PO


SAP PO 7.5 유지보수 기간은 

어디서 확인가능한가요?

3045368-SAP Roadmap for CPI and PI/PO products의 내용을 보면 CPI로 전환하거나 로드맵에 관심있는경우 SAP Road Maps 사이트에서 해당 제품명으로 검색을 해보라고 하는데 해당 사이트에 들어가 각 제품명으로 검색을 해보면 년도,분기별로 세부적은 로드맵정보를 볼수 있으며 생소한 화면이라 나중에 좀더 자세하게 봐야될것 같습니다.

2022-07-08

SAP PO의 특정 AP서버에서 부하가 발생하는 경우, 이설정을 의심해보세요

혹시 SAP PO시스템을 운영중에 특정 AP서버나 노드에서 부하가 발생하는 현상을 보신경우 로그레벨 설정을 의심해보는것도 좋을것 같습니다. 일반 어플리케이션 프로젝트를 진행하더라도 운영에 배포하는 경우  Log4j나 로그관련 라이브러리의 로그레벨은 개발과 운영환경의 설정 차이는 존재하는데요. PO에서도 채널, 메시지, 서버의 로그 등 운영상에 잘못된 설정으로 인해 전체시스템에 부하를 줄수 있는 부분이라 만약 신규 운영서버 오프 시 고려해야될 부분중에 하나인것 같습니다.

SAP PO의 로그레벨 설정

NWA > Configuration > Infrastructure > Log Configuration 메뉴를 보면 여러 카테고리가 존재하는데 서버, 각 어댑터의 로그레벨에 영향을 주는것 같고 아마 다른  AP서버의 로그레벨과 비교를 해보면 차이점을 찾을수 있을것 같습니다.

2022-06-16

MYSQL프로시 호출시 User does not have access to metadata required to determine stored procedure parameter... 에러 해결방법

SAP PO와 MYSQL 프로시저 동기방식으로 연계시 발생된 에러발생 후 해결하는 과정에 대해 정리를 했으며 연계하는 프로시저는 INPUT,OUTPUT 존재했는데 오라클 프로시저 연계할때와는 Request,Response구조나 DB호출파라메터가 달라지는것 같습니다.

첫번째에러내용

java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter type. If rights an not be granted, configure connection with 'noAccessToProcedureBodies=true' to have driver generate parameters that represent INOUT strings irregardless of atual parameter types
번역기를 돌려보면 연계하는 MYSQL DB의 권한확인이나 PO에서 호출하는 JDBC호출 URL에 파라메터 추가 한 후 테스트가 필요해보이는것 같습니다.

2022-05-22

SAP Concur와 Rest채널에서의 엑세스토큰 옵션 3가지+1

"실제 해보진 않았고 관련 사이트를 보고 개념만 정리했습니다."


SAP PO와 Concur간 연계방식인 Rest 채널통해 서비스 URL호출하기전에 엑세스토큰(OAuth 2.0) 인증에 대한 지원옵션에 대해 담아봤습니다.
PO에서 Concur 업무를 위한 API를 호출하기위해서는 엑세스 토큰이 필요하다고 하는데요. 제가 보았던 부분에 대해서는 1회만 엑세스토큰을 받아 계속 사용할수 있는게 아닌 주기적으로(예를들어 한시간 마다) 받아야 하는 번거로움이 있어보였습니다.


SAP Concur란?
SAP Concur 솔루션은 모든 경비, 출장 및 공급업체 송장 지출을 하나의 시스템에 연결하여 지출을 엔드 투 엔드에서 관리, 거래에 대한 가시성을 높이고 모든 사용자를 위한 프로세스를 단순화하는 단일 방법을 제공한다고 한다고 하는데.. 쉽게 얘기하면 Concur는 경영진이 출장 경비를 관리할수 있게 해주는 '클라우드 기반 경비 및 관리 소프트웨어 솔루션'이라고 합니다. 

2022-05-09

SAP PO, JDK, JDBC 버젼 호환성 체크방법

10년이상의 오래된 EAI 솔루션, 플랫폼을 다른 EAI로 전환할 시에 일반적으로 JDBC버젼도 그대로 전환하는것을 보게 되었고 DB연계방식의 인터페이스들의 오라클, MSSQL 등 버젼업 되면서 변경요청하는 JDBC .jar 버젼들을 보며 PO내부에 있는 JDBC버젼들도 확인 및 교체가 필요해 보여 관련내용에 대해 정리를 해봤습니다.

참고한 사이트를 보면 SAP PO의 NetWeaver 릴리즈와 자바의 JVM버젼과 호환되는 JDBC드라이버 버젼들을 사용하게 되는데요. 신규 PO프로젝트를 진행 시에 아래 사이트를 참고하여 PO의 JVM 버젼에 맞게 각 DB업체에서 제공하는 JDBC파일을 다운로드 받아 PO에 디폴로이를 진행하면 되는 부분인데 DB종류가 다양해지는 만큼 EAI담당자 입장에서 관리대상이 많이 지는 부분도 고려가 필요해보입니다.

PO프로젝트 진행, 운영하다보면 3073720-PO JDBC Adapter error DriverManaerException 관련 오류들도 발생된적도 있는데 연계하는 JDBC드라이버와 데이터베이스 그리고 PO의 자바 버젼간의 호환성에 대해 확인을 해야될 부분 같고 이에 대해 SAP 입장에서는 JDBC드라이버는 공급업체(오라클,MSSQL 등)에 제공되어 SAP의 영역밖인 문제로 보는것 같고 이런 문제에 대해서는 공급업체 쪽에 문의하라는 가이드를 SAP 공식문서에서 본적도 있었던것 같습니다.

최근글

2026년 5월 8일 데일리 뉴스요약