슬라이드 제목 없음

Download Report

Transcript 슬라이드 제목 없음

CORBA를 이용한 CIM Framework 개발
1999. 10. 29
이경렬
㈜글로벌데이타시스템
GDS
목차
프로젝트 개요
Framework
CORBA
CIM Framework
결론
㈜ 글로벌데이타시스템
GDS
프로젝트 개요
프로젝트명
객체기술과 CORBA를 이용한 분산 제조 메카트로닉스
시스템의 통합·운영 S/W 개발
연구기간
1997.1.1 ~ 1998.12.31 (24개월)
추진내용
CIM 업무 분석 및 CIM Framework 설계
객체지향 방법론을 적용한 CIM 컴포넌트 개발
CORBA를 이용한 분산 CIM 개발
㈜ 글로벌데이타시스템
GDS
프로젝트 개요 (cont.)
배경
정보 시스템 구축 생산성 저하
축적된 기술 및 소스 재사용의 어려움
반복 개발에 따른 고비용 및 장기간 소요
분산 컴퓨팅 환경 대비 취약
업무 환경 급속 변화
이종 시스템간 통합의 어려움
분산 제조 시스템 통합 기술 취약
Internet의 고성장 및 고속화
H/W 고성능화 및 저가 가속
표준(CORBA) 채택으로 global화
㈜ 글로벌데이타시스템
GDS
프로젝트 개요 (cont.)
개발방향
재사용성이 뛰어난 S/W 개발
대상 기업에 맞는 유연성이 뛰어난 S/W 개발
분산컴퓨팅환경에서 분산 시스템간 연결
Framework
분산기술 (CORBA)
㈜ 글로벌데이타시스템
높은 개발 생산성
높은 안정성
BPR효과
분산 환경 적응
GDS
Framework
Definition
A framework is a set of prefabricated software building
blocks that programmers can use, extend, or customize for
specific computing solutions.
A framework is a set of classes that embodies an abstract
design for solutions to a family of related problems.
by Taligent (www.taligent.com)
※ 특정 업무(Problem Domain)를 해결하기 위해 상호 동
작이 기정의되어 있는 객체들의 집합을 말하며, 각 객
체들은 상속 등을 통해 변경 및 확장될 수 있다.
㈜ 글로벌데이타시스템
GDS
Framework (cont.)
Structural Programming vs. Framework
Structural Programming
Framework
main()
class1
sub1()
sub3()
sub2()
F
S/W 모듈
함수
㈜ 글로벌데이타시스템
F
class2
class4
class3
child2
child3
신규작성
child class
사전작성
GDS
Framework (cont.)
Property
·A set of classes
·Default - prefabricated, abstract - behavior
·Embodied workflow(flow of execution)
·Extended by customization(deriving or overriding)
·Fewer lines of programmer’s code
·In terms of families rather than individual problems
·Better integration across applications
·Require more efforts to build and learn
·Harder to debug
㈜ 글로벌데이타시스템
GDS
Framework (cont.)
Library vs. Framework
Library
Framework
Library
Framework
·Set of classes instantiated by client
·Client calls functions
·No predefined for flow of control
·No predefined interaction
·No default behavior
㈜ 글로벌데이타시스템
·Customization by subclassing
·Calls client functions
·Controls flow of execution
·Defines object interaction
·Provides default behavior
GDS
Framework (cont.)
S/W 재사용 비교
Level 1. COPY & PASTE
Level 2. PARAMETERIZING
Level 3. DESIGN REUSE
Level 4. FRAMEWORK
교육량 초기비용
확장성
고
에러발생율
저
COPY &
PASTE
㈜ 글로벌데이타시스템
PARAMETERIZING
DESIGN
REUSE
FRAMEWORK
GDS
Framework (cont.)
구축 효율 비교
Level 1. COPY & PASTE
Level 2. PARAMETERIZING
Level 3. DESIGN REUSE
Level 4. FRAMEWORK
고
COPY & PASTE
PARAMETERIZING
구축효율
=
FRAMEWORK
DESIGN
구축대비
수정효율
저
소
㈜ 글로벌데이타시스템
시스템 규모
대
GDS
Framework (cont.)
구축 방법
step 1. Domain Analysis
문제 유형화
유사 문제 조사 및 유형 일반화
재검토 및 정교화
step 2. Design using Standards
Design Patterns 활용
기존 Framework 활용 및 확장
step 3. Design Framework
기본적 흐름 (Basic Scenario ) 설계
객체 설계 ( attributes 및 setting, verifying methods, etc. )
Event-driven Methods 설계
㈜ 글로벌데이타시스템
GDS
Framework (cont.)
Framework 적용 사례
1) WORKS : SEMATECH’s CIM FRAMEWORK
US chip manufacturing consortium (www.sematech.org)
미국반도체산업의 경쟁력 강화를 위해 업계 표준 CIM Framework
으로서 개발
Reduce cycle time,cost; increase flexibility; uniform production
operation
2) POSC : Petrotechnical Open Software Corporation
Oil and Gas companies (www.posc.org)
Build custom applications to a standard business model
3) MFC : Microsoft Foundation Class Library
Microsoft에서 제작한 GUI application framework
Windows programming을 쉽게 할 수 있는 Framework 제공
㈜ 글로벌데이타시스템
GDS
CORBA
OMA 구조
Application Objects
C,C++
smalltalk,..
Vertical Facilities
Horizontal
Healthcare Facilities..
user interface
info manage
..
Financial
...
Common Object Request Broker Architecture
93
Name
Event
Life Cycle
Persistence
94
Relationships 95
Externalization
Transactions
Concurrency
CORBA services
㈜ 글로벌데이타시스템
Security
Time
Licensing
Properties
Query
96 Trading
Change Mgmt
Data Interchabge
GDS
CORBA (cont.)
CORBA 구성도
IDL(Interface Definition Language) 제공
Client와 Object Implementation 간의 통신
통신 기능 기본 제공
Object Implementation
Client
IDL
API Lang
Dynamic
Invocation
Client
Stubs
ORB
Interface
Implementation Object
Skeletons
Adapter
ORB Core
One interface
One interface per object adapter
One interface per object operation
㈜ 글로벌데이타시스템
Proprietary interface
Normal call interface
Up call interface
GDS
CORBA (cont.)
CIM Framework에서의 CORBA 필요성
CIM 업무의 분산화
이기종 DB간 데이터 처리 요구
Global 시스템간 연동에 필요한 표준 필요
DB
CORBA
DB
㈜ 글로벌데이타시스템
GDS
CIM Framework
CIM Framework이란 - (1/2)
생산 정보 시스템(CIM)의 기본 골격(Framework)
이를 바탕으로 각 업체마다 customizing
★ ★회사
○ ○ 회사
CIM Framework
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
CIM Framework이란 - (2/2)
컴포넌트간의 연동으로 CIM 업무 구현
컴포넌트의 수정 및 확장을 통해 customizing
CORBA를 이용하여 컴포넌트 분산화
CIM XX 업무
CIM XX 업무
CORBA
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
계층 구조
UI(User Interface) 층
CIM Framework 층의 Component들을 호출한다.
CF(CIM Framework) 층
업무 구현(CIM Logic) 층
DB 작업을 위해 DDF(Distributed Data Framework) 층의
Component를 호출한다.
DDF(Distributed Data Framework) 층
DB 처리 업무를 담당하는 층
각 층은 상호 독립적이며 재사용성 및 확장성 획득.
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
계층 구조도
UI
WEB
N
UI 층
Component
Component
MC
Component
DBContainer
CF 층
...
DBObject
DDF 층
DBManager
㈜ 글로벌데이타시스템
DBVar
...
GDS
CIM Framework (cont.)
기반구조
DB : MSSQL, Oracle
CORBA Products : Orbix v2.3
C++
주문관리
생산관리
 DB Library : DBTool.h++
 Development Language :
···
재고관리
C++
MSSQL, Oracle
DBTools.h++
Orbix
ODBC
CORBA
TCP/IP
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
Distributed Data Framework 층 구조도
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
Distributed Data Framework 층 객체 관계도
ODBC 관련 객체
DBvar
MetaData
DBLocation
MetaDataManager
DBTable
DBManager
DBMProxy
CORBA 관련 객체
DBObject
DBM_i
DBContainer
MDI
MDI_i
CF 연결 객체
DBMDI
㈜ 글로벌데이타시스템
RemoteMDI
MDIProxy
GDS
CIM Framework (cont.)
CIM Framework 층 객체 관계
MD(Manufacturing Data) : 데이터 객체
MC(Manufacturing Component) : 업무 객체
모든 MD 들은 DBObject를 상속함으로써 DB 처리 기능을 가진다.
CIM 업무는 Component들간의 연동으로 구현된다.
DDF 층과는 DBContainer와 DBObject를 통해 연동한다.
Component 는 MC를 통해 Remote Component와 연동한다.
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
CIM Framework 층 객체 관계도
CIM Framework 층
Component
MC
Proxy
Component
CORBA 관련 객체
DBContainer
DBObject
...
Data Framework 층
...
MD
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
통신 경로
CIM Framework 층
Remote Side
Component
Component
CORBA
MC
Component
DBObject
DBManager
DBContainer
MDI
DBMDI
RemoteMDI
MDI_i
ODBC
CORBA
ODBC
Data Framework 층
㈜ 글로벌데이타시스템
DB
DB
GDS
CIM Framework (cont.)
MD 예 : 주문정보, OrderMD
class OrderMD : public DBObject
{
public:
RWCString sOrderID;
RWCString sCustomerID;
double dContractedTotalPrice;
// 주문번호
// 고객ID
// 총거래가격
DBvar SELOrderID;
DBvar SELCustomerID;
DBvar SELContractedTotalPrice;
OrderMD();
OrderMD& operator = (OrderMD& t);
int SortByOrderID() { return 0; }
int SortByCustomerID() { return 1; }
int SortByContractedTotalPrice() { return 2; }
};
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
MD 예 : 주문정보, OrderMD (cont.)
OrderMD::OrderMD() {
setClassName("OrderMD");
setMember(&SELOrderID, &sOrderID, "sOrderID");
setMember(&SELCustomerID, &sCustomerID, "sCustomerID");
setMember(&SELContractedTotalPrice,&dContractedTotalPrice,
"dContractedTotalPrice");
SELOrderID.setKey();
}
OrderMD& OrderMD::operator = (OrderMD& t) {
sOrderID = t.sOrderID;
sCustomerID = t.sCustomerID;
dContractedTotalPrice = t.dContractedTotalPrice;
return *this;
}
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
CIM 업무 관계도
고객관리
BOM관리
공정정보관리
수주관리
제품관리
LOT관리
LINE관리
기계관리
재고관리
자재/구매관리
생산관리
생산능력
TOOL관리
수요예측
협력업체관리
외주관리
WC관리
작업자관리
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
CIM Component 관계도
고객
제품정보
BOM
공정정보
수요예측
주문
협력업체
㈜ 글로벌데이타시스템
작업달력
MPS
MRP
스케쥴링
재고
외주
LINE
발주
기계
LOT
작업자
TOOL
GDS
CIM Framework (cont.)
CIM Component 연동 예
주문관리
고객
제품정보
MPS
BOM
공정정보
수요예측
작업달력
MRP
주문
MPS
MRP
스케쥴링
재고
외주
LINE
기계
Scheduling
발주관리
협력업체
㈜ 글로벌데이타시스템
발주
LOT
작업자
TOOL
GDS
CIM Framework (cont.)
CIM Component 내부
MC_1
COMP_A
COMP_B
MC_2
COMP_A
MC_1
MC_11
MC_12
COMP_B
COMP_BA
MC_2
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
예: MPS(Master Product Scheduling )
: 어떤 제품(product) 을 언제(due date) 까지 얼마나(quantity) 만들
것인가에 대한 구간별(per term) 대략적 생산 계획(planning)
주문
예측
재고
스케쥴
작업달력
N
요청서
A, 14개
접수
㈜ 글로벌데이타시스템
98.4
재고할당
98.5
계획
98.6
완료
GDS
CIM Framework (cont.)
MPS 분석
1.1 기본 데이터
제품 : itemid
납기일 : duedate
수량 : totalqty
단위기간 : unitterm ( = Y(년), M(월), W(주) )
구간별 생산수량 리스트 : mpslist ( list of <qty, date> )
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
MPS 분석 (cont.)
1.2 기본 업무 흐름
1) 사전 작업 : 업무 권한 확인 etc
2) target 설정 : itemid, quantity, duedate
3) 단위기간 설정 : unitterm
4) 재고 할당 : 안전 재고 고려 여부
5) 구간별 생산량 결정 : 작업달력 고려, 스케쥴 고려 등
6) 확정 및 저장 : MPS DB에 저장
7) 종료 후 작업 : MRP 구동, 종료 메시지 발신, etc.
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
MPS 설계 ( 표준 사용 )
2.1 Design Patterns 및 기존 S/W 모듈 이용
기본 업무 흐름
기존 S/W 모듈 이용
사전 작업
● 권한 확인 : MCUserPermission
Target 설정
○
단위기간 결정
○
재고 할당
● 재고 할당 : CmpInvControl
구간별 생산량 결정
○
확정 및 저장
○
사후 작업
● MRP 호출 : MCTriggerWorkFlow
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
MPS 설계 ( 업무 설계 )
2.2 신규 작성
기본 업무 흐름
신규 작성
사전 작업
○
Target 설정
● setItemID(), checkItemID() etc
단위기간 결정
● setUnitTerm(), checkUnitTerm()
재고 할당
○
구간별 생산량 결정
● 새로운 MC, MCSetMPSList 작성
확정 및 저장
● confirmMPS(), saveMPS()
사후 작업
○
㈜ 글로벌데이타시스템
GDS
CIM Framework (cont.)
MPS Model
MCUserPermission
MCTriggerWF
CmpMPS
MCSetMPSLists
CmpMRP
MCInvControl
MCWCControl
CmpInvControl
CmpWCControl
㈜ 글로벌데이타시스템
CmpXX
: main Component
MCXX
: Sub Component
GDS
결론
 CORBA와 Framework을 이용하여 CIM Framework 개발
 S/W 재사용성 및 분산 환경 적응력 증대
 구축/유지비용 절감, BPR 효과, 미래 환경 적응
S/W 재사용성
Framework
㈜ 글로벌데이타시스템
CORBA
분산 환경 적응력
GDS