2017-01-20 21 views
1

이진 데이터를 지정하는 기술 사양 방법론을 찾고 있습니다. XML 용 XML 스키마 설명 (XSD)과 같은 것을 찾고 있는데요.이진 텔레 그램/프로토콜을 지정하는 좋은 (표준화 된) 방법론

목적은 이진 시퀀스를 올바르게 interprete 수있는 프로그램을 생성하는 형식을 사용하는 것입니다; 즉 프로그래밍 언어 바인딩. XML-Data를 표현하고 파싱하고 직렬화 할 수있는 OO 프로그래밍 언어로 클래스를 생성 할 수있는 XSD를위한 많은 프레임 워크가있는 것처럼 말입니다. 그러나이 방법론은 도메인 전문가가이 텍스트 사양을 지정하고 해석 할 수 있도록 사람이 읽을 수 있어야합니다.

지금까지 나는 인간이 읽을 수있는 구문만을 발견했습니다. 많은 표준에서 ASCII 아트는 다음과 같이 RFCs 또는 AMQP에서와 같이 사용됩니다

0     1     2     3 
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|   Source Port   |  Destination Port  | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|      Sequence Number      | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|     Acknowledgment Number      | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
| Data |   |U|A|P|R|S|F|        | 
| Offset| Reserved |R|C|S|S|Y|I|   Window    | 
|  |   |G|K|H|T|N|N|        | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|   Checksum   |   Urgent Pointer  | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|     Options     | Padding | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|        data        | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
         TCP Header Format 

그러나이 거의 기계 판독 없다.

때로는 사양이 Extended Backus Naur Form 인 것을 보았습니다. 그러나 이것은 기술 도메인 - 사람들이 실제로 읽을 수있는 것은 아니며 바이너리 데이터를 지정하기 위해이 방법을 제안하는 표준을 실제로 알지 못합니다.

누구나 적절한 방법론/표준을 제안 할 수 있습니까?

건배, Hauke ​​

+0

ASN.1은 종종 바이너리 형식을 지정하는 데 사용됩니다. 그러나 EBNF를 읽지 못하는 (또는 읽는 법을 배우지 못하는) "기술적 인"사람들이 있다면 ASN.1에 만족할 가능성은 희박 해 보입니다. (문맥 자유 문법을 읽는 법을 모르는 경우 기술자가 될 수 있습니까? 내 심오한 동정심이 있습니다.) –

답변

0

귀하의 질문은 훌륭하게 표현하지만, 충돌 제약 조건을 충족하는 이상적인 단일 형식이 있음을 전제로한다.

대신에 은 사람과 기계 소비에 가장 적합한 형식을 선택하고 자동으로 변환합니다. 필요에 따라이 매핑을 완전히 양방향으로 수행하거나 하나의 형식을 다른 형식에서 독창적으로 파생시킬 수 있습니다.

자동 변환 패턴을 채택하면 더 이상 솔루션 공간을 과도하게 제한하지 않으며 두 가지 목표 세트 (인간의 요구 사항)를 최적화 할 수 있습니다. 그리고 기계의 요구), 하나의 결합 된 세트가 아닙니다.