Oracle Databaseは、エンタープライズ・アプリケーションの開発と導入をより簡単にするために、アプリケーションとデータ・サービスの両方を備えた包括的なプラットフォームです。CI/CD、マルチテナント・データベース、Kubernetes、クラウド・ネイティブ、ローコード・テクノロジーを使用して、SaaSアプリケーションを構築できます。
オラクルのコンバージド・データベースを使用したマイクロサービス(1:09)
過去20年間の情報科学における最大のイノベーションであるJSON Relational Dualityを含む、クラウドとオンプレミスに対応したOracle Database 23cの無料版を開発者向けに提供開始したことを発表します。
オラクルは、「App Simple」というコード・ネームのもと、開発者が最新のイノベーションを非常に簡単に試すことができる環境をOracle Database 23c Free-Developer Releaseで提供しています。Oracle Database 23cには、300を超える開発者向けの機能と拡張機能がありますが、その中でも、データの保存と分析に対するドキュメント・アプローチとSQLアプローチの不一致を解決してくれるJSON Relational Dualityが最も気に入っています。
Kubernetes Engine、Dockerコンテナ、およびOracle Autonomous Databaseを使用したデータ中心型のアーキテクチャ・パターンで、フード・デリバリ・モバイル・アプリケーションを構築できます。最新のAppDevは、運用データやコード・イベントを生成するデータドリブン・マイクロサービスを意味し、人工知能(AI)または機械学習(あるいはその両方)が組み込まれています。Oracle Cloud Infrastructure(OCI)のコンバージド・データ・プラットフォームでは、テーブル、JSON、グラフ、空間データ型を含む、様々イベントやデータを処理するための新しいマイクロサービスを容易に作成できます。GrabDishアプリケーションの例では、terraformスクリプト、Kubernetesにより簡素化されたDevOps、およびサンプル・マイクロサービス・コードを使用して、包括的なマイクロサービス・プラットフォームを自動的にインスタンス化できる方法を示しています。
Eショップは、Oracle Shardingのデモを行うために開発されたWebベースのeコマース小売アプリケーション例です。Oracle Shardingは、超並列処理(MPP)アーキテクチャにおけるOLTPおよび分析機能を備え、グローバルに分散されたハイパースケール・コンバージド・データベースです。このようなアプリケーションを開発するには、通常、複数のテクノロジーと製品が必要となります。たとえば、JSONデータベース、テキスト索引アプリケーション、リレーショナル・データベース、および分析エンジンが必要となり、これらすべてによって、複数のデータ・ストア間でのデータの問合せが困難になります。この例では、構造化データと非構造化データ、リレーショナル、JSON、テキストなど、単一データベース・プラットフォームに格納された様々なタイプのデータを扱うOracle Sharding(3つのシャード)を使用しています。
このアプリケーション例には、Simple Oracle Document Access(SODA)APIや、リレーショナル問合せ、あいまい検索、先行入力、自由形式テキスト検索、センチメントに対応した、JSON、結合、トランザクション、およびACIDプロパティのテキスト検索といった複数の機能が含まれています。
Autonomous Databaseを使用することで、リスクの高い顧客にきめ細かい特典を提供できます。
最新のデータ・プラットフォームでは、ストレージ・エンジン(リレーショナル、オブジェクト・ストレージなど)とデータ型全体に対応できる分析機能が必要です。Oracle Autonomous Databaseでは、表形式、空間、グラフ、およびJSONデータを取得できるほか、これらの各データ型に対する独自のアルゴリズムが含まれています。架空のオンライン映画ストリーミング企業であるOracle MovieStreamを使って、構造化データと非構造化データの両方に対し、高度な各種分析を適用する方法について示しています。データ・レイクからのデータへのアクセス、表形式とJSONデータからの映画視聴インサイトの引出しや検出、機械学習を使用した解約の予測、空間分析を使用したオファーのローカライズ、グラフ・アルゴリズムの適用による派生コミュニティに基づいた映画の推奨などを行うことができます。
Oracle Autonomous Database、Oracle Container Registry、Kubernetesクラスタ、APIゲートウェイ、Helidonなどのクラウドネイティブ・サービスを使用することで、個人生産性アプリケーションを構築およびデプロイできます。
このアプリケーションは、Helidonマイクロサービス・フレームワークを使用して、JavaバックエンドへのRESTコールを行います。アプリケーションは、Dockerを使用してコンテナ化され、コンテナ・レジストリにデプロイされて、Kubernetesによって管理されます。JavaコードでREST APIが実装され、Autonomous Databaseに接続して変更が永続化されます。
ショッピング・カート・アプリケーションを使用すると、顧客はオンライン・ストアからいつでも製品またはサービスを選択、確認、および購入できます。
このサンプル・アプリケーションでは、Oracle Autonomous DatabaseとOracle APEXを使用して、ショッピング・カートを最初から作成します。まず、サンプル・データセットがインポートされ、ダッシュボード、製品、複数レポートなどのページを使用してアプリケーションが構築されます。その後、ショッピング・カートを管理するページを追加できます。
このアプリケーションを使用すると、オンライン・ストア管理者は製品、顧客、および店舗を管理できます。顧客は、製品を確認したりカートに追加したりして、最終的にチェックアウトに進むことができます。この方法を他のユース・ケースに適用すれば、顧客機能と管理者機能を使用して60分で初期アプリケーションを構築し、サイトへの変更を安全に管理できます。
Oracle Machine Learningは、データを分析し、組織内で最も価値の高いデータ(Oracle Database内の既存のエンタープライズ・データ)に適用するための強力なソリューションです。この例では、データ・プロフェッショナルがAPEXを使用して機械学習主導の保険アプリケーションを構築する方法を示しています。データの準備から開始し、モデルの導入を成功させて完了します。
サンプル保険アプリケーションでは、実際のアプリケーションでのモデル導入に関するDevOpsのベストプラクティスも扱っているため、開発者は強力なAI/MLに簡単にアクセスできます。
Javaは、No.1のプログラミング言語と開発プラットフォームです。コストの削減、開発期間の短縮、イノベーションの推進、アプリケーションサービスの向上を実現します。何百万人もの開発者が世界中で450億台を超えるJava Virtual Machineを稼働しているので、Javaは世界中の企業や開発者が真っ先に選択する開発プラットフォームの地位を堅持しています。
Pythonプログラミング言語は、現代のコンピュータ・サイエンスのすべての分野で積極的に使用されています。Pythonの開発は他のほとんどの言語と比べて効率が高いため、コードベースの変更を迅速に低コストで行う必要があるスタートアップ企業にとって一般的な選択肢となります。科学者や数学者によって使用されるほか、統計や複雑な計算を行うための強力な社内ライブラリとしても使用されます。Python python-oracledb driver for Oracle Databaseの機能を紹介します。 python-oracledbはOracle Databaseへのアクセスを可能にするPython拡張モジュールです。この拡張モジュールは、多数の追加といくつかの除外を含む、PythonデータベースAPI 2.0仕様に対応しています。
Oracle C Call Interface APIおよびOracle C++ Call Interface APIを使用すると、関数呼出しを使用してOracle Databaseにアクセスするアプリケーションを作成し、SQL文の実行およびデータ・アクセスのすべてのフェーズを制御できます。
Node.jsを使用すると、開発者はわかりやすいコードを使用して、高速でスケーラブルなネットワーク・アプリケーションを構築できます。Node.jsは、Windows OS、macOS、Linux、Unix、およびその他のオペレーティング・システムで実行できます。Raspberry PiやBeagleBone BlackなどのARMプロセッサがサポートされています。Node.jsは、シンプルなコードを使用して、高速でスケーラブルなネットワーク・アプリケーション(Webサーバーやモバイル・アプリケーションを強化する他のバックエンド・システムなど)を構築する必要がある開発者にとって理想的な選択肢となります。
Node.js用のnode-oracledbアドオンによって、Oracle Databaseアプリケーションのパフォーマンスが向上します。アプリケーションは、TypeScriptで記述することも、JavaScriptで直接記述することもできます。
オラクルの.NET開発コミュニティに登録しているメンバーは80万人を超えています。Oracle Data Provider for .NET(ODP.NET)は、開発者が.NETと.NET Frameworkに完全にアクセスできるようにしながら、Oracle Databaseの高可用性、パフォーマンス、およびセキュリティ機能を利用できるように最適化されています。Oracle Developer Tools for Visual Studio Code(VS Code)およびVisual Studioは、オンプレミスまたはクラウド上のOracle DatabaseのSQLおよびPL/SQLの編集、実行、デバッグのためのアドインです。
PL/SQLは、Oracle Databaseと効率的に連携するように設計された組み込み言語です。PL/SQLは、SQLにプロシージャ構造を追加し、Oracle Databaseでミッションクリティカルなアプリケーションを構築するための、より包括的なプログラミング言語ソリューションを実現します。
Reactは、Webやネイティブ・ユーザー・インターフェースを構築するためのJavaScriptライブラリです。サムネイル、いいねボタン、ビデオなどの個々のコンポーネントを使用してユーザー・インターフェースを構築できます。これらのコンポーネントを組み合わせることで、完全な画面、ページ、アプリケーションを形成することができます。Reactでページ全体を構築する必要はありません。既存のHTMLページにReactを統合し、必要な場所にインタラクティブなコンポーネントをレンダリングすることができます。
アプリケーションのバックエンドはJavaまたはNode.jsのいずれかを使用して開発することができ、最新のWebおよびモバイルアプリケーションのフルスタック開発が可能になります。Oracle Databaseは、React.jsを使用したフルスタック開発において、Java(Spring Bootなどのフレームワークを含む)とJavaScript(Node.jsとParseプラットフォーム)の両方のバックエンドをサポートしています。
マイクロサービスは最新のソフトウェアを開発するためのアーキテクチャ・アプローチです。それぞれのコアな機能(サービス)は個別に構築およびデプロイされる関連するビジネス・コンテキストを表します。マイクロサービスは、アプリケーションの構築とメンテナンスにアジリティを提供します。現在、アプリケーションの最新化はマイクロサービスと同義です。
小規模で自己完結型のすぐに実行できるアプリケーションを構築することで、コードの柔軟性と回復力を高めることができます。Spring Bootには、専用の機能が用意されているため、本番環境でマイクロサービスを大規模に構築および実行できます。Spring Bootは、マイクロサービスの分散した性質によりもたらされる課題を軽減するのに役立ちます。Spring Cloud Streamを使用すると、選択するメッセージング・プラットフォームに関係なく、イベントの使用と生成が容易になります。オラクルは、Oracle Backend for Spring Boot and Microservicesを提供しています。
Oracle Mobile Backend as a Service(MBaaS)は、開発者がParseプラットフォームのAPIや、Javascript、Flutter、Unityなどのさまざまな開発者向けSDKを使用して、最新のモバイル・アプリケーションを構築できるようにします。Oracle Databaseアダプタは、オラクルのコンバージド・データベースにおける豊富なアプリケーションおよびデータ・サービスを活用するために利用できます。MongoDBとPostgreSQLのアダプタは、Parseプラットフォームの一部としてすでに利用可能です。このプラットフォームは、概念実証デモにおいて、Google Firebase APIをエミュレートし、Google Firebaseサービス上で実行可能なサンプル・アプリケーションを提供します。また、parsefエミュレータ・ライブラリを用いて最小限の変更でOracle MBaaSプラットフォーム上でも実行できます。
エンタープライズ・アプリケーションの開発では、Webファーストのマイクロサービスとモバイルファーストの機能をアプリケーションで組み合わせていますが、Kubernetesで管理されたアプリケーション・コンテナやParseコンテナでマイクロサービスを実行できるため、JavaとJavaScriptの2つのアプリケーション・スタイルを簡単に収束することができます。
Helidonは、Nettyを利用した高速Webコア上で実行されるマイクロサービスを作成するためのJavaライブラリ群です。
簡単にテスト可能なモジュール式のマイクロサービスおよびサーバーレス・アプリケーションを構築するための、最新のJVMベースのフルスタック・フレームワークです。このフレームワークでは、アプリケーションの起動時間とメモリー使用量がコードベースのサイズにバインドされないため、起動時間が短縮され、スループットが高速になり、メモリー・フットプリントが最小限に抑えられます。
Oracle Transaction Manager for Microservicesは、分散トランザクションを可能にし、Kubernetesやその他の環境にデプロイされた多言語マイクロサービス間で一貫性を確保することにより、アプリケーションの開発と運用を簡素化します。このトランザクション・マネージャは、データベース外部で実行されるほか、異種データベースでの実行に適しています。また、MicroTXでは、Long Running Actions(LRA)およびTry- confirm- cancel(TCC)一貫性プロトコルがサポートされています。
リファレンス・アーキテクチャは設計の原則を使用することで、AI/ML、データドリブンの分析、およびメッセージング・プラットフォームを統合するWeb/モバイル・アプリケーション向けの最新のアプリケーション開発の中核的な要件を満たします。アーキテクチャは、イベントにリアルタイムで対応するイベントドリブンです。これらのアーキテクチャは、財務、小売、医療、エネルギー、および製造においてカスタムAppDevを推進できるほか、パッケージ化されたOracle Applicationsの拡張にも役立ちます。ほとんどのエンタープライズ・アプリケーションはデータ中心型であり、様々なデータがコンバージド・データベースでの処理に適しています。ローコードAppDevは、必要なテクノロジ層の数を圧縮し、Java、Python、JavaScriptなどの一般的な言語を使用するポリグロット・プログラミングとともにオプションとなっています。Kubernetesによって管理されるアプリケーションおよびデータベース・コンテナは、OCI、スタンドアロン環境、他の主要なパブリック・クラウドにデプロイできます。
推奨テクノロジによる意見集約型の選択肢は次に示すカテゴリに対応できますが、これらのカテゴリ間で設計の選択肢やベストプラクティスが重複している場合があります(ローコードで構築され、ビッグデータを処理するイベントドリブンのモバイル・アプリケーションなど)。アーキテクチャ・パターンの主なカテゴリとして、次の推奨事項について説明しています。
ローコード・プラットフォームを使用すると、従来のハンド・コーディングと比べて高速にエンタープライズ・アプリケーションを構築できます。これらのプラットフォームは、ビジネス関係者とのコラボレーションによるデータ・レポート/分析アプリケーションや適時アプリケーションの構築、SaaSアプリケーションの拡張、およびレガシー・アプリケーションの最新化に適しています。
Oracle APEXは、高速なデータ・アクセス、優れたパフォーマンス、およびスケーラビリティを実現する、データベースにカプセル化されたシンプルでメタデータドリブンなアーキテクチャを使用しています。
ブロックチェーン・アプリケーション・ビルダーは、スマート・コントラクトのスキャフォールド、ローカル・テスト、および自動化された導入をサポートするローコード開発およびテスト環境です。宣言型の仕様からスマート・コントラクトを自動的に生成でき、開発、テスト、および導入をサポートします。また、トークン・ライフサイクル全体に対するチェーン・コードの自動生成を行うことで、トークン化サポートも提供します。
Oracle Transactional Event Queues (TxEventQs)は、キューごとに複数のイベント・ストリームを持つ、高パフォーマンスのパーティション化された実装キューです。TxEventQは、Oracle Advanced Queuingのパーティション化されたインメモリー実装です。TxEventQキューはJMS仕様をサポートしており、Java、Python、Node.js、PL/SQL、C/C++、.NET、およびGoでアクセスできます。
XMLはHTMLと同様のスクリプト言語であり、主にデータの格納と転送に使用されます。Oracle XML Developer Kit(XDK)は、XMLを処理するC、C++、およびJavaソフトウェア・プログラムを構築およびデプロイできる多用途のコンポーネント・セットです。これらのコンポーネントは、ビジネス・ニーズに対応したXMLアプリケーションに組み込むことができます。
Oracle Databaseは、データベース内で実行される強力なアルゴリズムによって、機械学習を高速化でます。これにより、データを移動または再フォーマットすることなく、MLモデルを構築および実行できます。データ・サイエンティストは、Python、R、SQLなどのツールを活用して、ML機能をデータベース・アプリケーションに統合し、使いやすいダッシュボードで分析結果を提供できます。
Oracle REST Data Services APIを使用すると、Oracle REST Data Servicesユーザーは、使いやすいREST APIを使用して、Oracle Databaseの管理および監視操作を実行できます。ORDSデータベースAPIでは、プラガブル・データベース管理、データ・エクスポート、データベース・パフォーマンス・レビューなどのサービスが提供されます。
Oracle SQLは、データのアクセス、定義、維持を行うための、簡単で洗練された高性能アーキテクチャを提供します。オラクルとPHP、Java、Python、.NET、Hadoop、Node.js、Oracle APEXを用いてSQLを使用できます。
SQL*Plusは、すべてのOracle Database ServerまたはOracle Database Clientのインストールで提供されるインタラクティブなバッチ問合せツールです。SQL、PL/SQL、SQL*Plus、オペレーティング・システムのコマンドを入力および実行できるコマンドライン・ユーザー・インタフェースを提供します。
Oracle SQL Developerは、データベース開発タスクを容易にするための無料のグラフィカル・ツールです。SQL Developerを使用すると、データベース・オブジェクトの参照、SQL文およびSQLスクリプトの実行、PL/SQL文の編集とデバッグ、データの操作とエクスポート、レポートの表示と作成を行うことができます。Oracle Databasesと選択したサード・パーティ(Oracle以外)データベースの両方を接続して、メタデータとデータを表示し、これらのデータベースをOracleに移行できます。また、SQL Developerでは、Oracle Data Miner、Oracle OLAP、Oracle TimesTen In-Memory Database、SQL Developer Data Modeler(読取り専用)など、複数の関連テクノロジにインタフェースを統合できます。
Oracle SQL Developer Data Modelerは、メタデータを取得、モデル化、管理、および使用するための環境を提供するデータ・モデリングおよびデータベース設計ツールです。
Oracle SQLcl(Oracle SQL Developerコマンド・ライン)は、Oracle Database用のコマンド・ライン・インタフェースです。SQLclを使用すると、SQL文およびPL/SQL文をインタラクティブ・モードまたはバッチ・モードで実行できます。SQLclは、インライン編集、文の完了、コマンドの再呼出しを提供し、既存のSQL*Plusスクリプトもサポートします。
SQLの学習と共有を通じて、コードの記述を上達させることができます。これには、チュートリアル、サンプル・マクロ、問合せ計画の説明などが含まれます。ブラウザでコードを数秒で実行できます。
Oracle Database Actions(以前のSQL Developer Web)は、Oracle Databaseの開発、データ・ツール、管理、および監視機能を提供するWebベースのインタフェースです。Oracle Autonomous Databaseで使用できるほか、オンプレミスで使用するためのOracle REST Data Services(ORDS)ダウンロードにも含まれています。
Oracle Databaseは、JSONデータを操作するためのAPIを提供し、JSONデータのネイティブ格納をサポートします。これにより、JSONデータで分析、保護、他の操作を実行できます。
Oracle Spatial Databaseは、Oracle Databaseで使用できます。開発者とアナリストは、ロケーション・インテリジェンス分析とマッピング・サービスを簡単に開始することができます。これにより、地理情報システム(GIS)の担当者は、高度な地理空間アプリケーションを効率よくデプロイできます。Oracle Autonomous DatabaseおよびOracle Databaseの空間機能を使用して、さまざまな種類の地理空間データの管理、数百もの空間分析操作、および対話型のマッピング視覚化ツールを使用できます。
オラクルのグラフ・データベースは、オラクルのコンバージド・データベースで使用できます。グラフ・ユーザーは、2つの一般的なグラフ・モデル(プロパティ・グラフとRDFグラフ)を使用できます。開発者、アナリスト、データ・サイエンティストは、グラフ・クエリを使用してデータの関係を調査し、事前に構築されたグラフ・アルゴリズムを使用してグラフ分析を実行し、推奨事項の作成、コミュニティの検索、パターン照合、不正の特定、他の異常などのビジネス・インサイトを収集できます。Oracle Autonomous DatabaseのGraph Studioは、グラフの作成および問合せを容易にする、自動化されたフル・マネージド・グラフ・データ・インタフェースを提供します。高度なノートブックおよびインタラクティブな視覚化により、広範なグラフ分析およびグラフ問合せサポートを提供します。
Oracle XML Database(XML DB)では、XMLデータをネイティブに格納および操作できます。複雑なデータ分析とレポート、高いパフォーマンスとスケーラビリティ、データ保護、アクセス制御を提供します。
Oracle Database Operator for Kubernetes(別名OraOperator)は、Oracle Databasesの操作を自動化するために、カスタム・リソース定義およびコントローラを使用してKubernetes APIを拡張できます。Kubernetesは、継続的インテグレーションおよび継続的デリバリ(CI/CD)パイプラインを自動化するための最も一般的なユビキタス・オープン・ソース・フレームワークになりました。
アプリケーション開発(アプリケーション層、中間層、データ層など)のエンド・ツー・エンドの可観測性を指します。Grafanaを監視ダッシュボードとして使用し、指標、ログ、およびトレースがPrometheusで収集および分析されます。
Oracle Database Real Application Security Administration(RASADM)では、グラフィカル・ユーザー・インタフェースを使用してReal Application Securityデータ・セキュリティ・ポリシーを作成できます。
Real Application Securityでは、データベース・ユーザーではなく、アプリケーション・ユーザーのアプリケーション・セキュリティが管理されます。これにより、セキュリティの適用中にアプリケーション・ユーザーの識別情報を認識できます。Real Application Securityを使用すると、開発者はアプリケーションレベルのタスクのセキュリティを管理し、セキュリティをデータベース・レイヤーに段階的に返すことも、一度にすべてを返すこともできます。
Java Database Connectivity(JDBC)は、Javaアプリケーションをリレーショナル・データベースに接続するためのインタフェースを提供するJava標準です。Oracle JDBCは、標準のJDBCアプリケーション・プログラミング・インタフェース(API)のサポートに加えて、Oracle固有のデータ型をサポートし、Oracle Databaseに接続するJavaアプリケーションのパフォーマンスを向上させるための拡張機能も提供します。
コンバージド・データ・アーキテクチャ・パターンによって、アプリケーション・スタックの複数のディメンションが収束されるため、様々なデータ型に対して問合せをまとめて実行したり、AI/MLを使用して運用データと分析を操作したり、複数の言語で開発したり、複数のクラウドにデプロイしたりできます。DevOpsは、Kubernetesによって管理されるコンテナ化されたデータベース・アーキテクチャを使用することで、よりシンプルかつ簡単になります。
選択した言語でのプログラミングと、組込みのトランザクション・メッセージング/イベントにより、オラクルのコンバージド・データベース内の様々なデータに対するACIDトランザクションをサポートします。
指標とログが、アプリケーション層、中間層、データ層などのすべての階層で収集および分析され、開発者のためにすべて統合されるため、デバッグとパフォーマンス・チューニングが簡素化されます。
データ・セキュリティ評価、マスキング、および暗号化に対応したパスワードにボールトを使用することで、アプリケーション・ロールのセキュリティをKubernetesシークレットと統合します。
オラクル、デベロッパー・エバンジェリスト、Paul Parkinson
マイクロサービスでは、通信にイベントドリブン・アーキテクチャを使用することが増えつつあり、それに伴い、多くのデータドリブン・システムでも、なんらかの形式イベントソーシング・パターンが採用されています。これは、関連するサービスによって受信されるデータ変更を記述するイベントを介して、データ変更が送信される場合に使用されます。データはイベントやイベント・ソーシングから取得され、一般に、データの正しい情報源がイベント・ブローカに移動されます。これは、マイクロサービスの分離パラダイムに最適です。