[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-12-21 UTC。"],[],[],null,["# Mainframe Connector architecture\n\nThis page describes the architecture of Mainframe Connector.\n\nMainframe Connector is typically deployed as a Java application. As the\napplication is self contained, you need to only install [IBM JRE version 8](https://www.ibm.com/support/pages/java-sdk-downloads-version-80) or [IBM JRE version 17](https://www.ibm.com/support/pages/ibm-semeru-runtime-certified-edition-version-17-websphere-liberty-using-archives) to deploy Mainframe Connector.\nA [job control language (JCL)](#jcl-procedure) procedure is the frontend that\nyou can use to call Mainframe Connector. The following image gives an\noverview of Mainframe Connector architecture.\n\n\u003cbr /\u003e\n\nMainframe Connector architecture\n\n\u003cbr /\u003e\n\nWhen uploading data files to [Cloud Storage](/storage/docs),\nMainframe Connector communicates directly with the\n[Cloud Storage API](/storage/docs/apis) using either\n[IBM z Integrated Information Processor (zIIP)](https://www.ibm.com/products/z-integrated-information-processor) or general processor (GP). You can also\ndeploy a [remote service to offload some of the computation to Google Cloud](/mainframe-connector/docs/remote-transcoding).\n\nAfter a data file is uploaded to Cloud Storage, Mainframe Connector\nsends a remote procedure call (RPC) to the gRPC service indicating the location\nof the file, the record layout, and the output location. The gRPC service reads\nthe file from Cloud Storage, transcodes the data, and writes a multi-part\n[Optimized Row Columnar (ORC)](https://orc.apache.org/) file to the\nCloud Storage output location. Mainframe Connector then communicates\ndirectly with the [BigQuery API](/bigquery/docs/reference/libraries-overview)\nto register the ORC file as an external table or load the ORC file into a table.\n\nAlternately, you can deploy a hardware device in your data center to transfer\ndata directly from the mainframe storage system to Cloud Storage using a\nvirtual tape library (VTL). This approach uses neither [zIIP](https://www.ibm.com/products/z-integrated-information-processor) or GP during the data transfer to\nCloud Storage because the hardware device receives the data directly from the\nmainframe storage system using a VTL and does not use the mainframe at all. This\nfrees up the mainframe for business-critical tasks.\n\n### Data encryption\n\nIBM provides a [Java Cryptography Extension (JCE)](https://www.ibm.com/docs/en/i/7.6.0?topic=security-java-cryptography-extension) implementation with the JVM called\nJava Cryptography Extension Common Cryptographic Architecture (IBMJCECCA) ([Java 8](https://www.ibm.com/docs/en/sdk-java-technology/8?topic=components-ibmjcecca)\nor [Java 17](https://www.ibm.com/docs/en/semeru-runtime-ce-z/17.0.0?topic=guide-ibmjcecca)) that uses the hardware\ncryptography system on [IBM z/OS](https://www.ibm.com/products/zos). The\ntransport layer security (TLS) connection between the JVM and Google Cloud API\nendpoints use JCE and hardware cryptography to secure data during the extract,\ntransform, and load (ELT) operations.\n\n### JCL procedure\n\nTo use JCL procedures, you must install a [BQSH shell interpreter](#bqsh-interpreter)\nin your mainframe [procedure libraries (PROCLIB)](https://www.ibm.com/docs/en/zos/3.1.0?topic=libraries-procedure-proclib). The standard environment (STDENV) data in\nthe JCL procedure is used to set environment variables, JVM arguments, and Java\nclasspath before launching the [Java application](#java-app). A JCL procedure\nlaunches the JVM and main class `com.google.cloud.bqsh.Bqsh` using\n[IBM JVMLDM86 JVM launcher](https://public.dhe.ibm.com/software/Java/Java80/JZOS/jzos_users_guide_v8.pdf).\n\n### BQSH shell interpreter\n\nThe BQSH main class acts as a shell interpreter. It reads stream input from a\nJCL procedure, splits lines of input, and attempts to interpret each line as a\ncommand.\n\n### Java application\n\nThe Mainframe Connector uses [Java Cloud Client Libraries](/java/docs/reference),\n[Apache ORC](https://orc.apache.org/), and other open source libraries. It uses\n[IBM proprietary JZOS SDK](https://www.ibm.com/docs/en/semeru-runtime-ce-z/17?topic=sdk-user-guide)\nto interact with the IBM z/OS storage system and runs on the JVM on IBM z/OS and\n[OpenJDK on Linux](https://openjdk.org/).\n\nWhat's Next\n-----------\n\n- [Mainframe Connector configurations](/mainframe-connector/docs/configurations)"]]