2011-06-11 3 views
4

가까운 미래에는 C++ 백엔드 및 웹 프론트 엔드 (요구 사항)로 시스템을 만들어야 할 것입니다. 지금은 그것에 대해 더 많이 알지 못합니다. 나는 프론트 엔드가 백엔드가 아니라 데이터 전달을 촉발 할 것이라고 생각한다. 코멧과 같은 것들을 필요로하지 않는다.자바 스크립트 프론트 엔드 설계 <-> C++ 백엔드 통신

아마도이 분야에 대한 경험이 거의 없기 때문에 내가 한 디자인 결정에 대한 귀하의 의견에 진심으로 감사드립니다.

우선, 나는 C++에서 HTML을 생성하는 옵션을 좋아하지 않는다. 그래서 C++ 백엔드는 Javascript 프론트 엔드와 통신해야합니다. 가장 간단한 옵션은 Ajax입니다. 나는 그것이 지금까지는 괜찮을 것이라고 생각한다.

C++ 백엔드로 Ajax를 통한 통신은 백엔드가 HTTP를 처리 할 수 ​​있어야 함을 의미합니다. HTTP 처리 기능에서 실제 데이터를 제공하는 백엔드를 분리하는 것이 좋습니다.

여기 Node.js의 위치가 표시됩니다. 나는 그것에 대해 개략적 인 설명을하고 이것이 내 모든 의심이 놓여있는 곳이다.

'데이터 백엔드'를 Node.js 모듈로 사용하는 Node.js에서 HTTP 처리 서버를 사용 하시겠습니까? 내 생각에, 괜찮을 것입니다.하지만이 모든 비동기가 실제로 필요하다는 것을 확신하지 못하기 때문에, 제가 모르는 간단한 옵션이있을 수 있습니다. 그런 시스템을 어떻게 만들었습니까?

미리 감사드립니다.

+0

프런트 엔드에 대한 Backbone.js를 확인하십시오. http://documentcloud.github.com/backbone/ – Stephen

+0

감사. 그것은 귀중한 정보입니다 – Igor

답변

3

"이 모든 비동기식"은 Node.js가 추가로 제공하기가 매우 힘든 작업이 아닙니다. Node.js의 작동 방식을 이해하면 호흡하기 쉬운 웹 서빙에 대한 다른 견해입니다.

예를 들어 제 동료는 C++ 프로그램을 웹 서비스로 랩핑하는 방법이 필요했지만 프로그램에 상당한 초기 비용이 들었 기 때문에 프로그램의 한 인스턴스 만 실행하고 루프로 실행하고 싶었습니다. 모든 웹 요청을 처리합니다. Node.js의 모든 부분은 2 스크린 넘지 못했습니다.

각 요청에 대해 호출되는 단일 프로그램을 10 줄 미만의 Node.js로 묶을 수 있습니다. 자질구레 한 일로 비동기 성을 생각하지 마십시오. 포옹하면 Node.js가 좋습니다.

그렇다면 CGI 경로를 사용하여 좀 더 표준적인 방식으로 수행 할 수 있으며 최종 결과는 거의 동일합니다. This은 유용 할 수도 안될 수도 있습니다.

+0

나는 node.js에 대해 지금 알고있는 것을 좋아한다. 답변 해주셔서 감사합니다. 아마 내가 이쪽으로 갈거야. CGI에 관해서는, CGI C++보다 높은 레버 자바 스크립트에서 HTTP 코드를 갖는 것이 더 낫다고 생각합니다. – Igor

0

CGI/FCGI 모듈 옵션을 nginx, Apache 등으로 고려하셨습니까?

그렇지 않다면 나는 그것을 시작하는 것이 합리적이라고 생각합니다. 모듈이 data/json 요청을 처리하고 나머지는 HTTP 서버가 처리합니다.

+0

고마워, 지금은 nginx 모듈의 개요를했다. 이 상황에서 "module under nginx"는 "node.js 아래의 모듈"과 node.js의 모듈이 상위 레버 언어로 작성되므로 이점이 있습니다. 왜 nginx 옵션이 더 좋다고 생각하니? – Igor

관련 문제