8/9/2019 Flex Java Springs Overview
1/22
RIAs with Java, Spring,Hibernate, BlazeDS, andFlex
James Ward
www.jamesward.com
Technical Evangelist - Adobe
#6662
8/9/2019 Flex Java Springs Overview
2/22
CLIENT/ SERVERMAINFRAME
WEB APPLICATIONS
EASEOFDE
PLOYMENT
Hard
Easy
ClientCapability
Limited Full
1992
1998
2004
RICH INTERNETAPPLICATIONS
Applications have evolved
8/9/2019 Flex Java Springs Overview
3/22
Adobes Software Development Platform
Designer/ Developer Tools
Creative Suite 4
Flex Builder
Servers/ Services
ColdFusionLiveCycleFlash Media
ServerAcrobatConnect
FlashCast
Scene7
ApplicationsAdobeMediaPlayer
Frameworks
Clients
ClientRuntimes Adobe
AIRFlashPlayer
BuzzwordAcrobatConnect
AjaxAdobeFlex 3
60 Day Free Trial
Free for studentsand educators
High PerformanceJITing VM:
Mozi lla Tamarin
Open Source: MPL
Use any text editor / IDE
Open Bug Database:http:/ / bugs.adobe.com
8/9/2019 Flex Java Springs Overview
4/22
Adobe AIR Application Stack
Cross- OSApplication
IntegratedRendering
Integrated DOMs
& Scripting
Flash
Flex
ActionScript
XML
Audio
Video
HTML
HTML
HTML
JavaScript
XML
CSS
Flash
Adobe AIR APIs
Mac, Windows, Linux & Device OS
File SystemAccess
NetworkDetection
NotificationsApplication
UpdateDrag and
DropLocal
Database...
8/9/2019 Flex Java Springs Overview
5/22
MXML and ActionScript
XML/ HTTPREST
SOAP Web Services
How Flex Works
Browser
J2EE Application Server
BlazeDS orLC Data Services
Flash Player
Web Server
Existing Applications and Infrastructure
Flex Builder IDE
Flex SDKMXML ActionScript
Flex Class Library
.swf
Compile
.swf
HTTP/ S AMF/ S RTMP/ SSOAP
Adobe AIR
8/9/2019 Flex Java Springs Overview
6/22
Tour de Flex - flex.org/ tour
8/9/2019 Flex Java Springs Overview
7/22
Flex with Java via XML (RESTful / SOAP)
Web Service
Client
App Server
XML
(RESTful /SOAP)
http://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.html8/9/2019 Flex Java Springs Overview
8/22
8/9/2019 Flex Java Springs Overview
9/22
http:/ / www.jamesward.com/ census/
8/9/2019 Flex Java Springs Overview
10/22
Flex with Java via Remoting
BlazeDS
Spr ing Bean
Client
J2EE Server
POJO
EJB
Other
Endpoint
AMF
http://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.html8/9/2019 Flex Java Springs Overview
11/22
Flex with Java via Messaging
MessageService
BlazeDS
Adapter Y
Adapter X
MessagingSystem Y
MessagingSystem X
Endpoint JMSProvider
JMS Adapter
Publisher
Subscriber
RTMPAMFHTTP
J2EE Server
http://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.htmlhttp://cloud.macromedia.com/strategy/2005/roadmap.html8/9/2019 Flex Java Springs Overview
12/22
Spring and Flex!
SpringSource and Adobe have formed a joint partnership to turn this idea intoreality!
The foundations of this new integration wi ll be available as open source
A new Spring subproject in the web portfolio:
Spring BlazeDS IntegrationFocus on integrating the open source BlazeDS with Spr ing
2
8/9/2019 Flex Java Springs Overview
13/22
M1 - Dec 2008
Bootstrap the BlazeDS MessageBroker as a Spr ing- managed bean (no moreweb.xml MessageBrokerServlet config needed)
Route http- based Flex messages to the MessageBroker through the SpringDispatcherServlet
Expose Spring beans for remot ing using typical Spring remot ing exporterconfiguration
3
8/9/2019 Flex Java Springs Overview
14/22
M2 - March 2008
Spring Security integration
Ensure that Spring security can secure any Springmanagedendpoints with credent ials provided by the Flex app
14
8/9/2019 Flex Java Springs Overview
15/22
post M2Spring JMS integration
Integration with the BlazeDS MessageService Use Spring configuration to manage BlazeDS
MessageDestinations
Let Spring manage the JMS details
Allows easy communication from Flex clients to Springmessage- driven POJOs
Spring 3.0 REST integration
Provides support for multiple client- types
Flex apps can already consume Spring 3.0 RESTful endpoints through
HTTPService
Additional value could be realized by providing an AMFViewimplementation
Response for H TTP req uests w ith a C on tent-Type= application /action script
8/9/2019 Flex Java Springs Overview
16/22
web.xml< listener>
< listener-class> org.springframework.web.context .ContextLoaderListener< / listener- class>
< / listener>
< servlet>
< servlet- name> testdrive< / servlet- name>
< servlet-class> org.springframework.web.servlet.DispatcherServlet< / servlet- class>
< load- on- startup> 1< / load- on- startup>
< / servlet>
< servlet- mapping>< servlet- name> testdrive< / servlet- name>
< url- pattern> / messagebroker/ *< / url- pattern>
< / servlet- mapping>
8/9/2019 Flex Java Springs Overview
17/22
web.xml - Security Config< context- param>
< param- name>contextConfigLocation< / param- name>
< param- value>
/ WEB- INF/ config/ web- application- config.xml
/ WEB- INF/ config/ web- application- security.xml
< / param- value>
< / context- param>
< filter- name> springSecurityFilterChain< / filter- name>
< filter- class> org.springframework.web.filter.DelegatingFilterProxy< / filter- class>
< / f i lter>
< filter- mapping>
< filter- name> springSecurityFilterChain< / filter- name>
< url- pattern> / *< / url- pattern>
< / fi l ter- mapping>
8/9/2019 Flex Java Springs Overview
18/22
web- application- config.xml< beans xmlns= "http:/ / www.springframework.org/ schema/ beans"
xmlns:flex= "http:/ / www.springframework.org/ schema/ flex"
xmlns:security= "http:/ / www.springframework.org/ schema/ security"
xmlns:xsi= "http:/ / www.w3.org/ 2001/ XMLSchema- instance"
xsi:schemaLocation= "
http:/ / www.springframework.org/ schema/ beans
http:/ / www.springframework.org/ schema/ beans/ spring- beans- 2.5.xsd
http:/ / www.springframework.org/ schema/ flex
http:/ / www.springframework.org/ schema/ flex/ spring- flex- 1.0.xsd
http:/ / www.springframework.org/ schema/ security
http:/ / www.springframework.org/ schema/ security/ spring- security- 2.0.4.xsd">
< flex:message- broker>
< flex:secured / >< / flex:message- broker>
8/9/2019 Flex Java Springs Overview
19/22
web- application- config.xml - RemotingBeans < !- - Expose the productDAO bean for BlazeDS remoting - - >
< flex:remote- service ref= "productService" / >
< !- - A secured version of productService - - >
< bean id= "securedProductService" class= "flex.spr ing.samples.product.ProductDAO" >
< flex:remote- service/ >
< constructor- arg ref= "dataSource"/ >
< security:intercept- methods>
< securi ty:protect method= "find*" access= "ROLE_USER" / >
< / security:intercept- methods>
< / bean>
8/9/2019 Flex Java Springs Overview
20/22
Hibernate Integration
Either wrap beans by remot ing Spr ing services / EJB Session Beans /POJOs...
public class Employee
public class EmployeeService
Or use dpHibernate
Or use LCDSs Data Management Service
20
8/9/2019 Flex Java Springs Overview
21/22
EJB Entity Beans and Session Beans21
8/9/2019 Flex Java Springs Overview
22/22
The End
Questions?
Learn More:
> Tour de Flex - flex.org/ tour
> www.jamesward.com