Netweaver和CloudFoundry是如何运行Web应用的?
Netweaver
在Jerry的微信公眾號文章SAP Fiori應用的三種部署方式里提到SAP Fiori應用以BSP應用的方式部署在ABAP Front-End Server上。那么這些BSP應用在運行時為什么能夠接受和發送HTTP請求呢?
主要是下圖的Internet Communication Manager(ICM)在起作用。
SAP help:
The Internet Communication Manager ensures that communication between the SAP System (SAP NetWeaver Application Server) and the outside world via HTTP, HTTPS and SMTP protocols works properly.
The ICM is a component of the SAP NetWeaver Application Server. It is implemented as a separate process, which is started and monitored by the ABAP dispatcher.
即ICM作為溝通的橋梁,確保Netweaver應用服務器和外界能夠通過HTTP,HTTPS等協議交互。ICM是Netweaver應用服務器的一個組件,作為一個單獨的工作進程,由ABAP dispatcher啟動并監控。
ICM的架構:
CloudFoundry
假設我本地開發了一個Java Web應用,里面包含一個Servlet,部署到CloudFoundry后,該應用如何運行起來的?
細心觀察cf push的日志,不難自己找出答案。
因為我的manifest.yml里定義的buildpack為java_buildpack:
這對應了cf push日志里高亮的這一行:
下載Open JDK JRE和Tomcat instance。
為什么會自動下載tomcat?
打開java_buildpac的github倉庫:
https://github.com/cloudfoundry/java-buildpack
上面提到了原因:
The Tomcat Container allows servlet 2 and 3 web applications to be run. These applications are run as the root web application in a Tomcat container.
一旦buildpack檢測到war包中存在WEB-INF,且不存在Java Main(實現了main方法的Java類),則決定使用Tomcat容器。
實際上從cf push的日志里也能觀察到tomcat容器啟動參數:
“JAVA_OPTS=”-agentpath:PWD/.java?buildpack/openjdkjre/bin/jvmkill?1.13.0RELEASE=printHeapHistogram=1?Djava.io.tmpdir=PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.13.0_RELEASE=printHeapHistogram=1 -Djava.io.tmpdir=PWD/.java?buildpack/openj?dkj?re/bin/jvmkill?1.13.0R?ELEASE=printHeapHistogram=1?Djava.io.tmpdir=TMPDIR -Djava.ext.dirs=PWD/.java?buildpack/containersecurityprovider:PWD/.java-buildpack/container_security_provider:PWD/.java?buildpack/containers?ecurityp?rovider:PWD/.java-buildpack/open_jdk_jre/lib/ext -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security JAVAOPTS?Daccess.logging.enabled=false?Dhttp.port=JAVA_OPTS -Daccess.logging.enabled=false -Dhttp.port=JAVAO?PTS?Daccess.logging.enabled=false?Dhttp.port=PORT" && CALCULATED_MEMORY=(((PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE -totMemory=KaTeX parse error: Can't use function '\"' in math mode at position 84: …250 -vmOptions=\?"?JAVA_OPTS") && echo JVM Memory Configuration: KaTeX parse error: Expected 'EOF', got '&' at position 19: …CULATED_MEMORY &?& JAVA_OPTS=\"JAVA_OPTS KaTeX parse error: Can't use function '\"' in math mode at position 18: …LCULATED_MEMORY\?"? && MALLOC_AREN…JAVA_OPTS JAVA_HOME=$PWD/.java-buildpack/open_jdk_jre exec $PWD/.java-buildpack/tomcat/bin/catalina.sh run",
最后一行的$PWD/.java-buildpack/tomcat/bin/catalina.sh run是我們非常熟悉的tomcat啟動腳本。
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
總結
以上是生活随笔為你收集整理的Netweaver和CloudFoundry是如何运行Web应用的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为智选上架飞利浦智能眼部按摩器:采用
- 下一篇: 小米定位服务在哪里打开(小米官方售后服务