Integration von Oracle Forms in Service Oriented Architecture (SOA)

Transcrição

Integration von Oracle Forms in Service Oriented Architecture (SOA)
Integration von Oracle Forms in
Service Oriented Architecture (SOA)
Jürgen Menge
Oracle Deutschland
The following is intended to outline our general
product direction. It is intended for information
purposes only, and may not be incorporated into any
contract. It is not a commitment to deliver any
material, code, or functionality, and should not be
relied upon in making purchasing decisions.
The development, release, and timing of any
features or functionality described for Oracle’s
products remains at the sole discretion of Oracle.
g
OracleAS 10 Forms Services
Server side Firewall
Client 2
Internet
Client 1
Application Tier
Client side Firewall
Client Tier
HTTP
Server
MOD_OC4J
Database Tier
OC4J
Servlet Engine
Forms
Servlet
Forms
Listener
Servlet
Forms
Runtime
1
Forms
Runtime
2
zentrales Deployment
Oracle Forms Runtime + compiled Files
Integration von Forms in den OracleAS
Oracle Application Server
Single Sign-On
Forms
J2EE
Gemeinsame
Sicherheit
Java
Gemeinsame
Geschäftslogik
Enterprise Manager
Gemeinsame
Administration
Integration mit Java, XML und Web
Services
• Client-side Java
•
•
•
Pluggable Java Components (PJC) und Java Beans
Oberflächenelemente und Logik auf dem Client
WebUtil ist eine Bibliothek von PJC und Java Beans
• Server-side Java
•
•
•
Ausführung von Logik im Application Server
Einbindung in Forms mittels des Java Importer
z.B. Java-Klassen, EJBs
• Integration mit Web-Services
•
Voraussetzung für service-orientierte Architekturen (SOA)
• Verarbeitung von XML
Implementierung mit Forms 6i
Implementierung mit WebForms
Server-side Java
• Möglichkeiten
•
•
•
•
•
Java Classes
EJB
ADF Components for Java
Web Services
Java Stored Procedures
• Erzeugung eines PL/SQL Wrappers durch den Java
Importer
• Built-In ORA_JAVA mit Standardfunktionen
• Aufrufstack:
PL/SQL => C => JNI (Java Native Interface) => Java
Oracle Forms - Java Importer
•
Unterstützung für
Arrays
Exceptions
Objects
Methods
Attributes
Static
Methods/
Attributes
• Object lifetime & Persistence
•
•
•
•
•
•
•
Generierung von PL/SQL-WrapperPackages zur Ausführung
auf dem Middle Tier
Oracle Forms in Service-orientierten
Architekturen (SOA)
•
Forms als Konsument von (Web)
Services
Forms als Konsument von Web Services
•
Forms-Module als Konsument von Web Services
• über die Integration von server-seitigem Java
• Einbindung des Web Service Client Stub in
Forms mittels des Java Importers
• Aufruf einer JVM auf dem Application Server
Beispiele:
http://www.oracle.com/technology/sample_code/products/forms/viewlets/10g/webservices/webservices_viewlet_swf.html
http://www.oracle.com/technology/products/forms/htdocs/10gr2/howto/webservicefromforms/ws_10_1_3_from_forms.html
Forms als Konsument von Web Services
• Web Service auswählen
=> JDeveloper: Auswahl
• Client für den Web Service erzeugen
=> JDeveloper: Web Service Proxy
• Web Service Client kompilieren und testen
=> JDeveloper
• Web Service Client (*.class) importieren
=> Forms: Java Importer
• Methoden aus Forms aufrufen
=> Forms: Trigger bzw. Program Units
• mit JDeveloper 10.1.3 wird JAX-RPC Client generiert
=> Archiv mit notwendigen Bibliotheken
http://download.oracle.com/otn/java/oc4j/101320/wsclient_extended_101320.zip
Web Service in Forms - Konfiguration
• Design Time (Forms Builder)
• FORMS_BUILDER_CLASSPATH setzen
• CLASSPATH setzen
Registry oder spezielles Start Script für den Builder
• Runtime (OracleAS Forms Service)
• CLASSPATH setzen
Environment File (default.env)
Forms Runtime – Java Error Stack
•
Problemstellung
• Aufruf von server-seitigen Java-Klassen in der Form führt zu
Unhandled Exceptions
• ORA-105100
• ORA-105101
ORA_JAVA.JAVA_ERROR
ORA_JAVA.EXCEPTION_THROWN
• Java Error Stack erforderlich, um die Fehlerursache zu erkennen
•
Lösungsansatz
• Import von 2 Klassen aus OH/jdk/jre/lib/rt.jar in die betreffende
Form
• java.lang.Exception
• java.lang.StackTraceElement
• Temporärer Einbau eines Exception Handlers in die betreffende
Form (PL/SQL-Logik)
• Anzeige des Java Error Stack in einem mehrzeiligen Textfeld der
Form
<Insert Picture Here>
Beispiel: Oracle BI Publisher
Aufruf eines Berichtes aus Oracle Forms
• Oracle BI Publisher
• moderne Lösung zur Erzeugung von Berichten und
Dokumenten
• BI Publisher Server läuft als Applikation im Application Server
• Nutzung der Web Service-Schnittstelle des BI Publisher
(ab 10.1.3.3.1)
• Import des Web Service Client in die Forms-Applikation
(Java Importer)
• BI Publisher Server liefert den Bericht im gewünschten
Format an die Forms-Applikation
http://www.oracle.com/technology/products/xml-publisher/docs/Forms_BIP_v21.pdf
Aufruf eines Berichtes aus Oracle Forms
OracleAS
Forms Service
Client
Bericht
Daten
OracleAS
BI Publisher
Web Service
Datenbank
D E M O N S T R A T I O N
Web Service aus
Forms aufrufen
<Insert Picture Here>
Beispiel: Oracle BPEL
Einbindung von Services in einer
Service orientierten Architektur (SOA)
SAP
Submit
Order
Transform
Order/
Customer
Mainframe
Formulate
Fulfillment
Offer
Check
Inventory
Can
Fulfill?
Determine
Discount
Check
Credit
Portal
Formulate
Rejection
Web App
Java
Send
Result to
User
BPEL – Service Orchestration
• Business Process Execution Language (BPEL)
•
•
•
•
•
•
•
Standard für die Orchestrierung von Geschäftsprozessen und
Web Services (OASIS, Version 1.1)
BPEL beschreibt den Ablauf von Geschäftsprozessen als
strukturierte Aktivitäten (XML-Dialekt)
entwickelt von IBM, Microsoft and BEA
(Version 1.0 im August 2002) auf Basis von XLANG
(Microsoft) und WSFL (IBM)
Eingereicht zur Standardisierung bei OASIS im April 2003
Unterstützt durch alle “Key-Player” (IBM, Microsoft, Oracle,
Sun, BEA, SAP, Siebel, …)
BPEL 2.0 wurde im April 2007 verabschiedet und freigegeben
Oracle wird BPEL 2.0 schrittweise mit dem Release 11
umsetzen (die meisten Konzepte bleiben unverändert)
Oracle BPEL Process Manager
•
•
BPEL = Business Process Execution Language
Unternehmensweite Infrastruktur für Entwicklung und Betrieb der BPELbasierten Geschäftsprozessabläufe
JDeveloper, Eclipse
• Native BPEL Implementierung
BPEL Designer
• Einfache Modellierung
BPEL
• Skalierbare und zuverlässige
Laufzeitumgebung
BPEL Process Manager
WSDL Binding
Built-in Integration Services
• Flexibles Binding Framework
Web services
Java, JMS
JAVA
XSLT
Dehydration Store
(Oracle Database)
Rich Sensors
Workflow
File, FTP
Database
Core BPEL Engine
BPEL Console
J2EE Application Server
(Oracle AS, WebLogic, JBoss, WebSphere)
MANAGE
Apps
• Umfangreiche Verwaltung und
Monitoring
• Unterstützt Oracle AS,
WebLogic, WebSphere, JBoss
• Installiert und lauffähig in
weniger als 15 Minuten!
Workflow als Service
WSDL Contract
Workflow Service
Assign
Task
Update
Task
Task
Complete
BPEL
Process
(1) Zuweisen einer Aufgabe (Task) an einen Benutzer/Rolle
(2) Rückgabe der Antwort an den Prozesses
ToDo Liste
Beispiel: Urlaubsantrag
• Einfacher Workflow
• Urlaubsantrag
Antrag abschicken
Ermitteln Resturlaub
Ermitteln Vorgesetzter
Weiterleiten an den Vorgesetzten
• Genehmigen / Ablehnen / Delegieren
• Information für den Antragsteller
• Bestätigen
•
•
•
•
D E M O N S T R A T I O N
Forms-Integration mit
BPEL-Prozess
BPEL Konsole
• Starten eines Prozesses
Eintragen der Daten
Starten
Bearbeitung der Tasks in der BPEL
Worklist
• Default BPEL Worklist
• Java Server Page
• bei der Erstellung des Prozesses generiert
Bearbeitung der Tasks in der BPEL
Worklist
• Worklist Details
BPEL Prozess starten
• Wie kann man einen BPEL Prozess aus Forms
heraus starten ?
• als Web Service
• BPEL-Prozess ist selbst ein Web Service
• XML/SOAP/WSDL Interface
• aus Java-Applikationen
• Java API
• Lokal oder Remote (RMI)
Interaktion von Forms mit BPEL-Prozess
• Schreiben der Java-Klassen zur Interaktion mit dem
BPEL Process Manager
(Java API oder Web Service API)
=> JDeveloper
• Java-Klassen kompilieren, testen, deployen
=> JDeveloper
• Java-Klassen (*.class) importieren
=> Forms: Java Importer
• Methoden aus Forms aufrufen
=> Forms: Trigger bzw. Program Units
• Datenmanipulation programmieren
=> Forms: Data Block
Bearbeitung der BPEL Tasks in Forms
Bearbeitung der BPEL Tasks in Forms
Bearbeitung der BPEL Tasks in Forms
Architektur Forms - BPEL
Web Service oder
Java API Aufrufe
Urlaubsantrag
Reisekostenabrechnung
Kreditvergabe
Integration externer Systeme über BPEL
SAP
Siebel
Oracle Forms
BPEL
Oracle APPS
J2EE
Cobol File
“Mainframe”
Zusammenfassung
• Offene Architektur in Forms
• client-seitiges Java
• server-seitiges Java (Java Importer)
• Integration mit anderen Anwendungen
• Forms als Konsument von Web Services
• Integration in BPEL-Prozesse
• Prozesse starten
• Prozessinformationen abfragen und bearbeiten
Q&A