KR102211606B1 - 프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템 - Google Patents
프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템 Download PDFInfo
- Publication number
- KR102211606B1 KR102211606B1 KR1020200056085A KR20200056085A KR102211606B1 KR 102211606 B1 KR102211606 B1 KR 102211606B1 KR 1020200056085 A KR1020200056085 A KR 1020200056085A KR 20200056085 A KR20200056085 A KR 20200056085A KR 102211606 B1 KR102211606 B1 KR 102211606B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- file
- proxy server
- client
- priority
- Prior art date
Links
Images
Classifications
-
- H04L67/2847—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템에 대한 것으로 프록시 서버는 프록시 서버 내 캐시에 클라이언트가 요청한 데이터의 유무를 확인하여 데이터를 준비하는 데이터 준비부, 데이터를 미리 설정한 기준을 기초로 하여, 선순위파일 및 후순위파일로 분류하는 제1 분류부, 선순위파일 및 후순위파일에 포함되어 있는 참조파트를 데이터 포맷화하는 포맷부, 포맷화된 선순위파일 객체 및 참조파트가 순차적으로 위치하도록 전송순서를 배열하여 하나의 스트림 파일을 형성하는 재배열부 및 클라이언트에게 스트림 파일을 전송하는 데이터 전송부를 포함한다.
Description
데이터 전송 시 전처리를 하는 프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템에 관한 것이다.
현재 네트워크 지연시간을 줄이기 위한 기술들은 대체로 데이터를 더 효율적으로 압축해서 더 적은 데이터를 보냄으로써, 전송시간을 줄이는 방법이나 대역폭을 더 많이 사용할 수 있는 방법을 제안하는 방법, 라우팅 방법을 효율적으로 하는 방법, 보조 서버를 활용한 캐싱과 같은 방법을 사용하는 것이 일반적으로 네트워크 전송 시 발생하는 지연시간을 줄이기 위해 제안되는 방법이다.
그러나 위에서 언급한 방법들은 데이터 자체를 빠르게 클라이언트 쪽으로 보내는데 포커스를 맞추고 있어, 클라이언트 단에서 발생하는 비효율적인 프로세스에 대해서는 제대로 다뤄지지 않는다. 또한, 단순히 End To End로의 빠른 전송에만 관심을 둔 해결책으로 클라이언트 쪽에서 데이터를 받아 처리하는 부분에서 다른 파일을 기다리느라 생기는 지연시간에 대한 근본적인 해결책이 되지 못한다. 이에 따라 비효율적인 프로세스 및 근본적인 해결책을 제시해야 한다는 지적이 지속적으로 나오면서, 최근에는 이러한 문제점을 해결하고자 활발하게 연구 중에 있다.
데이터 전송 시 전처리 과정을 프록시 서버에서 처리 및 전송하고, 전처리된 데이터를 디코딩하는 프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템을 제공한다.
프록시 서버의 일 실시예는 프록시 서버 내 캐시에 클라이언트가 요청한 데이터의 유무를 확인하여 데이터를 준비하는 데이터 준비부, 데이터를 미리 설정한 기준을 기초로 하여, 선순위파일 및 후순위파일로 분류하는 제1 분류부, 선순위파일 및 후순위파일에 포함되어 있는 참조파트를 데이터 포맷화하는 포맷부, 포맷화된 선순위파일 객체 및 참조파트가 순차적으로 위치하도록 전송순서를 배열하여 하나의 스트림 파일을 형성하는 재배열부 및 클라이언트에게 스트림 파일을 전송하는 데이터 전송부를 포함할 수 있다.
또한, 데이터 준비부는 클라이언트가 요청한 데이터의 유무에 기초하여, 데이터를 리턴 또는 오리진 서버(Origin Server)에 요청한 후 데이터를 수신할 수 있다.
또한, 데이터가 준비되면, 프로파일러를 통해 클라이언트로 재전송할 데이터 간 의존성을 파악하는 의존성 파악부를 더 포함할 수 있다.
또한, 선순위파일을 분석하여 후순위파일 내에 참조파일 및 참조파트가 있는지 확인하는 참조확인부를 더 포함할 수 있다.
또한, 후순위파일을 참조파일 및 비참조파일로 분류하는 제2 분류부를 더 포함할 수 있다.
또한, 참조파트는 후순위파일에 포함되어 있는 참조파일 중, 선순위파일에 참조되어야 하는 부분인 것을 특징으로 할 수 있다.
또한, 데이터 포맷화는 JSON(JavaScript Object Notation), CSV(Comma Separated Value) 및 XML(Extensible Markup Language) 중 적어도 하나를 포함하여 포맷하는 것을 특징으로 할 수 있다.
또한, 선순위파일 객체의 스트림 사이에 참조파트가 위치하게 한 뒤, 순차적으로 참조파트를 제외한 참조파일 및 비참조파일이 위치하도록 하여 하나의 스트림 파일을 형성할 수 있다.
프록시 서버를 이용한 데이터 전송 방법의 일 실시예는 클라이언트가 요청한 데이터를 수신하는 단계, 프록시 서버 내 캐시에 데이터의 유무를 확인하여 데이터를 준비하는 단계, 데이터를 미리 설정한 기준을 기초로 하여, 선순위파일 및 후순위파일로 분류하는 단계, 선순위파일 및 후순위파일에 포함되어 있는 참조파트를 데이터 포맷화하는 단계, 포맷화된 선순위파일 객체 및 참조파트가 순차적으로 위치하도록 전송순서를 배열하여 하나의 스트림 파일을 형성하는 단계 및 스트림 파일을 클라이언트에게 전송하는 단계를 포함할 수 있다.
또한, 데이터를 준비하는 단계는 클라이언트가 요청한 데이터의 유무에 기초하여, 데이터를 리턴 또는 오리진 서버에 요청한 후 데이터를 수신할 수 있다.
또한, 데이터를 준비하는 단계 이후 프로파일러를 통해 데이터 간의 의존성을 파악하는 단계를 더 포함할 수 있다.
또한, 분류된 선순위파일을 분석하여 후순위파일 내에 참조파일 및 참조파트가 있는지 확인하는 단계를 더 포함할 수 있다.
또한, 후순위파일을 참조파일 및 비참조파일로 분류하는 단계를 더 포함할 수 있다.
또한, 선순위파일 객체의 스트림 사이에 참조파트가 위치하게 한 뒤, 순차적으로 참조파트를 제외한 참조파일 및 비참조파일이 위치하도록 할 수 있다.
프록시 서버를 이용한 데이터 전송 시스템의 일 실시예는 클라이언트와의 네트워크 서비스를 제공하는 오리진 서버, 클라이언트가 요청한 데이터가 캐시 내에 있는지 확인하여 데이터를 리턴 또는 오리진 서버에 요청하고, 데이터를 미리 설정한 기준을 기초로 하여 선순위파일 및 후순위파일로 분류하며, 선순위파일 및 후순위파일에 포함되어 있는 참조파트를 데이터 포맷화하고, 포맷화된 선순위파일 객체의 스트림 사이에 참조파트가 위치하게 한 뒤, 순차적으로 참조파트를 제외한 참조파일 및 비참조파일이 위치하도록 배열하여 하나의 스트림 파일을 형성한 후 클라이언트에게 전송하는 프록시 서버 및 스트림 파일을 수신 및 웹브라우저 또는 특정 애플리케이션을 통해 디코딩하여 유저에게 제공하는 클라이언트를 포함할 수 있다.
클라이언트가 요청한 파일의 우선순위에 따라 재배열을 하여, 클라이언트가 실제로 파일을 받아 실행해서 유저들에게 보여주는데까지 걸리는 시간을 고려한 프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템을 제공할 수 있다.
도 1은 일 실시예에 따른 프록시 서버의 구성을 나타내는 구성도이다.
도 2는 일 실시예에 따른 클라이언트가 요청한 데이터를 분류하기 전의 전처리 과정을 설명하기 위한 도면이다.
도 3a는 일 실시예에 따른 데이터를 분류하는 과정을 설명하기 위한 도면이다.
도 3b는 일 실시예에 따른 선순위파일의 전처리 과정을 설명하기 위한 도면이다.
도 3c는 일 실시예에 따른 후순위파일의 전처리 과정을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 재배열부 및 스트림 파일을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 프록시 서버를 이용한 데이터 전송 방법을 나타내는 순서도이다.
도 6은 일 실시예에 따른 프록시 서버를 이용한 데이터 전송 시스템을 나타내는 블록도이다.
도 2는 일 실시예에 따른 클라이언트가 요청한 데이터를 분류하기 전의 전처리 과정을 설명하기 위한 도면이다.
도 3a는 일 실시예에 따른 데이터를 분류하는 과정을 설명하기 위한 도면이다.
도 3b는 일 실시예에 따른 선순위파일의 전처리 과정을 설명하기 위한 도면이다.
도 3c는 일 실시예에 따른 후순위파일의 전처리 과정을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 재배열부 및 스트림 파일을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 프록시 서버를 이용한 데이터 전송 방법을 나타내는 순서도이다.
도 6은 일 실시예에 따른 프록시 서버를 이용한 데이터 전송 시스템을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 기술되는 실시예를 통하여 발명을 통상의 기술자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다. 다만, 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 발명 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
이하에서 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로써, 그 용어의 의미는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로, 후술하는 실시예에서 사용된 용어의 의미는 이하에서 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 통상의 기술자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다. 또한, 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다.
이하, 첨부된 도면 및 이에 기재된 내용들을 참조하여 본 발명의 실시예에 따른 프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템을 상세히 설명하도록 한다.
먼저 본 발명에서는 데이터(10)가 오리진 서버(300)에서 제공하는 데이터(10)에 한정되어 있고, 네트워크에서 자주 호출되는 데이터(10)는 프록시 서버(100)의 캐시에 저장되어 서비스를 제공하지만 전처리 대상에서 제외된다. 따라서 위와 같이 서비스를 제공할 데이터(10)가 정해져 있으므로, 공급자는 데이터(10)가 클라이언트(200)에서 어떻게 로드되는지 또는 어떤 순서로 로드되어야 서비스를 이용할 때 좋을지 파악한 뒤, 로드 과정을 미리 프록시 서버(100)에 내장한다. 하지만, 이렇게 구축된 네트워크 환경은 한정된 것이 아니며 이상에서 언급된 한정사항은 제한적이지 않다는 것을 염두하고 이해하여야 할 것이다.
도 1은 본 발명의 실시예에 따른 프록시 서버의 구성을 나타내는 구성도이다.
도 1을 참조하면, 네트워크 서비스를 제공하는 공급자가 운영하는 프록시 서버(100)는 프록시 서버(100) 내 캐시에 클라이언트(200)가 요청한 데이터(10)의 유무를 확인하여 데이터(10)를 준비하는 데이터 준비부(110), 데이터(10)를 미리 설정한 기준을 기초로 하여, 선순위파일(20) 및 후순위파일(40)로 분류하는 제1 분류부(130), 선순위파일(20) 및 후순위파일(40)에 포함되어 있는 참조파트(70)를 데이터 포맷화하는 포맷부(160), 포맷화된 선순위파일 객체(30) 및 참조파트(70)가 순차적으로 위치하도록 전송순서를 배열하여 하나의 스트림 파일(90)을 형성하는 재배열부(170) 및 클라이언트(200)에게 스트림 파일(90)을 전송하는 데이터 전송부(180)를 포함할 수 있다.
또한, 프록시 서버(100)는 의존성 파악부(120), 제2 분류부(140), 참조확인부(150)를 더 포함할 수 있다. 이상에서 설명한 프록시 서버(100) 내의 구성요소에 대해서는 도 2 내지 도 4를 이용하여 더욱 자세하게 후술하도록 한다.
도 2는 본 발명의 실시예에 따른 클라이언트가 요청한 데이터를 분류하기 전의 전처리 과정을 설명하기 위한 도면이다.
도 2를 참조하면, 데이터 준비부(110)는 클라이언트(200)가 요청한 데이터(10)의 유무에 기초하여, 데이터(10)를 리턴 또는 오리진 서버(300)에 요청한 후 데이터(10)를 수신할 수 있다.
더 자세하게는, 클라이언트(200)가 데이터(10)를 요청하면, 데이터 준비부(110)는 먼저 프록시 서버(100) 내 캐시에 해당 데이터(10)가 존재하는지 확인할 수 있다. 이후, 프록시 서버(100) 내 캐시에 클라이언트(200)가 요청한 데이터(10)가 존재하는 경우 해당 데이터(10)를 바로 리턴하고, 존재하지 않는 경우 오리진 서버(300)에 해당 데이터(10)를 요청한 후 수신함으로써 전처리할 데이터(10)를 준비할 수 있다.
또한, 의존성 파악부(120)는 데이터 준비부(110)를 통해 데이터(10)가 준비되면, 프로파일러를 통해 클라이언트(200)로 재전송할 데이터(10) 간의 의존성을 파악할 수 있다.
이상에서 설명한 데이터 준비부(110) 및 의존성 파악부(120)를 통해 전처리된 데이터(10)를 형성할 수 있다.
도 3a는 본 발명의 실시예에 따른 데이터를 분류하는 과정을 설명하기 위한 도면이다.
도 3a를 참조하면, 제1 분류부(130)는 데이터 준비부(110) 및 의존성 파악부(120)를 통해 전처리된 데이터(10)를 미리 설정한 기준을 기초로 하여 선순위파일(20) 및 후순위파일(40)로 분류할 수 있다.
또한, 이상에서 설명한 프록시 서버(100)에 내장된 로드 과정을 반영하여 구분할 수 있다.
또한, 본 발명에서 미리 설정한 기준은 일반적으로 유저들에게 시각적으로 먼저 보여지는 데이터(10)(예를 들어, HTML 파일, 서비스의 틀 데이터 또는 메인 이미지 데이터)를 기본으로 설정하였지만, 네트워크를 활용한 서비스는 무수한 경우의 수를 가지기 때문에 구체적으로 어떻게 분류해야 하는지를 결정하는 것은 큰 의미가 없으므로 데이터(10)를 분류하는 기준은 공급자가 자체적으로 결정할 수 있도록 할 수 있다.
또한, 선순위파일(20) 및 후순위파일(40)을 전처리하는 과정은 도 3b 및 도 3c를 통해 각각 구분하여 상세하게 후술하도록 한다.
도 3b는 본 발명의 실시예에 따른 선순위파일의 전처리 과정을 설명하기 위한 도면이다.
도 3b를 참조하면, 참조확인부(150)는 선순위파일(20)을 분석하여 후순위파일(40) 내에 참조파일(50) 및 참조파트(70)가 있는지 확인할 수 있다.
또한, 참조파트(70)는 후순위파일(40)에 포함되어 있는 참조파일(50) 중, 선순위파일(20)에 참조되어야 하는 부분인 것을 특징으로 할 수 있다.
또한, 이상에서 설명한 미리 설정한 기준을 통해 참조파트(70) 역시 정해져 있기 때문에 프록시 서버(100) 내에 내장시킬 수 있으나, 기본으로 내장된 데이터(10)가 많아질 수 있기에 프록시 서버(100)의 메모리 사양이 충분하다면 참조파트(70)까지 내장시키는 게 효과적일 수 있다.
또한, 포맷부(160)는 참조확인이 끝나면 선순위파일(20)을 필요한 형태로 데이터 포맷화 및 객체화할 수 있다.
또한, 데이터 포맷화는 JSON(JavaScript Object Notation), CSV(Comma Separated Value) 및 XML(Extensible Markup Language) 중 적어도 하나를 포함하여 포맷하는 것을 특징으로 할 수 있다. 다만, 선순위파일(20)은 미리 저장된 포맷 형태를 포함하고 있기 때문에, 해당 형태로 포맷화하는 것을 특징으로 할 수 있다.
또한, 데이터 포맷화 및 객체화를 통해 선순위파일(20)은 선순위파일 객체(30)로 변환될 수 있다.
도 3c는 본 발명의 실시예에 따른 후순위파일의 전처리 과정을 설명하기 위한 도면이다.
도 3c를 참조하면, 제2 분류부(140)는 후순위파일(40)을 참조파일(50) 및 비참조파일(60)로 분류할 수 있다.
또한, 포맷부(160)는 참조파일(50)을 필요한 형태로 데이터 포맷화 및 객체화할 수 있다.
또한, 참조파일(50)은 위에서 설명한 선순위파일(20)과 마찬가지로 JSON(JavaScript Object Notation), CSV(Comma Separated Value) 및 XML(Extensible Markup Language) 중 적어도 하나를 포함하여 포맷하는 것을 특징으로 할 수 있고, 선순위파일(20)의 포맷 형태와 동일한 포맷으로 포맷화하는 것을 특징으로 할 수 있다.
또한, 데이터 포맷화 및 객체화를 통해 참조파일(50)은 참조파트(70)로 변환될 수 있고, 참조파트를 제외한 참조파일(80)은 포맷화하지 않고 추출될 수 있다.
도 4는 본 발명의 실시예에 따른 재배열부 및 스트림 파일을 설명하기 위한 도면이다.
도 4를 참조하면, 재배열부(170)는 포맷화된 선순위파일 객체(30) 및 참조파트(70)가 순차적으로 위치하도록 전송순서를 배열하여 하나의 스트림 파일(90)을 형성할 수 있다.
또한, 재배열부(170)는 선순위파일 객체(30)의 스트림 사이에 참조파트(70)가 위치하게 한 뒤, 순차적으로 참조파트를 제외한 참조파일(80) 및 비참조파일(60)이 위치하도록 하여 하나의 스트림 파일(90)을 형성할 수 있다.
또한, 더 구체적으로는 선순위파일 객체(30)를 순서대로 나누고, 선순위파일 객체(30) 사이사이에 참조파트(70)를 순서대로 끼워 넣은 후, 선순위파일 객체(30) 사이사이에 참조파트(70)가 모두 들어가게 되면 그 뒤로는 참조파트를 제외한 참조파일(80) 및 비참조파일(60)을 붙여 하나의 스트림 파일(90)을 형성할 수 있다. 이후, 스트림 파일(90)은 데이터 전송부(180)를 통해 클라이언트(200)로 전송될 수 있다.
도 5는 본 발명의 실시예에 따른 프록시 서버를 이용한 데이터 전송 방법을 나타내는 순서도이다.
도 5를 참조하면, 프록시 서버를 이용한 데이터 전송 방법은 클라이언트(200)가 요청한 데이터(10)를 수신하는 단계(S100), 프록시 서버(100) 내 캐시에 데이터(10)의 유무를 확인하여 데이터(10)를 준비하는 단계(S110), 데이터(10)를 미리 설정한 기준을 기초로 하여, 선순위파일(20) 및 후순위파일(40)로 분류하는 단계(S130), 선순위파일(20) 및 후순위파일(40)에 포함되어 있는 참조파트(70)를 데이터 포맷화하는 단계(S160), 포맷화된 선순위파일 객체(30) 및 참조파트(70)가 순차적으로 위치하도록 전송순서를 배열하여 하나의 스트림 파일(90)을 형성하는 단계(S170) 및 스트림 파일(90)을 클라이언트(200)에게 전송하는 단계(S180)를 포함할 수 있다.
또한, 데이터(10)를 준비하는 단계(S110)는 클라이언트(200)가 요청한 데이터(10)의 유무에 기초하여, 프록시 서버(100) 내 캐시에 클라이언트(200)가 요청한 데이터(10)가 존재하는 경우 해당 데이터(10)를 바로 리턴하고, 존재하지 않는 경우 오리진 서버(300)에 해당 데이터(10)를 요청한 후 수신함으로써 전처리할 데이터(10)를 준비할 수 있다.
또한, 데이터(10)를 준비하는 단계(S110) 이후 프로파일러를 통해 데이터(10) 간의 의존성을 파악하는 단계(S120)를 더 포함할 수 있다.
또한, 분류된 선순위파일(20)을 분석하여 후순위파일(40) 내에 참조파일(50) 및 참조파트(70)가 있는지 확인하는 단계(S140)를 더 포함할 수 있다.
또한, 후순위파일(40)을 참조파일(50) 및 비참조파일(60)로 분류하는 단계(S150)를 더 포함할 수 있다.
또한, 스트림 파일(90)을 형성하는 단계(S170)는 선순위파일 객체(30)의 스트림 사이에 참조파트(70)가 위치하게 한 뒤, 순차적으로 참조파트를 제외한 참조파일(80) 및 비참조파일(60)이 위치하도록 할 수 있다.
도 6은 본 발명의 실시예에 따른 프록시 서버를 이용한 데이터 전송 시스템을 나타내는 블록도이다.
도 6을 참조하면, 프록시 서버를 이용한 데이터 전송 시스템은 클라이언트(200)와의 네트워크 서비스를 제공하는 오리진 서버(300), 클라이언트(200)가 요청한 데이터(10)가 캐시 내에 있는지 확인하여 데이터(10)를 리턴 또는 오리진 서버(300)에 요청하고, 데이터(10)를 미리 설정한 기준을 기초로 하여 선순위파일(20) 및 후순위파일(40)로 분류하며, 선순위파일(20) 및 후순위파일(40)에 포함되어 있는 참조파트(70)를 데이터 포맷화하고, 포맷화된 선순위파일 객체(30)의 스트림 사이에 참조파트(70)가 위치하게 한 뒤, 순차적으로 참조파트를 제외한 참조파일(80) 및 비참조파일(60)이 위치하도록 배열하여 하나의 스트림 파일(90)을 형성한 후 클라이언트(200)에게 전송하는 프록시 서버(100) 및 스트림 파일(90)을 수신 및 웹브라우저 또는 특정 애플리케이션을 통해 디코딩하여 유저에게 제공하는 클라이언트(200)를 포함할 수 있다.
또한, 프록시 서버(100)는 데이터(10)를 준비한 이후 프로파일러를 통해 데이터(10) 간의 의존성을 파악하고, 분류된 선순위파일(20)을 분석하여 후순위파일(40) 내에 참조파일(50) 및 참조파트(70)가 있는지 확인하며, 후순위파일(40)을 참조파일(50) 및 비참조파일(60)로 분류하는 것을 더 포함할 수 있다.
또한, 스트림 파일(90)을 클라이언트(200)에서 수신하면, 클라이언트(200)는 스트림 파일(90)을 유저에게 서비스하기 위한 디코딩 작업과 함께 서비스를 시작할 수 있다. 디코딩작업은 웹 서비스의 경우 브라우저에서 사용가능한 확장프로그램의 배포를 통해 이루어질 수 있고, 게임 및 애플리케이션과 같은 일반 프로그램을 활용한 다목적 네트워크 서비스의 경우 프로그램 패치를 통해 이루어질 수 있다. 이상에서 언급한 웹 서비스는 구글 및 네이버와 같은 웹 브라우저를 통해 지원되는 서비스를 의미하고, 이 서비스는 검색서비스, 게임, 채팅 및 스트리밍과 같은 다양한 서비스가 될 수 있다. 아울러 일반 프로그램을 활용한 다목적 네트워크 서비스는 스팀 클라이언트 및 아이튠즈와 같이 애플리케이션 형태로 유저에게 배포되어 서비스하는 것을 의미한다. 따라서 웹 서비스의 경우 브라우저에서 사용할 수 있는 확장 프로그램을 배포한 뒤 확장 프로그램 설치를 권장하여 디코딩할 수 있는 기능을 배포하거나, 애플리케이션의 경우 네트워크 서비스 공급자가 프로그램 업데이트를 통해 전처리된 데이터(10)를 디코딩할 수 있는 기능을 배포하여 본 발명의 전처리 기능을 사용할 수 있다.
상기의 설명은 기술적 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 기술분야에서 통상의 지식을 가진 자라면 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서 상기에 개시된 실시예 및 첨부된 도면들은 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 기술적 사상의 범위가 한정되는 것은 아니다. 그 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 데이터
20: 선순위파일
30: 선순위파일 객체
40: 후순위파일
50: 참조파일
60: 비참조파일
70: 참조파트
80: 참조파트를 제외한 참조파일
90: 스트림 파일
100: 프록시 서버
110: 데이터 준비부
120: 의존성 파악부
130: 제1 분류부
140: 제2 분류부
150: 참조확인부
160: 포맷부
170: 재배열부
180: 데이터 전송부
200: 클라이언트
300: 오리진 서버
20: 선순위파일
30: 선순위파일 객체
40: 후순위파일
50: 참조파일
60: 비참조파일
70: 참조파트
80: 참조파트를 제외한 참조파일
90: 스트림 파일
100: 프록시 서버
110: 데이터 준비부
120: 의존성 파악부
130: 제1 분류부
140: 제2 분류부
150: 참조확인부
160: 포맷부
170: 재배열부
180: 데이터 전송부
200: 클라이언트
300: 오리진 서버
Claims (15)
- 네트워크 서비스를 제공하는 공급자가 운영하는 프록시 서버에 있어서,
상기 프록시 서버 내 캐시에 클라이언트가 요청한 데이터의 유무를 확인하여 상기 데이터를 준비하는 데이터 준비부;
상기 데이터를 미리 설정한 기준을 기초로 하여, 선순위파일 및 후순위파일로 분류하는 제1 분류부;
상기 선순위파일 및 상기 후순위파일에 포함되어 있는 참조파트를 데이터 포맷화하는 포맷부;
포맷화된 선순위파일 객체 및 상기 참조파트가 순차적으로 위치하도록 전송순서를 배열하여 하나의 스트림 파일을 형성하는 재배열부; 및
상기 클라이언트에게 상기 스트림 파일을 전송하는 데이터 전송부;
를 포함하는 프록시 서버. - 제1항에 있어서,
상기 데이터 준비부는,
상기 클라이언트가 요청한 데이터의 유무에 기초하여, 상기 데이터를 리턴 또는 오리진 서버(Origin Server)에 요청한 후 상기 데이터를 수신하는 프록시 서버. - 제1항에 있어서,
상기 데이터가 준비되면, 프로파일러를 통해 상기 클라이언트로 재전송할 상기 데이터 간 의존성을 파악하는 의존성 파악부를 더 포함하는 프록시 서버. - 제1항에 있어서,
상기 선순위파일을 분석하여 상기 후순위파일 내에 참조파일 및 참조파트가 있는지 확인하는 참조확인부를 더 포함하는 프록시 서버. - 제1항에 있어서,
상기 후순위파일을 참조파일 및 비참조파일로 분류하는 제2 분류부를 더 포함하는 프록시 서버. - 제1항에 있어서,
상기 참조파트는,
상기 후순위파일에 포함되어 있는 참조파일 중, 상기 선순위파일에 참조되어야 하는 부분인 것을 특징으로 하는 프록시 서버. - 제1항에 있어서,
상기 데이터 포맷화는 JSON(JavaScript Object Notation), CSV(Comma Separated Value) 및 XML(Extensible Markup Language) 중 적어도 하나를 포함하여 포맷하는 것을 특징으로 하는 프록시 서버. - 제1항에 있어서,
상기 재배열부는,
상기 선순위파일 객체의 스트림 사이에 상기 참조파트가 위치하게 한 뒤, 순차적으로 상기 참조파트를 제외한 참조파일 및 비참조파일이 위치하도록 하여 하나의 스트림 파일을 형성하는 프록시 서버. - 클라이언트가 요청한 데이터를 수신하는 단계;
프록시 서버 내 캐시에 상기 데이터의 유무를 확인하여 상기 데이터를 준비하는 단계;
상기 데이터를 미리 설정한 기준을 기초로 하여, 선순위파일 및 후순위파일로 분류하는 단계;
상기 선순위파일 및 상기 후순위파일에 포함되어 있는 참조파트를 데이터 포맷화하는 단계;
포맷화된 선순위파일 객체 및 상기 참조파트가 순차적으로 위치하도록 전송순서를 배열하여 하나의 스트림 파일을 형성하는 단계; 및
상기 스트림 파일을 상기 클라이언트에게 전송하는 단계;
를 포함하는 프록시 서버를 이용한 데이터 전송 방법. - 제9항에 있어서,
상기 데이터를 준비하는 단계는,
상기 클라이언트가 요청한 데이터의 유무에 기초하여, 상기 데이터를 리턴 또는 오리진 서버에 요청한 후 상기 데이터를 수신하는 프록시 서버를 이용한 데이터 전송 방법. - 제9항에 있어서,
상기 데이터를 준비하는 단계 이후 프로파일러를 통해 상기 데이터 간의 의존성을 파악하는 단계를 더 포함하는 프록시 서버를 이용한 데이터 전송 방법. - 제9항에 있어서,
상기 분류된 선순위파일을 분석하여 상기 후순위파일 내에 참조파일 및 참조파트가 있는지 확인하는 단계를 더 포함하는 프록시 서버를 이용한 데이터 전송 방법. - 제9항에 있어서,
상기 후순위파일을 참조파일 및 비참조파일로 분류하는 단계를 더 포함하는 프록시 서버를 이용한 데이터 전송 방법. - 제9항에 있어서,
상기 스트림 파일을 형성하는 단계는,
상기 선순위파일 객체의 스트림 사이에 상기 참조파트가 위치하게 한 뒤, 순차적으로 상기 참조파트를 제외한 참조파일 및 비참조파일이 위치하도록 하는 프록시 서버를 이용한 데이터 전송 방법. - 클라이언트와의 네트워크 서비스를 제공하는 오리진 서버;
상기 클라이언트가 요청한 데이터가 캐시 내에 있는지 확인하여 상기 데이터를 리턴 또는 상기 오리진 서버에 요청하고, 상기 데이터를 미리 설정한 기준을 기초로 하여 선순위파일 및 후순위파일로 분류하며, 상기 선순위파일 및 상기 후순위파일에 포함되어 있는 참조파트를 데이터 포맷화하고, 포맷화된 선순위파일 객체의 스트림 사이에 참조파트가 위치하게 한 뒤, 순차적으로 상기 참조파트를 제외한 참조파일 및 비참조파일이 위치하도록 배열하여 하나의 스트림 파일을 형성한 후 상기 클라이언트에게 전송하는 프록시 서버; 및
상기 스트림 파일을 수신 및 웹브라우저 또는 특정 애플리케이션을 통해 디코딩하여 유저에게 제공하는 클라이언트;
를 포함하는 프록시 서버를 이용한 데이터 전송 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190174970 | 2019-12-26 | ||
KR1020190174970 | 2019-12-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102211606B1 true KR102211606B1 (ko) | 2021-02-04 |
Family
ID=74558650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200056085A KR102211606B1 (ko) | 2019-12-26 | 2020-05-11 | 프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102211606B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113783939A (zh) * | 2021-08-20 | 2021-12-10 | 奇安信科技集团股份有限公司 | 文件传输方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009017527A (ja) * | 2007-06-29 | 2009-01-22 | Mitsubishi Electric Research Laboratories Inc | サーバにより駆動されるプログレッシブ画像伝送方法およびシステム |
KR20100088856A (ko) * | 2009-02-02 | 2010-08-11 | 에스케이텔레콤 주식회사 | 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버 |
KR20100088990A (ko) * | 2009-02-02 | 2010-08-11 | 에스케이텔레콤 주식회사 | 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버 |
KR101890151B1 (ko) | 2010-12-17 | 2018-08-21 | 아카마이 테크놀로지스, 인크. | 바이트 기반 인클루드 인터프리터를 갖는 프록시 서버 |
KR101979919B1 (ko) * | 2015-11-20 | 2019-05-17 | 주식회사 케이티 | 콘텐츠를 제공하는 콘텐츠 제공 서버, 미디어 재생 장치 및 컴퓨터 프로그램 |
-
2020
- 2020-05-11 KR KR1020200056085A patent/KR102211606B1/ko active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009017527A (ja) * | 2007-06-29 | 2009-01-22 | Mitsubishi Electric Research Laboratories Inc | サーバにより駆動されるプログレッシブ画像伝送方法およびシステム |
KR20100088856A (ko) * | 2009-02-02 | 2010-08-11 | 에스케이텔레콤 주식회사 | 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버 |
KR20100088990A (ko) * | 2009-02-02 | 2010-08-11 | 에스케이텔레콤 주식회사 | 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버 |
KR101158366B1 (ko) | 2009-02-02 | 2012-06-22 | 에스케이플래닛 주식회사 | 데이터 세그먼트 정보를 이용한 컨텐츠 전송시스템 및 방법, 그 프록시서버 |
KR101890151B1 (ko) | 2010-12-17 | 2018-08-21 | 아카마이 테크놀로지스, 인크. | 바이트 기반 인클루드 인터프리터를 갖는 프록시 서버 |
KR101979919B1 (ko) * | 2015-11-20 | 2019-05-17 | 주식회사 케이티 | 콘텐츠를 제공하는 콘텐츠 제공 서버, 미디어 재생 장치 및 컴퓨터 프로그램 |
Non-Patent Citations (1)
Title |
---|
일본등록특허공보 제6325570호(통신 시스템의 클라이언트 디바이스의 웹 브라우저에서의 리다이렉트된 웹 리소스의 로딩, QUALCOMM INC, 2018.04.20) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113783939A (zh) * | 2021-08-20 | 2021-12-10 | 奇安信科技集团股份有限公司 | 文件传输方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042948B2 (en) | Identifying correlated components of dynamic content | |
US10091289B2 (en) | Provisional execution of dynamic content component | |
US9058402B2 (en) | Chronological-progression access prioritization | |
US20150012614A1 (en) | Efficient delivery of webpages | |
EP3876492A1 (en) | Method, apparatus, and system for downloading data block of resource file | |
US8495171B1 (en) | Indiscriminate virtual containers for prioritized content-object distribution | |
US20120246258A1 (en) | Http-based synchronization method and apparatus | |
GB2495172A (en) | Web page script management | |
US20170103140A1 (en) | Device and method for optimizing web page | |
US8346784B1 (en) | Java script reductor | |
US20090106358A1 (en) | Cache control program, storage medium storing cache control program, and cache control apparatus | |
CN107040615B (zh) | 媒体分片的下载方法、终端和计算机可读存储介质 | |
CN110661826A (zh) | 代理服务器端处理网络请求的方法和代理服务器 | |
CN109714406B (zh) | 资源描述文件的处理、页面资源的获取方法及设备 | |
RU2738447C1 (ru) | Способ кэширования видео и устройство кэширования видео | |
KR102211606B1 (ko) | 프록시 서버, 이를 이용한 데이터 전송 방법 및 시스템 | |
US9633217B2 (en) | Indiscriminate virtual containers for prioritized content-object distribution | |
US10764402B2 (en) | Leveraging time-windows generated by web browser pre-connections | |
CN114268631A (zh) | 低延迟网络***及其通信连接方法及可读存储介质 | |
CN103731396B (zh) | 资源访问方法、***及缓存资源信息推送装置 | |
JP5442541B2 (ja) | Web情報取得方法および装置 | |
CN102135872B (zh) | 一种在登录区域配置图像的方法及装置 | |
CN107707373B (zh) | 一种基于api请求的动态资源访问加速方法 | |
CN112131014A (zh) | 决策引擎***及其业务处理方法 | |
Bach et al. | Exploring HTTP/2 advantages and performance analysis using Java 9 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |