このサイトはCookieを使用しています。サイトの使用を続けることで、Cookieの使用に同意することになります。
同意する
# 要望
あなたは、優秀なシステムエンジニアです。
{#業務要件}から、業務フローをPlantUMLのシーケンス図で生成してください
{#ルール}をよく守り、アプトプットを出力してください。
# ルール
-{#業務要件}から、participantと処理を要素分解して抽出すること
-participant
-[ここに入力]
-[ここに入力]
-[ここに入力]
# 業務要件
1. [ここに入力]
2. [ここに入力]
# 前提情報
[ここに入力]
# システム構成
ベースインフラ:[ここに入力]
# 評価・改善
作成後に、要件が明確でない点を質問してください。# 要望
あなたは、優秀なシステムエンジニアです。
{# 業務要件}から、業務フローをPlantUMLのシーケンス図を生成してください
{# ルール}をよく守り、アプトプットを出力してください。
# ルール
-{# 業務要件}から、participantと処理を要素分解して抽出すること
-participant
-ユーザー
-フロントエンド
-バックエンド
-DB
-メールサーバ(必要であれば)
-その他あれば
# 業務要件
プロジェクト管理システムです。
ユーザーは、プロジェクト登録画面を表示する。
初期表示時に、DBアクセスし初期値を取得する。
必要な情報を入力し、プロジェクト確認画面へ遷移する。この際DBアクセスは行わない。
プロジェクト確認画面から登録ボタンを押下すると、入力された情報をDBに登録しプロジェクト登録完了画面を表示する。
# システム構成
ベースインフラ:AWS
AWSサービスを適宜使用すること。
# 評価・改善
作成後に、要件が明確でない点を質問してください。# 要望
あなたは、優秀なシステムエンジニアです。
{# 業務要件}から、業務フローをPlantUMLのシーケンス図を生成してください
{# ルール}をよく守り、アプトプットを出力してください。
# ルール
-{# 業務要件}から、participantと処理を要素分解して抽出すること
-participant
-ユーザー
-フロントエンド
-バックエンド
-DB
-メールサーバ(必要であれば)
-その他あれば
# 業務要件
プロジェクト管理システムです。
ユーザーはプロジェクト検索画面へアクセスし、初期表示時に、DBアクセスし初期値を取得する。
ユーザーはプロジェクト情報を入力し検索する。
プロジェクト情報はDBに保存されているのでDBから取得する。
検索結果をプロジェクト検索画面に表示する。
検索結果に表示されたプロジェクトを1つ選択する。
選択されたプロジェクトIDを元にDBアクセスし、プロジェクト情報を返却する。
返却された値の一つである顧客情報IDを元にバックエンドの処理で顧客情報システムのAPIにアクセスし顧客情報を返却し、プロジェクト情報詳細画面を表示する。
# システム構成
ベースインフラ:AWS
AWSサービスを適宜使用すること。
# 評価・改善
作成後に、要件が明確でない点を質問してください。#要望
あなたは、優秀なシステムエンジニアです。
{# 業務要件}から、業務フローをPlantUMLのシーケンス図で生成してください
{# ルール}をよく守り、アプトプットを出力してください。
#ルール
-{# 業務要件}から、participantと処理を要素分解して抽出すること
-participant
-クライアントアプリ
-アプリサーバ
-通信会社(外部)
-金融機関(外部)
-その他あれば
# 業務要件
1. クライアントアプリから口座情報取得のリクエストをアプリサーバに送信する。
2. アプリサーバは認証サーバにアクセストークンをリクエストする。このとき、必要な認証情報を付加してリクエストを行う。
3. 認証サーバはアプリサーバからのリクエストを検証し、認証成功時にアクセストークンをアプリサーバに発行する。認証が失敗した場合はエラーレスポンスを返し、アプリサーバはクライアントアプリにエラー画面を表示する。
4. アプリサーバは取得したアクセストークンを使用して通信会社の口座情報取得APIを実行する。このとき、リクエスト情報を秘密鍵で署名し、署名とアクセストークンをリクエストヘッダに含めて送信する。
5. 通信会社はリクエストヘッダからアクセストークンを取得し、事前に設定された認証サーバの公開鍵を用いてアクセストークンの署名を検証する。公開鍵は通信会社内のセキュアなストレージに格納されており、公開鍵へのアクセスは制限された専用のサービスアカウントを通じて行う。
6. アクセストークンの検証が成功すれば、通信会社は金融機関へ口座情報取得APIを実行する。検証が失敗した場合は、アプリサーバに認証エラーを返却し、アプリサーバはクライアントアプリにエラー画面を表示する。
7. 金融機関は口座情報を通信会社に返却する。
8. 通信会社は口座情報をアプリサーバに返却する。
9. アプリサーバは口座情報をクライアントアプリに表示する。
# 前提情報
口座情報にアクセスする場合は金融機関にアクセスする必要がある
金融機関にアクセスするには通信会社を経由する必要がある。
アプリサーバと通信会社間の認証は、OAuth 2.0のJWT形式を利用する。
# システム構成
ベースインフラ:AWS
AWSサービスを適宜使用すること。
#評価・改善
作成後に、要件が明確でない点を質問してください。# 業務要件
プロジェクト管理システムです。
ユーザーは、プロジェクト登録画面を表示する。
初期表示時に、DBアクセスし初期値を取得する。
必要な情報を入力し、プロジェクト確認画面へ遷移する。この際DBアクセスは行わない。
プロジェクト確認画面から登録ボタンを押下すると、入力された情報をDBに登録しプロジェクト登録完了画面を表示する。
# 業務要件
1. クライアントアプリから口座情報取得のリクエストをアプリサーバに送信する。
2. アプリサーバは認証サーバにアクセストークンをリクエストする。このとき、必要な認証情報を付加してリクエストを行う。
3. 認証サーバはアプリサーバからのリクエストを検証し、認証成功時にアクセストークンをアプリサーバに発行する。認証が失敗した場合はエラーレスポンスを返し、アプリサーバはクライアントアプリにエラー画面を表示する。
4. アプリサーバは取得したアクセストークンを使用して通信会社の口座情報取得APIを実行する。このとき、リクエスト情報を秘密鍵で署名し、署名とアクセストークンをリクエストヘッダに含めて送信する。
5. 通信会社はリクエストヘッダからアクセストークンを取得し、事前に設定された認証サーバの公開鍵を用いてアクセストークンの署名を検証する。公開鍵は通信会社内のセキュアなストレージに格納されており、公開鍵へのアクセスは制限された専用のサービスアカウントを通じて行う。
6. アクセストークンの検証が成功すれば、通信会社は金融機関へ口座情報取得APIを実行する。検証が失敗した場合は、アプリサーバに認証エラーを返却し、アプリサーバはクライアントアプリにエラー画面を表示する。
7. 金融機関は口座情報を通信会社に返却する。
8. 通信会社は口座情報をアプリサーバに返却する。
9. アプリサーバは口座情報をクライアントアプリに表示する。
# 前提情報
口座情報にアクセスする場合は金融機関にアクセスする必要がある
金融機関にアクセスするには通信会社を経由する必要がある。
アプリサーバと通信会社間の認証は、OAuth 2.0のJWT形式を利用する。@startuml
' アクターを定義します
actor User
' システムの各コンポーネントを定義します
participant "Frontend Server" as FE
participant "Backend Server" as BE
database "Database" as DB
' ユーザーからフロントエンドサーバーへのリクエスト
User -> FE: Request page
' フロントエンドサーバーをアクティブにします
activate FE
' フロントエンドサーバーからバックエンドサーバーへの非同期データリクエスト
FE ->> BE: Get data asynchronously
' バックエンドサーバーをアクティブにします
activate BE
' データベースの可用性に基づく条件分岐
' データベースが利用可能な場合
alt Database is available
' データベースにデータを問い合わせます
BE -> DB: Query data
' データベースをアクティブにします
activate DB
' レコードごとにデータを取得するループ
loop for each record
DB -> BE: Record data
end
' データベースを非アクティブにします
deactivate DB
' データパッケージをフロントエンドサーバーに返します
BE -->> FE: Send data package asynchronously
' データベースがタイムアウトした場合
else Database timeout
' 利用可能なデータがないことを非同期で通知します
BE -->> FE: Notify no data available asynchronously
end
' バックエンドサーバーを非アクティブにします
deactivate BE
' フロントエンドサーバーからユーザーへの最終レスポンス
FE --> User: Response page with data
' フロントエンドサーバーを非アクティブにします
deactivate FE
' ユーザーのアクションに関する注記
note right of User: User sees the\nresponse on their browser.
@enduml