The Leading Open Source MDA Platform. openmdx 2 Overview. June

Vergelijkbare documenten
WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn

Zelftest Java EE Architectuur

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

CTI SUITE TSP DETAILS

General info on using shopping carts with Ingenico epayments

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

ONZE PARTNERS GROEIEN.

INFITT01 - Internettechnologie WEEK 8

Handleiding Installatie ADS

! GeoNetwork INSPIRE Atom!

XML Web Services of.net Remoting? W ANNEER GEBRUIK JE WELKE TECHNOLOGIE VOOR DE AANROEP VAN REMOTE SERVICES

Process Mining and audit support within financial services. KPMG IT Advisory 18 June 2014

SAP Exchange Infrastructure. SAP Partner Connectivity Kit Overview

Component-based software engineering

ArcGIS Mobile ADF. Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag

CBSOData Documentation

Enterprise Architectuur. een duur begrip, maar wat kan het betekenen voor mijn gemeente?

ContentSearch. Deep dive

Support Center GIS-Flanders

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

Mobile Devices, Applications and Data

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

EM7680 Firmware Update by OTA

GOVERNMENT NOTICE. STAATSKOERANT, 18 AUGUSTUS 2017 No NATIONAL TREASURY. National Treasury/ Nasionale Tesourie NO AUGUST

Introduction to IBM Cognos Express = BA 4 ALL

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

Model driven Application Delivery

Firewall van de Speedtouch 789wl volledig uitschakelen?

Medicatie controle. Mobiele app op basis van App Service en Azure AD

OSI-model. Mogelijke toepassingen van netwerken. Protocollen. Eenvoudig MS-DOS netwerk (LAN) Novell, IPX / SPX. Applicatie laag.

Registratie- en activeringsproces voor de Factuurstatus Service NL 1 Registration and activation process for the Invoice Status Service EN 10

GS1 Data Source. Guide to the management of digital files for data suppliers and recipients

Orbis Software. Exact. Integration Tools. Whitepaper

MyDHL+ ProView activeren in MyDHL+

LDAP Server on Yeastar MyPBX & tiptel 31xx/32xx series

Opleiding PECB ISO 9001 Quality Manager.

L.Net s88sd16-n aansluitingen en programmering.

Voorbeelden van machtigingsformulieren Nederlands Engels. Examples of authorisation forms (mandates) Dutch English. Juli 2012 Versie 2.

Bescherming van (software) IP bij uitbesteding van productie

Intermax backup exclusion files

Unit testen van EJB's. Koert Zeilstra - iprofs

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

Capita Selecta Design Patterns voor administratieve applicaties

MyDHL+ Van Non-Corporate naar Corporate

L.Net s88sd16-n aansluitingen en programmering.

Demultiplexing reads FASTA format genome sequencing reads run

De Lync naar Het Nieuwe Werken. Utrecht - 25 januari 2011

AVG / GDPR -Algemene verordening gegevensbescherming -General data Protection Regulation

ISO/IEC 20000, van standaardkwaliteit naar kwaliteitsstandaard. NGI Limburg 30 mei 2007


MyDHL+ Tarief berekenen

Knowledgeable Referenceable Personable Accountable Scalable

Vergelijking Sun certificering voor Enterprise architect voor J2EE en het CPP Gecertificeerd softwarearchitect van de Open Universiteit Nederland

Nieuwsbrief NRGD. Editie 11 Newsletter NRGD. Edition 11. pagina 1 van 5.

My Benefits My Choice applicatie. Registratie & inlogprocedure

Value based healthcare door een quality improvement bril

Enterprise Open Source. Business case. Power to Innovate

Leeftijdcheck (NL) Age Check (EN)

Open Onderwijs API. De open standaard voor het delen van onderwijs data. 23 juni 2016 Frans Ward - SURFnet Architectuurraad - Utrecht

Data Handling Ron van Lammeren - Wageningen UR

Stappenplannen MailPlus SOAP API

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

[BP-ebMS-H-000] Welke versie van Hermes moet er gebruikt worden?

Interaction Design for the Semantic Web

Onder de motorkap van Microsoft Azure Web Sites. Eelco Koster Software architect ORDINA

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

Ius Commune Training Programme Amsterdam Masterclass 15 June 2018

Hoe met Windows 8 te verbinden met NDI Remote Office (NDIRO) How to connect With Windows 8 to NDI Remote Office (NDIRO

Integratie van Due Diligence in bestaande risicomanagementsystemen volgens NPR 9036

Delft-FEWS & Web Services

Registratie- en activeringsproces voor de Factuurstatus Service NL 1 Registration and activation process for the Invoice Status Service EN 11

Besluitenlijst CCvD HACCP/ List of decisions National Board of Experts HACCP

MyDHL+ Uw accountnummer(s) delen

Disclosure belofte. Ik stel het belang van de patiënt voorop en eerbiedig zijn opvattingen. Doel van de patient staat centraal

Installatie van Windows 10 op laptops. Windows 10 installation on laptops

Automatisch Testen. Customer Business Lunch. 6 november Netherlands Germany Switzerland Serbia

Programming Content Management Server 2002

Joop Cornelissen BMC Klantendag Professionaliseren dienstverlening CMS

ArchiMate voor kennismodellen van NORA en haar dochters. Marc Lankhorst 16 oktober 2013

ZorgMail Address Book SE Documentation

De Digitale Transformatie en de impact op IT. Capgemini Edwin Leinse

0515 DUTCH (FOREIGN LANGUAGE)

Introductie in flowcharts

Pijlers van Beheer. Bram van der Vos

De dynamiek van Middleware (in het HBO onderwijs)

Hoe te verbinden met NDI Remote Office (NDIRO): Apple OS X How to connect to NDI Remote Office (NDIRO): Apple OS X

BE Nanoregistry Annual Public Report

Education for a Smarter Planet. IBM. IBM Global Education 2010 IBM Corporation

CBSOData Documentation

Transcriptie:

openmdx 2 Overview June 2008

openmdx 2 New Features Mappings / Bindings MOF CCI2 MOF JMI2 MOF JDO2 Providers / Architecture JDO PersistenceManager architecture Plugin architecture Gateway Persistence Lightweight Container 2

openmdx 1 2 Migration Overview JDK 5 openmdx 2 requires JDK 5 Bindings Migration from openmdx CCI to JMI2 bindings Migration from openmdx CCI filters to CCI2 queries Deployment Changes in configuration of plugins and gateway For performance optimization new packacking of applications recommended Persistence Migration to DBOSlicedWithIdAsKey. RID/OID mapping not supported anymore State management State plugins replaced by StateViewHelper. State plugins not supported anymore Migration to StateViewHelper (not available yet for openmdx 2) required 3

Mappings / Bindings

CCI2 Mapping [1] The MOF CCI2 mapping generates Java interfaces which represent the MOF classes Java interfaces which represent the MOF associations The mapping is JMI compliant but without the javax.jmi.reflect overhead. A query interface is generated for each modeled class (openmdx 1 filters are not supported anymore) The MOF CCI2 mapping can be used to model and generate any kind of application-level Java interface. Examples are: Facade components XML-RPC / WebService components Clients which do not need the JMI features should use the CCI2 interfaces. 5

CCI2 Mapping [2] public interface ContractPositionT { public java.lang.string getamount( ); public java.lang.string getbaseamount( ); public java.lang.string getcontractnumber( );... 6

CCI2 Mapping [3] public interface AccountHasAccountAddress { interface Address<E> extends org.w3c.cci2.container<e> { E get( org.oasisopen.cci2.qualifiertype idtype, java.lang.string id ); void add( org.oasisopen.cci2.qualifiertype idtype, java.lang.string id, E address ); } } void remove( org.oasisopen.cci2.qualifiertype idtype, java.lang.string id ); 7

CCI2 Mapping [4] public interface ContractPositionTQuery extends org.w3c.cci2.anytypepredicate { public org.w3c.cci2.optionalfeaturepredicate amount( ); public org.w3c.cci2.stringtypepredicate thereexistsamount( ); public org.w3c.cci2.stringtypepredicate forallamount( );... 8

JMI2 Mapping [1] The MOF JMI1 mapping generates Java interfaces which are JMI-compliant and extend the CCI2 interface. JMI1 objects can be passed to methods having CCI2 signatures. openmdx 1 filters are not supported anymore. They must be replaced by CCI2 queries. JMI implementation classes are not generated anymore. The are implemented by Java proxies in a generic way. 9

JDO2 Mapping [1] The MOF JDO2 mapping generates Java classes which are PersistenceCapable and implement the CCI2 interface. JDO metadata information which allows to customize the OO-to- RR mapping. The generation of the metadata can be controlled by.openmdxjdo metadata files. JDO2 classes can be enhanced and managed by any JDOcompliant persistence manager. The JDO2 classes are de-coupled from the rest of the openmdx framework classes can be used in any kind of Java application. 10

JDO2 [2] Account.java package org.opencrx.kernel.account1.jdo2; public class Account extends org.w3c.jdo2.abstractobject implements org.opencrx.kernel.account1.cci2.account { private short accessleveldelete; public short getaccessleveldelete( ) { return this.accessleveldelete; } public void setaccessleveldelete( short accessleveldelete ) { this.accessleveldelete = accessleveldelete; } 11

JDO2 [3] Account.jdo <jdo> <package name="org.opencrx.kernel.account1.jdo2"> <class name="account" persistence-modifier="persistence-capable" detachable="true" identity-type="application" objectid-class="javax.jdo.identity.stringidentity"> <inheritance> </inheritance> <field name="openmdxjdoidentity" primary-key="true"/> <field name="segment" persistence-modifier="persistent"/> <field name="accessleveldelete" persistence-modifier="persistent"> </field> 12

JDO2 [5] Account-standard.orm <orm> <package name="org.opencrx.kernel.account1.jdo2"> <class name="account" table="oocke1_account"> <inheritance> <discriminator strategy="value-map" column="dtype" value="org:opencrx:kernel:account1:account"/> </inheritance> <version strategy="date-time"> <column name="modified_at"/> </version> <field name="openmdxjdoidentity"> <column name="object_id"/> </field> <field name="segment"> <column name="p$$parent"/> </field> <field name="accessleveldelete"> <column name="access_level_delete" allows-null="true"/> </field> 13

Providers / Architecture

Provider Architecture [1] Application EntityManagerFactory (gateway) DataProvider Layer_1 Client EntityManager PersistenceManager Entity DO Object_1 (*) UoW DataProvider Layer_1 getpersistencemanager getobjectbyid invoke operation openmdx 2 Plugins (*) openmdx 1 JMI Plugins delegating to DataproviderConnection (deprecated) A client retrieves and modifies objects using the JDO APIs (JDOHelper, PersistenceManager) All entity / object-level invocations are simple Java method invocations no EJB context switch is required to invoke application logic / plugins. The openmdx 2 service-based persistence manager supports openmdx 1 DataProviders / Layers. 15

Provider Architecture [2] Clients must be migrated to CCI2 / JMI1 APIs PersistenceManagers are configured as resources. The lookup of a persistence manager is done as follows: JDOHelper.getPersistenceManagerFactory( ); "java:comp/env/jdo/gateway", (Context)null Clients must use the JDO APIs (JDOHelper, PersistenceManager), i.e. pm.getobjectbyid() pm.currenttransaction().begin(); pm.currenttransaction().commit(); 16

Provider Architecture [3] Plugin classes do not have to extend any openmdxspecific classes anymore, e.g. public class AccountImpl { //----------------------------------------------------------------------- public AccountImpl( org.opencrx.kernel.account1.jmi1.account current, org.opencrx.kernel.account1.cci2.account next ) { this.current = current; this.next = next; } } //----------------------------------------------------------------------- public org.opencrx.kernel.account1.jmi1.createleadresult createlead( org.opencrx.kernel.account1.jmi1.createleadparams params ) { // business logic return ((Account1Package)this.current.refOutermostPackage().refPackage( Account1Package.class.getName() )).createcreateleadresult( lead ); } 17

Persistence

Persistence [1] The MOF JDO2 mapping generates JDO-compliant Java classes JDO metadata Any JDO-compliant PersistenceManager can be used for persistence management. openmdx 2 offers a service-based PersistenceManager which is backwards compatible to openmdx 1, i.e. existing databases do not have to be migrated. 19

Persistence [2] openmdx 2 Persistence Manager Based on openmdx 1 Database-Plugin Database schema can be generated using JPOX SchemaTool (requires the use of DBOSlicedWithIdAsKey) Service-based. PersistenceCapables can be created on-the-fly or retrieved from (remote) services 20

Lightweight Container

Lightweight Container Schema based deployment descriptors Integration with Tomcat 6. Tomcat/LWC allows to deploy EARs containing web and ejb modules. Tomcat/LWC supports stateless session beans leightweight deployment platform performance improvement by a factor of 2+ compared to other application servers. 22

Questions?