2012-06-14 3 views
0

클라이언트 - 서버 솔루션을 구성하는 가장 좋은 방법을 알아 내려고하고 있습니다. 요컨대, 내 솔루션에는 논리를 수행하는 백엔드가 있어야하며 인트라넷에서 여러 클라이언트를 지원할 수 있어야합니다. 여기서 핵심은 수천 개의 동시 요청이 발생하지 않는다는 것입니다. 몇 백 명에 달할 것으로 예상되므로 확장 성은 실제로 문제가되지 않습니다. (사무실 건물, 로컬 네트워크에서 실행중인 서비스 그림). 어떻게 작동해야하는지, 어떤 기술을 사용해야하는지 전반적인 흐름에 고심하고 있습니다. 다음과 같이 클라이언트 - 서버 솔루션 설계

구성 요소

은 다음과 같습니다 서버에
  • 데이터베이스
  • 여러 데스크톱, 모바일 및 웹 클라이언트 지금까지

  • 될 것

    • 로직 부분, 내가 다음과 같이 올 수 있었다 :

      1. 로직에서 API 호출과 DB 액세스를 관리 할 응용 프로그램 서버가 있어야합니다.
      2. 들어오는 요청을 관리 할 웹 서버가 맨 위에 있습니다.
      3. 로직 부분.
      4. 정의 할 API에 부합하는 클라이언트.

      그래서이 모든 관계가 어떻게 연관되어 있는지 ... "논리"가 응용 프로그램 서버와 어떻게 상호 작용할 것입니까? "논리"가 서버처럼 작성되어야합니까?

       req 
      client ----> web server ----> app server -----> Logic 
      
                 |-----> DB 
      
            response 
      app server ---------> web server ----> client 
      

      을 나는 작은 규모의 상업 솔루션을 구축하고자한다면 그래서,이 그것을 구조화하는 방법이있을 것이다 : 나는 무엇을보고

      이 같은 것입니다?

      불분명한지 또는 추가 정보가 필요한지 알려주세요.

    답변

    1

    매우 일반적인 질문입니다. 당신이 제안한 해결책도 일반입니다. 특정 요구 사항을 추출하지 않으면 일반 사용자를위한 평균 성능을 갖춘 범용 시스템을 만듭니다. 모바일, 데스크톱 및 웹 클라이언트가 모두 있다고 가정하면 프런트 엔드에서 웹 서버를 사용하는 것이 좋습니다. 그러나 문제는 모든 비즈니스 로직을 AppServer 측에 유지하는 것입니다. 대량 데이터 조작 및 성능 요구 사항이있는 경우 데이터베이스에서 일부 논리를 가질 수 있지만 이는 규칙보다 예외입니다. 어쨌든 특정 요구 사항을 가져야합니다. 그렇지 않으면 설계 과정이 풍수처럼 보입니다. 또한 기술을 선택하고 스택을 구축해야합니다.

    관련 문제