1. ホーム >
  2. ブログ ~人材育成最前線~

富士通ラーニングメディアがお届けする ~人材育成最前線~ 人材育成に関するコラムを掲載中!

みなさん、こんにちは。
富士通ラーニングメディア・第二ラーニングサービス部の七條です。Webアプリケーション開発技術の研修を担当しています。
春この時期は、プログラミング関連で多くの新入社員研修を担当しています。
今回は、スマホネイティブ世代といわれる新入社員にプログラミングを習得させるには!?
というテーマのお話です。

 

講師画像

七條 怜子(しちじょう れいこ)

Webアプリケーション開発技術の研修を担当しています。
これまで、新入社員向け研修を多く担当し、多くの新入社員の方々と接してきました。
4歳の娘がおり、休日は、すべり台と砂遊び三昧です。

 

とある会社の新入社員(S)と入社10年目の先輩社員(A)の会話です。イメージ図

先輩社員A:
Sさん、プログラミングの学習は順調?

 

 

イメージ図新入社員S:
研修で講義を聞けばなんとなく分かるんですけど、いざプログラミングしようとすると、なかなか手が動かないんです。プログラミングは初めてですし...

 

 

先輩社員A:イメージ図
自宅のパソコンに開発環境を構築して、
復習してみたらどう?

 

 

イメージ図

新入社員S:
え?私、パソコンなんて持ってないですよ。

 

先輩社員A:イメージ図
え!?パソコン持ってないの??

 

 

 

イメージ図

新入社員S:
はい。だってスマホがあれば十分じゃないですか。
必要ないですよ。パソコン持ってる友達のほうが少ないですよ。

 

先輩社員A:イメージ図
困ったな...

 

 

 

 

こんなやり取りを耳にしたことはありませんか?
スマートフォンの普及により、若い世代では、自宅にパソコンを持っていないという人が増えてきました。
そんな方々に、おすすめする習得法?のひとつに"ドリル"があります。
そうです!小学生のころ勉強したあの"ドリル"です。
先輩社員Aさんのように、プログラミングを学んだあと、自宅のパソコンに開発環境を構築して、復習するという方もいらっしゃるでしょう。
実はプログラミングを紙に書くことは、一度習得した言語の知識を復習したり、定着させるのに向いているのです。

パソコンを持っていないという方も、紙の"ドリル"であれば、問題ないですね。

プログラミング習得に「プログラマー早期育成ドリル」シリーズをおすすめします。ラインナップはJava、VB.NET、C♯、C言語の4言語です。
※C言語は、2017年4月中にリリース予定です。

詳細は、こちらをご覧ください!

「プログラマー早期育成ドリル」シリーズ

「自宅にPCがないから自主学習できないんです」はもうおしまいです!!

 

 

今回のコラムのような皆様のスキルアップに役立つ情報や、お得なキャンペーン、無料セミナーなどのご案内情報を、メールマガジン(毎週木曜)で配信しています。
この機会にぜひご登録ください。

メールマガジン登録へ

 

いわゆる大手企業・成熟した組織に属しながら、組織の論理や過去の常識に囚われず、0から100を生み出し続けている人材(「0→100人材」)の行動特性や思考のクセをつぶさにヒアリングし、分析しようという試み「サラリーマン100選」に、当社の城能 雅也が掲載されました。

丸かじりセミナー

城能は、ITエンジニア教育の分野で実績を重ね、日本国内ではまだ数がほとんどなかったフューチャーセンターの先駆けといえる、共創の場『CO☆PIT』を2010年に提供イノベーション人材のための場を創りました。
現在は、個人と組織の可能性を最大化させるメソッドの考案に挑んでいます。

詳細は「サラリーマン100選」のサイトをご覧ください。

>> サラリーマン100選 (外部サイトへ)

<関連情報>

富士通ラーニングメディアでは、共創の場『CO☆PIT』を使って、イノベーションを創発するための企業間コラボレーションや、新しいビジネスモデルの創出に向け、互いに切磋琢磨し、個と組織が成長するためのコースをご用意しています。

>> 共創の場『CO☆PIT』のご紹介

新しいビジネスの匂いを探り当てる「問題発見力」を持ち、ビジネスを立ち上げる「イノベーション実行力」のある人材の育成を支援するコース

新しいビジネスやサービス・商品を企画、創出するための実践的なワークショップ
→「Business Co-Creating Workshop(BCCワークショップ)」

一人ひとりが意欲を持って主体的に取り組み、常に本音で語り、自由な発想で意見を戦わせることで、最善の意思決定、最善の行動がとれる、実行力のある人材の育成を支援するコース

みなさん、こんにちは。富士通ラーニングメディアの橋本です。

本シリーズのコラムも今回で最終回です。
最終回は、松井に代わって橋本が「イマドキの業務システムはフロントエンドも重要です!」についてご紹介します。

ちなみに、タイトルにもある「フロントエンド」とは、どういう意味でしょうか。
フロントエンドとは「Webシステムを構成する要素の中で、ユーザーと直接データのやり取りを行うユーザーインターフェイス(UI)部分」を指します。


ではなぜイマドキの業務システムはフロントエンドが必要なのでしょうか。その前に、本シリーズの第1回目、第2回目のコラムでの宿題の答えから紐解いていきましょう。

~本コラムでご紹介する内容~
・クライアントサイドでユーザーインターフェイスを構築するには?
・魅力的なフロントエンドを作成するには?

第二ラーニングサービス部 橋本 亜希(はしもと あき)

講師画像コーポレート部門、研修プロマネ部門での業務経験を経て、現在はJava,PHP,C#,VB.NET等と、HTML,CSS,JavaScript等を組み合わせたWebアプリケーション開発コースを担当。
休日はオシャレなカフェや雑貨屋さんを新規開拓し、キラキラしたものやネコ系動物に癒されている。けれど、一番心ときめくものはドラゴン○ール。


実はコラムを執筆するのは2度目。ご興味のある方は、以下コラムも覗いてみてください。

【今求められる人材】知らないとソンする!?
 ~Webアプリ担当講師が語る"jQueryのメリット"とは~

本シリーズの第1回、第2回のコラムをとおして、イマドキの業務システムは、REST APIベースで開発することにより、「サーバサイドからは『画面(HTML)』ではなく『データ(JSONなど)』が返却される」という特徴、および「シンプルな設計で分散アプリケーションを実現できる」、「クライアントサイドとサーバサイドの分離をすることにより、メンテナンス性向上や各サイドの分業化や並行開発がしやすくする」などのメリットがあることをご説明しました。

<時代はAPIファースト!? イマドキの業務システム開発ことはじめ>
 第1回 なぜ流行っている?「REST API」 ~アプリもインフラ作業の自動化もAPIで!~
 第2回 REST APIベースの業務システム開発(Java編)
 第3回 イマドキの業務システムはフロントエンドも重要です!


では、サーバサイドから渡されたJSONデータを使用して、クライアントサイドでユーザーインターフェイスを構築するにはどうすれば良いでしょうか。

<クライアントサイドでユーザーインターフェイスを構築するには?>

ズバリ!クライアントサイドをMVCアーキテクチャーに従って実装します。

※MVCアーキテクチャーとは:
モデル(Model)、ビュー(View)、コントローラー(Controller)を分離するための設計モデル。モデルでは、アプリケーションにおけるデータ構造とデータが持つビジネスルールを定義する。ビューでは、業務データを表示し、利用者とのユーザーインターフェイスとなる。コントローラーでは、アプリケーションの処理を実行する。モデルが持つ業務処理を起動し、結果をビューとして返す。MVCの目的は、開発する部品の役割を明確にすることにより、保守性を高め、再利用を促進することである

従来の業務システムは、サーバサイドレンダリングとよばれ、サーバサイドでHTMLを生成し、生成されたHTMLをクライアントに返却していました。

サーバサイドレンダリング

しかしREST APIベースの業務システムでは、クライアントサイドレンダリングとよばれ、サーバサイドではHTMLを生成せず、サーバから返却されたJSONなどのデータをJavaScriptが受け取ります。
JavaScriptからHTMLを操作することにより、Webページを部分更新し、サーバから受け取ったJSONなどのデータをWebページに表示します。


クライアントサイドレンダリングを実現する際、1つのソースコードにイベント処理、サーバ通信、HTMLの操作を実装するとソースコードの見通しが悪くなります。そのため、クライアントサイド(JavaScript)をMVCアーキテクチャーに従って実装することにより、見通しの良いソースコードを作成します。

クライアントサイドレンダリング

クライアントサイドMVCを実現する代表的なフレームワークとして、AngularJS、Reactなどがあります。

AngularJS、React

どうでしょうか。REST APIベースで業務システムを開発する場合、クライアントサイドはどのように実装すべきか、イメージできましたでしょうか。

さて、ここで1つ注意すべきことがあります。
たしかにREST APIベースで業務システムを開発することによって、冒頭でご説明したとおり「シンプルな設計で分散アプリケーションを実現できる」、「クライアントサイドとサーバサイドの分離をすることにより、メンテナンス性向上や各サイドの分業化や並行開発がしやすくする」などのメリットを業務システムの提供者は得ることができます。

では、業務システムを使用するユーザーはどうでしょうか。
最終的に表示されたフロントエンドがユーザーにとって使いにくい見栄えだった場合、ユーザーは業務システムの使用を敬遠し、必要最低限しか業務システムを使用しません
業務システムは、業務効率化など、システム導入本来の目的を達成して初めて提供した意味を成します。
そのためには、今後の業務システムは「使いにくい」は論外、「使いやすい」は当たり前、「使いたい」とユーザーに思って貰えるフロントエンドで提供する必要があります。

フロントエンド

では、ユーザーに「使いたい」と思って貰えるようなフロントエンドはどうやって作成すれば良いでしょうか。

<魅力的なフロントエンドを作成するには?>

ターゲットとなるユーザーのスペック(職業、性別、年齢層など)ではなく、そこから一歩踏み込んだユーザーのパーソナリティ(行動パターン、好きなこと、嫌いなこと、休日の過ごし方など)に着目してフロントエンドを考える必要があります。
たとえば、機能重視のユーザーとデザイン重視のユーザーでは、システムに求めるフロントエンドは異なります。


そのために、まず、業務システムの発注者からターゲットとなるユーザーのスペックを入手して終わるのではなく、実際にユーザーのところに足を運び、現状の業務システムに対する思いなどをインタビューしましょう。
そこから、メインターゲットとなるユーザーのペルソナ(ユーザーのイメージを共通認識するデザインツール。ターゲットとすべきユーザーの具体的パーソナリティを設定する)を作成しましょう。

1ペルソナの作成ペルソナの作成

次に、設定したペルソナであれば、どのような場合、どういう流れで業務システムを使用するのか、カスタマージャーニーマップ(ユーザーの行動文脈を旅のプロセスに見立てて可視化し、把握する手法および、そのために作成した図)を作成します。

2.カスタマージャーニーマップの作成
カスタマージャーニーマップの作成
次に、作成したカスタマージャーニーマップから、今回の業務システムで必要となる機能を構造化シナリオ(ユーザーの価値とビジネスの価値、ユーザーが行う作業、ユーザーが行う操作を記述した図)として洗い出し、ユーザーインターフェイスに落とし込みます。

3.構造化シナリオの作成構造化シナリオの作成

構造化シナリオを基に作成したユーザーインターフェイスがユーザーの望むものと一致するか、再度ユーザーのもとへ足を運び、レビューを行います。
レビューとユーザーインターフェイスの修正を繰り返すことにより、ユーザーにとって「使いたい」フロントエンドを作成できます。

いかがでしたでしょうか。
サーバサイドと比較し、今まで軽視されがちだったフロントエンドですが、業務システム導入の目的を達成するために、いかにフロントエンドが大切か、ご理解いただけましたでしょうか。

本シリーズのコラムは以上で終了です。
もしフロントエンドにご興味を持たれた場合は、HTMLやJavaScriptなどの基本文法はご存じな方を対象に
フロントエンドエンジニアのためのWebアプリケーション開発実践 (UJS53L)」というコースをご提供しております。
是非、コース概要をご確認ください。

<時代はAPIファースト!? イマドキの業務システム開発ことはじめ>
 第1回 なぜ流行っている?「REST API」 ~アプリもインフラ作業の自動化もAPIで!~
 第2回 REST APIベースの業務システム開発(Java編)
 第3回 イマドキの業務システムはフロントエンドも重要です!

 

今回のコラムのような皆様のスキルアップに役立つ情報や、お得なキャンペーン、無料セミナーなどのご案内情報を、メールマガジン(毎週木曜)で配信しています。
この機会にぜひご登録ください。

メールマガジン登録へ

 

2017年2月23日、ヴイエムウェア株式会社が主催する、日本におけるVMware Education Partner AwardとVCI (VMware Certified Instructor/VMware 認定インストラクター) Awardが発表され、当社はEducation Partner Special Award 2016」を受賞しました。

当社が開催するVMware認定トレーニングコースを、多くの方がご受講されたことなどが評価され、今回の受賞となりました。

>> ヴイエムウェア社の紹介ページ (ヴイエムウェア社サイトへ)

受賞の風景

当社は2009年からVMware Education Partnerとして、VMware認定トレーニングコースを当社ラーニングセンター(東京、名古屋、大阪)やお客様先で開催し、2016年1月までに富士通グループを含め、1,500名以上の方にご受講いただき、高い評価をいただいています。
また、ヴイエムウェア社が提供するクラウド上の実習環境を通じて実習できるサービス「VMware Lab Connect」もご提供しています。

今後もVMware認定トレーニングをはじめ、お客様のビジネスに貢献できる人材育成・研修サービスをご提供してまいります。

■関連リンク

みなさん、こんにちは。富士通ラーニングメディアでMicrosoftテクノロジーの講師をしている今井です。

今回は、データベースを取り巻く現状と最新のSQL Serverについてご紹介します。

2017年3月現在、SQL Server は2016 SP1が最新バージョンとして提供されています。
SQL Serverは、おおむね2年に一度新しいバージョンが提供されてきていますが、SQL Server 2008 やSQL Server 2008 R2のサポートが、『2019年7月9日』で終了する予定となっています。

そのため、そろそろ新しいバージョンへの移行などを検討される方も増えているのではないでしょうか。ただし、新しいSQL Serverへの移行といっても、ただデータを乗せ換えるだけではもったいないのです。

第二ラーニングサービス部 今井 敏裕(いまい としひろ)講師画像

Microsoft認定トレーナーとして多くのトレーニングを担当。
Windows Server(Active Directory 、Hyper-V、クラスタなど)、Windowsクライアント、SQL Server(~2016)、Microsoft Azure、Lync Serverなどのトレーニングを開発、実施してきた。
わかりやすく、受講後すぐにアクションにつながるトレーニングを心がけ、講師評価及びコース評価などで社内表彰を4年連続獲得。
2児の父として家庭との両立を図りながらも、たまに青いサイリウムを手に、某ライブに参戦している。

<[分析]という作業とSQL Server>

昨今のデータベースは、これまで以上の役割を担うようになってきていますね。
例えば、[分析]。アナリティクスやビジネスインテリジェンスと言ったりすることもあります。
これは、データをためるだけでなく、それを分析し、様々な戦略に役立てることを目的としています。
移行にあたってはこういった役割が求められることもあるかもしれませんね。

ただし、大まかに以下の様な条件を考えておく必要があります。データベースでの分析作業に求められること

ネコなんだか大変そう・・・。



そう、「大変」なんです。[分析]と聞くだけでも大変そうなのに、そもそものデータベース側の準備も大変です。

今までの業務の処理もやりつつ、「分析も」となると、「別のサーバーを作ります」とか「負荷的に無理です」とか「夜間に分析させて翌朝レポート出します」といったことになりやすいわけです。

こう言った条件に対して、MicrosoftがSQL Serverを通じて出した答えは・・・

インメモリOLTPの採用、計算に強いインデックス採用、SSDアプライアンスの提供、Operational Analytics

といった部分を段階的に強化しました。
これらは、高価なハードウェアに頼らなくても、より効率的に速く分析処理ができるようソフトウェアレベルで強力に支援してくれます。
また、チューニング済みのハードウェア[SQL Server SSD Appliance]では、SSDを採用することでハードウェアとソフトウェアの両面から高速化を強力に支援。小規模から大規模まで多様なラインナップが用意されています。

ネコ実は某有名Webサイトも、裏ではSQL Server SSD Appliance支えているみたいよ!


これら4つはあくまで代表的な強化点ですが、各バージョンで段階的に採用されてきました。
SQL Server 2016では、それらが最適化され、実用に耐えるものに進化してきています。

また、何より大事なのが、

ネコ既存のデータに追加で構成できるものも多い!

ということです。
従来のデータベースやテーブルの構成に追加することで、単純に高速化できる処理も多かったりします。
例えば、単純な集計や計算処理もカラムストアインデックスを使うことで大幅に高速化できる場合もあります。

<「速い速い」はどれだけ速い?>

カラムストアインデックスやインメモリOLTP(最適化)などは、データへの各種処理の高速化・高効率化に貢献する機能の1つですが、一言で「速い」といってもどのくらい速いのでしょうか。その結果の一端をお見せしましょう。

・カラムストアインデックスの動作確認
 約1000万件のデータが入っているテーブルに対してGROUP BYで集計をかけた場合です。

カラムストアインデックスの動作確認

明確な数字はライセンス規約上掲載できませんが、クラスタ化インデックスだけの場合に比べ、性能が大幅に改善しているだけでなく、サイズもコンパクトになっていることがわかります。

・インメモリOLTPの動作確認
 100万件のデータ追加時の実行時間を簡易的に測定した場合です。
 (ネイティブコンパイルストアドプロシージャ未使用)

インメモリOLTPの動作確認

データ追加において大幅に高速化していることがわかります。

これらの動作確認は、同じハードウェア、OS、SQL Serverなどすべて同一条件にて実施しています。
もちろん、前提条件、適材適所などしっかり確認は必要ですが、新しい技術を使えば一定レベルの性能向上が見込めるわけです。

ネコ新しい選択肢として考えることもできるね!



実は、上記の動作結果は弊社で提供している実習の一部を抜粋したものです。
実習では実際の実行時間をワークシートに記録しそれを持ち帰ることができるため、SQL Server 2016導入時のサンプルとして活用いただけます。

 SQL Server 2016 新機能と差分 (UCD31L) ※1日コース

また、以下のSwayコンテンツでは本研修の紹介も行っています。

SQL Server 2016 新機能と差分 コース紹介 -Microsoft Sway-


皆様のご受講を心よりお待ちしております。

【トピック】 「MCP教科書 Windows 10」を執筆しました!書籍表紙

Microsoft認定トレーナーとしてお客様から高い評価をいただいている今井が、このたび「MCP教科書 Windows 10(試験番号:70-697)スピードマスター問題集(翔泳社出版)」を執筆し、3月2日に出版されました。
さらに、4月8日(土)に開催される「丸かじりセミナー(無料、主催:株式会社翔泳社、日本マイクロソフト株式会社)」で講師を担当します。

この度、Microsoft認定トレーナーである当社講師の 岡崎、今井が執筆しました「MCP教科書 Windows 10(試験番号:70-697)スピードマスター問題集(翔泳社出版)」が販売開始となりました。

2017年4月8日(土)には、同書籍を執筆した講師による「丸かじりセミナー(無料、主催:株式会社翔泳社、日本マイクロソフト株式会社)」を開催いたします。

>> 丸かじりセミナー詳細 (翔泳社サイトへ)

丸かじりセミナーMicrosoft認定資格プログラム(MCP)の受験を検討されている方は、この機会をぜひご活用ください。

 

書籍表紙【本書の特徴】

  • Windows 10試験(試験番号:70-697)に完全対応
  • 解くだけでみるみる合格力が付く、分野別問題+模擬試験1回分=249問を掲載
  • MCP教育に定評のある著者による書き下ろし
  • 良問ぞろいで、「これだけ」で合格できる
  • "問題→解説"の順に、テンポよく読み進められる
  • 図や表が多く、初心者でも安心
  • 問題の重要度がひと目でわかるアイコン付

【本書の構成】

1章:IDの管理
2章:デスクトップとデバイスの展開の計画
3章:Microsoft Intune デバイス管理ソリューションの計画と実装
4章:ネットワークの構成
5章:記憶域の構成
6章:データアクセスと保護の管理
7章:リモートアクセスの管理r
8章:アプリの管理
9章:更新と回復の管理


【執筆者の紹介】

第二ラーニングサービス部 岡崎 佑治(おかざき ゆうじ)講師画像

Windows NTの時代より、マイクロソフト製品のトレーニングを担当。
Windows Server(2012/2016)を中心とし、Windowsクライアント、SQL Server、Azure、Hyper-V、Active Directory、VDIなど各テクノロジーのトレーニングを開発、実施してきた。
過去にはCitrix認定トレーナーとしての活動や、インフラSEとしての業務経験もあり、その経験を生かしたトレーニングを心がけている。
自宅に帰れば、車2台と大型バイク、ロードバイクに囲まれる極度の乗り物好き。

第二ラーニングサービス部 今井 敏裕(いまい としひろ)講師画像

Microsoft認定トレーナーとして多くのトレーニングを担当。
Windows Server(Active Directory 、Hyper-V、クラスタなど)、Windowsクライアント、SQL Server(~2016)、Microsoft Azure、Lync Serverなどのトレーニングを開発、実施してきた。
わかりやすく、受講後すぐにアクションにつながるトレーニングを心がけ、講師評価及びコース評価などで社内表彰を4年連続獲得。
2児の父として家庭との両立を図りながらも、たまに青いサイリウムを手に、某ライブに参戦している。

3月9日のコラムでは、SQL Serverにも詳しい今井による、「~迫る!SQL Server 2008サポート終了!~ 講師が教える新バージョン移行へのヒント」をお届けしています。
こちらもぜひ、ご覧ください!

みなさん、こんにちは。富士通ラーニングメディアの松井です。

現在、Javaによる業務システムは大きな変革期にあります。
1つ目の潮流は、REST APIの利活用や提供のニーズが高まっていることです。モバイルアプリケーションのバックエンドやシステム間連携を容易にするため、REST APIを提供し、レスポンスをJSONなどのデータで返すアーキテクチャに注目が集まっています。
2つ目の潮流は、これまで使用されてきたオープンソースのフレームワーク(StrutsやSeaser2)がEOL(End of Life:サポート終了)となったことです。このため、Java EEの標準技術に移行する需要が高まっています

「REST API」をキーワードに、「イマドキの業務システム開発」を読み解いていく本シリーズの第2回では、「どうやってREST APIベースの業務システムを開発するの?」という疑問について、Java EE 7という最新の標準フレームワークを使用した開発方法をご紹介していきます。
REST APIベースの業務システムの詳細については、前回のコラムをご覧ください。

<時代はAPIファースト!? イマドキの業務システム開発ことはじめ>
 第1回 なぜ流行っている?「REST API」 ~アプリもインフラ作業の自動化もAPIで!~
 第2回 REST APIベースの業務システム開発(Java編)
 第3回 イマドキの業務システムはフロントエンドも重要です!

第二ラーニングサービス部 松井 正徳(まつい まさのり)講師画像

主にJavaやHTML/CSS/JavaScriptなどのWebアプリケーション開発コースを担当。
最近はRuby、Pythonなどのスクリプト言語やLinux、クラウドなどインフラ技術も勉強中。
アプリケーション開発のオールマイティSEとなるべき、精進の毎日。

プライベートでは、セーリングと日本酒を愛する自由人。
日本酒の今年の目標は、新潟越後の93酒蔵の利き酒を全制覇すること。

<JavaEEとはなにか?>

Java EE(Java Platform, Enterprise Edition)とは、サーバサイド向けアプリケーションに必要な機能の仕様の集合(API群)です。

2000年代のJavaのアプリケーション開発においては、Java EEの前身であるJ2EEの開発生産性の低さもあり、オープンソースのフレームワークが台頭していました。ただし、オープンソースのフレームワークは、必ずしも長期的にサポートされるとはかぎらない点に注意が必要です。現に、代表的なオープンソースフレームワークであったStruts1.xとSeasar2は、EOL(End of Life)となっています。
オープンソースフレームワークの諸技術を取り込み、Java EEの最新バージョンでは標準技術のみで高い生産性で堅牢な業務システムを開発可能です。また、後方互換性も十分に考慮されており、長期的な安定性を見込むことができます。

Java EEは仕様の集合であり、アプリケーションの各機能を実現する仕様が定義されています。以下に、REST APIベースの業務システムを開発するにあたり、必要となる仕様を示します。

・JAX-RS(Java API for RESTful Web Services)
REST API を開発するための Java EE標準仕様。
・JPA(Java Persistence API)
データの永続化やO/Rマッピングの標準を規定した Java EE標準仕様。
・JTA(Java Transaction API)
トランザクション管理に関する Java EE標準仕様。
・CDI(Contexts and Dependency Injection)
DI(Dependency Injection : 依存性の注入)やAOP(Aspect Oriented Programming : アスペクト指向プログラミング)を実現するための Java EE標準仕様。
・Bean Validation
JavaBeansに対してバリデーション(入力された値に対する妥当性の検証)を行うためのJava EE標準仕様。

REST API呼び出し

上図は、Java EEでREST APIベースの業務システムを開発する場合に使用する各要素技術をマッピングしたものです。
クライアントからリクエストがあると、Bean Validation による入力値検証後、JAX-RSで実装したREST APIで定義されたリクエストに応じた処理を実行し、データベースへの問い合わせについてはJPA/JTAを通じて行われます。また、一般的に業務システムは役割ごとのレイヤーに分割して構成しますが、メンテナンス性を向上させるため、CDIによってレイヤー間を疎結合に保ちます。

<JAX-RSによるREST APIの実装例>

JavaによるREST API開発の中核となるのはJAX-RSです。

Java EE 7の最注目の仕様の一つで、JAX-RSのバージョンが2.0に上がり、RESTクライアント(REST APIを呼び出すクライアント側のプログラムを実装する仕組み)やフィルタ(毎回のリクエスト/レスポンス時に共通的に実行する処理を定義する仕組み)など様々な機能が追加されました。

REST APIベースの業務システムとして、あるショッピングサイトを例に考えてみましょう。
Webサイトからの注文だけでなく、将来はモバイルアプリケーションからの注文も、同じシステムで受け付けられるようにREST APIを定義したとします。では、以下のような注文情報の取得に関するREST APIがあった場合のJAX-RSでの実装例をみてみましょう。

REST API呼び出し

JAX-RSでは、REST APIで提供する処理を定義するクラス(リソースクラス)を、アノテーション(注)を付与することで作成します。
リソースクラスには、リクエスト(HTTPメソッドおよびURLパターン)に対応したリソースメソッドを定義します。

①リソースクラスにアクセスするリソースURL(/flmmarket/api/orders/1)を@Pathアノテーションで指定
②注文情報はJSONで返却するので、@Producesアノテーションでレスポンスのデータ形式をJSONに指定
③リクエストのHTTPメソッドはGETなので、対応するメソッドに@GETアノテーションを指定
④リクエストのURLパターン(/flmmarket/api/orders/1)に対応し、検索条件の注文番号を指定する orderid のパスパラメータを取得できるように、@Pathアノテーションを設定
⑤検索条件の注文番号を指定する orderid のパスパラメータを取得できるように、@PathParamアノテーションを設定
⑥クライアントへのレスポンスは、各種設定をしたResponseクラスのオブジェクトを戻り値として指定

→ok()メソッドを呼び出すことで、HTTPステータスコード:200(成功)を設定
→ok()メソッドの引数に検索結果を表すorderを指定。レスポンス時に、JavaオブジェクトはJSONへと変換

(注)クラスやメソッドなどに対してメタデータとして付加情報を設定する機能

普段からプログラムに慣れ親しんでいる方なら、JAX-RSのソースコードを初見でも直感的に理解していただきやすいのではないでしょうか。
HTTPメソッドのGETの例をご紹介しましたが、POSTやPUT、DELETEなども同様に定義可能です。

<Java EEを効率的に習得するには>

ここまでJAX-RSを簡単にご紹介してきましたが、実際の業務システムでは、データベース連携やレイヤー間を疎結合に保つ仕組みが必要です。また、Java EEによるREST APIベースの業務システムの全体像や各要素技術の連携方法を理解することも重要です。

Java EEを習得するには、サンプルアプリケーションを動かし、実際にプログラミングすることが一番です。
ただ、独学だと1つ1つの要素技術は理解できても、要素技術の連携や技術の適用場面について体系的に理解するのは難しいかもしれません。

・REST APIを作ったけど、入力値の検証やエラーのときはどうレスポンスを返せばいいの?
・REST APIのアクセスログをとりたいけど、どうしよう?
・データベースのテーブルと返却するJSONの構造って、同じでいいのかな?

そんなときは、体系的な知識を短期集中で学習できる講習会がオススメです。

JavaEEによるRESTfulアプリケーション開発(UFN57L):
     2017年3月27-29日開催!

この講習会では、Java EEの全体像や各要素技術を学習したあと、総合演習を行います。総合演習では、API仕様書をインプットとして、サーバサイドで各要素技術が連携したシステムを開発します。3日間をとおして、実践的にJava EEによるREST APIベースの業務システムの開発スキルを習得できます。API仕様書例

今回はサーバサイドのREST API構築方法を中心にみてきました。
では、サーバサイドから渡されたJSONデータを使用して、クライアントサイドでUIを構築するにはどうすればいいのでしょうか。また、魅力なUIはどのような流れでつくればいいのでしょうか。
第3回目は、「イマドキの業務システムはフロントエンドも重要です!」についてご紹介します。次回もお楽しみに!

今回のコラムでREST APIに興味を持った方は、是非「REST API」のコースマップもご覧ください。

 

今回のコラムのような皆様のスキルアップに役立つ情報や、お得なキャンペーン、無料セミナーなどのご案内情報を、メールマガジン(毎週木曜)で配信しています。
この機会にぜひご登録ください。

メールマガジン登録へ

 

みなさん、こんにちは。富士通ラーニングメディアの松井です。

早速ですが、イマドキの業務システムには、なにが求められ、どのように対応していかなければならないのでしょうか。 
私なりに3つの課題に整理してみました。

  • 課題1: PCだけでなく、モバイルでも業務システムを利用できるようにする必要がある。
  • 課題2: ビジネス環境の変化に対して、俊敏に対応する必要がある。
  • 課題3: 自社内のシステムだけでなく、他社のシステムやさまざまなWebサービスと連携できる必要がある。

どうでしょう、いずれも心当たりのある方や、今まさに取り組まれている方などもいるのではないでしょうか。
これら3つの課題を達成するにあたり、近年REST APIが着目されてきています。
今回から3回にわたって、「REST API」をキーワードに、「イマドキの業務システム開発」を読み解いていきます。

<時代はAPIファースト!? イマドキの業務システム開発ことはじめ>
 第1回 なぜ流行っている?「REST API」 ~アプリもインフラ作業の自動化もAPIで!~
 第2回 REST APIベースの業務システム開発(Java編)
 第3回 イマドキの業務システムはフロントエンドも重要です!

初回は、「REST APIってそもそもなに?」「REST APIを使うとなにが嬉しいの?」という疑問を解消していきます。

第二ラーニングサービス部 松井 正徳(まつい まさのり)講師画像

主にJavaやHTML/CSS/JavaScriptなどのWebアプリケーション開発コースを担当。
最近はRuby、Pythonなどのスクリプト言語やLinux、クラウドなどインフラ技術も勉強中。
アプリケーション開発のオールマイティSEとなるべき、精進の毎日。

プライベートでは、セーリングと日本酒を愛する自由人。
日本酒の今年の目標は、新潟越後の93酒蔵の利き酒を全制覇すること。

<REST APIとはなにか?>

「REST API」とは、APIを呼び出すことでWebを通じてさまざまなサービスを利用できる仕組みのことです。

ここで出てくるREST(Representational State Transfer)とは、2000 年頃に Roy Fielding 氏が提唱した、分散アプリケーション構築においてコンポーネント間連携に適したサービスを構築する際の設計原則の集合のことです。
主に以下の4つ特徴があります。

・すべてのリソースは汎用的な構文で一意に識別される
・セッションなどの状態管理を行わない
・情報を操作する命令はあらかじめ定義および共有されている
・情報の内部に、別の情報や状態へのリンクを含めることができる

ポイントはRESTの設計原則がWeb技術と親和性が高いということです。

REST API以前にもXMLなどを使用したシステム間連携の仕組みはありましたが、厳密な仕様に基づいた実装が必要で、独自の通信プロトコルを使用する必要があるなど、開発には多くの労力がいりました。

それに対し、REST APIはシンプルな設計で分散アプリケーションを実現できることや、すでに普及していたWebのHTTP通信でやりとりをできる手軽さ から人気となりました。
このとき、REST APIでのクライアント/サーバ間のデータの受け渡しには、軽量なデータ形式であるJSONが使用されることが一般的です。
JSONはJavaやC#など主要言語で標準的にサポートされているため、使用言語が違うシステム間の連携も容易に行えます。

REST API呼び出し

<REST APIを使うメリットとは? ~システム開発者編~>

REST APIベースの業務システムにすると、モバイルアプリケーションへの対応や、外部システムとの連携が従来よりも容易になります。
外部システムとの連携におけるREST APIの優位性は、前項の「REST APIとはなにか?」で述べていますので、ここではモバイルアプリケーションへの対応を中心にみていきます。

まずは、従来のWeb業務システムとREST APIベースの業務システムを比較してみましょう。
2つの大きな違いは「返却するリソース」です。返却するリソースの違いの図

従来のWeb業務システムは、ユーザーのリクエストに対して、「画面(HTML)」を返却します。ユーザーは各デバイスからブラウザを使用し、画面を通してデータの参照や機能の利用を行います。
しかし、モバイルのように低速かつ不安定な通信環境で操作する場合、データ量が多い画面だとユーザーの待機時間が増加したり、操作性が低くなったりしてしまいます。
一方、REST APIベースの業務システムは、「データのみ(JSONなど)」を返却します。データのみであれば軽量かつ加工しやすく、クライアント側はブラウザに限らず外部システムやモバイルアプリケーションでも扱うことができます。

さらに、JSONなどのデータのみを返却するアーキテクチャは、「画面制御を行うクライアントサイド」と「業務データの保存・更新や業務処理を行うサーバサイド」との分離を促進します。クライアントサイドとサーバサイドの分離は、メンテナンス性向上や各サイドの分業化、並行開発のしやすさを促します。

例えば、一般的に改修要望が多い画面部分の修正について、従来のWeb業務システムでは画面の生成と業務処理とが密接に関連しやすく、改修負荷が大きくなりがちでした。
一方、REST APIベースの業務システムの場合、クライアントサイドの修正がサーバサイドに影響しなくなります。

<REST APIを使うメリットとは? ~インフラエンジニア編~>

近年の業務システム構築のスピードアップを語る上で、はずすことができないのはクラウドサービスです。

インフラを「自前でもつ」形態から、クラウドサービスで「必要な分を必要なだけ必要なときリソースを利用する」形態が主流になりつつあります。
クラウドサービスには、クラウド上のインフラ環境の構築・運用管理を制御する各種REST APIが提供されています。
そのため、REST APIを利用するスクリプトを用意することで、従来の手動での構築作業に比べ、大幅な工数削減や作業ミスによる障害発生の防止を実現できます。

<REST APIの今後>

Webを通じて広く公開されたREST API同士を組み合わせることで、新たなサービスを迅速に提供することができるエコシステムは「APIエコノミー」と呼ばれ、注目を集めています。
近年、FinTech(注)に代表されるITによる革新的なサービス登場の裏側には、各社が自社のビジネス機能の一部をREST APIでアクセスできるWebサービスとして提供していることがあげられます。
今後もREST APIの利活用や提供によるビジネス拡大の動きは加速するものとみられています。

(注)FinTech: 「Finance(金融)× Technology(技術)」による造語で、主にIT技術を駆使した革新的な金融商品・サービスの潮流のこと

<業務システムの課題と対応策>

いかがだったでしょうか。REST APIが流行っている理由、おわかりいただけましたか?
最後に、冒頭でご紹介した業務システムの3つの課題に対する対応策を整理してみます。

  • 課題1: PCだけでなく、モバイルでも業務システムを利用できるようにする必要がある。
    → レスポンスにJSONなどのデータを返却するREST APIベースの業務システムを開発する。
  • 課題2: ビジネス環境の変化に対して、俊敏に対応する必要がある。
    → REST APIでクライアントとサーバサイドを分離することで、メンテナンス性向上や各サイドの分業化、並行開発のしやすさを促す。
    クラウドによるインフラ構築にあたり、REST APIを利用したインフラ作業の自動化を行う。
  • 課題3: 自社内のシステムだけでなく、他社のシステムやさまざまなWebサービスと連携できる必要がある。
    → リソースを操作するインタフェースをREST APIで定義し、インタフェースの統一と標準化を図る。

REST API活用イメージ図次回は、REST APIベースの業務システムをJavaで開発する方法についてご紹介します。具体的には、Java EE7という最新の標準フレームワークをとりあげますので、お楽しみに!

今回のコラムでREST APIに興味を持った方は、是非「REST API」のコースマップもご覧ください。

 

今回のコラムのような皆様のスキルアップに役立つ情報や、お得なキャンペーン、無料セミナーなどのご案内情報を、メールマガジン(毎週木曜)で配信しています。
この機会にぜひご登録ください。

メールマガジン登録へ

 

みなさん、こんにちは。
富士通ラーニングメディアの大仏(俗称)です。 ITサービスマネジメント関連の教材開発や講師を担当しています。

今回のブログでは、システム運用現場における変更管理とリリース管理の活動にスポットを当てて、その重要性をご紹介したいと思います。

【登場人物紹介】

大仏(俗称)daibutsu.jpg
富士通グループの関係会社に入社し、以降、業務開発/運用保守に始まり、インフラ設計/構築、構成管理などの様々なシステム開発/運用現場を20数年ほど経験しました。
その後、講師に転身し、現在はITサービスマネジメント関連のコースに登壇しています。

見た目はどこぞのお寺の住職ですが、美味しいものやお酒が大好きなど、まだまだ俗念を振り払うことができず修行の毎日です・・・。最近、メガネ属性に開眼したようです。

 

タエtae.jpg
最近、開発部門から運用部門に異動となった、入社10年目の社員です。開発部門ではお客様の要望に従って仕様検討してシステム開発に勤しんでいました。運用部門はそんなシステムの運用管理だから少し楽になると考えていましたが、想像とは違う多忙な状況に驚き、どうにかしたいともがいているところ・・・

一方私生活では、家に帰ると怪獣(幼児)が待っているワーキングマザー。

 昼食後、自席でハーブティーを飲んでくつろいでいる大仏の前を、いつものように屋台弁当を食べ終えたタエが通りかかった。あまり元気な感じではない。 

大仏:
タエさん、顔色が良くないですね、何かありましたか?

タエ:
大仏さん、ちょっと、聞いてくださいよ~ 先月、去年から開発していた某システムがやっとサービス運用を開始したんですけど毎週トラブルが発生したり、いきなり運用手順が変わったりで、もうクタクタですよ~ 何で、こんなことになっちゃったんでしょうか?

大仏:ふーん、例えばどのようなことが発生しているのですか?

タエ:例えば・・・
jirei.JPG

タエ:
開発の最後の時期に、スケジュール遅延が発生したとかで、テスト要員としてお手伝いをして忙しかったのに、運用開始後もちっとも楽にならないです~

大仏:
なるほど、なるほど。これは、変更管理やリリース管理の進め方に問題があるようですね。 開発部署から運用部署に対して、業務アプリケーションやシステム環境などの開発成果物を引き渡してサービス運用を開始する、この引き継ぎの部分は昔から様々な問題が発生しているのです。
henkou.JPG

タエ:
何で、そのようなことになっちゃうんですか?

大仏:
そもそも、開発と運用とでは、作業や役割などの立ち位置が違うので、考えることや思うことが異なります。 開発側のプロジェクトマネジメントに対して、運用側のサービスマネジメントがあるように、管理の捉え方も違いますよね。
まず、開発担当は、「与えられた条件下で、品質の良いものを作る」ことを考えますが、運用担当は、「サービスを安定提供する」ことを第一に考えます。
例えば、安定稼働しているシステムであれば、修正や追加などの変更を行わなければ、安定継続してサービス提供が可能となるため、用担当は基本的に変更作業を嫌うわけです。
実際、変更作業が起因となって発生したトラブルの発生件数の割合は高く、危険を伴う作業であることは間違いありません。

当然のことながら、このような立場の違いを踏まえ、お互いに理解したうえで、一丸となって協力しなければ、良いサービスは提供できません。タエさん、DevOps(デブオプス)という言葉を聞いたことがありませんか?

タエ:
あの、ウォーターフォールではなくて、アジャイル開発とかいう手法を活用して開発するものですよね。

大仏:そう、このDevOpsは、開発部署(Development)と運用部署(Operations)の連携と協力をうまく進めるための、ひとつの工夫なのです。

まずは、どのような手法で開発するとしても、開発部署と運用部署といったように担当範囲で縦割りにするのではなく、ひとつの流れと捉えて、コミュニケーションや協力体制を組むことが非常に重要であることを覚えておいて下さいね。


communication.png

タエ:
なるほど、色々と難しい問題があるんですね、勉強になりました。じゃあ、今後は一体どうすれば良いのでしょうか?改善提案みたいなものをして、部門内で打開策を検討してみたいんですが?

大仏:
まず、ITサービスマネジメントのフレームワークであるITIL®(Information Technology Infrastructure Library)を参考にして、ルールや作業フローの見直しを行う流れがお勧めですね。 ITILのサービスライフサイクルは、以下のようになっていますが、今回問題となるのは、移行(トランジション)の段階となります。

lifec.JPG

大仏:
ITIL®では、RCV(Release, Control and Validation )という表現で、移行段階における「リリース、コントロールおよび妥当性確認」の重要性を説明しています。今回は、「変更管理」と「リリース管理および展開管理」のふたつのプロセスを中心に取り入れて、現場の改善を進めることになると思います。

大仏:現場にルールや活動を定着させるにあたって、重要なポイントがいくつかあります。これらは、さきほど伺った「現場で発生している問題」への対策にも通じますよ。
point.JPG

タエ:
やっぱり、まずは、システム運用の勉強をしないとだめですかね。最近、ITIL®の勉強をしようと思っているんですが、いきなりfoundation認定試験とかはやっぱり厳しいので、なかなか重い腰が上がらないんです。

大仏:
それならば、いきなりfoundation認定を目指すのではなく、まずは、ITILとはなんぞや?を初心者向けに分かりやすく教えてくれるeラーニングコースあたりから受講してみたらどうですか? ITIL®の概要を理解するのに最適ですよ。

タエ:
それって、私でも大丈夫ですか?  知恵熱とかでませんか?

大仏:
まぁ、大丈夫でしょう。 集合研修と違って、疲れたら休憩を取ったり、自分のペースで進められるのがeラーニングの良いところですから。

タエ:
分かりました! では、さっそく申し込んでみます。いろいろと、ありがとうございました。

大仏:
いえいえ、では日々精進してください。

 

【参考リンク情報】

2017年1月30日開催 ITIL変更管理、リリース管理の実装 ~あるべきサービスの安定化を目指して~(UAX04L)
ITサービスの提供において、開発担当と運用担当との責任分界点であり、「本番運用に入る前の水際」という位置づけである、移行段階の実践的なポイントを、ワークショップ形式で学習します! 演習では、ケースを元に変更管理とリリース管理の課題をグループで検討し、ITIL®でのプラクティスをもとにして、解決策を検討します。
安定運用を実現するために、移行段階ではどんな準備が必要なのかを把握するために、本コースをご活用ください。

2017年1月30日より開講 【e講義動画】なるほど ITIL概説 ~ ITILの本質を理解する~(UHD17D)
認定試験向けではなく、考え方や適用メリットを紹介するコースです。例えば、「ITIL®の適用を考えたいけど具体的に何がメリットなのか知りたい」「詳細は必要ないがITIL®のおおまかなことだけ知っておきたい」など、試験対策以外の様々なニーズにお応えしています。
経営者から実務担当者まで、立場ごとに必要な情報だけ選択して学習いただけます。ITIL®とはなんぞやの概要レベルを把握するために、本コースを是非ご活用ください。

 

【登録商標】
ITIL® は AXELOS Limited の登録商標です。

ATDイメージ富士通ラーニングメディアでは、人材育成に関する最新動向の定点調査および当社社員の育成を目的に、毎年5月に米国で行われる世界最大規模の人材育成、組織開発カンファレンス「ATD International Conference and Expo(以下、ATD IC&E)」に参加しています。

今回、ATD IC&Eには当社若手講師2名と営業1名の計3名が参加しました。気づきや学びのあったセッションの一部を読者のみなさんにご紹介したいと思います。

[関連記事]

> その1 ~「ありがとうございました」は言うべきではない!?~
> その2 ~境界のないリーダーシップ:成長するリーダーへのグローバルアプローチとは~
> その3 ~eラーニングと教育の科学~
 

<「ありがとうございました」は言うべきではない!?>

◆セッションについて


タイトル:「5 Minutes: Tools and Tips for Leveraging Those Critical 360 Seconds!」
講演者:Jim Smith Jr.氏(Jim Smith Jr. International)

 

◆セッション内容


研修の冒頭(Opener)と、最後のまとめ(Closer)を充実させることで、研修効果の向上が期待できます。具体的には、研修の受講前後でどのように変わったか、どのような知識を身につけられたかを受講者に認識させることが重要です。

  • 5分間で研修冒頭の導入を充実させることは、スキルではなく、講師の意志次第です。
  • 受講前には「期待した情報を得られるか」という恐怖心が存在します。
  • 休憩前にやっていた内容を休憩後の内容にリンクさせることが重要です。そのために休憩時間用の質問を入れると良い。
  • 研修のまとめでは、研修中、最良の知識を振り返り、得た知識をどのように活かすのかを考えさせることが重要です。
  • 誰もがやっていることをやっても効果はありません。自分しか使わない締めの言葉を使うべきで、自分だからこそ言える言葉を伝えることが重要です。
  • 受講者は、研修受講前とは違った考え方を身につけるべきです。考え方は変えられます。

 

◆所感(野口)


Jim Smith Jr.氏の言葉で最も印象的だったものがあります。それは、研修最後に総括として講師から受講者へ伝える言葉は「受講いただきありがとうございました」ではないというのです。

感謝をすることはもちろん重要です。ですが、それ以上に、研修で学んだ知識・スキルを職場で活用するためにどのような行動を起こさなければならないのか、受講生一人ひとりに考えていただく時間に費やした方が良いということでした。
今後、私が登壇する研修でも取り入れてみたいと思います。

 

講師画像

【社員紹介】 第二ラーニングサービス部)野口

"のぐお"として、コラム『ネットワーク講師"のぐお"の「めざせ!超難関資格CCIE Routing and Switching受験奮闘記」』を連載中。

主な担当コース
 ネットワーク関連コースを中心に担当

趣味:旅行、麻雀など。詳細は"のぐお"コラムの自己紹介をご覧ください。

月別アーカイブ