카호 프로젝트
Cajo projectCajo Project는 여러 머신에 분산되어 있는 여러 Java 응용 프로그램이 투명하고 동적으로 하나로 함께 작동할 수 있도록 하는 프레임워크입니다.이 프레임워크는 분산 컴퓨팅 기능을 필요로 하는 오픈/프리 애플리케이션과 독자 애플리케이션 모두에 도움이 됩니다.거의 모든 Java 탑재 플랫폼(JRE/JME 1.2 이상)(휴대전화, 메인프레임, 서버, 임베디드 기기 등)에서 사용할 수 있습니다.구조적인 요건이나 소스 코드 변경이 없고 XML 코드가 없는 100% 순수 Java이기 때문에 "드롭인" 프레임워크입니다.또한 다른 프레임워크에 의존하지 않으며 NAT, 방화벽, 심지어 HTTP 프록시에서도 작동할 수 있습니다.
역사
Cajo 프로젝트는 IANA 포트 번호1198과 UDP 멀티캐스트주소 224.0.23.162로 발행되었습니다.
면허증.
LGPL에서는 소스 코드가 무료이며 GFDL에서는 문서가 무료입니다.
사용.
개요
Cajo Project를 사용하면 일반적인 수정되지 않은 Java 오브젝트를 한 [1]줄의 코드를 사용하여 원격화할 수 있습니다.
- Itemserver.bind(someObject, "someName")
그런 다음 원격 시스템에서 정적 또는 동적으로 사용할 수 있습니다.
정적 원격 개체 사용
스태틱 리모트오브젝트 사용은 일반적으로 오브젝트에 대한 인터페이스가1개 이상 있는 경우에 실행되며 컴파일 시 클라이언트의 사용방법을 정의합니다.예를 들어 다음과 같습니다.
- 퍼블릭 인터페이스 SomeInterface { ... // 메서드시그니처}
리모트 오브젝트는 이 인터페이스 및 다른 인터페이스를 구현하고 앞서 설명한 것처럼 오브젝트를 리모트합니다.
스태틱 리모트오브젝트 사용은TransparentItemProxy
리모트 오브젝트 사용자는 다음과 같이 이 오브젝트에 대한 참조를 작성할 수 있습니다.[2]이것에 의해, 실제로 공유 인터페이스가 실장됩니다.
- SomeInterface si = (SomeInterface)TransparentItemProxy.getItem("//someHost:1198/someName", 새 클래스[... {SomeInterface.class})
리모트 머신은 리모트오브젝트에 대해 마치 로컬인 것처럼 정확한 Java 구문과 시멘틱스를 사용하여 메서드를 호출할 수 있습니다.
동적 원격 개체 사용
다이내믹 리모트오브젝트 사용은 일반적으로 오브젝트에 대한 인터페이스가 런타임에 결정될 때 실행됩니다.스크립팅에서 [3]Cajo 리모트오브젝트를 사용하는 경우가 많습니다.머신은 다음과 같이 리모트오브젝트 참조를 동적으로 사용합니다.
- // 참조 취득
오브젝트 = Remote.getItem("//someHost:1198/someName");
- // 일반적으로 런타임에 가져오기
문자열 someMethod = "someMethod";
- // 런타임에도 취득 가능
개체 someArgs = 새 개체[...] {someArgs, ...};
- 개체 결과 = 원격입니다.호출(오브젝트, some Method, some Args);
이 스니펫은 리모트오브젝트에서 메서드를 호출하여 인수(있는 경우)를 제공하고 결과를 반환합니다.(있는 경우)
cajo 프레임워크에서는 머신이 IP [4]멀티캐스트와 함께 UDP를 사용하여 오브젝트 참조를 리모트할 수 있습니다.이 기술을 사용하면 관심 있는 머신이 원격 참조를 사용할 수 있습니다.방송을 듣기만 하면 됩니다.이것에 의해, 리모트 오브젝트의 유저가 호스트 머신의 TCP/IP 주소를 알 필요가 없는 일대다 링크 메카니즘이 제공됩니다.
리모트 그래피컬 사용자 인터페이스
Cajo 프로젝트는 원격 그래픽 사용자 [5]인터페이스에도 사용됩니다.이를 통해 애플리케이션은 모델 및 컨트롤러 개체와 별도의 시스템에서 보기를 실행할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Adding cajo to existing applications". Cajo project. 2007-08-04. Archived from the original on 2006-09-25. Retrieved 2008-01-19.
- ^ "Using remote objects as if they were local". Cajo project. 2007-08-04. Archived from the original on 2007-12-23. Retrieved 2008-01-19.
- ^ "Why script cajo?". Cajo project. 2007-08-04. Archived from the original on 2008-01-03. Retrieved 2008-01-19.
- ^ "Using cajo Multicasting". Cajo project. 2007-08-04. Archived from the original on 2007-12-23. Retrieved 2008-01-19.
- ^ "Using the cajo proxy mechanism". Cajo project. 2007-08-04. Archived from the original on 2007-12-23. Retrieved 2008-01-19.
외부 링크
- https://web.archive.org/web/20060925101254/https://cajo.dev.java.net/ cajo 프로젝트 페이지
- http://java.net/projects/cajo cajo SDK 프로젝트 페이지[permanent dead link]
- 공식 IANA 포트 번호 공지[영구 데드링크]
- IANA 멀티캐스트주소 방송[영구 데드링크]
- 인터넷 멀티캐스트어드레스