KR20190069655A - Method and apparatus of providing deep learning development platform based on cloud computing - Google Patents
Method and apparatus of providing deep learning development platform based on cloud computing Download PDFInfo
- Publication number
- KR20190069655A KR20190069655A KR1020170167591A KR20170167591A KR20190069655A KR 20190069655 A KR20190069655 A KR 20190069655A KR 1020170167591 A KR1020170167591 A KR 1020170167591A KR 20170167591 A KR20170167591 A KR 20170167591A KR 20190069655 A KR20190069655 A KR 20190069655A
- Authority
- KR
- South Korea
- Prior art keywords
- deep learning
- end module
- development platform
- cloud computing
- code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
Description
아래 실시예들은 클라우드 컴퓨팅에 기반한 딥러닝 개발 플랫폼 제공 방법 및 장치에 관한 것이다.The following embodiments relate to a method and apparatus for providing a deep learning development platform based on cloud computing.
PaaS(Platform as a Service)란 개발을 위한 별도의 플랫폼을 구축할 필요 없이 필요한 요소들을 사용 가능한 환경을 구축하고 제공하는 모델이다. PaaS를 이용하면 관련된 인프라(미들웨어, 소프트웨어 등)를 관리하는 복잡함 없이 사용자가 어플리케이션을 개발하고 관리할 수 있다.Platform as a Service (PaaS) is a model for constructing and providing a usable environment without having to build a separate platform for development. With PaaS, users can develop and manage applications without the complexities of managing related infrastructures (middleware, software, etc.).
클라우드 파운드리(Cloud Foundry)란 VMWare가 주도해서 만들고 있는 오픈 PaaS 플랫폼이다. 클라우드 파운드리를 이용하면 개발 기간을 줄이고, 운영 및 관리를 간소화활 수 있다.Cloud Foundry is an open PaaS platform led by VMWare. Using cloud foundries reduces development time and simplifies operations and management.
오픈 PaaS란 클라우드 기반의 가상 환경에서 소프트웨어를 테스트하고 실행할 수 있는 환경을 제공하는 서비스이다. 오픈 PaaS는 개발에 필요한 여러 프로그래밍 언어와 프레임워크를 클라우드를 기반으로 제공한다.Open PaaS is a service that provides an environment for testing and running software in a cloud-based virtual environment. Open PaaS provides several programming languages and frameworks for development based on the cloud.
사용자는 이러한 클라우드 파운드리를 활용하여 자신만의 PaaS 환경을 만들 수 있다Users can leverage these cloud foundries to create their own PaaS environments
실시예들은 클라우드 컴퓨팅 서버를 활용하여 딥러닝 개발 플랫폼을 제공하는 기술을 제공할 수 있다.Embodiments can provide a technology that utilizes a cloud computing server to provide a deep learning development platform.
일 실시예에 따른 딥러닝 개발 플랫폼 제공 방법은, 프론트 엔드(front end) 모듈에서 딥러닝 관련 서비스 요청을 수신하는 단계와, 백 엔드(backend) 모듈을 이용하여 요청된 딥러닝 관련 서비스를 수행하는 단계를 포함하고, 상기 프론트 엔드 모듈 및 상기 백 엔드 모듈은 클라우드 컴퓨팅 서버에 구현된다.A method for providing a deep learning development platform according to an embodiment includes receiving a deep learning related service request in a front end module and performing a requested deep learning related service using a backend module Wherein the front end module and the back end module are implemented in a cloud computing server.
상기 수신하는 단계는, 상기 딥러닝 관련 서비스를 요청하는 객체로부터 코드(code)를 수신하는 단계를 포함할 수 있다.The receiving may include receiving a code from an object requesting the deep learning related service.
상기 코드는, 파이썬(python) 코드 및 HTML(HyperText Markup Language) 코드를 포함할 수 있다.The code may include python code and HyperText Markup Language (HTML) code.
상기 수행하는 단계는, 딥러닝 서버와 통신을 수행하는 단계와, 클라우드 파운드리 커맨드 라인 인터페이스(Cloud Foundry Command Line Interface)를 통해 명령어를 수행하는 단계를 포함할 수 있다.The performing may include communicating with a deep learning server, and executing a command through a cloud foundry command line interface.
상기 통신을 수행하는 단계는, REST(REpresentational State Transfer)Ful API(Application Programming Interface)를 이용하여 상기 딥러닝 서버와 통신을 수행하는 단계를 포함할 수 있다.The step of performing the communication may include communicating with the deep learning server using a REST (REpresentational State Transfer) Ful API (Application Programming Interface).
상기 프론트 엔드 모듈은, HTML 및 자바스크립트(Javascript) 중 적어도 하나를 기반으로 구현될 수 있다.The front-end module may be implemented based on at least one of HTML and Javascript.
상기 백 엔드 모듈은, 파이썬 플라스크(Python Flask)기반의 웹 인터페이스로 구현될 수 있다.The back-end module may be implemented as a Python Flask-based web interface.
일 실시예에 따른 딥러닝 개발 플랫폼 제공 장치는, 딥러닝 관련 서비스 요청을 수신하는 프론트 엔드(front end) 모듈과, 요청된 딥러닝 관련 서비스를 수행하는 백 엔드(backend) 모듈을 포함하고, 상기 프론트 엔드 모듈 및 상기 백 엔드 모듈은 클라우드 컴퓨팅 서버에 구현된다.An apparatus for providing a deep learning development platform according to an embodiment includes a front end module for receiving a deep learning related service request and a backend module for performing a requested deep learning related service, The front-end module and the back-end module are implemented in a cloud computing server.
상기 프론트 엔드 모듈은, 상기 딥러닝 관련 서비스를 요청하는 객체로부터 코드(code)를 수신할 수 있다.The front end module may receive a code from an object requesting the deep learning related service.
상기 코드는, 파이썬(python) 코드 및 HTML(HyperText Markup Language) 코드를 포함할 수 있다.The code may include python code and HyperText Markup Language (HTML) code.
상기 백 엔드 모듈은, 딥러닝 서버와 통신을 수행하고, 클라우드 파운드리 커맨드 라인 인터페이스(Cloud Foundry Command Line Interface)를 통해 명령어를 수행할 수 있다.The back end module may communicate with a deep running server and may execute commands through a cloud foundry command line interface.
상기 백 엔드 모듈은, REST(REpresentational State Transfer)Ful API(Application Programming Interface)를 이용하여 상기 딥러닝 서버와 통신을 수행할 수 있다.The back end module can perform communication with the deep learning server using a REST (REpresentational State Transfer) Ful API (Application Programming Interface).
상기 프론트 엔드 모듈은, HTML 및 자바스크립트(Javascript) 중 적어도 하나를 기반으로 구현될 수 있다.The front-end module may be implemented based on at least one of HTML and Javascript.
상기 백 엔드 모듈은, 파이썬 플라스크(Python Flask)기반의 웹 인터페이스로 구현될 수 있다.The back-end module may be implemented as a Python Flask-based web interface.
도 1은 일 실시예에 따른 딥러닝 개발 플랫폼 제공 시스템의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 클라우드 컴퓨팅 서버의 개략적인 블록도를 나타낸다.
도 3은 도 1에 도시된 딥러닝 개발 플랫폼 제공 시스템의 동작의 예를 나타낸다.
도 4는 파이썬 플라스크를 이용한 웹 인터페이스의 예를 나타낸다.
도 5는 도 1에 도시된 딥러닝 플랫폼 개발 장치를 이용한 딥러닝 어플리케이션의 예를 나타낸다.1 shows a schematic block diagram of a system for providing a deep learning development platform in accordance with one embodiment.
2 shows a schematic block diagram of the cloud computing server shown in FIG.
FIG. 3 shows an example of the operation of the deep learning development platform providing system shown in FIG.
Figure 4 shows an example of a web interface using a Python flask.
5 shows an example of a deep learning application using the deep learning platform development apparatus shown in FIG.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are presented for the purpose of describing embodiments only in accordance with the concepts of the present invention, May be embodied in various forms and are not limited to the embodiments described herein.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. However, it is not intended to limit the embodiments according to the concepts of the present invention to the specific disclosure forms, but includes changes, equivalents, or alternatives falling within the spirit and scope of the present invention.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example without departing from the scope of the right according to the concept of the present invention, the first element being referred to as the second element, Similarly, the second component may also be referred to as the first component.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Expressions that describe the relationship between components, for example, "between" and "immediately" or "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms " comprises ", or " having ", and the like, are used to specify one or more of the features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in this specification may mean hardware capable of performing the functions and operations according to the respective names described in this specification and may mean computer program codes capable of performing specific functions and operations , Or an electronic recording medium, e.g., a processor or a microprocessor, equipped with computer program code capable of performing certain functions and operations.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a module may mean a functional and / or structural combination of hardware for carrying out the technical idea of the present invention and / or software for driving the hardware.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.
도 1은 일 실시예에 따른 딥러닝 개발 플랫폼 제공 시스템의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a system for providing a deep learning development platform in accordance with one embodiment.
도 1을 참조하면, 딥러닝 개발 플랫폼 제공 시스템(10)은 객체(100) 및 딥러닝 개발 플랫폼 제공 장치(200)를 포함한다. 딥러닝 개발 플랫폼 제공 시스템(10)은 객체(100)에게 클라우드 컴퓨팅을 이용하여 딥러닝 개발 플랫폼을 제공할 수 있다. 객체(100)는 클라우드 컴퓨팅을 이용하여 딥러닝 플랫폼을 이용하고자 하는 개발자 및 어플리케이션을 포함할 수 있다.Referring to FIG. 1, a deep learning development
객체(100)는 딥러닝을 활용한 어플리케이션을 제작하기 위해서, 별도의 개발 환경을 설정하지 않고, 클라우드 컴퓨팅 서버(210)에 접속하는 것만으로 딥러닝을 이용한 어플리케이션을 개발할 수 있다.The
클라우드 컴퓨팅 서버(210)는 파이썬 플라스크 기반의 웹 인터페이스를 제공할 수 있다. 예를 들어, 객체(100)는 별도의 프로그래밍 언어나 프로그램에 따른 커맨드 창을 통해 명령어를 입력하지 않고, 파이썬 플라스크(python flask) 기반으로 제작된 웹 인터페이스를 이용하여 어플리케이션을 생성하고, 결과를 확인하는 일련의 과정들을 수행할 수 있다.The
객체(100)는 클라우드 컴퓨팅 서버(210)에 코드(code)를 출력할 수 있다. 코드는 딥러닝 개발과 관련된 코드를 포함할 수 있다. 예를 들어, 코드는 파이썬(python) 코드 및 HTML(HyperText Markup Language) 코드를 포함할 수 있다.The
딥러닝 개발 플랫폼 제공 장치(200)는 클라우드 컴퓨팅 서버(210) 및 딥러닝 서버(230)을 포함할 수 있다. 객체(100)는 클라우드 컴퓨팅 서버(210)를 통하여 딥러닝 서버(230)에 접속할 수 있다.The deep learning development
클라우드 컴퓨팅 서버(210)는 객체(100)의 서비스 요청에 응답하여 객체(100)에 적합한 딥러닝 서버(230)를 객체(100)에게 중개시켜 줄 수 있다. 예를 들어, 클라우드 컴퓨팅 서버(210)는 PaaS(Platform as a Service) 서버로 구현될 수 있다.The
클라우드 컴퓨팅 서버(210)는 객체가 요청하는 서비스에 대응하는 딥러닝 서버(230)를 검색하여 객체(100)와 딥러닝 서버(230)를 바인딩할 수 있다. 딥러닝 서버(230)는 복수의 서버들을 포함할 수 있다.The
딥러닝 개발 플랫폼 제공 장치(200)는 PaaS(Platform as a Service)를 이용하여 딥러닝 개발 플랫폼을 제공할 수 있다. 딥러닝 개발 플랫폼 제공 장치(200)는 파이썬 플라스크(Python Flask) 기반의 웹 인터페이를 이용하여 딥러닝 개발 환경을 제공할 수 있다.The deep learning development
객체(100)는 원하는 프로그래밍 언어를 이용하여 코드를 작성하여 PaaS 환경에서 자신만의 어플리케이션을 생성할 수 있다. 프로그래밍 언어는 베이직, C, C#, C++, D, F#, 파이썬, 루비, 자바, 파스칼, 프롤로그, 포트란, 코볼, 리스프, 펄, R, 그루비, 스칼라, occam, Swift 및 HTML 등을 포함할 수 있다.The
도 2는 도 1에 도시된 클라우드 컴퓨팅 서버의 개략적인 블록도를 나타낸다.2 shows a schematic block diagram of the cloud computing server shown in FIG.
도 2를 참조하면, 클라우드 컴퓨팅 서버(210)는 프론트 엔드 모듈(211) 및 백 엔드 모듈(213)을 포함할 수 있다.Referring to FIG. 2, the
프론트 엔드 모듈(211)은 딥러닝 관련 서비스 요청을 수신할 수 있다. 프론트 엔드 모듈(211)은 딥러닝 관련 서비스를 요청하는 객체(100)로부터 코드(code)를 수신할 수 있다. 프론트 엔드 모듈(211)은 HTML 및 자바스크립트(Javascript) 중 적어도 하나를 기반으로 구현될 수 있다.The
프론트 엔드 모듈(211)은 객체(100)의 요청에 응답하여 백 엔드 모듈(213)을 제어할 수 있다. 예를 들어, 프론트 엔드 모듈(211)은 백엔드 모듈(213)로 제어 신호를 출력할 수 있다.The front-
백 엔드 모듈(213)은 요청된 딥러닝 관련 서비스를 수행할 수 있다. 백 엔드 모듈(213)은 객체(100)의 요청에 응답하여 클라우드 컴퓨팅 서버(210)의 환경을 관리할 수 있다.The back-
백 엔드 모듈(213)은 딥러닝 서버(230)와 통신을 수행하고, 클라우드 파운드리 커맨드 라인 인터페이스(Cloud Foundry Command Line Interface, CF CLI)를 통해 명령어를 수행할 수 있다. 예를 들어, 백 엔드 모듈(213)은 CF CLI를 통해 로우 CF(row Cloud Foundry) 명령어를 수행할 수 있다.The
백 엔드 모듈(213)은 객체(100)가 작성한 딥러닝 어플리케이션을 복수의 컨테이터(container)에 올리고, 딥러닝 서버(230)와 통신하여 객체(100)가 작성한 어플리케이션에서 요청한 서비스를 처리할 수 있다.The back-
컨테이너란 어플리케이션이 실행될 수 있는 가상의 운영 시스템을 의미할 수 있다.Container may refer to a virtual operating system where an application can be executed.
백 엔드 모듈(213)은 REST(REpresentational State Transfer)Ful API(Application Programming Interface)를 이용하여 딥러닝 서버(230)와 통신을 수행할 수 있다. 백 엔드 모듈(213)은 파이썬 플라스크(Python Flask)기반의 웹 인터페이스로 구현될 수 있다.The back-
클라우드 컴퓨팅 서버(210)의 웹 인터페이스를 통해 특정 코드를 호출 하여 백 엔드 모듈(213)에 미리 구현된 서비스 어플리케이션에서 RESTFul API 형태로 딥러닝 서버(230)와 통신하여 객체(100)에게 딥러닝 개발 플랫폼을 제공할 수 있다.A specific code is called through the web interface of the
클라우드 컴퓨팅 서버(210)와 딥러닝 서버(230) 간의 통신은 원격으로 이루어질 수 있다.Communication between the
프론트 엔드 모듈(211) 및 백 엔드 모듈(213)은 클라우드 컴퓨팅 서버(210)의 내부 또는 외부에 구현될 수 있다.The
도 3은 도 1에 도시된 딥러닝 개발 플랫폼 제공 시스템의 동작의 예를 나타낸다.FIG. 3 shows an example of the operation of the deep learning development platform providing system shown in FIG.
도 3을 참조하면, 객체(100)는 사용자일 수 있다. 딥러닝 개발 플랫폼 제공 장치(200)는 클라우드 컴퓨팅 서버(210) 및 딥러닝 서버(230)를 포함할 수 있다. 예를 들어, 클라우드 컴퓨팅 서버(210)는 PaaS 서버로 구현될 수 있다.Referring to FIG. 3, the
클라우드 컴퓨팅 서버(210)는 프론드 엔드 모듈(211) 및 백 엔드 모듈(213)을 포함할 수 있다. 프론트 엔드 모듈(211)은 웹 인터페이스를 포함할 수 있고, 백 엔드 모듈(213)은 백 엔드 서비스를 포함할 수 있다.The
사용자는 웹 인터페이스를 통해 클라우드 컴퓨팅 서버와 통신을 수행할 수 있다. 웹 인터페이스는 사용자로부터 수신한 서비스 요청에 응답하여 백 엔드 서비스를 제어할 수 있다. 백 엔드 서비스는 사용자로부터 요청된 서비스를 처리할 수 있다.The user can communicate with the cloud computing server via the web interface. The web interface can control the back-end service in response to a service request received from the user. The back-end service can process the requested service from the user.
도 4는 파이썬 플라스크를 이용한 웹 인터페이스의 예를 나타내고, 도 5는 도 1에 도시된 딥러닝 플랫폼 개발 장치를 이용한 딥러닝 어플리케이션의 예를 나타낸다.FIG. 4 shows an example of a web interface using a Python flask, and FIG. 5 shows an example of a deep running application using the apparatus for developing a deep running platform shown in FIG.
도 4 및 도 5를 참조하면, 클라우드 컴퓨팅 서버(210)는 어플리케이션을 배포, 운영할 수 있다. 클라우드 컴퓨팅 서버(210)는 폭 넓은 런타임을 제공하고 프레임워크 및 서비스를 선택할 수 있는 자유를 제공할 수 있다.4 and 5, the
클라우드 컴퓨팅 서버(210)는 특성 클라우드 환경에 종속되지 않고, 자유로운 선택과 다양성을 보장할 수 있다. 또한, 클라우드 컴퓨팅 서버(210)는 새롭게 추가되는 기술 및 서비스에 대해 확장될 수 있다. 클라우드 컴퓨팅 서버(210)는 퍼블릭 클라우드 및 프라이빗 클라우드를 구축하는데 이용될 수 있다. 클라우드 컴퓨팅 서버(210)는 객체(100)가 작성한 코드를 여러 환경에 쉽게 이식할 수 있다.The
클라우드 컴퓨팅 서버(210)는 객체(100)의 서비스 요청에 따라 이에 적합한 딥러닝 서버(230)를 바인딩할 수 있다. 클라우드 컴퓨팅 서버(210)는 컨테이너(container)를 생성 및 삭제할 수 있다. 또한, 클라우드 컴퓨팅 서버(210)는 컨테이너를 관리하고 컨테이너와 통신할 수 있다.The
클라우드 컴퓨팅 서버(210)는 생성된 컨테이너의 네트워크를 설정하고, 컨테이너와 통신할 수 있다.The
객체(100)는 클라우드 컴퓨팅 서버(210)에 서비스를 요청할 수 있다. 예를 들어, 객체가 요청하는 서비스는 GPU(Graphics Processing Unit) 서비스, 스토리지(storage) 서비스를 포함할 수 있다.The
클라우드 컴퓨팅 서버(210)는 객체(100)가 요청한 서비스를 제공할 수 있는 딥러닝 서버(230)를 검색해서 컨테이너(또는 인스턴스(instance))를 생성할 수 있다. 클라우드 컴퓨팅 서버(210)는 객체(100)와 컨테이너를 바인딩하여 객체(100)가 요청한 서비스를 제공할 수 있다.The
클라우드 컴퓨팅 서버(210)는 클라우드 컨트롤러를 포함할 수 있다. 클라우드 컨트롤러는 서비스를 제공하는 딥러닝 서버(230)에 포함된 보쉬(bosh)가 가지는 고유한 URL(Uniform Resource Locator)을 통해 서비스 브로커(service broker)에 접근할 수 있다.The
클라우드 컨트롤러는 서비스 브로커 API 규약을 준수하며 서비스 인스턴스(또는 컨테이너)를 요청할 수 있다. 클라우드 컴퓨팅 서버(210)의 보쉬는 생성된 서비스 인스턴스를 이용하여 서비스 브로커가 수신한 요청을 수행할 수 있다.The cloud controller complies with the Service Broker API conventions and can request service instances (or containers). The Bosch of the
클라우드 컨트롤러는 클라우드 컴퓨팅 서버(210)에 포함된 객체(100)의 개발 환경과 바인딩 할 수 있다. 바인딩이 완료되면 서비스 브로커와 클라우드 컨트롤러를 거치지 않고, 객체(100)의 개발 환경과 인스턴스가 직접 통신할 수 있다.The cloud controller can bind to the development environment of the
클라우드 컴퓨팅 서버(210)는 서비스 브로커를 생성하기 위한 코드를 보쉬에 업로드 할 수 있다. 클라우드 컴퓨팅 서버(210)는 서비스 브로커의 카탈로그를 정의하고 등록하여 URL로 접근 가능하도록 서비스 브로커를 오픈할 수 있다.The
클라우드 컴퓨팅 서버(210)는 객체(100)의 서비스 요청이나 객체(100) 인증 등의 요청이 발생했을 때 적절한 컴포넌트(인증이나 서비스 레이어)로 라우팅을 수행할 수 있다. 클라우드 컴퓨팅 서버(210)는 클라우드 컴퓨팅 서버(210)에 접속하는 객체(100)의 인증을 수행할 수 있다. 클라우드 컴퓨팅 서버(210)는 클라우드 컨트롤러를 통해 복수의 보쉬에 서비스나 인증에 관한 요청을 수행하고 그 결과를 반환 받을 수 있다. The
클라우드 컴퓨팅 서버(210)는 어플리케이션 개발환경을 생성하여 저장하고 관리할 수 있다. 클라우드 컴퓨팅 서버(210)에 포함된 디에고 셀(Diego Cell)은 서비스를 제공하는 보쉬의 어플리케이션을 실행할 수도 있다.The
클라우드 컴퓨팅 서버(210)는 서비스 브로커를 이용하여 서비스 인스턴스들을 연결하고 관리할 수 있다. 클라우드 컴퓨팅 서버(210)는 클라우드 컴퓨팅 서버(210)의 내부 통신을 NATs 메시지 버스(message bus)를 이용하여 제어할 수 있다. 클라우드 컴퓨팅 서버(210)는 클라우드 컴퓨팅 서버(210) 내부의 동작들을 로깅할 수 있다.The
서비스 브로커는 서비스 인스턴스를 관리할 수 있다. 서비스 브로커는 클라우드 컴퓨팅 서버(210)의 요청에 따라 인스턴스를 생성하거나, 삭제할 수 있다. 서비스 브로커는 인스턴스를 클라우드 컴퓨팅 서버(210)의 객체(100) 개발 환경과 바인딩하거나 기존의 바인딩을 해제할 수 있다. 서비스 브로커는 서비스 브로커 API에 정해놓은 규약대로 HTTP(HyperText Transfer Protocol) 요청(request) 형식으로 통신할 수 있다.A service broker can manage service instances. The service broker may create or delete instances at the request of the
서비스 브로커 API는 클라우드 컴퓨팅 서버(210)로부터 서비스 브로커의 URL을 획득하여 HTTP 요청 형식으로 코드를 작성할 수 있다. 서비스 브로커 API는 클라우드 컨트롤러를 통해 수신된 서비스 요청에 응답하여 딥러닝 서버(230)에 서비스 인스턴스를 생성하도록 요청할 수 있다. 서비스 브로커 API는 객체(100) 개발환경과 서비스 인스턴스를 바인딩할 수 있다.The service broker API can obtain the URL of the service broker from the
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (14)
백 엔드(backend) 모듈을 이용하여 요청된 딥러닝 관련 서비스를 수행하는 단계
를 포함하고,
상기 프론트 엔드 모듈 및 상기 백 엔드 모듈은 클라우드 컴퓨팅 서버에 구현되는
딥러닝 개발 플랫폼 제공 방법.
Receiving a deep running related service request from a front end module; And
Performing a requested deep learning related service using a backend module
Lt; / RTI >
The front-end module and the back-end module are implemented in a cloud computing server
How to provide a deep learning development platform.
상기 수신하는 단계는,
상기 딥러닝 관련 서비스를 요청하는 객체로부터 코드(code)를 수신하는 단계
를 포함하는 딥러닝 개발 플랫폼 제공 방법.
The method according to claim 1,
Wherein the receiving comprises:
Receiving a code from an object requesting the deep learning related service
The method comprising the steps of:
상기 코드는,
파이썬(python) 코드 및 HTML(HyperText Markup Language) 코드
를 포함하는 딥러닝 개발 플랫폼 제공 방법.
3. The method of claim 2,
The code includes:
Python code and HyperText Markup Language (HTML) code
The method comprising the steps of:
상기 수행하는 단계는,
딥러닝 서버와 통신을 수행하는 단계; 및
클라우드 파운드리 커맨드 라인 인터페이스(Cloud Foundry Command Line Interface)를 통해 명령어를 수행하는 단계
를 포함하는 딥러닝 개발 플랫폼 제공 방법.
The method according to claim 1,
Wherein the performing comprises:
Performing communication with a deep learning server; And
Steps to perform an instruction through the Cloud Foundry Command Line Interface
The method comprising the steps of:
상기 통신을 수행하는 단계는,
REST(REpresentational State Transfer)Ful API(Application Programming Interface)를 이용하여 상기 딥러닝 서버와 통신을 수행하는 단계
를 포함하는 딥러닝 개발 플랫폼 제공 방법.
5. The method of claim 4,
The step of performing the communication includes:
Performing communication with the deep learning server using REST (REpresentational State Transfer) Ful API (Application Programming Interface)
The method comprising the steps of:
상기 프론트 엔드 모듈은,
HTML 및 자바스크립트(Javascript) 중 적어도 하나를 기반으로 구현되는
딥러닝 개발 플랫폼 제공 방법.
The method according to claim 1,
The front end module includes:
It is implemented based on at least one of HTML and JavaScript (Javascript).
How to provide a deep learning development platform.
상기 백 엔드 모듈은,
파이썬 플라스크(Python Flask)기반의 웹 인터페이스로 구현되는
딥러닝 개발 플랫폼 제공 방법.
The method according to claim 1,
The back-
It is implemented as a web interface based on the Python Flask.
How to provide a deep learning development platform.
요청된 딥러닝 관련 서비스를 수행하는 백 엔드(backend) 모듈
을 포함하고,
상기 프론트 엔드 모듈 및 상기 백 엔드 모듈은 클라우드 컴퓨팅 서버에 구현되는
딥러닝 개발 플랫폼 제공 장치.
A front end module for receiving a deep running related service request; And
A backend module that performs the requested deep-running related services
/ RTI >
The front-end module and the back-end module are implemented in a cloud computing server
Deep learning development platform providing device.
상기 프론트 엔드 모듈은,
상기 딥러닝 관련 서비스를 요청하는 객체로부터 코드(code)를 수신하는
딥러닝 개발 플랫폼 제공 장치.
9. The method of claim 8,
The front end module includes:
Receiving a code from an object requesting the deep learning related service;
Deep learning development platform providing device.
상기 코드는,
파이썬(python) 코드 및 HTML(HyperText Markup Language) 코드
를 포함하는 딥러닝 개발 플랫폼 제공 장치.
10. The method of claim 9,
The code includes:
Python code and HyperText Markup Language (HTML) code
And a device for providing a deep learning development platform.
상기 백 엔드 모듈은,
딥러닝 서버와 통신을 수행하고, 클라우드 파운드리 커맨드 라인 인터페이스(Cloud Foundry Command Line Interface)를 통해 명령어를 수행하는
딥러닝 개발 플랫폼 제공 장치.
9. The method of claim 8,
The back-
To communicate with the Deep Learning server, and to execute commands through the Cloud Foundry Command Line Interface
Deep learning development platform providing device.
상기 백 엔드 모듈은,
REST(REpresentational State Transfer)Ful API(Application Programming Interface)를 이용하여 상기 딥러닝 서버와 통신을 수행하는
딥러닝 개발 플랫폼 제공 장치.
12. The method of claim 11,
The back-
And performs communication with the deep learning server using REST (REpresentational State Transfer) Ful API (Application Programming Interface)
Deep learning development platform providing device.
상기 프론트 엔드 모듈은,
HTML 및 자바스크립트(Javascript) 중 적어도 하나를 기반으로 구현되는
딥러닝 개발 플랫폼 제공 장치.
9. The method of claim 8,
The front end module includes:
It is implemented based on at least one of HTML and JavaScript (Javascript).
Deep learning development platform providing device.
상기 백 엔드 모듈은,
파이썬 플라스크(Python Flask)기반의 웹 인터페이스로 구현되는
딥러닝 개발 플랫폼 제공 장치.
9. The method of claim 8,
The back-
It is implemented as a web interface based on the Python Flask.
Deep learning development platform providing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170167591A KR20190069655A (en) | 2017-12-07 | 2017-12-07 | Method and apparatus of providing deep learning development platform based on cloud computing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170167591A KR20190069655A (en) | 2017-12-07 | 2017-12-07 | Method and apparatus of providing deep learning development platform based on cloud computing |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190069655A true KR20190069655A (en) | 2019-06-20 |
Family
ID=67103861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170167591A KR20190069655A (en) | 2017-12-07 | 2017-12-07 | Method and apparatus of providing deep learning development platform based on cloud computing |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20190069655A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102123112B1 (en) | 2019-10-15 | 2020-06-15 | 조대원 | System and method for managing hospital asset |
KR20210050827A (en) | 2019-10-29 | 2021-05-10 | (주)한국플랫폼서비스기술 | An extraction-system using dispersion deep learning information analysis management based cloud and method of it |
KR20210126388A (en) * | 2020-04-10 | 2021-10-20 | 주식회사 코어닷투데이 | Method and apparatus for providing storytelling data |
KR20220063652A (en) * | 2020-11-10 | 2022-05-17 | 주식회사 오내모 | Composite web UI provision system in cloud service platform |
KR102620693B1 (en) * | 2023-01-27 | 2024-01-04 | 쿠팡 주식회사 | Electronic apparatus for providing configuration for application testing and method thereof |
-
2017
- 2017-12-07 KR KR1020170167591A patent/KR20190069655A/en not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102123112B1 (en) | 2019-10-15 | 2020-06-15 | 조대원 | System and method for managing hospital asset |
KR20210050827A (en) | 2019-10-29 | 2021-05-10 | (주)한국플랫폼서비스기술 | An extraction-system using dispersion deep learning information analysis management based cloud and method of it |
KR20210126388A (en) * | 2020-04-10 | 2021-10-20 | 주식회사 코어닷투데이 | Method and apparatus for providing storytelling data |
KR20220063652A (en) * | 2020-11-10 | 2022-05-17 | 주식회사 오내모 | Composite web UI provision system in cloud service platform |
KR102620693B1 (en) * | 2023-01-27 | 2024-01-04 | 쿠팡 주식회사 | Electronic apparatus for providing configuration for application testing and method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190069655A (en) | Method and apparatus of providing deep learning development platform based on cloud computing | |
CN108205442B (en) | Edge computing platform | |
KR102146602B1 (en) | Method and apparatus of providing deep learning development platform based on container using docker | |
CN109032706B (en) | Intelligent contract execution method, device, equipment and storage medium | |
US9965322B2 (en) | Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors | |
CN110383795B (en) | Server-free cloud management platform based on service graph | |
US9122657B2 (en) | Webpage display system leveraging OSGI | |
US20180373418A1 (en) | Unified real time rule analytics using common programming model on both edge and cloud | |
US20230291741A1 (en) | System and method to securely execute datacenter management operations remotely | |
US9948702B2 (en) | Web services documentation | |
US10353750B2 (en) | Discovery and exposure of transactional middleware server-based applications as consumable service endpoints | |
US10171560B2 (en) | Modular framework to integrate service management systems and cloud orchestrators in a hybrid cloud environment | |
US20180196647A1 (en) | Application Programming Interface Discovery Using Pattern Recognition | |
US10834059B2 (en) | Secure message handling of an application across deployment locations | |
US9742835B2 (en) | System and method for backend control of frontend user interfaces | |
CN109729110B (en) | Method, apparatus and computer readable medium for managing dedicated processing resources | |
EP4000239B1 (en) | 3rd generation partnership project (3gpp) framework for live uplink streaming (flus) sink capabilities determination | |
CN105389355B (en) | Data processing method and terminal | |
US20220300611A1 (en) | Run-time communications protocol parameter adjustment in containerized applications | |
US10581994B2 (en) | Facilitating communication between an origin machine and a target machine | |
US11157341B1 (en) | Data contracts | |
KR102445391B1 (en) | Method and Apparatus for Building Communication Interface to Interact with Intelligent Agent | |
US11969894B2 (en) | Apparatus for automated communication between robot and artificial intelligence service and method using the same | |
US11496537B2 (en) | Method and apparatus for reverse address mapping when using content preparation in 5G networks | |
Corodescu | Locality-Aware Big Data Workflow Orchestration Using Software Containers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
E601 | Decision to refuse application | ||
E801 | Decision on dismissal of amendment |