응용 프로그램 서버

Application server

애플리케이션 서버는 애플리케이션을 호스팅하는 서버다.[1]

애플리케이션 서버 프레임워크는 애플리케이션 서버를 구축하기 위한 소프트웨어 프레임워크다.응용 프로그램 서버 프레임워크는 웹 응용프로그램을 만들 수 있는 시설과 이를 실행할 서버 환경을 모두 제공한다.

애플리케이션 서버 프레임워크는 포괄적인 서비스 계층 모델을 포함한다.플랫폼 자체에 대해 정의된 표준 API를 통해 소프트웨어 개발자가 접근할 수 있는 구성요소 세트를 포함한다.웹 애플리케이션의 경우, 이러한 구성요소는 대개 웹 서버와 동일한 환경에서 실행되며, 주요 업무는 동적 페이지 작성을 지원하는 것이다.그러나 많은 애플리케이션 서버는 클러스터링, 페일오버, 로드 밸런싱과 같은 서비스를 구현하기 때문에 개발자들이 비즈니스 로직 구현에 집중할 수 있다.[2]

Java 애플리케이션 서버의 경우, 자카르타 EE 서버는 애플리케이션을 실행하기 위해 확장된 가상 머신처럼 동작하며, 한 쪽에서는 데이터베이스 연결을 투명하게 처리하며, 다른 쪽에서는 웹 클라이언트 연결을 처리하는 경우가 많다.[citation needed]

이 용어의 다른 용어는 서버가 사용할 수 있게 하는 서비스 또는 서비스가 실행되는 컴퓨터 하드웨어를 가리킬 수 있다.[citation needed]

역사

이 용어는 원래 애플리케이션 로직 SQL 서비스[4]미들웨어 서버를 포함하는 서버를 다른 유형의 데이터 서버와는 구별하여 차별화하기 위한 초기 클라이언트-서버 시스템을 논의할 때 사용되었다[3].

현재, 웹브라우저가 유비쿼터스화되었고, 일반적으로 많은 애플리케이션 배치 전략에서 최종 사용자의 고객임에도 불구하고, 브라우저 기반의 웹 앱은 애플리케이션-서버 기술의 일부분만을 나타낸다.

정의

응용 프로그램 서버는 웹 응용 프로그램 또는 데스크톱 응용[citation needed] 프로그램이 실행되는 시스템 소프트웨어다.

애플리케이션 서버는 다음으로 구성된다.

애플리케이션 서버는 SQL 데이터베이스[citation needed](예: Postgre) 앞에서 웹 서버(예: Apache 또는 Microsoft Internet Information Services(IIS)) 및 (대부분 항상) 뒤에서[citation needed] 실행되며,SQL, MySQL 또는 Oracle).웹 애플리케이션은 애플리케이션 서버에서 실행되며 애플리케이션 서버가 지원하는 언어로 작성되고 애플리케이션 서버가 제공하는 런타임 라이브러리와 구성 요소를 호출하는 컴퓨터 코드다.

많은 애플리케이션 서버가 존재한다.선택은 웹 애플리케이션의 비용, 성능, 안정성, 확장성 및 유지 보수성에 영향을 미친다.

독점 애플리케이션 서버는 잘 정의되어 있지만 독점적인 방식으로 시스템 서비스를 제공한다.애플리케이션 개발자는 애플리케이션 서버의 사양에 따라 프로그램을 개발한다.특정 공급업체에 의존하는 것이 이 접근법의 단점이다.

반대지만 유사한 사례가 자카르타 EE 플랫폼이다.자카르타 EE 애플리케이션 서버는 잘 정의된 개방형 산업 표준으로 시스템 서비스를 제공한다.애플리케이션 개발자들은 애플리케이션 서버가 아닌 자카르타 EE 규격에 따라 프로그램을 개발한다.자카르타 EE 표준에 따라 개발된 자카르타 EE 애플리케이션은 어떠한 자카르타 EE 애플리케이션 서버에도 배치될 수 있어 벤더에 구애받지 않는다.

Java 애플리케이션 서버

자카르타 EE(이전의 Java EE 또는 J2EE)는 API의 핵심 세트와 자바 애플리케이션 서버의 기능을 정의한다.

자카르타 EE 인프라는 논리 컨테이너로 분할된다.

일부 Java Application Server는 EJB 및 JMS(Jakarta Messaging)와 같은 자카르타 EE 기능을 사용하지 않는다.그들의 초점은 자카르타 서블릿과 자카르타 서버 페이지에 더 집중되어 있다.

자카르타 EE를 지원하는 오픈 소스 Java 애플리케이션 서버가 많다.

상용 Java 애플리케이션 서버는 Oracle에 의한 WebLogic Application Server, IBMWebSphere Application Server, Red Hat에 의한 오픈 소스 JBoss Enterprise Application Platform(JBoss EAP)에 의해 지배되어 왔다.

JSP(Jakarta Server Page)는 웹 컨테이너에서 실행된다.JSP는 페이지 내에 서버 논리에 대한 참조를 포함시켜 HTML 페이지를 작성할 수 있는 방법을 제공한다.HTML 코드 사용자들과 자바 프로그래머들은 그들 자신의 내부에서 서로의 코드를 참조함으로써 나란히 일할 수 있다.

위에서 언급한 애플리케이션 서버는 주로 애플리케이션과 RMI, EJB, JMS, SOAP를 통한 서비스를 제공한다.일부 애플리케이션 서버는 웹 기반 네트워크가 아닌 다른 네트워크를 대상으로 함:예를 들어, Session Initiation Protocol 서버는 대상 전화 통신 네트워크.

.NET

마이크로소프트

마이크로소프트는 윈도우즈 서버 운영 체제 및 에 중간 계층 애플리케이션 및 서비스 인프라를 배치한다.애플리케이션 서버 역할의 NET Framework 기술.[5]윈도우즈 응용 프로그램 서버 역할에는 웹 서버 지원을 제공하는 IIS(인터넷 정보 서비스)가 포함되어 있으며, .애플리케이션 지원을 제공하는 NET Framework, ASP서버측 스크립팅을 제공하는 NET, 애플리케이션 구성요소 통신을 위한 COM+, 멀티스레드 처리를 위한 메시지 큐, 애플리케이션 통신을 위한 WCF(Windows Communication Foundation)를 제공한다.[6]

서드 파티

  • Mono(의 교차 플랫폼 오픈 소스 구현).Windows OS별 기능을 제외한 거의 모든 기능을 지원하는 NET(NET)는 Microsoft후원하고 MIT 라이센스에 따라 출시됨

PHP 응용 프로그램 서버

PHP 애플리케이션 서버는 PHP 애플리케이션을 실행하고 관리하는 데 사용된다.

Zend가 구축한 Zend Server는 PHP 기반 애플리케이션을 위한 애플리케이션 서버 기능을 제공한다.

테크 디비전 GmbH가 구축한 appserver.io은 PHP로 작성된 PHP용 멀티스레드 애플리케이션 서버다.

Spiral Scout이 구축한 RoadRunnerGo로 작성된 고성능 PHP 애플리케이션 서버, 로드 밸런서, 프로세스 관리자다.

모바일 애플리케이션 서버

모바일 앱 서버는 모바일 개발을 지원하기 위해 백엔드 시스템에 모바일 앱이 접근할 수 있도록 하는 모바일 미들웨어다. 페이지를 저장하고 처리하며 클라이언트에 전달하는 웹 서버와 마찬가지로 모바일 앱 서버는 기존 인프라에서 모바일 장치에 이르는 격차를 해소한다.

목적

대부분의 표준 기반 인프라(SOA 포함)는 어떤 벤더, 제품 또는 기술과도 무관하게 모든 것에 연결되도록 설계되어 있지만, 대부분의 기업은 모바일 기기가 다음과 같은 기술적 문제를 추가하기 때문에 백엔드 시스템을 모바일 애플리케이션에 연결하는 데 어려움을 겪는다.[7]

  • 제한된 리소스 – 모바일 장치의 전력 및 대역폭이 제한
  • 간헐적 연결 – 셀룰러 서비스 및 와이파이 서비스가 지속되지 않는 경우가 많음
  • 보안[8] 어려움 – 이동성 및 BYOD로 인해 모바일 기기 보안이 어려움

모바일 애플리케이션 서버의 목적은 기존 인프라를 기반으로 모바일 기기를 수용하는 것이다.

공통 기능

모바일 애플리케이션 서비스의 핵심 기능:

  • 데이터 라우팅 - 대역폭 및 배터리에 대한 요구를 최소화하기 위해 일부 비즈니스 논리와 함께 소규모(REST) 개체로 데이터 패키지화
  • 조정 - 여러 소스에 걸친 트랜잭션 및 데이터 통합
  • 인증 서비스-백엔드 시스템에 대한 보안 연결은 모바일 미들웨어를 통해 관리
  • 오프라인 지원 - 기기가 연결되어 있지 않더라도 사용자가 데이터에 액세스하고 사용할 수 있음
  • 보안 - 데이터 암호화, 장치 제어, SSL, 통화 기록

모바일 애플리케이션 서버 대 애플리케이션 서버 대 웹 서버

모바일 애플리케이션 서버, 애플리케이션 서버, 웹 서버 등도 비슷한 목적을 갖고 있는데, 백엔드 시스템을 접속해야 하는 사용자에게 연결하는 미들웨어의 일종이지만, 세 가지 각각의 기술은 다르다.

응용 프로그램 서버

애플리케이션 서버는 웹 기반 애플리케이션의 편재성 이전에 개발되었으며, 때로는 HTTP를 포함한 다양한 프로토콜을 통해 백엔드 비즈니스 로직을 노출하고 보안, 트랜잭션 처리, 리소스 풀링 및 메시징을 관리한다.[9]웹 기반 애플리케이션이 인기를 끌자, 애플리케이션 서버는 개발자들의 요구를 충족시키지 못했으며, 그 공백을 메우기 위해 웹 서버를 만들었다.[citation needed]

웹 서버

웹 서버는 웹 액세스가 요구하는 캐싱 및 스케일링 기능을 제공하고 애플리케이션 서버는 제공하지 않는다.요청을 정적 콘텐츠로 변환하고 HTTP 콘텐츠만 서비스한다.[10][citation needed]

모바일 애플리케이션 서버

모바일 애플리케이션 서버도 비슷한 경로에 있다.[citation needed]모바일 기기의 출현은 전통적인 애플리케이션 서버 개발자의 개발자가 예상하지 못한 기능성의 필요성을 제시하며, 모바일 애플리케이션 서버가 이 공백을 메운다.기존 인프라에 의해 충족되지 않는 보안, 데이터 관리 및 오프라인 요구 사항을 관리하며, REST에만 컨텐츠를 제시한다.

시간이 지남에 따라 이 세 범주는 완전히 병합되어 단일 제품에서 사용할 수 있지만 루트 기능은 다르다.

배포 모델

애플리케이션 서버를 배포할 수 있음:

참고 항목

참조

  1. ^ Ottinger, Joseph (1 September 2008). "What is an App Server?". TheServerSide.com. Retrieved 2022-02-06. an application server provides an environment where applications can run, no matter what the applications are or what they do
  2. ^ Ceri, Stefano; Fraternali, Piero; Bongio, Aldo; Brambilla, Marco; Comai, Sara; Matella, Maristella (2003). Designing Data-Intensive Web Applications. Morgan Kaufmann. doi:10.1016/B978-1-55860-843-6.X5000-2. ISBN 1-55860-843-5.
  3. ^ Foote, Scott; Foote, Steven (1992). Expanding VAX Capacity - Digital System Integration. Redwood Shores, CA: Oracle Corporation. p. 3. 52882.0892.
  4. ^ "Analysis in the Application Server Environment". Performance Analysis and Optimization of MS Windows NT Server, Part 2. Microsoft Docs. 1 June 1997. Retrieved 2022-02-06.
  5. ^ TechNet: 애플리케이션 서버
  6. ^ TechNet: 애플리케이션 서버 역할
  7. ^ Jaenicke, Coco (19 November 2014). "Why Mobile App Development Requires More than an SOA". App Developer Magazine. Retrieved 2022-02-06.
  8. ^ Egan, Bob (April 11, 2014). "A Billion Smartphone Users May Be Affected by the Heartbleed Security Flaw". Forbes. Retrieved 2022-02-06.
  9. ^ Sintes, Tony (2002-08-23). "App server, Web server: What's the difference?". JavaWorld. Retrieved 2022-02-06.
  10. ^ "What is the difference between the application server and web server?".