howto build an osgi ejb3 server

121
1 Ekkehard Gentz, Independent Software Architect HowTo Build an OSGI EJB3 Server OSGI Experts Day 2009-05-24 (c) 2009 ekkehard gentz, eclipse public license EPL

Upload: ekkehard-gentz

Post on 22-Apr-2015

7.794 views

Category:

Technology


0 download

DESCRIPTION

This is an overview how to build an OSGI EJB3 Server I gave at OSGIExpertsDay at JAX09.The Server is build using:Eclipse Equinox as OSGI FrameworkEclipse Riena for Remote OSGI ServicesEasyBeans as OSGI EJB3 ContainerHibernate as JPA ProviderClients are Rich Clients (Eclipse RCP)The project is model-driven using UML (MagicDraw), EMF (Eclipse Modeling) and oAW (openArchitectureWare).more info:http://ekkes-corner.org (blog english)http://ekkes-ecke.org (blog german)http://ekkes-corner-tv.org (Video PodCasts)You want to watch the slides with included screencasts ? here's the movie:http://www.vimeo.com/ekkescorner/videos

TRANSCRIPT

Page 1: HowTo Build an OSGI EJB3 Server

1

Ekkehard Gentz, Independent Software Architect

HowTo Build an OSGI EJB3 Server

OSGI Experts Day 2009-05-24

(c) 2009 ekkehard gentz, eclipse public license EPL

Page 2: HowTo Build an OSGI EJB3 Server
Page 3: HowTo Build an OSGI EJB3 Server

ekke Ekkehard Gentz, Rosenheim

Freelancer, Software Architect, ERP Consultant

Business Developer (ERP Solutions)Assembler, Cobol, Pascal,4GL, Java

Domains: Apple Dealer, Paper Manufacturer, Waste & Recycling, ...

Who am I

3

Page 4: HowTo Build an OSGI EJB3 Server

So many articles and guidelines about OSGI: how to do it the right way

Is this reality for OSGI Enterprise Apps ?you have to...

... live with existing code

... use 3rd party bundles

... integrate different OSGI products, frameworks etc

Why this session

4

Page 5: HowTo Build an OSGI EJB3 Server
Page 6: HowTo Build an OSGI EJB3 Server

Project built from scratch

Business Processes and Rules change 'daily'

Short time-frame

Small Project Ressources

Possible to make it run ?

Business Project Overview

6

Page 7: HowTo Build an OSGI EJB3 Server

7

Page 8: HowTo Build an OSGI EJB3 Server

Easy to use for business users

Server 24*7 online

Rich Clients with great UI comfort

Processes and Rules change heavy and often

Has to run on different OS (XP, Vista, OSX)

Business Project Requirements

8

Page 9: HowTo Build an OSGI EJB3 Server

Frameworks

Tools

Technology

Project Decisions

9

Page 10: HowTo Build an OSGI EJB3 Server

UML (MagicDraw) MD DSL Customization Engine

MD Customized Domain-Specific Editors

MD Reader available

Eclipse - Integration

Why not EMF - only ?

Combine UML and EMF oAW as Generatorframework

Design and Modeling Tools

10

Page 11: HowTo Build an OSGI EJB3 Server

Eclipse RCP Platform

plus Riena UI Ridgets

Markers

Validators

plus Riena Navigation

plus redView dynamic Views for Business Apps

CDO distributed view models

Eclipse RCP (SWT) as Rich Client

11

Page 12: HowTo Build an OSGI EJB3 Server

OSGI modular, dynamic updates

flexible server architecture

Why Equinox as OSGI Framework ? its Eclipse ;-)

Riena uses Buddy Policy

so I‘m bound to Equinox

OSGI (Equinox) as Server

12

Page 13: HowTo Build an OSGI EJB3 Server

Easybeans choosen pure OSGI bundle implementation

vs WSAD, Glassfish or other OSGI-based JEE Server:

integrate Easybeans into your OSGI Enterprise app

all is under your control, no deploy to Appserver

Hibernate as JPA provider my knowledge of Hibernate

already bundled with EasyBeans OSGI

Services and Persistence: EJB3, JPA

13

Page 14: HowTo Build an OSGI EJB3 Server

First decision: jBPM + Drools jBPM as BusinessProcess Engine

Drools as Rules Engine + Decision Nodes in jBPM

Drools 5 supports both: Business Process Flow

Business Rules

Drools Business Rules and Process Flow

14

Page 15: HowTo Build an OSGI EJB3 Server

Relational data and xml data can be mixed

low costs for small companies

scales well if company grows

I know it

RDBMS: IBM DB2 Express

15

Page 16: HowTo Build an OSGI EJB3 Server

Perfect Integration into Eclipse world

Reports direct from DB2 RDBMS

Reports directly using Hibernate Pojos

BIRT as Reporting Engine

16

Page 17: HowTo Build an OSGI EJB3 Server

EJB3 Standard

Out of the box directly from EJB3 Container services

persistence

transactions

OSGI goes Enterprise

Easybeans OSGI JPA Container

Why OSGI and EJB3

17

Page 18: HowTo Build an OSGI EJB3 Server

Pros: all stored in EMF Models, EMF Databinding

no lazy exceptions from hibernate at client side

scales very well, persistence (Teneo, Hibernate)

Cons: model evolution not supported, no data-migration

no reporting tools like BIRT to use CDO repositories

future: could be an alternate way

Why not CDO to persist Business Models

18

Page 19: HowTo Build an OSGI EJB3 Server

Bundles entity

ejb, interfaces

enumerations

Fragments icons, fonts, OS-dependent-styles

Logging Utils, Logging Configuration

OSGI Server

19

Page 20: HowTo Build an OSGI EJB3 Server

Bundles entity

ejb

interfaces

enumerations

OSGI Server (Bundles)

20

@Stateless@PersistenceContext

@Local, @Remote

@Stateless, @Stateful

@EJB

Entity Bundles

EJB Bundles

PersistenceContext Bundles

Business - Interface Bundles

implementsimplements

uses

uses

injects

Enum

Enumeration Bundles

@Entity, @Embeddable

Page 21: HowTo Build an OSGI EJB3 Server

Bundles unlimited

per Subapplication

per Subdomain

Productfamilies

Tip:

used at Client and Server

Server-only Dependencies should be optional

Entity Bundles

21

Entity Bundles

@Entity, @Embeddable

Page 22: HowTo Build an OSGI EJB3 Server

Bundles per Subapplication

per Subdomain

per Customer / Product

Why separate Bundles ?Enumeration Literals different per Customers

Easy to change / enhance

Also used by Business Processes, Rules

Enumeration Bundles

22

Enum

Enumeration Bundles

Page 23: HowTo Build an OSGI EJB3 Server

BundlesStateless Beans

implements BusinessInterfaces

contains PersistenceContext (EntityManager)

only used at Server

Tip:

JIRA EZB-294 all EJB‘s of PersistenceContext = 1 Bundle

All @Entity and @Embeddable must be listed inside persistence.xml because of a Bug

PersistenceContext Bundles

23

@Stateless

@PersistenceContext

PersistenceContext Bundles

Page 24: HowTo Build an OSGI EJB3 Server

Persistence Context Configuration

24

MyBean.java (in a PersistenceContext Bundle)

Datei

META-INF/persistence.xml

Datei

config/easybeans.xml

Page 25: HowTo Build an OSGI EJB3 Server

BundlesStateless or Stateful

only used at Server

can inject other EJB‘s from PersistenceContext Bundles

Productfamilies

Tip:

@EJB(mappedName) BusinessInterface

JIRA EZB-322 can‘t found Interfaces from other Bundles

EJB Bundles

25

@Stateless,

@Stateful@EJB

EJB Bundles

Page 26: HowTo Build an OSGI EJB3 Server

Bundles Local or Remote

unlimited Bundles

structured per Subdomain, Product, ...

used on Client and Server

Business Interface Bundles

26

@Local,

@RemoteBusiness - Interface Bundles

Page 27: HowTo Build an OSGI EJB3 Server

Fragments Icons

Fonttemplates

OS-dependent-styles

Logging - Utilities

OSGI Server (Fragments)

27

Page 28: HowTo Build an OSGI EJB3 Server
Page 29: HowTo Build an OSGI EJB3 Server

openArchitectureWare (oAW) perfect integrated into eclipse

working with UML and EMF models side-by-side

generating:Entity, EJB, Business Interfaces

BusinessProcess /-rules Integration

EMF View models from Entity

configuration files and more

MDSD

29

Page 30: HowTo Build an OSGI EJB3 Server

Quicktime Demo

UML Entity Diagram (MagicDraw) … oAW

(openArchitectureWare) Templates …

redView (Riena - EMF - Dynamic Views)

Page 31: HowTo Build an OSGI EJB3 Server
Page 32: HowTo Build an OSGI EJB3 Server
Page 33: HowTo Build an OSGI EJB3 Server
Page 34: HowTo Build an OSGI EJB3 Server

Overview

Different Eclipse Installations for different Roles Architect and Modeler

Client-Server-Platform Developer

UI Designer (Development)

UI Design and Prototyping (Business User)

Eclipse Workspaces and Installations

32

Page 35: HowTo Build an OSGI EJB3 Server

Eclipse Workspaces and Installations

33

Eclipse Modeling

EMFUML2openArchitectureWare- XPand- XTend- Workflow

Eclipse Installations Eclipse Workspaces

my oAW Cartridges

javaentityejbservicesprocesses

Mo

delin

gR

un

tim

e

Eclipse Runtime

Target Platform

EquinoxRCPRienaEasyBeans

abcfoosample

uses

generates

Project Workflows

Project codeProject "foo"

entityejb - beansejb - apiservicesprocessesrulesui

Project Bundles

Page 36: HowTo Build an OSGI EJB3 Server

34

Page 37: HowTo Build an OSGI EJB3 Server

Integrate 3rd Party

Bundle Start Order

Services, ServiceTracker or DS ?

Logging Frameworks and OSGI

Dependency Cycles

Classloader used by 3rdParty

How to configure Target Platform

Problems solved using oAW

Problems to solve

35

Page 38: HowTo Build an OSGI EJB3 Server

36

Page 39: HowTo Build an OSGI EJB3 Server

Are they all brave OSGI citizens ? 1 jar == 1 bundle

import package instead of required bundles ?

always Versioning Bundles and Dependencies ?

HowTo integrate 3rdParty Bundles (1)

37

Page 40: HowTo Build an OSGI EJB3 Server
Page 41: HowTo Build an OSGI EJB3 Server

Quicktime Demo

look inside an OSGI Monster Bundle

… or… „can you count the jars ?“ ;-)

Page 42: HowTo Build an OSGI EJB3 Server
Page 43: HowTo Build an OSGI EJB3 Server
Page 44: HowTo Build an OSGI EJB3 Server
Page 45: HowTo Build an OSGI EJB3 Server

Are there any Monsters ? look inside EasyBeans core bundle

Are there dependency - cycles ? SLF4J + Logback, Easybeans

HowTo integrate 3rdParty Bundles (2)

41

Page 46: HowTo Build an OSGI EJB3 Server

42

Page 47: HowTo Build an OSGI EJB3 Server

Goal: Try to avoid Start-Levels needed but 3rdParty:

Agents like EasyBeans Agent

Logging first if using Log Bridges from OSGI

start first to avoid black holes

Bundle Start Order (1)

43

Page 48: HowTo Build an OSGI EJB3 Server

To make a System run: try using Start-Levels

then Iterations:

Add OSGI Services

Add ServiceTracker to start Bundles

Add DeclarativeServices to reduce ServiceTracker Complexity

Bundle Start Order (2)

44

Page 49: HowTo Build an OSGI EJB3 Server

Bundle Start Order (3)

45

Page 50: HowTo Build an OSGI EJB3 Server

Bundle Start Order (3)

45

early it

erations

Page 51: HowTo Build an OSGI EJB3 Server

Bundle Start Order (4)

46

ServerAgent tracks Services from EasyBeans using a

ServiceTracker

registers @Remote Interfaces for Riena

registers a Service if all is done

Page 52: HowTo Build an OSGI EJB3 Server

Bundle Start Order (4)

46

ServerAgent tracks Services from EasyBeans using a

ServiceTracker

registers @Remote Interfaces for Riena

registers a Service if all is done

early it

erations

Page 53: HowTo Build an OSGI EJB3 Server

Bundle Start Order (5)

47

MyServer waits for the ServerAgent - Service

registers a Service if all is ready

registers this also as RienaRemote Service

now the Clients know that the Domain Server runs

Page 54: HowTo Build an OSGI EJB3 Server

Bundle Start Order (5)

47

MyServer waits for the ServerAgent - Service

registers a Service if all is ready

registers this also as RienaRemote Service

now the Clients know that the Domain Server runs

early it

erations

Page 55: HowTo Build an OSGI EJB3 Server

Bundle Start Order (6)

48

Using Declarative Services

TODO:

replace Easybeans Agent by own Implementation using DS

Page 56: HowTo Build an OSGI EJB3 Server

Bundle Start Order (6)

48

Using Declarative Services

TODO:

replace Easybeans Agent by own Implementation using DS

Page 57: HowTo Build an OSGI EJB3 Server

Riena Remote Services

EasyBeans Services

ServiceTracker

Declarative Services (DS)

ServiceTracker vs DS

Services, Services, Services...

49

Page 58: HowTo Build an OSGI EJB3 Server

Riena Remote Services (1)

50

Page 59: HowTo Build an OSGI EJB3 Server

Publishing Service

Riena Remote Services (2)

51

Page 60: HowTo Build an OSGI EJB3 Server

Injecting Service the Riena Way (fluent interfaces)

Riena Remote Services (3)

52

I prefer DeclarativeServices

Page 61: HowTo Build an OSGI EJB3 Server

EasyBeans registers Services for each Business Interface (@Local, @Remote)

thanks to the EZB Team:

changed to ManagedServices, so Properties can easy used in Filters of ServiceTrackers

or DeclarativeServices (DS)

EasyBeans Services (1)

53

Page 62: HowTo Build an OSGI EJB3 Server

EasyBeans registers: ManagedServiceFactory Services for each EasyBeans

components:Transactions, Mail, JDBCPool, JMS, etc

EZBContainer Services

EJB3Container ready

PersistenceContext: Hibernate Mapping, Binding

JDBCPoolComponent the DataSource is available

EasyBeans Services (2)

54

Page 63: HowTo Build an OSGI EJB3 Server

start EJB Bundles ?

Service Tracker (1)

55

ManagedServiceFactory registered

all EZB

Components

registered ?

JDBCPool

Component ?

register JNDI for

DataSource

Yes

all DataSources

registered ?

Start EJB Bundles

Yes

Yes

Page 64: HowTo Build an OSGI EJB3 Server

start EJB Bundles ?

Service Tracker (1)

55

ManagedServiceFactory registered

all EZB

Components

registered ?

JDBCPool

Component ?

register JNDI for

DataSource

Yes

all DataSources

registered ?

Start EJB Bundles

Yes

Yes

early it

erations

Page 65: HowTo Build an OSGI EJB3 Server

EasyBeans Components ? carol, hsqldb,

jotm, quartz, event, jmx, jdbcpool, joram

Services named like

carol-component-factory

Service Tracker (2)

56

ManagedServiceFactory registered

all EZB

Components

registered ?

Page 66: HowTo Build an OSGI EJB3 Server

EasyBeans Components ? carol, hsqldb,

jotm, quartz, event, jmx, jdbcpool, joram

Services named like

carol-component-factory

Service Tracker (2)

56

ManagedServiceFactory registered

all EZB

Components

registered ?

early it

erations

Page 67: HowTo Build an OSGI EJB3 Server

DataSources registered ? easybeans.xml

Service Tracker (3)

57

ManagedServiceFactory registered

JDBCPool

Component ?

register JNDI for

DataSource

Yes

all DataSources

registered ?

Page 68: HowTo Build an OSGI EJB3 Server

DataSources registered ? easybeans.xml

Service Tracker (3)

57

ManagedServiceFactory registered

JDBCPool

Component ?

register JNDI for

DataSource

Yes

all DataSources

registered ?

early it

erations

Page 69: HowTo Build an OSGI EJB3 Server

Service Tracker (4)

58

Page 70: HowTo Build an OSGI EJB3 Server

start EJB Bundles:

EasyBeans creates EJB3-Container for each PersistenceContext Bundle

Service Tracker (5)

59

ManagedServiceFactory registered

all EZB

Components

registered ?

JDBCPool

Component ?

register JNDI for

DataSource

Yes

all DataSources

registered ?

Start EJB Bundles

Yes

Yes

Page 71: HowTo Build an OSGI EJB3 Server

start EJB Bundles:

EasyBeans creates EJB3-Container for each PersistenceContext Bundle

Service Tracker (5)

59

ManagedServiceFactory registered

all EZB

Components

registered ?

JDBCPool

Component ?

register JNDI for

DataSource

Yes

all DataSources

registered ?

Start EJB Bundles

Yes

Yes

early it

erations

Page 72: HowTo Build an OSGI EJB3 Server

Service Tracker (6)

60

EZB Container Service registered

Container for all

EJB Bundles ?

register

RienaEasyBeansServerService

Yes

ManagedService registered

Remote Business

- Interface ?

register as Riena Remote Endpoint

Yes

ManagedServicesregistered by EasyBeansfor Business - Interfacesimplemented by @Stateless or @Statefull Beansfrom EJB - Bundles

EZBContainerServicesregistered by EasyBeansfor each EJB - Bundle

EasyBeans registers:

ManagedService for @Local, @Remote

EZBContainer Service for each EJB3-Container

Page 73: HowTo Build an OSGI EJB3 Server

Service Tracker (7)

61

ServiceTracker now tracks ManagedServices

tests for some Properties from EasyBeans

registers Services as RienaRemoteService

Page 74: HowTo Build an OSGI EJB3 Server

Service Tracker (7)

61

ServiceTracker now tracks ManagedServices

tests for some Properties from EasyBeans

registers Services as RienaRemoteService

early it

erations

Page 75: HowTo Build an OSGI EJB3 Server

Service Tracker (8)

62

All logic around EasyBeans EJB3-Container at a central point

Sounds good ?

Difficult to maintain or to test

What to do ?

Page 76: HowTo Build an OSGI EJB3 Server

We can describe the same complex logic solved with ServiceTracker using

DeclarativeServices (DS) let the OSGI Framework do the work

easy to maintain

lazy loading of Bundles

Eclipse 3.4 Ganymede: edit XML files

Eclipse 3.5 Galileo: PDE Tooling-Support

Declarative Services (1)

63

Page 77: HowTo Build an OSGI EJB3 Server

We can describe the same complex logic solved with ServiceTracker using

DeclarativeServices (DS) let the OSGI Framework do the work

easy to maintain

lazy loading of Bundles

Eclipse 3.4 Ganymede: edit XML files

Eclipse 3.5 Galileo: PDE Tooling-Support

Declarative Services (1)

63

final so

lution

Page 78: HowTo Build an OSGI EJB3 Server

Example „EasyBeans Components started ?“

Declarative Services (2)

64

Page 79: HowTo Build an OSGI EJB3 Server

Example „EasyBeans Components started ?“

Declarative Services (2)

64

final so

lution

Page 80: HowTo Build an OSGI EJB3 Server

Example „EasyBeans Components started ?“

Declarative Services (3)

65

Page 81: HowTo Build an OSGI EJB3 Server

Example „EasyBeans Components started ?“

Declarative Services (3)

65

final so

lution

Page 82: HowTo Build an OSGI EJB3 Server

OSGI Runtime with DeclarativeServices Wondering why a DS not started ?

Tip:

set debug-trace-log vm-parameters:

-Dequinox.ds.debug=true

Declarative Services (3)

66

Page 83: HowTo Build an OSGI EJB3 Server

Console Output:

Declarative Services (4)

67

Page 84: HowTo Build an OSGI EJB3 Server

some more Properties: equinox.ds.print=true prints tracelogs to console

equinox.ds.perf=true logs execution times in ms

equinox.scr.waitTimeOnBlock=10000 how many ms should DS ait until a service component is ready

Declarative Services (5)

68

Page 85: HowTo Build an OSGI EJB3 Server

Are DS replacement for ServiceTracker (ST) ? ST has access to all methods of a Service

DS only access to properties

Missing graph visualization for some Dependencies

Service Tracker vs Declarative Services

69

Page 86: HowTo Build an OSGI EJB3 Server

Over all my recommendation:

Use Declarative Services where possible

Equinox DS will do all the difficult work for you

Service Tracker vs Declarative Services

70

Page 87: HowTo Build an OSGI EJB3 Server

OSGI Logging

'classic' Logging

Compare LoggingFrameworks

HowTo integrate them all

Logging with OSGI and 3rdParty

71

Page 88: HowTo Build an OSGI EJB3 Server

LogService

Equinox Extended LogService graduated soon

OSGI Logging

72

Page 89: HowTo Build an OSGI EJB3 Server

Log4J

CommonsLogging

SLF4J

JDK Logging (java.util)

Classic Logging

73

Page 90: HowTo Build an OSGI EJB3 Server

...Easybeans Commons-Logging

JDK Logging

Riena Extended LogService

Start Parameters, ExtensionPoint

Hibernate switched from CommonsLogging to SLF4J

Logging used by ...

74

Page 91: HowTo Build an OSGI EJB3 Server

Compare LogFrameworks

75

Page 92: HowTo Build an OSGI EJB3 Server

SLF4JoverOSGI Bridge SLF4J with logback implementation

catches JCL, JDK, SLF4J, OSGI Log, ext. Log

Marker and Bundles

Fragments

alternate Solution: PAX Logging Log4J

catches JCL, JDK, SLF4J, Avalon

HowTo integrate them all

76

Page 93: HowTo Build an OSGI EJB3 Server

HowTo integrate them all

77

Page 94: HowTo Build an OSGI EJB3 Server

Eclipse 3.4 PDE Export has Problems with Cycles

Equinox Runtime works well

Trick:

put a „Fake“ Bundle without Dependencies into Workspace

HowTo solve Dependency Cycles

78

Page 95: HowTo Build an OSGI EJB3 Server

Eclipse 3.5M6 PDE Tooling Support

dont forget to set Compiler Warnings:

HowTo solve Dependency Cycles

79

Page 96: HowTo Build an OSGI EJB3 Server

EasyBeans contains Hibernate Hibernate uses ContextClassLoader

Try to avoid Dynamic Import *

BuddyPolicy only if really needed

Classloader from 3rd party

80

Page 97: HowTo Build an OSGI EJB3 Server
Page 98: HowTo Build an OSGI EJB3 Server

Overview

TargetPlatformDefinition Files to be portable: variable - string substitution

PDE Tooling 3.5 easier

Duplicates, Deltas Bugzilla Reports discuss better PDE Tooling support

HowTo configure the TargetPlatform (1)

82

Page 99: HowTo Build an OSGI EJB3 Server

Locations

HowTo configure the TargetPlatform (2)

83

Page 100: HowTo Build an OSGI EJB3 Server

HowTo configure the TargetPlatform (3)

84

Page 101: HowTo Build an OSGI EJB3 Server

HowTo configure the TargetPlatform (3)

84

Page 102: HowTo Build an OSGI EJB3 Server

EZB, Hibernate Bug Annotations generate classnames into persistence.xml

Check JPA Persistence data length of indizes, tables, inheritance strategies

EZB problems JNDI naming generate mapped Names into Interfaces

Bridge between UML and EMF from UML to EMF - UI and back

oAW - your little Helper

85

Page 103: HowTo Build an OSGI EJB3 Server

generate classnames into persistence.xml

oAW - solves Bug detecting Entity

86

Page 104: HowTo Build an OSGI EJB3 Server

generate @EJB.mappedName

oAW - solves Bug injecting @EJB (1)

87

Page 105: HowTo Build an OSGI EJB3 Server

generate @EJB.mappedName

oAW - solves Bug injecting @EJB (2)

88

Page 106: HowTo Build an OSGI EJB3 Server

generate @EJB.mappedName

now its easy to use:@EJB (mappedName = MyInterface.EZB_MAPPED_NAME)

MyInterface mi = null;

oAW - solves Bug injecting @EJB (3)

89

Page 107: HowTo Build an OSGI EJB3 Server

Server

Equinox (OSGI Framework), Riena (OSGI RemoteServices)

EasyBeans (OSGI EJB3 Container, JPA, Hibernate)

Rich Client

Eclipse RCP, Riena (UI Ridgets and Navigation)

Riena (OSGI Remote Services, ObjectTransactions)

ModelDriven Project

Eclipse Modeling (EMF, UML, CDO)

openArchitectureWare (oAW): Workflow, XPand, Xtend

MagicDraw (UML, DSL, oAW Integration)

Summary

90

Page 108: HowTo Build an OSGI EJB3 Server

Quicktime Demo

start the server: equinox, riena,

easybeans EJB3 … write some data to db

… watch (SLF4J/logback) logfiles with

lilith …

Page 109: HowTo Build an OSGI EJB3 Server
Page 110: HowTo Build an OSGI EJB3 Server
Page 111: HowTo Build an OSGI EJB3 Server
Page 112: HowTo Build an OSGI EJB3 Server
Page 113: HowTo Build an OSGI EJB3 Server

Other ways to persist ?

More M2M Transformations

Give Value back to Open Source Community

Next Steps

94

Page 114: HowTo Build an OSGI EJB3 Server

EasyBeans and EclipseLink EasyBerans provides both: Hibernate + EclipseLink

CDO with Teneo Hibernate re-use of JPA Annotations for Teneo

EMF Databinding

CDO remoting instead of RienaRemoteOSGI

possible ????

Alternate Ways to Persist Data

95

Page 115: HowTo Build an OSGI EJB3 Server

whole Business Model as EMF extra M2M transformation from UML

pro:

redView Drag‘n‘Drop for Databinding

needed if CDO in the future becomes an alternative

Extra M2M transformation

96

Page 116: HowTo Build an OSGI EJB3 Server

97

Page 117: HowTo Build an OSGI EJB3 Server

Open Source OSGI - EJB3 - Riena Server core equinox-EasyBeans OSGI-EJB3 server

UML Profiles (Java, JPA, EJB3, Drools)

oAW Templates and Cartridges

MagicDraw DSL Customization + Editors

Riena for Remote OSGI Services

plus core ERP functionality (business modules)

first beta published in june 2009

open-erp-ware.org (1)

98

Page 118: HowTo Build an OSGI EJB3 Server

slf4joverOSGI LoggingBridge

could be used additional to SLF4J / LogBack Bridges

open-erp-ware.org (2)

99

Page 119: HowTo Build an OSGI EJB3 Server

Open Source Dynamic Views for Business ApplicationsEMF

CDO

Ridgets

Prototyping

WYSIWYG Editor for dynamic SWT Views

100

redView - Riena EMF Dynamic Views

Page 120: HowTo Build an OSGI EJB3 Server

Question & Answer

[email protected] Blog: http://ekkes-corner.org (en) Blog: http://ekkes-ecke.org (de) Video Podcasts: http://ekkes-corner-tv.org Twitter: @ekkescorner

http://open-erp-ware.org http://redview.org

101

Page 121: HowTo Build an OSGI EJB3 Server

Video Podcast

you like to watch and hear this screencast as a Video Podcast ?

visit: http://ekkes-corner-tv.org or search iTunes for „ekkes-corner“

(c) 2009 ekkehard gentz, eclipse public license EPL

102