오늘날 정보산업의 급속한 발전으로 인해 기업 간의 경쟁은 더욱 치열해질 것입니다. 지속적인 규모 확장과 지속적인 비즈니스 업데이트로 인해 기업에는 복잡한 이기종 환경을 관리하고 다양한 하드웨어 장치, 소프트웨어 시스템, 네트워크 환경 및 데이터베이스 시스템 간의 완전한 통합을 달성하기 위한 완전한 분산 솔루션이 시급히 필요합니다.
인간 컴퓨터의 발전 역사를 통틀어 정보 산업은 10년에서 15년마다 주기적 변화를 겪을 것입니다. 1950년부터 1970년까지 기업은 주로 메인프레임-터미널 아키텍처를 채택한 반면 기업 응용 프로그램 시스템은 사용자에게 단일 방식으로 리소스 공유 서비스를 제공하는 아키텍처를 채택했습니다. , 중앙 집중식 방식. 1980년대 초반에는 개방형 시스템과 관계형 데이터베이스 관리 시스템이 기업에서 널리 채택되었습니다. 중앙 집중식 시스템과 달리 애플리케이션 로직은 마스터와 슬레이브 엔드 사이에 분산되어 있었습니다. 1990년대는 Windows의 인기와 함께 그래픽 애플리케이션의 시대였으며 클라이언트/서버 아키텍처도 널리 채택되었습니다. 1990년대 후반 정보산업에 분산 객체 기술이 등장했는데, 분산 기술을 통해 서로 다른 시스템 플랫폼에 애플리케이션을 분산시킬 수 있고, 이기종 플랫폼 간의 객체 상호 통신이 가능해진다. 기존 엔터프라이즈 시스템을 분산 시스템에 통합하면 엔터프라이즈 애플리케이션 시스템의 확장성을 크게 향상시킬 수 있습니다. 1990년대 후반 다중 계층 분산 애플리케이션의 출현은 기업이 애플리케이션 시스템 개발을 더욱 단순화할 수 있는 길을 제시했습니다.
전통적인 클라이언트/서버 구조에서 애플리케이션 로직은 일반적으로 클라이언트와 서버 사이에 분산됩니다. 클라이언트는 데이터 리소스 액세스 요청을 발행하고 서버는 결과를 클라이언트에 반환합니다. 클라이언트/서버 구조의 단점은 클라이언트 수가 증가하면 로드 밸런싱을 할 수 없기 때문에 서버의 성능이 크게 저하된다는 점입니다. 애플리케이션 요구 사항이 변경되면 클라이언트와 서버 애플리케이션을 모두 수정해야 하므로 애플리케이션 유지 관리 및 업그레이드에 큰 불편을 초래하고, 대량의 데이터 전송으로 인해 네트워크 부하도 증가합니다. 클라이언트/서버 문제를 해결하기 위해 기업은 다층 분산 애플리케이션으로만 전환할 수 있습니다.
다중 계층 분산 애플리케이션에서는 클라이언트와 서버 사이에 하나 이상의 애플리케이션 서비스 프로그램 계층을 추가할 수 있습니다. 이 프로그램을 "애플리케이션 서버"라고 합니다. 개발자는 클라이언트 대신 중간 계층 서버에 엔터프라이즈 애플리케이션의 비즈니스 로직을 배치할 수 있으므로 애플리케이션의 비즈니스 로직을 사용자 인터페이스에서 분리하고 클라이언트의 기능을 보장하면서 사용자에게 씬(thin) 애플리케이션을 제공할 수 있습니다. ) 인터페이스. 이는 애플리케이션 코드를 수정해야 하는 경우 수천 개의 클라이언트 애플리케이션이 아닌 한 곳(중간 계층 서버)에서 수행할 수 있음을 의미합니다. 이를 통해 개발자는 애플리케이션 시스템의 핵심 비즈니스 로직의 분석, 설계 및 개발에 집중할 수 있으며 엔터프라이즈 시스템의 개발, 업데이트 및 업그레이드를 단순화하고 엔터프라이즈 애플리케이션의 확장성과 유연성을 크게 향상시킬 수 있습니다.
기업이 웹 기반 상용 애플리케이션 시스템을 구축해야 하는 경우 다층 분산 아키텍처는 웹 기반 상용 애플리케이션을 위한 "씬 클라이언트" 아키텍처를 제공하여 브라우저 기반 고객이 인트라넷 리소스와 효과적으로 통신할 수 있도록 하는 강력한 이점을 제공합니다. 클라이언트 측에서 복잡한 애플리케이션 구성 작업 없이 상호 작용할 수 있습니다. 다중 계층 분산 솔루션은 이기종 플랫폼 사이에 브리지를 구축하고 웹 기반 비즈니스 애플리케이션을 기존 엔터프라이즈 시스템과 통합할 수 있도록 합니다.
현재 우리나라의 많은 기업은 여전히 클라이언트/서버 아키텍처를 채택하고 있으며, 서구 선진국에서는 기업이 전통적인 응용 프로그램 시스템에서 다층 분산 응용 프로그램 시스템으로 전환하는 것이 업계의 주류가 되었습니다. 우리나라에서는 다층 분산 시스템이 더 널리 사용될 것으로 믿어집니다.
다중 계층 분산 애플리케이션으로 인한 과제
다층 분산 아키텍처는 기업에 큰 이점을 제공하지만 기존 클라이언트/서버 접근 방식보다 다층 분산 애플리케이션을 개발하는 것이 더 어렵기 때문에 개발자에게 새로운 기술적 과제를 안겨줍니다. 이는 주로 다음 세 가지 측면을 포함합니다.
1. 분산 객체 표준의 다양화
기업이 다층 분산 시스템을 구축하려면 분산 산업 표준을 따라야 합니다. 어떤 표준을 기반으로 하는지는 기업 애플리케이션 시스템의 개방성과 확장성에 직접적인 영향을 미칩니다. 현재 분산 개체에 대한 세 가지 주요 표준이 있습니다. Microsoft의 DCOM, Sun Microsystems의 Enterprise JavaBeans/RMI, OMG(Object Management Group)의 CORBA(Common Object Request Broker Architecture)입니다. DCOM은 Windows 환경을 기반으로 하는 분산 객체 표준이므로 지원되는 플랫폼 종류가 제한되어 있습니다. RMI와 Enterprise JavaBean은 Java 언어 기반의 분산 객체 아키텍처로 대기업의 크로스 플랫폼 요구에 적합합니다. 그러나 실제 애플리케이션 시스템 환경은 일반적으로 여러 가지 프로그래밍 언어로 구성되며 하나의 프로그래밍 언어에만 의존합니다. . 엔터프라이즈 애플리케이션은 드뭅니다. CORBA는 OMG 조직에서 800개 이상의 대규모 소프트웨어 및 하드웨어 회사가 참여하여 개발한 분산 개체 표준으로 IBM, Sun Microsystems, Oracle, Sybase, Novell 및 Netscape와 같은 대기업에서 지원됩니다. 서로 다른 플랫폼 간의 통합 및 개체의 상호 운용성. 소프트웨어 공급업체가 애플리케이션 개체와 ORB 간의 통신을 위해 IDL(인터페이스 정의 언어)을 따르는 한, ORB를 통해 개발자는 완벽하게 서비스를 제공하거나 얻을 수 있습니다. 이기종 플랫폼을 고려할 필요가 없도록 하고, 서로 다른 통신 프로토콜이나 서로 다른 프로그래밍 언어로 인해 차이가 발생하고 애플리케이션 로직 개발에 집중합니다. CORBA는 기업이 다층 분산 응용 프로그램 시스템을 구축하는 데 적합한 개방적이고 유연한 분산 표준을 제공한다는 것을 알 수 있습니다.
2. 다계층 분산 애플리케이션 개발은 매우 복잡합니다.
다계층 분산 애플리케이션을 전통적인 방식으로 개발한다면 개발자는 컴퓨터 시스템 수준의 깊은 지식과 동시성, 보안, 확장성, 트랜잭션 처리 등 다양한 측면에 대한 마스터 지식이 필요합니다. 또한 스레드 관리, 메모리 관리, 데이터베이스 연결 관리, 네트워크 연결 관리 등 시스템 자원에 대한 접근을 효과적으로 관리하는 것이 필요합니다. 이러한 복잡한 작업은 개발자의 에너지를 크게 소비하고 개발 작업 진행을 제한합니다. 엔터프라이즈 애플리케이션 시스템을 개발하려면 개발자가 시스템 수준 개발에 더 많은 시간을 낭비하기보다는 비즈니스 로직 개발에 더 집중해야 합니다.
3. 분산 애플리케이션의 배포 및 관리도 과제
대부분의 분산 응용 프로그램은 수백 또는 수천 개의 구성 요소로 구성되며 각 구성 요소에는 배포 중에 구성해야 하는 속성이 있습니다. 일반적으로 구성 요소 속성을 구성하는 방법은 구성 요소가 위치한 플랫폼에 따라 다릅니다. 따라서 애플리케이션이 배포된 후에는 배포된 구성요소를 어떻게 관리할 것인가가 문제가 될 것입니다. 관리자는 응용 프로그램 구성 요소가 올바르게 실행되고, 회사 네트워크 내의 모든 컴퓨터에 위치할 수 있으며, 처리 오류(시스템 오류, 네트워크 중단, 응용 프로그램 오류 등 포함)를 적시에 감지할 수 있는지 확인해야 합니다.
전통적인 의미에서 네트워크 시스템 관리(예: SNMP)는 호스트의 상태를 분석하여 애플리케이션의 실행 상태만 얻을 수 있습니다. 그러나 분산 애플리케이션 시스템의 경우 애플리케이션이 특정 호스트에서 실행되지 않습니다. 전체 네트워크의 상태를 관리해야 하며 이를 위해서는 적절한 도구의 지원이 필요합니다.
다중 계층 분산 애플리케이션에 대한 요구 사항
엔터프라이즈 다중 계층 분산 애플리케이션을 개발하려면 일반적으로 다음이 필요합니다.
개발 용이
다층 분산 아키텍처는 기초로서 깊은 컴퓨터 시스템 수준 지식(예: 데이터베이스, 트랜잭션 처리, 네트워크 보안, CORBA 기술 등)이 필요하지만 IT 개발자에게는 기본에 대한 깊은 이해가 필요하지 않습니다. 기술을 통해 친숙한 시각적 통합 개발 환경(IDE)에서 강력한 다층 분산 응용 프로그램 시스템을 빠르고 쉽게 개발할 수 있습니다.
배포 및 관리 업무 단순화
개발자는 애플리케이션 성능을 향상시키고, 동일한 환경에서 애플리케이션을 배포 및 관리하기 위해 통합 개발 환경에서 분산 애플리케이션을 테스트하고 수정하는 능력이 필요합니다. 많은 애플리케이션에는 기업 전체에 분산된 수천 개의 구성 요소가 포함되어 있으므로 분산된 애플리케이션을 관리 및 제어하고 오류 감지 및 수정 기능을 구현하려면 중앙 집중식 관리 도구가 필요합니다.
엔터프라이즈 애플리케이션에 대한 견고성 요구 사항
완전한 엔터프라이즈 분산 다중 계층 애플리케이션은 트랜잭션 처리, 보안 관리, 내결함성, 로드 밸런싱, 확장성 및 고성능 요구 사항을 충족해야 합니다.
개방형 산업 표준 기반 아키텍처 특징
기업에 필요한 것은 다른 표준 준수 시스템과 상호 작용할 수 있는 개방형 업계 표준 기반 솔루션입니다.
다양한 데이터베이스 및 기존 시스템과 통합 가능
엔터프라이즈 분산 애플리케이션은 엔터프라이즈 데이터 리소스에 액세스할 수 있어야 하며, 엔터프라이즈 데이터는 일반적으로 현재 널리 사용되는 대규모 데이터베이스(예: Oracle, Sybase 등)에 저장되거나 TP 모니터(예: IBM CICS, BEA Tuxedo)를 통해 액세스됩니다. ), 따라서 엔터프라이즈 분산 시스템은 데이터베이스 및 기존 시스템과 통합될 수 있어야 합니다.
다양한 플랫폼 환경 지원
엔터프라이즈 다중 계층 분산 애플리케이션은 서버 측에서 Windows NT 또는 UNIX 플랫폼을 지원해야 하며, 다양한 플랫폼의 고객은 HTML, Java 애플릿, Java 애플리케이션, 동적 HTML, C++를 포함한 서버의 애플리케이션에 액세스할 수 있습니다. 응용 프로그램 등
엔터프라이즈 애플리케이션 서버
위의 이유로 기업이 다중 계층 분산 애플리케이션으로 전환할 때 다양한 애플리케이션 기술을 함께 통합하여 다중 계층 분산 애플리케이션의 개발, 배포 및 관리를 쉽게 만들 수 있도록 애플리케이션 서버의 지원이 필요합니다. 더 쉬워졌습니다. 이제 많은 기업에서 애플리케이션 서버 기술을 사용하여 기업 애플리케이션의 성능을 크게 향상시켰습니다. 그러나 현재 우리나라에서 사용 중인 애플리케이션 서버 기술은 다층 분산 애플리케이션을 구축하려는 기업의 요구를 완전히 충족할 수 없습니다. 이러한 애플리케이션 서버는 주로 다음 두 가지 범주로 나뉩니다.
웹 기반 애플리케이션 서버
웹 기반 응용 서버는 일반적으로 웹 기반 인터넷 응용 프로그램을 위한 개발 환경을 제공하며 웹 기반 클라이언트/서버 응용 시스템 구축에 적합합니다. 이 시스템에서 웹 응용 프로그램 서버는 일반적으로 웹 서버에서 실행되어 클라이언트 요청을 처리합니다. ODBC와 JDBC는 일반적으로 데이터베이스에 연결하는 데 사용됩니다. 이러한 유형의 애플리케이션 서버는 일반적으로 사용하기 쉽고 EJB(Enterprise JavaBeans) 기반의 서버 애플리케이션 개발을 지원합니다. 그러나 이러한 종류의 응용 프로그램 서버에는 트랜잭션 처리를 지원하지 않고 보안이 취약하며 기존 거래 시스템에 대한 지원이 제한적이고 성능이 낮다는 단점이 있습니다.
미들웨어 기반 애플리케이션 서버
미들웨어 기반 애플리케이션 서버는 기존 시스템(예: TP 모니터)과 통합하여 트랜잭션 처리, 보안 관리, 내결함성, 로드 밸런싱 등을 포함하여 보다 강력한 기능을 기업에 제공할 수 있지만 대부분의 솔루션은 클라이언트/서버 기반입니다. 아키텍처 또는 3계층 아키텍처로 제한되는 아키텍처는 분산 웹 애플리케이션 구축에 적합하지 않으며 효과적인 개발 및 관리 환경을 갖추고 있지 않습니다.
참고: 로드 밸런싱은 대칭 방식으로 여러 서버로 구성된 서버 집합입니다. 각 서버는 동일한 상태를 가지며 다른 서버의 도움 없이 독립적으로 외부 서비스를 제공할 수 있습니다. 일종의 부하 공유 기술을 통해 외부에서 보내진 요청이 대칭 구조로 특정 서버에 고르게 분산되고, 요청을 받은 서버는 독립적으로 고객의 요청에 응답합니다. 균형 잡힌 로드는 고객의 요청을 서버 어레이에 고르게 분산시켜 중요한 데이터에 대한 빠른 액세스를 제공하고 동시 액세스 서비스가 많은 문제를 해결합니다. 이 클러스터 기술은 최소한의 투자로 메인프레임에 가까운 성능을 달성할 수 있습니다. 네트워크 로드 밸런싱의 장점: 첫째, 네트워크 로드 밸런싱 기술은 부하가 심한 경우에도 서버가 빠르게 응답할 수 있도록 보장합니다. 둘째, 네트워크 로드 밸런싱은 IP 주소(또는 도메인 이름)만 외부에 제공하면 됩니다. 네트워크 부하 분산에 있는 여러 서버를 사용할 수 없거나 서비스가 중단되지 않습니다. 네트워크 부하 분산은 서버를 사용할 수 없는 시기를 자동으로 감지하고 나머지 서버 간에 클라이언트 트래픽을 신속하게 재분배할 수 있습니다. 이 보호 조치는 주요 비즈니스 프로그램에 대한 중단 없는 서비스를 제공하는 데 도움이 될 수 있으며 네트워크 액세스 증가에 따라 네트워크 부하 분산 서버 수를 늘릴 수 있습니다. 넷째, 일반 컴퓨터에서 네트워크 부하 분산을 구현할 수 있습니다.
이 기사는 CSDN 블로그에서 가져온 것입니다. 재인쇄할 때 출처를 표시하십시오: http://blog.csdn.net/deantry119/archive/2009/12/28/5089598.aspx