1 / 37

LIBeLIS

LIBeLIS. Enterprise Universal Java Data Access Scalable, robust JDO solutions «  Just Do Objects !  ».  info@libelis.com  www.libelis.com. It’s all about Data access. Data Access is: … not simple , even less maintainable … not efficient ... different for each kind of data source

kailey
Download Presentation

LIBeLIS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. It’s 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. 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 AccessVendor

  4. LiDO • 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

  5. 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)

  6. 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

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

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

  9. JDO • 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 • FullyTransparent 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

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

  11. 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; } } No need for any javax.jdo import Inheritance Interfaces Collections No need for accessors / mutators This is a persistent class ! If you can write it in Java, any JDO driver should store it.

  12. 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 JDO enhancer source code javac compiler byte code byte code Mapping (xml file) LiDO java JVM Mapping (xml file)

  13. Programming with LiDO rdbms odbms LiDO   Business objects Application objects Some explicit JDO calls: Fully Transparent (no JDO calls): • Navigation between objects • Connection(*) • Query • Data manipulation in Java • Automatic data mapping • Client cache, object identity • Transaction(*) Java VM (*) : in a J2EE context, connections and transactions are managed by the application server itself !

  14. 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; }

  15. 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(); }

  16. LiDO within an Enterprise Application design From the architect point of view An Efficient and Universal Mapping

  17. How LiDO complementsJ2EE JSP Any Data Source Session Entity Java JDO is already perceived as one of the most critical Java extensions as it perfectly complements J2EE !

  18. LiDO J2EE integration J2EE App. Server rdbms J T A EJB container Pool JDBC driver any DB JCA / JNDI LiDO any app. • JCA system contracts : • Transactions • Connections • Security • Synchronization

  19. SupportedApp. Servers • Integration with • Works with any other JCA compliant J2EE Application Server • Works with any non-JCA App Server through JNDI

  20. LiDO features Universal & Efficient JDO Implementation

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

  22. 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

  23. LiDO Usability Features • Connection pool • Useful when no EJB server is used • Trace/Logging system • Allows monitoring/tuning in production environments • LiDO JSP TagLib • InstantaneousJSP 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

  24. LiDO Financial extensions • LiDO 1.3 • Temporal Versioning • LiDO 1.4 • Time-Series • Tibco integration • LiDO 2.0 • FinML support

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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.

  31. 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

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

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

  34. LiDO Delivers • Reduceddevelopment 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

  35. 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.

  36. 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

  37. Conclusion • 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

More Related