• 검색 결과가 없습니다.

분산환경 기반 과학기술지식처리 지원 플랫폼 개발에 관한 연구

N/A
N/A
Protected

Academic year: 2021

Share "분산환경 기반 과학기술지식처리 지원 플랫폼 개발에 관한 연구"

Copied!
57
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)
(2)
(3)

목차

1. 서론 ···1

2. 관련 연구 ···2

3. 그리드 관련 표준 기술 ···4

3.1 OGSA(Open Grid Services Architecture) ···4

3.2 WSRF(Web Services Resource Framework) ···5

3.3 GT4(Globus Toolkit 4) ···8 4. 그리드 기반 과학기술지식처리 프레임워크 구축 ···10 4.1 과학기술지식발견 개요 ···10 4.2 그리드 기반 과학기술지식처리 프레임워크 ···11 4.3 서비스 개발을 위한 WSRF의 효과적인 활용 ···13 4.4 과학기술지식처리 서비스 개발 및 배치 ···15 5. 과학기술지식처리 워크플로우 도구 개발 ···26 6. 그리드 테스트베드 구축 ···30 7. 결론 ···32 [부록] ···34 1. Globus 툴킷 분석 ···34

2. Data Mining Grid 분석 ···38

3. Knowledge Grid 분석 ···45

(4)

그림 목차

(그림 1) OGSA, Web Service, WSRF, 그리고 GT4 사이의 관계 ···9

(그림 2) OGSA, Web Services, WSRF, 그리고 GT4 사이의 계층도 ··· 9

(그림 3) SINDI의 개념적 시스템 아키텍처 ···11 (그림 4) SINDI-Grid 아키텍처 ···12 (그림 5) Factory/Instance 디자인 패턴을 사용한 ECS의 수행 과정 ···14 (그림 6) SINDI-Workflow 도구 ···26 (그림 7) SINDI-Grid 프레임워크를 위한 테스트베드 ···30 (그림 8) 과학기술핵심개체 및 개체들 간의 연관관계를 표현해주는 시각 화 도구 ···31 (그림 9) GT3에서 GT4로의 서비스 아키텍처 변화 ···35 (그림 10) GT4의 컴포넌트 구성도 ···37

(그림 11) Data Mining Grid 아키텍처 ···40

(그림 12) VEGA 인터페이스 ···47

(5)
(6)

2. 관련 연구

대용량 데이터를 처리하기 위해서 다양한 형태의 분산 데이터 마이닝 프레임워크에 대한 연구가 이루어지고 있다. 이 중에서 비교적 최근에 도 래한 그리드 컴퓨팅 기반의 데이터 마이닝 프레임워크인 GridMiner[1], MyGrid[2], DiscoveryNet[3], ADMIRE[4]와 같은 시스템들이 대용량의 데 이터 처리 및 복잡한 알고리즘을 실행하기 위한 효과적인 플랫폼이라는 것이 입증되면서 그리드 컴퓨팅 기술의 활용 가치가 점점 높아지고 있다. 더욱이, OGSA(Open Grid Services Architecture)[5]와 WSRF(Web Services Resource Framework)[6] 표준이 발표되고 GT4(Globus Toolkit 4)[7]에서 이러한 표준들이 구현되면서, 그리드 연구개발 커뮤니티들은 웹 서비스의 확장된 개념으로서 그리드 서비스를 정의하고 최종 사용자가 직 접적으로 활용할 수 있는 보다 고차원적인 분산 그리드 서비스를 개발하 기 시작했다[8, 9, 10]. 결과적으로 그리드 기반 지식발견 프레임워크는 기 능의 유연한 통합 및 확장을 위해서 SOA(Service Oriented Architecture) 구조로 변화하고 있으며, 사용자가 직접 자신이 원하는 지식을 추출하고 이를 서비스할 수 있는 개방형 정보 분석 체제로 발전하고 있다.

(7)
(8)

3. 그리드 관련 표준 기술

그리드 컴퓨팅은 글로벌한 인터넷 인프라 환경을 기반으로 가용한 모든 정보, 자원, 기술을 공유하기 위한 분산 컴퓨팅 모델로서 지리적으로 분산 된 PC, 고성능 컴퓨터, 대용량 저장 장치, 데이터베이스, 첨단 실험장비 등의 다양한 컴퓨팅 자원들을 인터넷을 통해 연동하는 기술이다. 그리드 컴퓨팅 기술 자체가 새롭게 등장한 것은 아니고 그 동안 발전되어 온 인 터넷 기술을 토대로 한 단계 더 발전시키기 위한 환경이다. 과학기술지식처리 프레임워크를 구축하기 위해서 그리드 컴퓨팅 환경을 실현해주는 미들웨어를 사용해야 하는데, 본 연구에서는 Globus 툴킷 4.0 을 사용하였다. 그런데 이러한 Globus 툴킷을 사용하기 전에 숙지해야 할 몇 가지 핵심 개념이 있다. 본 장에서는 그러한 핵심 개념들의 간략한 개 요를 설명하도록 한다.

3.1 OGSA(Open Grid Services Architecture)

그리드 애플리케이션은 일반적으로 여러 개의 서로 다른 컴포넌트로 구 성된다. 그리드 애플리케이션이 가지고 있는 전형적인 컴포넌트는 다음과 같다. ➀ VO Management Service 어떤 노드와 어떤 사용자가 각각의 Virtual Organization에 참여하고 있 는지를 관리하는 기능

Resource Discovery and Management Service

그리드 상의 애플리케이션의 요구사항에 적합한 리소스를 발견하고 관 리하는 기능

Job Management Service

(9)

그리드 상에서 보안 기능을 제공 ➄ Data Management Service

데이터 관리를 수행하는 기능

이러한 서비스들은 각자의 목적을 달성하기 위해서 끊임없이 상호작용 하는데, 예를 들면 Job Management Service는 작업의 요구사항에 부합되 는 계산 리소스를 찾기 위해서 Resource Discovery Service에게 여러 가 지 정보를 요구한다. 이와 같이 그리드 애플리케이션을 위한 매우 많은 서비스들이 존재하고, 또한 서비스들 사이의 많은 상호작용이 발생하는데 이러한 복잡성을 해결하기 위해서는 각각의 서비스 종류에 대한 공통의 인터페이스를 정의하는 표준을 만들어야 한다.

GGF(Global Grid Forum, http://www.ggf.org)에 의하여 정의된 OGSA(Open Grid Services Architecture)는 그리드 기반의 애플리케이션 을 위해서 공통되고 표준적인, 그리고 개방된 아키텍처를 정의한다. 결국 OGSA의 목적은 그리드 애플리케이션에서 필요로 하는 모든 서비스들에 대한 표준 인터페이스 집합을 정의함으로써 이러한 서비스들을 실용적으 로 표준화하는 것이다.

3.2 WSRF(Web Services Resource Framework)

(10)
(11)

WS-ResourceLifetime 리소스는 언제든지 생성되고 소멸될 수 있는 중요한 생명 주기를 갖게 되는데, WS-ResourceLifetime은 이러한 리소스의 생명주기를 관리하기 위한 기본적인 매커니즘을 제공한다. ➃ WS-ServiceGroup WS-ServiceGroup은 웹 서비스 혹은 WS-Resources를 함께 묶어서 그 룹핑하는 방법에 대해서 명시한다. 이것은 서로 다른 서비스들을 함께 그 룹핑하는 것을 허용하기 때문에 좀 더 강력한 다른 서비스를 생성하는 기 본이 된다. ➄ WS-BaseFaults WS-Service 호출 중에 무언가가 잘못되었을 때 실패를 레포팅하는 표 준적인 방법을 제공하는 명세서이다. WSRF 명세서는 아니지만 WSRF와 관련된 명세서로 2개의 명세서가 더 있는데 이것들 또한 간략하게 정리해보면 다음과 같다. ➀ WS-Notification WS-Notification은 WSRF 명세서 집합은 아니지만 그것과 매우 밀접 하게 관련된 또 다른 명세서이다. 이 명세서는 웹 서비스를 notification producer로 설정하고 특정 클라이언트를 notification consumers (혹은 subscribers)로 설정하여 WS-Resources에서 변화가 발생하면 해당 내용 을 등록된 subscribers에게 통지하도록 한다. 다만 이때 모든 변화가 통지 되는 것은 아니고 웹 서비스 프로그래머가 설정해 놓은 것만 통지가 된 다.

(12)

WS-Addressing 명세서는 웹 서비스에 대한 주소 지정을 위해서 일반 URI보다 활용성이 좋은 매커니즘을 제공한다. 좀 더 세부적으로 웹 서비 스와 리소스의 쌍인 WS-Resource에 대한 주소를 지정하기 위해서 WS-Addressing을 사용한다. 3.3 GT4(Globus Toolkit 4) Globus Alliance(http://www.globus.org)에 의해서 개발된 소프트웨어 툴킷인 Globus 툴킷은 그리드 기반 애플리케이션을 프로그램하는데 사용 한다. 이 툴킷은 그리드 애플리케이션을 개발하는데 사용할 수 있는 여러 개의 고 수준 서비스들을 제공하는데 이러한 서비스는 OGSA에서 요구하 는 추상적인 요구사항의 대부분을 만족한다. 달리 말하면 Globus 툴킷은 리소스 모니터링 및 관리 서비스, 작업 제출 인프라스트럭처, 보안 인프라 스트럭처, 그리고 데이터 관리 서비스와 같이 OGSA에서 정의된 여러 가 지 서비스들을 구현하고 있다. Globus 툴킷 4는 WSRF 명세서를 구현하 고 있으며, 이러한 WSRF 기반 위에서 OGSA에서 요구하고 있는 여러 가지 서비스들을 구현하여 제공하고 있다. 결과적으로 툴킷이 제공하는 대부분의 서비스들이 WSRF의 기반 위에서 구현되는 것이기 때문에 WSRF는 툴킷의 가장 중요한 부분을 차지하고 있다. 하지만 WSRF를 이 용하지 않은 기능도 제공하고 있기 때문에 WSRF가 GT4의 모든 것은 아니고 단지 툴킷의 일부분이라고 말할 수 있다.

(13)

(그림 1) OGSA, Web Service, WSRF, 그리고 GT4 사이의 관계

그리고 이러한 관계를 계층적으로 정리해보면 그림 2와 같다.

(그림 2) OGSA, Web Services, WSRF, 그리고 GT4 사이의 계층도

(14)
(15)
(16)

에서는 크게 문제가 되지 않겠지만 대용량의 데이터베이스를 대상으로 하 였을 경우에는 심각한 성능 저하를 가져올 수 있다. 시스템을 구성하는 하부 엔진의 일부분에서만 과도한 리소스 및 실행 시간이 필요한 경우에 도 전체 시스템의 성능에 악영향을 끼치게 된다. 이와 같이 기존의 시스 템이 처리할 수 없는 대용량의 문헌을 고속으로 처리할 수 있는 새로운 방법론으로 그리드가 소개되면서 다양한 지식처리 시스템에 적용되기 시 작했다. 더 나아가 웹 서비스의 호출에 있어서 상태 정보를 유지할 수 있 는 기능이 제공되면서 WSRF 기반의 분산 지식 마이닝 시스템의 개발이 활성화되고 있다. 본 연구에서는 이러한 특징을 잘 활용하여 그리드 컴퓨 팅 기반에서 SINDI와 같은 과학기술지식처리 애플리케이션의 생성을 쉽 게 도와주는 SINDI-Grid 프레임워크를 정의하고 개발하였다. SINDI-Grid 의 실제적인 시스템 아키텍처는 그림 4와 같다. (그림 4) SINDI-Grid 아키텍처

(17)
(18)

Factory/Instance 패턴은 소프트웨어 디자인에서 잘 알려진 디자인 패 턴으로, 객체의 Instance를 new 연산을 이용하여 직접적으로 생성하지 않 고 create 연산을 제공하는 Factory를 통하여 생성한다. GT4의 WSRF 명 세서는 다중 리소스를 처리할 때 이 패턴을 따르도록 권고한다. 따라서 상태 정보를 유지하는 웹 서비스를 제공하기 위해서는 리소스를 생성하는 의무를 지닌 Factory Service와 리소스 안에 포함된 정보를 실제로 접근 하여 사용하는 Instance Service를 구현해야 한다. 그림 5는 SINDI-Grid 서비스 중의 하나인 Execution Control Service를 수행할 때, 클라이언트 인터페이스와 웹 서비스 그리고 리소스 사이에서 Factory/Instance 디자 인 패턴이 어떻게 적용되고 있는지를 보여준다.

(그림 5) Factory/Instance 디자인 패턴을 사용한 ECS의 수행 과정

(19)

<?xml version="1.0" encoding="UTF-8"?>

registerTask 혹은 executeTask와 같은 연산을 제공한다. 클라이언트 인 터페이스에서 Execution Control Service에 대한 새로운 리소스 생성 요 청이 발생하면 ECS Factory Service는 ECS Resource Home을 사용하여 새로운 ECS Resource를 생성하고 초기화한다. 그리고 ECS Resource Home은 생성된 ECS Resource를 식별할 수 있는 키와 함께 해당 리소스 를 저장 및 관리한다. 그리고 나서 ECS Factory Service는 ECS Instance Service와 최근에 생성된 ECS Resource로 구성되어 있는 WS-Resource 에 대한 EPR을 반환하는데, 이 EPR을 이용하여 이후 모든 작업에서 특 정 WS-Resource를 유일하게 참조할 수 있다. WS-Resource는 특정 리소 스와 서비스의 쌍으로서 Instance Service의 URI와 새롭게 생성된 리소스 의 키를 가지고 있다. ECS Factory Service에 의해서 반환된 EPR을 이 용하여 클라이언트 인터페이스는 ECS Instance Service에서 제공하는 과 학기술지식처리를 위한 그리드 서비스를 호출할 수 있다.

4.4 과학기술지식처리 서비스 개발 및 배치

(20)

<definitions name="FactoryService" targetNamespace="http://www.globus.org/namespaces/sindi/FactoryService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.globus.org/namespaces/sindi/FactoryService" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--============================================================ T Y P E S ============================================================--> <types> <xsd:schema targetNamespace="http://www.globus.org/namespaces/sindi/FactoryService" xmlns:tns="http://www.globus.org/namespaces/sindi/FactoryService" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="../../ws/addressing/WS-Addressing.xsd" /> <!-- REQUESTS AND RESPONSES -->

<xsd:element name="createResource"> <xsd:complexType/> </xsd:element> <xsd:element name="createResourceResponse"> <xsd:complexType> <xsd:sequence> <xsd:element ref="wsa:EndpointReference"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </types> <!--============================================================ M E S S A G E S ============================================================--> <message name="CreateResourceRequest">

<part name="request" element="tns:createResource"/> </message>

(21)
(22)

<types>

<xsd:schema targetNamespace="http://www.globus.org/namespaces/sindi/RMSService_instance" xmlns:tns="http://www.globus.org/namespaces/sindi/RMSService_instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- REQUESTS AND RESPONSES -->

<xsd:element name="publishData" type="xsd:string"/>

<xsd:element name="publishDataResponse" type="xsd:string"/> <xsd:element name="publishProgram" type="xsd:string"/>

<xsd:element name="publishProgramResponse" type="xsd:string"/> <xsd:element name="deleteData" type="xsd:int"/>

<xsd:element name="deleteDataResponse" type="xsd:string"/> <xsd:element name="deleteProgram" type="xsd:int"/>

<xsd:element name="deleteProgramResponse" type="xsd:string"/> <xsd:element name="searchData" type="xsd:string"/>

<xsd:element name="searchDataResponse" type="xsd:string"/> <xsd:element name="searchProgram" type="xsd:string"/>

<xsd:element name="searchProgramResponse" type="xsd:string"/> <xsd:element name="discoverComputer" type="xsd:string"/>

<xsd:element name="discoverComputerResponse" type="xsd:string"/> <!-- RESOURCE PROPERTIES -->

<xsd:element name="metadata" type="xsd:string"/> <xsd:element name="RMSResourceProperties"> <xsd:complexType>

<xsd:sequence>

(23)

<!--============================================================ M E S S A G E S

============================================================--> <message name="PublishDataInputMessage">

<part name="parameters" element="tns:publishData"/> </message>

<message name="PublishDataOutputMessage">

<part name="parameters" element="tns:publishDataResponse"/> </message>

<message name="PublishProgramInputMessage">

<part name="parameters" element="tns:publishProgram"/> </message>

<message name="PublishProgramOutputMessage">

<part name="parameters" element="tns:publishProgramResponse"/> </message>

<message name="DeleteDataInputMessage">

<part name="parameters" element="tns:deleteData"/> </message>

<message name="DeleteDataOutputMessage">

<part name="parameters" element="tns:deleteDataResponse"/> </message>

<message name="DeleteProgramInputMessage">

<part name="parameters" element="tns:deleteProgram"/> </message>

<message name="DeleteProgramOutputMessage">

<part name="parameters" element="tns:deleteProgramResponse"/> </message>

<message name="SearchDataInputMessage">

<part name="parameters" element="tns:searchData"/> </message>

<message name="SearchDataOutputMessage">

<part name="parameters" element="tns:searchDataResponse"/> </message>

<message name="SearchProgramInputMessage">

<part name="parameters" element="tns:searchProgram"/> </message>

(24)

<part name="parameters" element="tns:searchProgramResponse"/> </message>

<message name="DiscoverComputerInputMessage">

<part name="parameters" element="tns:discoverComputer"/> </message>

<message name="DiscoverComputerOutputMessage">

(25)

package kisti.sindi.services.rms.impl; import java.util.Vector;

import java.rmi.RemoteException; import org.globus.wsrf.ResourceContext;

import kisti.sindi.stubs.RMSService_instance.PublishResponse; public class RMSService {

private RMSResource getResource() throws RemoteException { Object resource = null;

try {

resource = ResourceContext.getResourceContext().getResource(); } catch (Exception e) {

throw new RemoteException("", e); }

RMSResource rmsResource = (RMSResource)resource; return rmsResource;

}

public String publishData(String dataMetadata) throws RemoteException { RepositoryManager repositoryManager = new RepositoryManager(); Vector<DataDescription> dataDescriptionVector = ResourceDescriptionManager.parseDataDescription(dataMetadata);

String message = repositoryManager.insertData(dataDescriptionVector, getResource());

return message; }

(26)

ResourceDescriptionManager.parseProgramDescription(programMetadata);

String message = repositoryManager.insertProgram(programDescriptionVector, getResource());

return message; }

public String deleteData(int dataId) throws RemoteException {

RepositoryManager repositoryManager = new RepositoryManager(); String message = repositoryManager.deleteData(dataId, getResource()); return message;

}

public String deleteProgram(int programId) throws RemoteException { RepositoryManager repositoryManager = new RepositoryManager(); String message = repositoryManager.deleteProgram(programId, getResource());

return message; }

public String searchData(String query) throws RemoteException {

RepositoryManager repositoryManager = new RepositoryManager(); return repositoryManager.searchData(query, getResource()); }

public String searchProgram(String query) throws RemoteException { RepositoryManager repositoryManager = new RepositoryManager(); return repositoryManager.searchProgram(query, getResource()); }

public String discoverComputer(String query) throws RemoteException { RepositoryManager repositoryManager = new RepositoryManager(); return repositoryManager.discoverComputer(query, getResource()); }

}

(27)

<?xml version="1.0" encoding="UTF-8"?>

<jndiConfig xmlns="http://wsrf.globus.org/jndi/config"> <!-- Instance service -->

<service name="sindi/RMSService">

(28)

<!-- Factory service --> <service name="sindi/RMSFactoryService"> <resourceLink name="home" target="java:comp/env/services/sindi/RMSService/home"/> </service> </jndiConfig> <?xml version="1.0" encoding="UTF-8"?> <deployment name="defaultServerConfig" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- Instance service -->

<service name="sindi/RMSService" provider="Handler" use="literal" style="document"> <parameter name="className" value="kisti.sindi.services.rms.impl.RMSService"/> <wsdlFile>share/schema/rms/RMSInstanceService/RMS_service.wsdl</wsdlFile>

<parameter name="securityDescriptor" value="etc/kisti_sindi_services_rms/security-config-rms.xml"/>

<parameter name="allowedMethods" value="*"/>

<parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/> <parameter name="scope" value="Application"/>

<parameter name="providers" value="GetRPProvider"/> </service>

<!-- Factory service -->

<service name="sindi/RMSFactoryService" provider="Handler" use="literal" style="document">

<parameter name="className" value="kisti.sindi.services.rms.impl.RMSFactoryService"/>

<wsdlFile>share/schema/rms/RMSFactoryService/Factory_service.wsdl</wsdlFile> <parameter name="allowedMethods" value="*"/>

<parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/> <parameter name="scope" value="Application"/>

<parameter name="instance" value="sindi/RMSService"/> </service>

</deployment>

(29)

rms,kisti/sindi/services/rms,schema/rms/RMSInstanceService/RMSInstance.wsdl,schema/rms/RM SFactoryService/RMSFactory.wsdl http\://www.globus.org/namespaces/sindi/RMSService_instance=kisti.sindi.stubs.RMSService_inst ance http\://www.globus.org/namespaces/sindi/RMSService_instance/bindings=kisti.sindi.stubs.RMSSe rvice_instance.bindings http\://www.globus.org/namespaces/sindi/RMSService_instance/service=kisti.sindi.stubs.RMSSer vice_instance.service 4) Ant를 이용하여 모든 파일을 컴파일하고 GAR 파일을 생성한다. [globus@s4search-A01 grid_service]$ globus-build-service.sh rms 위의 명령을 수행하기 전에 build.mappings 파일과 namespace2package.mappings 파일을 아래와 같이 생성한다.

build.mappings

namespace2package.mappings

5) GT4 도구를 이용하여 서비스를 배치한다.

[globus@s4search-A01 grid_service]$ globus-deploy-gar kisti_sindi_services_rms.gar

(30)

5. 과학기술지식처리 워크플로우 도구 개발

(31)
(32)

<?xml version="1.0" encoding="EUC-KR"?>

<!-- 워크플로우 편집기를 이용하여 작성된 작업 흐름도 대한 실행규칙을 정의 --> <!ELEMENT ExecutionRule (BasicInformation, TaskSequence)>

<!ATTLIST ExecutionRule

id CDATA #REQUIRED>

<!-- 실행규칙에 관련된 일반적인 정보를 정의 -->

<!ELEMENT BasicInformation (Name, Explanation, Date, Creator)> <!ELEMENT Name (#PCDATA)>

<!ELEMENT Explanation (#PCDATA)> <!ELEMENT Date (#PCDATA)> <!ELEMENT Creator (#PCDATA)>

<!-- 실행규칙에 명시된 작업명령의 흐름을 정의 --> <!ELEMENT TaskSequence (Task+)>

(33)

<!ELEMENT FlowList (Flow+)>

<!ELEMENT Flow (SourceList?, Destination)> <!-- 작업명령 수행을 위한 Source 정의 --> <!ELEMENT SourceList (Source+)>

<!ELEMENT Source (Computer, DataList)> <!ELEMENT Computer (#PCDATA)> <!ELEMENT DataList (Data+)> <!ELEMENT Data (#PCDATA)>

<!-- 작업명령 수행을 위한 Destination 정의 --> <!ELEMENT Destination (Computer, Program)>

<!ELEMENT Program (Command, OptionList?, ResultList)> <!ELEMENT Command (#PCDATA)>

(34)
(35)
(36)
(37)
(38)

[부록]

부록 1. Globus 툴킷 분석 Globus 툴킷은 그리드 컴퓨팅 환경을 제공하기 위해서 만들어진 미들 웨어로서 전 세계적인 그리드 개발 과제에서 가장 많이 사용되고 있다. 그 이유는 Globus 툴킷이 분리될 수 없는 단일 시스템이 아니라 그리드 에서 필요로 하는 다양한 서비스들을 독립적인 요소로써 제안하고, 기존 에 존재하는 각 시스템 및 네트워크의 관리 정책이나 운영 도구들을 무시 하지 않고 각 요소들과 협력하여 그리드를 이루어 나가기 때문이다. 또한 하드웨어 측면이나 소프트웨어 측면에서 상이한 시스템들 간에 성능 저하 를 줄이면서 통합해나가기 때문이다. Globus 툴킷 버전 4는 OGSA와 WSRF를 구현하고 있는 미들웨어이다. OGSA(Open Grid Service Architecture)는 인터넷상에서 애플리케이션 및 컴퓨팅 자원을 공유할 수 있는 통합된 개념으로 2002년 2월 Globus Grid Forum 4에서 발표되었다. 이것은 인프라 자원의 공유를 위한 그리드 기 술과 애플리케이션의 공유를 위한 웹 서비스 표준을 상호 결합한 개념(개 방형 통합 기술 표준)으로서 기존 글로버스의 단점을 보완하기 위해서 글 로버스의 장점과 웹 서비스의 주요 요소인 XML, WSDL, SOAP, UDDI 등의 기술 표준을 통합하여 그리드 서비스의 개념을 확장하였다. 이러한 OGSA에 기초한 명세서인 OGSI(Open Grid Service Infrastructure) 규약 에 따라 GT3가 2003년 7월에 발표되었다. 이러한 와중에 2004년 1월 Globus World에서 웹 서비스 표준을 기반으로 효율적인 자원 관리를 위 해 확장된 표준안인 WSRF(Web Services Resource Framework)가 소개 되면서 2005년 5월에 WSRF에 기초한 GT4 발표되었다. 이로써 그리드와 웹 서비스의 통합 아키텍처인 OGSA가 차세대 그리드 표준 아키텍처로 한 걸음 더 발전하는 계기가 되었다.

(39)

합이 쉽게 이루어진 이유는 개념에 있어서 WSRF가 좀 더 웹 서비스를 사용하기 용이하게 만들어졌으며 기존의 OGSI를 크게 수정하지 않았기 때문이다. 다시 말해서 기존의 웹 서비스 인프라에 사용할 수 있게 보완 된 OGSI를 WS-Resource 개념을 도입하여 WSRF 형태로 재구성하면서 웹 서비스 명세서로 바꾸었다. 이를 통해 OGSA는 곧바로 웹 서비스 위 에 자연스럽게 통합되어 올려지게 되었고, 비로소 그리드는 실제적으로 웹 서비스를 기반으로 구축되고 동작하게 되었다. Globus 툴킷은 버전 4로 발전하면서 기존과 다르게 새로운 요소가 기 본 서비스 모듈로 추가되었다. 웹 서비스를 실행하기 위한 환경으로 Java WS Core, C WS Core, 그리고 Python WS Core가 추가되었고, 다음으로 신뢰할 수 있는 파일 전송을 위한 RFT가 추가되었다. 또한 기존의 globus_io를 대체해 보다 많은 개발 API를 제공하는 XIO가 제공되었고, 새로운 버전의 GridFTP 서버가 추가되었다.

Globus 툴킷 버전 3에서 버전 4로 업그레이드되면서 그리드 서비스의 아키텍처가 그림 9와 같이 변화하였다.

(그림 9) GT3에서 GT4로의 서비스 아키텍처 변화

(40)

Common Runtime

- Web & Pre-Web services를 제공

- Java WS Core, C WS Core, Python WS Core, XIO, C Common Libraries

Security

- 안전한 통신과 Proxy를 이용한 SSO(Single Sing-On) 제공

- CAS(Community Authorization Service), Delegation Service, WS(also Pre-WS) Authentication & Authorization, Credential Management, GSI-OpenSSH, SweGrid Accounting System

Data Management

- 데이터 이동과 데이터 복제 담당

- RFT(Reliable File Transfer), GridFTP, RLS(Replica Location Service), OGSA-DAI(Data Access & Integration), DRS(Data Replication Service) ➃ Information Service - 그리드 상의 리소스와 서비스를 발견하고 모니터링함 (자원들의 상태 정보를 파악) - WS MDS(MDS4), Pre-WS MDS(MDS2) ➄ Execution Management - 그리드 컴퓨팅 리소스 상에 job을 제출하고 모니터링하고, 취소하기 위한 서비스를 제공(실제적인 실행 관리를 담당)

(41)

Accounts

Globus 툴킷 버전 4를 구성하는 컴포넌트의 구성도는 그림 10과 같다.

(42)

부록 2. Data Mining Grid 분석

데이터 마이닝 애플리케이션의 복잡성이 증가하면서 리소스에 대한 요 구 사항도 함께 증가하였다. 이러한 상황에서 그리드 컴퓨팅을 데이터 마 이닝에 접목시키려는 작업이 많이 이루어지고 있다. 그러나 그리드 기술 이 대용량 데이터 마이닝 작업에 적용되기 전에 해결되어야 할 많은 이슈 들이 있는데, 이러한 이슈들을 논의해보기 위해서 Data Mining Grid 시 스템이 개발되었다.

(43)

수 있어야 한다. 마지막으로 기존에 존재하는 하드웨어나 소프트웨어 리 소스의 탐색 성능을 향상시켜야 한다. 3) 사용하기 쉬운 시스템을 만들어야 한다. 도메인 한정적인 사용자에게 는 그리드의 복잡한 세부 기술을 숨기고 기술적 지식이 있는 사용자에게 는 애플리케이션의 세부 사항을 정의하고, 설정하고, 파라메터화할 수 있 는 방법을 제공해야 한다.

Data Mining Grid 시스템은 3개의 원칙에 입각하여 설계되었다. 첫 번 째로 Service-Oriented Architecture(SOA)인데, 이것은 유연한 방법으로 지리적으로 분산된 비즈니스 기능을 공유하도록 지원한다. SOA의 중요한 장점은 유연한 통합, 재사용, 확장성, 상호 운용성, 그리고 기반 기술로부 터의 서비스 추상화와 같은 것들이 있다. 두 번째로 Data Mining Grid 시스템의 유연한 발전을 위하여 Open Grid Service Architecture와 Web Services Resource Framework의 2개의 중요한 분산 컴퓨팅 표준을 지원 하도록 설계되었다. 세 번째로 개발의 속도를 빠르게 하고 비용을 줄이기 위해서 이미 존재하는 개방된 기술을 이용하여 시스템을 설계하였다.

(44)

(그림 11) Data Mining Grid 아키텍처

Data Mining Grid의 시스템 구조는 4개의 레이어로 구성되어 있는데, 상위 레이어의 컴포넌트는 하위 레이어에서 조직된 컴포넌트를 사용한다. 1) Software & hardware resources layer는 맨 아래 기반

소프트웨어 리소스는 데이터 마이닝 애플리케이션과 데이터 리소스로 구성되어 있다. 데이터 리소스는 데이터베이스와 파일 시스템을 의미한다. 하드웨어 리소스는 처리장치와 주-보조 저장 장치, 그리고 컴퓨터 클러스 터로 구성되어 있다.

2) Globus toolkit 4 layer는 시스템의 핵심 그리드 미들웨어 컴포넌트를 설명

OGSA의 요구사항을 만족시키고 WSRF를 구현함으로써 핵심 그리드 미들웨어 기능을 제공한다. 제공하는 몇 가지 중요한 컴포넌트에 대해서 살펴보면 다음과 같다.

(45)

그리드 상의 소프트웨어와 하드웨어 리소스 그리고 그것들의 상태를 기 술하는 XML 문서를 저장 및 검색하기 위한 기반 시스템으로서 Data Mining Grid의 상위 레벨 서비스(Resource Broker & Information Service)의 기능을 구현하기 위해서 사용된다.

Data management 컴포넌트

그리드 파일 전송 기능(GridFTP, Reliable File Transfer service) 제공 과 OGSA-DAI(Data access & integration tools)와 같은 데이터 서비스 를 제공한다. OGSA-DAI는 파일, 관계형 DB, XML DB에 그리드 가능한 접근을 제공한다.

Java Commodity Grid Kit 사용

GridFTP 서버를 설치하지 않은 클라이언트 기계의 애플리케이션이 파 일을 그리드 스토리지 서버에 혹은 서버로부터 전송이 가능하도록 한다. ➃ Execution management tools

원격지 프로세싱의 초기화, 모니터링, 관리, 그리고 상호 조정을 통제한 다. GT4는 웹 서비스 버전의 Grid Resource Allocation & Management(WS-GRAM) 인터페이스를 제공하는데 이것은 웹 서비스 버전의 작업 실행을 담당한다. Data Mining Grid는 로컬 클러스터 매니 저와 상호작하는 WS-GRAM의 상대적으로 제한된 기능을 극복하기 위해 서 WS-GRAM의 execution adaptor의 기능을 개선시켰다.

(46)

업을 선택된 사이트에 전송하고 모니터링한다. 이 전송 프로세스는 데이 터와 데이터 마이닝 애플리케이션, 그리고 환경 변수를 셋팅하는 작업을 포함한다. 작업이 끝나면 데이터를 전달받고 작업을 깨끗하게 치우는 일 을 수행한다. 알고리즘을 데이터에 선적하는 것뿐만 아니라 데이터를 알 고리즘에 선적하는 것을 지원한다(다양한 서비스 시나리오 가능). ➁ 정보 서비스는 다양한 리소스와 서비스의 발견, 특성 파악, 모니터링을 지원하기 위해서 디자인되었다. 이것은 그리드 가능한 소프트웨어 리소스 (다시 말해서 데이터 마이닝 애플리케이션을 기술하는 ADS 인스턴스)의 레코드를 유지하기 위해서, 그리고 이용 가능한 클러스터, 스토리지, CPU 처리량, 운영체제와 같은 리소스들에 대한 정보를 제공하기 위해서 하부 에 존재하는 MDS4를 이용하여 레지스트리를 생성한다. 사용자는 애플리 케이션 이름, 벤더, 버전, 기능적 설명 등과 같은 ADS 속성을 따라서 소 프트웨어 리소스에 대한 레지스트리를 검색할 수 있다. 리소스 브로커 역 시 작업 실행을 계획하고 할당하고 수행하기 위해서 레지스트리를 필요로 한다. ➂ 분산된 데이터베이스를 통합하기 위해서, 데이터 변환을 수행하기 위 해서, 데이터에 대한 요약 정보를 생성하기 위해서, 그리고 데이터를 포맷 팅하기 위해서 데이터 서비스를 사용한다. 데이터 서비스는 OGSA-DAI API를 가지고 개발된 클라이언트 집합에 의하여 접근된다. 데이터 서비스 는 OGSA-DAI용 데이터 리소스로서 설정되는 데이터 집합에 대해 데이 터 마이닝 특징적인 기능을 제공하기 위해서 OGSA-DAI의 기능을 확장 한다.

4) Data Mining Grid Client components layer는 Data Mining Grid 애플 리케이션의 클라이언트 측 컴포넌트를 설명

(47)

여기서 최종 사용자는 2개의 애플리케이션 클라이언트 타입 중에서 자신 의 전문지식에 따라서 클라이언트를 선택할 수 있다. 첫 번째로 워크플로 우 편집기는 좀 더 복잡하고 상호작용적인 애플리케이션으로서 Triana 워크플로우 편집기에 기반을 두고 있다. 이것은 데이터 마이닝 애플리케 이션의 세세한 사용자 컨트롤을 쉽게 하기 위해서 디자인되었다. 유연한 워크플로우 구성, 파라메터 설정, 입력과 출력 데이터 흐름 등을 지원한 다. 파일을 그리드 스토리지 서버에 전송하고 전송 받는 것뿐만 아니라 원격지에서 브라우징하는 것들을 포함한 다양한 워크플로우 컴포넌트들을 제공한다. 워크플로우 컴포넌트 사이의 연결 시에, 그리고 사용자에 의하 여 수동으로 어떤 파라메타가 입력될 때 타입 검사가 수행된다. 두 번째 로 고정된 웹 클라이언트는 훨씬 단순한 상호작용을 제공하기 위한 도구 로서 사용하기 쉽도록 하는데 중점을 두고 있다. 이것은 하부에 존재하는 데이터 마이닝과 그리드 기술에 대한 흥미 혹은 지식을 별로 가지고 있지 않은 도메인 한정적인 최종 사용자를 위하여 디자인되었다.

(48)

- 애플리케이션의 OS(윈도우 혹은 리눅스), 프로그래밍 언어, 실행 파 일과 저장 위치, 기타요구사항들(CPU 아키텍처, 메모리, 디스크 스페이스 등) ➂ Parameter - 데이터 마이닝 애플리케이션의 실행 행위를 정의 - 런타임에 이러한 파라메터들은 서로 다른 커맨드 라인 옵션으로 명 시

Data mining aspects

- 데이터 마이닝 방법, 알고리즘, 소프트웨어 등의 정보를 기술함으로 써 그리드 상의 애플리케이션을 쉽고 빠르게 발견하도록 함

Data Mining Grid는 3개의 유럽 국가를 연결하는 그리드 테스트 베드 를 구축하여 실험하였다. 데이터 중심, 계산 중심 등의 다양한 애플리케이 션 시나리오를 가지고 테스트하였는데, 각각의 시나리오에 대해서 이전보 다 좋은 성능을 얻었다. 그러나 데이터 마이닝 애플리케이션의 플랫폼에 따라서 실행될 수 있는 노드의 제약이 존재한다.

(49)

부록 3. Knowledge Grid 분석 K-Grid(Knowledge Grid)는 고 성능 분산 지식 발견 애플리케이션 구 현을 위한 프레임워크로서 그리드 인프라스트럭처나 그것의 저 수준 세부 사항에 관해서 알 필요 없이 개발해야 하는 지식 발견 프로세스에만 집중 하도록 도와준다. K-Grid는 SOA 모델을 따르도록 설계 및 구현되었는데 K-Grid 서비스의 구현을 위하여 OGSA 패러다임과 WSRF 표준이 채택 되었다. 그리드에서 동작하는 분산 데이터 마이닝 애플리케이션을 디자인 하고 조직화하기 위해서 K-Grid 서비스들을 이용할 수 있다. K-Grid 아키텍처는 특정 지식 발견 서비스를 구성하기 위해서 기본적 인 그리드 매커니즘을 사용한다. 이러한 서비스들은 Globus 툴킷, UNICORE, 그리고 Legion과 같은 이용 가능한 그리드 환경을 사용하여 서로 다른 방법으로 구현될 수 있는데, 이와 같이 계층화된 접근은 단순 한 방법으로 그리드 기반의 개방형 분산 지식 발견 아키텍처를 제공할 수 있다는 장점이 있다.

K-Grid 서비스는 핵심 K-Grid 레이어와 고 수준 K-Grid 레이어의 두 개의 계층적 레벨로 구성된다.

1) 핵심 K-Grid 레이어는 호스트, 데이터 소스, 데이터 마이닝 툴, 시각화 도구의 특성을 기술하는 메타데이터의 관리를 위한 기본적인 서비스들을 제공한다. 그리고 애플리케이션의 요구 사항을 만족하는 리소스를 적절히 할당함으로써 애플리케이션의 실행을 조정한다.

Data Access Service(DAS)

- 추론된 모델(마이닝 결과)의 검색뿐만 아니라 마이닝될 데이터(데이 터 소스)의 출판과 검색을 담당

Tools and Algorithms Access Service(TAAS)

- 추출 툴, 데이터 마이닝 툴, 시각화 툴의 출판과 검색을 담당 ➂ Execution Plan Management Service(EPMS)

(50)

흐름과 상호 작용을 기술하는 그래프에 의하여 실행 계획이 표현됨 - 실행 그래프를 생성함으로써 애플리케이션의 구조를 정의하고, 리소 스에 관련된 일련의 제약 사항을 추가함

Result Presentation Service(RPS)

- 연관 규칙, 클러스터링 모델, 그리고 분류와 같은 추출된 지식 모델 을 제시하고 시각화하는 기능을 제공

2) 고 수준 K-Grid 레이어는 분산 지식 발견 작업을 구성하고 검증하고 실행하는 서비스들을 포함한다.

Knowledge Directory Service(KDS)

- Knowledge Grid 리소스(호스트, 데이터, 레포지터리, 툴, 알고리즘, 실행 계획, 지식 모델 등)를 기술하는 메타데이터를 핸들링

- Knowledge Metadata Repository(KMR)에 저장

Resource Allocation and Execution Management Service(RAEMS) - 추상화된 실행 계획의 제약 조건을 만족하는 적합한 리소스를 찾음 - 각 데이터 마이닝 프로세스의 리소스 요구사항을 정의하는 인스턴스 화된 실행 계획을 생성해서 Knowledge Execution Plan Repository(KEPR)에 저장하고 실행

- 애플리케이션을 실행하고, Knowledge Base Repository(KBR)에 실행 결과를 저장하는 작업을 관리

(51)
(52)

직접적으로 수행할 필요가 없다. 결과적으로 VEGA는 EPMS와 다른 K-Grid 서비스들의 기능을 통합한다. VEGA가 제공하는 특징은 다음과 같다. ➀ 작업 구성(task composition) - 계산에 참여하는 개체를 정의하고 개체들 사이에 유지되는 관계를 명시 ➁ 일관성 검사(consistency checking)

실행 계획 생성(execution plan generation)

(53)
(54)
(55)

[참고문헌]

[1] P. Brezany, I. Janciak, and A. M. Tjoa, "GridMiner: A Fundamental Infrastructure for Building Intelligent Grid Systems", The 2005 IEEE/WIC/ACM International Conference on Web Intelligence (WI'05), pp. 150-156, Compiegne, France, September 19-22, 2005. [2] C. Goble, C. Wroe, and R. Stevens, "The myGrid project: services,

architecture and demonstrator", in All Hands Meeting, pp. 595-603, 2003.

[3] S. Alsairafi, F. S. Emmanouil, M. Ghanem, N. Giannadakis, Y. Guo, D. Kalaitzopoulos, M. Osmond, A. Rowe, J. Syed, and P. Wendel, "The Design of Discovery Net: Towards Open Grid Services for Knowledge Discovery", International Journal of High Performance Computing Applications, Volume 17, Issue 3, pp. 297-315, 2003. [4] Nhien-An Le-Khac, Tahar Kechadi, and Joe Carthy, "ADMIRE

Framework: Distributed Data Mining on Data Grid Platforms", Proceedings of 1st International Conference on Software and Data Technologies ICSOFT'06, pp. 67-72, 2006.

[5] OGSA (Open Grid Services Architecture), http://www.globus.org/ogsa

[6] WSRF (Web Services Resource Framework), http://www.globus.org/wsrf

[7] Globus Toolkt 4,

http://www.globus.org/toolkit

(56)

[9] A. Congiusta, D. Talia, and P. Trunfio, "Service-oriented middleware for distributed data mining on the grid", Journal of Parallel and Distributed Computing, Volume 68, Issue 1, pp. 3-15, 2007.

[10] D. Talia, and P. Trunfio, "How Distributed Data Mining Tasks can Thrive as Services on Grids", In Proc. of National Science Foundation Symposium on Next Generation of Data Mining and Cyber-Enabled Discovery for Innovation (NGDM'07), Baltimore, USA, 2007.

[11] A. Congiusta, D. Talia, and P. Trunfio, "Distributed data mining services leveraging WSRF", Future Generation Computer Systems 23, pp. 34-41, ELSEVIER, 2007.

[12] V. Stankovski, J. Trnkoczy, M. Swain, W. Dubitzky, V. Kravtsov, A. Schuster, T. Niessen, D. Wegener, M. May, M. Rohm, and J. Franke, "Digging Deep into the Data Mine with DataMiningGrid", IEEE Internet Computing, pp. 69-76, 2008.

[13] S. P. Choi, S. H. Myaeng, and H. Y. Cho, "Guiding Practical Text Classification Framework to Optimal State in Multiple Domains", Transactions on Internet and Information Systems, Volume 3, Issue 3, pp. 285-307, 2009.

[14] S. P. Choi, C. H. Jeong, Y. S. Choi, and S. H. Myaeng, "Relation Extraction based on Extended Composite Kernel using Flat Lexical Features", Journal of KIISE : Software and Applications, vol. 36, no. 8, Aug. 2009. (in Korean)

[15] Globus Toolkit 4 Programmer’s Tutorial, http://gdp.globus.org/gt4-tutorial

(57)

Computing Applications (IJHPCA) Special Issue on Workflow Systems in Grid Environments, 2007.

[17] D. Hull, K. Wolstencroft, R. Stevens, C. Goble, M. Pocock, P. Li, and T. Oinn, "Taverna: a tool for building and running workflows of services", Nucleic Acids Research, vol. 34, iss. Web Server issue, pp. 729-732, 2006.

[18] I. Altintas, C. Berkley, E. Jaeger, M. Jones, B. Ludascher, and S. Mock, "Kepler: An extensible system for design and execution of scientific workflows", 16th International Conference on Scientific and Statistical Database Management, pp. 423-424, 2004.

[19] BPEL (Business Process Execution Language),

http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel [20] WSCI (Web Service Choreography Interface),

참조

관련 문서

- 그리드를 만든 다음, 왼쪽 상단 네비게이션에서 해당하는 면을 선택하고 도형을 통해, 면을 생성한다.. - 작업이 끝나면, View – Perspective

Car, Transportation Airplane TV, Radio Communication Computer Automation Movie Entertainment... 문명은

전력계통 운영: 수요와 공급의 일치는 주파수 기준. 수요의 변동과

전사적 지식관리 시스템(Enterprise-Wide Knowledge Management Systems).

업무 시스템의 이벤트 로그 데이터를 분석하여 실제 프로세스를 도출하고, 프로세스 개선을 지원하는 프로세스 마이닝 기반

Zhu, &#34;Defending False Data Injection Attack on Smart Grid Network Using Adaptive CUSUM Test,&#34; Proceeding of the 45th Annual Conference on Information Sciences

Sufficient Electricity and Fresh Water for a City of 100,000 Population Appropriate for Small Grid Size or Localized

자석의 움직임을