- 미들웨어 특징
- 미들웨어 = 중간역할
- 이종컴퓨팅 환경,애플리케이션 상호작용
- 기업의 프론트엔드와 백엔드 간에 운영통합
- 서로다른 애플리케이션 간 연계
미들웨어 종류
데이터베이스 미들웨어
- Database Middleware
- 데이터베이스에 엑세스하는 것이 최우선일때 사용하기 좋음
- 도입이 쉽고 비교적 저렴
- 복잡한 기능은 제공하지 않음
- 클라이언트와 서버간 양방향 통신을 허용하지 않음(요청이 있을때만)
- 일반적으로 알려진 미들웨어 유형
TIBCO Software는 1997년 설립된 미국의 비즈니스 인텔리전스 소프트웨어 회사
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에 포함된 드라이버에 의존합니다.
NWA(SAP NetWeaver Administrator) > Configuration > Infrastructure > Java Class Loader Viewer
SAP PO의 UDF(User defined function), Adapter Module, Adapter 등을 커스텀개발을 할때 사용되는 PO의 자바 패키지나 클래스를 정리해보았습니다.
SAP NetWeaver 7.5 SP 06 Process Integration의 PI Maaping and Lookup API사이트를 참고하셔서 커스텀개발을 진행하시면 좋을것 같습니다.
이미 인터넷 상에 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일 후에 만료된다는 제약사항이 있습니다.
오래전의 국내시장의 EAI시장의 분위기와 관련 제품의수명 주기인 도입기, 성장기, 성숙기, 쇠퇴기로 정리해보면 현재 EAI의 시장이 현재 어느단계일지 생각을 하게 됩니다.
각 수명주기에대해 간략하게 정리하면
아래의 EAI관련 년도별 기사의 내용들을 보다보면 EAI의 역사의 도입기는 언제부터 시작되었고 현재는 어느단계인지 명확해지는것 같습니다.
90년대 말 국내에 EAI란 생소한 용어 알려지기 시작하여 S전자에서 EAI인프라 도입을 위한 솔루션 정보 및 제안을 주요 공급업체들에게 요청하여 국내 EAI시장이 태동하였다고 합니다.
당시주요 업체로는 NEON(New Era Of Networks)의 MQ인티그레이터와 TSI소프트의 머케이터를 필두로 프론텍, 엑티브소프트, 팁코소프트웨어 등이 소개되었다고 합니다.
EAI프로젝트를 하다보면 어떤 PM은 이런 질문을 하는 경우가 있었습니다.
'EAI가 왜 필요한거야?' 그럼 그에 답변으로
'거미줄같이 복잡하게 연계되어있는 시스템연계들을 EAI를 통해 단순하게 시스템통합을 가능하게 합니다' 라고.. 이것도 맞는답변일것 같긴하지만 어떤 사이트의 내용을 보니 좀 부끄러운 답변이기도 했던것 같습니다.
오히려 사이트 내용 처럼 간단하게
"EAI는 기업내 수많은 이기종 정보시스템 환경을 통합해서 정보 및 프로세스를 연동해 주는 인프라스트럭처라고 할수 있다."이렇게 답변하는게 뭔가 더 있어보이는것 같습니다.
'국내의 여러IT분야중에 EAI는 어떤 직무일까?' 이런 의문으로 시작하여 정리한 글인것 같습니다. 결론은
메시지지향 미들웨어(Message-oriented middleware, MOM) > EAI(Enterprise Application Integration)
미들웨어와 EAI의 차이는 2005년도 어느 문서의 내용을 보면
"EAI솔루션은 기존 애플리케이션을 변화시키지 않고 이들 간의 통신이 가능하게 한다는 점에서 미들웨어의 하나로 분류"
"미들웨어가 point-to-poing로 애플리케이션을 연결하는데 사용된 반면, EAI솔루션은 기업의 비즈니스 프로세스를 중심으로 여러애플리케이션간의 네트웤를 통합적으로 관리한다는 점에서 미들웨어와 구분"
"솔직히 도움되는 내용은 없으면 만약 PO를 오랫동안 하셨던 분이라면 깨끗하게 이전에 개발했던 방식은 잊고 새로운 마음으로 CPI를 해보시는걸 권장드리고 싶습니다."
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파일을 다운로드
DB연계시 사용되는 JDBC Receiver Adapter에서 Bind Mode를 사용할때는 일반적으로 생성하던 구조와 다르게 metadata라는 어트리뷰트와 값이 추가가 되어야하는데 이런 설정을 통해 DB연계방식으로 개발된 인터페이스의 성능이 좋아지는 경우도 있었던것 같습니다. 하지만 개발(DATE,DECIMAL같은 컬럼타입의 함수 등)이나 모니터링 상 제약이 있는 부분도 있어 연계하는 시스템의 환경에 따라 사용여부가 결정될것 같고 이런부분들에 대해 간단하게 정리하려고 합니다.
지인분이 만드신 프로그램에 Correlation ID 셋팅으로 두 서버나 인터페이스에 대한 상관관계를 만들어 낼수 있는 부분을 보게되어 좀 더 검색을 통해 간략하게 정리를 하려고 합니다.
요즘 국내에 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와 Concur간 연계방식인 Rest 채널통해 서비스 URL호출하기전에 엑세스토큰(OAuth 2.0) 인증에 대한 지원옵션에 대해 담아봤습니다.
PO에서 Concur 업무를 위한 API를 호출하기위해서는 엑세스 토큰이 필요하다고 하는데요. 제가 보았던 부분에 대해서는 1회만 엑세스토큰을 받아 계속 사용할수 있는게 아닌 주기적으로(예를들어 한시간 마다) 받아야 하는 번거로움이 있어보였습니다.

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 공식문서에서 본적도 있었던것 같습니다.