2011-08-17 5 views
1

클라이언트/서버 솔루션을 구현할 때 항상 대답해야하는 질문 중 하나는 프로토콜에 관한 것입니다.Java에서 사용자 정의 프로토콜 논리를 구현 하시겠습니까?

단순한 경우 패킷이 항상 동일한 유형 일 수 있기 때문에 프로토콜에 논리가 전혀 없을 수도 있습니다. 클라이언트가 서버에 연결하고 서버가 연결을 끊으면 클라이언트는 연결을 끊습니다.

더 복잡한 경우 일부 패킷은 일부 특정 경우에만 전송 될 수 있습니다. 예를 들어, 승인이 필요한 추상 서버를 상상해보십시오. 클라이언트 에 대한 권한이 있어야 유효 데이터를 보내거나 가져올 수 있습니다. 이 경우 세션의 개념이 나타납니다.

세션은 클라이언트/서버 대화 상자의 상태를 설명하는 개념입니다. 클라이언트와 서버 모두 은 서로을 기대하며, 둘 다 기대하지 않는 것이 있습니다.

그런 다음 이 더 깊어지면 프로토콜이 매우 복잡하고 쉽게 구현할 수 있어야합니다. 이론적으로 올바른 해결책은 유한 상태 기계를 사용하는 것입니다. 이 상태 머신을 쉽게 구현할 수있는 Java 프레임 워크/라이브러리가 있습니까? 아니면 아마도 더 많은 프로토콜 별 솔루션입니까?

기대하고있는 것은 내가 상태와 전환을 정의 할 수있게 해주는 프레임 워크입니다.

업데이트 : 가장 쉬운 클라이언트/서버 솔루션 구현에 관한 질문이 아니라 사용자 지정 프로토콜 구현에 대한 질문입니다. 따라서 웹 서비스 사용을 권장하지 마십시오.

+1

웹 서비스 또는 이와 유사한 것을 사용해 보셨습니까? 당신은 당신 자신의 솔루션을 구현할 필요가 없다. 이미 입증 된 접근 방식으로 WS를 사용할 수있다. – vmg

+0

글쎄,이 작업에서 WS를 사용할 수없는 제약 조건을 추가해 보겠습니다 .-) – agibalov

답변

2

몇 년 전에 유한 상태 기계에 대해 Unimod FSM을 사용했음을 기억합니다.하지만 심각한 작업의 경우에는 항상 유한 상태 기계를 직접 구현하는 것이 더 좋았습니다.