SlideShare a Scribd company logo
1 of 36
Download to read offline
S2Flex2
-AMF3Gateway with DI Container -
自己紹介

片山 暁雄
id:c9katayama
株式会社キャピタルアセットプランニング
Agenda

S2Flex2とは
Flex2とは
S2Flex2の機能
デモ
設計パターン&Tips
S2Flex2とは

Flex2からSeaser2上のコンポーネントを呼び出
すフレームワーク
クライアント側のフレームワークと、サーバ側の
フレームワークが連携
通信プロトコルとしてHTTP(S)、通信フォーマッ
トにAMFを使用
S2Flex2とは

JDK1.4以降、Seaser2.4以降で動作
Apache License2.0
Seaser Foundationで開発中
S2Flex2とは

      Client                               Server

 Flex2 Application                    JavaEE Application

                                           Seasar2

                     HTTP over AMF              component
S2Flex2-components                   S2Flex2
                                                component
Flex2とは

Adobeが提供する、リッチインターネットアプ
リケーション環境
FlashPlayer9
Flex2SDK Flex2Builder
MXMLとActionScript3.0
Flex2の画面




http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html
AS3
package sample.control{
 import sample.dto.DtoSampleDto;

public class DtoSampleControl implements IMXMLObject{
 private var view:DtoSample;
 public function initialized(document:Object,id:String):void{
    view = document as DtoSample;
    view.addEventListener(FlexEvent.CREATION_COMPLETE,
        function(e:FlexEvent):void{
         setup();
    });
  }
MXML
<mx:Application
  xmlns:mx=http://www.adobe.com/2006/mxml
     layout=quot;horizontalquot;
        xmlns:control=quot;sample.control.*quot;>
  <mx:Style source=quot;app.cssquot;/>

  <mx:Button label=quot;DTOquot; id=quot;dtoButtonquot;/>
  <mx:TextArea id=quot;resultTextquot; width=quot;200quot;
height=quot;200quot;/>
</mx:Application>
Flex2の利点

見た目がきれい コンポーネントが豊富
Eclipseの開発環境
ソースコードがテキストベース
実行時にコンパイルが不要
Javaが分かれば、 AS3は覚えやすい
ステートを保持できる
Flex2の開発サイクル

実装(AS3、MXML)
   コンパイル(swf)
      サーバに配置
          ブラウザでアクセス
  HTMLコンテンツ作成と同じ
S2Flex2

      Client                               Server

 Flex2 Application                    JavaEE Application

                                           Seasar2

                     HTTP over AMF              component
S2Flex2-components                   S2Flex2
                                                component
S2Flex2-components

クライアント側の接続コンポーネント
 - S2Flex2Serviceクラス
 - このクラスを使用し、サーバに接続
SWCファイルで提供
S2Flex2Service
S2Flex2Serviceの使用方法
Seasar2に、次のようなインターフェースを実装した
コンポーネントが登録されているとします

インターフェース
public interface HelloService {
  /**
   * 引数の数だけ“hello”を連結して返す
   */
   public String hello(int num);
}
S2Flex2Service

実装クラス
@RemotingService
public class HelloServiceImpl implements HelloService {

    public String hello(int num) {
      String hello = quot;quot;;
      for(int i = 0;i < num;i++){
         hello += quot;helloquot;;
      }
      return hello;
    }
}
S2Flex2Service
S2Flex2への接続
結果受け取りハンドラの実装
//通信に成功したときに呼び出される
public function handleResult(event:ResultEvent):void{
   var resultText = String(event.result);
   trace(resultText);// “hellohello”と表示される
}

//通信に失敗したときに呼び出される
public function handleFault(event:FaultEvent):void{
   var faultText = event.message.toString();
   trace(faultText);
}
S2Flex2Service
 S2Flex2Serviceの定義
//タグで接続するサービスを定義
<seasar:S2Flex2Service id=quot;service“
   destination=“helloServicequot;
   result=quot;handleResult(event)“
   fault=quot;handleFault(event)quot; />
 サービス呼び出し
 //サービス呼び出し
 service.hello(2);
呼び出しの流れ
 S2Flex2Service     destination:helloService
 service.hello(2)   メソッド:hello
                    引数:2
                                                         Seasar2


                                                             helloService
                                               S2Flex2   String hello(int num)
                      呼び出し成功:
                      ResultEvent
                      result:”hellohello”
handleResultメソッド


                       呼び出し失敗:
handleFaultメソッド        FaultEvent
                       message:エラー内容
S2Flex2Service


destination=S2のコンポーネント名
呼び出し時メソッド=コンポーネントのメソッド名

<seasar:S2Flex2Service id=quot;service“ destination=“helloServicequot;
  result=quot;handleResult(event)“ fault=quot;handleFault(event)quot; />

service.hello(2);
S2Flex2Service
 接続定義と呼び出し(AS3版)
//タグで接続先サービスを定義
var service:S2Flex2Service = new S2Flex2Service();
service.destination=“helloServicequot;;
service.initialized(this,quot;servicequot;);
service.addEventListener(
                ResultEvent.RESULT,handleResult);
service.addEventListener(
                FaultEvent.FAULT,handleFault);

//サービス呼び出し
service.hello(2);
S2Flex2

      Client                               Server

 Flex2 Application                    JavaEE Application

                                           Seasar2

                     HTTP over AMF              component
S2Flex2-components                   S2Flex2
                                                component
S2Flex2

AMFGateway
- サーブレット(RemotingGatewayクラス)
- AMF0とAMF3を解釈し、Seaser2管理下の
   コンポーネントを呼び出す
- Flex2から来たAMFデータを元に、Javaのデータ
 型に変換
AMF

AMF(ActionMessageFormat)
AMF0とAMF3があり、AMF3はFlashPlayer9
以降でサポート
- Flex2ではAMF3を利用
オープンなフォーマット仕様
・http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf
AMF

圧縮したバイナリ形式のフォーマット
- データサイズが小さいため、通信が速い
- JSONの4倍、XMLの10倍
型サポート
- Stringやintなどのプリミティブ
- 型付オブジェクトもサポートするため、
  データクラスをそのまま転送可能
AMF3

サポートタイプ一覧
undefined Type      null Type
false Type          true Type
integer Type        double Type
String Type         XMLDocument Type
Date Type           Array Type
XML Type            ByteArray Type
Object Type(anonymous,typed)
AMF3

         型変換
                                    Java側の          Java
AS3
                                    クラス名を
package sample.dto {                  指定                package sample.dto;

    [Bindable]                                          public class HelloDto {
    [RemoteClass(alias=quot;sample.dto.HelloDtoquot;)]
    public class HelloDto {                                 private String text;
                                                            private Integer num;
        public var text: String;                            private Boolean bool;
        public var num: int;
        public var bool: Boolean;                           public void setText(String value){
    }               S2Flex2Compon                             text = value;
}                                                           }
                    ent(FlashPlayer)          S2Flex2       //以下アクセサ
                                                        }
    AS3 -> AMF3                     AMF3 -> Java
@RemotingService

サービスとして公開するコンポーネント
- @RemotingServiceアノテーション、もしくは
  REMOTING_SERVICE変数を宣言する
  ことで公開可能
@RemotingService

呼び出し可能コンポーネント
@RemotingService
public class HelloServiceImpl implements HelloService {

    public String hello(int num) {
      String hello = quot;quot;;
      for(int i = 0;i < num;i++){
         hello += quot;helloquot;;
      }
      return hello;
    }
}
デモ

Hello
足し算
DTOで通信
設計パターン&Tips

セッション情報・ステートはFlex側で保持する
- 入力・画面遷移ごとにサーバ通信を行わない
サーバ通信の結果受け取りは非同期である
ため、非同期前提の設計にする
サーバ側は極力HttpSesionの利用を避け、
引数でもらう値のみでビジネスロジックが完
結するようにする
設計パターン&Tips

HttpServletRequest,HttpSessionが必要な
場合は、@Export、@Importのアノテーション
が利用できる
- がしかし制御が難しいので、HttpServletRequest
をスレッドローカルに格納する方法も検討した方が
いい
設計パターン&Tips
@RemotingService
public class TotalServiceImpl implements TotalService {
                                                          ストレージタイプを
           private Integer totalNum;                      SESSIONにすると、
                                                          セッションから値をセットして
           @Import(storage=StorageType.SESSION)
                                                          くれる
           public void setTotalNum(Integer totalNum) {
                       this.totalNum = totalNum;
           }
                                                          処理実行
           public int hello(int num) {
                        if(totalNum==null){               メンバ変数に値を格納
                                     totalNum = 0;
                        }
                        totalNum+=num;
                        return totalNum;
           }                                              ストレージタイプを
           @Export(storage=StorageType.SESSION)           SESSIONにすると、
           public Integer getTotalNum() {
                                                          セッションに値を格納してく
                        return totalNum;
           }                                              れる
}
設計パターン&Tips

サーバ側の受け口は、1箇所に固めた方がい
い
- @RemotingServiceをつけると、どのコンポーネン
トでも公開できるが、後で分かりにくくなるので、
「service」などのパッケージを作り、そこに公開用の
コンポーネントを固める。Daoはそのコンポーネント
から呼ぶようにする。
設計パターン&Tips

 競合フレームワークの検討
- BlazeDS
   Adobeのオープンソース(LGPLv3)
   AMF通信のほか、サーバプッシュ、メッセージングなどの機能を備える
   DIコンテナ非依存(Seaser2やSpringと連携可能)
   設定がわりとめんどくさい

- LiveCycleDataServices
   Adobeの商用サーバ
   AMF通信のほか、RTMP(Realtime Message Protcol)やPDF生成をサポート
   お値段がたかい
まとめ

S2Flex2を使用すれば、Flashとの高速な通
信を手軽に利用できる
Seaser2の機能をすべて利用可能
サーバプッシュを使いたい場合は、BlazeDS
などを検討
エンジョイFlex2!

More Related Content

What's hot

Ohp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 MojiretsuOhp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 Mojiretsusesejun
 
Web Security Horror Stories
Web Security Horror StoriesWeb Security Horror Stories
Web Security Horror StoriesSimon Willison
 
Windows 7兼容性系列课程(5):Windows 7徽标认证
Windows 7兼容性系列课程(5):Windows 7徽标认证Windows 7兼容性系列课程(5):Windows 7徽标认证
Windows 7兼容性系列课程(5):Windows 7徽标认证Chui-Wen Chiu
 
Project hotel on hotel management fo
Project  hotel on hotel management foProject  hotel on hotel management fo
Project hotel on hotel management foSunny Singhania
 
Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門shigeya
 

What's hot (7)

Ohp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 MojiretsuOhp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 Mojiretsu
 
Web Security Horror Stories
Web Security Horror StoriesWeb Security Horror Stories
Web Security Horror Stories
 
Avinash Kuma1
Avinash Kuma1Avinash Kuma1
Avinash Kuma1
 
Windows 7兼容性系列课程(5):Windows 7徽标认证
Windows 7兼容性系列课程(5):Windows 7徽标认证Windows 7兼容性系列课程(5):Windows 7徽标认证
Windows 7兼容性系列课程(5):Windows 7徽标认证
 
Project hotel on hotel management fo
Project  hotel on hotel management foProject  hotel on hotel management fo
Project hotel on hotel management fo
 
slowslow.txt
slowslow.txtslowslow.txt
slowslow.txt
 
Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門
 

Viewers also liked

Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
Sc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaSc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaToshihiro Nakamura
 
Java Cloud Meeting Fukuoka 2010
Java Cloud Meeting Fukuoka 2010Java Cloud Meeting Fukuoka 2010
Java Cloud Meeting Fukuoka 2010Shinichi Ogawa
 
Seasarで動いているWebサービスCacooの裏側
Seasarで動いているWebサービスCacooの裏側Seasarで動いているWebサービスCacooの裏側
Seasarで動いているWebサービスCacooの裏側Nulab
 

Viewers also liked (6)

Seasar Conference 2009 White - DI
Seasar Conference 2009 White - DISeasar Conference 2009 White - DI
Seasar Conference 2009 White - DI
 
Seasar Conference 2009 Spring - Jiemamy
Seasar Conference 2009 Spring - JiemamySeasar Conference 2009 Spring - Jiemamy
Seasar Conference 2009 Spring - Jiemamy
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
Sc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaSc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク Doma
 
Java Cloud Meeting Fukuoka 2010
Java Cloud Meeting Fukuoka 2010Java Cloud Meeting Fukuoka 2010
Java Cloud Meeting Fukuoka 2010
 
Seasarで動いているWebサービスCacooの裏側
Seasarで動いているWebサービスCacooの裏側Seasarで動いているWebサービスCacooの裏側
Seasarで動いているWebサービスCacooの裏側
 

Similar to S2Flex2

How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPHow To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPAtsuhiro Kubo
 
Shibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼうShibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼうgyuque
 
技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTracterada
 
20090418 イケテルRails勉強会 第2部Air編 解説
20090418 イケテルRails勉強会 第2部Air編 解説20090418 イケテルRails勉強会 第2部Air編 解説
20090418 イケテルRails勉強会 第2部Air編 解説mochiko AsTech
 
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009gyuque
 
yusukebe in Yokohama.pm 090909
yusukebe in Yokohama.pm 090909yusukebe in Yokohama.pm 090909
yusukebe in Yokohama.pm 090909Yusuke Wada
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)Carles Farré
 
Rails Deployment with NginX
Rails Deployment with NginXRails Deployment with NginX
Rails Deployment with NginXStoyan Zhekov
 
The Real Time Web with XMPP
The Real Time Web with XMPPThe Real Time Web with XMPP
The Real Time Web with XMPPJack Moffitt
 
Spring基础教程
Spring基础教程Spring基础教程
Spring基础教程Shilong Sang
 
事件模型探究
事件模型探究事件模型探究
事件模型探究ematrix
 
GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門bose999
 
Ajax и будущее Java Script
Ajax и будущее Java ScriptAjax и будущее Java Script
Ajax и будущее Java ScriptConstantin Kichinsky
 
421 Ch
421 Ch421 Ch
421 Chanjaan
 
Dynamic Language による Silverlight2 アプリケーション開発
Dynamic Language による Silverlight2 アプリケーション開発Dynamic Language による Silverlight2 アプリケーション開発
Dynamic Language による Silverlight2 アプリケーション開発terurou
 
Oracle Cloudで実現できる High Performance Computing 最新情報
Oracle Cloudで実現できる High Performance Computing 最新情報Oracle Cloudで実現できる High Performance Computing 最新情報
Oracle Cloudで実現できる High Performance Computing 最新情報オラクルエンジニア通信
 
Actor Concurrency
Actor ConcurrencyActor Concurrency
Actor ConcurrencyAlex Miller
 

Similar to S2Flex2 (20)

How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPHow To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
 
Shibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼうShibuya.abc - Gnashで遊ぼう
Shibuya.abc - Gnashで遊ぼう
 
技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac
 
Apache Tapestry
Apache TapestryApache Tapestry
Apache Tapestry
 
Spring Framework勉強会
Spring  Framework勉強会Spring  Framework勉強会
Spring Framework勉強会
 
20090418 イケテルRails勉強会 第2部Air編 解説
20090418 イケテルRails勉強会 第2部Air編 解説20090418 イケテルRails勉強会 第2部Air編 解説
20090418 イケテルRails勉強会 第2部Air編 解説
 
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
 
yusukebe in Yokohama.pm 090909
yusukebe in Yokohama.pm 090909yusukebe in Yokohama.pm 090909
yusukebe in Yokohama.pm 090909
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
 
Rails Deployment with NginX
Rails Deployment with NginXRails Deployment with NginX
Rails Deployment with NginX
 
The Real Time Web with XMPP
The Real Time Web with XMPPThe Real Time Web with XMPP
The Real Time Web with XMPP
 
Spring基础教程
Spring基础教程Spring基础教程
Spring基础教程
 
yonex
yonexyonex
yonex
 
事件模型探究
事件模型探究事件模型探究
事件模型探究
 
GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門GAE/J 開発環境でJDO入門
GAE/J 開発環境でJDO入門
 
Ajax и будущее Java Script
Ajax и будущее Java ScriptAjax и будущее Java Script
Ajax и будущее Java Script
 
421 Ch
421 Ch421 Ch
421 Ch
 
Dynamic Language による Silverlight2 アプリケーション開発
Dynamic Language による Silverlight2 アプリケーション開発Dynamic Language による Silverlight2 アプリケーション開発
Dynamic Language による Silverlight2 アプリケーション開発
 
Oracle Cloudで実現できる High Performance Computing 最新情報
Oracle Cloudで実現できる High Performance Computing 最新情報Oracle Cloudで実現できる High Performance Computing 最新情報
Oracle Cloudで実現できる High Performance Computing 最新情報
 
Actor Concurrency
Actor ConcurrencyActor Concurrency
Actor Concurrency
 

More from Masaaki Yonebayashi (14)

Go guide for Java programmer
Go guide for Java programmerGo guide for Java programmer
Go guide for Java programmer
 
HHVM Hack
HHVM HackHHVM Hack
HHVM Hack
 
Android T2 on cloud
Android T2 on cloudAndroid T2 on cloud
Android T2 on cloud
 
JavaFX-with-Adobe
JavaFX-with-AdobeJavaFX-with-Adobe
JavaFX-with-Adobe
 
Guice2.0
Guice2.0Guice2.0
Guice2.0
 
Flex's DI Container
Flex's DI ContainerFlex's DI Container
Flex's DI Container
 
T2 in Action
T2 in ActionT2 in Action
T2 in Action
 
guice-servlet
guice-servletguice-servlet
guice-servlet
 
T2@java-ja#toyama
T2@java-ja#toyamaT2@java-ja#toyama
T2@java-ja#toyama
 
Merapi -Adobe Air<=>Java-
Merapi -Adobe Air<=>Java-Merapi -Adobe Air<=>Java-
Merapi -Adobe Air<=>Java-
 
sc2009white_T2
sc2009white_T2sc2009white_T2
sc2009white_T2
 
sc2009white_Teeda
sc2009white_Teedasc2009white_Teeda
sc2009white_Teeda
 
Teeda
TeedaTeeda
Teeda
 
Wankumatoyama#01
Wankumatoyama#01Wankumatoyama#01
Wankumatoyama#01
 

Recently uploaded

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

S2Flex2