2014-04-25 1 views
10

확장 가능한 인터넷 - 오브 - 사물 적용을위한 아키텍처 선택에 어려움을 겪고 있습니다.Twisted/Cyclone/Tornado (웹 로그인/사용자/관리자)를위한 고차원 웹 프레임 워크/애드온?

나를 위해 아름답게 근무하고있다 꼬인 코어를 사용하여 많은 Tornado 관습 (등 WebSocket을, 인증-장식, 보안 - 쿠키,)

을 제공하기 위해 Cyclone 프레임 워크 증강 Twisted에 내 프로젝트의 기반이 선택한 . 저는 수많은 IP 프로토콜과 하드웨어 인터페이스를 가지고 있습니다. 모든 것들이 트위스트 된 라이브러리 안에서 훌륭한 라이브러리를 지원하는 것으로 나타났습니다. (그리고 새로운 프로토콜과 인터페이스를 어플리케이션에 추가하는 것이 프로젝트 스코프 크리프를 가질 가능성이 가장 높습니다.) Twisted needing 매우 낮은 CPU 및 매우 높은 연결 수를 제공합니다.

제 2 차 웹 응용 프로그램 기능에 문제가 있습니다.

필자는 auth goodies (OpenID, oauth, 사용자 인증 데코레이터 및 보안 쿠키)를 사용하여 Webapp에서 사용자/세션/관리 기능을 구현하는 데 많은 시간이 걸리지 않는다고 Cyclone이 생각했습니다. 제 (txmongo 통해) 내 데이터베이스를 추상화의 500 개 라인과 단지 건물 사용자 로그인 후 그것은 분명 해졌다 I 모두 :

  1. /토네이도는 사용자/세션/관리 공간에 가져다 방법 작은 사이클론 이해하지 못했다 및
  2. 내가 완전히라고 생각 처음하는, 그것은 당신이

친구가 Flask 나를 지적 다중 사용자 인증 웹 애플리케이션 구축을 위해 노력하면 격차를 입력하는 데 걸리는 코드의 양을 이해하지 못했다 중복, 찾았 때까지 flask plugins. Flask-LoginFlask-Admin의 조합은 내 사용자, 세션 및 사용자 관리 요구 사항을 완전히 포함하므로 약 2k 줄의 코드가 될 것이라고 생각하는 내용을 저에게 부정합니다. 불행히도, 플라스크 플러그인은 코드 차단 및 라이브러리 차단에 대한 호출로 모두 유행합니다. 비록 사용자/세션 기능이 모든 페이지로드에서 발생한다면 WSGIcontainers이 사용되는 경우에도 내 프로젝트와 호환되는 것으로 보지 못합니다. (추가로 내가없는 비동기 월드로 포트 할 수있는 단축키가 보이지 않습니다. 그)

내 질문은 재 작성의 그것과 거의 동일하게 작동 : 내 프로토콜 요구 주어, 희망 트위스트 공간에서 파이썬 비동기 공간에서

(...)를, 어떤 플러그인이나 다른 프레임 워크가있다 그 Flask-Login 및 Flask-Admin에있는 것과 유사한 준비가 된 사용자/로그인/관리 기능을 제공합니까?

P. 나는 플러시의 명백한 Twisted 버전으로 Klein을 보았지만, 플러그인 생태계가없는 것 같았고 강력한 사용자/세션/관리자를 찾지 못했습니다.

P.P.S. 나는이 질문을 썼을 때 이미 내 자신의 (엉터리) 사용자 로그인 세션 시스템을 작성했다. 그래서 저는 "Admin"기능 (웹 UI 렌더링을 포함한 사용자 스타일 레코드의 자동화 된 CRUD 기능, 모두 비틀기/비동기 방식으로 설계됨)을 수행합니다. 내가 질문에 사용자/로그인에 대해 물었다. 이미 integraded 솔루션 (flask-login 및 flask-admin과 같은)이있는 경우, 필자는 코드를 기쁘게 삭제하고 전환 할 수있다.

+3

토네이도에 세션 지원을 추가하려고 시도한 사람들이 있습니다.하지만 더 이상 유지 관리되지 않는 것 같습니다. https://github.com/milancermak/tornado, https://github.com/diogobaeder/pycket. 나는 둘 중 하나를 사용하지 않았으므로 나는 그들의 품질을 확신하지 못한다. 최소한 코드를 빌릴 수는 있습니다. – dano

+0

flask-socketio는 비동기를 지원합니다. 이것 좀 봐 : http://flask-socketio.readthedocs.org/en/latest/ – chfw

+0

당신은 정말로 관리자가 완전히 비동기 맞을 필요는 없나요? 그럴 경우 Twisted WSGIResource에서 Flask-Admin을 사용할 수 있습니다. 세션 물건에 관해서는, 나는 여기에 같은 대답을 찾고왔다. :) – dpn

답변

2

비동기가 필요합니까? 비동기 웹 소켓을 고려하지만 페이지 렌더링을 동기화하십시오. 필요한 경우 비동기 다운 스트림 프록시 또는로드 밸런서를 추가하면 응용 프로그램 서버의 IO 오버 헤드가 거의 제거됩니다.