-----
2025年5月15日木曜日
いろいろなデータ構造
-----
Benefits of AWS in Modern Cloud
公開されている
Benefits of AWS in Modern Cloud
のポイントを読んでみたいと思います。
概要
AWSの利点を示すもの。
ビジネスのあらゆるタスクに対して、オンデマンドで対応でき、
サービスの品質を改善し、コストが削減できる。
イントロ
AWSの利点は、多い。
・データ保護
・コンプライアンス
・品質
・フレキシビリティ
・コスト
・分散したストレージ
・オートスケーリング
・可用性
・データの暗号化
・高いパフォーマンス
などがある。
データ保護
データ保護のため、AWSは次のようなアプローチをとる。
・サーバやデバイス上のデータの暗号化やハッシュ化
・データ暗号化のためのNISTの利用
・暗号化キーは、RAMに残らない
暗号化/復号化のキーは、必要な時にリアルタイムに
生成され、毎回破棄される。
・キャッシュやログに、センシティブなデータが残らない
アセットマネジメント
認めらたレベルでのクラウドリソースへのアクセスの規制
・ユーザやリソース、IPアドレス、時間などで、
ユーザやグループのアクセスをコントロールできる。
・利用している認証やアクセス管理システムとの統合
AWSへのリソースへのアクセスと統合できる
・コンプライアンス
コンプライアンスは、検査や監査を通じて行うものではなく、
毎日の活動として行うもの。
次のような認証、認可、セッション管理のアプローチは、
コンプライアンスを証明し、ビジネスリスクを最小限に抑える。
〇 強いパスワード・ポリシー
〇 アプリケーションがオフラインで動作する必要がある場合でも、
パスワードやセッションを検証する
〇 登録時のCAPTCHAの利用
〇 ユニークなセッショントークンの利用
〇 アルゴリズムの利用が認められた暗号化/ハッシュ
〇 2要素認証
〇 不活性のセッションのタイムアウト
〇 センシティブなトランザクションに対するサーバ認証
〇 バックエンドが受け取ったすべてのメッセージのValidate 、
〇 暗号化されているセッションのID
など
・柔軟性
スケールアップやスケールダウンが容易にできる。
従業員は、Webベースのデバイスから、どこにいても
ファイルにアクセスできる。
インターネット上でドキュメント等を共有することで、協同を支援する。
クラウドテクノロジーは、モバイルを支援する。
起業のモバイル管理ツールを提供し、モバイルの紛失、データの喪失、
弱いパスワードなどのリスクから企業を守る。
AWSを使えば、ビジネス要求に応じて
リソースのスケールアップも、スケールダウンも容易にできる。
フレキシビリティは、クラウドを使う上で、keyとなる要因である。
・コスト効果
クラウドコンピューティングの最も大きな利点の1つは、コストの削減。
インフラや設備、ソフトウェアのコストを削減できる。
2025年5月12日月曜日
A Review of Serverless Use Cases and their Characteristics
公開されている
A Review of Serverless Use Cases and their Characteristics
のキモ部分を読んで、Serverless を勉強してみたいと思います。
間違いなどあったら、ごめんなさい。
1.イントロダクション
サーバレスコンピューティングは、オペレーションに関することを
クラウドプロバイダーへ任せることで、ビジネスロジックへ集中できるようにするもの。
AWS Lambda、Azure Functions 、Google Cloud Functions 、
IBM Cloud Functionsなどがある。
サーバレスコンピューティングは、Functionのディプロイ、
リソースのアロケーション、オートスケーリングなどをサポートしている。
さらに次のような洗練された機能も提供されている。
(a) 複雑な関数の集合体やワークフロー全体のサポート
(b) イベント処理やメッセージングモデル
(c) スケジューリング
(d) ファイルのストレージやデータベースのセットアップ
(e) ストリーミングや地域性を加味したdeploy 、バージョニングやロギング
これらの機能は、サーバレスアプリケーションのライフサイクル全体を
サポートするモノであり、サーバレスのアプリケーションへ導入する速度を上げる。
サーバレスアプリケーションの特性や振る舞いには、分かっていないことも多い。
サーバレスのユースケース、どのアプリケーションが適しているのか
どんなテクノロジーが成功しているのか、ユースケースの特色、適切なガイドライン
などである。
なぜ、サーバレスで作るのか、サーバレスが適する分野、構築の方法などに関する
研究は少なく、また、矛盾しているものもある。
サーバレスアプリケーションで、コストが劇的に下がって例もあれば、
伝統的なホストコンピュータに比べて、増加したシナリオもある。
データ指向のアプリケーションに向いている例もあれば、適さないという例もある。
遅延が許されないシステムは、サーバレスより、コンテナの方が良い、という例もある。
主要な発見事項
(1) 一般的な特性
AWSが、サーバレスのプラットフォームの中では支配的。
Webサービスが多く、半数以上は、ビジネスクリティカルなアプリケーション
(2) アプリケーションの特性
82%のユースケースでは、5つか、それより少ない数の関数からなるアプリケーション
67%の関数は、実行時間がミリセコンドか、セコンドの実行時間。
JavaScriptとPythonが最も使われているプログラミング言語。
クラウドストレージやクラウドデータベース、APIゲートウェイなどと
組み合わせて使われる
3.要求の特性
オペレーションコストの削減、オペレーションのeffortの削減、
スケーラビリティの確保、パフォーマンスの獲得
が、Serverlessを採用する理由
4.ワークロード特性
81%のケースが、バーストなワークロード。
予測できないワークロードへ対応できることが、 Serverlessを採用する理由
5.ワークフローの特性
ユースケースの31%はスケーラブルなものであったが、
たいていのワークフローは、単純な構造で、小さく、短い。
2025年5月10日土曜日
論文 Quantitative Survey on Extreme Programming Projects
公開されている
「Quantitative Survey on Extrem Programming Projects」
のキモです。
間違っていたら、ごめんなさい。
Extrem Programming Projectsに関して、2001年に、アンケートを行った結果である。
・ほとんどのプロジェクトは、成功した
・開発者の100%が、適用できるプロジェクトなら、XPを再利用したい、と答えた
・顧客の不在の頻度が上がることが、高いリスクとなる
・精神的な障害が、XPの問題となる。
ペアプログラミングができない、など
・最も有用なXPの要素は、コード共有、継続的なインテグレーション、オンサイト顧客
2025年5月9日金曜日
Cookieによるセッション管理の手順
1.サーバからクライアントに、Cookieをおくり、保存するように指示を出す
2.クライアントが同じサーバにリクエストを出す際は、クライアントが自動的に、Cookieの値を入れて送信する
3.サーバは、Cookieの値からクライアントを識別する
2025年5月8日木曜日
LOW CODE & NO CODE SOFTWARE DEVELOPMENT OF THE FUTURE
LOW CODE & NO CODE SOFTWARE DEVELOPMENT OF THE FUTURE
のキモの部分を読んで、勉強していみたいと思います。
イントロ
ソフトウェア開発ライフサイクルの中で、最もポピュラーなものは、
アジャイルである。
アジャイルは、イテレーティブで、インクリメンタルな方法で、
素早く製品をリリースすることで、顧客満足を目指す。
アジャイルメソッドでは、ソフトウェア・プロダクトを、インクリメンタルで
管理可能な小さな部分に分割する。
1~3週間のイテレーションで、部分を完成させていく。
アジャイルは、次のフローで行われる。
(1) プランニング
(2) 要件の分析
(3) デザイン
(4) コーディング
(5) ユニットテスト
(6) 受入テスト
LOW CODE & NO CODEを用いた開発
LOW CODE、NO CODEは、ビジュアルなソフトウェア開発環境である。
ボタンのような部品をドラッグ&ドロップすることで、ソフトウェアを作り上げ、
コードは、全くないか、あるいは、ごく少ない。
そのため、ソフトウェアやWebサイトを迅速に開発することができる。
結論
〇 LOW CODE & NO CODEは、未来の話ではなく、すでに現実に使われている
しかし、ソフトウェア開発のメインストリームになるまでには、到っていない
〇 LOW CODE & NO CODEは、SDLC全体を置き換えるものではない。
しかし、時間やリソースの削減によりSDLCを改善することは、間違いない。
〇 コードを書くことが少なるなるため、学習曲線が低くなり、生産性も上がる。
〇 ソフトウェア開発者以外のデザイナー、アーキテクト、テスターなどにも
影響を与える。
2025年5月7日水曜日
Modularity-Oriented Refactoring
公開されている
Modularity-Oriented Refactoring
の気になる部分を読んで勉ツールは強してみたいと思います。
概要
リファクタリングは、オブジェクト指向設計やプログラミングにおいて、
広く使われるテクニックではあるが、
定量的な評価やsmellの発見、リファクタリングの手法の選択、
変更の適切性等をサポートするツールは、不足している。
モジュラリティに基づく方法を提案する。
1. イントロ
リファクタリングは、外部の振る舞いを変えることなく、
内部の構造を変更するソフトウェアのプロセス。
4つのタスクからなる。
(1) 変更する箇所を特定する
(2) 変更する方法を選択する
(3)外部への振る舞いが変更されていないことを確認する
(4)内部の構造が効果的に変更されていることを確認する
外部への振る舞いが保存されていることに対しては、
自動のレグレッションテストが解になる。
他の問題は、簡単ではない。
アルゴリズムの考え方
総当たりアルゴリズム すべての場合をためし、解を求める。 近似アルゴリズム ・正解に近い解を探す ・正解との誤差がある範囲におさまると保証されているものを 精度保証付アルゴリズムという。 ・精度の保証のないアルゴリズムを、発見的手法(ヒューリスティック) という。
-
STS4との組み合わせです。 1. 以下のサイトから、Junitのサンプルをダウンロードしました。 https://github.com/junit-team/junit5-samples 2. ダウンロードしたものを、展開しました。 3. ダウンロードしたものの中から、 j...
-
1. NETのインストール こちらから、プラットフォームに合うインストーラーをダウンロードしました。 https://dotnet.microsoft.com/ja-jp/download 今回は、.NET8のSDKにしました。 ダウンロードしたファイルを実行して、全てデフォルト...
-
公開されている A study of MVC - A software Design Pattern for Web のキモの部分を読んで勉強してみたいと思います。 Model - View - Controllerのデザインパターンは、Javaの Web開発用フレームワークで数...