저는 자바 배경에서 왔으며 몇 년 전부터 웹 개발에 종사하고 있습니다. 처음부터 웹 개발을 배우지 않았으므로 기술은 성장했지만 깨끗하고 견고하지는 않습니다. 내가 말하는 자바 웹 애플리케이션은 약 8 살이며 웹 개발 전문가가 아닌 개발자가 만든 것입니다. 결과 : 그들은/당신이하지 말아야 할 많은 것들을했습니다. 앞으로 몇 년 안에 우리의 응용 프로그램을 혁신하고 싶기 때문에 나는 깨끗한 전략/아키텍처를 찾고자합니다.Java 웹 응용 프로그램 아키텍처 토론
우리 시스템은 다음과 같이 작동합니다. 서버 (웹 서버 아님)는 완전히 다른 구조로 많은 다른 객체를 저장하고 데이터웨어 하우스 시스템을 기반으로 많은 데이터 분석을 수행합니다. 소켓을 통해 클라이언트가 서버에 연결됩니다. 하나의 클라이언트는 j2ee 웹 클라이언트입니다. 우리는 서블릿, 액션, JSP, Beans를 가지고 있습니다 ... 우리는 서버로 옮겨 질 클라이언트에서 많은 비즈니스 로직을 가져야합니다. 우리의 소프트웨어는 매우 구성 가능하며 꽤 커졌습니다. 뷰가 계산 된 데이터, 상태 등으로 극적으로 변경 될 수 있기 때문에 JSP가 너무 많아서 스크립틀릿이 너무 복잡하여 좋지 않습니다. 내가 생각 무엇
은:
- 모든 제어 액션/비즈니스 로직은 서버로 이동합니다.
- 서버는 메타 데이터가있는 데이터를 다시 전송하므로 클라이언트는 유효성 검사를 수행하지 않고도보기를 빠르게 관리 할 수 있습니다. (예 : 메타 태그 'invalid')
- 서블릿과 서버 사이의 클라이언트는 Freemarker 또는 Mustache.java와 같은 템플릿 엔진의 도움으로 HTML 코드를 생성합니다.
- 이 HTML 코드는 DOM 노드를 대체, 채우기 또는 추가하는 데 응답합니다.
- Ajax 요청을 사용합니다.
이 접근 방식에 대해 어떻게 생각하십니까? 약점이나하자에 대한 암시가 있습니까? 서블릿 대신 웹 서비스를 사용하는 것이 합리적일까요?
지금은 프레임 워크를 찾고있는 것이 아닙니다 (하지만 언급해야 할 것이 있으면 잠시만 기다려주십시오.)하지만 앞으로 사용하고 싶은 일반 아키텍처에 대해서는 찾으십시오.
미리 알려 주시면 감사하겠습니다.
현재 구조에 대한 설명이 약간 혼란스러워 보입니다. 두 번째 시도 : 우리의 소프트웨어는 비 웹 응용 프로그램으로 시작되었습니다. 우리는 데이터, 계산 등을 관리하는 서버를 가지고 있습니다 ... 연결된 클라이언트는보기를 렌더링하고 사용자 상호 작용을 가져옵니다. 약 8 년 전에 우리 회사는 클라이언트 용 웹 응용 프로그램을 개발하기로 결정했습니다. 클라이언트의 인스턴스 (서버에 대한 연결을 유지함)는 세션에 저장되며 서블릿, JSP 등에서 액세스 할 수 있습니다. 따라서 웹 서버는 실제로 우리 시스템에서 클라이언트의 일부입니다.
도움이 되었기를 바랍니다.
"서블릿과 서버 간의 클라이언트"는 무엇입니까? "우리 시스템은 다음과 같이 작동합니다 : 서버 (웹 서버가 아님) ..."? 웹 서버와 서버 사이에 "클라이언트"가 있어야하는 웹 서버가 아닌이 서버는 무엇입니까? 당신은 정말로 이것을 설명 할 필요가 있습니다. – developerwjk
나는 포스트를 편집 했으므로 더 이상 혼란스럽지 않기를 바랍니다. – user1071828