SDO 3.0 Virtual F2F – Helper Contexts (Issue 96) Blaise Doughan Team Lead, Oracle TopLink OXM, JAXB, & SDO Team Lead, EPS(EclipseLink) MOXy & SDO.

Slides:



Advertisements
Similar presentations
Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source.
Advertisements

© Copyrights 1998 Algorithmic Research Ltd. All rights Reserved D a t a S e c u r i t y A c r o s s t h e E n t e r p r i s e Algorithmic Research a company.
1 InTroToJCL Introduction to Java Class Loaders. 2 class loader l ia an object responsible for loading classes. The class ClassLoader is an abstract class.
Module 12 Upgrading from Exchange Server 2003 or Exchange Server 2007 to Exchange Server 2010.
SDO 3.0 – Enhancing the API Blaise Doughan Team Lead, Oracle TopLink OXM/SDO/JAXB Team Lead, Eclipse Persistence Services (EclipseLink) OXM/SDO/JAXB.
Object-Oriented PHP (1)
JSP: JavaServer Pages Juan Cruz Kevin Hessels Ian Moon.
Edward Tsai – CS 239 – Spring 2003 Strong Security for Active Networks CS 239 – Network Security Edward Tsai Tuesday, May 13, 2003.
1/25/2000 Active Names: Flexible Location and Transport of Wide-Area Resources Luis Rivera.
What Is a Factory Pattern?.  Factories are classes that create or construct something.  In the case of object-oriented code languages, factories construct.
Polish Infrastructure for Supporting Computational Science in the European Research Space Policy Driven Data Management in PL-Grid Virtual Organizations.
Singleton Christopher Chiaverini Software Design & Documentation September 18, 2003.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
Rendering Contexts and Components What is a uPortal3 context ? –Defines all aspects of a traditional portal instance Design, navigation, profiles Parameter.
WebDAV Issues Munich IETF August 11, Property URL encoding At present, spec. allows encoding of the name of a property so it can be appended to.
Display Text SDD 1.1 Topic. Current Situation COSMOS team is implementing a CLI for user interaction Need the ability to specify strings for display to.
The Network Performance Advisor J. W. Ferguson NLANR/DAST & NCSA.
GoF Design Patterns (Ch. 26). GoF Design Patterns Adapter Factory Singleton Strategy Composite Façade Observer (Publish-Subscribe)
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
TOSCA Monitoring Reference Architecture Straw-man Roger Dev CA Technologies March 18, 2015 PRELIMINARY.
Yang Shi (Richard), Yong Zhang IETF 74 th 26 March 2009, San Francisco CAPWAP WG MIB Drafts Report.
L11-12: Design Patterns Definition Iterator (L4: Inheritance)‏ Factory (L4: Inheritance)‏ Strategy (L5: Multiple Inheritance)‏ Composite (L6: Implementation.
Display Text SDD 1.1 Topic. Current Situation COSMOS team is implementing a CLI for user interaction Need the ability to specify strings for display to.
ChangeSummary / DAS Requirements (SDO 3.0 Virtual F2F) Christophe Boutard François Huaulmé
Define an interface for creating an object, but let subclasses decide which class to instantiate Factory Method Pattern.
Define an interface for creating an object, but let subclasses decide which class to instantiate.
ESO - Garching 23 June – 02 July, 2003 ACS Course Transparent XML De-/Serialization in Java H. Sommer.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
SIP working group IETF#70 Essential corrections Keith Drage.
KEW Definitions Document Type The Document Type defines the routing definition and other properties for a set of documents. Each document is an instance.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
Copyright © 2002 W. A. Tucker1 Chapter 10 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Interfaces About Interfaces Interfaces and abstract classes provide more structured way to separate interface from implementation
Advanced Object-oriented Design Patterns Creational Design Patterns.
Java Projections in SDO 3.0 First Draft Ron Barack.
Copyright (c) 2006 IBM Corporation; made available under the EPL v1.0 Update Policy ~ Where we are in 3.2.
LCG Distributed Databases Deployment – Kickoff Workshop Dec Database Lookup Service Kuba Zajączkowski Chi-Wei Wang.
Java Programming, Second Edition Chapter Twelve Advanced Inheritance Concepts.
8 Copyright © 2004, Oracle. All rights reserved. Making the Model Secure.
Drill-Through Features Cognos 8 BI. Objectives  In this module we will examine:  Cognos 8 Drill Through Overview  Model / Package Drill Through  Cross.
OBJECT ORIENTED PROGRAMMING. Design principles for organizing code into user-defined types Principles include: Encapsulation Inheritance Polymorphism.
Object orientation and Packaging in Java Object Orientation and Packaging Introduction: After completing this chapter, you will be able to identify.
Singleton Pattern. Problem Want to ensure a single instance of a class, shared by all uses throughout a program Context Need to address initialization.
Object-Oriented Programming “The Rest of the Story”, CS 4450 – Chapter 16.
Object Oriented Programming Elhanan Borenstein Lecture #7.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
EJB. Introduction Enterprise Java Beans is a specification for creating server- side scalable, transactional, multi-user secure enterprise-level applications.
Section 3: Component/Object Oriented Programming, Events, and Delegates in.NET Jim Fiddelke, Greenbrier & Russel.
Introduction to Inversion Of Control (IOC). IOC Definition (based on Wikipedia)  Consider the way in which an object obtains references to its dependencies.
Developing Custom ASP.NET Providers For Membership And Role Manager Stefan Schackow PRS404 Program Manager – Web Platform and Tools Microsoft Corporation.
Discussion on oneM2M and OSGi Interworking Group Name: ARC Source: Jessie, Huawei, Meeting Date: Agenda Item:
Static SDO Proposal Main Points/ Next Steps. Goals of specification Not about the algorithm to generate Static SDOs Instead, about how Static SDOs map.
Java for android Development Nasrullah Khan. Using instanceof in Android Development the classes such as Button, TextView, and CheckBox, which represent.
Inheritance Modern object-oriented (OO) programming languages provide 3 capabilities: encapsulation inheritance polymorphism which can improve the design,
Encapsulation, Data Hiding and Static Data Members
GoF Design Patterns (Ch. 26). GoF Design Patterns Adapter Factory Singleton Strategy Composite Façade Observer (Publish-Subscribe)
Lecture 22 Inheritance Richard Gesick.
CSE 432 Presentation GoF: Factory Method PH: “To Kill a Singleton”
GoF Design Patterns (Ch. 26)
CS 350 – Software Design Singleton – Chapter 21
CIS 199 Final Review.
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Objectives In this lesson, you will learn about:
GoF Patterns Ch. 26.
Presentation transcript:

SDO 3.0 Virtual F2F – Helper Contexts (Issue 96) Blaise Doughan Team Lead, Oracle TopLink OXM, JAXB, & SDO Team Lead, EPS(EclipseLink) MOXy & SDO

Agenda Definitions Requirements Multiple SDO Implementations Creating Local Helper Contexts Serialization Deprecating API Consequences and Implications Future Work?

Definitions Global HelperContext – This is the HelperContext retrieved from HelperProvider.getDefaultContext(). The helpers/factories from this helper context correspond to the corresponding INSTANCE members (I.e. TypeHelper.INSTANCE). Local Helper Context – This is a HelperContext that implements the HelperContext interface but is not the global HelperContext.

Requirements 1.Make it possible for multiple vendor implementations to co-exist. This should take the following into consideration: 1.Java SE and EE environments 2.OSGi environments 3.Other environments? 2.Create a standard means of creating local Helper Contexts. 3.Make it possible to serialize DataObjects between different SDO implementations.

Java SE and EE Environments A HelperContextFactory Impl will be looked for: Allow user to specify the implementation of commonj.sdo.helper.HelperContextFactory they wish to use. If no implementation is specified, then check if one was specified in the System property “commonj.sdo.helper.HelperContextFactory”. If the System property is not set or this code does not have permission to read it then the name will be retrieved from the META- INF/services/commonj.sdo.helper.HelperContextFact ory resource.

Proposed API – Obtain SDO Impl commonj.sdo.helper.SDO New Class – SDO Responsible for obtaining SDO implementations, these implementations may be from different vendors. Static API: getHelperContextFactory(): HelperContextFactory getHelperContextFactory(String implName): HelperContextFactory

OSGi Environments Interest has been expressed in supporting the following OSGi architectures: SDO Public API Bundle SDO Impl Bundle SDO Impl Bundle Client SDO Bundle SDO Impl SDO Bundle SDO Impl Client

Proposed API – OSGi Workaround commonj.sdo.helper.SDO Modify Class – SDO In the absence of a pure OSGi solution, make the HelperContextFactory lookup pluggable. This will allow vendors to swap in alternate look up mechanisms. Static API getHelperContextFactoryResolver(): HelperContextFactoryResolver setHelperContextFactoryResolver(HelperContextFactoryResolver) New Inner Interface – HelperContextFactoryResolver SDO will delegate the implementation lookup to this class. A default implementation (that uses the previous defined rules) will also be provided. API getHelperContextFactory(): HelperContextFactory getHelperContextFactory(String implName): HelperContextFactory

Proposed API – Local HC Creation commonj.sdo.helper.HelperContextFactory New Class - HelperContextFactory Responsible for getting the global HelperContext, and creating local HelperContexts. API – The ClassLoader parameter represents the: ClassLoader for static SDOs if required, and the Map is useful for passing vendor specific information. createHelperContext(): HelperContext createHelperContext(Map): HelperContext createHelperContext(ClassLoader): HelperContext createHelperContext(ClassLoader, Map): HelperContext

Proposed API – Local HC Creation The creation of HelperContexts in SDO will feel very much the creation of Entity Managers in JPA. SDO SDO.getHelperContextFactory(String).createHelperContext(); JPA Persistence.createEntityManagerFactory(String).createEntityManager();

Standard Serialization in SDO??? Standard Section 4 of the SDO 3.0 specification contains the recommended algorithm for serializing DataObjects. Not Standard Section 4 also contains the following: “Using standard java.io.Serialization will ensure a degree of interoperability between different Java implementations. This method for serialization is not mandatory, however. If interoperability is not required, then other proprietary serialization schemes may be implemented. “

Proposed API – Serialization Modify Class – HelperContextFactory Add the ability to create instances of Resolvable. API – The abstract HelperContextFactory would contain real implementations of these methods. Of course implementers would be free to override these methods with their own proprietary serialization strategies. createResolvable(): Resolvable createResolvable(Object): Resolvable Note: If custom serialization is not required then neither are these methods.

Deprecation API The following API will be deprecated: INSTANCE (on all SDO helpers and factories) HelperProvider HelperProvider will be modified so that all calls are delegated to the new framework.

Consequences and Implications A user calling the following will not know which SDO implementation they are going to get: SDO.getHelperContextFactory(); Changes outside the scope of an application (I.e. Deploying to a different application server, re-ordering the class path, etc) can cause a different SDO implementation to be returned. Users will expect switching between SDO implementations to be seamless. As a spec group we will need to focus more on interoperability issues.

Proposed API – Are You Standard? Modify Class – HelperContextFactory A HelperContextFactory will need to report if truly follows the SDO specification. Only SDO implementations that indicate that they are a standard implementation will be considered candidates for the following call: SDO.getHelperContextFactory(); Of course they can still be obtained using the following API: SDO.getHelperContextFactory(String); API isStandard(): boolean

Future Work? Serialize to/from any Helper Context It would be convenient if a local HelperContext could be used to de-serialize a DataObject, currently this can only be done using the global HelperContext. Options for supporting this include: Serializing HelperContext information (some/all) along with the DataObject. Deserializing the DataObject into its own HelperContext and providing a mechanism to move it into an existing HelperContext (project operation?). Removing the Global Helper Context Once we are able to deserialize to any HelperContext do we really need a global HelperContext?

Summary Definitions Requirements Multiple SDO Implementations Creating Local Helper Contexts Serialization Deprecating API Consequences and Implications Future Work?