Static SDO Proposal Main Points/ Next Steps. Goals of specification Not about the algorithm to generate Static SDOs Instead, about how Static SDOs map.

Slides:



Advertisements
Similar presentations
1 Web Data Management XML Schema. 2 In this lecture XML Schemas Elements v. Types Regular expressions Expressive power Resources W3C Draft:
Advertisements

SDO 3.0 Virtual F2F – Helper Contexts (Issue 96) Blaise Doughan Team Lead, Oracle TopLink OXM, JAXB, & SDO Team Lead, EPS(EclipseLink) MOXy & SDO.
SDO 3.0 – Enhancing the API Blaise Doughan Team Lead, Oracle TopLink OXM/SDO/JAXB Team Lead, Eclipse Persistence Services (EclipseLink) OXM/SDO/JAXB.
JAXB Java Architecture for XML Binding Andy Fanton Khalid AlBayat.
XML Parsing Using Java APIs AIP Independence project Fall 2010.
J2ME Web Services Specification.  With the promise to ease interoperability and allow for large scale software collaboration over the Internet by offering.
Designing Classes Chapter 3. 2 Chapter Contents Encapsulation Specifying Methods Java Interfaces Writing an Interface Implementing an Interface An Interface.
Lecture 27 Exam outline Boxing of primitive types in Java 1.5 Generic types in Java 1.5.
SaxStore: a n aspect oriented persistence library for Java based on SAX events Riccardo Solmi University of Bologna May 2001.
CSE 636 Data Integration XML Schema. 2 XML Schemas W3C Recommendation: Generalizes DTDs Uses XML syntax Two documents: structure.
JAXB Java Architecture for XML Bindings. What is JAXB? JAXB defines the behavior of a standard set of tools and interfaces that automatically generate.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
Mapping Physical Formats to Logical Models to Extract Data and Metadata Tara Talbott IPAW ‘06.
Efficient XML Interchange. XML Why is XML good? A widely accepted standard for data representation Fairly simple format Flexible It’s not used by everyone,
DEiXTo.
Peter Juszczyk CS 492/493 - ISGS. // Is this C# or Java? class TestApp { static void Main() { int counter = 0; counter++; } } The answer is C# - In C#
Review for Final Exam Systems of Equations.
Objectives of the Lecture :
AIXM Viewer Implementation Presentation to AIXM Users’ Conference, Federal Aviation Administration, Washington D.C., Feb 27-March 1, By: Mark Austin,
JXON An Architecture for Schema and Annotation Driven JSON/XML Bidirectional Transformations David A. Lee Senior Principal Software Engineer Slide 1.
Chapter 1 Database Systems. Good decisions require good information derived from raw facts Data is managed most efficiently when stored in a database.
XP New Perspectives on XML Tutorial 4 1 XML Schema Tutorial – Carey ISBN Working with Namespaces and Schemas.
Chapter 7 Designing Classes. Class Design When we are developing a piece of software, we want to design the software We don’t want to just sit down and.
Apache Chemistry face-to-face meeting April 2010.
Abstract Types Defined as Classes of Variables Jeffrey Smith, Vincent Fumo, Richard Bruno.
“is a”  Define a new class DerivedClass which extends BaseClass class BaseClass { // class contents } class DerivedClass : BaseClass { // class.
UML2 Package Merge Usage scenarios and their effect on XMI and Java API interoperability Bran Selic, Jim Amsden, Kenn Hussey Oct, 2003.
An Introduction to Software Architecture
Introduction to MDA (Model Driven Architecture) CYT.
Victor Eijkhout and Erika Fuentes, ICL, University of Tennessee SuperComputing 2003 A Proposed Standard for Numerical Metadata.
CSCI 6962: Server-side Design and Programming Web Services.
Murach’s ASP.NET 4.0/VB, C1© 2006, Mike Murach & Associates, Inc.Slide 1.
ALMA Integrated Computing Team Coordination & Planning Meeting #1 Santiago, April 2013 Relational APDM & Relational ASDM models effort done in online.
1162 JDK 5.0 Features Christian Kemper Principal Architect Borland.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
Serialization. Serialization is the process of converting an object into an intermediate format that can be stored (e.g. in a file or transmitted across.
Java Projections in SDO 3.0 Ron Barack - SAP …. Agenda n Pain Points n Frameworks and Data Representations n Proposals l Annotations l Projections between.
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
Data Structures Using C++ 2E1 Inheritance An “is-a” relationship –Example: “every employee is a person” Allows new class creation from existing classes.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
CSCI-383 Object-Oriented Programming & Design Lecture 10.
Kalua – A DML for NETCONF
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
September 6, GJXDM Users Conference NCIC Schema Challenges Patrice A. Yuh
Faculty Advisor – Dr. Suraj Kothari Client – Jon Mathews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore.
ModTransf A Simple Model to Model Transformation Engine Cédric Dumoulin.
By: Cheryl Mok & Sarah Tan. Java is partially interpreted. 1. Programmer writes a program in textual form 2. Runs the compiler, which converts the textual.
Java Projections in SDO 3.0 First Draft Ron Barack.
Chapter – 8 Software Tools.
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
I/O server work at ICHEC Alastair McKinstry IS-ENES workshop, 2013.
Chapter 3 Systems of Equations. Solving Systems of Linear Equations by Graphing.
Encoder versus OTD Gabriel Badescu, Jun Xu Sun Microsystems, Inc.
Java Web Services Orca Knowledge Center – Web Service key concepts.
More About Objects and Methods
Java Beans Sagun Dhakhwa.
POOL persistency framework for LHC
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Enumerations & Annotations
Enumerations & Annotations
Threads Chapter 4.
An Introduction to Software Architecture
Enumerations & Annotations
Presents: Rally To Java Conversion Suite
Metadata The metadata contains
MAPREDUCE TYPES, FORMATS AND FEATURES
Presentation transcript:

Static SDO Proposal Main Points/ Next Steps

Goals of specification Not about the algorithm to generate Static SDOs Instead, about how Static SDOs map to SDO types and properties. And about how SDO types can be defined through Static SDOs. –GOAL: Portability of source code!

Limitations When defining SDO types from Java… Not all SDO metadata has a natural mapping to Java. –Example: Simple Types Proposal does not provide for „round- tripping“ SDO metadata to Java and back. Not every SDO metamodel can be derived from Java. Note, this is also true of XSD, eg, multiple inheritence.

Complex Types Map to Interfaces This mapping is established in 2.1, but the section on static SDOs spoke also about generated implementation classes. Proposal: –For portability, interfaces must be supported as static SDOs. –Implementation may support implementation classes, enhanced POJOs, etc. But these are vendor extensions.

Support for enums May map to simple types with enumeration restriction. Enumeration class may also be the instanceClass of the simple type. Support automatic conversion between Strings and enumeration types.

Support for Facets Currently no standard SDO metadata to represent restrictions on simple types. –Is the annotation premature? Applied to properties, roughly equivalent to anonymous types in XSD. Use JSR-303? No ability to create „registered“ simple types through Java. –But this could be done by combining XSD and Java, –Previous proposal was essentially „side files that ended in „.java“. Why not use the existing side file type?

Enhancing the Java model Becomes more necessary, since the Java metamodel is not SDO complete. The most natural way to get XML specific data into the model, without reinventing JAXB. Also used for defining data types.

Alternative approaches to tuning the generated XML (1) 1. No XML specific annotations. If the user want to annotate something as a way of saying how he wants a Java class serialized to XML, he should use JAXB. (+) Avoids competition with JAXB (+) Consistent with the idea that SDO should be data source independent (-) Solution applies to POJO classes only. Static SDOs can also be defined through interfaces. (-) Static SDO will not be suitible for many use-cases. (-) I think there will be pressure for vendor extensions here. 2. annotation (+) Avoids competition with JAXB (+) XML specific information is held in an XML-friendly format (an XSD). (+) The complete XSD is availaible, not the subset we would make available though annotations. (-) Problems with maintaining 2 sources of metainformation, handling inconsistencies, finding the classes that match a XSD, etc. (-) Static SDO still not a complete solution

3. Use a subset of JAXB annotations (+) avoids definining new annotations. (+) more programmer buy-in. (-) We would effectively be redefining JAXB annotations, this is an even more offensive "competition with JAXB". 4. Define a simple annotation to handle this use case, and promise not to go any further down "the slippery slope". (+) a large number of cases can be covered with a few simple annotations. (-) in the case of POJOs, we are competing with JAXB. Alternative approaches to tuning the generated XML (2)

Refactoring the spec Current chapter 7 contains XSD -> Java „mapping principles“. Moved to chapter 3. Chapter 7 should focus on the XSD annotations that influence the java mapping, but not general SDO -> Java mapping.

Standard Name Mangling Rules for converting URIs and names to Java follow JAXB name mangling rules. Rules for converting package names to URIs (should) follow WebBeans approach: –Prefix with „urn:java:“ –This is not currently in the write up, but could be added.

Next Steps

Facet Metadata Standard SDO properties to represent facets. Modelled on XSD facets Metadata only or fast-fail? Support minOccurs/ maxOccurs? Property facets many = true Type Facet Type MinFacet int value Type MaxFacet int value type Type LengthFacet int value

Integration with Standard Representations Is there interest in standardizing something like EclipseLink‘s JAXBHelperContext? Should we defer „binding/ projecting“ to JAXB/ POJO/ DOM? Is efficient data transfer enough (for 3.0)?

API for Efficient Data Transfer Currently, when converting to JAXB, we need to serialize to XML as an intermediate format. These methods could eliminate this intermediate format. XMLHelper –XmlStreamReader createStreamReader(XMLDocument); –ContentHandler createContentHandler(); XMLStreamReader (StAX) is in JavaSE 6.