More Related Content
More from Toshiaki Maki(20)
JSFとJAX-RSで作る Thin Server Architecture #glassfishjp
- 4. 自己紹介
• Toshiaki Maki (@making)
• http://blog.ik.am
• SIer
• 金魚本一部翻訳
• 趣味でJavaEE
LT希望
者は何かコメントすれば蓮沼さん
が拾ってくれます!
13年6月14日金曜日
- 8. Thin Server Architecture
• 従来のサーバーサイドのアーキテクチャからビュー処理
を除き、クライアントサイド(ブラウザ)でビュー処理
• HTTP(or WebSocket etc)というシンプルなプロトコル
• JavaOne2012 Project Avatarの文脈で登場したが、前から
ある概念
ServerClient JSON/REST
View処理 業務処理
13年6月14日金曜日
- 10. JavaEEによるTSA実装
• JAX-RS + JavaScript MVCフレームワーク
(Backbone.jsなど)
• Example: http://bit.ly/11Cyxpu
JAX-RS
Server
JSON
Web Browser
(Backbone.js)
13年6月14日金曜日
- 11. JavaEEによるTSA実装
• JAX-RS + JavaScript MVCフレームワーク
(Backbone.jsなど)
• Example: http://bit.ly/11Cyxpu
JAX-RS
Server
JSON
Web Browser
(Backbone.js)
Router
View
Model/
Collection
Template
13年6月14日金曜日
- 12. JavaEEによるTSA実装
• JAX-RS + JavaScript MVCフレームワーク
(Backbone.jsなど)
• Example: http://bit.ly/11Cyxpu
JAX-RS
Server
JSON
Web Browser
(Backbone.js)
Router
View
Model/
Collection
Template
JavaScript書きたくない…
13年6月14日金曜日
- 26. コード例(REST client)
• 詳細は http://bit.ly/jsfjaxrs
@Rest @Singleton public class TodoRestRepository implements TodoRepository {
private static final String TODO_RESOURCE_PATH = "http://localhost:8080/todo-tsa/todo";
private final Client client;
public TodoRestRepository() {
this.client = ClientBuilder.newClient();
}
@Override public Collection<Todo> findAll() {
return
this.client.target(TODO_RESOURCE_PATHTH).request(MediaType.APPLICATION_JSON_TYP
E)
.get(new GenericType<Collection<Todo>>);
}
@Override public Todo create(Todo todo) {
return this.client.target(TODO_RESOURCE_PATH).request()
.post(Entity.entity(todo,
MediaType.APPLICATION_JSON_TYPE)).readEntity(Todo.class);
}
...
13年6月14日金曜日
- 27. コード例(ManagedBean)
• 詳細は http://bit.ly/jsfjaxrs
@ManagedBean(name = "todoManagedBean") @ViewScoped
public class TodoManagedBean {
protected Collection<Todo> todos;
protected Todo todo = new Todo();
@Inject @Rest
protected TodoRepository todoRepository;
public void findAll() {
this.todos = todoRepository.findAll();
}
public void create() {
todoRepository.create(this.todo);
findAll();
this.todo = new Todo();
}
...
https://github.com/making/todo-tsa
13年6月14日金曜日
- 36. まとめ
• JSFとJAX-RSでTSA
• サーバー: JAX-RS Server
• クライアント: JSF+ JAX-RS Client
• TSAはマルチクライアント(Java-FX, Smart
Devices,…)時代に注目のアーキテクチャ
13年6月14日金曜日