2011-08-18 4 views
1

우리 서버 제품은 현재 데스크톱 형태로되어 있으며 우리는 웹 기반 프론트 엔드를 제공하는 동시에 서비스로 이전하려고 노력하고 있습니다. 웹 경험이 많지 않으므로이 작업을 수행하는 가장 좋은 방법을 찾아내는 데 어려움을 겪고 있습니다.웹 프론트 엔드를 서버 응용 프로그램에 효율적으로 연결할 수 있습니까?

첫 번째 단계에서 우리의 요구 사항은 매우 기본입니다. 우리는 시스템의 다양한 구성 요소의 상태를보고 실시간으로 침입 한 로그를 모니터 할 수 있기를 원합니다.

내 생각은 어딘가에 다른 서버에서 실행되는 별도의 웹 프레임 워크에서 사용할 수있는 서버 응용 프로그램에 TCP 기반 인터페이스를 추가하는 것입니다. 기본 상태 메시지의 경우 이는 간단합니다. 사용자가 웹 인터페이스에 연결하고 서버 응용 프로그램에 현재 상태를 쿼리 한 다음 해당 상태를 사용자에게 표시합니다. 로그 스트리밍의 경우 좀 더 복잡해집니다. 항상 서버 응용 프로그램의 최신 로그를 지속적으로 요청하는 경우, 특히 각 사용자마다 별도의 연결이있는 경우 서버 응용 프로그램에 더 많은 스트레스를 가할 수 있습니다.

이상적으로 웹 서버는 서버 응용 프로그램에 대한 단일 영구 연결을 열고 서버 응용 프로그램은 상태가 변경되거나 새 메시지가 기록 될 때마다 웹 서버에 데이터를 전송합니다. 그런 다음 웹 서버는이 데이터를 캐시하고 연결된 모든 사용자에게 "전달"합니다. 이 방법으로 서버 응용 프로그램이 수행하는 작업량은 대부분 고정되어 있으며 현재 서버에 연결된 사용자 수에 의존하지 않습니다.

내 질문은 :

  1. 이 근본적으로 의미가 있습니까?
  2. 어떻게해야합니까? 그것은 웹 프레임 워크가 처리 할 수 ​​있어야합니다 (나는 리프트쪽으로 기울어졌지만 지금 당장은 묶여 있지 않습니다) 또는 서버 애플리케이션에 대한 지속적인 연결을 유지하는 자체적 인 중간 캐싱 레이어를 작성해야합니다. 필요에 따라 웹 서버에 데이터를 제공합니까? 처음부터이 작업을 수행하는 것이 가장 좋은 방법입니까 아니면이 유형의 작업에 대해 이미 잘 테스트 된 솔루션이 있습니까?

내가 언급 한 것처럼 어떤 종류의 웹 개발이라도 나는 옳은 방향으로 나를 가리키고있는 어떤 것도 도움이 될 것입니다.

+0

그래프 그리기는 그래프 서버 메트릭에 대한 부분적인 해결책 일 수 있습니다. – Kevin

답변

0

귀하의 제품은 정보를 syslog 또는 정보를 모니터링하는 소프트웨어 응용 프로그램에 저장하는 하드웨어 장치이며, 실시간 로그 디스플레이가 있고 그 정보를 텍스트 로그 파일에 저장합니까? 데이터베이스에서 데이터를 가져 오는 것에 대해서는 언급하지 않았으므로 하나에 저장하지 않는다고 가정합니다. 내가 퍼즐의 완전히 조각을 이해하지만 염두에두고, 몇 생각이 마음에 와서 확실하지 않다

은 ...

  • 는 데이터 로그 서버 앱 스토어 되세요 웹 서버가 액세스 할 수있는 어딘가에 AJAX를 사용할 수있는 웹 프론트 엔드를 사용하여 웹 페이지의 '로그보기'섹션을 새로 고침하여 로그에 새로운 항목을 추가하여 매초마다보기에 추가합니다.

  • XMPP/Jabber는 또한 당신이하고있는 일에 참여할 수 있습니다. 프로토콜은 실시간 메시징을 위해 일부 IM 클라이언트에서 사용됩니다. 당신이 '푸시 메시징'과 같은 방식으로 일하기를 원하는 것처럼 들리는군요.그래서 아마 웹 서버 (로드에 따라 같은 서버 일 수 있음)와 함께 재버 서버를 설치 한 다음 서버 응용 프로그램에서 XMPP를 통해 재버 서버로 메시지를 보내면 서버가 릴레이됩니다. 청취자는 XMPP/Jabber 클라이언트가 될 것입니다. googletalk는 클라이언트 역할을 할 수 있으며 iChat은 수 있습니다. 또는 브라우저에서 실행할 자바 클라이언트를 작성할 수 있습니다 (저는 자바 사용자가 아닙니다 ...) 그리고 앱의 관리 측면을 처리 할 최소한의 웹 앱을 작성하십시오. XMPP를 통해 관리 측면을 처리 할 수도 있습니다. 'x 설정을 y로 변경'하는 메시지를 보내고 별도의 웹/재버 서버가 필요하지 않은 한 서버에서 모든 작업을 수행 할 수 있습니다.

하지만 이것들은 제가 보았습니다.

www.jivesoftware.org는 여전히 무료로 사용할 수있는 jabber 서버를 가지고 있으며, 나는 그들과 연관이 없습니다. 한 번에 실험 해 보았는데 매우 재미 있다고 생각했습니다.

그레그

+0

지금은 기본적으로 로그를 플랫 파일로 뱉어 내고 있습니다. 미래에 나는 그것을 계속해서 그런 식으로하거나 데이터베이스에 집어 넣을 것이라고 상상한다. XMPP는 아마도 과장 될 것입니다. 그러나 DB 아이디어는 로그 쿼리 등을 쉽게 수행 할 수있는 가장 좋은 방법 일 수 있습니다. 그렇다면 아직 우리가 일반적인 질문을 가지고 있다고 생각합니다. 10 명의 연결된 사용자가 정확히 동일한 데이터를 가져 오기 위해 10 개의 개별 DB 쿼리 (또는 데이터 저장소가 무엇이든간에)를 만들지 않도록 표준 연습은 무엇입니까? – Screndib

+0

마지막 코멘트에서 더 분명해야합니다. "정보를 모니터링하고 실시간 로그를 표시하고 해당 정보를 텍스트 로그 파일에 저장하는 소프트웨어 응용 프로그램입니까?" 우리가 가지고있는 것입니다. 실시간 로그 뷰어는 우리의 응용 프로그램에 직접 내장되어 있으며 두 번째 응용 프로그램은 아무것도 모니터링하지 않습니다. – Screndib

+0

여기 내 머리 위로 말하고 있을지도 모르겠다. 나는이 곳에서 새로 왔고,이 사이트의 많은 것들이 내 머리 위로 보인다. 그러나 잘하면이 과정에서 더 많은 것을 배우게 될 것이다. 분, 시간, 요일 등 시간 프레임 당 몇 개의 로그 파일 라인을 말하고 있습니까? 그 라인을 별도의 데이터베이스 열로 쉽게 파싱 할 수 있습니까? 요즘 대부분의 데이터베이스 서버는 db를 메모리에 유지할 수있는 방법이 있으므로 쿼리가 빠릅니다. 테이블에 LogID idx를 넣고 '마지막 LogID보다 큼'쿼리를 기반으로하고 AJAX 종류의 pg updat를 처리하면 부분 페이지 새로 고침을 위해 최소한의 데이터 만 전달합니다. –