이상적인 HTML5 웹 애플리케이션의 제한이 있습니까?


11

다음 두 가지 가정이 사실이라고 가정 해 봅시다.

  • 전체 사용자층이 어디서나 광대역 액세스 가능
  • HTML5 및 WHATWG 그룹의 전체 초안 사양을 구현하는 가상 브라우저 X가 있으며 일관되게 모든 사용자가 브라우저 X를 사용합니다.

상용 공용 데스크탑 응용 프로그램이 필요한 상용 공용 HTML5 웹 응용 프로그램 의 본질적인 한계는 무엇입니까 ?

추가 기능을 위해 Flash / Java / SilverLight / etc 브리지를 사용하지 않거나 추가 기능을 위해 브라우저 플러그인을 사용하지 않는 플러그인없는 웹 응용 프로그램의 제한 사항에 관심이 있습니다.

적용되지 않는 가능한 제한 사항 :

  • 데이터베이스? WebSQL과 indexedDB가 있습니다.
  • 파일 IO? 읽고 쓰는 HTML5 파일 API가 있습니다.
  • 속도? 최근 JavaScript 엔진 경쟁으로 인해 브라우저가 더 이상 느려지지 않습니다. 네이티브 C ++는 크롬의 V8 엔진보다 3 배 빠릅니다.
  • 개발 도구? 웹은 성숙 해졌고, 나열하기에는 너무 많은 도구들이 있습니다.
  • 비공개 소스? 예, 모든 코드는 오픈 소스입니다. 이것은 양날의 칼이며 비공개 소스 또는 공개 소스 코드 사용에 대한 수많은 의견이 있습니다. 필자는 개인적으로 오픈 소스 코드의 장점이 단점보다 크다고 생각합니다.
  • JavaScript / HTML5? "저는 개인적으로 HTML5와 EcmaScript가 끔찍한 개발 플랫폼이라고 생각합니다"와 같은 주장은 포함되지 않습니다.

알려진 제한 사항 :

  • 실시간 / 보안 (일급 비밀) 중요 코드는 웹에 속하지도 않습니다. C 또는 C ++와 같이 제어가 용이 한 저수준 언어로 작성해야합니다.
  • 컴퓨터에 연결된 외국의 타사 하드웨어와 상호 작용해야하는 도구는 웹 응용 프로그램과 대화하기가 어렵습니다.

웹에 속하지 않는 전체 프로그램 모음도 있습니다. 운영 체제, 드라이버, 서버 소프트웨어, 저수준 API 나는 그것을 알고 있지만 "상업용 공용"응용 프로그램으로 분류하지는 않습니다. 이들은 컴퓨터에 사전 설치 될 수있는 소프트웨어 유형입니다.

옆으로, 나는 두 가지 가정이 끔찍하게 비현실적이라는 것을 알고 있지만 우리는 5/10/20/30 년 안에 그것들을 성취 할 수 있습니다. 응용 프로그램의 유형 과 웹과 완전히 호환되지 않는 응용 프로그램의 기능에 관심이 있습니다 .

자극:

요점:

데스크톱 응용 프로그램이 유효한 솔루션 인 일련의 문제가 있습니다.

  • 왜 웹 애플리케이션이 유효한 솔루션이 아닌가?
  • 웹 응용 프로그램을 솔루션으로 사용할 수 있는지 여부를 어떻게 식별합니까?

웹 응용 프로그램 (인터넷 연결 및 브라우저 지원)이 존재하지 않는다고 주장하여 주요 어려움을 제거하려고했습니다.

또한 HTML5 오프라인 애플리케이션과 Modernizr은 이러한 두 가지 문제를 모두 해결하기 위해 노력하고 있습니다.

웹 애플리케이션 개발에있어 다른 어려움은 무엇입니까?


2
기본 제한 : 최소한 비용을 반환하는 비즈니스 모델과 관련하여 사람들이 사용하기를 원하는 웹 응용 프로그램에 대한 좋은 아이디어입니다. 나머지는 두 번째입니다.
SF.

"내재적 한계는 무엇입니까?" "내재적 한계"란 무엇을 의미합니까? 이 단어는 무엇을 의미합니까? 어떤 정보를 원하십니까? 어떤 문제가 있습니까? 질문이 뭐야?
S.Lott

@SF는 "웹"이라는 단어를 제거합니다. 문제와 해결책이 필요합니다. 해당 솔루션이 응용 프로그램 인 경우 문제를 해결하고 사용자 기반을 확보하고 작동 할 비즈니스 모델을 보유해야합니다. 솔루션으로 데스크톱 응용 프로그램이있는 일련의 문제를 비교하고 웹 응용 프로그램이 작동하지 않는 이유를 묻습니다.
Raynos

@ S. 당신의 정확한 것을 보아라. 질문이 너무 모호했다. 나는 실제 질문이 무엇인지 명확히하기를 바란다.
Raynos

뭐? "상업용 공용 데스크탑 응용 프로그램이 필요한 상용 공용 웹 응용 프로그램의 본질적인 한계는 무엇입니까?" "웹이 작동하지 않아 언제 데스크톱이 필요합니까?" 그렇다면 programmers.stackexchange.com/search?q=desktop+web
S.Lott

답변:


11

내 머리 위로 ...

  • 파일 이외의 다른 방법으로 I / O를 내보내는 독점 하드웨어에 액세스합니다. 과학 장비, 산업 기계 또는 일반 CD 레코더 및 틸트 지원 디지타이저 태블릿이어야합니다.
  • HTTP와 다른 프로토콜의 작은 제품군. 원하는 바이너리 데이터를 전송하여 원하는대로 소켓을 만들 수 없습니다. 다른 시스템 및 서비스와의 연결을 크게 제한합니다.
  • 제정신 개발자는 자바 스크립트로 그래픽 집약적 인 게임을 만들 수 없습니다. 광대역은 종종 필요한 DVD / HDD 처리량과 거의 비슷하지 않습니다. Canvas에서 3D 지원은 게임 엔진보다 훨씬 열등합니다. 조이스틱, 여러 개의 동시 키 누름을 지원할 수있는 방법이 없으므로 개방형 특성으로 부정 행위가 쉬워집니다. 그러나 기본적으로 성능 저하는 허용되지 않습니다.
  • 무거운 샌드 박싱. 당신은 OS에 깊이 통합되는 것들을 얻지 못할 것입니다. 스크린 샷, 바이러스 백신, 가상 드라이브, 백그라운드 작업 및 시스템 트레이, 관리 작업 등
  • 미션 크리티컬 할 수 없습니다. 기본 소프트웨어를 실행하기 위해 항상 광대역에 의존하는 것이 대부분의 회사가 선호하는 방식은 아닙니다.

1
2. WebSocket은 TCP 소켓을 노출시킵니다. 브라우저에서 UDP에 액세스 할 수 없지만 TCP는 더 많은 옵션을 제공합니다.
Raynos

2
3. WebGL은 흥미로운 발전을 이루고 있습니다. OpenCL 지원이 최근에 시작되었습니다. 여전히 데스크톱 게임 개발의 5 년이 지났지 만 가능해지기 시작했습니다.
Raynos

2
@Raynos : WebSockets은 소켓과 같은 기능을 제공하지만 특정 핸드 셰이크가 필요합니다. 기존 시스템에 쉽게 적용 할 수 없으며 서버 측 수정이 필요합니다. 일반 ssh 클라이언트 웹 앱이 없음을 의미합니다. WebGL은 gfx 문제 중 일부를 해결할 수 있지만 대량 데이터 요구 사항 (기가 바이트의 텍스처 및 메시), 컨트롤러 I / O 및 오디오 지원에 대한 솔루션은 현재 병적으로 열악합니다.
SF.

1
4. W3C Device API (알지 못했던)는 실제로 샌드 박싱 문제를 해결하기 위해 제대로 진행되고 있습니다.
Raynos

1
이 답변을 처음 작성한 이후 많은 것들이 변경되었습니다. 브라우저는 그 자체로 합법적 인 소프트웨어 플랫폼이되었습니다. 당신이 당신의 대답에 설명하는 것의 대부분이 가능합니다. 예, 충분한 노력을 기울이면 브라우저에서 실행되는 거의 모든 게임이나 응용 프로그램을 상상할 수 있습니다.
Robert Harvey

3

본질적으로 서버 / 클라이언트 모델에 적합 할 수있는 모든 것은 좋은 웹 응용 프로그램을 만들 수 있으며 사실상 그 반대도 마찬가지입니다. 대부분의 프로그램이 Model / Controller / View로 모델링 될 수있는 방법을보고 프로그램이 모델과 컨트롤러를보기에서 분리 할 수 ​​있기 때문에 웹으로 이동하려는 경향이 너무 빨리 사라졌습니다.

물론 효율성상의 이유로 잘못된 요청과 데이터로 서버에 과부하가 걸리지 않도록 일부 컨트롤러가 클라이언트 쪽에도 배치됩니다.

내 요점은 다음과 같습니다. 어떤 프로그램이 모델 / 컨트롤러 / 뷰 소프트웨어 아키텍처에 맞지 않는지, 웹 응용 프로그램으로 변환되지 않은 동일한 프로그램 일 수 있습니다. 좋은 예는 운영 체제, 작업 스케줄러, 명령 프롬프트, 바이러스 방지, 스파이웨어 보호입니다. 모델에 맞지 않기 때문에 웹 사이트에서 구현되지 않을 가능성이 높습니다. 그리고 이러한 프로그램의 모든 단일 프로그램이 시스템에 크게 의존한다는 것은 우연의 일치가 아닙니다. 대부분은 하드웨어에 직접 액세스해야하는 반면, 다른 일부는 실행하기 위해 더 높은 보안이 필요하며 인터넷 웹 사이트에서이를 신뢰할 수 없습니다.

물론 Google은이 개념을 새로운 운영 체제에 완전히 다시 적용하고 있습니다. 아마도 Windows와는 달리 단순히 인터넷을 사용하는 시스템이 아니라 그 시스템에 크게 의존하는 시스템 일 것입니다. 곧이 모든 프로그램이 온라인으로 제공되는 것을 보게 될 것입니다. 엄격한 인증서 인증을 통해 하드웨어 및 소프트웨어에 액세스하여 모든 사이트 만 신뢰할 수있는 사이트는 할 수 없도록합니다. 20 년 후에 컴퓨터가 더 이상 설치 가능한 소프트웨어로 만들어지지 않을 것이라고 생각하기 때문에 그들이 무엇을 보게 될지 궁금합니다. 오히려 모든 서비스가 온라인으로 제공됩니다.


0

• 컴퓨터에 연결된 외국의 타사 하드웨어와 상호 작용해야하는 도구는 웹 응용 프로그램과 대화하기가 어렵습니다.

현재 작업중 인 소프트웨어에는 타사 주변 장치에서 데이터를 수집해야하기 때문에 웹 기반뿐만 아니라 데스크탑 측면도 있습니다. 장치와 웹 간의 격차를 해소하기 위해 드라이버와 클라이언트 데스크톱 프로그램의 개발이 필요합니다.

그러나 이러한 종류의 데스크탑 응용 프로그램은 대부분 서버에 상주하는 논리로 얇을 수 있으므로 웹 응용 프로그램은 제외되지 않습니다.

다른 한편으로, 클라우드 컴퓨팅 및 대량 가상화의 측면에서 웹 기술의 한계와 보안 허점에 의해 애플리케이션이 반드시 제한 될 필요는 없다고 말할 수 있습니다. 맹렬한 터미널 (Citrix와 유사)의 가상화 된 환경에서 데스크톱 응용 프로그램을 실행하는 것이 훨씬 쉬워졌으며 다음 개발 "페이드"가 될 수 있습니다.

결론은 그 어느 때보 다도 더 많은 선택이 있고 내일의 기술을 "최상의"방식으로 재생하는 훨씬 더 많은 대화 헤드가 있다는 것입니다.


1
흥미롭게도 웹 브라우저의 가상화 된 환경에서 데스크톱 응용 프로그램을 실행할 수 있습니다. 대부분의 VNC 서버의 고대 기능은 VNC 뷰어 Java 애플릿이며 http : // [원격 시스템] : 5800 /에서 기본적으로 사용할 수 있습니다.
SF.

0

다음 두 가지 가정이 사실이라고 가정 해 봅시다.

  • 전체 사용자층이 어디서나 광대역 액세스 가능
  • HTML5 및 WHATWG 그룹의 전체 초안 사양을 구현하는 가상 브라우저 X가 있으며 일관되게 모든 사용자가 브라우저 X를 사용합니다.

상용 공용 데스크탑 응용 프로그램이 필요한 상용 공용 HTML5 웹 응용 프로그램 의 본질적인 한계는 무엇입니까 ?

추가 기능을 위해 Flash / Java / SilverLight / etc 브리지를 사용하지 않거나 추가 기능을 위해 브라우저 플러그인을 사용하지 않는 플러그인없는 웹 응용 프로그램의 제한 사항에 관심이 있습니다.

자, 여기 문지름이 있습니다. 브라우저는 본질적으로 안전하지 않습니다. 그래서 당신은 우리에게 둘 사이의 트레이드 오프를 요구하고 있습니다. 그러나 그것을 지나쳐서 우리가 자바 스크립트 (귀하의 게시물에서 언급 한)가 있다고 가정하면 HTML5 / Javascript만으로는 작성할 수없는 응용 프로그램이 없다는 대답입니다. 그러나 우리는 방해가되지 않는 브라우저를 가정합니다.

그 물건에는 로컬 DB 저장소가 있으며 HTTP 요청 (RESTafarian이 충분하다고 말함)을 사용하여 다른 플랫폼을 호출 할 수 있으며 원하는 모든 것 (캔버스를 통해)을 그릴 수 있습니다. 개방형 표준 (OpenGL ish)을 사용하여 작성된 3D 게임이 이미 있으며 원하는대로 무엇이든 할 수있는 API가 있습니다.

유일한 단점은 속도입니다. 이러한 HTTP API를 다른 시스템 (데이터베이스)에 호출하는 데 시간이 걸립니다. FILE (COM1 :) 요청을 처리하는 데 시간이 걸리므로 (예 : Windows에서 직렬 장치를 읽는 경우) 예상되는 문제 영역입니다. 물론 드라이버는 파일처럼 액세스하도록 작성되었다고 가정합니다. 더 이상 사실이 아니라고 확신합니다. 그러나 그들은 그러한 메커니즘을 노출시킬 수 있습니다.)

사용자에게는 전혀 다르지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.