SAP コネクタとAzure サービスによるビジネスプロセスの合理化
このポストは、2018 年 5 月 23 日に投稿された Streamlining business processes with SAP connectors and Azure servicesの翻訳です。
クラウドへの移行はデジタルトランスフォーメーションの基盤となるものであり、特に、PaaS や SaaS による利点を活用することが重要です。我々はマイクロソフト社内の SAP のインフラストラクチャを Azure に移行しました。次のチャレンジはSAP と Azure のネイティブな接続を実現することです。この実現のために、我々はSAP Web Services PlatformとSAP ABAP SDK for Azure をデザインし、今までにないレベルの機能性と、ビジネスプロセスへの洞察を得ることができました。
今日、多くの企業がデジタルトランスフォーメーションの手段としてクラウドの重要性を認識しています。しかしその実現のためには、クラウドをストレージやバックアップといった付加価値の低いインフラストラクチャだけに使用するべきではありません。すべてのビジネスプロセスにおいて、クラウドの Platform As A Service(PaaS)や Software As A Service(PaaS)が活用できるかを検討すべきです。
テクノロジーに関する意思決定者として、クラウドサービスから最大限の価値を引き出すためにどのようなことができるでしょうか?例えば、Microsoft Azure のサブスクリプションをお持ちで、クリティカルなビジネスプロセスを SAP で運用していませんか?SAP 環境内にあるデータにアクセスすることでメリットを享受できるような、非 SAP のビジネスアプリケーションが Azure 上にありませんでしょうか?Azure 上のアプリケーションは SAP にある情報にどのようにアクセスしていますか?また、これらの2つの環境の統合に関するメリットや課題は何でしょうか?
これは、まさに我々がマイクロソフト社内においてやっていることです。マイクロソフトでは、IT 運用基盤―ビジネス上最も重要な SAP システムを含むーを、徐々に Azure 上に移行しました。このケーススタディにおいては、我々が SAP と Azure をネイティブに統合するために開発した、SAP Web Services Platform と SAP Advanced Business Application Programming (ABAP) software development kit (SDK) for Azure にフォーカスします。これらの新しいコネクタにより、SAP と Azure の統合のために必要な開発工数が大きく改善し、重要なビジネスプロセスの管理性が向上しました。この SAP 環境と Azure クラウドをネイティブに統合する SDK の活用や、独自の SAP Web Service Platform for Azure の開発は多くの企業にとっても参考になるものです。
SAP 環境と Azure の統合
マイクロソフトでは、我々自身のデジタルトランスフォーメーションを進めるために、インテリジェントクラウドおよびインテリジェントエッジを通して新たなビジネスバリューを創出するための様々な手段を探求しています。このための基盤となるのが、Microsoft Core Services Engineering and Operations’ (CSEO) という組織であり、すべての組織をAzureに移行する責務をおっています。ここ最近で我々が成し遂げたマイルストーンには、SAP 環境のクラウドへの移行や、モダンネットワークインフラによるデジタルトランスフォーメーションの推進(英語), 我々の社のネットワークの インターネット/ワイヤレスファースト(英語)への移行があります。
全 SAP インフラストラクチャの Azure への移行達成は、完全なクラウド化に向けての記念碑的な飛躍でしたが、我々はさらに Azure と SAP のより密接な統合を実現したいと考えました。社内または社外のパートナーがアプリケーションを我々のビジネスプロセスと今までにないほどに迅速かつ簡単に接続できるようにすることにより、多くのビジネスにおいてデジタルトランスフォーメーションを推進できると考えたのです。我々は SAP・Azure 間のコネクタと API を下記の目的のために開発する必要がありました。:
- 迅速なビジネスプロセス実現のための IT ランドスケープのシンプル化とモダナイズ
- 内部及び外部のパートナー両方のデジタルトランスフォーメーション推進のため、散在する点と点でつながっているソリューションからの 1 つの包括的なアーキテクチャソリューションへの合理化
- SAP に接続する Azure 開発者の労力と Azure との統合を行う SAP 開発者の労力のシンプル化
- Azure サービスでのリアルタイムデータの利用と Azure アプリケーションからの SAP の機能へのリアルタイムアクセスを可能に
SAP と Azure を統合するコネクタとプラットフォーム
我々は SAP 環境とAzure の統合のために、2 つの方法でアプローチしました:
- パートナーアプリケーションが一貫性のある、効率的な方法で SAP と統合できるようにするための SAP Web Services Platform for Azure の構築
- SAP ABAP 開発者が SAP システムと Azure のデータやツール、サービスとシームレスに連携するためのSAP ABAP SDK for Azure の作成
本稿では、これらの2つのインターフェースと、これらが 2 つの異なる開発者グループに対応するためにどのように設計されているかについて議論します。: Web services platform は Azure 開発者のためにあり、SDK は SAP 開発者のためのものです。マイクロソフト以外の企業でも、マイクロソフトが開発した SDK を自社のSAP 環境と Azure の接続のために利用できますし、同様の Web Services Platform と API を自社環境で構築することが可能です。
SAP Web Services Platform for Azure: Azure からの SAP へのアクセス
旧システムにおける課題
旧環境においては、Azure から SAP に接続する必要のある内部および外部のパートナーアプリケーションは様々な異なるポイントツーポイントのソリューションに取り組む必要がありました。図1 にみられるように、このアーキテクチャは内部用、エクストラネット用、クラウドベースのパートナーの 3 つの異なるパターンに基づくもので、データにアクセスするために複数のネットワークホップが必要となるミドルウェアの利用が必要でした。
図1. 旧環境では SAP データへのアクセスが必要なパートナーアプリケーションは内部、エクストラネット、クラウドベースのロケーション用の 3 つの異なるパターンからの 1 つないしは複数の方法での実装が必要であり、結果として複雑で複数のネットワークホップを余儀なくされていました。
この複雑な環境では 3 つのすべてのパターンを同時にサポートする必要があり、多くのリソースが必要でした。内部およびオンプレミスアプリケーション用と、エクストラネットにホストされるアプリケーション用に二重でサービスが必要となるため、インフラストラクチャのコストも高くなります。ミドルウェアに依存しているため、セキュリティおよびミドルウェアに関連するコンポーネントのメンテナンスのための工数も継続的な課題でした。
この複雑なポイントツーポイントのソリューションの混在は数年にわたり増幅したため、我々はアプリケーションが Azure と SAP と一貫性のある方法で相互運用できるようにする全く新しいプラットフォームに移管することにしました。このプラットフォームは必要なリソースを削減し、3 つの異なるパターンを 1 つに収束させることで環境をシンプル化する、パートナーアプリケーションのための包括的なソリューションとなるものでした。このソリューションは運用性の向上のため、Application Insight や API Management、 Traffic Manager などの Azure のツールやサービスにアクセスするためにも必要となるものでした。
我々が構築したもの
これらの要件の実現と、インテリジェントクラウドとインテリジェントエッジによるデジタルトランスフォーメーションの推進のために、我々は SAP .NET Connector を使用し、Azure 上に Restful サービスとしてデプロイされる次世代の SAP Web Services Platform for Azure を構築しました。図2にあるように、新たなソリューションはEnterprise Hybrid Connectivity(EHC) デザインパターンに基づいており、SAP へのアクセスのために Azure AD(Active Directory)と Kerberos 認証を使用しています。この新たなインターフェースによりパートナーアプリケーションは、Azure、エクストラネット、オンプレミスどこにあるかに関係なく、1 つの方法で SAP との統合ができるようになりました。
図2. Azure とネイティブに統合し、 SAP データに接続でき、 Azure のフルスタックのツール群と連携できる新しい SAP Web Services Platform
新たなプラットフォーム利用によるメリット
新たな SAP Web Services Platform for Azure により、Azure 開発者はすべての SAPシステム-ERP,マスターデータガバナンス(MDG)、サプライチェーンマネージメント(SCM)-にリアルタイムに接続するための単一のサービスが利用可能になります。インフラストラクチャの複雑性が改善し、複数のソリューションのサポートが不必要になったことで、関連コストが削減されました。
このプラットフォームでは、Azure のパワーを活用することで、高可用性、効率性、ディザスタリカバリといったクリティカルな業務システムでの企業の要件に対応することができます。 図2にあるように、このプラットフォームではすべての Azure のツール群を活用できます。オンプレミスのシステムでは利用できなかったものです。このプラットフォームにより、我々は下記を利用可能となりました。
- Azure Traffic Manager: トラフィックの地理的な場所に基づく地理分散の対応
- Azure API Management: 一貫した、効率的な API 群の管理。API 群のライブラリ管理の改善だけでなく、サブスクリプションごとの API アクセスの制御が可能となります。
- Azure Key Vault : パスワードや接続文字列などの非常に機密性の高いデータの保存と管理
- Azure Application Insights : システム全体の正常性に関するニアリアルタイムデータの収集。このツールはテレメトリを収集し、ロギングと監査の機能により監視の作業を支援してくれます。このツールはまた、できるだけ早く潜在的な問題を特定することで、運用をよりプロアクティブにすることを可能にし、問題に対する平均解決時間(MTTR)を短縮できます。
SAP ABAP SDK for Azure: SAP と Azure の接続
クラウドへの重要なビジネスプロセスの移行の一環として、我が社の SAP 開発チームは Azure サービスに SAP からデータを送信できるようにする必要がありましたが、効率的な方法がありませんでした。その時点では、ネイティブな統合のメカニズムがなかったのです。Azure は様々な SDK や、Java、.NET、Node JS、PHP、そして Python といったプログラム言語のためのツールをサポートしていましたが、SAP 独自のプログラム言語である ABAP で利用できる SDK はありませんでした。
旧システムの課題
ABAP 用の SDK 無しでは、SAP 開発者には Azure サービスを SAP から利用するための効率的な方法がありませんでした。加えて、SQL Server のストレージや Azure Blob サービス以外に SAP と Azure のクラウドサービスを容易に統合するための仕組みがありませんでした。ネイティブな統合がないため、 2つの環境間でデータをやり取りするためのミドルウェアを組み込む必要がありました。開発者はミドルウェア使用に起因する複数のネットワークホップを伴う複数のポイントツーポイントのソリューションを開発し下記のための大量のカスタムコーディングを行う必要がありました:
認証 Azure にはクラウドサービスとしての洗練された認証と認可の手順があり、コードの正確な実装が必要でした。
データ形式 データの形式は Azure と SAP で全く異なります。また、システムやサービス間でも異なります。開発者は、SAP から Azure へのデータの転送を行う際、2 つのメッセージ形式の翻訳のためのコーディングが必要となり Azure EventHub 用のカスタムコードや、Azure Key Vault 用の別のカスタムコードも必要でした。
エンドポイントアクセスAzure にはデータ送信先となる REST エンドポイントがあります。しかしこのためのプログラミングは非常に困難であり、特に不慣れな環境で ABAP 開発者が取り組む場合顕著です。一つの REST エンドポイントのためコーディングには、場合によっては 1000 行のコードが必要になることもありました。
図3.SDK のリリース前には、 SAP 開発者はミドルウェアに依存したポイントツーポイントのソリューションの構築が必要であり、 Azure のサービスやツール、データにアクセスするための大量のカスタムコードが必要でした。
これらの作業は追加のコーディングやライセンス、メンテナンス要件につながり、以前より複雑で費用のかかる環境になってしまいました。SAP 開発者は、Azureサービスへの接続に伴う複雑性を抽象化する、ABAP 言語でネイティブに SAP とAzure を接続できる機能が必要でした。
我々が構築したもの
CSEO は最近、Azure と SAP の統合をシンプル化する SAP ABAP SDK for Azure をリリースしました。この SDK は SAP 特有の ABAP 言語をサポートしており、ABAP 開発者は SAP システムと最新の Azure ツールやサービス、データに直接統合するために、使い慣れたプログラム言語を利用できます。
図4 新しい ABAP SDK for Azure により、 SAP 開発者は使い慣れたプログラム言語である ABAP を使用して簡単に、かつセキュアに Azure のツールやサービス、データにアクセスできます。
新しい SDK 使用のメリット
新たな ABAP SDK for Azure は Azure のためのコーディングに伴う複雑性を抽象化することで、SAP 開発者の Azure へのアクセスをシンプルかつ標準化します。SDK では Azure クラウドサービスにより提供される秘密鍵の安全性を確保するための業界標準に準拠しています。Azure の認証、認可、共有アクセストークン、その他のセキュリティ手順の実装についてもサポートします。
ABAP SDK for Azure により、SAP 開発者は下記が可能となりました:
- 開発期間の短縮 使い慣れた ABAP を使って SAP 環境と Azure の統合が可能に
- システムパフォーマンスの向上 SDK により、Azure サービスへのニアリアルタイムのデータプッシュが可能に
- セキュリティの強化 SAP の機能とデータがパートナーやカスタムアプリケーション内でセキュアに利用されることを確実に
- Azureクラウド利用の促進 SAP 上の重要なビジネスプロセスを Azure を使用してより効率的に
教訓とベストプラクティス
マイクロソフトが直面し、おそらく他の企業も直面する複雑な問題を解決するためのソリューションの構築は、非常に難しいものでした。我々はここで我々が学び、他の企業が SAP と Azure 環境を接続する際に必要となるであろうベストプラクティスについて共有します。
- 必要となるインターフェースの決定 自社の環境で最も有効な手段を検討します。社内の独自 API 構築? SAP ABAP SDK for Azure の利用? 両方採用? 最適解はビジネスニーズによります。
- Azure アプリケーションと SAP の通信を可能とする Web サービスの開発 もしすでに様々な Azure サービスを使用していて、SAP 環境の様々なビジネスプロセスでニアリアルタイムでの .Net アプリケーション連携が必要なのであれば、SAP ビジネスプロセス上に SAP web services platform を使用して API を構築することを検討しましょう。プラットフォームにより Azure のアプリケーションと SAP が統合できるだけでなく、Azure のネイティブツールやサービスを活用することで、ビジネスプロセスの管理を大幅に強化できます。
- SAP 上のビジネスプロセスと Azure の接続のために SDK を利用 SAP 上のビジネスプロセスで Azure の Key Vault にアクセスしたり、支払いステータスなどの SAP 上のイベントを Azure EventHub に発行したいといった場合は、ABAP 開発者は新しい SDK を使うことで素早くセキュアにこれらの機能に接続できます。
- ソリューション構築の際は、データの場所を考慮しましょう 大企業では複数の地理的ロケーションをまたがって運営されることが珍しくありません。システム連携を考慮する場合、システムがどこに配置されるか、アーキテクチャデザインの最終化の段階で、どのリージョンを選択するかについて確認しましょう。例えば、ある Azure リージョンに SAP システムがあるとして、Web Services Platform for Azure を同じリージョン(または少なくとも、近いリージョン)にデプロイするようにしましょう。
- 適切な開発チームの組成 Web platform for Azure で SAP との接続や、Azure との統合のための SAP SDK での作業においては、両方のエキスパートが必要となります。推奨されるリソースは下記の通りです。:
- SAP configurator. 全体のビジネスプロセスの設計を定義し、ソリューションのためのビジネス要件の決定の際にはビジネスサイドとの連携の主担当となります。 SAP configurator は API 開発者の最初の開発の対象 (環境及びビジネスプロセス)を決める際に手助けし、どの環境のどの SAP データにアクセスし、テストに利用するかを特定します。
- SAP ABAP 開発者 SAP configurator と協力し、ビジネスプロセスと検証、ロジックを最終化します。
- SAP セキュリティチーム Platform 上で SAP に対してビジネスプロセスが実行される際、SAP との接続を行います。このチームはビジネスプロセスで必要となるユーザ認証と認可について手助けします。
- SAP Basis SAP 管理者は Basis と協力し、インフラストラクチャ、パフォーマンス、サービス全体の正常性を管理します。
- .NET ソフトウェアAzure エンジニア Azure の .NET 部分のエキスパートであり、SAP ビジネスプロセスを Web API でラップします。
- ネットワーク /IT チーム SAP と Azure 間での接続を確立する場合に発生しうるネットワークに関する問題の解決を支援します。
- 新たなインターフェースの結果と以前の結果の比較 もし古いオンプレミス上の SAP 用 Web サービスを新たに Web Services Platform を使って開発した API に入れ替える場合は、旧システムの結果と比較して機能の検証をすることで、正確性とパフォーマンスを確認できます。例えば、古いサービスをコールした時に、どのような結果が返ってきて、どのくらい時間がかかりますか?こういったデータをキャプチャして、新しいサービスと比較しましょう。同じ結果を同程度の時間で取得できたでしょうか、それともより短い時間になりましたでしょうか?
結論
Microsoft Core Services Engineering 及び Operation による SAP 環境の Azure への移行は現時点における最も大きく最も複雑なワークロードの Azure への移行と位置付けられます。新たなデジタルビジネスを支援するための会社の変革の途上において、 我々は IaaS から PaaS、SaaS までクラウドから得られる価値に大きなオポチュニティを発見しています。
この記事で記載した SAP Web Services platform と SAP ABAP SDK for Azure は Azure と SAP の開発者にシステム間をネイティブに接続する合理的な方法と、今までにないレベルの機能性と、ビジネスプロセスへの洞察をもたらします。 我々は下記の用途で SAP ABAP SDK for Azure を使っています。:
- SAP 上のビジネスプロセスを Azure Key Vault, Azure EventHub 等の Azure 製品と直接統合する場合
- Azure EventHub へのニアリアルタイムの通知の送信。SAP システムでのステータス更新を受け取るために関心のあるユーザがサブスクライブできるようにしています。このアラートの仕組みはビジネスサイドと、関連する CSEO 内の関係者に透過的に提供されます。
- 最新のセキュリティ標準を使用し、データ交換全体をセキュアにすることをサポート
加えて、SAP Web Services Platform for Azure で我々は下記のことが実現できます:
- 一貫した、スケーラブルで可用性が高く、パフォーマンスの高い Azure web API 層により、SAP のビジネス機能を内部および外部のビジネスパートナーに開示
- システム及びサービスの問題への迅速な対応。ビルトインアラートを受けており、洞察を得るための調査を行うことで、素早く問題を解決
- Azure のツールで利用可能な様々なシステムの正常性指標を活用し、潜在的な問題がビジネスに影響を与える前に、プロアクティブに対応
我々の次のステップ
我々はこの新しいインターフェースの能力を強化し続けます。我々が探求しているものには下記が含まれます:
- SAP ABAP SDK for Azure:
- より広い Azure サービスのサポート拡大 Azure SDK for ABAP ライブラリをより多くの Azure クラウドサービスをサポートするように拡張
- 機能強化 他の AzureSDK に含まれる機能の追加により、ライブラリを強化
- SDK 改善のためのその他の機会を探求 HANA や S/4HAN、SAP Cloud Platform を含むその他の SAP 製品とともに使えるよう SDK の拡張を検討しています
- SAP Web Services Platform for Azure:
- ダッシュボード システム全体のステータスと正常性やパフォーマンスについて、誰でも確認でき、クリックだけで詳細にドリルダウンできる、直感的なダッシュボード経由でアクセス可能な自動レポートの構築
- テレメトリデータへの Azure ML の適用 Azure Machine Learning (Azure ML)を組み込んで、AI を適用してデータからバイアスを除去し、製品の改善に役立つフィードバックのレートを向上
- プラットフォーム改善のためのその他の機会を探求 SAP HANA や S/4HAN、SAP Cloud Platform を含むその他の SAP 製品とともに使えるようプラットフォームの拡張を検討しています
皆様の次のステップ
もしまだであれば、Azure の無料アカウントを作成して、是非皆様の SAP のクラウドへの旅を開始しましょう。または、あなたの組織がマイクロソフトと同様に、デジタルトランスフォーメーションへの旅路にあり、SAP と Azure への投資効果の最大化の方法を模索しているのであれば、SAP と Azure の開発チームに新しい SDK と Web Services Platform を確認していただくことを推奨します。これらのインターフェースにより、SAP ABAP 開発者はすぐに SDK を使って Azure にアクセスするコーディングを開始できます。また、Azure 開発者は Web Services Platform により迅速にあなたの環境とネイティブにやり取りする API を構築できます。
更なる情報
もしあなたの組織に Azure サブスクリプションがあり、SAP システムを使用しているのであれば、SAP ABAP SDK for Azure を使って連携させたり SAP Web Services Platform for Azure を構築して、両者から更なる価値を引き出しましょう。下記のリソースでこれらのテクノロジーに関する情報を提供しています。
Microsoft IT Showcase
SAP ABAP SDK for Azure Redesigning network topology for modern app architecture(英語)(この記事では CSEO が Web Services Platform を構築した際に使用した Enterprise Hybrid Connectivity Service について記載しています。)
Redesign for the cloud: Building a cloud-first network at Microsoft(英語)
Hello Azure: マイクロソフトはいかに SAP をクラウドに移行したか Strategies for migrating SAP systems to Microsoft Azure(英語)
Building an agile and trusted SAP environment on Microsoft Azure(英語)
この記事の翻訳は Microsoft Global Black Belt SAP on Azure TSP の池本が担当しました。
© 2018 Microsoft Corporation. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.