ASP 기초개념 ASP란? ActiveX 서버 컴포넌트
ASP(Active Server Pages)란? 개방형 서버측 환경/기술 동적 웹 기반 어플리케이션 제작을 지원 (스크립트 + ActiveX 서버 컴포넌트 + HTML) 결합 지원 구현 주로 스크립팅 언어를 사용 VBScript JScript, 등
ASP의 역사 버전 1.0 IIS 3(Windows Service Pack 3)의 일부분으로 공식적으로 릴리스(1996. 12.) 버전 2.0 IIS 4(Windows Service Pack 4)의 일부분으로 릴리스(1997. 12.) 버전 3.0 IIS 5와 함께 릴리스
CGI, JSP 그리고 ASP(1/6) 클라이언트-서버 모델 HTML 형태의 문서만을 사용 → 동적 웹 어플리케이션 개발이 어려움 IIS, Apache 등 웹 서버 HTML 파일 클라이언트 request response
CGI, JSP 그리고 ASP(2/6) CGI(Common Gateway Interface) 프로그래머가 작성하여 서버에 저장해 놓은 프로그램과 웹 서버 소프트웨어간의 인터페이스 방법 서버측 프로그램 : .pl, .php, .cgi 등 클라이언트가 CGI 파일을 요청 → 웹 서버는 해당 파일을 검색·실행 → 이의 출력을 읽어 클라이언트로 전송 사용자가 전송하는 데이터에 따르는 정보를 제공하기 위한 어플리케이션에서 사용 방명록, 장바구니 기능, 웹상에서의 투표, 신용카드 유효성 조회, 카운터, 채팅, 검색 엔진 등 웹 서버 클라이언트 request response CGI 프로그램 출력 실행
CGI, JSP 그리고 ASP(3/6) CGI 구현 : 거의 모든 언어 사용 가능 독립실행형태 → 웹 서버와는 무관하게 동작 강력한 웹 어플리케이션 구축을 지원 클라이언트가 해당 프로그램을 요청할 때마다 서버 내에서 프로세스가 새로이 생성( → 대안 : ASP) 서버의 CPU 및 메모리 자원의 점유 ↑
CGI, JSP 그리고 ASP(4/6) JSP(JavaServer Pages) HTML 문서 내에서의 자바 서블릿 프로그래밍을 지원해 주는 기술 동적인 웹 페이지 생성을 지원 플랫폼 독립적(→ 서버 스크립트 방식) 데이터베이스와의 연동성과 속도면에서 호평을 받고 있음 CGI나 ASP보다 배우기가 어렵다는 평을 받고 있으나, 자바의 활용 정도 급신장과 짝하여 적용 범위가 급격히 확대되고 있는 추세임
CGI, JSP 그리고 ASP(5/6) ASP 기본 개념은 CGI와 유사 차이점 : 클라이언트로의 요청이 발생할 때마다 프로세스를 생성시키는 대신 Thread 개념으로 이를 처리 서버에 가해지는 부하 ↓ 처리속도 ↑ 처리 과정 웹 브라우저 : ASP 파일(.asp의 형태) 요청 서버 : ASP를 호출. ASP : 요청 받은 파일을 순차적(Top-down 방식)으로 처리(→ 해당 파일에 포함되어 있는 스크립트 명령어들을 실행, 결과를 HTML 웹 페이지 형태로 생성) 순수한 HTML 코드만을 포함하는 결과를 브라우저로 전송
CGI, JSP 그리고 ASP(6/6) ASP 서버측 스크립트 다양한 스크립트의 사용을 지원 데이터베이스와의 연동이 용이 소스 코드 공개 방지(→ 최소한의 보안 유지) 다양한 스크립트의 사용을 지원 VBScript, JScript, PerlScript 등 프로그래머가 원하는 스크립트를 선택할 수 있는 폭이 넓다는 점을 의미 데이터베이스와의 연동이 용이 ADO(Active Data Object)를 이용 컴포넌트 사용 ASP만으로는 처리가 힘든 문제는 비주얼 베이직, 비주얼 C++, 델파이, 등을 사용하여 제작하는 컴포넌트로 해결 배우기가 쉬움
ActiveX 서버 컴포넌트(1/4) ActiveX MS의 객체지향 프로그래밍 기술 및 이를 위한 제반 도구를 지칭하는 명칭 주요 기술 : COM(Component Object Model), DCOM (Distributed Component Object Model, COM을 분산 환경으로 확장해 놓은 기술)
ActiveX 서버 컴포넌트(1/4) 과정 기존의 OOP 기법 소스 코드 재사용에 관한 문제, 개발 언어에 대한 의존성 문제, 버전 관리 등에 관한 많은 문제점을 내포 OLE(Object Linking and Embedding) - 문서 내에 또 다른 문서를 넣기 위한 방법으로 등장 DDE(Dynamic Data Exchange) : 객체간의 통신 범용성 미확보 : MS 워드 문서에 MS 엑셀 문서를 삽입하려는 시도에서 출발 COM 등장 범용성 있는 객체간 통신 기법 DDE를 대체하는 개념 ActiveX 용어 등장(1996) (인터넷 환경 + PC 관련 기술) 접목 → 적극적인 사용자와의 상호 작용을 지원하여 WWW를 보다 활동적으로 만들기 위함
ActiveX 서버 컴포넌트(2/4) ActiveX 기술 : 서버측 기술 + 클라이언트측 기술 ActiveX 컨트롤 단일 컴퓨터 또는 분산 네트워크 환경에서 다수의 응용프로그램에 의해 재사용될 수 있는 컴포넌트 또는 독립 프로그램을 지칭하는 의미 기존의 OLE 컨트롤을 인터넷 환경에 적합하도록 그 내용을 최적화 보다 빠르게 웹 페이지에서 동적인 객체들을 사용할 수 있도록 지원 Sun Microsystems의 Java 기술에 대응하기 위해 MS가 내놓은 기술
ActiveX 서버 컴포넌트(3/4) ActiveX 컨트롤 MS의 COM을 지원하는 언어를 사용하여 제작 실제적·구현적 측면에서의 이해 : “ActiveX 컨트롤이란 일종의 DLL 모듈” ActiveX 컨트롤이 .dll 형태로만 존재하는 것은 아니며, .ocx나 .exe의 형태로도 존재(OCX : Object Linking and Embedding Control) 이러한 모듈은 컨테이너라고 하는 인터페이스를 가지는 응용 프로그램내에서 실행 ※ COM이 OLE를 수용하고 있는 개념으로 확대되어 있으므로 MS의 컴포넌트 객체를 말할 때는 OCX 대신 ActiveX 컨트롤이라는 용어를 사용
ActiveX 서버 컴포넌트(4/4) ActiveX 서버 컨트롤 서버에 머물러 있으면서 동작하는 컴포넌트 클라이언트로부터의 처리 요청이 발생 → 해당 컨포넌트가 동작 ActiveX 컨트롤은 클라이언트로 다운로드 DLL 형태를 지원하므로 마치 스레드와 같이 실행 CGI : 사용자 요청시마다 프로세스를 생성하여 메모리에 매번 적재, CPU에 대한 부담을 가중 ASP : 서버측 ActiveX 컨트롤의 집합
ActiveX 서버 컴포넌트(4/4) Visual Basic,Visual C++, Delphi 등의 AcitveX 컨트롤 생성을 지원하는 도구 또는 언어를 사용하여 필요한 컨트롤(컴포넌트)을 제작하여 사용할 수 있음 ASP는 기본적으로 몇 가지 서버측 컨트롤을 제공 VBScript와 같은 스크립트에서는 사용자가 제작한, 또는 ASP가 기본으로 제공하는 컴포넌트를 호출하여 사용