2026年2月18日水曜日

Oracle RDF Graph Server and Query UIを使ってみる

Oracle Graph Server and Clientのダウンロード・ページの中にOracle Graph Webappsが含まれているのを見つけました。
https://www.oracle.com/database/graph/downloads.html

以前のアーカイブと構成が同じであれば、oracle-graph-webappsのZIPにはRDF Graph Serverが含まれています。


Oracle Graph Server and Clientのページを開いてみました。

Oracle Software Delivery Cloudのページに遷移します。ライセンスはOracle Plug-ins & Add-ons License Agreementとなっていますが、開いてみたらOracle Technology Network License Terms(Last updated: 15 October 2015)でした。

この中のoracle-graph-webapps-26.1.0.zipをダウンロードします。


ダウンロードしたファイルの内容を確認したところ、orardf-26.1.0.warが含まれていました。これはOracle RDF Graph Server and Query UIのWebアプリです。

% unzip -l oracle-graph-webapps-26.1.0.zip 

Archive:  oracle-graph-webapps-26.1.0.zip

  Length      Date    Time    Name

---------  ---------- -----   ----

 55740619  01-16-2026 05:12   orardf-26.1.0.war

1686156993  01-16-2026 05:12   graph-server-webapp-26.1.0.war

   608168  01-16-2026 05:12   THIRDPARTYLICENSESREADME

        0  01-16-2026 05:12   rdf-doc/

   156079  01-16-2026 05:12   rdf-doc/orardf_swagger.json

      103  01-16-2026 05:12   rdf-doc/orardf_doc_url.txt

    68175  01-16-2026 05:12   README.txt

---------                     -------

1742730137                     7 files

% 


以下よりorardf-26.1.0.warを実行してみます。

作業はAppleシリコンのMacbook Proで実施します。DockerとColimaが動作していることを前提とします。ただし、DockerまたはPodmanが動いていれば異なる環境でも作業は実施できると思います。

最初にダウンロードしたoracle-graph-webapps-26.1.0.zipを解凍します。解凍先は~/Documents/orardfとしました。

unzip -d ../Documents/orardf oracle-graph-webapps-26.1.0.zip
 

Downloads % unzip -d ../Documents/orardf oracle-graph-webapps-26.1.0.zip                  

Archive:  oracle-graph-webapps-26.1.0.zip

  inflating: ../Documents/orardf/orardf-26.1.0.war  

  inflating: ../Documents/orardf/graph-server-webapp-26.1.0.war  

  inflating: ../Documents/orardf/THIRDPARTYLICENSESREADME  

   creating: ../Documents/orardf/rdf-doc

  inflating: ../Documents/orardf/rdf-doc/orardf_swagger.json  

  inflating: ../Documents/orardf/rdf-doc/orardf_doc_url.txt  

  inflating: ../Documents/orardf/README.txt  

Downloads % 


解凍先のディレクトリに移動し、Tomcatのコンテナの作成して起動します。コンテナの名前はorardfとしています。

RDF Graph ServerのWebアプリorardf-26.1.0.warを/usr/local/tomecat/webapps/orardf.warとしてマッピングすることで、コンテナ作成時にTomcatにWebアプリをデプロイしています。

cd ~/Documents/orardf
docker run -d --name orardf -p 8080:8080 -v $PWD/orardf-26.1.0.war:/usr/local/tomcat/webapps/orardf.war -e JAVA_OPTS="-Xms512m -Xmx1024m" tomcat:9.0-jre11-temurin

Downloads % cd ~/Documents/orardf

orardf % docker run -d --name orardf -p 8080:8080 -v $PWD/orardf-26.1.0.war:/usr/local/tomcat/webapps/orardf.war -e JAVA_OPTS="-Xms512m -Xmx1024m" tomcat:9.0-jre11-temurin

Unable to find image 'tomcat:9.0-jre11-temurin' locally

9.0-jre11-temurin: Pulling from library/tomcat

9dddf1cda97b: Pull complete 

10cb6c6469c2: Pull complete 

4f4fb700ef54: Pull complete 

903790168e5a: Pull complete 

925f4b93f4da: Pull complete 

820bc2a50cc4: Pull complete 

3925a3d689d1: Pull complete 

4bae4058a1c1: Pull complete 

Digest: sha256:3363b17d5554ca13bf8e6c95d3896d98782b328c85f15fecb4facbcadfbc2087

Status: Downloaded newer image for tomcat:9.0-jre11-temurin

56c063fc3885f8706c36e2b3d588871da3d15acf27be62509c05fb3cf633eb6c

orardf % 


Tomcatはポート8080で、接続を待ち受ける様にしています。

コンテナが起動すると、以下のURLでRDF Graphのページを開けます。



この画面からサインインするには、Tomcatにユーザーを作成する必要があります。

ドキュメントの以下の記述を参考に、conf/tomcat-users.xmlを更新します。

Graph Developer's Guide for RDF Graph
14.2.2 Managing Users and Roles in Tomcat Server

ドキュメントの記載内容をtomcat-users.xmlとして作成し、コンテナにコピーしたのち再起動します。

docker cp tomcat-users.xml orardf:/usr/local/tomcat/conf/
docker restart orardf

orardf % docker cp tomcat-users.xml orardf:/usr/local/tomcat/conf/ 

Successfully copied 2.56kB to orardf:/usr/local/tomcat/conf/

orardf % docker restart orardf

orardf

orardf %


RDF Graph Serverに再度アクセスし、ユーザーadminでサインインします。パスワードはtomcat-users.xmlに記載されています。


Oracle RDF Graph Server and Query UIのページが開きます。


今回の記事は以上になります。

2026年2月5日木曜日

United CodesのUC Local APEX Devを使ってOracle APEXのローカル開発環境を作成する

欧州のベルギーに拠点があるUnited Codes社より、Oracle APEXのローカル開発環境を作成するスクリプトが公開されています。

UC Local APEX Dev

本記事では、このuc-local-apex-devを使用して、MacbookにOracle APEXの開発環境を作成します。作業はuc-local-apex-devのGetting Startedにそって実施します。

Getting Started

このブログの筆者も、ローカル開発環境をオラクルがcontainer-registry.oracle.comから提供しているコンテナ・イメージから作成するスクリプトを書いていますが、uc-local-apex-devの方がよく出来ていますし、ドキュメントも整備されています。

Macbookの環境ですが、DockerとDockerエンジンにColimaを使用します。podmanは使用しません。そのため、環境の準備手順は少し異なります。Windowsの場合はWSL2の使用が推奨されています。

Macでの環境については、以下で説明されています。

Init podman on MacOS
https://www.united-codes.com/products/uc-local-apex-dev/docs/other/podman-on-mac/

私はSQLclを、HomebrewではなくSQLclのページよりダウンロードしてインストールしているので、brewにsqlclは含めていません。

brew install docker docker-compose colima

私の環境では、すべてインストール済みでした。

% brew install docker docker-compose colima

✔︎ JSON API cask.jws.json                                                                                 Downloaded   15.3MB/ 15.3MB

✔︎ JSON API formula.jws.json                                                                              Downloaded   32.0MB/ 32.0MB

Warning: docker 29.2.1 is already installed and up-to-date.

To reinstall 29.2.1, run:

  brew reinstall docker

Warning: docker-compose 5.0.2 is already installed and up-to-date.

To reinstall 5.0.2, run:

  brew reinstall docker-compose

Warning: colima 0.9.1 is already installed and up-to-date.

To reinstall 0.9.1, run:

  brew reinstall colima

% 


SQLclをPATHに含めておきます。SQLclのインストール先など、設定方法は環境に依存します。sql /nologの実行で、SQLclが起動されることを確認します。

~ % sql /nolog


SQLcl: 木 2月 05 14:55:01 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


SQL> exit

~ % 


colimaの仮想マシンを実行します。

CPUは8、メモリは16GB、ディスクは100GBで作成しています。Getting Startedでは、4GB RAM、3 CPUs、20GBディスクが最小限となっています。

colima start --runtime docker --cpu 8 --memory 16 --disk 100

~ % colima start --runtime docker --cpu 8 --memory 16 --disk 100

INFO[0000] starting colima                              

INFO[0000] runtime: docker                              

INFO[0002] creating and starting ...                     context=vm

INFO[0019] provisioning ...                              context=docker

INFO[0020] starting ...                                  context=docker

INFO[0021] done                                         

~ % 


dockerがcolimaを使用する様に設定します。

docker context use colima
docker context ls

~ % docker context use colima

colima

Current context is now "colima"

~ % docker context ls

NAME       DESCRIPTION                               DOCKER ENDPOINT                                        ERROR

colima *   colima                                    unix:///Users/_________/.colima/default/docker.sock   

default    Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                            

~ %


以上でコンテナを実行する環境が準備できました。

この後は、Getting StartedQuick Setupを実行します。1 Clone the Repositoryから7 PATH Configurationに記載されているコマンドを、順次実行します。

./scripts/after-first-db-start.shの最後の方で、アーカイブ・ログ・モードを無効にするかどうか確認を求められるので、デフォルトの無効を選んでいます。

言語リソースのインストールに使用するため、ダウンロードしたAPEXのメディアは残します。rm -rf ./apexは実行しません。

Documents % git clone https://github.com/United-Codes/uc-local-apex-dev.git

Cloning into 'uc-local-apex-dev'...

remote: Enumerating objects: 672, done.

remote: Counting objects: 100% (156/156), done.

remote: Compressing objects: 100% (92/92), done.

remote: Total 672 (delta 71), reused 115 (delta 58), pack-reused 516 (from 1)

Receiving objects: 100% (672/672), 194.99 KiB | 4.64 MiB/s, done.

Resolving deltas: 100% (367/367), done.

Documents % cd uc-local-apex-dev                           

uc-local-apex-dev % chmod +x ./local-26ai.sh ./setup.sh ./scripts/*.sh

uc-local-apex-dev % ./setup.sh

Created .env file

uc-local-apex-dev % docker-compose up -d

[+] up 4/4

  Network uc-local-apex-dev_default Created                                                                                    0.0s

  Volume oradata-26ai               Created                                                                                    0.0s

  Container local-26ai              Healthy                                                                                    8.6s

  Container local-26ai-ords         Created                                                                                    0.0s

uc-local-apex-dev % docker exec -it local-26ai-ords bash -c \

"ords --config /etc/ords/config config --db-pool default set plsql.gateway.mode proxied"


ORDS: Release 25.4 Production on Thu Feb 05 06:19:16 2026


Copyright (c) 2010, 2026, Oracle.


Configuration:

  /etc/ords/config


The setting named: plsql.gateway.mode was set to: proxied in configuration: default

uc-local-apex-dev % ./scripts/after-first-db-start.sh

loaded .env file



SQLcl: 木 2月 05 11:19:58 2026のリリース25.3 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0



USER    

_______ 

SYS     


名前: local-26ai-sys

接続文字列: localhost:1521/FREEPDB1

ユーザー: sys

パスワード: ******

internal_logon: sysdba

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

saved sqlcl connection

connect with 'sql -name local-26ai-sys'


[中略]


コミットが完了しました。


Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

loaded .env file

Successfully copied 1.54kB to local-26ai:/opt/oracle/oradata/datapump/

Successfully copied 1.54kB to /Users/__________/Documents/uc-local-apex-dev/backups/

synced backups folder

Do you want to disable archive logs (recommended if this is just a dev environment)? [Y/n] 

loaded .env file

Disabling archive logs

Database closed.

Database dismounted.

ORACLE instance shut down.

ORACLE instance started.


Total System Global Area 1603373280 bytes

Fixed Size     5007584 bytes

Variable Size   469762048 bytes

Database Buffers 1124073472 bytes

Redo Buffers     4530176 bytes

Database mounted.


Database altered.



Database altered.


Database log mode       No Archive Mode

Automatic archival       Disabled

Archive destination       /opt/oracle/product/26ai/dbhomeFree/dbs/arch

Oldest online log sequence     5

Current log sequence       3

Removing archive logs

uc-local-apex-dev % docker-compose restart ords-26ai

[+] restart 0/1

  Container local-26ai-ords Restarting                                                                                        10.2s

uc-local-apex-dev % ./scripts/unexpire-accounts.sh


loaded .env file


SQLcl: 木 2月 05 15:32:41 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0



PL/SQLプロシージャが正常に完了しました。



PL/SQLプロシージャが正常に完了しました。


Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

Unexpired APEX_PUBLIC_USER and APEX workspace accounts.

ynakakoshi@Ns-Macbook uc-local-apex-dev % ./scripts/disable-password-expiration.sh


loaded .env file


SQLcl: 木 2月 05 15:32:45 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0



PL/SQLプロシージャが正常に完了しました。


Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

Disabled password expiration for APEX workspace accounts.

uc-local-apex-dev % 


7 PATH Configurationまでの作業を終えると、以下のURLでAPEXに接続できます。


SQLclに接続local-26ai-sysが保存されていることを確認します。この接続は、ユーザーSYSでAPEXをインストールしたFREEPDB1に接続します。

uc-local-apex-dev % sql /nolog


SQLcl: 木 2月 05 15:52:19 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


SQL> connmgr list

.

└── local-26ai-sys

SQL> exit

uc-local-apex-dev % 


管理者ユーザーADMINを設定するため、APEXのメディアがあるディレクトリapexに移動し、apxchpwd.sqlを実行します。

cd apex
sql -name local-26ai-sys @apxchpwd
exit

uc-local-apex-dev % cd apex

ynakakoshi@Ns-Macbook apex % sql -name local-26ai-sys @apxchpwd


SQLcl: 木 2月 05 15:53:29 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0


...set_appun.sql

================================================================================

This script can be used to change the password of an Oracle APEX

instance administrator. If the user does not yet exist, a user record will be

created.

================================================================================

Enter the administrator's username [ADMIN] 

User "ADMIN" does not yet exist and will be created.


Enter ADMIN's email [ADMIN] 

Enter ADMIN's password [] *********

Created instance administrator ADMIN.



SQL> exit

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

apex % 


load_trans.sqlを実行し、日本語リソースをインストールします。

sql -name local-26ai-sys @load_trans JAPANESE

apex % sql -name local-26ai-sys @load_trans JAPANESE


SQLcl: 木 2月 05 15:58:34 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0



PL/SQLプロシージャが正常に完了しました。


Installing Oracle APEX translation - JAPANESE



. ORACLE

.

. Oracle APEX Hosted Development Service Installation.

..............................................................


PL/SQLプロシージャが正常に完了しました。



PL/SQLプロシージャが正常に完了しました。


--application/set_environment

API Last Extended:20241130

Your Current Version:20241130

This import is compatible with version: 20241130

COMPATIBLE (You should be able to run this import without issues.)

ID offset during import: 0

New ID offset for application: 0



[中略]


--application/pages/page_00204

--application/pages/page_00205

--application/pages/page_00206

--application/deployment/definition

--application/deployment/checks

--application/deployment/buildoptions

--application/end_environment

... elapsed: 2.79 sec


...done

Adjust instance settings


PL/SQLプロシージャが正常に完了しました。


SQL> exit

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

apex % 


APEXワークスペースとしてAPEXDEV、デフォルト・パーシング・スキーマとなるデータベース・ユーザーとしてAPEXDEVを作成します。

local-26ai.sh create-user apexdev

スクリプトの出力の最後の方に、作成されたユーザー(今回はapexdev)が表示されます。

apex % local-26ai.sh create-user apexdev

loaded .env file


SQLcl: 木 2月 05 16:07:49 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0



USER    

_______ 

SYS     



Tablespace TBS_APEXDEVは作成されました。



User APEXDEVは作成されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



Grantが正常に実行されました。



PL/SQLプロシージャが正常に完了しました。


Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

>>>>

created user


SQLcl: 木 2月 05 16:07:51 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0



USER    

_______ 

SYS     



PL/SQLプロシージャが正常に完了しました。


Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

>>>>

created workspace. Access with username 'ADMIN' or apexdev and password 'Welcome_1'

http://localhost:8181/ords/r/apex/workspace-sign-in/oracle-apex-sign-in


SQLcl: 木 2月 05 16:07:53 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0



USER       

__________ 

APEXDEV    


名前: local-26ai-apexdev

接続文字列: localhost:1521/FREEPDB1

ユーザー: apexdev

パスワード: ******


PL/SQLプロシージャが正常に完了しました。


Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

>>>>

saved sqlcl connection

connect with 'sql -name local-26ai-apexdev'

apex % 


以上でOracle APEXのアプリケーションの開発を始める準備が整いました。

管理サービスにサインインしてみます。ユーザー名/パスワードは、apxchpwd.sqlを実行して設定しています。


管理サービスにサインインできます。ワークスペースの作成はスクリプトで実行できるので、あまり管理サービスにサインインすることはないかもしれません。


ワークスペースにサインインします。


ユーザー名はapexdev、デフォルトのパスワードはWelcome_1です。


サインインすると、アプリケーション・ビルダーの画面が開きます。


パッチの適用については、FAQに手順が記載されています。


ダウンロードしたパッチを解凍したディレクトリに移動し、catpatch.sqlを実行します。

sql -name local-26ai-sys @catpatch

37366599 % sql -name local-26ai-sys @catpatch


SQLcl: 木 2月 05 16:25:46 2026のリリース25.4 Production


Copyright (c) 1982, 2026, Oracle.  All rights reserved.


接続先:

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0


sqlclではTimingコマンドは廃止されました。

SET TIMING ONとSET TIMING OFFを使用してください。


. ORACLE

.

. Oracle APEX 24.2.%

. Patch Set Exception 37366599

........................................


APEX_VERSION    APEX_SCHEMA    

_______________ ______________ 

24.2.0          APEX_240200    



PL/SQLプロシージャが正常に完了しました。



Sessionが変更されました。



APEX_SCHEMA    

______________ 

APEX_240200    


[中略]


PL/SQLプロシージャが正常に完了しました。


... Enabling Jobs


PL/SQLプロシージャが正常に完了しました。


...Validating APEX

...(07:26:03) Starting validate_apex for APEX_240200

...(07:26:03) Checking missing privileges for APEX_240200

...(07:26:03) Checking missing privileges for APEX_GRANTS_FOR_NEW_USERS_ROLE

...(07:26:03) Re-generating APEX_240200.wwv_flow_db_version

... wwv_flow_db_version is up to date

...(07:26:03) Checking for sys.wwv_flow_cu_constraints

...(07:26:03) Checking invalid public synonyms

...(07:26:03) Key object existence check

...(07:26:03) Post-ORDS updates

...(07:26:03) calling wwv_util_apex_240200.post_ords_upgrade

...enabled_schema

...define_module

...define_template

...define_handler

...set_module_origins_allowed

...(07:26:03) Setting DBMS Registry for APEX to valid

...(07:26:03) Exiting validate_apex



PL/SQLプロシージャが正常に完了しました。


...Recompiling invalid public synonyms


PL/SQLプロシージャが正常に完了しました。



PL/SQLプロシージャが正常に完了しました。


sqlclではTimingコマンドは廃止されました。

SET TIMING ONとSET TIMING OFFを使用してください。

Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free

Version 23.26.0.0.0から切断されました

37366599 % 


パッチに含まれるimagesの内容をuc-local-apex-dev/apex-imagesに上書きします。

cp -r ./images/* {path_to_your_cloned_repo}/apex-images

37366599 % cp -r ./images/* ../../uc-local-apex-dev/apex-images 

37366599 % 


以上でパッチの適用は完了です。

環境の構築については以上です。

uc-local-apex-devには、環境構築の他にも色々と便利なスクリプトが含まれています。--helpでスクリプトの一覧を確認できます。

local-26ai.sh --help

~ % local-26ai.sh --help

Script '--help' not found in /Users/_________/Documents/uc-local-apex-dev

Available scripts:

after-first-db-start.sh

backup-all.sh

backup-user.sh

clear-schema.sh

create-self-signed-certificates.sh

create-user.sh

disable-archive-logs.sh

disable-password-expiration.sh

drop-user.sh

fix-ws-group-ids.sh

import-all.sh

import-backup.sh

import-datapump.sh

install-dbms-cloud.sh

shrink-space.sh

start.sh

stop.sh

sync-backups-folder.sh

test-app-install.sh

test-script-install.sh

unexpire-accounts.sh

used-space.sh

~ % 


今回の記事は以上になります。

Oracle APEXのアプケーション開発の参考になれば幸いです。