프로토콜 엔지니어링
Protocol engineering프로토콜 엔지니어링은 통신 프로토콜 개발에 체계적인 방법을 적용하는 것입니다.소프트웨어 엔지니어링의 많은 원리를 사용하지만 분산 시스템 개발에 특화되어 있습니다.
역사
1970년대에 최초의 실험적이고 상업적인 컴퓨터 네트워크가 개발되었을 때, 프로토콜의 개념은 아직 잘 개발되지 않았다.이것이 최초의 분산 시스템입니다.새롭게 채택된 계층화 프로토콜 아키텍처(OSI 모델 참조)의 맥락에서, 특정 계층의 프로토콜 정의는 하나의 컴퓨터에서 그 규격을 구현하는 모든 실체가 동일한 규격을 구현하는 실체를 포함하는 다른 컴퓨터와 호환되도록 해야 하며, 이들의 상호작용은 s가 되어야 한다.원하는 통신 서비스를 얻을 수 있는지 확인합니다.한편, 프로토콜 사양은 서로 다른 컴퓨터에서의 구현을 위한 다른 선택을 허용하기에 충분히 추상적이어야 한다.
주어진 계층이 제공하는 기대 서비스의 정확한 규격이 중요하다는 [1]것을 인식하였다.프로토콜의 검증은 중요하며, 이는 두 프로토콜 주체가 프로토콜 규격을 올바르게 이행할 경우 통신 서비스가 제공된다는 것을 입증해야 한다.이 원칙은 나중에 OSI 프로토콜 스택의 표준화, 특히 전송 계층에 대해 수행되었습니다.
또한 규격에 [2]대한 구현의 적합성을 검사하기 위한 테스트 사례뿐만 아니라 프로토콜의 검증 및 구현 개발에 일종의 형식화된 프로토콜 규격이 유용할 것으로 인식되었다.초기에는 주로 유한 상태 머신이 프로토콜 [3]엔티티의 (간소화된) 모델로 사용되었지만, 1980년대에는 ISO에 의해 2개,[5] ITU에 의해 1개의 공식 사양 언어가 표준화되었습니다.SDL이라고 불리는 후자는 나중에 업계에서 사용되었으며 UML 스테이트 머신과 통합되었습니다.
원칙
프로토콜 개발을 [1]위한 가장 중요한 원칙은 다음과 같습니다.
- 계층 아키텍처: 수준 n의 프로토콜 계층은 계층의 서비스가 프로토콜 사용자에게 제공되는 서비스 인터페이스를 가지며 수준(n-1)의 로컬 엔티티에 의해 제공되는 서비스를 사용하는 두 개 이상의 엔티티로 구성됩니다.
- 레이어의 서비스 사양은 추상적이고 글로벌한 뷰에서 레이어의 서비스 인터페이스에 표시되는 레이어의 동작을 기술합니다.
- 프로토콜 규격은 각 엔티티 구현에 의해 충족되어야 하는 요건을 정의합니다.
- 프로토콜 검증은 프로토콜 규격을 충족하는 두 개 이상의 엔티티가 서비스 인터페이스에서 해당 계층의 지정된 서비스를 제공한다는 것을 보여주는 것으로 구성됩니다.
- (검증된) 프로토콜 규격은 주로 다음 두 가지 활동에 사용됩니다.
- 엔티티 구현의 개발.서비스 인터페이스의 추상 속성은 서비스 사양에 의해 정의되지만(또한 프로토콜 사양에 의해 사용됨) 인터페이스의 자세한 특성은 구현 프로세스 중에 각 엔티티에 대해 별도로 선택할 수 있습니다.
- 적합성 테스트를 위한 테스트 스위트 개발프로토콜 적합성 테스트는 특정 엔티티 구현이 프로토콜 사양을 준수하는지 확인합니다.적합성 테스트 사례는 프로토콜 규격에 기반하여 개발되었으며 모든 실체 구현에 적용할 수 있다.따라서 표준 적합성 테스트 스위트는 특정 프로토콜 [3]표준을 위해 개발되었습니다.
방법 및 도구
프로토콜 검증, 엔티티 구현 및 테스트 스위트 개발 활동을 위한 도구는 프로토콜 규격이 도구에 의해 이해될 수 있는 공식 언어로 작성될 때 개발될 수 있다.전술한 바와 같이, 프로토콜 사양과 유한 상태 기계 모델을 기반으로 하는 첫 번째 방법과 도구를 위해 공식 사양 언어가 제안되었다.프로토콜 검증에 필수적인 분산 시스템의 모든 가능한 동작을 이해하기 위해 도달 가능성 분석이 제안되었다.이것은 나중에 모델 확인으로 보완되었다.단, 유한상태 설명은 메시지파라미터와 엔티티 내의 로컬 변수 사이의 제약을 기술할 정도로 강력하지 않습니다.이러한 제약은 위에서 언급한 표준화된 공식 사양 언어로 설명할 수 있으며, 이를 위해 강력한 도구가 개발되었습니다.
모델 기반 개발이 매우 일찍부터 사용된 것은 프로토콜 공학 분야입니다.이러한 방법 및 도구는 나중에 소프트웨어 엔지니어링 및 하드웨어 설계, 특히 분산형 및 실시간 시스템에 사용되었습니다.한편, 소프트웨어 엔지니어링의 보다 일반적인 맥락에서 개발된 많은 방법 및 툴은 프로토콜의 개발, 예를 들어 프로토콜 검증을 위한 모델 검사 및 엔티티 구현을 위한 신속한 방법에도 사용될 수 있습니다.
프로토콜 설계를 위한 건설적 방법
대부분의 프로토콜은 표준화 과정에서 인간의 직관과 논의에 의해 설계됩니다.그러나 특정 속성을 만족시키는 프로토콜을 자동으로 도출하기 위해 도구에 의해 지원될 수 있는 건설적인 방법을 사용하기 위한 몇 가지 방법이 제안되었다.다음은 몇 가지 예입니다.
- 반자동 프로토콜 합성:[6]사용자는 엔티티의 모든 메시지 전송 액션을 정의하고 툴은 필요한 모든 수신 액션을 가져옵니다(여러 메시지가 전송 중인 경우에도).
- 프로토콜 [7]동기화 중:한 프로토콜 엔티티의 상태 전환은 사용자에 의해 제공되며, 메소드는 다른 엔티티의 동작을 유도하여 이전 엔티티에 대응하는 상태를 유지합니다.
- 서비스 [8]사양에서 파생된 프로토콜:서비스 사양은 사용자에 의해 제공되며 이 메서드는 모든 엔티티에 적합한 프로토콜을 도출합니다.
- 제어 [9]애플리케이션 프로토콜:한 실체(발전소라고 함)의 명세서가 주어지고, 이 방법은 발전소의 특정 고장 상태에 도달하지 않고 발전소의 서비스 상호작용의 특정 속성을 만족하도록 다른 실체의 명세서를 도출한다.이것은 감시 제어의 경우입니다.
책들
- Ming T. Liu, 프로토콜 엔지니어링, 컴퓨터 발전, 제29권, 1989, 79-195쪽.
- G.J. Holzmann, 컴퓨터 프로토콜 설계 및 검증, 프렌티스 홀, 1991.
- H. König, Protocol Engineering, Springer, 2012.
- M. Popovic, 커뮤니케이션 프로토콜 엔지니어링, CRC Press, 2018년 2월 2일
- P. Venkataram, S.S. Manvi, B.S. Babu, Communication Protocol Engineering, 2014.
레퍼런스
- ^ a b G. v. 보크만과 C.A. Sunshine, 통신 프로토콜 설계의 공식 방법, IEEE Tr. COM-28, No.4 (1980년 4월), 페이지 624-631.
- ^ 1981년 이후 PSTV(Protocol Specification Testing and Verification)에 관한 일련의 회의를 참조하십시오.
- ^ a b G. v. 보크만, D.레이너와 C.H. West, 프로토콜 엔지니어링 역사에 대한 일부 주석, Computer Networks 저널, 54(2010), 페이지 3197–3209.
- ^ C. A. Vissers, G. v. Bochmann 및 R. L. Tenney, 공식 기술 기법, IEEE의 진행, vol. 71, 12, 페이지 1356-1364, 1983년 12월.
- ^ G.J. Dickson; P.E. de Chazal, CCITT 기술 기술 현황 및 프로토콜 사양에 대한 적용, IEEE, vol. 71, 12, 페이지 1346-1355(1983)
- ^ P. Zafiropulo, C.웨스트, H. 루딘, D.Cowan, D. 브랜드 : IEEE Transactions on Communications (통신에 관한 IEEE 트랜잭션) 분석 및 합성 (제28권, 제4호, 1980년 4월)
- ^ M.G. Gouda와 Y.T Yu, 진보가 보장된 통신 유한 상태 기계의 합성, IEEE Trans.통신에 접속해, vol.Com-32, 7번, 1984년 7월, 779-788페이지.
- ^ M.F. Al-hammouri와 G.v. Bochmann, 서비스 사양의 실현 가능성, Proc.시스템 분석 및 모델링(SAM) 컨퍼런스 2018, 코펜하겐, LNCS, Springer.
- ^ G. v. Bochmann, 로직을 사용하여 하위 모듈 구성 문제를 해결, Journal on Discrete Event Dynamic Systems, Vol. 23 (1), Springer, 2013년 3월, 페이지 27-59.