현재, 어떤은 클라우드 컴퓨팅, 플랫폼의 어떤 클라우드 컴퓨팅 플랫폼에 속해 있고 클라우드 컴퓨팅 관련된 문제에 다른 하드웨어 및 소프트웨어 제조 업체는 그들의 자신의 다른 이해, 그래서 그들의 자신의 다른 정의. 클라우드 컴퓨팅 플랫폼 제공 하는 그들은 다른 이기도 합니다. 클라우드 컴퓨팅에 관해서, 사람들이 항상 이러한 것 들의 생각: 높은 확장성 (확장성), 비용 절감 (저장), 온 디맨드 (요구에 사용), 고 등. 클라우드 컴퓨팅에 대 한 가져온 무수 한 개념, 클라우드 컴퓨팅 자체 기술 면에서 참신 하지 않습니다, 그리고 그것은 새로운 유형의 서비스 배달, 클러스터링, 가상화 등 전통적인 기술로 이해 될 수 있다 그리드와 클라우드 컴퓨팅 플랫폼에 대 한 지원 기술로 사용할 수 있습니다. 클라우드 컴퓨팅의 개념에 대 한 자세한 소개는 위키백과 설명을 참조 하십시오.
클라우드 컴퓨팅 플랫폼 아키텍처
일반적으로 말하자면, 클라우드 컴퓨팅 플랫폼은 그림 1에서 보듯이 다음 아키텍처로 해석 됩니다.
그림 1입니다. 클라우드 컴퓨팅 플랫폼 아키텍처
레이어는 IaaS, CPU, 네트워크, 스토리지, 등 기본적인 하드웨어를 제공 하는 클라우드 서비스 이다. IaaS 수준에서 유명한 클라우드 컴퓨팅 제품은 아마존의 S3 (간단한 저장 서비스)는 사용자에 게 제공 클라우드 스토리지 서비스.
다음 단계로 PAAs, 구글 게임, 당신이 당신의 Java 응용 프로그램은 "구름" 운영 체제 처럼, 구글의 Gae에서 실행 (또는 Python)를 남길 수 있습니다 처럼 운영 체제 수준에 유사한 관리 및 서비스 제공 해당 컴퓨터에서 실행 중인 프로그램에 대해 걱정 하지 마십시오.
마지막 계층은 SaaS, 친숙 한 소프트웨어를 제공 합니다. 사실, SaaS 개념 클라우드 앞에 오는 컴퓨팅, 하지만 클라우드 컴퓨팅은 쉽게 그 자리를 찾을 수 원래 SaaS에 대 한 했다의 출현. 본질적으로, SaaS의 아이디어는 다른 전통적인 라이센스 방법 (예: Windows 사무실 구입), 그리고 SaaS는 수요에 대 한 지불 강조. SaaS는 잘 알려진 제품 많습니다, IBM의 LotusLive, Salesforce.com 등 등등.
멀티 테 넌 트 (multi-tenant)
멀티 테 넌 트의 개념은 클라우드 컴퓨팅, 동반 그리고 그것은 다음에 나오는 토론에서이 개념을 많이 소개 하는 데 필요한.
멀티 테 넌 트 (조직 또는 거주자) 여러 조직에서 사용할 수 있는 소프트웨어 인스턴스 (응용 프로그램 인스턴스)를 참조 하는 소프트웨어 아키텍처 개념 이다. 이 여러 임차인이 동일한 소프트웨어 인스턴스를 공유 함을 의미, 응용 프로그램의 가상화로 이해 될 수 있다 그러나 각 거주자는 데이터 집합, 구성, 및에 그것의 자신의 가상 파티션. 실제로, 어느 정도 Java EE 응용 프로그램 자체, 같은 B/s 아키텍처 기반 응용 프로그램은 다중 소유 모든 응용 프로그램 서버에 배포 된 동일한 소프트웨어 인스턴스에 액세스 하는 브라우저를 사용 하기 때문에. 이것은 데이터 집합에 대 한 이야기는 우리 때문에 "어느 정도" 될 거주자 가상 부문에 의해, Java 응용 프로그램의 현실 없습니다. 이 문서는 나중에 자세히 논의 됩니다.
다음 챕터는 예를 들어이 문서에서 설명 하는 항목에 초점을 맞추고 S3 Gae 걸릴 것입니다: 멀티-세 입자 및 자원 관리, 이러한 전형적인 클라우드 컴퓨팅 플랫폼에서 멀티 테 넌 트를 배포 하는 방법 및 이러한 플랫폼에서 리소스 관리 방법을 소개.
S 3에서 멀티 테 넌 트 및 자원 관리 지원
아마존 S3 사용자 온라인 (인터넷 기반) 클라우드 스토리지 서비스를 제공합니다. 사용자는 s3, 개인적으로 또는 공개적으로 액세스할 수 있는 모든 데이터를 저장할 수 있습니다. 아마존 S3 웹 브라우저 또는 비트 토 런 트가이 데이터에 액세스를 지원 합니다. 일반적으로, 사용자가 S3 사용:
백업 서버: s 3 귀하의 개인 데이터를 저장, 백업 디스크를 구입할 필요가 없습니다, 그래서 당신은 단지 아마존에서 디스크 공간을 임대 지불. 데이터 호스트: S3, 상점과 다른 데이터에 액세스할 수 있습니다. 여기, 당신이 지불 하는 개체는 전통적인 ISP 하지만 아마존이 지 않다. S3 스토리지는 두 가지 핵심 개념을 포함 한다: S3 양동이 S3 개체. S3 개체는 두 가지를 포함 하는 아마존 s 3에 있는 콘텐츠의 추상화: 데이터 및 메타 데이터, 데이터 및 실제 콘텐츠 예: PDF 문서, HTML 파일을 저장 하 고 등을 말합니다. 현재 지정 하는 데 사용할 수 있는 콘텐츠 형식 text/html 저장 된와 같은 메타 데이터는 데이터의 설명입니다. 각 S3 개체를 고유 키를 있습니다. S3 양동이 S3 개체를 보관 하는 컨테이너입니다. 비유를 사용 하는 경우 S3 양동이 디스크, 파일 시스템 그리고 S3 개체는이 파일 시스템에서 파일.
얼마나 많은 거주자는 s 3에 그것을 하는 것을 보고 간단한 예제를 사용 하자.
S3 스토리지 example.com 웹 사이트를 사용 하려면 먼저 "example.com" 라는 통을 만들 만들고 다음 같은 것 들을: "" (빈 문자열), "통", "카탈로그"이 카탈로그/929339에서. 개체, 해당 Url이이 개체에 대 한: "http://example.com/", "http://example.com/catalog/", "http://example.com/catalog/ 929339 "개체의 값은 해당 HTML 페이지, 메타 데이터 콘텐츠 유형으로 설정 됩니다 텍스트/html (표준 HTTP 정의에 해당).
경우 멀티 테 넌 트 관점, 우리는 온라인 스토리지 서버 S3을 볼 수 있습니다, 각 거주자는 s 3에와 같은 그들의 자신의 정보를 저장할 수: 거주자 s3 http://tenantA.com 사이트를 넣을 수 있습니다, B 임차인 저장할 수 있다 이다 http:// Tenantb.com 웹사이트, 각 거주자는 s 3 사용 하 여를 공유합니다.
이외에 멀티 테 넌 트 지원, s 3도는 자원 관리, 결제 및 기타 기능을 사용 하 여 그림 2와 같이:
그림 2입니다. S3 스토리지 가격 리스트
Gae multi-tenant 및 자원 관리 지원
IaaS에 비해, Google 응용 프로그램 엔진 더 많은 시스템에 추상화 기능 제공. 유를 IaaS는 스토리지, 네트워크, CPU 및 다른 컴퓨팅 리소스와 컴퓨터 그리고 PAAs Google 응용 프로그램 엔진은이 컴퓨터에 설치 된 운영 체제 이다. 상상해 보세요, 당신은 뿐만 아니라 응용 프로그램 자체에 대해, 우려는 전통적인 Java EE 응용을 개발 하는 경우 뿐만 아니라: 어떤 종류의 응용 프로그램 서버에 배포를 어떤 종류의 데이터베이스 사용, 적용, 확장성 (확장성) 하 고. Gae를 사용 하면 이러한 것 들에 대 한 관심 필요가 없습니다, 당신은 그냥 게임 사양에 따라 자바 애플 리 케이 션을 개발 하 고 게임 구름에 배포할 필요가 그리고 게임 자체 응용 프로그램을 제외 하 고 모든 것을 관리 하는 데 도움이 될 것입니다.
게임 자체는 멀티 테 넌 트 아키텍처, 즉, 다른 거주자에 게 서 게임 호환 Java EE 규격 중 하나는 Gae에 배포할 수 있습니다.
또한, gae, SaaS 응용 프로그램으로 사용 하려는 경우 배포 된 응용 프로그램 인스턴스 구현할 수 있습니다. 또한 여러 테 넌 트, 즉 Gae에 배포한 당신의 자바 애플 리 케이 션 중 하나 다른 거주자에 의해 사용 하는 경우, Google에서 제공한 네임 스페이스를 사용할 수 있습니다. 여러 응용 프로그램 인스턴스가로 가상화 하기 API입니다. 예를 들어 SaaS 응용 프로그램의 다른 거주자를 사용 하 여 다른 하위 도메인 (하위 도메인), Tenanta 하위 도메인 이름은 TENANTA.EXAMPLE.COM,TENANTB tenantB.example.com에 다음 코드를 사용 하 여 다른 네임 스페이스에 다른 세 입자를 넣어 수 있습니다., 그들은 다른 거주자 구현에 따라 동일한 데이터 저장소 인스턴스를 공유할 수 있습니다. 상호 격리입니다.
1을 목록입니다. 게임 애플 리 케이 션 multitenancy
다음은 참조 단편:
다른 하위 도메인으로 네임 스페이스를 설정 하려면
//Filter.
공용 클래스 Namespacefilter 구현 Javax.servlet.Filter {
@Override
공공 무효 Dofilter (ServletRequest 마무리, servletresponse 입술, filterchain 체인)
투 IOException, servletexception {
현재 네임 스페이스 이미 설정 되어 있지 않은 경우에
//make 확실히 설정된 () 호출 됩니다.
경우 (namespacemanager.get () null =) {
Namespacemanager.set (Req.getservername ());
}
다음 요청으로 체인입니다.
Chain.dofilter (마무리, 입술);
}
/ /... 남은 방법 Init ()를 필터링 하 고 ()
를 파괴
}
그것은 주목할 만한 게임 네임 스페이스 스레드 로컬 저장소 기술을 사용입니다. 즉, 네임 스페이스 관리자가 단일 HTTP 요청 수명 주기 내에서 존재 하는 그 수명 (유효 범위) 필터에서 설정한 (즉, 해당 요청에 대 한 현재 스레드 서비스), 거주자가 로그인 후 전체 세션 기간 보다.
그림 3에서 보듯이 아마존 S3, gae는 또한 결제 기능, 리소스 관리 제공.
그림 3입니다. 게임 리소스 관리
여기에 요약: 우리는 s 3와 게임 모두 다중 거주자 및 자원 관리 지원 참조. 사실, 그냥 s 3와 게임, 다중 소유 및 자원 관리는 코어 기능 있어야 합니다 어떤 클라우드 컴퓨팅 플랫폼입니다.
어떻게 우리가 단순히 생각 s 3와 게임 (JRE는 하단에 실행!) Java 플랫폼에서 실행 되는 응용 프로그램으로. 그럼 우리가 말할 수 있는 s 3와 게임 Java 응용 프로그램 수준에서 모두 요구의 그들의 자신의 구현 만들었습니다. 또한, 우리가 다중 거주자 및 자원 관리를 지원 하기 위해 자체 기본 JRE 묻는다면, 기본 JRE에서 이러한 지원을 활용 하 여 JRE에 배포 된이 Java 응용 프로그램 보다, 간결, 효율적이 고 쉽게이 일을 해야한다 고 생각 하는 이유가 있다. 다음에 논의 될 것 두 중요 한 jsr:jsr284와 JSR121의 자바 플랫폼에 대 한 이유 이기도 합니다. 하나는 자바 플랫폼의 리소스 관리 지원 고 다른 자바 플랫폼의 다중 테 넌 트 지원 이다.
클라우드 컴퓨팅의 증가, 오래 전에 태양 연구소 공유 및 Java 플랫폼에 자원의 관리에 집중 하기 시작 했다. 예를 들어 운영 체제의 로컬 지원 없이 우리 CPU 사용량, 디스크 IO 제한 또는 네트워크 대역폭 사용 제한 일반 Java 응용 프로그램을 만들 수 없습니다 고 등. 때 같은 기계에 여러 JVM 인스턴스를 실행 하는 우리가, 그들은 별도 사용자 프로세스, 그리고 각 JVM의 시작 결과 함께 별도 JDK 클래스 라이브러리로 자체를 인스턴스화할 필요가: JVM 시작 시간 (시작), 콘텐츠 (메모리 공간) 반복 된 JVM 초기화에 사용 됩니다. 우리에 게 물어 질문: 여러 Jvm JDK 런타임 공유를 극대화할 수 있습니다? 그들은 서로 방해 하지 않고 공유할 수 있습니다? 이 태양 바르셀로나 연구 프로젝트, 멀티태스킹 가상 머신 (MVM 즉)를 시작 하는 이유는 주요 이유입니다.
클라우드 컴퓨팅에 큰 방법 오늘, 우리는 다시 볼 다시 바르셀로나 프로젝트를 검토 하, MVM 모든 두 목표를 해결: 자원 공유 및 관리, 클라우드 컴퓨팅 환경에서 더 중요 해 집니다. 우리가 전에 말했듯이, 클라우드 컴퓨팅 환경 두 가지 필수적인 두 기능, 멀티 테 넌 트로 및 자원 관리, 전 필요 소프트웨어 인스턴스를 공유의 극대화, 후자 필요 합니다 우리 공유 제어를 격리 하는 자원의 사용에 근거 하 여. 이 MVM의 목표와 일치합니다. 다음 두 가지 jsr:121와 284 가상화 쪽으로 이동 하는 자바 플랫폼에 대 한 필요한 단계 해야 MVM 소스에 의해 생성 됩니다.
(책임 편집기: 루 광)