2009-12-31 5 views
3

운영 체제 : Linux.임베디드 시스템 용 웹 인터페이스 설계

임 내 임베디드 시스템 용 웹 인터페이스를 설계하는 방법을 찾으려고합니다. 현재 셸 (텍스트 기반)이 있으며 작은 쿼리 집합이 구현되어 장치를 쿼리합니다.

웹 개발에 새로운 임, 내 질문은 다음과 같습니다

  1. 내가 어떤 웹 서버를 사용해야합니다? (내 개발 설정에서 아파치를 얻었고 cgi를 사용하여 페이지를 가져 오려고했으나 임베디드 시스템에 적합한 선택이 아닌 것 같습니다.)

  2. CGI를 사용한다고 가정 할 때 CGI간에 데이터를 전달하는 데 사용할 수있는 전략은 무엇입니까? 및 메인 애플 리케이션. CGI 스크립트의 쿼리를 처리하기 위해 MainApp에 스레드를 만들려고했습니다. 이 스레드는 MainApp에서 인터페이스를 호출하고 데이터를 검색하여 CGI로 전달합니다.

감사

답변

8

우리는 우리의 임베디드 시스템에 Lighttpd를 사용, 그것은 작고 통합하기가 매우 쉽다. 또한 내 생각에 매우 좋은 제품인 AppWeb과 같은 내장 웹 서버 기능이 있습니다.

기본 응용 프로그램과 CGI 사이의 통신을 위해 포함 된 플랫폼에서 사용할 수있는 소켓 또는 System V 메시지 대기열을 사용할 수 있습니다. SYSV 메시지 대기열의 장점은 사용 및 관리가 매우 쉽고 대기열의 메시지가 응용 프로그램 재시작 후에도 지속되지만 대기열에있는 메시지도 선택할 수 없다는 것입니다.

+0

감사합니다 :) 소켓을 시도합니다 –

4

웹 서버로 다른 선택은 thttpd입니다. 나는 그것을 산업 제품에서 성공적으로 사용한다.

CGI와 기본 응용 프로그램 소켓 간의 통신에 적합합니다.

+0

답변 주셔서 감사합니다. 하지만 이미 lighttpd가 작동하고 소켓을 사용하고 있습니다. –

0

웹 서버가 필요하지 않지만 아파치보다 임베드 할 때 더 좋은 선택이 있습니다. 아파치는 임베디드를 위해 설계되었으며 더 크고 더 느립니다.

CGI는 권장하지 않습니다. 실행 속도가 느리고 개발 속도가 느립니다. Appweb에 대해 내가 말할 수있는 것은 내가 개발자 중 한 명입니다. Appweb 두 개의 좋은 웹 프레임 워크가 있습니다 MVC C-언어 웹 farmework에게 있습니다

  • ESP Appweb위한 서버 측 자바 스크립트 프레임 워크가

    • Ejscript는

    ESP가 매우 빠르고을 쉽게 제공 컨트롤러를 URL에 바인딩 Ejscript는 더 크고보다 광범위한 클래스 라이브러리를 가지고 있습니다. 둘 다 임베디드 용으로 설계되었습니다. 둘 다 CGI보다 훨씬 뛰어나며 CGI보다 20 배 이상 빠릅니다.

  • +0

    이 질문에 답하는 경계선에 있지만, 의도적으로 Appweb 프로젝트의 개발자 인이 게시물에서 제외 된 것처럼 보입니다. 더 이상의 답변을 게시하기 전에 [FAQ (자주 묻는 질문)] (http://www.stackoverflow.com/faq#promotion)을 읽어야합니다. –

    +0

    앤드류, 팁 주셔서 감사합니다. 나는 규칙을 배우고 있으며 내 대답의 틀을 잘 잡으려고 노력하고 있습니다. 프로젝트에 참여하는 데 대한 정보를 추가하겠습니다. – Embedthat

    0

    저는 임베디드 장치 용 가벼운 CGI 인 LuCI에서 작업하고 있습니다. 사실 그것은 무선 라우터의 오픈 소스 프로젝트 인 openwrt를위한 것입니다.

    서버는 uhttpd이며 가볍고 강력합니다.

    CGI 스크립트는 루아로 통역사가 10k를 넘지 않습니다. 섬세한 맞습니까?그리고 그것은 C에 의해 개발되고 C와 강력한 의사 소통을 할 수 있습니다.

    제 제안입니다.

    0

    우리는 JUCI를 openwrt와 함께 사용합니다. 자바 스크립트로 작성되어 클라이언트 브라우저에서 실행되며 json rest API를 통해 웹 서버와 통신합니다. 백엔드는 모든 언어로 구현 될 수 있지만 시스템 버스 (ubus)에 연결되는 C로 작성된 재사용 가능한 구성 요소를 사용합니다. 이는 관련 서비스가 cli 및 나머지 API를 통해 사용할 수있는 ubus를 통해 기능을 노출 함을 의미합니다. 실제로는 꽤 좋습니다.