'자바 네트워크 개념'에 해당되는 글 1건

  1. 2008.07.15 자바 네트워크의 환경
JAVA Servlet2008. 7. 15. 13:09
과거 웹이라는 개념이 나오기 전에는 업체에서 제공하는 CS(client server)프로그램을 각 PC에 설치하여 사용하여야 했다. 가령 K넷이라는 회사에서 주식정보를 서비스한다고 하면 해당 업체에서 제공하는 프로그램을 받아 설치하고 모뎀등을 이용해서 정보를 보아야 하며 다른 업체에서 유사한 서비스를 하여도 해당 업체에서 제공하는 프로그램으로 접근하여 정보를 보아야 했고 정보의 업데이트도 상당히 힘들고 오래 걸린다.
그러나 웹이 등장하면서 이러한 정보는 웹브라우저로 통일하여 볼 수 있게 되었고 업체들은 자신들의 서버를 두어 데이터를 공유/제공하기 시작했다.

최초 웹은 정적인 정보를 HTML로만 보여주어 정보를 업데이트하기 위해서는 html하드 코딩에 의해서만 갱신하였다. 이후 자동화/동적 기술인 CGI(최초의 동적 데이터 업데이트 기술 , c..등으로 개발)를 도입하면서 웹에 활력이 되었고 보다 발전하여 자바가 등장하였다.(사실 최초의 자바는 웹용보다는 냉장고나 모바일등에 탑재하기 위한 언어로 만들어졌다.) 이 후 자바가 CGI를 교체하였으며 자바 서블릿 개념이 등장하게 된다.
이 외에도 많은 언어 asp , php , jsp..등이 있지만 규모가 있는 회사는 보통 자바를 많이 사용한다.

* 자바의 강점과 CGI대체 동기
CGI는 프로세스 중심작업으로 요청과 작업이 발생하면 프로세스가 한개씩 생성되어 작업을 한다.(굉장히 많은 자원을 필요로 한다) 가령 IE6처럼 브라우저를 생성할 때마다 프로세스를 한 개씩 잡아가는 것과 유사..

Java는 프로세스는 한개만 사용하고 나머지는 쓰레드(서브 프로세스)를 사용한다.

* 서버의 형태
서버는 보통 3개정도로 구분 지을 수 있다.
1  Web Server : 일반적인 정적인 서버 (아파치...)
2  Servlet container : 서블릿하고 몇몇의 서블릿 스팩을 지원한다 (톰캣...)
3  Web application server(WAS) : J2EE정도의 모든 스펙을 제공한다.(제우스 , 웹스피어 , 웹로직)




[ 자바 Editions ]

사용자 삽입 이미지
                               
자바 네트워크하면 보톤 J2EE를 다루게 된다. J2EE에서 제공되는 서비스는 다음과 같다.

[ J2EE Standard Service ]

Java Servlet
자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 Java EE사양의 일부분으로, 주로 이 기능을 이용하여 쇼핑몰이나 온라인 뱅킹 등의 다양한 웹 시스템이 구현되고 있다.

JSP(Java Server Page)
웹 서버에 있는 서브릿(servlet)을 사용해 웹 페이지의 내용과 모양을 제어하는 기술. 서브릿 응용 프로그램 인터페이스(API)로서 ASP(Active Server Page)와 유사하나 자바 서버 페이지(JSP)는 자바 프로그램을 호출하고 ASP는 스크립트(VBScript나 JScript)를 사용한다. 자바 서브릿과 연결된 하이퍼텍스트 생성 언어(HTML) 페이지는 .JSP라는 파일 이름이 붙는다.

EJB(Enterprise Java Beans)
서버/클라이언트 모형을 갖춘 네트워크의 서버 측에서 운용되는, 자바 언어로 이루어진 프로그램 컴포넌트 작성용 구조. 클라이언트에게 빈이라는 프로그램 컴포넌트를 분배하는 자바빈(Java Beans) 기술로 되어 있고, 새로운 프로그램 컴포넌트의 변경이나 추가 시에 개별 컴퓨터를 갱신하지 않고 서버에서 변화를 제어할 수 있는 애플리케이션에서 재사용할 수 있는데, EJB 컴포넌트 수행을 위해서는 컨테이너라고 하는 특정 애플리케이션의 일부가 되어야 한다.

JDBC(Java DataBase Connectivity)
자바(Java) 프로그램이 데이터베이스에 연결하고 구조화 조회 언어(SQL)로 질의를 하며, 자료를 갱신할 수 있도록 제공하는 응용 프로그램 인터페이스(API). 마이크로소프트사의 ODBC(open database connectivity)와 비교할 수 있다. 선 마이크로시스템스사에서는 모든 데이터베이스를 지원하는 자바 데이터베이스 접속성(JDBC)을 제공하지는 않고 JDBC 드라이브 관리자와 JDBC의 표준 추상 인터페이스를 제공하고 있다. 실제 해당 데이터베이스와 통신을 하는 JDBC 드라이버는 데이터베이스를 만든 벤더사에서 제공하고 있다.


JMS(Java Message Service)
네트워크에서 컴퓨터간 메시징이라는 일반 통신을 지원하는 선 마이크로시스템스사의 응용 프로그램 인터페이스(API). 표준 메시징 프로토콜과 자바 프로그램의 지원을 받아 특별 메시징 서비스를 제공하고, 자바 메시지를 주고받는 자바 애플리케이션을 개발하는 데 사용한다. 또한, 기업 메시징 시스템 액세스를 위한 API로서, 컴퓨터간 데이터 교환, 이벤트 안내, 서비스 요구 사항 등과 같은 정보를 포함하는 메시지를 비동기적으로 주고받는 비즈니스 애플리케이션을 작성하고 다른 시스템이나 다른 언어로 쓰여진 프로그램을 일원화하는 데 주로 사용되며, 자바 객체를 포함한 메시지와 확장성 생성 언어(XML) 페이지를 포함한 메시지를 지원한다.

JNDI(Java Naming and Directory Service)
자바 플랫폼 기반의 애플리케이션이 명칭 부여 및 디렉터리 서비스를 처리할 수 있는 응용 프로그램 인터페이스(API). 여러 종류의 명칭 부여 및 디렉터리 서비스를 가능하게 하는 이식성 애플리케이션을 만들 수 있으며, 그 중에는 파일 시스템과 LDAP, 노벨 디렉터리 서비스, 망 정보 서비스(NIS)와 같은 디렉터리 서비스와 공통 객체 요구 매개자 구조(CORBA), 자바 원격 메소드 호출(RMI), 기업 자바빈(EJB)과 같은 분산 객체 시스템이 포함된다. 도서관에서 책 위치와 배치를 정하듯이 분산된 컴퓨터 환경 내에서 컴포넌트의 위치와 배치를 정하며, 컴포넌트 애플리케이션끼리 서로 찾아낼 수 있다. 여러 서비스 제공자들이 API로 접속되어 있기 때문에 자바 네이밍 디렉터리 인터페이스를 사용하여 쉽게 다른 환경과 통합할 수 있고, 레거시 애플리케이션과 병존할 수 있다.

JTA(Java Transaction Service)
분산 객체, 효율적 자원 관리, 컴포넌트 기반 개발 등을 자바 환경에서 할 수 있도록 하는 표준 규약. 은행 전산망처럼 큰 규모의 전산 환경을 엔터프라이즈급 환경이라고 하는데, 이러한 환경은 수많은 고객 정보를 공유해야 하고 어느 곳에서나 동일한 서비스를 차질 없이 제공해야 한다. 이러한 개방적인 웹 환경을 지원하는 J2EE의 구성 요소는 분산 객체와 컴포넌트 기반 개발을 지원하는 기업 자바빈(EJB), EJB 컨테이너 또는 웹 애플리케이션 서버가 효율적 자원 관리를 위해 사용하는 JTA(Java Transaction API)와 JDBC, 웹 환경을 담당하는 서브릿과 JSP(Java ServerPages), 기타 자바 네이밍 디렉터리 인터페이스(JNDI), 자바메일, 자바 메시지 서비스(JMS) 등의 기능이 있다.

Java Mail
자바 관련 메일관련 J2EE플랫폼에서 사용하는 API이다.

JAF(Java Activation Framework)
JAF(Java Activation Framework)는 다양한 데이터 형식을 이용하여 작업하는 방법을 통합하기 위해 작성된 확장 자바 API이다. 실제로 JAF를 이용하면 간단한 텍스트 데이터에서부터 이미지, 비디오 등의 매우 복잡한 멀티 미디어 데이터로 구성된 문서까지 다양한 데이터를 제공할 수 있다.


RMI-IIOP(RMI over IIOP)
RMI-IIOP (RMI over IIOP)는 CORBA 시스템에서 Java RMI 인터페이스의 역할을 하는 프로토콜이다.
RMI-IIOP는 CORBA의 장점을 활용하면서 CORBA에서의 응용 프로그램 개발의 어려움을 단순화 시키도록 설계되었다. RMI-IIOP는 CORBA 구조, 공용체, 시리즈, 배열, 문자열 등을 이용하며 작동은 Object by Value 개념에 근거한다.
* RMI : Remote Method Invocation로 다른 서버에 자바클래스(리모트 오브젝트) 연동하여 분리된 환경에서도 편한 작업이 용이하다.


[ J2EE Category ]

사용자 삽입 이미지



[ J2EE Architecture ]

사용자 삽입 이미지






참고 ) 포트 : 모뎀과 컴퓨터 사이에 데이터를 주고받을 수 있는 통로로서 http에서 기본 포트는 80이다. 이때 도메인에서 http://www.daum.net:80에서 80을 생략하여 http://www.daum.net만으로 통상 접근한다.


참고) 서버 통신 : 클라이언트에서 필요한 정보를 요청(Request)할 때 보통 GET방식이나 POST방식으로 파라미터나 값을 보내게 된다. 이 요청을 받은 서버에 서블릿이나 페이지에서 데이타등을 처리하여 응답(Response)하게 된다.
사용자 삽입 이미지
GET : URL에 변수명과 값이 표시되는 방식
- http프로토콜에서는 파라미터가 헤더에 붙어서 간다.
 (헤더는 길이 한계가 정해져있다.)

POST : URL뒤에 값이 보이지 않는다.
- http프로토콜에서는 파라미터가 바디에 붙어서 간다.

ps) 서버쪽 자료와 정리에 도움을 주시는 윤세원 차장님께 감사드립니다~

Posted by 버터백통