SlideShare a Scribd company logo
ENTERPRISE  RIA  WITH FLEX, JAVA AND  GRANITEDS 2010, September 22  Franck WOLFF and William DRAI
A comprehensive  open source  alternative to Adobe server solutions THE PROJECT OPEN SOURCE : LGPLv2 MATURE : Started late 2006 WEB SITE : http://www.graniteds.org COMMUNITY : 650 members (estimated 5000 users) ADOPTION : Many administrations and corporations in Europe, USA and many other countries
PLATFORM STACK
AGENDA LIVE DEMO REMOTING TO JAVA SERVICES PERSISTENCE WITH JPA MESSAGING AND DATA SYNCHRONIZATION SECURITY NUMERIC DATA TYPES (new in GDS 2.2) MODEL-DRIVEN VALIDATION (new in GDS 2.2)
End-to-end typesafety ,[object Object]
Lots of boilerplate code and server-side configuration
Not typesafe, no code-completion
ALTERNATIVE SOLUTION : Tide API
Typesafe client stubs generated by GAS3 for usual Java services (Spring, EJB3, CDI...) ,[object Object],[object Object]
Typesafe remote service injection (Spring, CDI beans only)
Numeric types in AS3 are limited to int and Number ACCESSING REMOTE SERVICES (1/2)
@RemoteDestination public class HelloService { public String hello(String name); } [Inject] public var helloService:HelloService; private function hello(name:String):void { helloService.hello(name,  saveResult, saveFault ); } private function saveResult(event:TideResultEvent):void { trace(event.result); } private function saveFault(event:TideFaultEvent):void { Alert.show(event.fault.faultCode); } ACCESSING REMOTE SERVICES (2/2)
Simple data management ,[object Object]
SOLUTION :
AS3 entities are generated by GAS3
Serialization of JPA detached objects with their full internal state
A local entity cache ensures that each instance exists only once
Transparent lazy loading of collections PERSISTENCE WITH JPA (1/2)

More Related Content

What's hot

Deep Dive In To Kerberos
Deep Dive In To KerberosDeep Dive In To Kerberos
Deep Dive In To Kerberos
Ishan A B Ambanwela
 
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Codemotion
 
React JS - Introduction
React JS - IntroductionReact JS - Introduction
React JS - Introduction
Sergey Romaneko
 
Keystone Federation
Keystone Federation Keystone Federation
Keystone Federation
openstackindia
 
User authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesUser authentication and authorizarion in Kubernetes
User authentication and authorizarion in Kubernetes
Neependra Khare
 
3.2\9 SSIS 2008R2_Training - ControlFlow Tasks
3.2\9 SSIS 2008R2_Training - ControlFlow Tasks3.2\9 SSIS 2008R2_Training - ControlFlow Tasks
3.2\9 SSIS 2008R2_Training - ControlFlow Tasks
Pramod Singla
 
Android rest client applications-services approach @Droidcon Bucharest 2012
Android rest client applications-services approach @Droidcon Bucharest 2012Android rest client applications-services approach @Droidcon Bucharest 2012
Android rest client applications-services approach @Droidcon Bucharest 2012
Droidcon Eastern Europe
 
React render props
React render propsReact render props
React render props
Saikat Samanta
 
SSO with kerberos
SSO with kerberosSSO with kerberos
SSO with kerberos
Claudia Rosu
 
2\9.SSIS 2008R2 _Training - Control Flow
2\9.SSIS 2008R2 _Training - Control Flow2\9.SSIS 2008R2 _Training - Control Flow
2\9.SSIS 2008R2 _Training - Control Flow
Pramod Singla
 
Openstack Keystone
Openstack Keystone Openstack Keystone
Openstack Keystone
Kamesh Pemmaraju
 
3 database-jdbc(1)
3 database-jdbc(1)3 database-jdbc(1)
3 database-jdbc(1)
hameedkhan2017
 
Kubernetes Security Updates from Kubecon 2018 Seattle
Kubernetes Security Updates from Kubecon 2018 SeattleKubernetes Security Updates from Kubecon 2018 Seattle
Kubernetes Security Updates from Kubecon 2018 Seattle
Suraj Deshmukh
 
Breaking the Server-Client Divide with Node.js and React
Breaking the Server-Client Divide with Node.js and ReactBreaking the Server-Client Divide with Node.js and React
Breaking the Server-Client Divide with Node.js and React
Dejan Glozic
 
Euruko 2009 - DataObjects
Euruko 2009 - DataObjectsEuruko 2009 - DataObjects
Euruko 2009 - DataObjects
Dirkjan Bussink
 
OpenStack Toronto Meetup - Keystone 101
OpenStack Toronto Meetup - Keystone 101OpenStack Toronto Meetup - Keystone 101
OpenStack Toronto Meetup - Keystone 101
Steve Martinelli
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.js
Doug Neiner
 
React & Redux JS
React & Redux JS React & Redux JS
React & Redux JS
Hamed Farag
 
Lecture 1. java database connectivity
Lecture 1. java database connectivityLecture 1. java database connectivity
Lecture 1. java database connectivity
Waheedullah Suliman Khail
 
JDBC
JDBCJDBC

What's hot (20)

Deep Dive In To Kerberos
Deep Dive In To KerberosDeep Dive In To Kerberos
Deep Dive In To Kerberos
 
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
 
React JS - Introduction
React JS - IntroductionReact JS - Introduction
React JS - Introduction
 
Keystone Federation
Keystone Federation Keystone Federation
Keystone Federation
 
User authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesUser authentication and authorizarion in Kubernetes
User authentication and authorizarion in Kubernetes
 
3.2\9 SSIS 2008R2_Training - ControlFlow Tasks
3.2\9 SSIS 2008R2_Training - ControlFlow Tasks3.2\9 SSIS 2008R2_Training - ControlFlow Tasks
3.2\9 SSIS 2008R2_Training - ControlFlow Tasks
 
Android rest client applications-services approach @Droidcon Bucharest 2012
Android rest client applications-services approach @Droidcon Bucharest 2012Android rest client applications-services approach @Droidcon Bucharest 2012
Android rest client applications-services approach @Droidcon Bucharest 2012
 
React render props
React render propsReact render props
React render props
 
SSO with kerberos
SSO with kerberosSSO with kerberos
SSO with kerberos
 
2\9.SSIS 2008R2 _Training - Control Flow
2\9.SSIS 2008R2 _Training - Control Flow2\9.SSIS 2008R2 _Training - Control Flow
2\9.SSIS 2008R2 _Training - Control Flow
 
Openstack Keystone
Openstack Keystone Openstack Keystone
Openstack Keystone
 
3 database-jdbc(1)
3 database-jdbc(1)3 database-jdbc(1)
3 database-jdbc(1)
 
Kubernetes Security Updates from Kubecon 2018 Seattle
Kubernetes Security Updates from Kubecon 2018 SeattleKubernetes Security Updates from Kubecon 2018 Seattle
Kubernetes Security Updates from Kubecon 2018 Seattle
 
Breaking the Server-Client Divide with Node.js and React
Breaking the Server-Client Divide with Node.js and ReactBreaking the Server-Client Divide with Node.js and React
Breaking the Server-Client Divide with Node.js and React
 
Euruko 2009 - DataObjects
Euruko 2009 - DataObjectsEuruko 2009 - DataObjects
Euruko 2009 - DataObjects
 
OpenStack Toronto Meetup - Keystone 101
OpenStack Toronto Meetup - Keystone 101OpenStack Toronto Meetup - Keystone 101
OpenStack Toronto Meetup - Keystone 101
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.js
 
React & Redux JS
React & Redux JS React & Redux JS
React & Redux JS
 
Lecture 1. java database connectivity
Lecture 1. java database connectivityLecture 1. java database connectivity
Lecture 1. java database connectivity
 
JDBC
JDBCJDBC
JDBC
 

Viewers also liked

What you should know about EVC of Tax Return?
What you should know about EVC of Tax Return?What you should know about EVC of Tax Return?
What you should know about EVC of Tax Return?
Prabodhan Patil
 
Levelup Studio Profile 2011
Levelup Studio Profile 2011Levelup Studio Profile 2011
Levelup Studio Profile 2011
Akarawat Levelup
 
Elizabeth I.farland
Elizabeth I.farlandElizabeth I.farland
Elizabeth I.farland
tmfarland
 
Teekay Corporation Q1-2016 Earnings Presentation
Teekay Corporation Q1-2016 Earnings PresentationTeekay Corporation Q1-2016 Earnings Presentation
Teekay Corporation Q1-2016 Earnings Presentation
Teekay Corporation
 
Teekay Sustainability Report 2015
Teekay Sustainability Report 2015Teekay Sustainability Report 2015
Teekay Sustainability Report 2015
Teekay Corporation
 
economics
 economics economics
economics
Durgesh Singh
 
Teekay Corporation Q2-2016 Earnings Presentation
Teekay Corporation Q2-2016 Earnings PresentationTeekay Corporation Q2-2016 Earnings Presentation
Teekay Corporation Q2-2016 Earnings Presentation
Teekay Corporation
 
11ขั้นตอนการทำเกมแบบ Levelup Studio
11ขั้นตอนการทำเกมแบบ Levelup Studio11ขั้นตอนการทำเกมแบบ Levelup Studio
11ขั้นตอนการทำเกมแบบ Levelup Studio
Akarawat Levelup
 

Viewers also liked (10)

What you should know about EVC of Tax Return?
What you should know about EVC of Tax Return?What you should know about EVC of Tax Return?
What you should know about EVC of Tax Return?
 
Levelup Studio Profile 2011
Levelup Studio Profile 2011Levelup Studio Profile 2011
Levelup Studio Profile 2011
 
Elizabeth I.farland
Elizabeth I.farlandElizabeth I.farland
Elizabeth I.farland
 
Teekay Corporation Q1-2016 Earnings Presentation
Teekay Corporation Q1-2016 Earnings PresentationTeekay Corporation Q1-2016 Earnings Presentation
Teekay Corporation Q1-2016 Earnings Presentation
 
Westlife
WestlifeWestlife
Westlife
 
Teekay Sustainability Report 2015
Teekay Sustainability Report 2015Teekay Sustainability Report 2015
Teekay Sustainability Report 2015
 
economics
 economics economics
economics
 
Teekay Corporation Q2-2016 Earnings Presentation
Teekay Corporation Q2-2016 Earnings PresentationTeekay Corporation Q2-2016 Earnings Presentation
Teekay Corporation Q2-2016 Earnings Presentation
 
Testjes dag 3
Testjes dag 3Testjes dag 3
Testjes dag 3
 
11ขั้นตอนการทำเกมแบบ Levelup Studio
11ขั้นตอนการทำเกมแบบ Levelup Studio11ขั้นตอนการทำเกมแบบ Levelup Studio
11ขั้นตอนการทำเกมแบบ Levelup Studio
 

Similar to GraniteDS 360|Flex DC

Jasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-casJasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-cas
ellentuck
 
Creating a Java Internet of Things Gateway
Creating a Java Internet of Things GatewayCreating a Java Internet of Things Gateway
Creating a Java Internet of Things Gateway
Eurotech
 
Logisland "Event Mining at scale"
Logisland "Event Mining at scale"Logisland "Event Mining at scale"
Logisland "Event Mining at scale"
Thomas Bailet
 
Giga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching OverviewGiga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching Overview
jimliddle
 
Java programming concept
Java programming conceptJava programming concept
Java programming concept
Sanjay Gunjal
 
GumGum: Multi-Region Cassandra in AWS
GumGum: Multi-Region Cassandra in AWSGumGum: Multi-Region Cassandra in AWS
GumGum: Multi-Region Cassandra in AWS
DataStax Academy
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
banq jdon
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
ukdpe
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
IMC Institute
 
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
Association Paris-Web
 
Programming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.ioProgramming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.io
Günter Obiltschnig
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
HostedbyConfluent
 
Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS Lambda
Ryan Cuprak
 
ASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in TechnologyASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in Technology
Małgorzata Borzęcka
 
Ria Spring Blaze Ds
Ria Spring Blaze DsRia Spring Blaze Ds
Ria Spring Blaze Ds
Skills Matter
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
Sebastian Springer
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
Software Park Thailand
 
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSITInteroperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSIT
Carol McDonald
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of users
oazabir
 
Serverless by Example: Building a Real-Time Chat System
Serverless by Example: Building a Real-Time Chat SystemServerless by Example: Building a Real-Time Chat System
Serverless by Example: Building a Real-Time Chat System
Amazon Web Services
 

Similar to GraniteDS 360|Flex DC (20)

Jasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-casJasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-cas
 
Creating a Java Internet of Things Gateway
Creating a Java Internet of Things GatewayCreating a Java Internet of Things Gateway
Creating a Java Internet of Things Gateway
 
Logisland "Event Mining at scale"
Logisland "Event Mining at scale"Logisland "Event Mining at scale"
Logisland "Event Mining at scale"
 
Giga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching OverviewGiga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching Overview
 
Java programming concept
Java programming conceptJava programming concept
Java programming concept
 
GumGum: Multi-Region Cassandra in AWS
GumGum: Multi-Region Cassandra in AWSGumGum: Multi-Region Cassandra in AWS
GumGum: Multi-Region Cassandra in AWS
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
 
Programming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.ioProgramming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.io
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
 
Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS Lambda
 
ASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in TechnologyASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in Technology
 
Ria Spring Blaze Ds
Ria Spring Blaze DsRia Spring Blaze Ds
Ria Spring Blaze Ds
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSITInteroperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSIT
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of users
 
Serverless by Example: Building a Real-Time Chat System
Serverless by Example: Building a Real-Time Chat SystemServerless by Example: Building a Real-Time Chat System
Serverless by Example: Building a Real-Time Chat System
 

Recently uploaded

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 

Recently uploaded (20)

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 

GraniteDS 360|Flex DC

  • 1. ENTERPRISE RIA WITH FLEX, JAVA AND GRANITEDS 2010, September 22 Franck WOLFF and William DRAI
  • 2. A comprehensive open source alternative to Adobe server solutions THE PROJECT OPEN SOURCE : LGPLv2 MATURE : Started late 2006 WEB SITE : http://www.graniteds.org COMMUNITY : 650 members (estimated 5000 users) ADOPTION : Many administrations and corporations in Europe, USA and many other countries
  • 4. AGENDA LIVE DEMO REMOTING TO JAVA SERVICES PERSISTENCE WITH JPA MESSAGING AND DATA SYNCHRONIZATION SECURITY NUMERIC DATA TYPES (new in GDS 2.2) MODEL-DRIVEN VALIDATION (new in GDS 2.2)
  • 5.
  • 6. Lots of boilerplate code and server-side configuration
  • 7. Not typesafe, no code-completion
  • 9.
  • 10. Typesafe remote service injection (Spring, CDI beans only)
  • 11. Numeric types in AS3 are limited to int and Number ACCESSING REMOTE SERVICES (1/2)
  • 12. @RemoteDestination public class HelloService { public String hello(String name); } [Inject] public var helloService:HelloService; private function hello(name:String):void { helloService.hello(name, saveResult, saveFault ); } private function saveResult(event:TideResultEvent):void { trace(event.result); } private function saveFault(event:TideFaultEvent):void { Alert.show(event.fault.faultCode); } ACCESSING REMOTE SERVICES (2/2)
  • 13.
  • 15. AS3 entities are generated by GAS3
  • 16. Serialization of JPA detached objects with their full internal state
  • 17. A local entity cache ensures that each instance exists only once
  • 18. Transparent lazy loading of collections PERSISTENCE WITH JPA (1/2)
  • 19. @Entity public class Book { @Id private Long id; @Basic private String uid; @Basic private String title; } [Inject] public var bookService:BookService; private function saveBook():void { var book:Book = new Book(); book.title = titleInput.text; bookService.saveBook(book); } @Stateless public class BookServiceBean implements BookService { @PersistenceContext private EntityManager em; public Book saveBook(Book book) { return em.merge(book) ; } } PERSISTENCE WITH JPA (2/2)
  • 20.
  • 21. POOR SOLUTION : 'Refresh' button
  • 22. RICH SOLUTION : Use of messaging with the Consumer/Producer pattern (chat)
  • 23. GraniteDS includes a performant Comet engine (Gravity) that uses the capabilities of the underlying application server (non-blocking I/O, native APR, Servlet 3.0...) MESSAGING (1/2)
  • 24.
  • 25. 1. GraniteDS detects data updates and pushes them on a messaging topic
  • 26. 2. The Tide framework merges incoming updates in its local data cache
  • 27. 3. The UI is automatically updated by the Flex data binding mechanism MESSAGING (2/2)
  • 28.
  • 29. Built-in Flex Identity component integrated with Java security frameworks (servlet containers, Spring security, Seam security)
  • 30. Support for web-based authentication (SSO, OpenID...)
  • 31. Role-based and permission-based authorization SECURITY (1/2)
  • 32. [Inject] public var identity:Identity ; private function login():void { identity.login(username, password); } private function logout():void { identity.logout(); } // Retrieve current server authentication state private function creationComplete():void { identity.isLoggedIn (); } Role-based authorization <s:Button label='Delete' enabled=' identity.hasRole( &quot; admin &quot; ) '/> Permission-based authorization <s:Button label='Delete' enabled=' identity.hasPermission(book, &quot; delete &quot; ) '/> SECURITY (2/2)
  • 33.
  • 34.
  • 35.
  • 36. Implementation of Long, BigInteger and BigDecimal types in AS3
  • 37. No loss of precision during serialization
  • 38. Simple arithmetic operations implemented, with fine control over decimal expansion NUMERIC TYPES (2/2)
  • 39.
  • 40. STANDARD SOLUTION : Flex Validator API
  • 42. Requires to manually maintain consistency between client-side and server-side validation MODEL-DRIVEN VALIDATION (1/3)
  • 43.
  • 44. 1. GraniteDS includes a client validation engine implementing the Bean Validation API
  • 45. 2. The GAS3 generator replicates Bean Validation annotations into AS3 entities
  • 46. 3. The Flex component FormValidator enforces constraints for all inputs in a form MODEL-DRIVEN VALIDATION (2/3)
  • 47.
  • 48. Client and server validations are always consistent (Gas3)
  • 49. Custom error messages with bundles
  • 50. Server-side validation errors are also notified to the UI
  • 51. Q/A THANK YOU www.graniteds.org