Netweaver和CloudFoundry是如何运行Web应用的?

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Netweaver和CloudFoundry是如何运行Web应用的?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Netweaver

在Jerry的微信公众号文章SAP Fiori应用的三种部署方式里提到SAP Fiori应用以BSP应用的方式部署在ABAP Front-End Server上。那么这些BSP应用在运行时为什么能够接受和发送HTTP请求呢?

Netweaver和CloudFoundry是如何运行Web应用的?

主要是下图的internet Communication Manager(ICM)在起作用。

Netweaver和CloudFoundry是如何运行Web应用的?


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的架构:

Netweaver和CloudFoundry是如何运行Web应用的?

  1. ICM本身维护了一个工作线程池。有一个专属的控制线程,负责接收进来的TCP/IP请求,然后从线程池中唤醒一个工作线程来响应该请求。
  2. 每个工作线程包含一个I/O处理器,负责网络输入输出。工作线程通过各种各样的plugin处理HTTP,SMTP等协议。

ClouDFoundry

假设我本地开发了一个Java Web应用,里面包含一个Servlet,部署到CloudFoundry后,该应用如何运行起来的?
细心观察CF push的日志,不难自己找出答案。
因为我的manifest.yML里定义的buildpack为java_buildpack:

Netweaver和CloudFoundry是如何运行Web应用的?


这对应了cf push日志里高亮的这一行:

Netweaver和CloudFoundry是如何运行Web应用的?


下载Open JDK JRE和Tomcat instance。

Netweaver和CloudFoundry是如何运行Web应用的?


为什么会自动下载tomcat?
打开java_buildpac的github仓库:
https://github.com/cloudfound...
上面提到了原因

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容器。

Netweaver和CloudFoundry是如何运行Web应用的?


实际上从cf push的日志里也能观察到tomcat容器启动参数:

Netweaver和CloudFoundry是如何运行Web应用的?

"JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.13.0_RELEASE=printHeapHistogram=1 -Djava.io.tmpdir=$TMPDIR -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS -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=$MEMORY_LIMIT -loadedClasses=11021 -poolType=metaspace -stackThreads=250 -vmOptions=""$JAVA_OPTS"") && echo JVM Memory configuration: $CALCULATED_MEMORY && JAVA_OPTS=""$JAVA_OPTS $CALCULATED_MEMORY"" && MALLOC_ARENA_MAX=2 JAVA_OPTS=$JAVA_OPTS JAVA_HOME=$PWD/.java-buildpack/open_jdk_jre exec $PWD/.java-buildpack/tomcat/bin/catalina.sh run""

脚本宝典总结

以上是脚本宝典为你收集整理的Netweaver和CloudFoundry是如何运行Web应用的?全部内容,希望文章能够帮你解决Netweaver和CloudFoundry是如何运行Web应用的?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。