integration von oracle forms in service oriented architecture (soa) · • skalierbare und...

Post on 25-Aug-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Integration von Oracle Forms in Service Oriented Architecture (SOA)

Jürgen MengeOracle 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.

HTTPHTTPServerServer

OC4JOC4JServletServlet EngineEngine

FormsFormsRuntimeRuntime

11

Application Tier Database TierClient Tier

FormsFormsServletServlet

MOD_OC4JMOD_OC4J

FormsFormsListenerListenerServletServlet FormsForms

RuntimeRuntime22

Client 1Client 1

Client 2Client 2

Inte

rnet

OracleAS 10 g Forms Services

Clie

nt s

ide

Fire

wal

lC

lient

sid

e F

irew

all

Inte

rnet

Ser

ver

side

Fire

wal

lS

erve

r si

de F

irew

all

� zentrales DeploymentOracle Forms Runtime + compiled Files

Forms

J2EE

Oracle Application Server

GemeinsameSicherheit

GemeinsameAdministration

GemeinsameGeschäftslogik

Integration von Forms in den OracleAS

Java

Enterprise Manager

Single Sign-On

• 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

Integration mit Java, XML und Web Services

Implementierung mit Forms 6 i

Implementierung mit WebForms

• 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

Server-side Java

• Unterstützung für• Arrays• Exceptions• Objects • Methods• Attributes• Static

Methods/Attributes

• Object lifetime & Persistence

• Generierung von PL/SQL-Wrapper-Packages zur Ausführungauf dem Middle Tier

Oracle Forms - Java Importer

Oracle Forms in Service-orientierten Architekturen (SOA)

• 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

Forms als Konsument von Web Services

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

• 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 Bibliothekenhttp://download.oracle.com/otn/java/oc4j/101320/wsclient_extended_101320.zip

Forms als Konsument von Web Services

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)

• Problemstellung• Aufruf von server-seitigen Java-Klassen in der Form führt zu

Unhandled Exceptions• ORA-105100 ORA_JAVA.JAVA_ERROR• ORA-105101 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

Forms Runtime – Java Error Stack

<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ünschtenFormat an die Forms-Applikation

http://www.oracle.com/technology/products/xml-publisher/docs/Forms_BIP_v21.pdf

Datenbank

OracleASForms Service

Client

OracleASBI PublisherWeb Service

Daten

Bericht

Aufruf eines Berichtes aus Oracle Forms

D E M O N S T R A T I O ND E M O N S T R A T I O N

Web Service Web Service ausausForms aufrufenForms aufrufen

<Insert Picture Here>

Beispiel: Oracle BPEL

Einbindung von Services in einerService orientierten Architektur (SOA)

SubmitOrder

CheckInventory

CheckCredit

SendResult to

User

Portal

SAP

Java

Web App

Mainframe

FormulateFulfillment

Offer

FormulateRejection

CanFulfill?

TransformOrder/

Customer

DetermineDiscount

• 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)

BPEL – Service Orchestration

• BPEL = Business Process Execution Language• Unternehmensweite Infrastruktur für Entwicklung und Betrieb der BPEL-

basierten Geschäftsprozessabläufe

• Native BPEL Implementierung

• Einfache Modellierung

• Skalierbare und zuverlässigeLaufzeitumgebung

• Flexibles Binding Framework

• Umfangreiche Verwaltung und Monitoring

• Unterstützt Oracle AS, WebLogic, WebSphere, JBoss

• Installiert und lauffähig in weniger als 15 Minuten!

BPEL ConsoleM

AN

AG

E

J2EE Application Server(Oracle AS, WebLogic, JBoss, WebSphere)

Core BPEL Engine

WSDL Binding Built-in Integration Services

File, FTP

Web services

Java, JMS

Database

JAVA XSLT Rich Workflow

BPEL

JDeveloper, Eclipse

BPEL Designer

BPEL Process Manager

Sensors

Dehydration Store(Oracle Database)

Apps

Oracle BPEL Process Manager

ToDo Liste

Assign Task

TaskComplete

Workflow Service

(1) Zuweisen einer Aufgabe (Task) an einen Benutzer/Rolle

(2) Rückgabe der Antwort an den Prozesses

Update Task

BPELProcess

WSDL Contract

Workflow als Service

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 ND E M O N S T R A T I O N

FormsForms --Integration mit Integration mit BPELBPEL --ProzessProzess

BPEL Konsole

• Starten eines Prozesses

Eintragen der Daten

Starten

• Default BPEL Worklist• Java Server Page• bei der Erstellung des Prozesses generiert

Bearbeitung der Tasks in der BPELWorklist

• Worklist Details

Bearbeitung der Tasks in der BPELWorklist

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)

• 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

Interaktion von Forms mit BPEL-Prozess

Bearbeitung der BPEL Tasks in Forms

Bearbeitung der BPEL Tasks in Forms

Bearbeitung der BPEL Tasks in Forms

Web Service oderJava API Aufrufe

Urlaubsantrag

Reisekostenabrechnung

Kreditvergabe

Architektur Forms - BPEL

Integration externer Systeme über BPEL

Siebel

Cobol File

“ Mainframe ”

BPEL

Oracle APPS

Oracle Forms

SAP

J2EE

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

top related