프로젝트 제로
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
프로젝트 제로는 IBM WebSphere sMash의 아키텍처와 PHP 지원에 대한 내용을 담고 있다. sMash는 이벤트 구동 프로그래밍 모델을 사용하며, 여러 모듈 간의 통신을 위해 이벤트를 활용한다. PHP 지원은 Java로 구현된 PHP 런타임을 통해 제공되며, PHP 스크립트는 Java 바이트코드로 컴파일되어 JVM에서 실행된다. 이를 통해 PHP, Java, Groovy 간의 상호 운용성을 제공하며, 기존 PHP 확장 기능의 재사용과 디버깅을 지원한다.
WebSphere sMash는 유연하고 확장 가능한 애플리케이션 개발을 지원하는 독특한 아키텍처를 가지고 있다.
WebSphere sMash는 Java로 구현된 PHP 런타임을 제공하여, Java 가상 머신(JVM) 환경에서 기존 PHP 애플리케이션을 실행할 수 있도록 지원한다.[3] 2008년 10월 기준으로, WebSphere sMash는 SugarCRM,[4] phpBB,[5] WordPress,[6] MediaWiki[7] 등 잘 알려진 PHP 애플리케이션을 Java 가상 머신에서 실행할 수 있었다.
2. 아키텍처
2. 1. 이벤트 기반 프로그래밍 모델
WebSphere sMash는 이벤트 구동 프로그래밍 모델을 사용한다. 애플리케이션은 일반적으로 여러 개의 작은 모듈로 구성되며, 이 모듈들은 이벤트를 발생시켜 서로 통신하고, 발생된 이벤트는 해당 이벤트를 처리하도록 등록된 다른 핸들러에 의해 포착된다. 이벤트를 발생시키는 코드는 해당 이벤트를 처리할 코드에 대해 아무런 정보도 알지 못한다. 이 아키텍처를 통해 애플리케이션은 PHP, 자바, 그루비 또는 Flow 언어로 작성된 코드를 혼합하여 구축할 수 있다.
2. 2. 글로벌 컨텍스트
이벤트는 무상태이므로, 이벤트 처리기 간에 데이터를 공유할 메커니즘이 필요하다. 이 메커니즘이 바로 글로벌 컨텍스트이다. 글로벌 컨텍스트는 기본적으로 수명이 다르고, 속성이 다르며, 지속성이 있는 다양한 영역으로 나뉜 대규모 데이터 맵의 역할을 한다.
2. 3. 저장소 관리 시스템
sMash는 아이비(Ivy) 의존성 관리자를 사용한다. sMash 애플리케이션은 로컬 아이비 저장소에 있거나 원격 저장소에서 가져올 수 있는 다른 모듈에 대한 종속성을 지정할 수 있는 모델로 구성된다. IBM은 projectzero.org에서 유용한 모듈 저장소를 관리하며, maven2 저장소에 대한 종속성도 지정할 수 있다.
3. PHP 지원
3. 1. JVM 기반 PHP 런타임
WebSphere sMash의 PHP 지원은 Java로 구현된 PHP 런타임에 의해 제공된다.[3] PHP 스크립트는 Java 바이트코드로 컴파일되어 Java 가상 머신(JVM)에서 실행된다. 이는 JRuby 및 Jython과 같은 다른 프로젝트에서 JVM을 대상으로 각각 Ruby 및 Python 언어를 실행하는 방식과 개념적으로 유사하다. JVM에서 실행하면 PHP, Java 및 Groovy 코드 간에 직접적이고 동일한 프로세스 호출이 가능하여 다양한 언어를 사용하여 애플리케이션을 조립할 수 있다.
다른 JVM 기반 PHP 구현인 Quercus가 취하는 접근 방식과는 대조적으로, sMash는 Java Native Interface (JNI)와 XAPI-C라는 API 계층을 통해 기존 PHP 확장 기능을 PHP.net에서 재사용하여 Java 가상 머신에 연결할 수 있다.
런타임은 이클립스 PDT 프로젝트와 같이 DBGp 프로토콜을 지원하는 IDE 및 디버거에서 디버그 액세스를 허용하는 DBGp 디버그 포트를 가지고 있다.
PHP 런타임은 sMash 외부에서 정체성이 없으므로 "WebSphere sMash 런타임 for PHP"로 지칭된다.
PHP 런타임은 Java/Groovy 브리지를 통해 Java 및 Groovy 언어와의 긴밀한 통합을 지원한다. 이를 통해 PHP 스크립트는 경량의 매우 빠른 상호 운용 계층을 통해 Java 및 Groovy로 작성된 라이브러리를 사용할 수 있다. Groovy 브리지를 사용하면 Groovy의 고급 기능을 PHP에서 직접 액세스할 수 있다. 예로는 클로저 및 Groovy 메타 객체가 있다.
3. 2. 기존 PHP 확장 기능 재사용
WebSphere sMash는 JNI와 XAPI-C라는 API 계층을 통해 기존 PHP 확장 기능을 PHP.net에서 재사용하여 Java 가상 머신(JVM)에 연결할 수 있다.[3] 이는 다른 JVM 기반 PHP 구현인 Quercus가 취하는 접근 방식과는 대조적이다.
3. 3. 디버깅 지원
런타임은 이클립스 PDT 프로젝트와 같이 DBGp 프로토콜을 지원하는 IDE 및 디버거에서 디버그 액세스를 허용하는 DBGp 디버그 포트를 가지고 있다.[3]
3. 4. PHP 런타임 명칭
PHP 런타임은 sMash 외부에서 별도의 명칭이 없으므로 "WebSphere sMash 런타임 for PHP"로 지칭된다.[3]
3. 5. 지원 PHP 애플리케이션
WebSphere sMash의 PHP 지원은 Java로 구현된 PHP 런타임에 의해 제공된다.[3] PHP 스크립트는 Java 바이트코드로 컴파일되어 Java 가상 머신(JVM)에서 실행된다. 2008년 10월 현재, WebSphere sMash는 SugarCRM,[4] phpBB,[5] WordPress,[6] MediaWiki[7] 등 잘 알려진 PHP 애플리케이션을 Java 가상 머신에서 실행할 수 있다.
3. 6. Java/Groovy 통합
WebSphere sMash의 PHP 런타임은 Java/Groovy 브리지를 통해 Java 및 Groovy 언어와의 긴밀한 통합을 지원한다. 이를 통해 PHP 스크립트는 경량의 매우 빠른 상호 운용 계층을 통해 Java 및 Groovy로 작성된 라이브러리를 사용할 수 있다. Groovy 브리지를 사용하면 클로저 및 Groovy 메타 객체와 같은 Groovy의 고급 기능을 PHP에서 직접 액세스할 수 있다.
참조
[1]
웹사이트
IBM United States Withdrawal Announcement 912-138
https://www-01.ibm.c[...]
2012-06-12
[2]
웹사이트
About Project Zero
http://www.projectze[...]
2008-06-23
[3]
웹사이트
Project Zero PHP page
http://www.projectze[...]
2009-02-02
[4]
웹사이트
Smash4Sugar project at SugarForge
http://www.sugarforg[...]
2008-06-30
[5]
웹사이트
PhpBB running on Project Zero
http://www.projectze[...]
2008-06-30
[6]
웹사이트
Try out PHP Application WordPress on sMash
http://www.projectze[...]
2008-10-09
[7]
웹사이트
Try out PHP Application MediaWiki on sMash
http://www.projectze[...]
2008-10-19
[8]
웹인용
About Project Zero
http://www.projectze[...]
2008-06-23
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com