SlideShare a Scribd company logo
1 of 23
BY: Yaniv Uriel
Mail: maia.yaniv@gmail.com
AMF
• Coming soon 
RPC
• remote procedure call (RPC) is an inter-process communication that allows a computer program to
cause a subroutine or procedure to execute in another address space without the programmer
explicitly coding the details for this remote interaction.
Serialization
• serialization is the process of converting a data structure or object into a sequence of bits so that it
can be stored in a file or memory buffer, or transmitted across a network connection link to be
"resurrected" later in the same or another computer environment.
RTMP
• RealTime Messaging Protocol (RTMP) is a proprietary protocol developed by Macromedia
for streaming audio, video and data over the Internet, between a Flash player and a server.
RTMPS
• which is RTMPT over a secure SSL connection using HTTPS
AMF - SomeTerms
“Action Message Format (AMF) is a compact
binary format that is used to serialize ActionScript
object graphs” From: AMF 3 Specification
Compact
Binary
Serialize and De Serialize
ActionScript
Object
What is AMF
• AMF was introduced in Flash Player 6 in 2001
• Remained unchanged until AS2 Flash Player8
•This version of AMF is referred to as AMF0
• In Flash Player 9, Action Script 3.0 – AMF3 with
new data types and optimization
•AMF3 Specification
AMF History
Size of AMF Object.
Fast serialization / de serialization.
AMF is parsed directly to an object.
Native Type and custom class support.
Low bandwidth and CPU
•Compared with HTML JSONYAML XML (SOAP)
Send Object By Reference (AMF 3)
Benefits (why use it?)
amf vs xml vs ajax
James Ward – RIA Cowboy
jamesward benchmark
AMF/Remoting vs. Web Services Benchmark
Bench Mark
No DisplayObject (and descended objects)
Native Types and Custom class.
Compression (zlib)
Pitfalls
Binary format
• Hard to read
Complex Backend
• Server errors influence client
• Server side elopers needed
Organization learning curve.
AMF is not the answer for all the problems.
Downsides
Client side
•Flash platform – build in support
•Other open source reversed engineered
Servers side:
•Depend on technology (PHP, Java .net, Ruby on
Rails…).
•Depend on platform (Windows  Linux Unix).
•Depend on knowledge.
Where to get it
AMFEXT PHP Extension.
• Written in C, fast encoding and decoding of AMF0 and AMF3 messages.
• Looking for a new maintainer since July 2008.
• PHP Frameworks.
AMFPHP
• Simple and powerful
• Works since Flash MX 2004
• Optional support for AMFEXT
CakeAMFPHP
• Easy to use with CakePHP, requires AMFEXT
• Development stalled
Servers for PHP
SabreAMF
• Server and Client
• PHP5 only
• Compliant to PHP Strict Mode
WebORB for PHP
• Well documented, commercial support available
• Management Console includes Service Browser,Testing and Security Management
• Code Generators forActionScript Remoting, Cairngorm and PureMVC
Zend AMF
• Easy to use with Zend Framework
• PHP is very widespread
• Promoted by Adobe
More for PHP
Cold Fusion
• Supports serialization to AMF
• Easy to use
• Supported by Adobe
Could Fusion
RED5
• Mainly for Audio- and Video Streaming
• Supports AMF Remoting, too
Blaze Data Services (BlazeDS)
• Open Source (GPLv3)
• Shares codebase (messaging and remoting) with LiveCycle Data Services SE
• Rich set of features
• Supports streaming channels over HTTP
• Includes Tomcat 6 Application Server (easy to deploy)
• LiveCycle Data Services Community Edition
• Certi?ed builds of BlazeDS
• Developer and Enterprise Support
More…
Java
PyAMF
• Integration with Python web frameworks like Django, Pylons,Twisted, CherryPy, ...
• Scales well if used with mod_python, mod_wsgi, ...
• Possible to run on Google App Engine
• RTMPy is a protocol forTwisted
• Based on PyAMF
• Implementing RTMP
• Still in development
Python
Ruby on Rails
• RubyAMF
• Very easy for Rails Developers to get started
• Flexible and extensible
• Scales well if Rails is used withThin, lighttpd, nginx, Phusion Passenger (mod_rails), ...
WebORB for Rails
• Based on Ruby on Rails
• Tight integration of ActiveRecord
• Commercial support available
RubyIZUMI
• RTMP Server for streaming Flash video/audio (H.264)
• Based on EventMachine (fast single-threaded socket engine)
• Experimental - not ready for production use
Ruby
AMF.NET
• Implemented as an HttpHandler, easy to install
• Very simple
WebORB for .NET
• Easy to install (only on Microsoft IIS)
• Commercial support available
FluorineFx
• Supports RTMP
• Template based code generator
• Includes a Service Browser
Blaze Data Services for .NET (BlazeDS.NET) ?????
.NET
WebORB
Key Features
• Developer ProductivityTool
• management console, code generation,
• service browser,
• invocation test drive, project templates,
• FlexBuilder plugin, Eclipse plugins,
• command line tools,
• built-in examples
• Multi-Client Support - Flash, Flex, Silverlight, AJAX
• Flash, Flex, Silverlight, AJAX
• Security
• custom authentication, custom authorization,
• role-based security,
• graphical configuration
• Performance Monitoring
• server-side instrumentation
• Real-Time Messaging
• data push, producer-consumer
• model, MSMQ and JMS
• integration, remote shared
• objects, message broadcast
WebORB - More
• Video Streaming
• streaming flash video, video broadcast,
• server initiated video,
• video recording, video chat
• Extensibility Features
• custom object serialization,
• abstract argument mapping,
• object factories, invocation chain,
• custom object activation, special attributes,
• security handlers
• Solid Product Roadmap
• always adding new features to increase the value of your investment
WebORB …
WebORB installation and configuration
Creating an a flex project
Remoting samples
REAL TIME Massaging (chat application, video
chat application
Client side as method invocation
How to use it
WebOrb Plug-in for Flash Builder
WebOrb Dev Den
Tour De Flex
Adobe Developer Connection
android-xmlrpc
• xmlrpc client side library for Android platform
Ajax and Flex Data Loading Benchmarks
AMF 3 Specification
Useful resources
Efficiency
• Enhanced User Experience
• Greater User Acceptance
• Helps to save the planet (lower energy consumption)
Ease of Use
• Intuitive way of working with data
• Less hassle, higher quality
• Have more time for creative ideas, or
• Spend more time with your loved ones
AMF is not always the right thing
• Consider alternatives (E4X, SWX, JSON, ...)
• Proof your design by a working prototype
Summery
The End

More Related Content

What's hot

Design-Time Properties in Custom Pipeline Components
Design-Time Properties in Custom Pipeline ComponentsDesign-Time Properties in Custom Pipeline Components
Design-Time Properties in Custom Pipeline ComponentsDaniel Toomey
 
Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014Toni de la Fuente
 
Sutol How To Be A Lion Tamer
Sutol How To Be A Lion TamerSutol How To Be A Lion Tamer
Sutol How To Be A Lion TamerSharon James
 
IoT Studio #1: Protocols introduction and connected jukebox
IoT Studio #1: Protocols introduction and connected jukeboxIoT Studio #1: Protocols introduction and connected jukebox
IoT Studio #1: Protocols introduction and connected jukeboxMickaël Rémond
 
Alfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo DataAlfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo DataAlfresco Software
 
Wcf Transaction Handling
Wcf Transaction HandlingWcf Transaction Handling
Wcf Transaction HandlingGaurav Arora
 
Simon Jia - The Kohana Framework
Simon Jia - The Kohana FrameworkSimon Jia - The Kohana Framework
Simon Jia - The Kohana FrameworkCaroline_Rose
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3Jeff Potts
 
ECM Decision Matrix - Deciding Between Alfresco Community Edition, Alfresco E...
ECM Decision Matrix - Deciding Between Alfresco Community Edition, Alfresco E...ECM Decision Matrix - Deciding Between Alfresco Community Edition, Alfresco E...
ECM Decision Matrix - Deciding Between Alfresco Community Edition, Alfresco E...Alfresco Software
 
Log management system for Microservices
Log management system for MicroservicesLog management system for Microservices
Log management system for MicroservicesVõ Duy Tuấn
 
Presentation Zarafa Mailbridge
Presentation Zarafa MailbridgePresentation Zarafa Mailbridge
Presentation Zarafa MailbridgeZarafa
 
What’s New In Cincom Smalltalk
What’s New In Cincom SmalltalkWhat’s New In Cincom Smalltalk
What’s New In Cincom SmalltalkESUG
 
SUTOL 2016: IBM Connections Deployment Best and Worst Practices
SUTOL 2016: IBM Connections Deployment Best and Worst PracticesSUTOL 2016: IBM Connections Deployment Best and Worst Practices
SUTOL 2016: IBM Connections Deployment Best and Worst Practicespanagenda
 
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1Mickaël Rémond
 
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM ConnectionsSutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM ConnectionsSharon James
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyserAlex Moskvin
 
Cloud computing-2 (1)
Cloud computing-2 (1)Cloud computing-2 (1)
Cloud computing-2 (1)JUDYFLAVIAB
 
Cloud Messaging with NServiceBus and Microsoft Azure
Cloud Messaging with NServiceBus and Microsoft AzureCloud Messaging with NServiceBus and Microsoft Azure
Cloud Messaging with NServiceBus and Microsoft AzureParticular Software
 

What's hot (20)

Design-Time Properties in Custom Pipeline Components
Design-Time Properties in Custom Pipeline ComponentsDesign-Time Properties in Custom Pipeline Components
Design-Time Properties in Custom Pipeline Components
 
Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014
 
Sutol How To Be A Lion Tamer
Sutol How To Be A Lion TamerSutol How To Be A Lion Tamer
Sutol How To Be A Lion Tamer
 
IoT Studio #1: Protocols introduction and connected jukebox
IoT Studio #1: Protocols introduction and connected jukeboxIoT Studio #1: Protocols introduction and connected jukebox
IoT Studio #1: Protocols introduction and connected jukebox
 
Alfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo DataAlfresco Day Milano 2016 - Demo Data
Alfresco Day Milano 2016 - Demo Data
 
Wcf Transaction Handling
Wcf Transaction HandlingWcf Transaction Handling
Wcf Transaction Handling
 
Simon Jia - The Kohana Framework
Simon Jia - The Kohana FrameworkSimon Jia - The Kohana Framework
Simon Jia - The Kohana Framework
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3
 
ECM Decision Matrix - Deciding Between Alfresco Community Edition, Alfresco E...
ECM Decision Matrix - Deciding Between Alfresco Community Edition, Alfresco E...ECM Decision Matrix - Deciding Between Alfresco Community Edition, Alfresco E...
ECM Decision Matrix - Deciding Between Alfresco Community Edition, Alfresco E...
 
Log management system for Microservices
Log management system for MicroservicesLog management system for Microservices
Log management system for Microservices
 
Presentation Zarafa Mailbridge
Presentation Zarafa MailbridgePresentation Zarafa Mailbridge
Presentation Zarafa Mailbridge
 
What’s New In Cincom Smalltalk
What’s New In Cincom SmalltalkWhat’s New In Cincom Smalltalk
What’s New In Cincom Smalltalk
 
SUTOL 2016: IBM Connections Deployment Best and Worst Practices
SUTOL 2016: IBM Connections Deployment Best and Worst PracticesSUTOL 2016: IBM Connections Deployment Best and Worst Practices
SUTOL 2016: IBM Connections Deployment Best and Worst Practices
 
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
 
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM ConnectionsSutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
 
XMPP Academy #2
XMPP Academy #2XMPP Academy #2
XMPP Academy #2
 
Cloud computing-2 (1)
Cloud computing-2 (1)Cloud computing-2 (1)
Cloud computing-2 (1)
 
How fast is it?
How fast is it?How fast is it?
How fast is it?
 
Cloud Messaging with NServiceBus and Microsoft Azure
Cloud Messaging with NServiceBus and Microsoft AzureCloud Messaging with NServiceBus and Microsoft Azure
Cloud Messaging with NServiceBus and Microsoft Azure
 

Similar to AMF Flash and .NET

Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsRonny López
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamerWannes Rams
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamerSharon James
 
Mike Taulty DevDays 2010 Silverlight 4 - What's New Part 2
Mike Taulty DevDays 2010 Silverlight 4 - What's New Part 2Mike Taulty DevDays 2010 Silverlight 4 - What's New Part 2
Mike Taulty DevDays 2010 Silverlight 4 - What's New Part 2ukdpe
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Securitychuckbt
 
Developer’s intro to the alfresco platform
Developer’s intro to the alfresco platformDeveloper’s intro to the alfresco platform
Developer’s intro to the alfresco platformAlfresco Software
 
IoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkIoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkMirco Vanini
 
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...Samsung Open Source Group
 
Convertigo Mobile Application Development platform for Enterprises
Convertigo Mobile Application Development platform for EnterprisesConvertigo Mobile Application Development platform for Enterprises
Convertigo Mobile Application Development platform for EnterprisesConvertigo | MADP & MBaaS
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?ukdpe
 
Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikalafloridawusergroup
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumSteven Miller
 
An Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveAn Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveBizTalk360
 
WebSphere Portal Technical Overview
WebSphere Portal Technical OverviewWebSphere Portal Technical Overview
WebSphere Portal Technical OverviewVincent Perrin
 
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinOrtus Solutions, Corp
 

Similar to AMF Flash and .NET (20)

Real time web apps
Real time web appsReal time web apps
Real time web apps
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamer
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamer
 
Mike Taulty DevDays 2010 Silverlight 4 - What's New Part 2
Mike Taulty DevDays 2010 Silverlight 4 - What's New Part 2Mike Taulty DevDays 2010 Silverlight 4 - What's New Part 2
Mike Taulty DevDays 2010 Silverlight 4 - What's New Part 2
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Security
 
Developer’s intro to the alfresco platform
Developer’s intro to the alfresco platformDeveloper’s intro to the alfresco platform
Developer’s intro to the alfresco platform
 
IoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkIoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@Work
 
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
 
Convertigo Mobile Application Development platform for Enterprises
Convertigo Mobile Application Development platform for EnterprisesConvertigo Mobile Application Development platform for Enterprises
Convertigo Mobile Application Development platform for Enterprises
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
 
Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikala
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming Curriculum
 
OUGF - OSGi / Flex
OUGF - OSGi / FlexOUGF - OSGi / Flex
OUGF - OSGi / Flex
 
OUGF OSGi/Flex
OUGF OSGi/FlexOUGF OSGi/Flex
OUGF OSGi/Flex
 
An Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveAn Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspective
 
Node
NodeNode
Node
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
 
WebSphere Portal Technical Overview
WebSphere Portal Technical OverviewWebSphere Portal Technical Overview
WebSphere Portal Technical Overview
 
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
 

Recently uploaded

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Recently uploaded (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

AMF Flash and .NET

  • 1. BY: Yaniv Uriel Mail: maia.yaniv@gmail.com
  • 2. AMF • Coming soon  RPC • remote procedure call (RPC) is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction. Serialization • serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be "resurrected" later in the same or another computer environment. RTMP • RealTime Messaging Protocol (RTMP) is a proprietary protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player and a server. RTMPS • which is RTMPT over a secure SSL connection using HTTPS AMF - SomeTerms
  • 3. “Action Message Format (AMF) is a compact binary format that is used to serialize ActionScript object graphs” From: AMF 3 Specification Compact Binary Serialize and De Serialize ActionScript Object What is AMF
  • 4. • AMF was introduced in Flash Player 6 in 2001 • Remained unchanged until AS2 Flash Player8 •This version of AMF is referred to as AMF0 • In Flash Player 9, Action Script 3.0 – AMF3 with new data types and optimization •AMF3 Specification AMF History
  • 5. Size of AMF Object. Fast serialization / de serialization. AMF is parsed directly to an object. Native Type and custom class support. Low bandwidth and CPU •Compared with HTML JSONYAML XML (SOAP) Send Object By Reference (AMF 3) Benefits (why use it?)
  • 6. amf vs xml vs ajax James Ward – RIA Cowboy jamesward benchmark AMF/Remoting vs. Web Services Benchmark Bench Mark
  • 7. No DisplayObject (and descended objects) Native Types and Custom class. Compression (zlib) Pitfalls
  • 8. Binary format • Hard to read Complex Backend • Server errors influence client • Server side elopers needed Organization learning curve. AMF is not the answer for all the problems. Downsides
  • 9. Client side •Flash platform – build in support •Other open source reversed engineered Servers side: •Depend on technology (PHP, Java .net, Ruby on Rails…). •Depend on platform (Windows Linux Unix). •Depend on knowledge. Where to get it
  • 10. AMFEXT PHP Extension. • Written in C, fast encoding and decoding of AMF0 and AMF3 messages. • Looking for a new maintainer since July 2008. • PHP Frameworks. AMFPHP • Simple and powerful • Works since Flash MX 2004 • Optional support for AMFEXT CakeAMFPHP • Easy to use with CakePHP, requires AMFEXT • Development stalled Servers for PHP
  • 11. SabreAMF • Server and Client • PHP5 only • Compliant to PHP Strict Mode WebORB for PHP • Well documented, commercial support available • Management Console includes Service Browser,Testing and Security Management • Code Generators forActionScript Remoting, Cairngorm and PureMVC Zend AMF • Easy to use with Zend Framework • PHP is very widespread • Promoted by Adobe More for PHP
  • 12. Cold Fusion • Supports serialization to AMF • Easy to use • Supported by Adobe Could Fusion
  • 13. RED5 • Mainly for Audio- and Video Streaming • Supports AMF Remoting, too Blaze Data Services (BlazeDS) • Open Source (GPLv3) • Shares codebase (messaging and remoting) with LiveCycle Data Services SE • Rich set of features • Supports streaming channels over HTTP • Includes Tomcat 6 Application Server (easy to deploy) • LiveCycle Data Services Community Edition • Certi?ed builds of BlazeDS • Developer and Enterprise Support More… Java
  • 14. PyAMF • Integration with Python web frameworks like Django, Pylons,Twisted, CherryPy, ... • Scales well if used with mod_python, mod_wsgi, ... • Possible to run on Google App Engine • RTMPy is a protocol forTwisted • Based on PyAMF • Implementing RTMP • Still in development Python
  • 15. Ruby on Rails • RubyAMF • Very easy for Rails Developers to get started • Flexible and extensible • Scales well if Rails is used withThin, lighttpd, nginx, Phusion Passenger (mod_rails), ... WebORB for Rails • Based on Ruby on Rails • Tight integration of ActiveRecord • Commercial support available RubyIZUMI • RTMP Server for streaming Flash video/audio (H.264) • Based on EventMachine (fast single-threaded socket engine) • Experimental - not ready for production use Ruby
  • 16. AMF.NET • Implemented as an HttpHandler, easy to install • Very simple WebORB for .NET • Easy to install (only on Microsoft IIS) • Commercial support available FluorineFx • Supports RTMP • Template based code generator • Includes a Service Browser Blaze Data Services for .NET (BlazeDS.NET) ????? .NET
  • 17. WebORB Key Features • Developer ProductivityTool • management console, code generation, • service browser, • invocation test drive, project templates, • FlexBuilder plugin, Eclipse plugins, • command line tools, • built-in examples • Multi-Client Support - Flash, Flex, Silverlight, AJAX • Flash, Flex, Silverlight, AJAX
  • 18. • Security • custom authentication, custom authorization, • role-based security, • graphical configuration • Performance Monitoring • server-side instrumentation • Real-Time Messaging • data push, producer-consumer • model, MSMQ and JMS • integration, remote shared • objects, message broadcast WebORB - More
  • 19. • Video Streaming • streaming flash video, video broadcast, • server initiated video, • video recording, video chat • Extensibility Features • custom object serialization, • abstract argument mapping, • object factories, invocation chain, • custom object activation, special attributes, • security handlers • Solid Product Roadmap • always adding new features to increase the value of your investment WebORB …
  • 20. WebORB installation and configuration Creating an a flex project Remoting samples REAL TIME Massaging (chat application, video chat application Client side as method invocation How to use it
  • 21. WebOrb Plug-in for Flash Builder WebOrb Dev Den Tour De Flex Adobe Developer Connection android-xmlrpc • xmlrpc client side library for Android platform Ajax and Flex Data Loading Benchmarks AMF 3 Specification Useful resources
  • 22. Efficiency • Enhanced User Experience • Greater User Acceptance • Helps to save the planet (lower energy consumption) Ease of Use • Intuitive way of working with data • Less hassle, higher quality • Have more time for creative ideas, or • Spend more time with your loved ones AMF is not always the right thing • Consider alternatives (E4X, SWX, JSON, ...) • Proof your design by a working prototype Summery

Editor's Notes

  1. שלום לכולם כמה מילים על עצמי אני לא מעצב אני איש של קוד (UML וכל מיני כאלה) בתור התחלה היתי רוצה לדעת מול מי אני עומד : כמה אנשים שעובדים עם פלקס יש כאן כמה אנשים עובדים עם סרבר סייד? כמה מייקרוסופטים יש כאן (C# .NET WCF) עוד שאלה אחרונה שתעביר אותנו למצגת: מי כאן יודע מה זה AMF מי עבד עם זה בעבר. מצוין אז נתחיל. דרך הגב הדילברט כאן כי אמרו לי פעם שכל מצגת חייבת להתחיל ב דילברט (זה
  2. AMF המשך בקרוב על זה כל המצגת[ RPC – קריאה או הפעלה של פרוצדורה (שיגרה) מרוחקת – בדרך כלל מחשב מרוחק אבל לא חייב RPC לא רק ל AMF אפשר לעששות את זה גם בדרכים אחרות כמו XML JSON CORBA JAVA ..... SERIALIZATION – שאלה : משהוא לא יודע מה זה סירילאזישן ? במילים אחרות : לוקחים אובייקט דוחסים אותו מקבצים אותו שולחים אתו ומגהצים אותו שוב בצד השני RTMP חיבור אחד קבוע ניתן לקבוע את גודל המידע שעובר 64 ביית או 128 ביית ביית אחד עבור כל חלק – מעט תוספת יחסית ומהיר לפירוק וחיבור ישנם מספר ערוצים להעברת נתונים (RPC וידאו אודיאו וערןץ נתונים כללי חוץ שידורי) Sa RTMPS RTMPT RTMPTS אותו הדבר רק עם S אותו דבר עם T ... עובד באופן אסינכרוני
  3. Binary Serialize and Desterilize – fast and persisentcy AMF 3 מכיל גם שיפורים רבים של אופטימיזציה מכיל גם נתמך מפלש 9 ו AS3
  4. אובייקטים קטנים חשוב ל: יעילות בקידוד ופיענוח של האוביקט – הדבר מתאפשר גם בשל העובדה שהאוביקטים הם בינרים יש אפשרות גם לקווץ ב ZLIB אבל נזכיר את זה בהמשך. ביגלל הגודך הסיריאל והפיענוח הם מהירים ויש מעט OVERHEAD לכל התהליך. בניגוד ל XML JSON ואחרים . תמיחה מובנת בטיפוסים ובקלסים שנוצרו על ידי המשתמש (רק שצריך לעשות להם איתחול בצד השרת) אוביקטים כמו מחרוזות מערכים XML ואחרים יכולים להשלח כך. היתרון המשמעותי הוא שלא צריך שום דמר מיוחד בצד ההלקוח פחות תעבור (עוד פחות ממה שכבר פחות) shoot with AMF3 you can pass binary images and SWF files around too you can pass XML objects within AMF3 so they remain queryable client side as well,.
  5. Now for pure remoting, well that is an AMF thing, for loading models or leaving the result client side queryable, XML with E4X takes the cake. I should note that What is interesting to me is the fact that AMF is easily 10X faster and lighter than SOAP Web Services for server to server and server to client operations. We have all this server iron out there wasting bandwidth and CPU time parsing XML when they could natively serialize objects with less memory and less bandwidth. AMF3 is a perfect spec for it but we need clients and servers for AMF in many languages first. Currently the AMF format is a transmitter/receiver that can only talk to Flash Player and that needs to change.
  6. חיסרון : לא מציג את הדיספלי ואת כל הובייקטים האחרים שיורשים ממנו למרות שזה אפשרי אם האוביקטים הם מסוג לא סטנדרטי יש בצד השני אתחול שלהם כשהם אוברים דיסיריאליז. אומנם תומך וזה אכן חוסך ברוחב פס אבל לוקח זמן לקווץ ולפתוח. קווץ בינארי הוא פחות יעיל ביחוד לא ממומלץ להשתמש כשמעבירים נתונים גדולים ודרוש תגובה של REALTIME או כמעט זה
  7. יש כל מיני כלים שיכולים להראות לנו מה יש בפנים ונראה אותם נכון אבל צריך להערך לזה נכון יותר קל ממה שזה נראה The problem with AMF is that the secret sauce and recipe are bottled up at Adobe. Although there are many AMF clones out there, they vary wildly in support for the deeper object types in AMF3 binary. They all sort of taste like New Coke or Generic Cola, it tastes similar but something is missing, it is just not the real thing.
  8. Some full implementation RTMP servers are: Adobe Flash Media Server, Adobe LiveCycle Data Services Amazon S3 & Amazon Cloudfront can stream using RTMP haXeVideo is a multithread FLV streaming server entirely written using the haXe programming language. Helix Universal Server from RealNetworks streams live and on-demand RTMP, RTMPS, RTMPE content using RTP encoders for live streams and FLV, F4V, MP4 and 3GP containers for on-demand files. Onlinelib VCS Video Communication Server (including iPhone Support) Red5 Open Source Media Server is a reverse-engineered open source project which aims to produce a complete implementation written in Java. Erlyvideo [4] has wide functionality: not only file streaming, but restreaming of MPEG-TS or Shoutcast to flash clients using RTMP. Unreal Media Server supports live RTMP streaming, in real-time and buffered modes. Wowza Media Server WebORB Integration Server (available for .NET, Java, PHP, and Rails) both commercial and free (some open source) implementations. OneTeam Media Server has been announced on ProcessOne[5]. A C++ implementation called crtmpserver[6] is also available. [edit]
  9. Developer Productivity Tools management console, code generation, service browser, invocation test drive, project templates, FlexBuilder plugin, Eclipse plugins, command line tools, built-in examples Multi-Client Support Flash, Flex, Silverlight, AJAX
  10. Security custom authentication, custom authorization, role-based security, graphical configuration Data Management code generator, full CRUD, client synchronization, intuitive API, extensible programming model, sample test drive Performance Monitoring server-side instrumentation Real-Time Messaging data push, producer-consumer model, MSMQ and JMS integration, remote shared objects, message broadcast
  11. Video Streaming streaming flash video, video broadcast, server initiated video, video recording, video chat Extensibility Features custom object serialization, abstract argument mapping, object factories, invocation chain, custom object activation, special attributes, security handlers Solid Product Roadmap – we’re always adding new features to increase the value of your investment