so-aDF
Upcoming SlideShare
Loading in...5
×
 

so-aDF

on

  • 3,317 views

 

Statistics

Views

Total Views
3,317
Views on SlideShare
3,317
Embed Views
0

Actions

Likes
3
Downloads
179
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

so-aDF so-aDF Presentation Transcript

  • SO-ADF ODTUG Kaleidoscope 2010 Tuesday, 29th June Lucas Jellema AMIS, The Netherlands
  • 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
  • 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)
  • Oracle Fusion Middleware ADF and SOA
  • 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
  • EDN SDO Entity Task UI
  • 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
  • St Matthews Hospital Center
  • 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
  • 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
  • SOA Composite application PatientAppointmentService
  • 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”
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Specialized Task Flows • Alternatively: a specialized task flow can be created for the human task
  • Create ADF Task Flow based on Human Task definition
  • Add Task action binding to page
  • Configure Task Flow for Human Task component in FMW EM
  • SOA Suite Work flow IFRAME Services ADF Faces ADF Faces Web Application X Web Application Y TaskForm C TaskForm A TaskForm D TaskForm B
  • 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
  • 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
  • Introducing Business Activity Monitoring ADF Application
  • 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
  • Configuring a ADF Faces 11g Graph based on a BAM Data Control
  • 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
  • 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
  • Event Driven Architecture Marketing Dealer Event Order Pool Customer Relations Sales Desk Shipping
  • 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
  • ADF Faces Web Application PatientAdministration Application Module PatientsService View Object PatientsVw ADF Entity Object Business Patient Components PATIENTS
  • 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
  • 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
  • Configure ADF BC Entity Objects
  • Define the Business Events
  • Consume Event in SOA Suite
  • And…. Action!!
  • 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
  • Much more on events…
  • 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
  • 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
  • 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
  • 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
  • Expose ADF BC Service Interface
  • Test SDO enabled Service Interface
  • Using the ADF-BC Binding Adapter
  • Create SDO Entity based variable in BPEL process
  • Replace call to Insert Database Adapter option with Create Entity
  • BPEL activity Bind Entity does ‘select * into BPEL variable’
  • 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
  • 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 ?
  • 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
  • Creating a Service Enabled Entity Object
  • 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
  • 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!
  • 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
  • Remember the SOA Concepts? • Services with standardized Contracts • Producers and Consumers • Cross-platform/technology • Independent development/management of components • Decoupling • Events
  • 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
  • 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
  • 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)
  • 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
  • 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
  • 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
  • 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
  • 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
  • Resources • Presentation and demos are on our blog – http://technology.amis.nl/blog • Contact me at: lucas.jellema @amis.nl