웹 서비스 이전에 데스크톱 응용 프로그램은 어떻게 원격 서버와 통신 했습니까?


11

데스크톱 응용 프로그램에 대한 경험이 많지 않지만 클라이언트 서버 데스크톱 응용 프로그램을 만들어야하는 경우 웹 서비스를 통해 데이터 액세스가 수행됩니다. 웹 서비스를 통한 데이터 액세스가 보안을 제공한다고 생각합니다 .DB 서버 사용자 이름과 암호 등을 전달할 필요가 없습니다.

웹 서비스 이전에 데이터베이스 응용 프로그램은 어떻게 했습니까? 모든 중요한 DB 정보가 데스크탑 앱의 설치에 전달 되었습니까? 그렇다면 프로그래머는 어떻게 보안 측면을 관리 했습니까? 아니면 프로그래머가 웹 서비스와 비슷한 것을 사용 했습니까?


5
DCOM (Distributed COM), CORBA, Java RMI와 같은 원격 프로 시저 호출에는 재미있는 것들이있었습니다. HTTP를 통해 일부 데이터를 요구하는 즉시 모든 것을 이해하는 동안 완전히 이해하지 못했습니다. 나는 매일 웹 브라우저를 사용하여 웹 서비스를 쉽게 이해하게되었다고 생각한다 :-)
marcus

3
@marcus : 아마도 HTTP에는 요청-응답이 내장되어 있기 때문에 "소켓을 통한 일부 프로토콜"은 모든 사람이 그 휠을 약간 다른 모양으로 발명하게합니다.
Steve Jessop

답변:


11

웹 서비스에 따라 다릅니다.

WSDL과 REST 이전에는 여전히 HTTP가 있었으므로 기본적으로 지금 할 수있는 모든 것을 이전에도 수행 할 수있었습니다.

균일 성이 부족하기 때문에 (WSDL과 REST가 처음에 생성 된 이유), 동일한 수준의 데이터 기밀성과 보안을 제공했습니다.

실제로 HTTP 사용을 피할 수 있습니다. 자신의 프로토콜을 작성하고이 서버에 대한 소켓을 열고 필요한 데이터를 가져 오거나 데이터를 게시하는 사용자 정의 서버 및 사용자 정의 클라이언트를 사용할 수 있습니다. 여기서 HTTP의 모든 표준화 이점을 잃게되지만 다시 한 번 클라이언트에 데이터베이스에 액세스 할 수는 없습니다.


17

아, 우리가 막대기와 돌을 가지고 있었을 때.

인터넷 이전에는 "클라이언트 / 서버"아키텍처 및 LAN (Local Area Network)이라는 것이있었습니다. 몇 마일 떨어진 서버와 연결을 시도하지 않았다면이 네트워크는 대부분의 작업을 수행하기 위해 완벽하게 작동했습니다. 원하는 경우 드라이브 문자를 설정하고 원격 하드 드라이브와 같은 파일 서버에 대한 연결을 사용할 수도 있습니다. 당신이 경우 했다 몇 마일 떨어진, 당신은 느린 속도이기는하지만 더 큰 비용으로, 본질적으로 같은 일을 할 수있는 광역 네트워크를 사용할 수 있습니다.

토론 싼 방법은 원격 모뎀이라는 장치를 사용하여 전화선을 통해 정보를 전달하는 데, 그리고 당신은 두 컴퓨터는 컴퓨터 응용 프로그램을 통해 서로 이야기 일까지 장비를 원한다면, 당신은 당신이 오늘 그것을 같은 방식으로했다 :에 의해 수립 통신 프로토콜. 그것에 대해 전혀 마법이 없습니다. 양쪽은 모든 바이트의 의미에 동의해야합니다.

인터넷 초기부터 기계가 인터넷을 통해 통신 할 수있는 방법이있었습니다. 웹 서비스는 금주의 최신 맛입니다.


5
"그것에 대해서는 전혀 마법이 없다; 양쪽은 모든 바이트의 의미에 동의해야한다."와 엔디안 :)
hjk

2
@ hjk, 그것은 쉽습니다 : 리틀 엔디안은 분명히 다른 모든 옵션보다 우수합니다 :-)
Mark

3
인터넷 의 정의 에는 기계가 인터넷을 통해 통신 할 수있는 방법이 필요 하다고 말하는 한도까지 갔습니다. 그들이 그렇게 할 수 없다면, 그것은 인터넷이 아니며, 웅장 함을 망상시키는 많은 케이블입니다.
Steve Jessop

2
@SteveJessop : 잘못되었습니다. " 그것은 일련의 튜브 "입니다.
중복 제거기

3

먼저 몇 가지 개념을 정리하면 ...

웹 서비스를 통한 데이터 액세스가 보안을 제공한다고 생각합니다 .DB 서버 사용자 이름과 암호 등을 전달할 필요가 없습니다.

위의 설명에서 (1) TLS (Transport Layer Security) 및 (2) 액세스 제어 의 개념을 혼동하고 있다고 생각합니다 ... 사용자 이름과 암호를 제공해야하는지 여부는 웹 서비스가 (1) 암호화 된 채널 및 (2) 인증 (예 : API 키)을 통해 제공됩니다.

잘못 작성된 웹 서비스는 여전히 HTTP를 통해 비밀번호를 일반 텍스트로 보내야 할 수 있습니다. 제대로 만들어지지 한 HTTPS를 통해 (보안,하지만 한 번을 통해, 예를 들면 깨진 것을 할 수 중간자 남용의 여지 공격). 보다 잘 작성된 웹 서비스는 인증 및 권한 제어가 검증 된 후 다른 입력 (예 : 세션 ID)을 기반으로 내부적으로 데이터베이스 연결을 처리해야합니다.

요점으로 돌아가서, 귀하의 질문에 대한 @marcus의 의견은 본질적입니다. 보안 측면은 "현대"기술과 다르게 다루어지며 다음과 같은 구현 질문을 다룹니다.

  • 통신 프로토콜 (@RobertHarvey의 답변에서 약간 차용)이 암호화 된 데이터의 전송을 지원 하는지 여부
  • 메시지 페이로드 는 서버와 클라이언트 사이에 전달되는 구조.
    • 클라이언트는 단순히 서버에이 사용자의 거주지 주소를 유지하거나 X.X.X.X사용자 이름과 암호를 사용 하여 IP 로 데이터베이스에 연결 한 다음 쿼리INSERT INTO user_address ...실행하도록 지시 합니까?
  • 서버가 데이터베이스 연결을 관리하는 방법 (실제로 클라이언트와 분리되어 있음, 첫 번째 단락 참조)

자세한 내용은:

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.