2016年7月12日火曜日

JJUGナイトセミナー(2016.7.11)~Java API訴訟問題を考える~ に行ってきた



2016/7/11@日本マイクロソフト本社

19:00-19:30「Oracleが訴えるまでの経緯について~SunとOSSとIBMとAndroid~」
鈴木雄介(JJUG会長)

■Javaのエコシステム
→2011年から個人で仕様策定に参画できるようになった。
→独自機能によってロックインしていた。(Weblogic独自機能など)
ベンダーのためのエコシステム
SUNは認定することで利益を得ていた。
各社は独自実装を販売して利益を得ていた。
どんどん肥大化していった。

■OSSのエコシステム
Apache Software Foundation
オープンソースを支援する任意団体
2002、2004年OSS(Struts等)を受け入れることでとても盛り上がった。
→IBM(WebSphere)がとても貢献していた。
→OSSビジネスの成功
→Linuxの成功体験がベース
→Eclipseは2001.11にOSS化
2004年TomcatがRI(参照実装、検証)
2006年JBoss旋風
JavaEEではOSSをベースに盛り上がった。
→SEでもできないか?

■JavaとOSS
2005.5 Project Harmonyが提案
Eclipseみたいなものを目指していた。
2006.10 Apache Harmony誕生
2006.11 SunがJ2SEをOSS化
OpenJDK
2007年、公開書簡
Harmony「この利用制限を外せ」
Sun「嫌だ」
2007.8 SunがTCKを公開
Sun⇔それ以外

■AndroidとJava
2005年ごろ GoogleのAndroid戦略
オープンソースによる共有資産
2007年以降、Android普及へ
→無料で手を入れられるOS
→もうSunにライセンス料払わなくていい

■その後
SunのOSS戦略は成功せず
2016年、AndroidがOpenJDK

■まとめ
IBMはOSS戦略成功、Sunは失敗した。
IBMすごい。したたか❔

19:30-20:10「Oracle vs Google訴訟の全貌と概要 ~APIは著作権で保護されるべきか~」
栗原潔(弁理士)

http://www.slideshare.net/KiyoshiKurihara/oracle-vs-google-63898283

■日本と米国の違い
日本→条文に書いてあるかどうかを重視
米国→裁判結果を重視(市場への貢献しているかどうか、という考え。フェアユース)
やってみないと分からないのが米国。
→裁判するお金ないと不利になる。1億円くらい必要。

2016年5月21日土曜日

JJUG CCC 2016 Springに行ってきた

Thymleaf3を使ってみよう!
椎葉 光行さん
@bufferings
■Thymleafとは❔
Thymeleaf
→デザイナーの課題を解決するために開発されたもの。

仕組み→
th属性で制御している。
htmlでは無視される。Thymleafで動かす時thをみて動的に動く。

■始め方
Spring Bootから始めやすい。
キャッシュon/off

JerseysMVC

th:remove
→サンプルでは表示、実装では非表示にしたい場合。

Natural templating
http://bufferings.hatenablog.com/entry/2013/11/23/101731

------
ランチLT
elasticsearch stack
Jenkins ソフトウェア開発スピードアップ
→自社プライベートクラウド上にJenkinsサービスを構築。各プロジェクトから使えるようにする。プライベートクラウド上に開発ツールを構築して提供する。

------
ローカルでのID管理は大丈夫?!
よりセキュアでモダンなJavaの多要素認証
日本マイクロソフト
Javaエバンジェリスト寺田さん
元サンマイクロシステムズ→元オラクル

パスワードは暗号化していれば大丈夫?
→辞書攻撃、パスワードリスト攻撃などの脅威
salt付加する!

通信元を隠蔽したところからの通信
テナントをまたいた異常なログイン
感染デバイスからのログイン
→これらを個別に実装するのは大変
→AzureAD 餅は餅屋に任せないか?

世界で2番目に攻撃を受けているのがMicrosoft。1位は国防省。

多要素認証でよりセキュアなアプリに
→なぜ必要なの?
→ログインとパスワードはバレたらアウト
→より強固なものが必要
→知識情報、所持情報、生体情報など段階ある。

モバイル・アプリ

多要素認証を利用することでパスワード漏洩してもログイン可能。

JSR-196 JASIC
GitHubにアップ済
→yoshioterada

権限によるプログラム実装制御がアノテーションにより可能
→管理者権限ユーザなら実行させる。一般権限ユーザなら実行しないなど。

Java認証・認可モジュールの実装

------
ネクストStruts/Seasar2としてのJava EEアクションベースMVC入門 - MVC1.0、JerseyMVC、RESTEasyHTML
カサレアル 多田さん

アクションベースMVC(Struts経験者やりやすい)
コンポーネントベースMVC

JSF コンポーネントベース
JAX-RS

JavaEE8にてアクションベース標準で入る予定
→エンジニア集めやすい?

Ozark

MVC1.0
→画面構築×、二重submit×

Thymleaf3
→HTMLでかける。xhtmlを書かなくてOK(閉じタグとか不要)

TERASOLUNAガイドライン参照
全般的にThymleaf率高い。

やりたい事の実現やトラブル解決のためには、JAX-RSの知識が不可欠
→処理パイプラインが大切(買った本にある)

MVC1.0+ThymleafでStruts代替か。

2016年4月25日月曜日

春のJava IDE祭り~激突!? 3大IDE~

=====================================================
IDEだとかテキストエディタだとかそんなチャチなもんじゃあ断じてねえ。
もっと恐ろしいものの片鱗を味わせてやるぜ(山本さん)
=====================================================
JJUG読み方(今更。。。)
→ジェイジャグ。

どれくらい凄いの?
→会社作るくらい凄い。

■サンプル Twitterインスタンス生成~
TwitterFactory.
変数へのセットが半自動(.varでコード補完される)
同じ感じでfor文も楽。
→行の先頭へ戻る操作が不要になる。

警告(あやしい箇所)表示機能も充実

デバッガ
→より効率的に

HTML5対応
→HTMLコーディングはリアルにブラウズ反映
 コード選択して削除みたいなときに便利な機能あり
 ※構文をみて選択してくれるので誤ってタグを削除することがなくなる!
  当然Java等も。

JS対応
Gitとの連携OK

JDBCドライバー
→別途インストール不要。IDEの中で進めていけば自動インストールしてくれる。

いちいちSSHトンネルを掘る必要がなくなる
→機能として設定可能

Java9まで対応している?!

=====================================================
Eclipseでサクサク開発! そしてクラウドIDEへ(谷本さん)
=====================================================
48% eclipse 2014年
→STSも合わせれば50%こえる

エンタープライズ最強な理由
No.3 plugin豊富
No.2 Free
No.1 設定できる。import/export

重い理由
No.3 plugin
No.2 Incremental build
     開発・関連モジュールが多いと重くなる。
No.1 WTP(for JavaEE)
     XMLとか重い。
No.0 Anti Virus
     某大手家電メーカ。。。
Use Pleiades platform and install JDT.

Anti Virusが原因なら対象から外すしか・・・

eclipse自体は軽いので重いpluginを突き止めて対処

将来的にマイクロサービスがさらに普及していくのでは。

今後のリリース予定
2016.6 Neon
2017   Oxgen

Cloud IDEデモ紹介
→実用性にはまだ不十分。
参考サイト
http://www.publickey1.jp/blog/16/eclipse_che.html

エンタープライズ目線
→独自のルールを作ったり、チェックしたりする場合
 (個別のローカル環境で設定不要なので)統一しやすい。

=====================================================
NetBeans IDEの現在とこれから(片貝さん)
=====================================================
歴史からみるとわかりやすい

チェコのプラハ
→学生のプロジェクトが始まり

位置づけ
JDeveloper エンタープライズ
NetBeans   軽量に
ゆえに・・・
最新のJavaテクノロジをいち早くサポートする

日本語版(英語版とほぼ同時リリース)

最近はHTML5サポート強化
→デバッガ、UnitTest等
 ブラウザ連携

Oracle JET
→面白い?!らしい。
 エンタープライズ向けJavaScriptライブラリ(FW)
 レスポンシブデザイン

http://www.publickey1.jp/blog/16/javascriptoracle_jetspaui.html

http://kojs.sukobuto.com/docs/introduction


2016年3月19日土曜日

JavaEE7徹底入門にあるサンプルアプリケーションを動かしてみる

3/19開始
課題)
GlassFish(4.1.1)の管理コンソールでJDBCコネクションプール設定時にhttp500エラーが発生する。

New JDBC Connection Pool (Step 1 of 2)で必要事項を入力し、「Next」ボタン押下すると
http500エラーが発生する。

原因)
GlassFIsh4.1.1の不具合。

対処)
案① 4.1をインストールして使う。
案② 5.0のリリースを待つ。

②はないのでとりあえず案①で進め見ます。。。結果は別途投稿します。

参考)
https://teratail.com/questions/22777

3/24追記
案①で進めようと思いましたが、どうやら別のディストリビュートでPayaraというものがあり、
これでも動きそうなのでPayaraを早速ダウンロード。

http://www.payara.fish/downloads

インストール後、起動。
コネクションプール設定できました。





課題)
P.382 OracleXEへのpingが失敗する。

原因)
設定パラメタ不正?もしくはOracleサービスが起動していない?

対処)
ログ場所
~payara41\glassfish\domains\domain1\logs
→(4/7)使用ポートの変更で解決するかも?!

4/7追記
課題)
APサーバ起動時に使用ポートが被ってしまい、エラーになることがある。

原因)
使用ポートが重複している。

対処)
使用ポートおよび対象サービスを確認し、サービス停止する。
http://sinsengumi.net/blog/2011/01/windows%E3%81%A7%E3%81%A9%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E3%81%8C%E4%BD%95%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E4%BD%BF%E7%94%A8%E3%81%95/



<Payaraの起動手順>

C:\Program Files\payara41\glassfish\bin

下記を実行。
startserv.bat

http://localhost:4848/


2016年3月13日日曜日

JAWS DAYS 2016箇条書きメモ


<[キーノート]JAWS-UGこれまでとこれから>
・会社⇄コミュニティ 活性化
・クラウド技術は多岐にわたるため一人や会社でカバーできない
→ありがたい
・貢献の仕方(参加、会場提供、ツイート)

<首都圏以外でイノベーションをリードするユーザー企業からクラウド活用を学ぶ
〜地方のユーザ企業はクラウドとどうつきあうべきか?〜>
■前半:どうやったら地方住みでAWS使って幸せになれるか。(なれないかもしれないが)
堀尾紀昭[株式会社アンデルセンサービス]

・ハンズオンだけだとサーバ立てて終わり
・ネットワークありき
・システム資産は集中
・人に買わせて手数料払う
・アプリに専念
・時間貸しAWSを活用(Hadoop)
・監視運用をプログラムで自動化
・移行はテスト、性能確認が重
・クラウドになることで、アプリ寿命がのびる
・クラウド活用によりインフラの時間短縮により休みも多くなる

■後半:ヤマハ発動機におけるクラウドの取り組み
原子 拓[ヤマハ発動機株式会社]

・Office365動かすためにWorkSpaces
・2ヶ月でサービスイン
・トンネルはだめだが新幹線はほほ大丈夫。少し不安定になるくらい。
・どこでもコールセンターやりたい
・まだまだコストメリット検討必要
・ユーザ会立ち上げて関係を築いていく

<外よりも中からの攻撃・事故がヤバイ、今やるべきクラウドセキュリティ対策>
齊藤 愼仁[アイレット株式会社]

・基準
・SSOできなければNG
・SAML、Kerberos認証
・多要素認証
・最低限、サービスの机上評価
→IPA手引きある。
→リスクを洗い出し、共有が目的
・クラウド時代、透明性
・セキュリティは積み重ね
・安全なものはない、例えば銀行に預ければ完璧か。

<長谷川秀樹のIT酒場放浪記 情シス不要論編>
〜情シス不要論にみるIT部門のありかたとは〜
モデレータ:長谷川秀樹[ハンズラボ株式会社]

・エンドを意識する
・第2の部門(攻め)デジタルイノベーション
・クラウドという言葉を使わない。
→アマゾンのデータセンターつかう。
・セールスフォースが強いのは日本郵政
・AWSはCIA
・自分がどの領域で成果を出せるかが大切
・現場(小売)出るべき。
・いい部門→昔は流通だめだった。今は店舗でPOSによって変わった。
・IT部門が業務部門に近いか
・自分の強み、棚卸する。
・ビジネスメリットを理解する。
・PMとサービスマネジメントは軸
・一回転職活動してみる
・非ITの方と話す。すごい人をみつける。人の話を聞ける。他のことをやってる人をリスペクトする
・ビジネスで認められる仕事をすること
→ハッピーになる
・エンジニアは小さい会社がよい

<金融クラウド&FINTECH最新動向 ~AWSで金融のイノベーション!>
モデレータ:渥美 俊英[アマゾン ウェブ サービス ジャパン株式会社]

・欧米の投資がすごい
・金融庁から方針でてる
→2015/9
→FISC安全対策基準
・国際社会から遅れている。
・直接立ち入りしなくても代替可。SOC2、ホワイトペーパー。
メガバンク側 シニアアナリスト
・銀行だけを見てればいい環境はおわった
・金融もテクノロジー大切、投資も
・ウェルズナビ
・スピードとアイデアを外部から取り込む
・トップのICTへの理解が進んでいる
→R&Dへの投資
→海外政府の動きがはやい(EU)
・従来新しいものを作り出す必要性がなかった→成功事例を打ち出す
・ユーザと一緒に改善していく
・あっという間に変わった
→アメリカでも取引は郵送だった(まずは印刷を外注に)
・いろんな職種をまわすスキル
・金融機関の上層部ですらDevOpsという単語に注目している
・コアとフロント(スピードある開発手法)
→シティバンクは海外でコミュニティつくってる。VISAとかもやってる。
・非金融エンジニアも無視できない。
・出資について方針もかわる
・熱量が大切。自分がワクワクすることか大切。
・アカウントアグゲーション

<長谷川秀樹のIT酒場放浪記 SI不要論編>
〜「SIerの余命は5年」は本当なのか〜
モデレータ:長谷川秀樹[ハンズラボ株式会社]

・オリンピック境目
・2020年以降、グローバルとイノベーション。
・客を替えろ
・昔メインフレームなくならいと言っていた。
・今価値あることは数年後には価値ない
・オーダーメイドは本来凄いこと。
・競争力のあるカスタマイズ
・工数かけるだけの価値があるのかの観点
・提案料もらう必要あり
→提案=コンサル料

<備忘>
E-JAWS
オラクル クラウド 資格

2016年2月18日木曜日

【第4回】JAWS-UG初心者支部♪

<オープニング 各種告知>
6/1~3 AWS Summit Tokyo

<東急ハンズのEC2の使いかた>
緑本:Amazon Web Services 実践入門
AWSエキスパート養成本 今月発売予定

使い始めて3年経過

ハンズメッセ
→高負荷
 →これをEC2で構成。
 →Amazon Linux

POSサーバ
 東芝テック制
 Windows Server2008
 →テックには、IAMユーザで運用保守。

メルマガ配信システム
 RedHat Enterprize Linux 6
 Oracle 11g

AWSブログ→無料、RSS登録が便利
 公式(日本語)

AWS Black Belt Tech Webinar(無料)
→これをすべて理解すれば脱初心者
→EC2,EBS,VPC,S3

re:Invent
→セッションがyoutubeで公開されている。

<Simple Front 53>Sansan
S3
 99.99999999999(イレブンナイン)
 ログの保存
 fluentdのS3 pluginで定期的に
 
 応用例
 →静的ウェブサイトホスティング+JavaScript+Congnito

CloudFront
 便利なCDN
 動的なコンテンツでも使うと良い
 独自のDDoS監視システム
 ウェブサイトのSSL/TLS対応
 地域に応じた~~~
 CDN
 →キャッシュによるオリジンの負荷低減
  コネクションの最適化
 ウェブサイトのSSL/TLS対応
  ・CloudFront+S3で最強静的ウェブサイト
   ・HTTP/2未対応
  →コーポレイトサイトとか。
   無料でかつ更新不要。後ろにS3の構成。
   低コストウェブサイト運用
   同一URLでも国別のコンテンツを表示
   (IPで判別)

 AWS WAFとの統合
  セキュリティ対策
  WAF+CloudFront

Route 53(fifty three)
 安くて手間いらずのDNSサービス
 SLAで可用性100%
 DNSキャッシュサーバではない
 AWS CLIでの管理は大変
 →簡単操作ならマネージメントコンソール
 →自動化はSDK利用がおすすめ
  (JSON)
 加重ラウンドロビン

<ぎょりと学ぶAWS Billing+契約の学び方>
オンプレミスで考えた時の構成
AWS事例みて試算する。

説明には企業名は書かない

AWS TCO で検索!
→比較

<LT>
インスタンスタイプ気をつけて!
slack情報を流した

----
緑本でインフラお勉強
→わかりやすい

----
構成図を書いて覚えよう!
→サービスの特性が掴める

AWS シンプルアイコン
Cacoo オンライン作成(無料で使える)

----
ビリングの章、おすすめ
NTTドコモではAWS使ってる
コスト問い合わせ多い。

----
<AWS初心者がウェブサービス作ってみた結果www〜主に失敗事例〜>
デカケル.jp

アプリのデプロイ
→毎日変更

Elastic Beanstalkの良い点
→Git経由なのでバージョン管理きちんとできる

ストレージ

Wordpress

<クロージング & 次回予告>

2016年2月15日月曜日

JJUGナイトセミナー 「Java EE 7徹底入門」の著者が解説! - Java EE 7特集 に行ってきた!

<Java EE 7徹底入門 概要説明 (猪瀬さん)>
書籍『Java EE 7徹底入門』著者
→サンプルアプリ作成できるので、今後活用してもよい。

.ear = .jar + .war

Java EE 7
→2013年

次世代フレームワーク
→検討する上で情報量が大切。


<プレゼンテーション層の開発 JSF (加藤田さん)>
(当時)Servletでは、入力チェックがないためOSS(struts等)を利用していた。

JSF構成要素
→フェースレット(画面)とマネージドビーン(処理)

XHTMLベースのテンプレートエンジン

JSF
→サニタイジングがデフォルト等。JSP進化版。

@Named フェースレットと連携しますよ~
@RequestScoped スコープの定義

本書で触れられなかった話
・JSFのより詳細な機能
→カスタムコンポーネント
イベントハンドリング
ビーンバリエーション
EL
・JavaEE 8(JSF2.3)
→WebSocket対応
マルチフィールドバリデーション
・MVC1.0
→アクション指向フレームワーク
JavaEE8で導入
JAX-RSを拡張(アノテーション同じ)
・JSF関連ライブラリ

プレゼンテーション層の選択肢
1.JSF
2.JAX-RS+クライアントサイドフレームワーク
3.MVC1.0+Web Components?

どれを選んでいてもコンポーネント指向に収束。
→人間がイメージしやすいのかも。。

PrimeFaces
→Ajaxベース。100を超えるコンポーネント

OmniFaces
→JSF開発をサポートするユーティリティライブラリ

<ビジネスロジック層の開発 CDI,EJB (羽生田さん)>
CDIとEJBの組み合わせがよい。

CDI
→インジェクション、型解決、定義方法
→イベント処理

EJB
→解説。きちんと設計すれば

CDIコンテナの取り扱い

@ConversionXXXXX

CDIにおけるトランザクションの取り扱い

DI
→「層」をくっつける接着剤の役割

スコープ定義
@RequestScoped
@ViewScoped
@SessionScoped
@ApplicationScoped
@ConversationScoped → 開発者が明示的に決める事が可能
スコープ外になるとGC対象になるので。

CDI
→スコープ定義がわかれば使えるため、簡単。

層について
JSF⇔CDI⇔Entity
※ただし、CDIは実際は全ての層に入るはず

CDIコンテナ
・Weld
→バージョンは必ず認識(APサーバとの関連)すること。
環境によって動かないみたいなことがある。
Glassfish/Weld、Oracle Weblogic/Weld
・CDIコンテナへのアクセス用
→取得:CDI.current();
CDI.select(MyBean.class).get();とか
・CDI.current().toString();
→返却:Weld
・CDIProvider
・BeanManager
→面白い機能。
@Inject
BeanManager manager;
業務アプリで使いすぎると危険
過度の使いすぎ→FW化→障害調査が大変
・大規模開発だと勝手インジェクションとか。。。

@ConversationScoped
・自分でスコープ長を定義
・begin()→end()

トランザクション
・javax.transactionパッケージ
・@Transactional
→トランザクション境界の設定
→クラスとメソッドどちらでも
・@TransactionScoped

CDI+EJB
→ルール決めが大切

多量のインジェクション数は危険
→課題。フレームワークで制御しようとすると本末転倒になりそう。
だから設計大事。

<バッチアプリケーションの開発 jBatch (猪瀬さん)>
JavaEE7から登場
Spring Batchから多く継承
JSR-352で規定

1.プロセスとして実行
○ シンプル。直感的。
△ JVM起動時間のオーバーヘッド。CPU浪費。
△ APサーバで動く他の部品との共有が難しい
2.自作スレッドとして実行
○ スレッドはプロセスに比べて軽く起動
△ スレッド管理するmainプログラムを自作必要
△ APサーバで動く他の部品との共有が難しい
3.サーブレットとして実行
○ スレッドはプロセスに比べて軽く起動
○ スレッド管理プログラムの自作不要
○ APサーバ部品との共有OK
△ 実行状況の把握、スレッド停止が難しい
△ HTTPリクエストタイムアウトの問題
4.jBatchを利用
○ スレッドはプロセスに比べて軽く起動
○ スレッド管理プログラムの自作不要
○ APサーバ部品との共有OK
○ 実行状況の確認OK

ジョブとステップ
→ジョブ(xml)はステップの入れ物

JCLっぽい。

ジョブオペレータ

ステップ
→『チャンク型』『バッチレット型』
→チャンク型:一括処理
I/O減らす仕組み(10回に1回書き込み)

補助機能
・リスナ
・コンテキスト
 →JobContextとStepContext
・メトリック
 →Stepに関する統計情報