2010-12-07 1 views
1

C로 작성된 웹 서버를 장치에 임베드하는 프로젝트를 진행 중입니다. 요구 사항은 웹 서비스 (SOAP/JSON-RPC)를 지원해야하며 ARM 프로세서와 호환되어야합니다. 특정 제품에 대한 제안이나 가장 먼저 볼 수있는 부분은 무엇입니까?SOAP/JSON-RPC 기반 웹 서비스를 지원하고 ARM 프로세서와 호환되는 오픈 소스 C 내장 웹 서버

+0

어떤 OS입니까? 얼마나 많은 RAM을 가지고 작업해야합니까? 4MB 램 + 1GB 디스크 공간 (SD 카드)에서 Debian Linux + Lighttpd를 성공적으로 사용했습니다. – slebetman

+0

@slebetman : 시간 내 주셔서 감사합니다. 우리는 리눅스 2.6x를 사용할 계획이며 장치의 RAM은 256MB라고합니다. ARM 기반 프로세서를 가지고있을 것입니다. –

+0

아 당신이 좋아하는 웹 서버를 사용할 수 있습니다. SOAP/JSON-RPC 처리는 실제로 서비스를 구현하기 위해 선택한 프로그래밍 언어와 프레임 워크의 함수입니다. CGI 응용 프로그램에 높은 처리량이 필요한 경우, 메모리 오버 헤드가 적어지면 lighttpd (실제로는 256MB)와 Apache2 또는 Nginx를 사용하는 것이 좋습니다. – slebetman

답변

1

설명 : Linux 기반 플랫폼 (256MB RAM 포함)은 기본적으로 원하는 웹 서버를 사용할 수 있습니다. 256MB RAM은 장치를 일반적인 임베디드 영역에서 서버 공간으로 이동시킵니다.

Linux 커뮤니티에서 잘 지원되기 때문에 ARM 지원에 대해 걱정하지 마십시오. 데비안에서 공식적으로 지원하는 아키텍처 중 하나입니다. 나 자신은 Debian을 실행하는 ARM과 32MB RAM을 가진 하드웨어로 lighttpd에서 두 개의 웹 서버를 운영한다. 이 단일 스레드 RAM 사용에 매우 가벼운이기 때문에 -

는 lighttpd를
  • :

    상위 3 가장 인기있는 웹 서버 (당신은 문제가 있다면 당신은 쉽게 구글 수 있음을 의미하기 때문에과 인기는 매우 중요하다) CPU 사용량도 매우 가볍습니다. 단점은 단일 스레드이므로 중량이 많이 나가는 CPU 집약적 인 CGI 응용 프로그램을 실행하려고하면 응답 속도가 느려질 수 있다는 것입니다.

  • 아파치 2 - RAM 사용량이 많습니다. 아파치의 기본 운영 모드는 과도한 부하를 처리 할 수 ​​있도록 가능한 한 오랫동안 스레드를 유지하는 것입니다. 이것은 수면 과정에서 RAM을 사용하는 대부분의 시간을 의미합니다. 그러나 무거운 짐을 다룰 필요가 있다면 이것은 좋은 일입니다. 무거운 의무 CGI 응용 프로그램에 좋습니다.

  • Nginx - 블록에있는 새로운 아이. Lighttpd 나 Apache와 같이 잘 문서화되지는 않았지만 (당분간 문서가 시간이 지남에 따라 향상됨) 사람들은 두 가지 모두를 능가한다고 말합니다. 그것은 Apache2와 같이 다중 스레드되지만 lighttpd와 같은 nonblocking이므로 두 세계에서 최고의 성능을 발휘합니다. 일반적으로 Apache2 (lighttpd 이상)는 RAM을 적게 사용하고 Apache2보다로드가 적은 경우 RAM을 사용합니다. 나를위한 유일한 단점은 문서입니다.

1

장치에 리소스가 부족한 경우 Mongoose 또는 libsoup (GLib 사용)과 같은 내장 웹 서버 라이브러리를 고려하십시오. 그러나 일반적으로 SOAP 및 XML 구문 분석과 같은 서비스는 리소스에 상당히 많은 것을 유의하십시오.

+0

답장을 보내 주셔서 감사합니다. 몽구스와 관련된 경험이 있는지 물어보고 싶습니다. 가능성이있는 것으로 생각하고 있습니다. –

+1

나는 외모를 가졌지 만 작고 휴대 가능한 것을 원했고, 내 자신의 구현 (http://code.google.com/p/openpgm/source/browse/trunk/openpgm/pgm/http.c)으로 끝을 맺었습니다. –