Forms, ADF and JETa Non- Aggression Pact
Florin Marcus
Company Profile
Agenda
What customers dislike about ADF?
What customers like about ADF?
What customers like about ADF?
What customers like about ADF?
Monitoring Performance
Forms and ADF
Who integrates Forms and ADF?
Who integrates Forms and ADF?
ADF - Oracle Metadata Services
Java Plugin disconntinued Consequences for Forms-ADF integration
ADF- Forms UI integration
ADF- Forms UI integration
ADF- Forms UI integration
ADF- Forms UI integration
Oracle JET
Why Another Web Framework?
Oracle JET
Javascript Framework
Consumes REST/JSON
Open Source
No tooling support
Traditional System Architecture on Web
User Cache
1. Minimises database round-trips
2. Holds not committed information
Javascript Framework System Architecture
User Cache in browser solutions:
1. HTML5 LocalStorage
2. IndexedDB
JET vs ADFAdvantages of Oracle JET
Public facing websites
Live data (ref#2)
High Availability support (out of the box)
Advantages of Oracle ADF
Full development stack
Versatile
Superior at PL SQL integration
Great for code generation
Tooling support (building your own wizards) - todo DB Validator wizard
Building Your Own JDev wizards
Declarative PL SQL calls ROWTYPE support
Forms, ADF and JET
Business Integration patterns
Business Integration patterns
Database remains the Best Place for business rules
Business Integration patterns
Advantages
● ‘The Standard’ for Webapps● Scales very well● Both JET and ADF supports it.
Disadvantages
● Limitations on reusing Form’s PL SQL code (no ‘post changes’)
Both ADF and JET supports it
Stateless Connections
Business Integration patterns
Same connection is Guaranteed for the duration of user session.
Widely regarded as ‘Unacceptable’ - up until Websockets.
Fits the same transaction lifecycle as Oracle Forms, allows for conversational state with PL SQL.
Supported by ADF only
Stateful Connections
Websockets and database connectionsPessimistic Locking using Websockets
#REF1
Business Integration patterns
Best approach for PL SQL logic reuse in ADF:
Use Stateless Connection on landing pages, menus, dashboards, search screens.
Switch to Stateful Connection when editing data (data input screens) .
Learning ADF
Journey from Forms to ADF
Learning ADF
3 Programming Languages: Java, Javascript, Groovy
4 Major Java EE technologies: Servlets, Java Server Faces, JDBC
ADF is build on top of:
Learning ADF
Learning ADF
Learning the whole ADF Stack may prove a challenge for the most talented Forms Developer.
Initially, separate the team into roles:
A. Business Developers (PL SQL, ADF Business Components)
B. Web Developers (UI)
Conclusions
References
Oracle ADFwww.oracle.com/technetwork/developer-tools/adf/overview/index.html;jsessionid=6R39V8WhqTQ7HMb2vTQTkzbP5XRFgs4RQzyxQ7fqxH9y6p6vKXk4!-460884186
Oracle JETwww.oracle.com/webfolder/technetwork/jet/index.html
ADF Insider Essentialswww.youtube.com/channel/UClAYKxUUFbBb6QAWH_CXY6g
ADF Architecture TVwww.youtube.com/channel/UCRvu_p8-tRgNi_Cd45Ll-fw
References
#ref1 Saving ADF Queriesandrejusb.blogspot.co.uk/2014/05/personalising-adf-query-with-mds-user.html
#ref2: Websocket Notification on Browser Disconnects andrejusb.blogspot.co.uk/2016/01/automatic-adf-logout-on-browser-close.html
#ref3: Stateful/Stateless Connection Switchandrejusb.blogspot.co.uk/2014/06/adf-bc-reserved-mode-for-db-connection.html
#ref4: Oracle JET Live data andrejusb.blogspot.co.uk/2016/02/oracle-jet-and-websocket-integration.html
Oracle ADF Live data andrejusb.blogspot.co.uk/2015/05/adf-and-two-way-websocket-communication.html