java on azure
TRANSCRIPT
![Page 1: Java on Azure](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/1.jpg)
Java on AzureTomcat Starter Kit +WindowsAzure4j でクラ
ウド開発WINGS プロジェクト 山田祥寛
[email protected]://www.wings.msn.to/
![Page 2: Java on Azure](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/2.jpg)
Java サーブレットを Azure で動かすには?
Java アプリからストレージサービスにアクセスする方法
結局、 Java on Azure ってどうなの?
余談: 明日の LT では PHP on Azure をやります!
アジェンダ
![Page 3: Java on Azure](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/5.jpg)
.war ファイルをブロブにアップロード( Azure MMC 等)
接続文字列、 .war ファイルの場所を設定◦ これ以降は Visual Studio の操作で可能
.war ファイルの情報を設定
設定名 意味DiagnosticsConnectionString 診断情報の転送先DataConnectionString .war ファイルを格納したストレージWarFileBlobContainer .war ファイルを格納したコンテナWarFileBlobName .war ファイルを格納したブロブWarFileTargetName 展開する .war ファイル名
![Page 6: Java on Azure](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/6.jpg)
通常のデバッグ実行で起動可能◦ 接続文字列などの情報を設定していない場合はエラー
ブラウザそのものは自動で起動しないので要注意
Tomcat を開発ファブリックで実行
![Page 7: Java on Azure](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/7.jpg)
Windows Azure for Java ( WindowsAzure4J )を利用しよう!◦ Eclipse プラグインとして、[インストール] ウィンド
ウから導入できる◦ http://www.windowsazure4e.org/update
Azure マネージライブラリからストレージライブラリだけを抜き出した感じのライブラリ
→ いわゆる開発支援機能はほとんどない
診断系、セッション管理には未対応 (?)
Java で Azure アプリを開発するには?
![Page 8: Java on Azure](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/8.jpg)
ストレージサービスへのアクセス機能
ブロブ、キュー、テーブルの参照、編集などは一通り行える
Visual Studio Azure Tools 1.2 よりは高機能
Storage Explorer
![Page 9: Java on Azure](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/9.jpg)
普通に 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](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/10.jpg)
ブロブストレージへのアクセス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](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/12.jpg)
Tomcat を Azure で動作するのは比較的簡単
ライブラリもそれなりにそろっている
でも、現時点では PHP よりは開発しにくい…かも?
まとめ?
PHP Java
開発の準備 Eclipse でプロジェクト作成
必要なライブラリをインポート
開発→デプロイ
Eclipse のみで可 Eclipse 、コマンド、 Visual Studio
ライブラリ ±α やや不足 ?
![Page 13: Java on Azure](https://reader035.vdocuments.net/reader035/viewer/2022062705/5565fffad8b42a2a4d8b4ddf/html5/thumbnails/13.jpg)
Windows Azure実践クラウドプログラミングfor C# / Visual Basic / PHP(秀和システム)
こんな文献もよろしくお願いします