2017-11-14 3 views
1

네트워크를 통해 프로그램 간 연결을 제공하는 다양한 도구에 대해 배우고 싶습니다. 네트워크를 통한 프로그램 간 연결

질문을 명확히하기 위해, 나는 subquestions에 분할 : 프로그램의 일부 그룹 (이 프레임 워크를 사용할 수있는 위치 또는 특정 툴/프레임 워크/프로그래밍 언어로 접근) 왜

  • 가에서 인기가 있었다 각 기간? (해결 된 문제에 대한 설명, 도구 설명, 해당 도구가 그 당시의 문제에 가장 적합한 솔루션으로 여겨지는 이유, 일부 도구가 인기를 잃어버린 이유)
  • 소프트웨어 통신의 전체 내역은 무엇입니까? 회로망? (도구/수십 년 동안 인기가 높았 음)
  • 이 문제에 대한 최신 해결책은 무엇입니까?

두 가지 중요한 접근 방식 만 구별 할 수 있습니다. 나는 상호 프로그램의 전체 그림이 문제의 장소를보고 싶어

  1. RPC는 RMI와 그 구현 (나는 this을보고 있지만,이 문제를 해결하기 위해 구체적인 문제와 특정 도구에 관한 것입니다 ONC RPC, XML-RPC, CORBA, DCOM, gRPC, 지금은 활성화 되었습니까? 사용하기에 합당한 이유는 무엇이며 바람직한 이유는 무엇입니까? 의견 기반이 아닌 의견을 받아 들일 수 있기를 바랍니다. "기술과 같은 대답 X 문제 때문에 기술 B보다 ..."신뢰할 수있는 연구가있는 경우에만/통계 또는 사실). 나는 RPC와 RMI가 10 년 전에 인기가 있었다고 들었다. 아직도 그래?

  2. 웹 서비스 : REST, SOAP.

나는 무엇인가 놓치고 있습니까? 어쩌면 완전히 새로운 방식으로 문제를 해결할 수있는 기술이 있을까요? RPC (RMI) 및 웹 서비스를 대체 할 수있는 기술이있을 수 있습니까? RPC (RMI)를 REST로 대체 할 수 있습니까? RPC (RMI)를 현대 작업으로 만 REST로 대체 할 수 있습니까? RPC와 웹 서비스가 아닌 다른 방식으로 기술을 분리해야합니까?

+0

90 년대 중반의 Robert Orfali의 저서 "The distributed objects survival guide"는 오래된 기술의 역사에 대한 배경 지식을 제공합니다. 그것은 또한 재미있는 읽기 :-) –

답변

0

부분적인 대답으로 RabbitMQ 사용에 대한 의견을 보내 주시면 감사하겠습니다.

  • RPC를 전체 인프라를 통해 이벤트를 전파
  • 한 많은 라우팅 전략 하나 하나에 "콜백"큐를 구현하여 : here을 설명 으로, 그것은 그것을 사용하는 다른 방법을 많이 제공 올바른 목적지를 타겟팅하십시오.

크래시가 나타날 때 데이터 손실을 피하기 위해 메시지를 지속하는 기능이 포함되어 있지만 일부 플러그인에서는 가능성을 높일 수 있습니다 (예 :g x 지연된 플러그인)

이 기술은 Erlang으로 작성되었으며 프로그램 간의 의사 소통의 관점에서 반드시 시도해야합니다.

+0

나는 RabbitMQ에 대해 들었지만 다른 유사한 기술과 비교할 수있는 방법은? 언제 우리가 그것을 선호해야합니까? 이 기술의 단점은 무엇입니까? –

+0

@BhavinChirag, [이 스레드] (https://stackoverflow.com/questions/731233/activemq-or-rabbitmq-or-zeromq-or)를 볼 수 있습니다 :) –

1

"내가 뭔가를 놓쳤습니다": 예.

매우 널리 사용되는 통신 패턴은 이벤트 구동 형 또는 메시지 구동 형 프로토콜입니다. 이러한 유형의 프로토콜은 웹 응용 프로그램, 마이크로 서비스 및 IoT 환경과 같은 분산 시스템에서 자주 사용됩니다. 통신은 비동기 적으로 완료되며 확장 가능하고 느슨하게 결합 된 시스템을 구축 할 수 있습니다.

WebSockets, WebHooks, Pub-Sub 및 AcitveMQ, OpenMQ, RabbitMQ, ZeroMQ 및 MQTT와 같은 Messaging-Library와 같은 이벤트 기반 시스템에는 여러 가지 프레임 워크와 메소드가 있습니다.

희망 정보는 귀하의 연구에 도움이됩니다.

관련 문제