Upload
isaiah-rogers
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
1
LIBeLISLIBeLIS
Enterprise Universal Java Data Access Scalable, robust JDO solutions
« Just Do Objects ! »
[email protected] www.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 ;-)
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
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
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)
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
9
Typical LiDO applicationsTypical LiDO applications
Trading rooms applicationsRisk managementPricing enginesMarket repositoriesGeneric frameworks
On-line bankingFinancial Components
10
The JDO The JDO standardstandard
Java Data ObjectsThe standard for Java Data Access
« Write once, persist anywhere »
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
15
LiLiDO programmingDO programming
From the developer point of viewFully transparent mapping with complete Java support
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
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)
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
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;}
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();}
23
LiDOLiDO within an Enterprise within an Enterprise Application designApplication design
From the architect point of viewAn Efficient and Universal Mapping
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 !
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
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
27
LiDOLiDO features features
Universal & Efficient JDO Implementation
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 !
...
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
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
31
LiDO Financial extensionsLiDO Financial extensions
LiDO 1.3Temporal Versioning
LiDO 1.4Time-SeriesTibco integration
LiDO 2.0FinML support
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
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
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
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
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
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.
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
41
Data sourcesData sources Roadmap Roadmap
Legacy / JCA data sourcesCICS, TuxedoERP, applications, mainframes, TP monitors, ...
FilesXML filesCSV files
Other Proprietary DBUpon request
45
LiDOLiDO Benefits Benefits
From the business point of view
« Just Do Objects ! »
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
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.
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
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