2009-11-09 5 views
0

이것은 제품 개발에 대한 기술 결정과 관련하여 일반적인 질문입니다. 내 목표는 오디오 및 비디오 통신을 통해 웹 기반 원격 지원 (데스크톱 공유 응용 프로그램)을 개발하는 것입니다.웹 기반 응용 프로그램과 데스크톱 통합 기술 - 기술?

내 이상적인 솔루션은 클라이언트 측이 항상 브라우저에서 실행된다는 것을 의미하는 웹 제품으로 개발하는 것입니다. 클라이언트 기술은 자바 스크립트 (Google GWT 사용)이고 데스크톱 캡처, 데스크톱 프리젠 테이션, 오디오 및 비디오에 대해서는 Java applets을 사용하고 싶습니다.

서버 측은 Java Servlet 기술을 사용하여 데이터베이스 백엔드 (Hibernate 및 SQL 기반 데이터 소스)와 함께 실행됩니다. 데이터 스트리밍의 경우 내 계획은 RTP/RTSP UDP를 통한 전송입니다 (데스크톱 데이터의 경우 내부 프로토콜은 VNC (RFB)가되지만 전송은 RTP 자체가됩니다). 오디오 및 비디오의 경우 RTP가 전송에 사용됩니다.

내 기본 버전 (프로토 타입)은 클라이언트가 항상 서버 (로그온, 인증, 세션 제어)에 연결하고 서버가 항상 피어간에 데이터를 릴레이한다는 중계 서버를 사용하여 작동합니다.

제 질문은 - 제 기술 결정이 맞습니까? 내 말은, 멀티 플랫폼 지원 때문에 순수 Java를 사용하기로 결정했습니다. 요즘 우리는 더 고급 데스크톱 지원을 가지고 Silverlight을 가지고 있지만, 단 하나의 플랫폼 (Windows)으로 제한됩니다.

또한 오디오/비디오 기술에 대한 Java 지원에 대한 두려움이 있습니다. RTP/RTSP, 오디오 및 비디오 캡쳐/디스플레이에 대한 지원이있는 것으로 보이는 JMF (Java Media Foundation)를 보았지만이 패키지는 매우 구형입니다. 당신이 그것에 대해 어떻게 생각하십니까?

실제 화면 캡처에 대해서는 AWT Robot 클래스로 시작합니다. 나는 고성능 데스크톱 캡처를 위해 API 후킹이나 미러 드라이버처럼 더 낮은 수준의 기술이 필요하다는 것을 알고 있지만, Java 프로토 타입을 만들려고 할 때 내 프로토 타입은 화면 캡처를 위해 1 FPS을 제공하는 것을 목표로합니다.

답변

1

자바 애플릿이 할 수 있지만, 조금 레거시 요즘입니다. Java 용어로, 요즘에는 Java Web Start (더 나은 Google 키워드는 JNLP)과 JavaFX을 선택할 수 있습니다. 새로운 언어를 배우고 싶지 않아서 RIA을 갖고 싶다면 JavaFX로 이동하십시오. 그렇지 않으면 Java Web Start A.K.A. JNLP는 훌륭한 선택입니다. Java를 사용하면 모든 것이 보안 제한의 테두리 내에있는 한 모든 것을 클라이언트 응용 프로그램처럼 처리 할 수 ​​있습니다.

사용 자습서는 JavaFX tutorialWeb Start tutorial입니다.

1

Adobe AIR 및 JavaFX를 확인하십시오.

+0

Flex? 그건 Adobe의 것입니다. 당신은 아마도 JavaFX라고 말하려고했습니다. – BalusC

+0

이것을 반영하기 위해 수정했습니다. – Gandalf