Mais conteúdo relacionado Semelhante a Oracle ADF Architecture TV - Design - ADF Service Architectures (20) Oracle ADF Architecture TV - Design - ADF Service Architectures1. 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
2. 2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Real World ADF Design & Architecture Principles
ADF Business Components as a Service
ORACLE
PRODUCT
LOGO
15th Feb 2013 v1.0
3. 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Learning Objectives
• At the end of this module you should be able to:
– Understand that you can leverage existing ADF skills to
create SOAP ad REST Service
– Understand how to design ADF BC business logic so it can be
reused for Web, Mobile and SOA access
– Separate ADF BC services from web modules to avoid
unnecessary code deployments
Image: imagerymajestic/ FreeDigitalPhotos.net
4. 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Exposing ADF BC models as SOAP and REST
services allows you to reuse your business
logic for SOA and mobile access.
This truly enforces consistency and accelerates
developer productivity. Just perfect!
Image: Ambro/ FreeDigitalPhotos.net
5. 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Program Agenda
• ADF BC SDO Services
• ADF BC Restful Services
• Best Practices
6. 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
ADF BC SDO Services
• Service enabled Application Modules accessed from
– Web Service clients
– Service Component Architecture (SCA) composite
– Other ADF BC applications
• Service interface exposes
– View Object rows as SDO objects
– Operations, Custom methods
– View Criteria queries
• EJB 3.0 annotated Web Service (Remote Interface)
In a Nutshell
7. 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
ADF BC SDO Services
Architecture
FrameworkExtensions
ServiceInterface
EJB3SessionBean
WSDL
AM
ADF BC
Entities
SOA
JAX-WS
Client
VOEO
8. 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Program Agenda
• ADF BC SDO Services
• ADF BC Restful Services
• Best Practices
9. 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
ADF BC RESTful Services
• REST enabled Application Modules accessed from
– HTML clients
– Mobile clients
– Enterprise applications
• REST Interface exposes
– VOs as resources
– Payloads in JSON format
– CRUD operations via standard HTTP methods
– Resource metadata available via “describe” functionality
In a Nutshell (planned feature)
10. 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
ADF BC RESTful Services
Architecture
FrameworkExtensions
WebServices
Servlet
DescribeFunctionality
AM
Mobile
Clients
Web
Browser
JAX-RS
Client
VOEO
11. 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Program Agenda
• ADF BC SDO Services
• ADF BC Restful Services
• Best Practices
12. 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
ADF BC Services
• Think "Service" !
– Create services that are not too fine grain
– Use "Java Extended For Oracle" data maps
• Think deployment!
– Deploy only the sources used by a service
• Think network!
– Expose only data used by clients
– Consider deferred parent-child data fetching
Best Practices
13. 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Workspace & Project Organization Options
Dedicated Service Projects and ADF Library
SDO Model Project
REST Model Project
Web Model Project
ADF Library
EO
EO VO AM
EO VO AM
EO VO AM
EO
EO
EAR
EAR
EAR
14. 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Workspace & Project Organization
• Organize Project structure by deployable unit
– Use JDeveloper workspace to hold ADF BC service projects for a
specific module of your application (e.g. Warehouse, Storefront, Human
Resources, etc.)
– Use one Project for each ADF BC service you build
– If reuse is possible, build ADF Libraries for shared model artifacts (entity
objects, view objects, base classes)
Dedicated Service Projects and ADF Library
15. 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
I understand that ADF Business Components is only
one option to provide a service interface to application
logic and data.
What other options are available?
And if there are other options, when do I use them?
Image: imagerymagestic/ FreeDigitalPhotos.net
16. 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
If enterprise data is accessed from multiple devices,
and if this access is not necessarily related to the ADF
application I build, what would be the impact to my
ADF architecture decision?
Image: imagerymagestic/ FreeDigitalPhotos.net
17. 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Conclusion
• Consider reuse of your business logic in SOA environments and with mobile
• Save entities (and optional view objects as well) in ADF libraries for reuse in Web,
SOAP and REST projects
– For your reusable bits, don't rely on
• User session
• ADF BC session
– getUserData()
• Tailor services to the service need
– Ensure best performance by reducing the content to be passed back and forth
• Access channel and remote data access requirements determine the service that
exposes data
– Access to application data that uses the same business logic
– Generic access to enterprise data that does not necessarily belong to the ADF application you build
18. 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Further Reading
• http://www.oracle.com/technetwork/developer-tools/jdev/documentation/
index.html
– Oracle JDeveloper and ADF Documentation Library
– Fusion Developer Guide
• "Integrating Service-Enabled Application Modules"
• Oracle Magazine on ADF BC SDO Services
– http://www.oracle.com/technetwork/issue-archive/2012/12-sep/
o52adf-1735897.html
19. 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.