Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! »"— Presentation transcript:

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

2 2 Its all about Data access Data Access is: … not simple, even less maintainable … not efficient... different for each kind of data source... but everyone is doing it ;-)

3 3 Impact of Mapping Developers viewpoint: 30% of initial development effort 50% of maintenance Project Managers viewpoint: Typical bottleneck for all projects Intersection of multiple technologies and skills Hard to staff Critical point to achieve performance goals

4 4 The CIO Standpoint Solutions: Architecture: J2EE Application Servers Standardized Deployment for Enterprise and Internet Applications Mapping: Home-made Frameworks CMP within App Servers Proprietary O/R Mapping tools No standard-based and scalable solutions !

5 5 Business Card Founded in 2000 Experienced Management Team Founders are experts in DBMS and Java App. Servers Member of the Java Community Process (JCP) Active Member of the JDO expert group Board Member of the ObjectWeb consortium Open Source Java middleware Charter Member of JDOCentral Community Portal on JDO Java Universal Data Access Vendor

6 6LiDO Flagship product NAViLIS, as a side product (business browser) + FileDB a light 100% Java embedded non-SQL DB Full JDO 1.0 implementation Enterprise level, scalable, robust JDO implementation Production ready Available since August 2001 > 14.000 downloads worldwide Very active community

7 7 LIBeLIS market Primary Focus on Finance Mostly large banks and ISV BNP, Société Générale, Line Data Service, Ogosoft, BRD But also Telecom: France Telecom, Orange, Cril Industry: EDF, Sanofi SyntheLabo Defense: FGM, Raytheon Service / Distribution: Lapeyre, Groupe Bourbon Administration: CNAM, BRGM, West Sussex County Council Effective Partnerships Sun, IBM Ilog, TogetherSoft Aston, Atos, Improve, Softeam, Sopra, SQL-I, Unilog, Valtech Ogilvie Partners (UK), Object Identity (US)

8 8 Why LiDO in Finance ? Complex model Continuously changing High performance requirements Almost real-time Time-to-market Reducing development cycle Standard based solutions Short learning curve Easy staffing, sub-contractors Convergence back and front

9 9 Typical LiDO applications Trading rooms applications Risk management Pricing engines Market repositories Generic frameworks On-line banking Financial Components

10 10 The JDO standard Java Data Objects The standard for Java Data Access « Write once, persist anywhere »

11 11JDO The Java standard for data access Approved in March 2002 Main contributors (JDO expert group) Sun, IBM, Oracle, Apple, SAP... & LIBeLIS O/R mapping tools vendors, + ODBMS vendors Does not replace but complement JDBC and Entity Beans Goals Fully Transparent Persistence Not intrusive in Business Objects Universal Data Access RDBMS, ODBMS, Binary Files, XML, text, TP monitors, MOM... Independant Deployment Java Level: embedded J2ME, client-server J2SE, distributed J2EE

12 12 JDO not a standard ? JDO not a standard Officially approved in March 2002 Not on J2EE Not a goal, JDO works with and without J2EE, JDO is Java No Big players They are stuck with EJB investments They play with us on the field Another ODBMS / ODMG standard ? Sun, IBM, HP, Oracle, SAP, Apple, TopLink werent in the ODMG Technical issues Not mature: 3 years of effort, persistence is not a toy Not an O/R mapping standard: for sure, so what ? Queries: a new QL was needed, it will be improved Byte-code Enhancement: the only way to full transparence

13 13 JDO / JDBC Performance Cache management (reduce useless RPCs during transactions) Efficient & customizable mapping for realistic business object models JDBCJDO SQL-orientedObject-Oriented Explicit intrusive code Fully transparent Manual cache management Advanced cache management Manual mappingAutomatic Mapping RDBMS centricUniversal rdbms JDO driver JDBC driver... Complementary technologies

14 14 March -JDO 1.0 approved -JDOCentral -LiDO 1.2 1999 August -Expert Group formed : Sun, BEA, IBM, Apple, Oracle, Informix, ObjectPeople, Versant, Poet, Gemstone, Excelon,... July - JSR Approved Spec Leader : Craig Russel July -SAP reveals its JDO strategy -First implementations June -Presentation at JavaOne May -First Public Review December -Public Final Release 2 20002001 LIBeLIS joins JDO Java Community Process on JDO 2002

15 15 LiDO programming From the developer point of view Fully transparent mapping with complete Java support

16 16 A typical LiDO business 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 17 LiDO development cycle Enhancement is fully defined by the JDO spec. Enhanced byte-code is portable across JDO implementations Enhanced byte-code remains the same for any data source Allows debugging and profiling (JPDA) Allows fully transparent persistence source code byte code javac compiler Mapping (xml file) JDO enhancer byte code java JVM LiDO Mapping (xml file)

18 18 Programming with LiDO 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

19 19 JDO interfaces Explicit Query Optional: Extents, Callbacks, JDOHelper Implicit in J2EE PersistenceManager Connection to data sources, data caching, object identity management, life-cycle management (StateManager) PersistenceManagerFactory Connection pool, supports JNDI Standard properties : ConnectionUserName, ConnectionPassword, ConnectionDriverName, ConnectionURL Optimistic, … Transaction 1-1 relationship with PersistenceManager : begin, commit, rollback

20 20 JDO identity How to uniquely identify an object ? Application identity (often known as Primary Key ) Managed by application, enforced in database Used to access legacy RDBMS Data store identity (managed by data store) Not tied into any instance values (transparent object id) Used with new databases (automatic/implicit mapping) Non data store identity (managed by JDO driver) To guarantee uniqueness in the JVM, not data store Used for non DBMS data sources (files,...) JDO instances representing the same data exist only once per PersistenceManager, regardless of how the instance is obtained

21 21 JDO QL Declarative portable Java Query Language Supports ordering on multiple attributes Example Query q = pm.newQuery(Employee.class, "salary > 100000"); Collection emps = (Collection)q.execute(); Support for query parameters q = pm.newQuery(Employee.class, "salary > goodSal"); q.declareParameters("float goodSal"); emps = (Collection)q.execute(new Float(100000)); Performance LiDO 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 22 Queries and navigation Navigation through references q = pm.newQuery(Employee.class, "salary > boss.salary"); Navigation through collections Based 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 23 LiDO within an Enterprise Application design From the architect point of view An Efficient and Universal Mapping

24 24 How LiDO complements J2EE Entity BeanLiDO Does not scale (even CMP 2)Efficient persistence layer RDBMS centricUniversal, any data source Limited object supportFull Java High deployment costsInfra-structure independant High development costsStraight Java classes Java JSP Session Entity Any Data Source JDO is already perceived as one of the most critical Java extensions as it perfectly complements J2EE !

25 25 any app. rdbms J2EE App. Server LiDO J2EE integration JTAJTA any DB EJB container JCA / JNDI LiDO JCA system contracts : Transactions Connections Security Synchronization Pool JDBC driver

26 26 Supported App. Servers Integration with Works with any other JCA compliant J2EE Application Server Works with any non-JCA App Server through JNDI

27 27 LiDO features Universal & Efficient JDO Implementation

28 28 Storage Managers Caches, Dual Query Engine, JCA Connection pool,... LiDO architecture JDO implementation Transaction, JDO QL, State Manager RDBMS Specification implementation Core technology Data source dependant layer ODBMS Binary files The only JDO solution that is more than just another O/R mapping tool !...

29 29 LiDO Object Model All atomic types and wrappers (+BigXxx) Strings and Dates All collections, maps, arrays Keys and values may be of any type including FCO, strings... Support for embedded collections and arrays Support for Ordered collections Object and interfaces attributes Abstract classes, static inner classes

30 30 LiDO Usability Features Connection pool Useful when no EJB server is used Trace/Logging system Allows monitoring/tuning in production environments LiDO JSP TagLib Instantaneous JSP pages without any JDO java code Universal IDE integration through Ant tasks Together/J, Eclipse, Forte integrations (LiDO 1.4) Optimistic locking Based on object state comparison

31 31 LiDO Financial extensions LiDO 1.3 Temporal Versioning LiDO 1.4 Time-Series Tibco integration LiDO 2.0 FinML support

32 32 LiDO tools LiDO Project Manager: GUI tool for JDO metadata Reverse engineering of existing schema (LiDO 1.4) XDoclet generation for metadata Javadoc LiDO tags NAViLIS Business model Browsers Instant GUI for your business model Full support for object principles, including running methods JDO Query Builder Both Swing and Servlet versions

33 33 LiDO Performance Features Efficient JDBC generation Configurable Pool of prepared statements Configurable JDBC 2 batchs of statements Mapping of direct SQL statements and Stored Proc. calls Dual Query Engine Queries are sent to back-end Then executed on client cache updates (no need to flush) Then the merged result set is returned Configurable loading of result sets Highly scalable client caches Inherited from proven ODBMS technologies Reduction of « Performance gap » between RDBMS and ODBMS Several cache strategies available

34 34 LiDO and Performance A Customer Experience : 1999 : Choice of Versant vs Oracle: Performance; 4-5 times faster!!, 10 times on some queries 40% less code 2001 : Benchmark Versant vs LiDO-Versant Minor modification to switch from Versant to LiDO-Versant No modification to switch from LiDO-Versant to LiDO-Oracle Results:

35 35 LiDO for RDBMS JDO compliant O/R mapping tool Existing schema Allows to map an existing database schema Can map any existing compound PKs and FKs New schema Automatically managed by LiDO Access to the underlying JDBC connexion InstantDB

36 36 LiDO O/R mapping Based on specialized dictionaries Automatic and user-defined naming strategies Custom (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, size Configurable fast HILOW algorithm

37 37 LiDO Collection support 1-N relationships Java 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 keys Support for embedded and ordered collections 1-1 associations Either two tables (both sides are FCOs) Or Embedded (Second Class Objects), 2 methods: Other class columns duplication Other class is serialized within a binary column Available for any system or user class

38 38 LiDO for ODBMS First supported ODBMS: Versant Other ODBMS support under development Complete 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 39 LiDO for Binary File A Full JDO implementation in a small memory footprint Allows to test JDO without any heavy DBMS engine Relies on Java serialization + Random Access Files Embedded DB Might also be useful for unstructured data, documents... Very low memory requirements (<350 K) Full featured database Single or multiple files Configurable Paging/Caching mechanism Optional Locking / multiple connections support Both Pessimistic and Optimistic modes JDO Query support

40 40 LiDO Roadmap An ever better LiDO « Just Do Objects ! »

41 41 Data sources Roadmap Legacy / JCA data sources CICS, Tuxedo ERP, applications, mainframes, TP monitors,... Files XML files CSV files Other Proprietary DB Upon request

42 42 LiDO roadmap JDO extensions (JDO 2.0) Support for database constraints (not null, unique,...) Referential integrity (on delete, reverse link,...) Explicit locking, object graph loading Enterprise features LiDO / JMS coupling (event notification) Reactive applications Distributed synchronized caches Shared read sessions 3-tiers LiDO (LiDO Server + Remote client) LiDO Universal

43 43 LiDO Universal Transparent navigation between objects stored in heterogeneous data sources

44 44 Finance Roadmap New Data types Temporal Data : time versioning (in beta now) Time-Series : time indexed collections Tibco support Reactive applications FinML, fpML and other Financial formats

45 45 LiDO Benefits From the business point of view « Just Do Objects ! »

46 46 LiDO Delivers 20 to 50% LESS source code to write Typical number of lines within the business object models used to store and retrieve these objects: 30% and this may increase should your model be complex. These lines are just not needed any more, no need to write them, nor to maintain them. 20% to 2000% MORE Performance Performance gain observed using an application with a simple model involving 3 classes, 1 relationship 1-n, and one level of inheritance accessing the same relational database through LiDO or straight JDBC calls. A more complex model will result into an higher performance gain, specially compared to EJB-CMP within App. Servers.

47 47 LiDO Delivers Reduced development time Fully transparent & standard mapping Universal Data Access Allows on the fly change of storage technology Transparent switch from ODBMS to RDBMS or vice-versa Full usage of Business Object Design Without any interference from deploying technologies No restrictions Enterprise Class Performance Allows actual deploying of J2EE critical business apps

48 48 LiDO Benefits Investment Protection Mapping of existing schemas from RDBMS. New applications can be build using existing data and databases. Better use of skills Isolation 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 Users Automatic 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.

49 49 A new vision of persistence Each RDBMS vendor must publish a JDBC interface in order to allow standard tools to access data Customer 1 rdbms 1 Customer 2 rdbms 2 Application jdbc tool jdbc tool Any Customer rdbms 1 LiDO drivers Applications odbms... LiDO embraces a wider view of the global IS jdbc Prop. API...

50 50 Who Needs LiDO ? Software editors Single code maintenance Performance: delivers ODBMS speed and functionality on top of RDBMS Direct 2-ways integration with customer information systems Global 500 (Finance, Insurance, Telcos) Universal access: access to all DBMS and legacy Cost reductions: standardized mapping Universal deployment: Applications Servers and C/S and Batch Eases relationships with System Integrators Systems Integrators Productivity gains, more time spent on business logic Better use of human resources and skill sets, easy staffing

51 51 LiDO for SIs Functionality Requirements Time Effort Cost savings Time to market improvement Other integrators start with application server only LIBeLIS integrators start with persistent middleware Delivery Time Requirements Persistence pays off in subsequent projects MARGIN Reusable Consulting Solutions

52 52 JDO Access to legacy databases And applications Opening Enterprise Applications Your Java Application any DB JDOJDO Database independance JDO implementation independance Better Quality of Service Other Applications can access your one JDO

53 53 LiDO vs competition Performance Time to Market TopLink Versant EJB/CMP 1.1 JDBC Kodo OpenFusion Universal Standard JDBC TopLink Versant EJB/CMP Kodo, OpenFusion LiDO LiDO Versant EJB/CMP 2 LiDO JDBC

54 54 LiDO Positionning LiDO versusDev. TimePerformanceStandardUniversal JDBC +++++ =/+ (Client Cache) ++ ODBMS +++++++ O/R mapping +/++ (enhancement + object queries) =/+ (enhancement) ++++ EJB persist. ++++++++++ Other JDO =/++++

55 55 Development Licenses Pricing Community Edition Free Open Source RDBMS, Enhancer, Personal and Education use only Includes 1 single session Run-time, valid 6 months, free to renew Standard Edition 600 Open Source RDBMS, Binary file, Enhancer Includes 2 single session Run-times Professional Edition 2.000 Open Source & Commercial RDBMS, ODBMS, Binary file, Enhancer NAViLIS, LiDO Project Manager J2EE Application Server Integration (JCA) Legacy Access (mapping of existing databases) Includes 1 dual session Run-time

56 56 RunTime Licenses Pricing Session Based Licenses (interactive J2SE) per Concurrent Transaction: 200 PersistenceManagerFactory Based Licenses (J2EE or non-interactive) per server CPU: 4.000

57 57Conclusion 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


Download ppt "1 LIBeLIS Enterprise Universal Java Data Access Scalable, robust JDO solutions « Just Do Objects ! »"

Similar presentations


Ads by Google