01. 연계요구사항
연계요구사항 분석이란?
서로 다른 두 시스템을 이어주는 중계 역할을 하는 연계시스템과 관련된 요구사항을 분석하는 과정
연계요구사항 분석기법
- 인터뷰 : 말 그래도, 사용자 면담
- 체크리스트 : 시스템 운영 환경, 성능, 보안, 데이터 발생 주기 등 기준에 대한 점검 (체크)
- 설문지 : 서비스 활용 목적에 따라 연계 필요 데이터 식별 및 연계 주기 등을 설문지를 통해 분석
- 델파이 기법 : 전문가의 경험적 지식을 통한 분석 기법
- 브레인 스토밍 : 인원들이 자발적으로 아이디어를 자유롭게 내며 분석
연계요구사항 분석 참고 문서
- 코드 정의서
- 테이블 정의서
➟ 개체 정의서 : 개념 모델링 단계에서 도출
➟ 테이블 정의서 : 논리 및 물리 모델링 단계에서 도출
➟ 인터페이스 명세서 (인터페이스 ID, 최대 처리 횟수, 데이터 크기, 시스템 정보, 데이터 정보)
- 응용 프로그램 구성도
- 시스템 구성도
연계요구사항 분석 절차
시스템 현황 확인 ➟ 정의서 확인 ➟ 체크리스트 작성 ➟ 인터뷰 및 면담 ➟ 연계 요구사항 분석서 작성
연계시스템의 구성
연계시스템은 연계방식에 따라 중계서버를 둘 수 있으며, `송신시스템`과 `수신시스템`으로 나눌 수 있다.
- 송신시스템 : 연계할 데이터를 데이터베이스와 어플리케이션으로부터 연계 테이블 또는 파일 형태로 생성하여 송신하는 시스템
- 수신시스템 : 수신한 연계테이블 또는 파일의 데이터를 수신 시스템에서 관리하는 데이터 형식에 맞게 변환하여 활용할 수 있도록 제공하는 시스템
- 중계서버 : 송신시스템과 수신시스템 사이에서 데이터를 송수신하고, 송수신 현황을 모니터링
연계데이터를 송수신할 때 송신부와 수신부의 데이터 타입이 다를 수 있다, 이때 수신 시스템 기준으로 데이터 타입을 재정의한다.
송신데이터 크기 > 수신 데이터 크기는 연계가 불가하지만, 송신데이터 크기 < 수신데이터 크기는 연계가 가능하다. (수신시스템 기준으로 데이터 크기로 변환)
연계 데이터 표준화
인터페이스 시스템 사이에서 교환되는 데이터는 규격화된 표준 형식을 정의해 사용해야한다.
- 인터페이스 데이터 공통부 : 인터페이스 표준항목을 포함
- 인터페이스 데이터 개별부 : 송수신 시스템에서 업무 처리에 필요한 데이터 포함
- 인터페이스 데이터 종료부 : 전송 데이터의 끝을 표시하는 문자를 포함하여 종료 표시
위와 같은 표준 방식을 통해 송수신 전문을 구성할 수 있는데, 송수신 전문은 다음과 같이 구성할 수 있다.
송수신 전문 공통부(크기 고정) : 전문 길이, 시스템 공통, 거래 공통
송수신 전문 개별부(크기 가변) : 데이터
송수신 전문 종료부(크기 고정) : 전문 종료
연계 데이터 표준화 절차
연계 범위 및 항목 정의 ➟ 연계 코드 변환 및 매핑 ➟ 연계 데이터 식별자와 변경 구분 추가 ➟ 연계 데이터 표현 방법 정의 ➟ 연계 정의서 및 명세서 작성
02. 연계 메커니즘 구성
연계 매커니즘이란?
응용 소프트웨어와 연계 대상 모듈 간의 데이터 연계 시 요구사항을 고려한 연계방법과 주기를 설계하기 위한 매커니즘
데이터를 생성하여 전송하는 송신시스템과 송신데이터를 수신하여 DB에 반영하는 수신시스템으로 구성된다.
송수신시스템의 역할은 위의 연계시스템의 역할과 같다.
연계 매커니즘의 분류
직접연계방식 | 간접연계방식 |
- 연계 및 통합 구현이 단순하며 용이 - 개발 소요 비용 및 기간이 짧음 - 중간 매개체가 없으므로 데이터 연계 처리 성능이 대체로 좋음 |
- 서로 상이한 네트워크, 프로토콜 연계 및 통합 가능 - 인터페이스 변경 시에도 장애나 오류 없이 서비스 가능 - 보안이나 업무 처리 로직을 자유롭게 반영 가능 |
- 시스템 간 결합도가 높아 시스템 변경에 민감(취약) - 암 · 복호화 처리 불가 - 연계 및 통합 가능한 시스템 환경이 제한적 |
- 연계 아키텍쳐 및 메커니즘이 복잡해 성능 저하 요소 존재 - 개발 및 적용을 위한 테스트 기간이 상대적 장기간 소요 |
연계 매커니즘의 주요 기술
- 직접연계 : DB Link(DB 링크), DB Connection(DB 커넥션), API / Open API, JDBC, Hyper Link(하이퍼 링크)
➟ DB Link : 수신 시스템에서 DB 링크 객체를 생성하고 송신 시스템에서 해당 DB 링크 객체를 직접 참조하는 방식
➟ DB Connection : 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB *Connection Pool을 생성 및 이용하여 연계 프로그램에서 연결
* Connection Pool : 데이터베이스와 연결된 커넥션을 미리 만들어서 Pool(풀) 속에 저장해두고 필요할 때 Connection을 Pool에서 가져다가 쓰고 다시 반환하는 기법
➟ *API / Open API : 송신 시스템의 DB에서 데이터를 읽어서 제공하는 어플리케이션 프로그래밍 인터페이스 프로그램
* API : 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 또는 데이터를 주고 받기 위한 데이터의 규격을 정해놓은 방법
➟ JDBC : 수신 시스템의 프로그램에서 *JDBC 드라이버를 이용하여 송신 시스템 DB와 연결
* JDBC : 데이터베이스에서 자료를 조회하거나 업데이트 하기위해 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API
➟ Hyper Link : 현재 페이지에서 다른 부분으로 가거나 전혀 다른 페이지로 이동하게 해주는 속성
- 간접연계 : EAI(연계 솔루션), Web Service / ESB, Socket(소켓)
➟ EAI : 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션들 간의 정보 전달 및 연계를 도와주는 솔루션
➟ Web Service / ESB : 웹 서비스가 설명된 *WSDL과 *SOAP 프로토콜을 이용한 시스템 간 연계
* WSDL(Web Services Description Language) : 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어
* SOAP(Simple Object Access Protocal) : HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메세지를 네트워크 상태에서 교환하는 프로토콜
➟ Socket : 소켓을 생성하여 포트를 할당하고, 클라이언트의 요청을 연결하여 통신
연계 매커니즘의 수행 절차
연계데이터 추출 및 생성 ➟ 코드 매핑 및 데이터 변환 ➟ 연계 테이블 또는 파일 생성 ➟ 로그 기록 ➟ 연계 서버 또는 송수신 어댑터(연계 서버가 없는 경우 어댑터) ➟ 전송 단계 ➟ 운영 DB에 연계 데이터 반영
03. 내외부 연계 모듈 구현
연계 모듈 기능 구현
개발하고자 하는 응용 소프트웨어와 연계 모듈 간의 세부 설계서를 확인하여 일관되고 정형화된 연계 기능을 구현할 수 있다.
연계 모듈 기능은 EAI / ESB 방식과 웹 서비스 방식으로 구분된다.
EAI(Enterprise Application Integration) 방식
EAI는 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션 간의 정보를 전달, 연계 , 통합이 가능하도록 해주는 솔루션이다.
EAI 구성요소
- EAI Platform(EAI 플랫폼) : 이기종 시스템 간 어플리케이션 상호 운영
- Adapter(어댑터) : 다양한 패키지 어플리케이션 및 기업에서 자체적으로 개발한 어플리케이션을 연결하는 데이터 입출력 도구 (EAI의 핵심 장치)
- Broker(브로커) : 시스템 상호 간 데이터가 전송될 때, 데이터 포맷과 코드를 변환하는 솔루션
- Message Queue(메세지 큐) : 비동기 메세지를 사용하는 다른 응용 프로그램 사이에서 데이터를 송수신하는 기술
- Business Workflow(비즈니스 워크플로우) : 미리 정의된 기업의 비즈니스 워크플로우에 따라 업무를 처리하는 기능
EAI 구축유형
- Point-to-Point : 가장 기초적인 어플리케이션 통합 방법으로 1:1 단순 통합 방법
- Hub & Spoke : 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식 (허브 장애 발생 시, 전체 장애 발생)
- Message Bus : 어플리케이션 사이에 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식 (뛰어난 확장성과 대용량 데이터 처리 가능)
- Hybrid : 그룹 내에서는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메세지 버스 형식을 사용하는 통합 방식 (그룹 내 환경에 맞는 작업 가능)
ESB(Enterprise Service Bus) 방식
기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션들을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처
미들웨어(Bus)를 중심으로 각각 프로토콜이 호환할 수 있도록 어플리케이션의 통합을 느슨한 결합으로 지원하는 방식
구분 | EAI | ESB |
개념 | 미들웨어(Hub)를 이용하여 비즈니스 로직을 중심으로 기업 내 어플리케이션을 통합 연계 | 미들웨어(Bus)를 이용하여 서비스 중심으로 서비스를 지원하기 위한 관련 시스템과 유기적 연계 |
수행 목적 | 기업 내부의 이기종 응용 모듈 간 통합 | 기업 간의 서비스 교환을 위해 표준 API로 통합 |
토폴로지 | Point-to-Point, Hub & Spoke, Message Bus, Hybrid |
버스 방식의 분산형 토폴로지 구성 |
표준 | 벤더 종송적 기술 적용 | 표준 기술 사용 (웹 서비스, XML 등) |
핵심 기술 | 어댑터, 브로커, 메세지 큐 | 웹 서비스, 지능형 라우터, 포맷 변환, 개방형 표준 |
통합 형태 | 어플리케이션 간의 단단한 통합 | 서비스 간의 느슨한 통합 |
적용 영역 | 기업 내부망 | 기업 내부 + 기업 외부 채널망 |
* EAI는 중앙 집중형, ESB는 버스형태의 대표적인 차이를 알아둡시다!
EAI / ESB 방식 연계 모듈 환경 구축 절차
연계 DB 또는 계정 생성 ➟ 연계를 위한 테이블 생성 ➟ 연계 응용 프로그램 구현(연계 응용 프로그램 구현 방식으로 *트리거를 활용)
* 페이지 4-24를 확인해서, 트리거 작성 SQL 코드를 알고 넘어가자 🤔
* 트리거 : 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생시 DBMS에서 자동적으로 실행되도록 구현된 프로그램이다.
Web Service 방식
네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술 (서비스 지향 아키텍처 개념을 실현하는 대표적인 기술)
Web Service 유형
- SOAP(Simple Object Access Protocol) 방식
HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메세지를 네트워크 상태에서 교환하는 프로토콜
- WSDL(Web Service Description Language) 방식
웹 서비스명, 제공 위치, 메세지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어
- UDDI(Universal Description, Discovery and Integration) 방식
웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소, 공개적으로 접근 및 검색이 가능한 레지스트리
Web Service 방식 연계 모듈 환경 구축 절차
웹 서비스 방식은 EAI / ESB 방식과 달리 실제 전송이나 전송 이력에 대한 기록 및 모니터링 기능을 별도로 구현을 해야한다
송수신 파일 경로 및 파일명 정의 ➟ 송신 연계 응용 프로그램 구현 ➟ 파일 전송(SOAP 또는 *REST 프로토콜로 전송) ➟ 수신 DB 반영 서비스 호출 처리 ➟ 수신 연계 응용 프로그램 구현
* REST(Representational State Transfer) : HTTP URI를 통해 자원을 명시하고, HTTP 메서드(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성, 조회, 갱신, 삭제 등의 명령을 적용하는 것을 의미
IPC(Inter-Process Communication) 방식
운영체제에서 프로세스 간 서로 데이터를 주고받기 위한 통신 기술
IPC 주요 기법
- 메세지 큐 : 메세지 또는 패킷 단위로 동작하여 프로세스 간 통신
- 공유 메모리 : 한 프로세스의 일부분을 다른 프로세스와 공유
- 소켓 : 클라이언트와 서버 프로세스 둘 사이에 통신을 가능하게 함
- 세마포어 : 프로세스 사이의 동기를 맞추는 기능을 제공
'개발적인 > 기타 개발적인 부분' 카테고리의 다른 글
IX. 소프트웨어 개발 보안 구축 (0) | 2022.10.09 |
---|---|
VIII. 서버 프로그램 구현 (2) | 2022.10.08 |
VII. SQL 응용 (0) | 2022.10.06 |
V. 인터페이스 (0) | 2022.10.03 |
[개발공부] 안드로이드 스튜디오 간단 계산기 구현하기 (0) | 2021.09.26 |
댓글