Netweaver
在Jerry的微信公众号文章SAP Fiori应用的三种部署方式里提到SAP Fiori应用以BSP应用的方式部署在ABAP Front-End Server上。那么这些BSP应用在运行时为什么能够接受和发送HTTP请求呢?
主要是下图的Internet Communication Manager(ICM)在起作用。
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本身维护了一个工作线程池。有一个专属的控制线程,负责接收进来的TCP/IP请求,然后从线程池中唤醒一个工作线程来响应该请求。
- 每个工作线程包含一个I/O处理器,负责网络输入输出。工作线程通过各种各样的plugin处理HTTP,SMTP等协议。
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/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",
最后一行的$PWD/.java-buildpack/tomcat/bin/catalina.sh run是我们非常熟悉的tomcat启动脚本。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
为了更好地理解和应用NetWeaver WebDynpro for Java,下面将介绍几个具体的实践案例: ##### 4.1 创建基本的WebDynpro应用程序 第一步是创建一个新的WebDynpro项目。这通常涉及到定义应用程序的基本结构,如控制器...
### 整合Web Dynpro与SAP NetWeaver Portal #### 概述 本文主要讨论了如何将Web Dynpro for Java应用程序集成到SAP NetWeaver Portal中,并着重介绍了在SAP ...希望本文能够帮助大家更好地理解和应用这项技术。
SAP NetWeaver是SAP公司推出的企业应用集成平台,它为构建、运行和管理企业级应用程序提供了一个全面的框架。NetWeaver不仅支持SAP自身的业务软件,如ERP、CRM等,还能够与非SAP系统集成,实现跨系统的协同工作。在...
### 使用Google Web Toolkit (GWT) 开发基于AJAX的SAP NetWeaver J2EE框架...此外,由于SAP NetWeaver J2EE框架的强大后端支持,这种方法特别适合于构建大型企业级Web应用,这些应用需要高度定制化和高性能的服务支持。
1. **应用服务器**:SAP NetWeaver Application Server是运行SAP应用的核心组件,支持ABAP和Java应用。ABAP应用服务器处理SAP ERP等传统R/3系统的业务逻辑,而Java应用服务器则用于运行基于Java的SAP应用,如SAP ...
3. **专门化与整合**:通过对特定领域的深入研究和优化,实现业务流程的高效运行,并通过整合不同业务组件来构建复杂的应用场景。 #### 二、SAP NetWeaver集成应用平台 SAP NetWeaver作为SAP企业服务架构的核心...
- ** Portal**:提供单一登录入口,整合不同系统和应用的访问。 - **Process Orchestration**:包括Business Process Manager和Integration Server,用于业务流程管理和系统集成。 **2. ABAP开发** ABAP...
* 它利用开放标准来实现与几乎任何来源或技术的信息和应用程序的集成。 SAP NetWeaver 的发展历史: * SAP NetWeaver 由 TopTier Software(一家以色列公司)于 1997 年首次推出。 * SAP 于 2000 年初收购了该公司...
- **Web应用程序群集支持**:详细说明了如何设置Web应用程序集群以提高性能和可靠性。 - **SAP BusinessObjects BI平台WAR和EAR文件**: - **WAR文件**:用于部署Web应用程序的标准格式。 - **EAR文件**:包含多个...
3. 它利用开放标准来实现与几乎任何来源或技术的信息和应用程序的集成。 SAP NetWeaver 的发展历史: SAP NetWeaver 由 TopTier Software(一家以色列公司)于 1997 年首次推出。SAP 于 2000 年初收购了该公司。 ...
- **支持多种平台**:无论是移动设备还是 Web 应用,SAP NetWeaver Gateway 都能为用户提供一致的数据访问方式。 - **基于标准**:采用 REST 和 OData/ATOM 这样的开放标准,确保了与现有系统的兼容性和可扩展性。 ...
**SAP NetWeaver**是SAP公司推出的一款企业级集成平台,用于构建、运行和管理企业应用程序。这个平台提供了一整套工具和服务,旨在帮助企业和组织实现业务流程的自动化和优化。SAP NetWeaver的核心特性包括应用...
### SAP NetWeaver RFC SDK:深入理解与应用 #### 核心知识点概览: 1. **SAP NetWeaver RFC SDK定义与作用** - SAP NetWeaver RFC SDK(Software Development Kit)是SAP官方提供的工具包,用于开发、集成和调用...
对于传统的ABAP/4应用程序,SAP NetWeaver提供了丰富的API和工具,如Open SQL、ABAP Dictionary等,用于访问和操作数据库。此外,它还支持与其他ABAP/4应用程序以及外部系统的数据交换,从而增强了数据的可访问性和...
1. SAP Note Assistant:帮助查找和应用 SAP Notes,解决已知问题。 2. SAP GUI:用于连接到 SAP 系统,执行安装和配置任务。 3. SAP Transaction Code:如 R3trans,用于传输源代码和对象。 4. SAP Web Dispatcher...
SAP NetWeaver的技术包含了SAP在不同产品线中使用的专利技术,例如BAPI(Business Application Programming Interface)和WebFlow等。这些都是SAP为了实现应用组件和服务之间的通信和集成而开发的专有接口和过程。 ...