37
1 LIBeLIS LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » [email protected] www.libelis.com

1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » [email protected]

Embed Size (px)

Citation preview

Page 1: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

1

LIBeLISLIBeLIS

Enterprise Universal Java Data Access Scalable, robust JDO solutions

« Just Do Objects ! »

[email protected] www.libelis.com

Page 2: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

2

It’s all about It’s all about Data accessData access

Data Access is:

… … not simplenot simple, even less , even less maintainablemaintainable

… … not efficientnot efficient

... different for each kind of data ... different for each kind of data sourcesource

... but everyone is doing it ;-)... but everyone is doing it ;-)

Page 3: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

5

Business CardBusiness Card

Founded in 2000Experienced Management Team

Founders are experts in DBMS and Java App. ServersMember of the Java Community Process (JCP)

Active Member of the JDO expert group

Board Member of the ObjectWeb consortiumOpen Source Java middleware

Charter Member of JDOCentralCommunity Portal on JDO

Java Universal Data Access Vendor

Page 4: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

6

LiDOLiDO

Flagship productNAViLIS, as a side product (business browser)+ FileDB a light 100% Java embedded non-SQL DB

Full JDO 1.0 implementationEnterprise level, scalable, robust JDO implementation

Production readyAvailable since August 2001> 14.000 downloads worldwideVery active community

Page 5: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

7

LIBeLIS marketLIBeLIS market

Primary Focus on FinanceMostly large banks and ISVBNP, Société Générale, Line Data Service, Ogosoft, BRD

But alsoTelecom: France Telecom, Orange, CrilIndustry: EDF, Sanofi SyntheLaboDefense: FGM, RaytheonService / Distribution: Lapeyre, Groupe BourbonAdministration: CNAM, BRGM, West Sussex County Council

Effective PartnershipsSun, IBMIlog, TogetherSoftAston, Atos, Improve, Softeam, Sopra, SQL-I, Unilog, ValtechOgilvie Partners (UK), Object Identity (US)

Page 6: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

8

Why LiDO in Finance ?Why LiDO in Finance ?

Complex modelContinuously changing

High performance requirementsAlmost real-time

Time-to-marketReducing development cycle

Standard based solutionsShort learning curveEasy staffing, sub-contractorsConvergence back and front

Page 7: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

9

Typical LiDO applicationsTypical LiDO applications

Trading rooms applicationsRisk managementPricing enginesMarket repositoriesGeneric frameworks

On-line bankingFinancial Components

Page 8: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

10

The JDO The JDO standardstandard

Java Data ObjectsThe standard for Java Data Access

« Write once, persist anywhere »

Page 9: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

11

JDOJDO

The Java standard for data accessApproved in March 2002

Main contributors (JDO expert group)Sun, IBM, Oracle, Apple, SAP ... & LIBeLISO/R mapping tools vendors, + ODBMS vendorsDoes not replace but complement JDBC and Entity Beans

GoalsFully Transparent Persistence

Not intrusive in Business Objects

Universal Data AccessRDBMS, ODBMS, Binary Files, XML, text, TP monitors, MOM...

Independant DeploymentJava Level: embedded J2ME, client-server J2SE, distributed J2EE

Page 10: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

15

LiLiDO programmingDO programming

From the developer point of viewFully transparent mapping with complete Java support

Page 11: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

16

A typical LiA typical LiDO DO business objectbusiness object

public class Employee extends Person { public String name; private java.util.Date birthday; private int salary; public Company company; public IActivity activity; Vector awards; public void bonus(int more) {

salary += more; }}

This is a persistent class !If you can write it in Java, any JDO driver should store it.

No need for any javax.jdo import

Inheritance

Interfaces

Collections

No need for accessors / mutators

Page 12: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

17

LiLiDO development cycleDO development cycle

Enhancement is fully defined by the JDO spec.Enhanced byte-code is portable across JDO implementationsEnhanced byte-code remains the same for any data sourceAllows debugging and profiling (JPDA)

Allows fully transparent persistence

source code

byte code

javaccompiler

Mapping(xml file)

JDOenhancer

byte code

java

JVM LiDOMapping

(xml file)

Page 13: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

18

ProgrammingProgramming with with LiLiDODO

Java VM

odbms

Fully Transparent (no JDO calls):

LiDO

rdbms

Some explicit JDO calls:

Business objects

•Connection(*)

•Query•Transaction(*)

•Navigation between objects•Data manipulation in Java

(*) : in a J2EE context, connections and transactions are managed by the application server itself !

•Automatic data mapping•Client cache, object identity

Application objects

Page 14: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

21

JDO JDO QLQL

Declarative portable Java Query LanguageSupports ordering on multiple attributes

ExampleQuery q = pm.newQuery(Employee.class, "salary > 100000");Collection emps = (Collection)q.execute();

Support for query parametersq = pm.newQuery(Employee.class, "salary > goodSal");q.declareParameters("float goodSal");emps = (Collection)q.execute(new Float(100000));

PerformanceLiDO supports direct SQL statements and Stored Procs.LiDO allows to manage how result sets are loaded

class Employee { String name; float salary; Employee boss;}

Page 15: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

22

Queries and navigation Queries and navigation

Navigation through referencesq = pm.newQuery(Employee.class, "salary > boss.salary");

Navigation through collectionsBased on java.util.Collection.contains()Example : find Companies with at least one well-compensated Employee

q = pm.newQuery(Company.class,"emps.contains(well_comp) &&

well_comp.salary > 100000");

q.declareVariables("Employee well_comp");

Collection companies =(Collection)q.execute();

class Company Collection emps = new Vector();}

Page 16: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

23

LiDOLiDO within an Enterprise within an Enterprise Application designApplication design

From the architect point of viewAn Efficient and Universal Mapping

Page 17: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

24

How How LiDO LiDO complementscomplements J2EEJ2EE

Entity Bean LiDO

Does not scale (even CMP 2)

Efficient persistence layer

RDBMS centric Universal, any data source

Limited object support Full Java

High deployment costs Infra-structure independant

High development costs Straight Java classes

Java

JSP

SessionEntity

Any Data

Source

JDO is already perceived as one of the most critical Java extensions as it perfectly complements J2EE !

Page 18: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

25

any app.

rdbms

J2EE App. Server

LiLiDO J2EE DO J2EE integrationintegration

JTA any DB

EJBcontainer

JCA /JNDI

LiDO

JCA system contracts :•Transactions•Connections•Security•Synchronization

PoolJDBCdriver

Page 19: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

26

SupportedSupported AApp. pp. SServerservers

Integration with

Works with any other JCA compliant J2EE Application Server Works with any non-JCA App Server through JNDI

Page 20: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

27

LiDOLiDO features features

Universal & Efficient JDO Implementation

Page 21: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

28

Storage Managers

Caches, Dual Query Engine,JCA Connection pool, ...

LiDO architectureLiDO architecture

JDO implementationTransaction, JDO QL, State Manager

RDBMS

Specification implementation

Core technology

Data source dependant layerODBMS

Binary files

The only JDO solution that is morethan just another O/R mapping tool !

...

Page 22: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

29

LiDOLiDO Object Model Object Model

All atomic types and wrappers (+BigXxx)Strings and DatesAll collections, maps, arrays

Keys and values may be of any type including FCO, strings...Support for embedded collections and arraysSupport for Ordered collections

Object and interfaces attributesAbstract classes, static inner classes

Page 23: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

30

LiDO LiDO UsabilityUsability Features Features

Connection poolUseful when no EJB server is used

Trace/Logging systemAllows monitoring/tuning in production environments

LiDO JSP TagLibInstantaneous JSP pages without any JDO java code

Universal IDE integration through Ant tasksTogether/J, Eclipse, Forte integrations (LiDO 1.4)

Optimistic lockingBased on object state comparison

Page 24: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

31

LiDO Financial extensionsLiDO Financial extensions

LiDO 1.3Temporal Versioning

LiDO 1.4Time-SeriesTibco integration

LiDO 2.0FinML support

Page 25: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

32

LiDO toolsLiDO tools

LiDO Project Manager:GUI tool for JDO metadataReverse engineering of existing schema (LiDO 1.4)

XDoclet generation for metadataJavadoc LiDO tags

NAViLISBusiness model BrowsersInstant GUI for your business model

Full support for object principles, including running methodsJDO Query Builder

Both Swing and Servlet versions

Page 26: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

33

LiDO Performance FeaturesLiDO Performance Features

Efficient JDBC generationConfigurable Pool of prepared statementsConfigurable JDBC 2 batchs of statementsMapping of direct SQL statements and Stored Proc. calls

Dual Query EngineQueries are sent to back-endThen executed on client cache updates (no need to flush)Then the merged result set is returned

Configurable loading of result setsHighly scalable client caches

Inherited from proven ODBMS technologiesReduction of « Performance gap » between RDBMS and ODBMSSeveral cache strategies available

Page 27: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

35

LiDO for RDBMSLiDO for RDBMS

JDO compliant O/R mapping toolExisting schema

Allows to map an existing database schemaCan map any existing compound PKs and FKs

New schemaAutomatically managed by LiDO

Access to the underlying JDBC connexion

InstantDB

Page 28: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

36

LiDO O/R mappingLiDO O/R mapping

Based on specialized dictionariesAutomatic and user-defined naming strategiesCustom (user-defined) mappings

Type or value mapping, enum support...

Mapping constraints (precision, type of columns)Possibility to manage date precision

Dates can also be stored as Strings, with configurable format

Support for binary types (LONG RAW)+ Oracle Blobs

Configurable Object Identifiers (datastore ID)Name, type, sizeConfigurable fast HILOW algorithm

Page 29: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

37

LiDO Collection supportLiDO Collection support

1-N relationshipsJava semantic = intermediate table

When coupled with inheritance users can choose to have one relation table per level or a single one for the class hierarchy

Relational semantic = reverse foreign keysSupport for embedded and ordered collections

1-1 associationsEither two tables (both sides are FCOs)Or Embedded (Second Class Objects), 2 methods:

Other class columns duplicationOther class is serialized within a binary column

Available for any system or user class

Page 30: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

38

LiDO for LiDO for ODBMSODBMS

First supported ODBMS: VersantOther ODBMS support under developmentComplete Java layer redesign for JDO

Benefits Even faster than transparent JVI Better collection support More flexible mapping Standard APIs

JDO, JCA

Most Versant users now need a direct migration path to standard RDBMS technologies.LiDO is the only solution that can secure their business code investments.

Page 31: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

39

LiDO for Binary FileLiDO for Binary File

A Full JDO implementation in a small memory footprint

Allows to test JDO without any heavy DBMS engineRelies on Java serialization + Random Access Files

Embedded DBMight also be useful for unstructured data, documents...Very low memory requirements (<350 K)

Full featured databaseSingle or multiple filesConfigurable Paging/Caching mechanismOptional Locking / multiple connections support

Both Pessimistic and Optimistic modesJDO Query support

Page 32: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

41

Data sourcesData sources Roadmap Roadmap

Legacy / JCA data sourcesCICS, TuxedoERP, applications, mainframes, TP monitors, ...

FilesXML filesCSV files

Other Proprietary DBUpon request

Page 33: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

45

LiDOLiDO Benefits Benefits

From the business point of view

« Just Do Objects ! »

Page 34: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

47

LiDO LiDO DeliversDelivers

Reduced development timeFully transparent & standard mapping

Universal Data AccessAllows on the fly change of storage technologyTransparent switch from ODBMS to RDBMS or vice-versa

Full usage of Business Object Design Without any interference from deploying technologiesNo restrictions

Enterprise Class PerformanceAllows actual deploying of J2EE critical business apps

Page 35: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

48

LiDO LiDO BenefitsBenefits

Investment ProtectionMapping of existing schemas from RDBMS. New applications can be build using existing data and databases.

Better use of skillsIsolation of Java code from any DBMS aspects allows Java developers to focus on their Object Model and Database specialists to tune the application without any Java knowledge.

Faster Feedback from UsersAutomatic generation of a GUI from the Business Object Model so that users can get a feeling of the future application and give feedback within minutes.

Page 36: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

50

Who Needs LiDO ?Who Needs LiDO ?

Software editorsSingle code maintenancePerformance: delivers ODBMS speed and functionality on top of RDBMSDirect 2-ways integration with customer information systems

Global 500 (Finance, Insurance , Telcos)Universal access: access to all DBMS and legacyCost reductions: standardized mappingUniversal deployment: Applications Servers and C/S and BatchEases relationships with System Integrators

Systems IntegratorsProductivity gains, more time spent on business logicBetter use of human resources and skill sets, easy staffing

Page 37: 1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! » info@libelis.com

57

ConclusionConclusion

Would you start a project on LiDO ?

Too Good to be True ? Do not trust us…

just Download and Check it out !

www.libelis.com