Programming

JSON, REST, SOAP, WSDL 및 SOA : 서로 연결하는 방법

procodes 2020. 6. 7. 18:14
반응형

JSON, REST, SOAP, WSDL 및 SOA : 서로 연결하는 방법


현재 몇 가지 시험을 진행 중이며 몇 가지 개념을 고심하고 있습니다. 이것들은 모두 실제로 내 노트에 언급되었지만 실제로는 서로 어떻게 연결되어 있는지 이해하지 못했습니다. 내 이해는 :

SOA-서비스 소비자 / 제공자가 통신하도록하는 솔루션입니다. (내가 이해하는 한 이것은 다른 모든 것에 대한 포괄적 인 용어입니다)

WSDL-제공자 서비스를 설명하는 언어입니다.

SOAP-서비스가 메시지를 보내기 위해 사용하는 XML 프로토콜 '래퍼'. 매개 변수를 제공하기 위해 WSDL과 함께 작동합니까?

REST-기능적으로 SOAP와 유사하지만 XML을 피하는 디자인 패턴? (실제로 이것에 대해 확실하지 않음)

JSON-자바 스크립트를 사용하는 XML의 대안? (이것에 대해서도 확실하지 않음)

인터넷을 둘러 보면 이들 모두가 무엇이고 어떻게 상호 연결되어 있는지에 대한 명확한 정의가없는 것 같습니다.


웹 응용 프로그램을 개발 중이고 더 큰 자유를 얻을 수 있기 때문에 응용 프로그램의 프레젠테이션에서 기능을 분리하기로 결정했다고 가정 해보십시오.

API를 작성하고 다른 사용자도 자신의 프론트 엔드를 구현할 수 있습니다. 여기서 방금 한 것은 웹 서비스를 사용 하는 SOA 방법론을 구현하는 것 입니다.

웹 서비스를 통해 플랫폼 및 프로그래밍 언어와 독립적으로 표준 인터넷 프로토콜을 통해 기능적 빌딩 블록에 액세스 할 수 있습니다.

따라서 유용한 것을 처리하고 생성하는 백엔드 (웹 서비스)와 데이터를 소비하는 프런트 엔드 (어떤 것이 든) 사이의 교환 메커니즘을 설계합니다. (웹, 모바일 또는 데스크탑 응용 프로그램 또는 다른 웹 서비스). 여기서 유일한 제한 사항은 프런트 엔드와 백 엔드가 동일한 "언어"를 "말해야"한다는 것입니다.


SOAP 및 REST가 제공됩니다. 웹 서비스와 통신하는 표준 방법입니다.

비누:

SOAP는 내부적으로 XML을 사용하여 데이터를주고받습니다. SOAP 메시지는 견고한 구조를 가지며 응답 XML을 구문 분석해야합니다. WSDL 은 어떤 요청을 할 수 있는지, 어떤 매개 변수를 사용하여 무엇을 반환할지에 대한 사양입니다. API의 완전한 사양입니다.

쉬다:

REST는 디자인 컨셉입니다.

월드 와이드 웹은 REST 아키텍처 스타일을 따르는 시스템의 최대 구현을 나타냅니다.

SOAP만큼 강하지는 않습니다. RESTful 웹 서비스 는 표준 URI 및 메소드를 사용하여 웹 서비스를 호출합니다. URI를 요청 하면 객체 표현반환하여 작업을 수행 할 수 있습니다 (예 : GET, PUT, POST, DELETE). 데이터를 표현하기 위해 XML을 선택하는 것에 국한되지 않고 실제로 무엇이든 선택할 수 있습니다 (JSON 포함)

Flickr의 REST API는 더 나아가 이미지를 반환 할 수 있습니다.


JSONXML 은 기능적으로 동일하며 일반적인 선택입니다. 프로토 타입을 기반으로하는 GRPC 및 API 생산자와 소비자 간의 통신에 사용할 수있는 Apache Thrift와 같은 RPC 기반 프레임 워크도 있습니다. 웹 API에서 사용하는 가장 일반적인 형식은 모든 언어에서 사용하고 구문 분석하기 쉽기 때문에 JSON입니다.


WSDL : 웹 서비스 기술 언어를 의미

SOAP (Simple Object Access Protocol)에서 웹 서비스를 사용하고 웹 서비스를 프로젝트에 추가 할 때 클라이언트 응용 프로그램은 웹 서비스 기능에 대해 알지 못합니다. 요즘 그것은 구식이며 다른 종류의 클라이언트마다 다른 WSDL파일 을 구현해야 합니다. 예를 들어 .Net, php클라이언트 동일한 파일을 사용할 수 없습니다 . WSDL파일에는 웹 서비스 기능에 대한 설명이 있습니다. 이 파일의 형식은입니다 XML. SOAP에 대한 대안입니다 REST.

REST : 대표 상태 이전을 나타냅니다

또 다른 종류의 API 서비스이며 클라이언트가 사용하기 쉽습니다. 파일과 같은 특별한 파일 확장자를 가질 필요는 없습니다 WSDL. CRUD 오퍼레이션은 서로 다른 HTTP Verbs(읽기 용 GET, 작성 용 POST, 업데이트를위한 PUT 또는 PATCH 또는 원하는 문서를 삭제하기위한 DELETE) 구현 될 수 있으며 , HTML프로토콜을 기반으로 하며 대부분 응답이 형식 JSON또는 XML형식입니다. 반면에 클라이언트 응용 프로그램은 HTTP Verb정확한 매개 변수 이름과 유형을 통해 관련 항목을 정확하게 호출해야 합니다. 와 같이 정의 할 특수 파일이 없기 때문에 WSDL엔드 포인트를 사용하는 수동 작업입니다. 그러나 클라이언트 측 구현을 생성하기 위해 다양한 IDE 용 플러그인이 많이 있기 때문에 큰 문제는 아닙니다.

SOA : 서비스 지향 아키텍처의 약자

웹 서비스 개념 및 아키텍처가 포함 된 모든 프로그래밍이 포함됩니다. 대규모 응용 프로그램을 구현한다고 가정 해보십시오. 한 가지 방법은 마이크로 서비스라고하는 다른 서비스가있을 수 있으며 전체 응용 프로그램 메커니즘은 적절한 웹 서비스를 적시에 호출하는 것입니다. 모두 RESTSOAP웹 서비스의 종류입니다 SOA.

JSON :의 약자javascript Object Notation

자바 스크립트를 위해 객체를 직렬화 할 때 객체 형식의 유형은 JSON입니다. 인간 계급이 있다고 상상해보십시오.

class Human{
 string Name;
 string Family;
 int Age;
}

이 클래스의 인스턴스가 있습니다.

Human h1 = new Human(){
  Name='Saman',
  Family='Gholami',
  Age=26
}

h1 객체를 JSON으로 직렬화하면 결과는 다음과 같습니다.

  [h1:{Name:'saman',Family:'Gholami',Age:'26'}, ...]

javascript can evaluate this format by eval() function and make an associative array from this JSON string. This one is different concept in comparison to other concepts I described formerly.

참고URL : https://stackoverflow.com/questions/16626021/json-rest-soap-wsdl-and-soa-how-do-they-all-link-together

반응형