투플 스페이스페이스

Tuple space

튜플 공간은 병렬/분산 컴퓨팅을 위한 연관 메모리 패러다임의 구현이다.동시에 접근할 수 있는 튜플의 저장소를 제공한다.예를 들어, 데이터 조각을 생성하는 프로세서 그룹과 데이터를 사용하는 프로세서 그룹이 있다고 생각해 보십시오.생산자들은 그들의 데이터를 공간에 튜플로 올리고, 소비자들은 특정한 패턴과 일치하는 공간으로부터 데이터를 회수한다.이것은 칠판 은유라고도 알려져 있다.튜플 공간은 분산 공유 메모리의 한 형태로 생각할 수 있다.

투플 공간은 1986년 예일대학교데이비드 겔러너니콜라스 카리에로가 개발한 린다 언어의 이론적 토대가 되었다.

또한 Java(JavaSpaces), Lisp, Lua, Prolog, Python, Ruby, Smalltalk, Tcl 를 위한 튜플 공간 구현도 개발되었다.NET Framework.

객체 공간

오브젝트 스페이스분산 컴퓨팅 애플리케이션 개발을 위한 패러다임이다.오브젝트 스페이스(Object Space)라고 하는 논리적 실체가 존재하는 것이 특징이다.분산된 애플리케이션의 모든 참가자는 오브젝트 공간을 공유한다.서비스 제공자는 서비스를 개체로 캡슐화하여 개체 공간에 배치한다.그런 다음 서비스의 클라이언트는 Object Space에 액세스하여 필요한 서비스를 제공하는 객체를 찾고 객체에 의해 요청을 처리한다.

오브젝트 스페이스는 컴퓨팅 패러다임으로서 1980년대에 예일 대학교데이비드 겔른터에 의해 제시되었다.겔른터는 글로벌 오브젝트 조정의 개념을 지원하기 위해 린다라는 언어를 개발했다.

오브젝트 스페이스는 그 자체가 오브젝트로 추상화된 네트워크 서비스의 제공자와 접근자 사이에 공유되는 가상 저장소로 생각할 수 있다.프로세스는 필요에 따라 개체의 상태를 업데이트하여 이러한 공유 개체를 사용하여 서로 통신한다.

객체는, 공간에 축적되었을 때, Object Space의 Object 디렉토리에 등록되어야 한다.그런 다음 모든 프로세스는 속성 조회를 사용하여 개체 디렉터리에서 개체를 식별할 수 있으며, 여기서 개체 조회 기준을 지정하는 속성은 이름 또는 개체를 고유하게 식별하는 다른 속성이다.필요한 개체가 아직 존재하지 않는 경우, 프로세스는 객체가 Object Space에 배치될 때까지 기다릴 수 있다.

오브젝트 스페이스에 보관된 오브젝트는 패시브 방식으로, 오브젝트 스페이스에 있는 오브젝트 스페이스에서는 오브젝트 메서드를 호출할 수 없다.대신 액세스 프로세스는 Object Space에서 로컬 메모리로 검색하고, Object에서 제공하는 서비스를 사용하고, Object Space에 다시 배치해야 한다.

이 패러다임은 본질적으로 상호 배제를 제공한다.왜냐하면 일단 어떤 물체에 접근하면, 그것은 오브젝트 공간에서 제거되어야 하고, 그것이 해제된 후에야 다시 배치되기 때문이다.이것은 어떤 다른 과정도 그것이 하나의 과정에 의해 사용되고 있는 동안 어떤 물체에 접근할 수 없다는 것을 의미하며, 따라서 상호 배제를 보장한다.

자바스페이스

JavaSpaces는 Java 객체에 분산 객체 교환 및 조정 메커니즘(지속적일 수도 있고 아닐 수도 있음)을 제공하는 서비스 규격이다.분산 시스템 상태를 저장하고 분산 알고리즘을 구현하는 데 사용된다.JavaSpace에서 모든 통신 파트너(피어)는 상태를 공유함으로써 통신하고 조정한다.

JavaSpaces는 병렬 프로세싱을 통해 확장성을 얻을 수 있으며, 분산 복제를 통해 개체의 신뢰성 있는 스토리지를 제공하는 데도 사용될 수 있다. 비록 이것이 디스크와 같은 총체적인 전력 장애에서 살아남지는 못하지만, 많은 사람들은 전력이 신뢰할 수 있는 한 신뢰할 수 있다고 간주한다.원격 위치에도 배포가 가능하지만, 신뢰할 수 있는 객체 캐싱보다는 대기 시간이 짧은 고성능 애플리케이션에 자바스페이스가 주로 사용되기 때문에 드물다.

JavaSpaces에서 가장 일반적인 소프트웨어 패턴은 Master-Worker 패턴이다.마스터는 작업 단위를 "공간"에 나눠주고, 이것들은 작업자에 의해 읽히고, 처리되고, 그 공간에 다시 쓰여진다.전형적인 환경에는 몇 개의 "공간"과 몇 개의 주인, 그리고 많은 노동자들이 있다; 노동자들은 대개 일반적이도록 설계된다. 즉, 그들은 공간으로부터 어떤 작업 단위도 가져다가 작업을 처리할 수 있다.

자바스페이스는 자바지니 기술의 일부분으로, 그 자체로는 상업적인 성공을 거두지 못했다.[1]이 기술은 수년간 새로운 사용자를 찾아냈고, 일부 공급업체는 자바스페이스 기반 제품을 제공하고 있다.JavaSpaces는 금융 서비스 및 통신 산업에서 주로 사용되는 틈새 기술로, 지속적으로 충실한 팔로잉을 유지하고 있다.선 공동 창업자 겸 건축가 빌 조이(Bill Joy)는 이 분산형 시스템의 꿈이 "양자적인 사고력 도약"[2]을 이룰 것이라고 직설적으로 말했지만 지니/자바스페이스의 발표는 상당히 과대 선전했다.

사용 예

다음 예제는 JavaSpaces를 사용하여 만든 응용 프로그램을 보여준다.첫째, 오브젝트 공간에서 공유할 오브젝트가 만들어진다.그러한 개체를 자바스페이스 용어로는 엔트리라고 한다.여기서 EntryHello World! 문자열을 반환하는 서비스를 캡슐화하는 데 사용되며, 사용된 횟수를 추적한다.이 서비스를 제공하는 서버는 오브젝트 스페이스 또는 JavaSpace를 작성한다.그런 다음 항목이 JavaSpace기록된다.클라이언트는 JavaSpace에서 항목을 읽고 서비스에 액세스하는 방법을 호출하며, 이를 통해 사용 수를 업데이트한다.업데이트된 항목JavaSpace에 다시 기록된다.

// 엔트리 클래스 공중의 계급 스페이스엔트리 기구들 엔트리 {      공중의 최종의  메세지 = "헬로 월드!";      공중의 정수 수를 세다 = 0;        공중의  서비스() {          ++수를 세다;          돌아오다 메세지;      }        공중의  토스트링() {          돌아오다 "카운트: " + 수를 세다;      } } 
// Hello World! 서버 공중의 계급 서버 {      공중의 정태의 공허하게 하다 본래의([] 아그) 던지다 예외 {          스페이스엔트리 입장권 = 새로운 스페이스엔트리();            // Entry 객체 생성          자바스페이스 스페이스 = (자바스페이스)스페이스();           // 개체 공간 생성          // Entry를 등록하고 Space에 기록          스페이스.글씨를 쓰다(입장권, 무효의, 리스.영원히.);                  // 10초간 일시 중지한 후 Entry를 검색하고 상태를 확인하십시오.          나사산.잠을 자다(10 * 1000);          스페이스엔트리 e = 스페이스.읽다(입장권, 무효의, .MAX_VALUE);          시스템.밖으로.인쇄하다(e);      } } 
// 클라이언트 공중의 계급 고객 {      공중의 정태의 공허하게 하다 본래의([] 아그) 던지다 예외 {          자바스페이스 스페이스 = (자바스페이스) 스페이스();          스페이스엔트리 e = 스페이스.받아들이다(새로운 스페이스엔트리(), 무효의, .MAX_VALUE);          시스템.밖으로.인쇄하다(e.서비스());          스페이스.글씨를 쓰다(e, 무효의, 리스.영원히.);      } } 

책들

  • Eric Freeman, Susanne Hupfer, Ken Arnold: JavaSpaces 원리, 패턴, 그리고 연습.애디슨 웨슬리 프로페셔널, 1999년 6월 1일 ISBN0-201-30955-6
  • 필 비숍, 나이젤 워렌: Java Spaces in Practice.애디슨 웨슬리, 2002 ISBN 0-321-11231-8
  • 맥스 K. 고프:네트워크 분산 컴퓨팅: Fitcape and Falishes, 2004, 프렌티스 홀, ISBN 0-13-100152-3
  • Sing Li, et al.프로페셔널 자바 서버 프로그래밍, 1999, Wrox Press, ISBN 1-86100-277-7
  • Steven Halter: JavaSpaces 예제, 2002, 프렌티스 홀 PTR, ISBN 0-13-061916-7

인터뷰

기사들

참고 항목

참조

  1. ^ Lee Gomes: "Sun Microsystems의 jxta System에 대한 예측은 귀에 익은 소리"월스트리트저널, 2001년 6월 4일
  2. ^ Rob Guth : "다른 예쁜 이름보다 더 많은 것을: 쑨양 진이는 분산형 컴퓨터 시스템의 새로운 세계를 열어준다."SunWorld, 1998년 8월 [2006년 1월 15일]

원천

외부 링크