13
Java on Azure Tomcat Starter Kit +WindowsAzure4j ででででででで WINGS ププププププ ププププ [email protected] http://www.wings.msn.to/

Java on Azure

Embed Size (px)

Citation preview

Page 1: Java on Azure

Java on AzureTomcat Starter Kit +WindowsAzure4j でクラ

ウド開発WINGS プロジェクト 山田祥寛

[email protected]://www.wings.msn.to/

Page 2: Java on Azure

Java サーブレットを Azure で動かすには?

Java アプリからストレージサービスにアクセスする方法

結局、 Java on Azure ってどうなの?

余談: 明日の LT では PHP on Azure をやります!

アジェンダ

Page 3: Java on Azure

Starter Kit for deploying Tomcat-based Java solutions on Windows Azure ( http://code.msdn.microsoft.com/azuretomcat )◦ JSP &サーブレットコンテナ Tomcat を Azure パッケージに組み込む

ためのアクセラレータ

Windows Azure Tomcat Solution Accelerator もあるけど、 こちらは古いものなので、使わない

.war ファイルをブロブから動的に組み込めるので、再デプロイが容易に

事前に必要なもの◦ Tomcat 5.5 以上、 JRE 5 以上(今回は、 Tomcat 6.0 & JRE 6 を利用)

意外と簡単にできます

Java サーブレットを Azure で動かすには?

Page 4: Java on Azure

Tomcat 起動のための Worker ロールを作成&ビルド

Tomcat 、 JRE の組み込み

>C:\Data\TomcatAccelerator \Buildme.cmd

Please enter the path for tomcat binaries: C:\apache-tomcat-6.0.29 …Please enter the path for JRE binaries : C:\Program Files (x86)\Java\jre6

Window s Azure SDK

Command Prompt で実行

Tomcat はWindows Zip 版を。

Services Installer版では不可(??)

Page 5: Java on Azure

.war ファイルをブロブにアップロード( Azure MMC 等)

接続文字列、 .war ファイルの場所を設定◦ これ以降は Visual Studio の操作で可能

.war ファイルの情報を設定

設定名 意味DiagnosticsConnectionString 診断情報の転送先DataConnectionString .war ファイルを格納したストレージWarFileBlobContainer .war ファイルを格納したコンテナWarFileBlobName .war ファイルを格納したブロブWarFileTargetName 展開する .war ファイル名

Page 6: Java on Azure

通常のデバッグ実行で起動可能◦ 接続文字列などの情報を設定していない場合はエラー

ブラウザそのものは自動で起動しないので要注意

Tomcat を開発ファブリックで実行

Page 7: Java on Azure

Windows Azure for Java ( WindowsAzure4J )を利用しよう!◦ Eclipse プラグインとして、[インストール] ウィンド

ウから導入できる◦ http://www.windowsazure4e.org/update

Azure マネージライブラリからストレージライブラリだけを抜き出した感じのライブラリ

→ いわゆる開発支援機能はほとんどない

診断系、セッション管理には未対応 (?)

Java で Azure アプリを開発するには?

Page 8: Java on Azure

ストレージサービスへのアクセス機能

ブロブ、キュー、テーブルの参照、編集などは一通り行える

Visual Studio Azure Tools 1.2 よりは高機能

Storage Explorer

Page 9: Java on Azure

普通に Java プロジェクトを生成したうえで、必要なライブラリにビルドパスを通す◦ ECLIPSE_HOME\plugins\

org.soyatec.windows.azure.java_1.0.0.201002091324\libs のすべての .jar ファイル

◦ ECLIPSE_HOME\plugins\org.soyatec.windows.azure.java_1.0.0.201002091324 フォルダそのものにも

自動ではライブラリは組み込まれないので要注意

Windows4J を利用するには?

Page 10: Java on Azure

ブロブストレージへのアクセスBlobStorage cli = BlobStorage.create(

URI.create("blob.core.windows.net"),

false,

“wings”, “***********************************“

);

cli.setRetryPolicy(RetryPolicies.retryN(1, TimeSpan.fromSeconds(5)));

BlobContainer cont = cli.getBlobContainer("javatest");

if (!cont.doesContainerExist()) {

cont.createContainer();cont.setContainerAccessControl(ContainerAccessControl.Public);

}

BlobProperties props = new BlobProperties("test");

props.setContentType("image/jpeg");

BlobContents blob = new BlobContents(

new FileStream("c:/RIMG0001.JPG"));

cont.createBlob(props, blob, true);

Page 11: Java on Azure

public class Message extends TableStorageEntity {private String name;private String url;private String body;

public Message(String partitionKey, String rowKey){super(partitionKey, rowKey);

}

public String getName() {return name;

}

public void setName(String name) {this.name = name;

}…

}

テーブルストレージへのアクセスTableStorage cli = TableStorage.create (

URI.create("table.core.windows.net"),

false,

"wings",

“**************************"

);

CloudTable table = cli.getWindowsAzureTable("Message");

if(!table.doesTableExist()){ table.createTable(); }

Message msg = new Message("Java", "7");

msg.setName(" 山田 ");

msg.setUrl("http://www.wings.msn.to/");

msg.setBody(" こんにちは! ");

table.insertEntity(msg);

List<TableStorageEntity> list = table.retrieveEntities(

Query.select().eq("name", "Yamada"));

Page 12: Java on Azure

Tomcat を Azure で動作するのは比較的簡単

ライブラリもそれなりにそろっている

でも、現時点では PHP よりは開発しにくい…かも?

まとめ?

PHP Java

開発の準備 Eclipse でプロジェクト作成

必要なライブラリをインポート

開発→デプロイ

Eclipse のみで可 Eclipse 、コマンド、 Visual Studio

ライブラリ ±α やや不足 ?

Page 13: Java on Azure

Windows Azure実践クラウドプログラミングfor C# / Visual Basic / PHP(秀和システム)

こんな文献もよろしくお願いします