Posts filed under ‘未分類’

Java on Microsoft Azure 情報のまとめ記事

今日は、Java の開発者の皆様が Microsoft Azure を利用する上で有用な情報もまとめて一気にご紹介します。どうぞごらんください。

※ 本記事は、前回の投稿内容に加え、プレゼン内容とデモ内容をマージしたものです。
 前回投稿した記事の内容(文章)はすべて本記事に移動しました。

Java 開発者の皆様のためのツール

Microsoft Azure が提供するサービスを利用した Java のアプリケーション開発をされたい場合、 Azure SDK for Java を我々は提供しています。Azure が提供するサービスにはたとえば次のようなサービスがあります。

Blob Service
Media Services
Queue Services
Service Bus Queues
Table Service
IoT Hub Service(日本語)

SDK は Maven プロジェクトから利用できるため、OS の環境や統合開発環境の種類によらずご利用いただくことができます。
もし、この SDK の API が気に入らない場合は、どうぞご自由に変更してください。SDK はオープン・ソースとして公開されており、GitHub からソースコードをご参照していただくことが可能です。
ディレクトリ・サービスを使用した ID 管理が行い場合は、Azure Active Directory Library for Java をご利用いただくことができます。
もし、NoSQL データベースとして MongoDB をご利用されたい場合は、通常の MongoDB Java API に加え、MongoDB-as-a-Service on Microsoft Azure
Microsoft の DocumentDB サービス用の Java SDK も利用可能です。
また、ステートレスのアプリケーションでどこかで永続化データを管理したい場合、Azure Redis Cache が簡単で安全なためおすすめです。チュートリアルはこちらにあるので、こちらをご参照ください。Java を利用した Azure Redis Cache の使い方.

また、統合開発環境においても Eclipse や IntelliJ IDEA などで Azure 用のプラグインを提供しています。もし、Eclipse や IntelliJ をご利用の場合は、下記もどうぞお試しください。
Azure toolkit for Eclipse

MS Open Tech Tools: IntelliJ and Android Studio Plugin for Microsoft Services

上記の、MS Open Tech Tools plugin for Microsoft Services は Android のアプリケーションと Office 365、Azure モバイル・サービス、Azure ストレージなどと統合する機能も提供しています。

Java に関連した企業との協力なパートナーシップ

マイクロソフトはオープン・ソースのコミュニティと強く協力していくことがとても重要と考えています。またマイクロソフトは、OpenJDK に対する商用サポートを提供する Azul Systems と強いパートナー・シップを結んでいます。これにより Azul が提供するOpenJDK( Azul Zulu® )をMicrosoft Azure 上でもご利用いただくことができ、OpenJDKに対するサポートも提供します。これは、すでに EoL になってしまった Java SE 7 に対するサポートも含まれ、オラクルの有償Javaサポートプログラムに対する代替の手段としてご検討いただくことも可能です。Eclipse や IntelliJ をご利用の方は、 Azure toolkit for Eclipse MS Open Tech Tools plugin for Microsoft Services をご利用いただくと、デプロイ時に Zulu を利用することも可能です。Azure のマーケット・プレスでは、Zulu をバンドルした Azure の仮想マシンも(Windows, Linux)提供しており(Azure Virtual Machines Gallery)、簡単にご利用いただくことができます(※ 日本でのサービス提供開始はまだです、今しばらくお待ちください)。

また、 HortonWorks ともパートナーシップを結ぶことによって、Hadoop ベースのサービス(HDInsight)を簡単にご利用いただくことができます。さらに、Cloudier ともパートナーシップを結んでおり、Azure 上で Hadoop ベースの Cloudier Enterprise Dataの仮装マシンを Azure 上でご利用いただくことができます。また、DataStax 社ともパートナー・シップを結び、Cassandra もご利用いただくことができます。
その他にも、マーケット・プレスではOracle WebLogic, IBM WebShpere など様々な製品をご利用いただけるようになっています。
マイクロソフトは、Java 業界に対して、ほとんどしがらみがないので、アプリケーション・サーバもこれを使ってくださいなどとは申し上げません。ベンダー・ニュートラルで、どのようなアプリケーション・サーバでも普段お使いのアプリケーション・サーバをどうぞご自由にご利用ください!!

継続的インテグレーション・継続的デリバリ


もし、Jenkins を普段ご利用いただいているのであれば、Azure の仮装マシンを Jenkins のスレーブとしてご利用いただくことができます。その際、Jenkins Slave Plugin for Azure をご利用ください。また、build artifacts を Azure が提供するストレージサービスに対してデプロイすることもできます(Azure Storage plugin for Jenkins)。

さらに、JJUG CCC 2015 Fall で一部の方にはデモをご覧いただきましたが、Azure と Jenkins, Docker を利用して下記のような DevOps を実現することも可能です。

統合開発環境からソースをコミットしたのち、チーム開発用のツールを SaaS として提供する Visual Studio Team Services (VSTS) の Git に対してプッシュします。VSTS の Git にプッシュしたのち、Azure 上で稼働する Jenkins で Build, Test を行い、ビルドとテストを正しく完了した場合に、アプリケーションを稼働させるための、Docker イメージを作成し、Docker Hub へイメージをプッシュします。Docker Hub へイメージをプッシュしたことを、Docker Tutum が検知し、Tutum 経由で、Azure 仮装マシン作成し、Dockerサーバを構築、最終的にはDocker コンテナの起動までを全て自動化できます。

Microsoft は CloudBees ともパートナー・シップを結んでおり、CloudBees Jenkins Enterprise on Azure (セキュアで最適化されたプラグインを含む)をご利用いただくことができます(詳細はこちらをご参照 : CloudBees Blog)。

Linux マシンも問題なく稼働


Microsoft Azure の中で稼働する仮装マシンのうち、すでに 25% が Linux で稼働しています。Windows 環境だけではなく、Linux 環境も安心してご利用いただくことが可能です。また事前設定済みの WebSphere や WebLogic も提供しています。WebSphere, WebLogic

Azure に対する配備を自動化したい場合、Azure Command Line InterfaceAzure Resource Manager template をご利用いただくこともできます。Linux や Mac、Windows 環境でコマンドラインからデプロイを管理したい場合、 Azure CLI をダウンロード・インストールしてご利用ください。また、より複雑なクラウドのインフラ環境を構築したい場合は、Azure Resource Manager をご利用いただき、再利用可能なテンプレートを作成してください。例えば、こちらにある、数百にわたる Azure Resource Manager Quickstart Templates をご利用いただくことでより早くご利用いただけます、これらは全てGitHub におかれています。

Java Web アプリケーションの監視


Java web application monitoring with Application Insights
Application Insights という機能を利用すると Java の Web アプリケーションの使用状況やパフォーマンスなどをグラフィカルに監視できるようになります。詳しくは下記をごらんください

Get started with Application Insights in a Java web project
Application Insights for Java web apps that are already live

Application Insight のサンプルはこちらの GitHub にあります。

他にも、様々なサービスを利用いただけますが、これから継続して情報をお届けします。
Java で Web アプリケーションを開発する方も、ぜひ Microsoft Azure をぜひ触れてみてください。

2016年1月23日 at 6:34 午後 1件のコメント

Microsoft Java DevOps ハッカソン@JJUG CCC 2015


JJUG CCC 2015 Fall が2015年 11月 28日 (土) にベルサール新宿グランド(東京都新宿区西新宿8-17-3 住友不動産新宿グランドタワー) で開催されます。

今回、日本マイクロソフト株式会社は JJUG CCC にプラチナ・スポンサーとして参加し、Java の開発者と運用者による DevOps ハッカソンを2日間で実施します。このハッカソンは過去2度程実施していますが、いずれの参加者も参加してよかった他の方にもぜひお勧めしたいといわれている、とても有意義なハッカソンです(下記の参加レポートをご参照)。
みなさま、Microsoft Azure のプラットフォーム上で、 Jenkins や今はやりの Docker などを利用して 継続的インテグレーションやデリバリ(CI や CD)を体感してみませんか?今回は、JJUG との共催という事で、開発者は Java デベロッパーのみなさまが対象となります。

参加のご登録はコチラから
 ■ 開発者の方はコチラ
 ■ インフラ技術者の方はコチラ

( ※ 参加可能な人数に限りがあるため、JJUG CCC の参加登録とは別途、登録サイトをご用意しています。JJUG CCC の参加登録はコチラから行ってください。)



ご案内文
DevOps はソフトウエアデリバリのライフサイクルを早める考え方で、短期間で開発、 運用を繰り返し、一日に5 回以上新しいサービスをリリースする企業も出てくるなど、DevOps のビジネス価値、効果は昨今たいへん注目されています。      

しかし DevOps が何を指すのかは人やベンダーによって言うことがまちまちで、その多くはツールのみの話に終始していますが、ツールは DevOps の要素のひとつであり、実際は人、プロセス、さまざまな要素が関係します。      

アプリケーション開発者、そしてインフラ技術者でチームを構成し、DevOps のプラクティスを適用して、Infrastructure as Code の自動化技術を使いながら本物のDevOps が体験できるイベントを企画しました。

ぜひ奮ってご参加ください。


過去に開催した DevOps ハッカソンの参加レポートは下記にリンクしています。
● メディアの記事
http://codezine.jp/article/detail/8944
http://www.atmarkit.co.jp/ait/articles/1509/10/news168.html

● 参加者のブログ
http://heartbeats.jp/hbblog/2015/09/microsoft-devops-hackathon.html

http://blog.modd.com/entry/2015/09/07/151421
http://changesworlds.com/2015/09/devops-hackathon-day-2-done/
http://newscentral.exsees.com/item/2e7e6c6899c626e2baddb7cdeaaed62d-d28352a527a1d995287ddd23891859aa

参加のご登録はコチラから
 ■ 開発者の方はコチラ
 ■ インフラ技術者の方はコチラ

2015年11月6日 at 2:48 午後

【学生さま向け】Microsoft Azure Web App と NetBeans (Maven) の FTP 連携

前回、Microsoft Azure と JDK、NetBeansのインストールをしました。今回は、デスクトップの PCで開発したアプリケーションをMicrosoft Azure上に公開する方法について説明します。

まず、Microsoft Azure の管理ポータル・サイトにログインをします。管理ポータルから「+新規」のリンクを押下し、「Web + モバイル」を選択してください。DreamSparkプログラムで、無償で利用できるサービスの一覧が表示されます。ここで「Web App」を選択してください。

「Web App」を選択すると下記の画面が表示されます。ここで、「Webアプリ」にサービスを識別するための文字列を入力し、「サブスクリプション」に「DreamSpark」が選択されていることを確認してください。その後、「App Service プラン/場所」を押下してください。

「新規作成」を選択すると下記の画面が表示されます。ここで「App Serviceプラン」にプランの識別名を入力してください。次に「場所」を指定します。ここでは「Japan West」を選択してください。最後に「価格レベル」を押下し「1GB」を選択してください。

選択すると下記の画面が表示されます。「OK」ボタンを押下してください。

「OK」ボタンを押下すると下記の画面が表示されますので、「作成」ボタンを押下してください。

「作成」ボタンを押下するとMicrosoft Azureの管理ポータル画面で「Web Appをデプロイしています」というメッセージがしばらく表示されます。

「Web App」が問題なく作成すると下記の画面が表示されます。



ここで、画面の右ペインから「アプリケーション設定」を選択してください。選択すると下記の画面が表示されます。今回は、JavaのWebアプリケーションをJettyという実行環境(Webコンテナという)上で動作させます。「Javaバージョン」から「Java 8」を選択し、「Javaマイナーバージョン」で「最新」を選択してください。次に「Webコンテナ」から「Jetty 9.1.0v20131115」を選択してください。また将来的に、WebSocketのアプリケーションを作成するため、「Webソケット」を「オン」に設定してください。最後に画面上部の「保存」ボタンを押下してください。以上で、Microsoft Azure 上でJettyを動作させる環境が整いました。

次に、Microsoft Azureの管理ポータルから「Web App」のトップページに移動します。ここで「FTP/デプロイメント ユーザ名」に対するパスワードを設定します。「すべての設定」から「デプロイ資格情報」を選択してください。すると下記の画面が表示されます。ここで「パスワード」、「パスワードの確認」に同じパスワードを入力して最後に「保存」ボタンを押下してください。



新しいパスワードは 8 ~ 60 文字でなければなりません。また、次のうちの 2 つの文字グループの文字を含んでいる必要があります:
グループ 1: 大文字 (A ~ Z)、
グループ 2: 小文字 (a ~ z)、
グループ 3: 数字

FTP接続用のパスワード設定が完了したのち、実際にFTPを利用してMicrosoft Azureに接続できるかを確認します。管理ポータルから「プロパティ」を選択してください。選択するとプロパティの一覧が表示されますので、「FTPホスト名」の右にあるボタンを押下してください。押下するとクリップボードにFTPホスト名がコピーされます。

次に、Windows、もしくは Mac のターミナルからコマンドを実行します。Windowsの場合、「コマンドプロンプト」を起動してください。コマンドプロンプトはスタートメニューから「Command」と入力することで検索できます。下記のアイコンが表示されたらアイコンを押下してください。

「コマンドプロンプト」を起動すると下記の画面が表示されます。ここで、ftpコマンドを実行してMicrosoft Azureに接続します。

「FTPホスト名」はご自身の環境に合わせて記入してください。「コマンドプロンプト」の左上のアイコンから「編集(E)」→「貼り付け(P)」でクリップボードにコピーしたFTPホスト名をコマンドプロンプトに貼り付けることもできます。※ 貼り付けを行う際は、「ftp://」の部分を削除してホスト名だけ記述してください。

具体的には、コマンドプロンプトで下記の太字で示したコマンドを実行して接続ができるか、コマンドを実行できるかを確認してください。

$ ftp waws-prod-os1-001.ftp.azurewebsites.windows.net
Trying 138.91.24.26…
Connected to waws-prod-os1-001.drip.azurewebsites.windows.net.
220 Microsoft FTP Service
Name (waws-prod-os1-001.ftp.azurewebsites.windows.net:yoterada):
     yosshi2007-jetty\yosshi2007-dep
331 Password required
Password: [Azure ポータルで設定したパスワード]
230 User logged in.
Remote system type is Windows_NT.
ftp> ls
229 Entering Extended Passive Mode (|||10264|)
125 Data connection already open; Transfer starting.
10-13-15 10:49AM LogFiles
10-13-15 10:49AM site
226 Transfer complete.
ftp> cd site
250 CWD command successful.
ftp> ls
229 Entering Extended Passive Mode (|||10265|)
125 Data connection already open; Transfer starting.
10-13-15 10:49AM wwwroot
226 Transfer complete.
ftp> cd wwwroot
250 CWD command successful.
ftp> ls
229 Entering Extended Passive Mode (|||10271|)
125 Data connection already open; Transfer starting.
10-13-15 10:49AM 202392 hostingstart.html
226 Transfer complete.
ftp> quit

上記で、Microsoft Azure 上でJetty環境を構築し、FTPで接続できるようになりました。
 次に、ローカルのデスクトップ環境でJavaのWebアプリケーションを開発し、開発したアプリケーションをMicrosoft Azureに配備(デプロイ)します。まず、ローカルの環境でNetBeansを起動してください。
 NetBeans を起動したのち、新しいプロジェクトを作成します。下記の画面のようにNetBeansのメニューから「ファイル(F)」を選択し「新規プロジェクト(W)…」を押下してください。

選択すると下記の新規ポロジェクトを作成するためのウィザード画面が表示されます。ここで「カテゴリ(C) :」から「Maven」を選択し、「プロジェクト(P):」から「Webアプリケーション」を選択して「次 >」ボタンを押下してください。



ボタンを押下すると下記の画面が表示されます。ここで「プロジェクト名(N):」に「Azure-Jetty9-WebSocket-Chat」と入力し「次 >」ボタンを押下してください。



ボタンを押下すると下記の画面が表示されます。ここでは、ローカル・デスクトップ環境の実行環境とJava EEバージョンを指定します。今回は、何も変更せずに「終了(F)」ボタンを押下してください。



ボタンを押下するとしばらくして下記のような画面が表示されます。

NetBeansをインストールした直後に、Mavenプロジェクトを作成した場合、セントラル・レポジトリより大量のファイルを入手する必要があります。依存するファイルをすべて入手するために、下記の画面のようにプロジェクトを右クリックし「依存性でビルド」を実行してください。

「出力 — プロジェクトの作成」の部分に緑色の文字で「BUILD SUCCESS」と表示されれば成功です。

次に、本WebアプリケーションをJetty上で動作させるための設定を行います。「Webページ」のディレクトリを右クリックし「新規」を選択したのち「フォルダ…」を押下してください。

「フォルダ」を押下すると下記の画面が表示されます。ここで「フォルダ名(N):」に「WEB-INF」と入力し「終了(F)」ボタンを押下してください。

次に作成した「WEB-INF」フォルダを右クリックし「新規」を選択したのち、「その他…」を押下してください。

「その他…」を押下すると下記の画面が表示されます。ここで「カテゴリ(C):」から「XML」を選択し「ファイル・タイプ(F):」から「XMLドキュメント」を選び「次 >」ボタンを押下してください。

「次 >」ボタンを押下すると下記の画面が表示されます。ここで「ファイル名(N):」に「jetty-web」を記入し「次 >」ボタンを押下してください。



「次 >」ボタンを押下すると下記の画面が表示されます。「終了(F)」ボタンを押下してください。

「終了(F)」ボタンを押下するとXMLファイルが自動的に作成されます。作成されたXMLファイルの内容を一旦すべて削除し、下記を記載してください。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="contextPath">/Azure-Jetty9-WebSocket-Chat</Set>
</Configure>

次に、統合開発環境からFTPでMicrosoft Azureにファイルを転送するための設定を行います。
 今回、Mavenというビルドツールを利用しています。Mavenは必要な情報やローカルのレポジトリを利用者のホームディレクトリ上で管理します (.m2ディレクトリ)。たとえば、Windows 環境の場合、「ローカルディスク」→「ユーザ」→「ユーザ名」→「.m2」にあります。

Mac OS/X環境の場合、「Machintosh HD」→「ユーザ」→「ユーザ名」→「.m2」にあります。

この「.m2」ディレクトリに移動したのち「FTPホスト」に対する接続設定をおこないます。「settings.xml」というファイルを下記の手順で作成してください。「.m2」ディレクトリに移動し、マウスを右クリックし「新規作成(X)」→「テキスト ドキュメント」を選択してください。

「テキスト ドキュメント」のファイル名を、まずは「settings.txt」として保存し、下記の内容を記載してください。

記入内容の例(***** は Microsoft Azureで設定したパスワード)

<settings>
    <servers>
        <server>
            <id>ftp-repository</id>
            <username>yosshi2007-jetty\yosshi2007-dep</username>
            <password>********</password>
        </server>
    </servers>
</settings>

テキストの編集が終わったのち、別名でファイルを保存します。メニューより「ファイル」→「名前をつけて保存(A)…」を押下してください。

「名前を付けて保存(A)…」を押下すると下記の画面が表示されます。ここで、まず「ファイルの種類(T):」を「すべてのファイル」に変更してください。そして次に、「ファイル名(N):」に「settings.xml」と記載し「保存(S)」ボタンを押下してください。

「settings.xml」を作成したら、テキストファイルは不要ですので削除しておきます。「settings.txt」を右クリックし「削除(D)」を押下してください。

ここまでの設定を正しく完了すると「.m2」ディレクトリには「repository」ディレクトリと「settings.xml」ファイルの2つが存在しています。

FTPへの接続設定が終わったのち、NetBeansの画面に戻ってください。「settings.xml」ファイルが正しく作成されている場合、NetBeansの環境からも「settings.xml」ファイルが参照できるようになります。

上記でFTPホストへの接続用の設定が完了です。

次に、Mavenプロジェクトの構成を行います。プロジェクトの構成をおこなうためMavenではPOM(Project Object Model) を設定します。今回NetBeansでMavenプロジェクトとしてプロジェクトを作成しましたので、すでに「プロジェクト・ファイル」の配下に設定用のファイル「pom.xml」ファイルが存在しています。このファイルを修正してください。

今回、プロジェクトをコンパイルしてビルドした後、自動的にFTPホストに対して成果物を転送するように設定します。pom.xml に追加する XML のコードは下記でハイライトした2箇所です。特に、ftp://waws-prod-os1-001.ftp.azurewebsites.windows.netと記載している箇所は注意してください。ここに記載する内容は、Microsoft Azureのポータルで記載されたFTPホスト名を指定します。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany</groupId>
    <artifactId>Azure-Jetty9-WebSocket-Chat</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>Azure-Jetty9-WebSocket-Chat</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ftp</artifactId>
                <version>1.0-beta-3</version>
            </extension>
        </extensions>
        <plugins>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.1.0.v20131115</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <version>1.0-beta-3</version>
                <executions>
                    <execution>
                        <id>upload-war</id>
                        <phase>install</phase>
                        <goals>
                            <goal>upload</goal>
                        </goals>
                        <configuration>
               <fromDir>${basedir}/target</fromDir>
    <includes>${project.build.finalName}.war</includes>
                            <url>
  ftp://waws-prod-os1-001.ftp.azurewebsites.windows.net
              </url>
            <toDir>/site/wwwroot/webapps/</toDir>
                         <serverId>ftp-repository</serverId>
                        </configuration>
                    </execution>
                </executions>
            </plugin>  
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>7.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>


「pom.xml」ファイルを修正したのち、NetBeansのプロジェクトを確認すると下記のような画面が表示されています。MavenのプロジェクトからFTPコマンドを実行するためのライブラリ(wagonのプラグイン)が不足しているため、プラグインのライブラリを利用できるようにMavenのセントラル・レポジトリから必要なファイルを入手してください。ライブラリを入手するために、プロジェクトを右クリックしたのち「依存性でビルド」を押下してください。

「依存性でビルド」を実行すると必要なファイルを自動的にネットワーク経由で入手しビルドを実行します。また、ビルドが完了すると指定したFTPホストに対して自動的にファイルを転送します。すべての作業が成功すると緑色の文字で「BUILD SUCCESS」と表示されます。

以上で、NetBeansのプロジェクトのビルドからFTPホストへのファイル転送までが完了です。実際に作成したプロジェクトがサーバ上で利用できるようになっているか確認しましょう。
Microsoft Azure のポータル画面から、「http://」ではじまるURLのリンクを押下してください。

リンクを押下するとブラウザが起動し自動的に下記の画面が表示されます。下記のように表示されていれば成功です。

次に、作成した Web アプリケーションのアドレス(コンテキスト・ルート)に対して接続してください。

アクセスするURLの例
http://azure-hostname.azurewebsites.net/Azure-Jetty9-WebSocket-Chat/

アクセスするとデプロイしたアプリケーションのトップページが表示されます。

次に、NetBeansに戻り、index.htmlファイルを押下したのち、<h1>Hello World !</h1>と記載されている箇所を<h1>こんにちは 世界!</h1>と修正してください。



ファイルを修正したのち、プロジェクトを右クリックし「ビルド」を押下してください。

「ビルド」を選択すると自動的にビルドが実行されFTPホストに対してファイル転送がおこなわれます。正常にビルドが完了すると緑色の文字で「BUILD SUCCES」が表示されます。

「BUILD SUCCESS」が表示されたのち、ブラウザで再読み込みをしてください。下記のように修正した内容が反映されていれば成功です。

今回は、Microsoft Azureと統合開発環境で作成したアプリケーションを連携するための設定を行いました。上記の設定が完了すると、ビルドを実行するたびに自動的にWebアプリケーションを更新できるようになります。

2015年10月16日 at 5:24 午後

【学生さま向け】Java Web アプリケーション開発の準備 (JDK&NetBeansのインストール)

先日、DreamSpark プログラムについて紹介しました。本エントリでは具体的に、Azure 上で Web アプリケーションを動かすための開発環境の準備についてご紹介します。
DreamSpark プログラムについて
Microsoft Azure for DreamSparkプログラムの登録方法のご紹介

これから、DreamSpark で提供されるMicrosoft Azure Web Appsを利用してJavaのWebアプリケーションを作成します。Javaのアプリケーションを作成するために、まずは自分のパソコンに JDKと統合開発環境をインストールしてください。自分のパソコンで開発したアプリケーションを FTP を使って Azure 環境にコピーする方法を、本エントリと次のエントリで紹介します。(※ FTP 以外の方法もありますが今回は簡単にするため FTP を使用します。)

JDK 8u60は下記のURLから入手することができます。URLにアクセスしてください。
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
すると下記の画面が表示されます。ここで「Accept License Agreement」のチェックボックスにチェックをつけ、インストールする対象のシステム用のJDKのリンクを押下してください。
Java SE Development Kit 8 の入手
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

リンクを押下すると、Windows系OSの場合、下記のダイアログが表示されます。ここでは「保存(S)」ボタンを押下してください。

保存ボタンを押下すると、ダウンロードが始まります。ファイルをすべてダウンロードしたのち、「ダウンロード」ディレクトリを開いてください。ダウンロードが完了するとディレクトリ上にファイルが保存されていります。ここで、マウスの右クリックをして「管理者として実行(A)」を選択してください。

選択すると下記の画面が表示されます。JDKのインストールを行いますので、「はい(Y)」ボタンを押下してください。

ボタンを押下すると、JDKインストーラのウィザード画面が表示されます。このウィザードではインストールに必要な設定やオプションを指定することができます。ウィザード画面をすすめるため「次(N) >」ボタンを押下してください。

ボタンを押下すると下記の画面が表示されます。今回はデフォルト設定でインストールを行うため、そのまま「次(N) >」ボタンを押下してください。

ボタンを押下すると、ファイルのコピーが始まります。

必要なファイルをコピーしたのち、下記の画面が表示されます。ここではJRE (Java実行環境)のインストール場所を指定します。ここでもデフォルトの設定を利用するため、「次(N) >」ボタンを押下してください。

ボタンを押下すると、実際にJDKのインストールが始まります。
すべてのインストールが正常に完了すると下記の画面が表示されます。正常に完了した場合、「閉じる (C)」ボタンを押下してください。

JDK のインストールが完了したのち、Java の統合開発環境をインストールします。今回、統合開発環境としてNetBeans を利用します。NetBeans は下記のURLから入手できます、ブラウザからURLにアクセスしてください。
https://netbeans.org/downloads/?pagelang=ja

ブラウザでアクセスすると下記の画面が表示されます。
https://netbeans.org/downloads/?pagelang=ja

今回、JavaでWebアプリケーションを開発するため、サポートテクノロジーとして「Java EE」を選択します。Java EEの「ダウンロード(無償, 186MB)」のボタンを押下してファイルを入手してください。ダウンロードが完了すると「ダウンロード」ディレクトリを開いてください。下記のファイルが保存されています。ここでNetBeansをインストールするために、「netbeans-8.0.2-javaee-windows」のアイコンを右クリックして「管理者として実行(A)」を選択してください。

選択すると、NetBeans のインストーラが起動し下記の画面が表示されます。NetBeansをインストールするため「はい(Y)」ボタンを押下してください。

ボタンを押下すると、NetBeansのインストーラのウィザード画面が表示されます。今回、Apache Tomcat 8.0.15のインストールは不要ですので、デフォルトの設定のまま「次 (N)」ボタンを押下してください。

ボタンを押下すると下記の画面が表示されます。NetBeansの使用許諾契約書の内容に同意が求められますので「ライセンス契約条件に同意する(A)」にチェックし「次 (N) >」ボタンを押下してください。

ボタンを押下すると下記の画面が表示されます。NetBeans上でJUnitを利用するために、JUnitの使用許諾、インストールの有無を確認します。ここでは「ライセンス契約条件に同意する (A)。JUnitをインストール」にチェックし「次(N) >」ボタンを押下してください。

ボタンを押下すると下記の画面が表示されます。下記は、NetBeansのインストール先のディレクトリ名と、インストール済みのJDKの場所を指定します。デフォルトの設定に従いインストールを行うため、「次 (N) >」ボタンを押下してください。

ボタンを押下すると、下記の画面が表示されウィザードの設定内容をサマリーで表示します。特に設定内容に問題がない場合は「インストール (I)」ボタンを押下してください。

ボタンを押下するとインストールが始まります。

インストール時に特に問題がなく正常に完了すると下記の画面が表示されます。「終了 (F)」ボタンを押下してインストールを完了してください。

NetBeanのインストールが完了すると、デスクトップ上にNetBeansのアイコンがコピーされます。このアイコンをダブルクリックすることでNetBeansを起動することができます。

「NetBeasns IDE 8.0.2」のアイコンをダブルクリックしてください。ダブルクリックすると下記の画面が表示されます。

以上で、JDKとNetBeansのインストールは完了です。次回からWebのアプリケーション開発していきましょう。

2015年10月15日 at 5:59 午後

Java on Microsoft Azure アンケートご協力のお願い

Microsoft Azure 上で Java をご利用の皆様へ、アンケートのご協力のお願い。本日 US のメンバーから依頼がありました。内容は現在のご使用状況に関するお問い合わせになります。大変お手数をおかけして恐縮ですがぜひアンケートにご協力いただけませんでしょうか。

https://www.surveymonkey.com/r/MSJavaSurvey2015

アンケートのご質問内容を簡単ですが日本語にも訳しました。下記の内容に従いご記入いただけないでしょうか。



1. 継続して情報交換するための情報(お名前、会社名、国、メールアドレス、電話番号)

2. クラウド上でどのような Java アプリを構築しているか?
  本番、開発、計画中、検討中
  Webアプリ、デスクトップ、モバイル、IoT

3. 作業用の OS 環境
  Windows, Mac, Linux
  開発マシン、オンプレサーバ、クラウド IaaS, クラウド PaaS

4. Azure 技術の利用経験
  各カテゴリごとに下記を選択
  * Unaware(知らない)
  * Aware but never tried(知ってるけど試してない)
  * Tried but not using(試したけと使ってない)
  * Currently Using(現在使っている)

  カテゴリ:
  * WebApps
  * Active Directory
  * Appication Insights
  * Azure Cloud Services
  * Azure Media Services
  * Azure Service Management
  * Azure Service Runtime
  * Azure SQL DB(JDBC)
  * Azure Virtual Machine(IaaS)
  * Document DB
  * HDInsight
  * Messaging(AMQP, Service Bus Queue, Service Bus Topics)
  * SendGrid
  * Storage(Blog, Queues, Tables)
  * Team Foundation Server(TFS)
  * Twillio
  * Visual Studio Online
  * Other

5. Java 開発者用のツールの利用経験
  各カテゴリごとに下記を選択
  * Unaware(知らない)
  * Aware but never tried(知ってるけど試してない)
  * Tried but not using(試したけと使ってない)
  * Tried but didn’t meet our need(試したがニーズにあってなかった)
  * Currently Using(現在使っている)

  * Azure Toolkit for Eclipse
  * Azure Toolkit for Eclipse Experience menu
  * Application Insights SDK for Java
  * Application Insights SDK for Java Experience menu
  * Azure SDK for Java
  * Azure SDK for Java Experience menu
  * Azure DocumentDB Java SDK
  * Azure DocumentDB Java SDK Experience menu
  * Azure Storage SDK for Java
  * Azure Storage SDK for Java Experience menu
  * Azure Redis Cache
  * Azure Redis Cache Experience menu
  * Java REST wrapper for Azure Notification Hubs
  * Java REST wrapper for Azure Notification Hubs Experience menu
  * Azure Active Directory Authentication Library (ADAL) for Java
  * Azure Active Directory Authentication Library (ADAL) for Java Experience menu
  * Azure Slave Plugin for Hudson
  * Azure Slave Plugin for Hudson Experience menu
  * Azure Slave plugin for Jenkins
  * Azure Slave plugin for Jenkins Experience menu
  * Azure Storage Plugin for Hudson
  * Azure Storage Plugin for Hudson Experience menu
  * Azure Storage Plugin for Jenkins
  * Azure Storage Plugin for Jenkins Experience menu
  * Azure Toolkit for IntelliJ
  * Azure Toolkit for IntelliJ Experience menu
  * Azure Command Line Interface (CLI)
  * Azure Command Line Interface (CLI) Experience menu
  * Team Foundation Server (TFS) Team Explorer Everywhere (TEE) plugin
  * Team Foundation Server (TFS) Team Explorer Everywhere (TEE) plugin Experience menu
  * Visual Studio Online (VSOL) Java Integration
各ツールに対するフィードバックを自由にご記載ください。

6. 他のクラウドプラットフォームに対する経験
  * Azure
  * AWS
  * VMWare Cloud Services
  * IBM BlueMix/SoftLayer
  * Oracle Cloud
  * Google Cloud
  * Heroku
  * Digital Ocean
  * RackSpace
上記のクラウド上で提供しているサービスについて教えてください。

7. What other non-Java specific technologies are you using with your Java workloads?
  Java と共に利用している他の技術について教えてください
  * Cassandra
  * CouchBase
  * CouchDB
  * MongoDB
  * MySQL
  * PostgreSQL
  * Redis
  * SoIR
  * Android
  * iOS

8. ご利用中の Java の技術(該当項目に全てチェックしてください)

9. http://azure.microsoft.com/develop/java/ のサイトにある Java Dev Center の利用項目と、参照方法(Azure 上からやブックマーク、検索エンジンなど)

10. 今後 2年間で時間を費やして勉強、もしくは取得したいテーマ

  * IoT
  * IoT Planning menu
  * Micro services
  * Micro services Planning menu
  * Containers
  * Containers Planning menu
  * Machine Learning
  * Machine Learning Planning menu
  * Big Data

以上、どうぞご協力のほどよろしくお願いします。

2015年10月14日 at 3:52 午後

【学生さま向け】Microsoft Azure for DreamSparkプログラムの登録方法のご紹介

昨日は、DreamSparkプログラムについてご紹介しました。

今日は、具体的に Microsoft Azure for DreamSpark プログラムへの登録方法を紹介します。学生の皆様が、Microsoft Azure for DreamSparkのプログラムに参加するためには、コチラにアクセスしてください。
アクセスすると下記の画面が表示されます。

ここで「1. DreamSpark アカウントにサインインするか、DreamSpark アカウントを作成します」のリンクを押下してください。押下すると下記の画面が表示されます。すでに、Microsoftアカウントを持っている場合は、アカウント(メールアドレスまたは電話番号)とパスワードを入力し「サインイン」ボタンを押下してください。

Microsoft アカウントをお持ちでない場合、「新規登録」リンクを押下してください。押下すると下記の画面が表示されます。必要事項を入力してアカウントを登録してください。

アカウントを登録すると下記の画面が表示されます。登録したアカウント情報に紐付いた名前や生年月日が記入されていることを確認してください。

記載内容に問題がなければ、「認証する→」のリンクを押下してください。押下すると、「アカウントを作成しています。検証プロセスにリダイレクトされるまでお待ちください。」のメッセージが表示されたのち、下記の画面が表示されます。ここでは、学生(大学、専門学校など)の資格を確認する画面が表示されます。学生の検証は、下記の5種類のいずれかを選択することができます。最初に表示される画面は、「電子メールアカウントによる検証」画面です。

1. 電子メールアカウントによる検証
2. 学校のアカウントによる検証
3. 国際学生証による検証
4. 検証コードによる検証
5. ドキュメントの提出による検証

「1. 電子メールアカウントによる検証」
学校の電子メールアカウントをもっている場合、学校の電子メールアカウントを入力し検証ボタンを押下してください。

「2. 学校のアカウントによる検証」
「学校のアカウントを持っています」のリンクを押下すると下記の画面が表示されます。国から「日本国」を選択し、学校名を入力してください。すでにMicrosoftで学校名が登録されている場合は検証が可能です。学校名が登録されていない場合は別途、Microsoftへお問い合わせください。

「3. 国際学生証による検証」
「国際学生証を持っています」のリンクを押下すると下記の画面が表示されます。ISIC シリアル番号を入力し検証をおこなうことができます。

「4. 検証コードによる検証」
「検証コードを持っています」リンクを押下すると下記の画面が表示されます。Microsoftから検証コードを入手した場合は、入手した検証コードを入力して検証をおこなうことができます。

「5. ドキュメントの提出による検証」
「ドキュメントを提出します」のリンクを押下すると下記の画面が表示されます。国、証明書のお名前、学生証、学校の種類、学校名、電子メールアドレス、ドキュメント(学生証、合格通知など)の必要事項を記入してください。

「アカデミック資格の検証終了画面」
上記、いずれかの方法で学生であることを検証してください。検証が完了すると下記の画面が表示されます。

検証が完了したのち、「続行」ボタンを押下してください。押下すると下記の画面が表示されます。

「続行→」リンクを押下してください。押下すると下記の画面が表示されます。

以上で、DreamSparkのアカウントの作成は完了です。上記の手順で、DreamSparkで提供されるサービスをすべて利用できるようになりました。

「2. ソフトウェアのダウンロード」のタブを押下すると、「学生向けソフトウェア カタログに移動→」のリンクがあります。このリンクを押下すると、利用可能なソフトウェアの一覧画面が表示されます。また、ソフトウェア カタログは下記のURLへのアクセスでも表示できます。

「DreamSparkプログラムで利用可能なソフトウェア一覧」


https://www.dreamspark.com/Student/Software-Catalog.aspx

学生の皆様が一覧画面から選択可能な無償ソフトウェアは下記の通りです。

開発者およびデザイナー向けツール

  • Windows ストア開発者アカウント
  • Visual Studio Community 2015
  • Tamarin for Students
  • GitHub Student Developer Pack
  • Windows Embedded 8.1 Industry Pro with Update
  • Team Explorer Everywhere for TFS 2013
  • Team Explorer Everywhere for TFS のUpdate 3
  • XNA Game Studio 4.0 Refresh
  • Windows SDK 向け Kinect
  • Kodu ゲームラボ
  • Small Basic
  • Microsoft Mathematics 4
  • Robotics Developer Studio 4
  • Windows Embedded Studio 4
  • Windows Embedded Compact 7
  • Windows Multipoing Mouse SDK
  • Windows Embedded Standard
  • Visual Studio LightSwitch 2011

サーバとアプリケーション

  • Microsoft Azure for DreamSpark
  • SQL Server 2014
  • SQL Server 2014 Service Pack 1
  • Windows Server 2012
  • Windows Server 2012 R2 with Update
  • Microsoft OneNote
  • SQL Server 2012
  • SQL Server 2012 Service Pack 2
  • SQL Server 2008 R2 Developer
  • Windows Server 2008 R2

トレーニングと資格

  • Microsoft Virtual Academy
  • マイクロソフト認定資格
  • MS Press の無料電子書籍
  • Microsoft Imagine Cup
  • PluraInsight

Microsoft Azure for DreamSparkの設定


上記で、DreamSparkの設定は完了しました。ここからは、DreamSparkのアカウントを利用して Microsoft Azure を無償で利用するための設定を説明します。 「DreamSparkプログラムで利用可能なソフトウェア一覧」 から「Microsoft Azure for DreamSpark」のリンクを押下してください。

リンクを押下すると下記の画面が表示されます。上記までの設定でDreamSparkのアカウントを作成済みの場合は、「2 今すぐ登録→」のリンクが押すことができる状態になっています。「2 今すぐ登録→」のリンクを押下してください。

リンクを押下すると下記の画面が表示されて、DreamSparkのアカウントとMicrosoft Azureのアカウントの紐付けを行います。

しばらくすると下記の画面が表示されます。必要事項を記入してMicrosoft Azureにサインアップします。

「2 電話で確認」では携帯電話を利用して、正しい個人であるか認証します。ご自信の携帯電話番号を入力したのち「テキストメッセージを受信」ボタンを押下してください。しばらくすると、入力した携帯電話番号に下記のようなショートメールが届きます。

ショートメールに届いた番号を入力し「コードの確認」ボタンを押下してください。

コードの確認が完了すると緑色のマークが付加され、「2 電話で確認」が「COMPLETE」になります。

3 契約で、「サブスクリプション契約、プランの詳細、プライバシーに関する声明に同意します。」にチェックし「サインアップ→」ボタンを押下してください。ボタンを押下すると下記の画面が表示されます。

学生の皆様は、「Microsoftは、特別な Microsoft Azure プランに関する情報のご連絡に、お客様の電子メールおよび電話番号を使用する場合があります。」にはチェックをつけないでください。ここにチェックがついていると、マイクロソフトから直接お電話やメールによる連絡が入る可能性があります。

すべての準備が完了すると下記の画面が表示されます。

「サービスの管理を開始する >」ボタンを押下してください。正しく、設定されている場合、下記Microsoft Azure Portal画面が表示されます。

以上で、DreamSparkのアカウントを使用してMicrosoft Azureの一部の機能が利用できるようになります。

学生の皆様は、ぜひこの DreamSpark プログラムを利用して Microsoft Azure の一部の機能をお試しください。

2015年10月14日 at 1:22 午後 1件のコメント

DreamSpark プログラムについて

今日は、学生(中学、高校、専門学校、大学、大学院、社会人学生)の皆様向けのプログラム「DreamSpark」をご紹介します。

DreamSpark プログラムは、もともと、学生や教員のみなさまのための技術の学習や研究をサポートするためのプログラムとしてマイクロソフトが用意するプログラムです。サービスは「学生様向け」と「教育機関向け」の二つのプログラムが用意されています。この中で、今回私がご紹介するのは「学生様向け」のプログラムです。

学生さんが、マイクロソフトのアカウントに個別にご登録いただくことで
さまざまなサービスを無償でご利用いただくことができます。実際にご利用いただけるサービスの一覧は下記よりご参照いただけます。

学生の皆様は、アカウントをご登録だけで上記に記載されるソフトウェアを、無償で利用できます。とくに最近、Visual Studio や Windows Server, SQL Server などのツールだけではなく、Microsoft Azure で提供されるサービスも一部利用できるようになっています (Microsoft Azure for DreamSpark) 。

「Microsoft Azure for DreamSpark」

DreamSparkのアカウントを利用して具体的には、次のMicrosoft Azureサービスを無料で利用いただけます。

Microsoft Azure for DreamSpark で提供するサービス

  • Azure App Service Web Apps:
    簡単に説明すると、IIS, Tomcat, Jetty などのサーバ製品を利用して、Java や ASP.NET, PHP, Node.js, Python などのプログラミングで実装した Webアプリケーションを提供できるようになります。またGitHubやJenkinsなどと連携して継続的インテグレーションを実現することもできます。
  • ClearDB (MySQL)データベース:
    Web Appsで提供する、IISやTomcat, Jettyとデータベースを連携したWebアプリケーションを作成することができます。
  • Application Insights
    Webアプリケーションの可用性、パフォーマンス、および使用状況に関する監視をおこなうことができます。
  • Visual Studio Online:
    チームでソフトウェア開発をおこなうための製品です。チームの間で開発計画や、ソースコード管理、自動的なビルドやデプロイなど継続的インテグレーションから継続的デリバリまで実現ができます。

Microsoft Azure for DreamSpark は無料で利用でき、時間制限もとくにありません。間違って料金が課金されるおそれもありません。必要に応じて費用の掛かるサービスをご利用いただくこともできますが、安価(無償)でクラウドで実現するサービスをご利用いただけるこのプログラムに、ぜひご登録ください。

今すぐ「DreamSpark アカウントにサインインするか、DreamSpark アカウントを作成します」をクリックしてください。

2015年10月13日 at 2:06 午後 2件のコメント

マイクロソフトのエバンジェリストとして活動開始

この度
日本マイクロソフト株式会社に、テクニカル・エバンジェリストとして、7/11(土)(初出社は 7/13(月))付けで入社しました。
皆様、これから、どうぞ宜しくお願いします。

私の日本マイクロソフトでの役割は、簡単に申し上げるならば、
Microsoft Love OSS !!」のメッセージを日本全国の開発者・運用者の皆様にお届けすることです。

マイクロソフトといえば、何と言っても、Microsoft Windows, Office といった製品を一番最初にイメージされる方が多いかと思います。私も入社前、少なくとも5年~8年前までは、そのイメージしかありませんでした。当時 は、今までのキャリア(Unix, Java)から転職先として考えることは難しかったかと思います。

そんな私が、今年、新しく変わった(変わろうとしている)、マイクロソフトと出会うことができました。今年 GoAzure2015 のイベントで、登壇機会を頂きイベントに参加しました。そこで私は、Microsoft Azure 上で Java の Web アプリケーションを動作させるデモや説明を行いましたが、そのイベントは、私の今まで持っていたマイクロソフトのイメージを大きく払拭するイベントでし た。

プログラミング言語としては .NET 以外にRuby, PHP, Java のセッションが提供され、動作環境も Windows に縛られず Linux 上で構築してもまったく問題なく、 むしろ Welcome 状態でした。他のご登壇者が、「これをWindows環境でだけ使わせておくのはもったいない」といったようなメッセージを出されていたのを覚えています。このイベントで、恐らく私だけでなく多くの参加者が、「以前のマイクロソフトと変わったなぁ!!」という印象を持たれたのではないかと思いま す。そして、今のマイクロソフトであれば、私の経験を活かせる場があるのではないかと感じ、今日の入社につながりました。

Microsoft の社内では、便宜上 Microsoft の既存の製品以外を(例えそれが本当のオープン・ソース製品でなくても、あえて分かっていて) OSS と呼んでいるそうです(社内にも正しくOSSを啓蒙していこっと!!)。私は、その中でも Java や Mac, Linux などに関連する部分を担当させていただく予定です。

* Java on Microsoft Azure
* Visual Studio Code for Mac & Linux
* Minecraft for Kids/Student? (個人的にはホロレンズもやってみたい!!)
* その他

Java on Microsoft Azure は今すぐに使えますし、とても便利なサービスが提供されています。その魅力を伝えると共に、今後出て来る新しい機能などもタイムリーに情報発信していきたいと考えています。また、Visual Studio Code の啓蒙活動は、恐らく私にとって大きなチャレンジになると思います。Java の統合開発環境といえば Eclipse, IntelliJ, NetBeans などが有名で、もちろん各統合開発環境はとても便利です。Visual Studio Code は Java の開発者の皆様にとっては、えっ?!Visual Studio で Java の開発もできるの?!という方が多いのではないかと思います。しかし実際には、Visual Studio Code は Minecraft の開発でも使用できますし、普通に Java アプリケーション開発に使えます。将来、JJUG CCC などで、小中高生向けに Minecraft のハンズオンなどをやってみるのも Java for Kids の一環として面白いと考えています。

最後に、
これからの活動をしていく上で、今まで同様に私が重要視したいのは Java コミュニティの皆様です。今までと同様に、私は多くの皆様とコミュニケーションをとらせて頂き、製品や機能の魅力をお伝えするだけではなく、逆に製品の扱いづらい所や改善点などのフィードバックを、皆様からたくさん頂戴したいと考えています。
頂いたフィードバックを、本社開発チームに伝える事で、将来その製品や機能がさらに使いやすく便利になれば、それが将来、皆様全員のハッピーにつながると思うためです。

GlassFish も Java EE も最初は、日本で全く無名で、全く誰にも見向きも興味も持っていただく事もなかった製品や技術でした。でも、頂いたフィードバックを元に製品開発チームと交流したり、自分の不足点やドキュメント等を改善していくことで多くの方に認知していただき使っていただけるようになりました。
この経験は、今後もかならず役にたつと信じていますし、これからもマイクロソフトがより良い製品を提供するためにも、とても重要な事だと思っています。Microsoft のプラットフォーム上で Java の開発者の皆様や、ご利用いただく皆様がハッピーになる情報をお届けしたり、将来よりハッピーになるためのフィードバックをしていきたいと考えています。

上司や同僚からも
「寺田さんは、今まで通りに Java コミュニティの皆様を大切に活動をしてください。」と言って頂いています。今まで、同様 JJUG の幹事会に参加させていただきます。

私の活動が、まさに、マイクロソフトが大きく変わった「Microsoft Love OSS !!」の証拠になると思いますので、そう思っていただけるようにこれから日々頑張って活動したいと思います。
もちろん、Windows や .NET, C# 等につきましては、今まで通り先輩エバンジェリストが大活躍で啓蒙活動してくれますのでご安心ください。

皆様、これから、どうぞ宜しくお願いします。

「Microsoft Love Java & OSS」
Microsoft Senior Technical Evangelist

2015年7月14日 at 5:44 午後 3件のコメント

Time to move on…

ついに、この日がやってきました。本日がオラクルにおける Java エバンジェリスト活動の最終日になりました。Sun からオラクルと、継続してご指導ご支援頂きました皆様、そして全国の Java コミュニティの皆様に、心から厚く御礼を申し上げます。

今後、引き続き Java コミュニティの皆様と交流を持たせていただくのは、日本オラクルの伊藤 敬さんです。
Twitter : @itakash

2001年 8月にSun Microsystems に中途入社し、早いもので14年の月日が流れました。外資系企業という出入りが多い環境の中、自身これだけよく長く続いたと思っています。Sun 時代に GlassFish という製品にめぐり会い、プリセールス兼 Java エバンジェリストとしてエバンジェリスト活動を開始しました。当時は関東を中心とした活動だったため、Sun 時代の私をご存知ない方も多いのではないかと思います。

日本全国のJavaの開発者の皆様と交流を持つようになったのは、2010年のオラクル統合後です。このオラクルでの5年間を振り返ると、今までの人生の中で最も充実し、成長させてくれた5年間だったのではないかと感じています。

活動当初は、会社の統合前後からの Java に対する情報不足、さらに最新版がしばらくリリースされていなかったこと等から、多くの開発者の皆様が Java の将来に対し不安を持っていた時期でした。この時は、皆様の前に立って話するのがとても怖かったことを、今でも昨日のことのように覚えています。当時、「Java は大丈夫です、これからも続けて進化していきます!!」といったメッセージをお届けしましたが、この言葉に「本当だろうか?!」と疑問を持たれる方もいらっしゃたのではないかと思います。

あれから5年が経過し、今ではあえて「Java は大丈夫です!!」といったメッセージを出さなくても、オラクルが Java を大切にし、オラクルの元で Java が着実に進化していることを、そして未来があることを誰しもがご理解いただいているのではないかと思います。実際オラクルになって、Java SE 7, Java EE 7, Java SE 8 をリリースし、今後も Java SE 9, Java EE 8 のリリースが予定されています。今後も Java は皆様のニーズに応え、新機能をどんどんと組みこんでいき Java Platform はさらに素晴らしい物になっていくでしょう。

私が活動を行ってきた上で、何よりも幸運だったのは、Sun 時代から Java を愛してやまない諸先輩方や数多くの友人に支えていただいたことでした。そして、日本全国の Java 開発者の皆様と親交を深めることができた事も何より幸せでした。

今日にいたるまで、私の活動を全面的に支えてくださったのは、まぎれもなく日本全国の Java コミュニティの皆様です。

JavaOne Tokyo 2012 でTwitterのハッシュタグ「#てらだよしおがんばれ」が生まれ、夜の懇親会で参加者の皆様から「胴上げ」までしていただいたことは一生忘れる事ができません。おそらく、胴上げまでしていただいたエバンジェリストは日本でも私が初めてなのではないでしょうか?

こうした事が、その後の活動にどれだけ勇気づけてくれたか計り知れません。そして、皆様のご支援がなければ今日までやってこれませんでした。

今年の Java Day Tokyo 2015 で Java の 20 周年を皆様と一緒に祝うことができ、とても幸せでした。ご参加いただいた皆様、ご登壇者の皆様、関係者の皆様、すべての皆様に心より感謝しています。

Java の 20 周年イベントを終え、そしてオラクルでの生活も5年 (Sun から14年) を終え、私にとって節目となる今年、新たな道、そして新たなチャレンジしたいと考えたことを、どうぞご理解頂けないでしょうか。

決して、会社や Java に対してネガティブな感情を持っての決断ではないことを、ご理解頂けないでしょうか。たとえ私が退職しても今後もオラクルは引き続き Java を大切にしますし、Java に対して投資を行っていきます。どうぞ、今後もJava の事を変わらずご支援いただき、安心してご利用頂けますよう宜しくお願いします。

最後に、
来週月曜日から新しい会社で働きます。新しい会社名や理由は入社後改めてご報告しますが、とても楽しみにしています。私の新しいチャレンジに対し、引き止めて頂きつつも、最後に理解を示してくださった上司に対して、今ここで改めて心より感謝の気持ちを述べたいと思います。そして、最後に温かく送り出していただいたオラクルの同僚・友人にも改めて感謝したいと思います。

私のエンジニア人生は、ずっと Java と共にありましたし、私を育ててくれたのも Java です。会社が変わっても私は Java のファンでいつづけたいと思います。そして今後は皆様と共に、外の世界から Java を応援し何らかの形で関わりたいと思います。

Sun Microsystems から Oracle まで、
お世話になったすべての皆様、本当にありがとうございました。
I Love Java.
Yoshio Terada
Oracle Java Evangelist.








2015/07/11 更新分

Twitter で頂いたメッセージ一覧(Togetter)
 #てらだよしお 退職エントリのまとめ

FaceBook で頂いたメッセージへのリンク1

FaceBook で頂いたメッセージへのリンク2

Twitter の Tweet メッセージ

2015年7月10日 at 1:00 午後 1件のコメント

CDI を理解する為に重要なレシピ

Java Day Tokyo 2015 で私が発表した内容を下記に公開しました。本セッションは、資料を作成する上で、今回ご紹介する内容を、より重点的に説明した方が良いと判断し、アジェンダに記載した若干内容を変更しお届けさせて頂きました。しかし本セッションは、日本でまだ不足している情報をお届けする内容であるため、皆様のご理解のお役に立てば誠に幸いです。

Java EE を利用して Web アプリケーション、企業アプリケーションを構築するためには、Webのデザイン、データ・アクセス部の実装、そしてそれらをつなぐビジネス・ロジックの3階層から構成する事が多いかと思います。これらの構成要素の中で、今回は、ビジネス・ロジックの実装部で重要な役割を担う CDI について焦点をあて、利用する上で重要な点について 14 点ご紹介しました。

本セッションは単に CDI の機能の紹介にとどめる事なく、何らかの処理を実装する上での課題を示し、今までの実装方法や各機能の利用上好ましくないやり方を 赤文字で “Yucky(まずい)” 示した上で注意点を促すと共に、解決策、改善方法を青い文字で説明するというやり方で説明しています。

また、CDI を正しく利用するために必要となる前提知識や、関連機能についても順に説明し、DI や CDI を理解する上で必要な情報を提供しています。今まで、CDI を限定的にしか利用していなかった開発者に対して、CDI にはこのような機能があったのか、このような使い方ができるのかといった事を理解して頂けると共に、何故 CDI が必要なのかを理解する事ができる内容になとしています。
今回、ご紹介する内容は下記になります。

問題1:リソースの参照について
問題2:ライフサイクル管理について
問題3:横断的関心事の分離方法について
問題4:値の検証方法について
問題5:依存性注入について
問題6:依存性注入対象の限定方法について
問題7:不変オブジェクトとしての注入方法について
問題8:文字で対象選択
問題9:CDI の有効化について
問題10:有効範囲の設定について
問題11:唯一の選択方法について
問題12:柔軟なインスタンスの生成方法について
問題13:アノテーションの整理
問題14:イベント処理

セッション内容を録画したビデオが下記に公開されていました。

今回、構成の都合上、アジェンダに記載しながらも扱う事ができなかった、Concurrency Utilities for Java EE や WebSocket 等につきましては、過去の資料でご紹介していますので、併せて下記もご参照ください。

2015年4月15日 at 1:19 午後 1件のコメント

Older Posts


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2024年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  

カテゴリー

clustermap

ブログ統計情報

  • 1,288,478 hits

Feeds

アーカイブ