2009-11-28 4 views
19
내가 몇 년 동안 다음과 같은 웹 개발 스택을 사용하고

:미들웨어와 MongoDB를 또는 CouchDB를위한 jQuery를 아약스/JSON 프론트 엔드

자바/봄/최대 절전 모드가/mysql을/부두/개찰/JQuery와

을 특정 요구 사항에 대해서는 AJAX 프론트 엔드를 사용하여 NoSQL 데이터 스토어로 전환하는 것을 고려하고 있습니다. 아마도 jQuery를 사용하여 프론트 엔드를 구축하고 JSON을 사용하여 웹 애플리케이션 미들웨어와 통신 할 것입니다. 더 동적 인 쿼리 기능 때문에 MongoDB에 기대고 있지만 CouchDB는 여전히 고려 중입니다.

중간에 무엇을 사용해야할지 모르겠습니다. 아마 뭔가 RESTful일까요? 내가 선호하는 것은 Rule을위한 Drools와 보안을위한 Shiro 같은 도구를 사용하기 때문에 Java (또는 Scala 또는 Groovy)를 사용하는 것이다. 그러나 다시 한번, 나는 작업하기 쉽고 빠른 것을 선택하기를 원합니다. 그래서 나는 다른 솔루션에 대해서 열려 있습니다.

ajax/json/nosql 솔루션을 빌드하는 경우 사용중인 도구와이를 사용하여 발견 한 장단점에 대한 세부 정보를 듣고 싶습니다.

+0

저지 및 Restlets을 들여다 보았지만 저지쪽으로 기울어졌습니다. – Tauren

+0

왜 전환 하시겠습니까? 그 "특정 요구 사항"은 무엇입니까? 궁금해. – Theo

+0

@Theo : 사실, 나는 내가 사용해온 스택이 맘에 들고, 어떤면에서는 그것을 계속 사용할 계획이다. 하지만 확장 성이있는 것은 아닙니다. JSON/REST를 사용하여이 문제를 해결하는 방법을 고려하고 있습니다. 또한 wicket을 사용한다는 것은 HTML을 와이어로 전달한다는 것을 의미하며 심지어 AJAX를 사용하더라도 JSON을 전달하고 브라우저에서 HTML을 생성하는 것보다 훨씬 더 많은 대역폭을 사용하게됩니다. – Tauren

답변

5
  1. 가장 편한 미들웨어를 선택하십시오.

  2. CouchApp은 현재 매우 실험적입니다. 주요 문제는 표준 HTTP 팝업 상자가 없어도 앱에 보안을 추가 할 수 있다는 것입니다. 이것은 분명히 표준 웹 응용 프로그램의 큰 문제입니다.

  3. 미들웨어에서 각 DB 요청을 구문 분석하고 couchdb에 대한 쿼리를 다시 작성하지 마십시오. 미들웨어를 프록시처럼 작동시켜 대부분의 요청을 수정하지 않고 전달할 수 있습니다. 또한 인증이 필요한 모든 요청 위에 중간 계층에 보안 계층을 추가 할 수 있습니다.

  4. URL 라우팅 기능이 뛰어난 미들웨어/프레임 워크를 선택하십시오. 예를 들어 mydomain.com/db/에있는 모든 요청을 couchdb로 라우팅 할 수 있습니다.

+0

매우 좋은 점, 감사합니다! 나는 제안을 사용하여 미들웨어를 단지 프록시로 사용하도록 할 생각이다. – Tauren

+0

# 3의 근거는 무엇입니까? -> "미들웨어에서 각 DB 요청을 구문 분석하고 couchdb에 대한 쿼리를 다시 작성하지 마십시오. 대부분의 요청이 수정없이 전달되도록 미들웨어를 프록시처럼 만들 수 있습니다. 또한 맨 위에있는 중간 계층에 보안 계층을 추가 할 수도 있습니다 인증이 필요한 모든 요청 중. " – Geoff

3

CouchDB와 함께 간다면 CouchApp을 사용할 수 있습니다. CouchApp은 응용 프로그램을 CouchDB 데이터베이스에 직접 배치하기위한 스크립트 세트입니다. 본질적으로 미들웨어를 건너 뛰고 CouchDB의 뷰, 목록 및 쇼 기능을 클라이언트 측 JavaScript와 함께 사용하여 전체 앱을 구현합니다. 이 아키텍처에서 앱이 작동하는 경우 놀라 울 정도로 상쾌하고 간단하며 멋지다.

+0

흥미 롭습니다, 감사합니다! 그러나 보안과 같은 솔루션을 어떻게 처리합니까? 내 시스템 사용자는 데이터에 액세스하려면 로그인해야하며 계정에있는 권한을 기반으로 특정 데이터 만 볼 수 있습니다. – Tauren

+0

CouchApp은 멋지지만 초기 단계의 프로토 타이핑과 실험에만 사용된다고 말할 수 있습니다. 너는 자라 난다. 그러나 그것은 전체 응용 프로그램의 일부가 될 수 있습니다. – JasonSmith

+0

그래서 CouchApp를 사용하는 다른 사람들은 자라면서 CowApp를 사용할 때 무엇을합니까? 내가 말할 수있는 것부터, 나는 처음부터 그것을 성장시킬 것이다. – Tauren

1

나는 약간의 수정 작업을 해왔다. 궁극적으로 MVC 컨트롤러 레이어를 jQuery/javascript 프론트 엔드로 이동하고 순수 JSON/REST를 사용하여 백엔드와 대화하고 싶습니다. 백엔드에는 강력한 보안이 필요하며, 내 애플리케이션에는 워크 플로, 쿼리 및 규칙을 수행 할 수있는 능력이 필요합니다. 도쿄 내각에서 실행

1) Couldkit :

또한보고 할 수 있습니다. JSONQuery와 OAuth를 지원합니다. Ruby/Rack에서 실행하면 충분한 기능을 수행 할 수 있습니다. Loks는 강력한 REST 구현을 좋아합니다. 2) 인내심, Java 기반이며 Dojo에서 강력하게 지원됩니다. REST-ish이지만 RPC 유형 호출도있다. 서버 측 자바 스크립팅 등 전반적으로 매우 강력합니다.

나는 당신이 어떻게오고 있는지 듣고 싶습니다.

건배, 알렉스 또한

+0

감사! 나는 아직 클라우드 킷을 들여다 보지 않거나 인내심을 가지고 있지 않다. 그래서 나는 그들과 시간을 보낼 것이다. 요구 사항은 비슷하지만 보안, 워크 플로우, 규칙 등이 필요합니다. i18n 및 L10n 및 사용자 수준의 사용자 정의 (테마/레이아웃/기타)가 필요합니다. Theming은 클라이언트 측에서 처리 할 수 ​​있지만 클라이언트에서 i18n을 수행하고 싶지는 않습니다. 현재 스택이 이미이 작업을 수행하고 있기 때문에 jquery 코드가 포함 된 i18n'ed html을 제공하도록하고 있습니다. jquery는 Jersey를 통해 JSON/REST 쿼리를 사용하여 독립적으로 작동합니다. 현재 구현에서 마이그레이션하는 것이 이렇게 간단 할 수 있습니다. – Tauren

2

당신 JSON/REST의 아이디어와 같은 서버에 자바 스크립트 클라이언트를 지키는 경우, 인내의 핵심의 새로운 세대, Pintura은에 특별히 설계 순수 JS JSON/REST 프레임 워크 NoSQL DB와 잘 작동합니다.

+0

감사합니다 크리스, 나는 Pintura를 조사 할게. – Tauren

0

정확하게 목적을 위해 Rack::JSON이라는 보석을 썼습니다. MongoDB db에 대한 기본 REST 인터페이스 역할을합니다. Cloudkit에서 영감을 얻어 JSONQuery를 지원하며 Ruby/Rack에서도 실행됩니다. JSON 문서를 저장 한 다음 액세스/쿼리 할 수 ​​있습니다.

관련 문제