본문 바로가기
Study/Software Engineering

웹 서비스란

by SeulKom 2010. 12. 28.

 

웹 서비스란?

네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템이다비즈니스 로직의 한 영역으로  HTTP SMTP 같은 인터넷 프로토콜을 통해 접근한다.

기업들은 자사의 모든 전산 시스템을 웹 서비스로 구현 함으로써 B2B, B2C, P2P 등 각종 업무를 e비지니스 서비스로 만들 수 있으며, 개방형 표준 기술 채택으로 플랫폼에 구애받지 않고 시스템간 연동이나 매끄러운 업무처리를 할 수 있다.

 


특징


  • XML 기반
  • 생성된 모든 서비스 프로토콜과 기술의 데이터 표현 계층에 XML 을 이용함으로써 핵심 계층에서 이들 기술을 상호운영할 수 있다. 데이터 전송처럼, XML은 모든 네트워킹, 운영 시스템, 혹은 프로토콜을 소유한 플랫폼 바인딩을 배제한다

 

  • 느슨한 결합 (Loosely coupled)


    웹 
    서비스 소비자들은 웹 서비스에 직접적으로 구속되지 않는다. 클라이언트와 서버 로직이 단단히 결합된 시스템은 각각이 밀접하게 연관되어 있어서, 한 쪽 인터페이스가 바뀌면 다른 한쪽도 반드시 수정 해야한다. 그러나 느슨하게 결합된 아키텍처는 소프트웨어 시스템을 보다 다루기 쉽게 만들며, 다른 시스템 사이의 통합을 훨씬 단순화 시키는 경향이있다.


    (결합도가 높으면 각 컴포넌트와 부가적인 의존형 객체들이 컴파일 타임뿐만 아니라 실행 시간에 있어서도 동기화되어야하며, 결합도가 낮으면 컴포넌트가 다른 객체와 상관없이 독립적으로 실행될 수 있다.)


    "서비스가 자신의 독립성을 여전히 유지하면서 다른 서비스의 정보를 요구하는 조건이다. 느슨한 결합은 서비스가 미리 정의되어있는 인자들로 상호교류 하도록 서비스 계약을 통해 달성된다."[1]


  • 코스 그레인드(Coarse-grained)

    자바같은 객체지향 기술은 개별적인 메소드로 서비스를 제공한다. 개별적인 메소드는 기업 수준의 모든 유용한 기능을 제공 하는데도 매우 훌륭하다. 완전한 무에서부터 자바 프로그램을 만들려면 먼저 잘게 쪼갠(fine-grained) 메소드를 몇 개 만들어서 굵게 쪼갠듯한(coarse-grained) 서비스 하나를 이루게 하는데, 바로 그 굵게 쪼갠 서비스를 클라이언트나 또 다른 서비스가사용한다그들이 공개하는 비즈니스와 인터페이스는 코스그레인드여야 한다. 서비스 기술은 적당한 정도의 비즈니스 로직에 접근하는 코스 그레인드 서비스를 명시하는 자연스런 방식을 제공한다.


 

  • 동기식 혹은 비동기식 운영 가능성

    동기성(synchronicity)은 서비스 실행에 대한 클라이언트의 바인딩 이라고 간주한다. 동기식 호출(synchronous invocations)은 클라이언트가 계속 나아가기 전에 서비스가 수행을 마치는지를 참고 기다린다(block and wait). 비동기식 운영은 클라이언트의 서비스 호출을 허용하고 나서 다른 함수를 실행한다. 동기식 클라이언트는 서비스를 끝마칠때 결과를 검색하는 반면, 비동기식 클라이언트는 제 시간보다 나중에 결과를 검색한다. 비동기성은 느슨한연결(loosely coupled) 시스템을 가능케 하는 핵심 요소이다.

 

  • 원격 프로시저 호출(RPCs, Remote Procedure Calls) 지원

    웹 서비스는 클라이언트가 XML 기반 프로토콜을 사용하여 원격 객체에 존재하는프로시저, 함수, 메소드를 호출 하는것을 허용한다. 원격 프로시저는 서비스를 지원해야 하는 입출력 변수를 공개한다. 과거 몇 년 동안 엔터프라이즈 자바빈즈(Enterprise JavaBean)와 닷넷(.NET) 컴포넌트에의한 컴포넌트 개발은 아키텍처와 기업배치(enterprise deployment)의 일부가 되었다. 두 가지 기술 모두 다양한 RPC 메커니즘을 거쳐 배포되고, 사용할 수 있다. 웹 서비스는 전통적인 컴포넌트와 비슷한 자체 서비스를 제공하거나 새로운 변화를 EJB .NET 컴포넌트의 변화로 해석함으로써 RPC를 지원한다.

 

  • 문서 교환 지원

    XML을 사용하면서 데이터 뿐 아니라 복합문서를 교환할 수 있다.


 

 

Reference

[1] Thomas Erl, "Service-Oriented Architecture: Concepts, Technology, and Design", 2005

[2] Jeff Hanson, "느슨하게 결합된 웹 서비스의 장점", http://www.zdnet.co.kr/ArticleView.asp?artice_id=00000039130983, 2004