1

웹 응용 프로그램 개발과 관련하여 새로운 기술입니다.웹 응용 프로그램으로 CLIPS 전문가 시스템을 노출하기위한 아키텍처 선택

다음과 같은 아키텍처 고려 사항에 대해 사용자 의견 및 개선 제안을 보내주십시오.

CLIPS를 사용하여 전문가 시스템 ES를 개발했습니다. 이제 우리 회사의 다양한 사용자에게 웹 응용 프로그램으로 제공 할 계획입니다. 더 자세히 설명하기 전에 어떤 기술이 관련되어야하는지 생각 중입니다.

목표는 웹 앱의 사용자가 ES에 점점 더 많은 정보를 입력하는 동안 최종 결과를 이끌어내는 채팅 식 애니메이션에 직면한다는 것입니다.

내 자신에 대한 몇 가지 연구를 수행 한 후 나는

그럼 난에 내 파이썬 코드를 통합하기위한 장고를 사용하는 나는 파이썬과 클립 사이의 인터페이스로 PyCLIPS을 사용하여 백엔드에서 다음과 같은 생각을

등장 사용자와 ES 간의 채팅을 동적으로 변경하는 웹 페이지.

특히 내가 아직도 많이 고민하고있는 한 가지가 있습니다. 즉, 동시 사용자를 어떻게 관리해야합니까? 하나의 ES를 사용하는 모든 사용자가 개별 사실 집합을 갖거나 모든 사용자가 자신의 ES 인스턴스를 보유해야합니까?

이 문제보다 더 우수한이 문제에 대해 다른 높은 수준의 접근 방법이 있습니까?

본인은이 문제에 대한 귀하의 경험과 의견을 기다리고 있습니다.

최저

답변

0

그것은 일반적으로 별도의 "파편"으로 전문가 시스템을 분할하는 것이 좋습니다.

룰베이스를 단순하게 유지하므로 실제로 사용자를 구별 할 필요가 없으므로 더 많은 사용자를 추가 할 때 수평 확장이 가능합니다.

사용자 당 하나의 ES를 실행하면 과도한 소리가납니다. 예를 들어 사용자 성 또는 ID의 첫 글자를 기반으로 샤딩을 사용하여 세분화를 줄일 수 있습니다.

유사한 솔루션을 설계 할 때 큐잉 시스템을 사용하여 프론트 엔드 애플리케이션과 ES를 분리하는 경향이 있습니다. 따라서 공용 API를 변경하지 않고도 클러스터 레이아웃을 수정할 수 있습니다.

| 플라스크 | ----> | RabbitMQ | ----> | ES 근로자 |

샤딩 전략을 변경하려는 경우 클라이언트/최종 사용자에게 영향을주지 않고 브로커 대기열 레이아웃을 간단히 재구성 할 수 있습니다.

0

전문가 시스템을 상태 비 저장 모드로 실행하는 것이 좋습니다. 사용자가 변경을 수행 할 때마다 웹 페이지의 모든 데이터를 전문가 시스템에 제출 한 다음 결과를 검색하여 웹 페이지에 표시합니다. 여러 사용자가있는 경우 이렇게하면 확장이 잘되고 응답을 변경하려는 경우 실행 취소 논리를 쉽게 구현할 수 있습니다. http://www.clipsrules.net/?q=Downloads/CLIPSCGI에서 CGI 응용 프로그램으로이를 수행하는 방법을 보여주는 예제가 있습니다.