iptablesはファイアウォールとパケット転送ができる

iptablesでポート転送の設定をして」と言われました。

AWSのCentOS6に「他のインスタンスに転送できるようにiptablesの設定をして」と言われました。
何?iptablesって?

iptablesは、Linuxに搭載されていてパケットのルールを設定できます。

http://smilejapan.net/wiki/index.php?plugin=ref&page=iptables%E3%81%A8%E3%81%AF%EF%BC%9F&src=iptables-1.gif
iptablesとは? - SMILE JAPAN WIKI

CentOS7からファイアウォールは、iptablesからfirewalldへと変更されました。

qiita.com

設定はコマンドと設定ファイルを書く方法があります。

コマンドで設定する時

iptables [-t テーブル] [コマンド] [チェイン] [条件] [ターゲット]

設定ファイルを書いて設定する時
設定ファイルの場所 : /etc/sysconfig/iptables

$ sudo cat /etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 54321 -j DNAT --to-destination 10.0.1.1:1521
-A PREROUTING -p tcp -m tcp --dport 54322 -j DNAT --to-destination 10.0.1.2:80
-A POSTROUTING --dst 10.0.1.1 -p tcp -m tcp --dport 1521 -j SNAT --to-source 10.0.1.3
-A POSTROUTING --dst 10.0.1.2 -p tcp -m tcp --dport 80 -j SNAT --to-source 10.0.1.3
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

受信したパケットはChainというルートを通って処理されます。

https://eng-entrance.com/wp-content/uploads/2016/07/chain.png
【丁寧解説】Linuxファイアウォール iptablesの使い方

https://oxynotes.com/wp-content/uploads/iptables01.png
コピペから脱出!iptablesの仕組みを理解して環境に合わせた設定をしよう | OXY NOTES

https://cacoo.com/diagrams/zWJRlTb4nFY0UoYy-B6C43.png
iptablesの設定 入門編 - Murayama blog.

Chainの種類
名前 設定できるテーブル 説明
INPUT filter, magnle 入ってくるパケットについてのチェイン
OUTPUT filter, nat, magnle 出てゆくパケットについてのチェイン
FORWARD filter パケットを転送についてのチェイン
PREROUTING nat, magnle 受信時にアドレスを変換するチェイン
POSTROUTING nat 送信時にアドレスを変換するチェイン

iptablesは、ポートフォワードとして使用するパケット転送機能もあります。

natテーブルに設定します。

ponsuke-tarou.hatenablog.com

設定ファイルでは「*nat」に書きます。

*nat
ここに設定を書く
COMMIT

iptablesで見かけたNATって何?

iptablesでNATテーブルってあるけどこれ何?

iptablesがさっぱり不明な状態で「iptablesを設定してポートフォワードできるよにする」必要があったのでiptablesが有効になっているか確認したらTable: natって出力がありました。

$ sudo /etc/rc.d/init.d/iptables status
Table: nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

NATはプライベートIPアドレスとパブリックIPアドレスを組合せで変換してくれます。

  • 正式名称 : Network Address Translation

https://camo.qiitausercontent.com/441f211d0a460bec29f4270ddbf1c0e090e92ef5/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f35316164306362612d643864632d616665302d336334632d6534356563643761313462332e706e67
https://camo.qiitausercontent.com/84807767dd8cb6eac4c67e33b3e4e59a37db3d84/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f38363661663661312d396164382d636336612d643431392d3735623237623835653239322e706e67
NATに関して可能な限り分かりやすくまとめて見た。 - Qiita

https://www.infraexpert.com/studygif/tcpipz36.gif
NAT( Network Address Translation )とは

変換するプライベートIPアドレスとパブリックIPアドレスの組合わせを管理してくれるのがNATテーブルです。

https://www.itbook.info/study/img/nat.jpg
NAT - ネットワークエンジニアを目指して

http://blog-imgs-70.fc2.com/a/y/u/ayufishing/rtxnat02s.png
NAT の理解は芋づる式 - インフラまわりのプロになりたい

https://www.infraexpert.com/studygif/tcpipz38.gif
NAT( Network Address Translation )とは

LAN内からインターネットへ出ていく時に送信元のプライベートIPアドレスをパブリックIPアドレスに変換してくれるのがソースNAT
  • 略称 : SNAT
  • 英語 : Source NAT
  • 別名 : 送信元NAT

https://camo.qiitausercontent.com/cbec96ed61552c11e57cc9770f4e8b3641124298/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f37343331323764392d663461622d313838632d653331362d3136323264336339363336302e706e67
NATに関して可能な限り分かりやすくまとめて見た。 - Qiita

インターネットからLAN内にアクセスする時に送信先のパブリックIPアドレスをプライベートIPアドレスに変換してくれるのがデスティネーションNAT

https://camo.qiitausercontent.com/ef453e42301d02cee6a9a09ccdcb4d23283112b8/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f37336534346230332d326262392d323635622d656566622d6264343164313239613233352e706e67
NATに関して可能な限り分かりやすくまとめて見た。 - Qiita

NATは、プライベートIPとパブリックIPを1対1の組合せで変換します。

プライベートIPはたくさん作れるけどパブリックIPをたくさん用意するのは大変です。

パブリックIPアドレスはタダじゃありません。

http://blog-imgs-70.fc2.com/a/y/u/ayufishing/rtxnat03s.png
NAT の理解は芋づる式 - インフラまわりのプロになりたい

そこで、IPマスカレード

  • 別名 : NAPT
  • 正式名称 : Network Address Port Translation
複数のプライベートIPを1つのパブリックIPに組合せられます。
なぜなら、IPアドレス+ポート番号で組合せるからです。

https://www.itbook.info/study/img/napt.jpg
NAPT(IPマスカレード) - ネットワークエンジニアを目指して

https://camo.qiitausercontent.com/8f2cd04f50b039a3a1af1eaef3ccc851c7977029/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f32373462393962622d396330372d303663362d623431622d6465353030343230363166352e706e67
NATに関して可能な限り分かりやすくまとめて見た。 - Qiita

https://www.h323.jp/wp/wp-content/uploads/napt.jpg
MCU入門 第9回 NAT/FW トラバーサル③– NAT/FW トラバーサルの仕組み “NATとは” – MCU製品情報サイト VC.info

https://mo.kerosoft.com/pub/mo/image/iptables/.thumbnail/iptables-nat2.png.jpg
NAT箱の192.168.1.30:1234宛に届いたパケットを、10.0.2.50:80へ投げるというNATを書く。
# iptables -t nat -A PREROUTING -m tcp -p tcp --dst 192.168.1.30 --dport 1234 -j DNAT --to-destination 10.0.2.50:80
"10.0.2.50:80宛のパケットは、NAT箱の10.0.2.40というアドレスに付け替えてから送信する"というルールを書く。
# iptables -t nat -A POSTROUTING -m tcp -p tcp --dst 10.0.2.50 --dport 80 -j SNAT --to-source 10.0.2.40
NATのPREROUTINGを通って変換されたアドレスに対して許可ルールを書いておく。
# iptables -A FORWARD -m tcp -p tcp --dst 10.0.2.50 --dport 80 -j ACCEPT
戻りのパケットも許可する
# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptablesで特定のポートを別のホストへ転送する方法 - Kerosoft : Modus Operandi

コンピュータ化システムバリデーションの基礎となるGMP省令の3大目的

コンピュータ化システムバリデーションを勉強するとGMPという単語をよく見かけました。

ponsuke-tarou.hatenablog.com

GMPとは、日本における「医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令」のことです。

  • 英語 : Good Manufacturing Practice
  • GMP省令とも言います。

医薬品製造業における製造管理と品質管理の基準です。

健康食品や化粧品にも適用される基準です。

省令を読んでもよくわかりません。

書いてある文字列が難しくてよくわからないので、GMPを説明しているサイトと合わせて学びます。

誰が作業しても、いつ作業しても、必ず同じ品質・高い品質の製品をつくるために、医薬品製造業者が守るべきルールです。

目的を達成するためにやること

https://www.urethanegel.jp/blog/wp-content/uploads/2018/07/GMP.jpg
GMPって何?|医薬品の品質管理を分かりやすく!

(ハード)薬を作る製造所の環境や設備

GMP省令ではこんな感じで書いてあります。

(構造設備)
第九条 製品の製造所の構造設備は、次に定めるところに適合するものでなければならない。
 一 手順書等に基づき、その用途に応じ適切に清掃及び保守が行われ、必要に応じ滅菌され、また、その記録が作成され、保管されていること。
 二 製品等により有毒ガスを取り扱う場合においては、その処理に要する設備を有すること。
 三 作業所のうち作業室は、製品の種類、剤型及び製造工程に応じ、じんあい又は微生物による汚染を防止するのに必要な構造及び設備を有していること。ただし、製造設備等の有する機能によりこれと同程度の効果を得られる場合においては、この限りでない。
 四 作業所のうち、原料の秤量作業、製品の調製作業、充てん作業又は閉そく作業を行う作業室は、当該作業室の職員以外の者の通路とならないように造られていること。ただし、当該作業室の職員以外の者による製品への汚染のおそれがない場合においては、この限りでない。
 五 飛散しやすく、微量で過敏症反応を示す製品等又は交 叉さ 汚染することにより他の製品に重大な影響を及ぼすおそれのある製品等を製造する場合においては、当該製品等の関連する作業室を専用とし、かつ、空気処理システムを別系統にしていること。
 六 製品の製造に必要な質及び量の水(設備及び器具並びに容器の洗浄水を含む。)を供給する設備を有すること。
・医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令(◆平成16年12月24日厚生労働省令第179号)

間違いを防ぐことができること

フェールセーフ/フェールプルーフに似ています。
医療系のシステム開発では、設計段階から「ユーザ操作に間違いがあったら?」の目線が必要になりますね。

https://resilient-medical.com/wp-content/uploads/2017/10/s_2d8b5cd55b5a69bb2da5907ef37c47c6-600x500.jpg
https://resilient-medical.com/wp-content/uploads/2017/10/s_1a761dab43bbde6360d38e147bf4de04-600x500.jpg
https://resilient-medical.com/human-error/fail-safe-fool-proof

衛生的であること
高い品質を保ち続けることができること

システム開発では品質を保つために色んな種類のテストを実施します。
医療系のシステム開発ではこれがより厳しく求められることになります。

(ソフト)人によるルールの運用

https://www.temahimado.co.jp/img/gmp_09.gif
GMPとは?│にんにく卵黄通販サイト てまひま堂

http://www.tokyo-eiken.go.jp/assets/pharma/hinshitu/image/gmp_003_2.gif
誰でもわかる簡単GMP (3)考え方の基本〜ルールを決めて書類にする・実行する・見直す・改善する〜

ルールを決めてそれを書類に残すこと

GMP省令では作る手順書の種類を具体的に決めています。
医療系のシステム開発では、仕様書や手順書の作成が重要となります。

(手順書等)
第八条 製造業者等は、製造所ごとに、構造設備の衛生管理、職員の衛生管理その他必要な事項について記載した衛生管理基準書を作成し、これを保管しなければならない。
 2 製造業者等は、製造所ごとに、製品等の保管、製造工程の管理その他必要な事項について記載した製造管理基準書を作成し、これを保管しなければならない。
 3 製造業者等は、製造所ごとに、検体の採取方法、試験検査結果の判定方法その他必要な事項を記載した品質管理基準書を作成し、これを保管しなければならない。
 4 製造業者等は、前三項に定めるもののほか、製造管理及び品質管理を適正かつ円滑に実施するため、次に掲げる手順に関する文書(以下「手順書」という。)を製造所ごとに作成し、これを保管しなければならない。
  一 製造所からの出荷の管理に関する手順
  二 バリデーションに関する手順
  三 第十四条の変更の管理に関する手順
  四 第十五条の逸脱の管理に関する手順
  五 品質等に関する情報及び品質不良等の処理に関する手順
  六 回収処理に関する手順
  七 自己点検に関する手順
  八 教育訓練に関する手順
  九 文書及び記録の管理に関する手順
  十 その他製造管理及び品質管理を適正かつ円滑に実施するために必要な手順
 5 製造業者等は、製品標準書、衛生管理基準書、製造管理基準書、品質管理基準書及び手順書(以下「手順書等」と総称する。)を製造所に備え付けなければならない。
・医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令(◆平成16年12月24日厚生労働省令第179号)

ルール実行するための手順書をSOPともいいます。

SOP(Standard Operating Procedures)とは標準業務手順書の略称で、治験の際に必ず守るべき基本的な業務手順をまとめた手順書。
SOPとは | 製薬業界 用語辞典 | Answers(アンサーズ)

ルールの実行結果を記録に残して証拠にすること

GMP省令には「記録を作成し、これを保管すること」がたくさんあります。
医療系のシステム開発では、エビデンスをきっちりと残して管理する必要があります。

(製造管理)
第十条 製造業者等は、製造部門に、手順書等に基づき、次に掲げる製造管理に係る業務を適切に行わせなければならない。<省略>
 三 製品の製造に関する記録をロットごと(ロットを構成しない製品については製造番号ごと。以下同じ。)に作成し、これを保管すること。
 四 製品の資材についてロットごとにそれが適正である旨を確認するとともに、その結果に関する記録を作成し、これを保管すること。
 五 製品等についてはロットごとに、資材については管理単位ごとに適正に保管し、出納を行うとともに、その記録を作成し、これを保管すること。
 六 構造設備の清浄を確認するとともに、その結果に関する記録を作成し、これを保管すること。
 七 職員の衛生管理を行うとともに、その記録を作成し、これを保管すること。
 八 構造設備を定期的に点検整備するとともに、その記録を作成し、これを保管すること。また、計器の校正を適切に行うとともに、その記録を作成し、これを保管すること。
・医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令(◆平成16年12月24日厚生労働省令第179号)

内容を見直して検討・改善していくこと

手順の作成と記録だけではなく、定期的に記録をチェックして状況や環境の変化に合わせた改善が必要になります。

(製造管理)
第十条 製造業者等は、製造部門に、手順書等に基づき、次に掲げる製造管理に係る業務を適切に行わせなければならない。<省略>
 九 製造、保管及び出納並びに衛生管理に関する記録により製造管理が適切に行われていることを確認し、その結果を品質部門に対して文書により報告すること。
・医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令(◆平成16年12月24日厚生労働省令第179号)

国や会社によってばらつきがあります。

ざっくり似ていても世界各国全く同じ基準ではありません。

PIC/Sでは、GMP基準の国際化を目指しています。

  • 正式 : Pharmaceutical Inspection Convention and Pharmaceutical Inspection Co-operation Scheme
  • 日本語 : 医薬品査察協定及び医薬品査察共同スキーム

PIC/Sは、GMPの分野で共通の基準を設け、各国の査察官にトレーニングの機会を提供することによって、世界中の査察基準を整合させることを目指しています。
PIC/Sの基礎知識。PIC/S GMPとは?PIC/Sの目的や成り立ちは? | コラム | 平原エンジニアリングサービス│医薬品施設のエンジニアリング

GMPの歴史

  • 1961年 サリドマイドの薬害について報告される
  • 1963年 (アメリカ)FDA(アメリカ食品医薬品局)が、連邦食品・医薬品・化粧品法に基づいて医薬品等の製造品質管理基準を定めた
  • 1969年 世界保険機関がWHO-GMPを制定し、加盟国に対して医薬品貿易においてGMPに基づく証明制度を採用・実施するように勧告
  • 1980年 (日本)薬事法改正に伴い「医薬品GMP」施行
  • 1990年 (日本)「原薬GMP」施行
  • 1994年 (日本)「医薬品GMP」「原薬GMP」を合わせた「医薬品の製造管理及び品質管理規則」施行し、これが製造業の要件となった
  • 1995年 PIC/S設立
  • 2005年 (日本)「医薬品及び医薬部外品の製造管理及び品質管理規則」が「医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令」へ改正され、製造販売承認の要件となった
  • 2014年 日本がPIC/Sに加盟

WebLogic Serverって何?

JPAって何?

JPAは、リレーショナルデータベースを使う時用のJavaフレームワークの仕様の定義です。

http://terasolunaorg.github.io/guideline/5.5.1.RELEASE/ja/_images/dataaccess_jpa_mapping.png
6.3. データベースアクセス(JPA編) — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.5.1.RELEASE documentation

Java EEだけではなくJava SEでも使えます。

JPAJava EEの「Enterprise Application Technologies」に含まれる技術仕様ですが、Servlet/JSPEJBなどと異なり、コンテナ・ベースのアーキテクチャを採用していないためJava SEでも利用可能です。
JPAの基礎1 - Qiita

データベースとJavaを関連付けてくれます。

https://builder.japan.zdnet.com/storage/2015/07/07/8ffc3bda4c104f848f0979154e31cfd1/image5.png
初めてのJPA--シンプルで使いやすい、Java EEのデータ永続化機能の基本を学ぶ - builder by ZDNet Japan

JPAは以下3つの要素から構成されています。

Entityクラスは、データベースにあるテーブルを表すJavaのクラスです。

データベースにある1つのテーブルの1レコードを表すクラスです。
このクラスのインスタンス
データを格納してテーブルを更新したり、
テーブルから取得したデータを格納して使います。

永続性コンテキストは、Entityクラスのインスタンスを集めたものです。

この永続性コンテキストとJPQL*1を使用してデータベースへの問合せを行います。

EntityManagerは、Entityのライフサイクルを管理するためのAPIを提供するインタフェースです。

https://builder.japan.zdnet.com/storage/2015/07/07/13f730bf2cc2d33fca20efa3b6979098/image6.png
初めてのJPA--シンプルで使いやすい、Java EEのデータ永続化機能の基本を学ぶ - builder by ZDNet Japan

JPAの実装

EclipseLink
Hibernate ORM : JPAの仕様作成にHibernateプロジェクトの創始者がいたため、JPAHibernateの影響を受け継いでいます。
Apache Open JPA

*1:Java Persistence Query Language : SQLに似た問合せ言語

アプリケーションサーバとJava EE

アプリケーションサーバ

  • 英語 : Application Server

ビジネスロジックなどを実装したアプリケーションソフトウェアを実行することを専門とするコンピュータネットワーク上のサーバコンピュータ、もしくはそのようなコンピュータ上でのアプリケーションの実行を管理補助するミドルウェアのこと。
ウェブアプリケーションサーバは、ウェブクライアントからのHTTPのレスポンス要求を処理するWebサーバとバックエンドのデータベース中核層への橋渡しを担い、データの加工などの処理を行う。
プログラムの実行環境やデータベースへの接続機能、複数の処理を連結するトランザクション管理機能などを持ち、業務の処理の流れを制御するビジネスロジックを実装しているのがアプリケーションサーバである。
旧来の、クライアントやバックエンド側にビジネスロジックを実装する方式(2階層システム)に比べ、システムの変更や更新、増強などが容易で、柔軟性が高い。

f:id:ponsuke_tarou:20190604224300p:plain
親水公園の猫

アプリケーションサーバのいろいろ

Java EE アプリケーションサーバは、「Java EEに準拠したアプリケーションサーバ」のこと

たとえば・・・
WebLogic*1JBoss、WebSphere、GlassfishCosminexusGeronimoiPlanetOracle 9iAS

.NETフレームワークに準じたアプリケーションサーバ

たとえば・・・
Internet Information Services (IIS) 、Base4アプリケーションサーバZope

その他のアプリケーションサーバ

Java EE以外の言語セット・フレームワークを使用し、ビジネスロジックを実装し得るアプリケーションサーバ

f:id:ponsuke_tarou:20190604224332p:plain
花壇の豆

Java EE は、Javaシステム開発するための標準仕様です。

  • 正式 : Java Platform, Enterprise Edition

Java拡張機能セット
コミュニティ主導のエンタープライズ・ソフトウェアの標準です。Java EEJava Community Processを使って開発されており、業界の専門家、営利団体オープンソース団体、Javaユーザー・グループ、さらに数え切れないほど多くの個人が貢献しています。
Java EE の概要

JavaでWebアプリケーションを中心とした業務アプリケーションを構築するために選定された数々の仕様と、その実装
Java EE 6 環境の構築 (1/4):CodeZine(コードジン)

サーバー中心の複数層アプリケーションの開発、デプロイおよび管理にかかるコストと複雑さを大幅に削減する組織的なテクノロジのセットを含み、広く使用されているプラットフォーム(標準仕様)です。Java EEJava SEプラットフォーム上にビルドされ、移植可能、堅牢、スケーラブル、信頼性、およびセキュリティに優れたサーバー側アプリケーションを開発および実行するための一連の API を提供します。
Java EEおよびJava Webの学習 - NetBeansチュートリアル、ガイドおよび記事

規定されている機能

Java Servlet
  • サーバ上でウェブページなどを動的に生成したりデータ処理を行うために、Javaで作成されたプログラム及びその仕様
  • (Java EE 7) JSR-340
Java Server Pages ( JSP)
  • HTML内にJavaのコードを埋め込んでおき、Webサーバで動的にWebページを生成してクライアントに返す技術
  • Javaのコードは、<%と%>記号で囲まれた部分に書かれる(スクリプト言語チックにJavaを書く)
  • JSR-53

Java Servletとの違いは、記述方法にあり!
例えば、画像を表示する・・・

  • Java Servlet : Javaプログラムと同様に作成
    • out.print("<img src=\"/img/" + img.getName() + "\">");
  • JSP : HTMLにタグをつけて入れ込む
    • < img src="/img/<%= img . getName ( ) %>">

他にもいろいろ比較して特徴を知ろう!
出展 : JSPの特徴を理解する:Tomcatを使う「JSPプログラミング」(1) - @IT

比較対象 JavaScript JavaScript Java Applet*2 CGI*3 CGI CGI
同じところ HTMLにタグを入れて使う - - 実行するところ - -
違うところ - 実行するところ 実行するところ - 使えるプログラム言語 起動の仕方
JSPの場合 <% %> サーバ側 サーバ側 サーバ側 Java 複数アクセスがあっても1度起動していればその内部で実行
比較対象の場合 <script> </script> クライアント側 クライアント側(アプレット自体はサーバにおいてあるが使う時にクライアントに持って行って実行する) サーバ側 特定のプログラミング言語に依存しない(JavaでもCでもどんとこい) アクセスがあるたびに新しいプロセス起動
Java Server Faces ( JSF)

JSFコンポーネントベースのフレームワークであり、Strutsなどのアクションベースとは異なります。
https://www.dcom-web.co.jp/wp-content/uploads/2015/06/img_dcom_jsf1_19.jpg
【JavaEE】今からでも間にあうJSF入門

Java Naming and Directory Interface ( JNDI)
  • ネーミング・サービス / ディレクトリー・サービス を扱うためのインターフェイスを規定した仕様
  • ディレクトリ・サービスが提供するデータやオブジェクトを名前で発見し、参照するのためのAPI
  • 他システムに対するインターフェースであり、具体的な実装からは独立している
  • サービス・プロバイダ・インターフェース(SPI)が規定されており、フレームワークディレクトリ・サービスの実装をプラグインすることができる
  • ディレクトリ・サービスの実装はサーバでもフラットファイルでもデータベースでもよく、サービスの提供側が任意に選択できる
  • JSR-907
Java Transaction API ( JTA)
JPAは、リレーショナルデータベースを使う時用のJavaフレームワークの仕様の定義です。

ponsuke-tarou.hatenablog.com

ほかにもいろいろあります。

f:id:ponsuke_tarou:20190604230702p:plain
花壇のクレソン

*1:ponsuke-tarou.hatenablog.com

*2:クライアント側のWebブラウザ上で動作するJavaのプログラムです。 ブラウザは読み込んだHTML文書内に、アプレット読込を指示する記述があると、サーバに対してアプレットのプログラムを送るよう要求します。 要求を受信したサーバは、クライアントにプログラムを返します。 クライアントは、アプレットプログラムを受け取り、Webブラウザ上で実行します。

*3:e-words.jp

*4:e-words.jp

ストアドプロシージャって何?

ストアドプロシージャは、データベースへの複数処理を1つのプログラムにまとめたものです。

  • 英語 : stored procedure
    • stored : サーバー上に保管(ストア)されるという意味

e-words.jp

https://image.itmedia.co.jp/ait/articles/1703/10/si_plsql-01-1b.jpg
PL/SQLとは何か プログラムの特徴と基本構造を理解する (1/2):超入門「PL/SQL」(1) - @IT

プログラムは専用言語で書きます。

規格またはRMDB 言語
(標準SQLの規格)SQL99 SQL/PSM
Persistent Stored Module
Oracle Database PL/SQL
Procedural Language Extensions to SQL
Microsoft SQL Server Transact-SQL
T-SQL

ストアドプロシージャの友達にストアドファンクションがいます。

ストアドプロシージャは、戻り値がありません。

ストアドプロシージャやストアドファンクションを使うと複数処理を1回でできるので実行速度が早くなります。

https://2.bp.blogspot.com/-iovzQkOLg90/W986Mda8_uI/AAAAAAAByPw/fATEQTmMGskdtHKo6PtP0s3Y5Fg56P5bACLcBGAs/s640/2018-11-04_11h25_09.png
https://1.bp.blogspot.com/-lVOmCKoIt7U/W987oFnsvNI/AAAAAAAByQQ/id2tbYS86b8gpgw3K3vM0UhJg51tmtwBACLcBGAs/s640/2018-11-04_11h32_48.png
Oracle ストアド・プロシージャとストアド・ファンクションの基本と違い|Everything you do is practice


f:id:ponsuke_tarou:20190603204533j:plain
栃木県八幡自然研究路