Architektur

Automatisierte Validierung in Oracle SOA-Projekten

Technische Richtlinien in Oracle SOA-Projekten helfen nicht nur kurzfristig, sondern auch nachhaltig erfolgreich zu arbeiten. Sie ermöglichen Interoperabilität, Wiederverwendbarkeit, eine vereinheitlichte Infrastruktur und den kontrollierten Einsatz von Technologien und Produkten.

Oracle CCI

Zur automatisierten Validierung der Richtlinien haben wir uns bei esentri für den Einsatz des von Oracle entwickelten Code Compliance Inspector (CCI) entschieden. Dieser ist nicht nur als Erweiterung für JDeveloper 11g verfügbar, sondern auch als Kommandozeilenprogramm und kann somit auch als Ant Target genutzt werden. Im erst kürzlich veröffentlichten JDeveloper 12c ist CCI sogar standardmäßig enthalten.

Regelwerke (Policies) und Regeln (Assertions) zählen zu den wichtigsten Artefakten von CCI. Die Notation erfolgt in XML-Dateien. Die bei CCI mitgelieferten Policies und deren Assertions können beliebig erweitert werden. Zur Validierung unserer eigenen Richtlinien haben wir diese in Assertions für CCI umgesetzt und in zwei neuen Policies zusammengefasst: esentri WSDL Standards und esentri XSD Standards.

Assertions in den AssertionCatalog-<version>.xml genannten XML-Dateien sehen bspw. wie folgt aus.

CodeComplianceInspectorAssertion

Speicherort für Policy-Dateien

Bei der Verwendung von CCI als Erweiterung für JDeveloper 11g befinden sich die Dateien für Policies und Assertion Catalogs im folgenden Verzeichnis.

$JDEV_HOME/jdeveloper/jdev/extensions/oracle.fp.compliance.inspector/config

Beim Aufruf von CCI über die Kommandozeile und der Verwendung des Parameters -policiesFile sollte man darauf achten keine Pfadangaben zu verwenden. Stattdessen muss sich die Datei in ComplianceInspector/lib oder ComplianceInspector/config (Class Path) befinden oder direkt in die compliance.policy.engine.jar integriert sein.

Assertions

CodeComplianceInspectorAssertionStructure

Zu den wichtigsten Eigenschaften einer Assertion zählen executorfileType und operation. Der Executor bildet die Grundlage jeder Assertion. CCI bietet zwei Executors: XPathExecutor zum Ausführen von XPath-verwandten Operationen (z.B. xpathExistsCheck) und FSExecutor zum Ausführen von Operationen auf dem Dateisystem (z.B. fileExistCheck).

Durch die geschickte Kombination von Executor, Operation und Parametern lassen sich zahlreiche Richtlinien validieren.

  • Namenskonventionen für Dateinamen, Service-Bezeichnungen und sonstige Bezeichner
  • Dokumentation und Struktur der Dokumentation
  • Erweiterte XML-Schema Design-Richtlinien
    • Qualifizierung von Elementen und Attributen
    • Definition optionaler Elemente

Ferner ermöglicht es FileType dem Anwender Assertions auf bestimmte Dateien, Dateiformate oder Ordner zu limitieren. Die Parameter (<Param>-Tags) einer Assertion sind abhängig vom verwendeten Executor/Operation und beinhalten bspw. XPath- und Reguläre Ausdrücke.

Fazit

Die verfügbaren Executors und Operations erlauben es, die meisten Regeln aus den Richtlinien in Assertions für CCI umzusetzen. Im Benutzerhandbuch für Oracle Fusion Middleware Infrastructure Components and Utilities werden die verfügbaren Executors, Assertion Parameters und Operations ausführlich beschrieben.

> Oracle SOA Suite 12c: Mehr Schwung mit neuem Feature-Set