2024: Domino Containers - The Next Step. News from the Domino Container commu...
so-aDF
1. SO-ADF
ODTUG Kaleidoscope 2010
Tuesday, 29th June
Lucas Jellema
AMIS, The Netherlands
2. Overview
• Position and Role of ADF and SOA Suite
• It’s a case of St Matthews Hospital
• ADF Application leveraging SOA Composite
Applications
• ADF Faces provides UI for Human Task
• Leverage the ADF BAM Data Control
• ADF BC feeding business events into EDN
• ADF BC - the new Database Adapter?
– providing advanced database access through SDO
• Some SOA Concepts in ADF application development
3. Purpose in life
• ADF: provide user interface for humans to
perform tasks that implement process steps
– The front end to many, heterogeneous back end
systems including database, cms, dwh/bi, workflow
• SOA (Suite): provide a well defined service
interface on processes & integration layers
– Run the encapsulated implementation underneath
the service interface
– Promote reuse & flexibility in the moving parts
– SOA == BAD (Business Agility through Decoupling)
5. View
Portlet
ADF Faces JSP, Web
Mobile Desktop
Rich Client Servlet Service
ADF Model
Business Services
EJB & JPA
ADF BC POJO
(EclipseLink)
Enterprise Resources
RDBMS WebService Content BAM SOA
Repository Server Suite
7. Some material used from the book
• Shipping before OOW
– End of August
• On SOA and SOA Suite
• Chapters on
– ADF
– interaction between
ADF and SOA Suite
– Applying SOA
concepts to ADF based
development
9. Overview
• Position and Role of ADF and SOA Suite
• It’s a case of St Matthews Hospital
• ADF Application leveraging SOA Composite
Applications
• ADF Faces provides UI for Human Task
• Leverage the ADF BAM Data Control
• ADF BC feeding business events into EDN
• ADF BC - the new Database Adapter?
– providing advanced database access through SDO
• Some SOA Concepts in ADF application development
10. St Matthews On Line:
Request Appointment for Patient
• ADF Faces Web Application for GPs to request
a new appointment for a patient
– Invokes the SOA Composite application
PatientAppointmentService as WebService
– Response: appointment identifier
• Additionally:
– Request status of appointment (date/time,
instructions)
– Cancel apppointment
12. Mobile Web Service Desktop
-ADF Faces Mobile ADF Faces JSP, -RESTful
-Swing
-Native Mobile Rich Client Servlet -SOAP
-MS Office
Client -Portlet
PatientsVw find… request… cancel status getTask… claim ok
PatientsService PatientAppointmentService ScheduleAppointmentTask
Data Control Data Control Data Control
ADF Model
EJB & JPA
ADF BC POJO
(EclipseLink)
BAM
Server Human Task
WebService (SOA Suite
-RESTful
Content Workflow
RDBMS -SOAP
-SCA Composite Repository Services)
“anything Java can access”
13.
14.
15.
16. Alternative ways to call SOA
Composite’s services from ADF
Instead of calling an XML/HTTP/SOAP based
WebService
• An ADF Application could use the ADF Binding
– Via RMI, exchanging XML messages
• Or the EJB Binding
– Via RMI, exchanging (serialized) Java objects
• Note: the ADF Binding and the EJB Binding
need to have been explicitly exposed
17. ADF applications with Data
Controls consuming Web Services
• WebService Data Control
• WebService Proxy (POJO) published as Data
Control
ADF Model
• WebService
Proxy wrapped EJB & JPA
ADF BC POJO
by ADF BC (EclipseLink)
POJO
– Override doDML,
WebService
doSelect,… -RESTful
-SOAP
-SCA Composite
18. Overview
• Position and Role of ADF and SOA Suite
• It’s a case of St Matthews Hospital
• ADF Application leveraging SOA Composite
Applications
• ADF Faces provides UI for Human Task
• Leverage the ADF BAM Data Control
• ADF BC feeding business events into EDN
• ADF BC - the new Database Adapter?
– providing advanced database access through SDO
• Some SOA Concepts in ADF application development
19. ADF Faces provides User Interface
for Human Tasks in SOA Suite
• Human Task is an asynchronous service
– Task details and data payload are the request
– The task outcome and the enriched payload are
the response
• The execution of the service is ‘the ghost in
the machine’: a human operator
– Who needs a user interface
• The UI is implemented
in ADF Faces
20. The SchedulerService
• When an Appointment is requested for a patient
– The PatientAppointmentService is initiated and hits the
‘ScheduleAppointment’ human task
– The task is assigned and appears in the Worklist
Application; the assignees are notified
• When an assignee opens the task in the worklist
application, the
special Task UI opens
– Worklist application
embeds the task flow
21. Default Task Form for Human Task
• For human tasks in SOA Composite applications
– A default Task Form can be generated
– With buttons for the supported outcomes
– And Form elements for the payload
• Read only and updatable
22. Specialized Task Flows
• Alternatively: a specialized task flow can be
created for
the human
task
27. SOA Suite
Work
flow
IFRAME Services
ADF Faces
ADF Faces
Web Application X
Web Application Y
TaskForm C
TaskForm A
TaskForm D
TaskForm B
28. Overview
• Position and Role of ADF and SOA Suite
• It’s a case of St Matthews Hospital
• ADF Application leveraging SOA Composite
Applications
• ADF Faces provides UI for Human Task
• Leverage the ADF BAM Data Control
• ADF BC feeding business events into EDN
• ADF BC - the new Database Adapter?
– providing advanced database access through SDO
• Some SOA Concepts in ADF application development
29. Introducing
Business Activity Monitoring
• Operational Business Intelligence
• Data fed in from many sources:
– RFID sensors, BPEL, Database Triggers, RSS, ODI
• Real Time insight
• Dashboard
• Live updates
• Looking for threshold crossing, exceptions, trends,
missing events
• Display visually and turn into alerts & notifications
31. Embedding real time displays
based on BAM Data Control
• Configure connection to BAM Server
• Create BAM Data Control
– Based on Data Objects in
Active Data Cache
• Drag & Drop Data Control’s
collections & attributes to
ADF Faces pages
– Just like ADF BC Data Control
– However: BAM Data Control is active
34. Live & Real Time dashboard in
regular ADF Web Application
• Active Data Service (‘server push’) will pick
changes in the
BAM Data Control
– Underlying BAM
ADC Data Object
• And push them to
the chart (or table)
in the ADF page
35. Overview
• Position and Role of ADF and SOA Suite
• It’s a case of St Matthews Hospital
• ADF Application leveraging SOA Composite
Applications
• ADF Faces provides UI for Human Task
• Leverage the ADF BAM Data Control
• ADF BC feeding business events into EDN
• ADF BC - the new Database Adapter?
– providing advanced database access through SDO
• Some SOA Concepts in ADF application development
37. Consumer
Event
Producer Delivery
Network
Consumer
Examples of events: Examples of event consumers:
-User clicked on button -Server side actionListener
-Field was changed -clientListener, onValidateItem triggger
-Record in table is being updated -Database table trigger
-Result of query has changed -Change Notification Handler
-Tom posted message on forum -Activity Stream
-Order was dispatched -Complex Event Processor
-Customer has changed address -Synch CRM BPEL process
- Patient has died or moved - SOA Composite application
38. ADF Faces Web Application
PatientAdministration
Application Module
PatientsService
View Object
PatientsVw
ADF Entity Object
Business Patient
Components
PATIENTS
39. ADF Application for Patient
Administration
• One Business Event defined at St. Matthews is
the ‘Patient has moved’ event
• Any application, process or service that (first)
registers or detects that event should publish it
• The Patient Administration application is one
point of origination for this business event
– And therefore should publish it to the EDN
• ADF Business Components has an easy
integration with EDN
40. ADF Faces Web Application
PatientAdministration
Application Module
PatientsService
View Object SOA Suite
PatientsVw
E
ADF Entity Object D
Business Patient N
Components
PatientHas
Moved
PATIENTS
45. ADF consuming EDN events
Steps:
• EDN events published on JMS
• ADF Faces application has registered as
listener on the JMS queue
– An application scope bean collects events in
‘active data collection’
• ADF Faces page contains Active Table based
on the ‘active data collection’
– New EDN events are pushed to the ADF Faces UI
47. Overview
• Position and Role of ADF and SOA Suite
• It’s a case of St Matthews Hospital
• ADF Application leveraging SOA Composite
Applications
• ADF Faces provides UI for Human Task
• Leverage the ADF BAM Data Control
• ADF BC feeding business events into EDN
• ADF BC - the new Database Adapter?
– providing advanced database access through SDO
• Some SOA Concepts in ADF application development
48. ADF BC providing Data Access
service to BPEL processes
• SOA Suite communicates with database
through Database Adapter (or AQ Adapter)
– SQL (select, DML), PL/SQL and polling
• Alternatively, Service Data Objects and a Data
Access Service can be used
– XML and HTTP based
– Stateful dataset & two-way synchronization
49. ADF Faces Web Application
PatientAdministration
(SDO) Web
Service
PatientsService
Application Module
PatientsService
View Object SOA Suite
PatientsVw
E
ADF Entity Object D
Business Patient N
Components
DB
Adapter
PATIENTS
50. ADF BC, SDO and BPEL
• ADF BC Application Module can be exposed as
Service Interface that is SDO enabled
• The SOA Suite ADF BC binding adapter
connects to the SDO Service Interface
• BPEL Variables can be based on SDO Entity
– BPEL activity Create Entity does Insert
– BPEL activity Bind Entity does retrieve
– Assign in BPEL results in call to update on SDO
58. What SDO will do for us
• When the Entity Variable has been Created or
Bound
• Then a link persists between the SDO Service
and the BPEL variable
– When the BPEL variable is manipulated, the SDO
Service is notified
– When the SDO is changed, the BPEL variable is
synchronized
• For example when the ADF BC ViewObject or a
database trigger does enrichment/conversion
59. ADF Faces Web Application
ADF Faces Web OtherPatientAdministration
Application
Patient (SDO) Web
Administration Service
PatientsService
Application Module Application Module
PatientsService SpecialPatientsService
View Object View Object
PatientsVw PatientsVw
ADF Entity Object Entity Object ADF
Business Patient Patient Business
Components Components
PATIENTS
?
60. Service Enabled Entity Objects
• ADF BC supports Service Enabled Entity Objects
based on ViewObjects in Service Interface of
Application Module
• ADF takes care of turning local operations on
ViewObject into WebService call to remote ADF
service provider
• The consuming application uses ADF BC as always –
with some limitations
– No joins in ViewObjects based on service enabled entities
– Separate transactions for service enabled and local entities
62. Overview
• Position and Role of ADF and SOA Suite
• It’s a case of St Matthews Hospital
• ADF Application leveraging SOA Composite
Applications
• ADF Faces provides UI for Human Task
• Leverage the ADF BAM Data Control
• ADF BC feeding business events into EDN
• ADF BC - the new Database Adapter?
– providing advanced database access through SDO
• Some SOA Concepts in ADF application development
63. SOA and UI – Different Worlds?
• Some services require or interact with a user
interface. For instance: BPEL process
containing Human Tasks.
• Taking it one step further: some user
interfaces can be treated/offered/used like
services!
64. UI Application can be a Service too
• Applications can be exposed as a collection of UI
services - user interface components based on data
and (data)services
• For example in the form of "portlets" that can be
consumed by a Portal product in a mash up
Data
65. Remember the SOA Concepts?
• Services with standardized Contracts
• Producers and Consumers
• Cross-platform/technology
• Independent development/management of
components
• Decoupling
• Events
66. Applying SOA Concepts to UI:
WSRP Portlets
• WSRP Standard: WebService for Remote Portlet
– Exposed by Portlet Container (or Provider)
– Portlet renders its own UI/the content (HTML)
– Contract includes (input) parameters (String or
String[]) and events (out, simple payload)
• Called by Portal/Portlet consumer
• Portlets can deal with data manipulation,
events, navigation, AJAX and partial refresh
67. Portlet and Decoupling
• Just like normal web services
– Portlets can be located anywhere
(we only need URL for endpoint)
– Portlets can be implemented in any technology – as long
as the standards are followed
– The implementation of Portlets can change
• as long as the contract (parameters/events) is safe
• Ideally the Portlet uses (style) classes and allows the
consumer to apply the stylesheet
68. Drawing the Analogy
Traditional SOA Components:
• Application ( = Consumer)
• Webservices ( = Service + Contract)
• Enterprise Service Bus ( = Service Provider)
• Queues (= Events and Event Listeners)
WSRP Portlet Components:
• Portal ( = Consumer)
• WRSP Portlets ( = Service + Contract)
• Portlet Providers ( = Service Provider)
• Produces events for Portal (= Events and Event Listeners)
69. ADF Task Flows
• With Oracle ADF (underlying UI technology of
WebCenter) comes an alternative way to
develop UI Services: ADF Task Flows
• ADF Task flows are Portlet-like in many
respects: stand alone, independently
developable, reusable UI component
• Task Flow = one or multistep view, internal
business logic, navigation flow, beans, …
– Communication from and to Task Flows through
(contextual) events
70. Task Flow Contract
• Like Portlets, ADF Task Flows adhere to a
Contract (native ADF).
Input:
Parameters (initial)
Events
Navigation commands
Output
(Changed) Parameters
Events
Navigation events
71. Comparing UI Service technologies
Portlet Task Flow
• Remote • Local, native, ADF only
• Cross Technology • Shared
• Standards based – Data Controls
– Transaction context
• Processing overhead
– Skin/Style
– Slower page rendering
– Client side JavaScript & UI
• Design Time and Run Time
decoupling • Rich Contract
– Complex parameters
– Remote provider has to be up
– Events out and in
• Needs portlet consumption • With complex payload
framework, e.g. WebCenter – Navigation influence
– And portlet publication
• Support for customization
72. Development
with Portlets & Task Flows
• The use of Portlets and Task Flows allows for a
decoupled way of developing applications
– Teams agree on a contract
– And both work their merry way based on the
contract – in fairly insulated manner
• Reuse is possible based on that contract
• Maintenance of Portlet and Task Flow can be
independent of consuming applications
– Note: task flow is integrated at design time
73. Summary and Conclusion
• ADF applications can make use of the
WebServices exposed by SOA applications
• SOA Composites rely on ADF for
– ADF Faces to provide the UI for Human Tasks
– ADF BC to provide Data(base) access services
• ADF can also: publish events to EDN, expose
BAM data, implements Admin UIs for SOA Suite
• Some SOA concepts are best practices in ADF
application development too
74
74. Resources
• Presentation and demos are on our blog
– http://technology.amis.nl/blog
• Contact me at:
lucas.jellema
@amis.nl