Proposed RFP: Java 5(+) PSM for DDS Rick Warren, RTI [email_address] document number: 2009-09-09
Introduction Summary & Conclusion <ul><li>Java is a mature platform </li></ul><ul><ul><li>Established conventions, design ...
Introduction Goals <ul><li>Improve robustness </li></ul><ul><ul><li>… by improving  type safety </li></ul></ul><ul><ul><li...
Introduction Not the Goals <ul><li>Define new middleware concepts or protocols: this is about DDS / RTPS </li></ul><ul><li...
Introduction What Do We Mean by Java 5? <ul><li>Java Language , versions 5  and later </li></ul><ul><li>Modern language fe...
Mandatory Requirements Motherhood? <ul><li>The proposed PSM  shall : </li></ul><ul><li>Be derived from the DDS PIM </li></...
Mandatory Requirements Portability <ul><li>The proposed PSM  shall : </li></ul><ul><li>Support  runtime portability  betwe...
Optional Requirements Built-in Serialization <ul><li>The proposed PSM  may : </li></ul><ul><li>Define how to leverage Java...
Optional Requirements Java Management Extensions (JMX) <ul><li>The proposed PSM  may : </li></ul><ul><li>Integrate DDS  Qo...
Optional Requirements Other Optional Requirements <ul><li>The proposed PSM  may : </li></ul><ul><li>Comply with  Java Bean...
Issues to Be Discussed Motherhood? <ul><li>Discuss the  implications  of the proposal for: </li></ul><ul><li>Performance <...
Issues to Be Discussed Relationships Among Technologies <ul><li>Discuss the  relationships  of the proposal to: </li></ul>...
Conclusion (Redux) <ul><li>Provide rigorous runtime portability </li></ul><ul><li>Improve robustness </li></ul><ul><li>Inc...
Next Steps Road Map <ul><li>Determining Level of Interest </li></ul><ul><ul><li>Do DDS users have these problems? </li></u...
Next Steps Open Discussion © 2009 RTI - All rights Reserved
Upcoming SlideShare
Loading in …5
×

Proposed Java 5 API for DDS (out of date)

973 views

Published on

Presentation to a Technical Meeting of the Object Management Group (OMG) proposing the issuance of an RFP for an improved Java API for DDS in September 2009.

This presentation has been superseded by more recent ones on the same subject.

Published in: Technology, News & Politics
1 Comment
0 Likes
Statistics
Notes
  • A note to my readers: I gave this presentation to introduce the members of the OMG's middleware group to the concept of an improved Java API for DDS. The response was positive, so we drafted an RFP, and I gave another presentation summarizing it at the next meeting. That presentation is more up-to-date than this one; you can find it here: http://www.slideshare.net/rickbwarren/java-5-api-for-dds-updated.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
973
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
18
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Proposed Java 5 API for DDS (out of date)

  1. 1. Proposed RFP: Java 5(+) PSM for DDS Rick Warren, RTI [email_address] document number: 2009-09-09
  2. 2. Introduction Summary & Conclusion <ul><li>Java is a mature platform </li></ul><ul><ul><li>Established conventions, design patterns </li></ul></ul><ul><ul><li>Emphasis on portability, safety, manageability </li></ul></ul><ul><li>Java is an important DDS platform </li></ul><ul><ul><li>Many of largest, most sophisticated users use it </li></ul></ul><ul><ul><li>… often alongside other language(s) </li></ul></ul><ul><li>A vibrant ecosystem requires portability </li></ul><ul><ul><li>At runtime </li></ul></ul><ul><ul><li>Across DDS implementations </li></ul></ul><ul><li>IDL-based DDS Java API does not reflect / support these </li></ul><ul><ul><li>Doesn’t look, work like most other Java code </li></ul></ul><ul><ul><li>Requires frequent memory allocation </li></ul></ul><ul><ul><li>Not portable across implementations </li></ul></ul><ul><li>Observation : JMS does reflect / support these </li></ul>© 2009 RTI - All rights Reserved
  3. 3. Introduction Goals <ul><li>Improve robustness </li></ul><ul><ul><li>… by improving type safety </li></ul></ul><ul><ul><li>( e.g. with generic types, first-class enumerations) </li></ul></ul><ul><ul><li>… by streamlining error handling </li></ul></ul><ul><ul><li>( e.g. with appropriate exceptions) </li></ul></ul><ul><li>Increase performance </li></ul><ul><ul><li>… by improving memory loan API </li></ul></ul><ul><li>Simplify integration, flatten learning curve </li></ul><ul><ul><li>… by following Java conventions / best practices </li></ul></ul><ul><ul><li>( e.g . naming, organization, design patterns) </li></ul></ul><ul><ul><li>… by leveraging built-in capabilities </li></ul></ul><ul><ul><li>( e.g. enumerations, collections, beans, serialization, run-time type safety) </li></ul></ul><ul><li>Grow the DDS ecosystem </li></ul><ul><ul><li>… by improving portability </li></ul></ul><ul><ul><li>… by providing clarity wrt other technologies </li></ul></ul><ul><ul><li>… by increasing credibility , which comes from all of the above </li></ul></ul>© 2009 RTI - All rights Reserved
  4. 4. Introduction Not the Goals <ul><li>Define new middleware concepts or protocols: this is about DDS / RTPS </li></ul><ul><li>Invalidate the existing IDL PSM: don’t break existing implementations, applications </li></ul><ul><li>Improve / replace the IDL  Java language mapping: won’t solve the aforementioned problems </li></ul><ul><li>Eliminate / discredit JMS: </li></ul><ul><li>Entangle ourselves with the JCP: JCP owns Java distros, acts slowly, imposes high bar </li></ul>© 2009 RTI - All rights Reserved
  5. 5. Introduction What Do We Mean by Java 5? <ul><li>Java Language , versions 5 and later </li></ul><ul><li>Modern language features </li></ul><ul><ul><li>Generic types </li></ul></ul><ul><ul><li>First-class, type-safe enumerations </li></ul></ul><ul><ul><li>Annotations </li></ul></ul><ul><li>Rich standard libraries </li></ul><ul><ul><li>Improved wide character support </li></ul></ul><ul><ul><li>Built-in JMX </li></ul></ul><ul><ul><li>Comprehensive collections ( since Java 1.2, improved in Java 5 ) </li></ul></ul><ul><ul><li>Built-in serialization ( since Java 1.1 ) </li></ul></ul><ul><ul><li>Reflection, Java Beans ( since Java 1.1, improved Java 1.4 ) </li></ul></ul>© 2009 RTI - All rights Reserved
  6. 6. Mandatory Requirements Motherhood? <ul><li>The proposed PSM shall : </li></ul><ul><li>Be derived from the DDS PIM </li></ul><ul><li>Implement DDS PIM in its entirety, be semantically equivalent to DDS IDL PSM </li></ul><ul><li>Have no impact on interoperability </li></ul><ul><ul><li>Two communicating applications shall not require any awareness of each other’s PSMs </li></ul></ul><ul><li>Avoid introducing new container types (like lists and strings) </li></ul>© 2009 RTI - All rights Reserved
  7. 7. Mandatory Requirements Portability <ul><li>The proposed PSM shall : </li></ul><ul><li>Support runtime portability between implementations </li></ul><ul><ul><li>Application compiled against proposed APIs shall be able to run against any conformant DDS implementation </li></ul></ul><ul><li>For example , here’s how apps use JMS: </li></ul><ul><ul><li>At compile time : use standard javax.jms interfaces </li></ul></ul><ul><ul><li>At run time : system property locates implementation classes </li></ul></ul><ul><ul><li>This standard of portability defines user expectations </li></ul></ul>© 2009 RTI - All rights Reserved
  8. 8. Optional Requirements Built-in Serialization <ul><li>The proposed PSM may : </li></ul><ul><li>Define how to leverage Java’s built-in data serialization </li></ul><ul><li>Could be as simple as: </li></ul><ul><li>public class DataReaderQos implements java.io.Serializable { … } </li></ul><ul><li>Or more sophisticated, like: </li></ul><ul><li>java.io.ObjectInput in = myDataReader.toInputStream(); </li></ul><ul><li>Object sample = in.readObject(); </li></ul>© 2009 RTI - All rights Reserved
  9. 9. Optional Requirements Java Management Extensions (JMX) <ul><li>The proposed PSM may : </li></ul><ul><li>Integrate DDS QoS configuration with JMX </li></ul><ul><li>Integrate DDS status notifications with JMX </li></ul><ul><li>Potential Benefit : Help users to: </li></ul><ul><li>Plug into existing management tools, frameworks </li></ul><ul><li>Manage DDS-based systems remotely </li></ul>© 2009 RTI - All rights Reserved
  10. 10. Optional Requirements Other Optional Requirements <ul><li>The proposed PSM may : </li></ul><ul><li>Comply with Java Beans design patterns to provide richer type introspection </li></ul><ul><ul><li>… or take advantage of reflection in more novel ways </li></ul></ul><ul><li>Integrate with OSGi : Easily plug into Eclipse and other OSGi-based containers </li></ul>© 2009 RTI - All rights Reserved
  11. 11. Issues to Be Discussed Motherhood? <ul><li>Discuss the implications of the proposal for: </li></ul><ul><li>Performance </li></ul><ul><li>Object lifecycle </li></ul><ul><li>Memory usage </li></ul><ul><li>Subsequent Java versions (6 and 7) </li></ul>© 2009 RTI - All rights Reserved
  12. 12. Issues to Be Discussed Relationships Among Technologies <ul><li>Discuss the relationships of the proposal to: </li></ul><ul><li>DDS PIM conventions vs. Java conventions </li></ul><ul><li>Implementation-specific extensions / technologies </li></ul><ul><li>Java editions: SE, EE, ME </li></ul><ul><li>Existing standard CORBA APIs ( org.omg.CORBA in Java SE) </li></ul><ul><li>Existing standard JMS APIs ( javax.jms in Java EE) </li></ul>© 2009 RTI - All rights Reserved
  13. 13. Conclusion (Redux) <ul><li>Provide rigorous runtime portability </li></ul><ul><li>Improve robustness </li></ul><ul><li>Increase performance </li></ul><ul><li>Simplify integration, flatten learning curve </li></ul><ul><li>Grow the DDS ecosystem </li></ul><ul><li>… with a new Java 5+ PSM </li></ul><ul><li>… that takes advantage of platform-specific </li></ul><ul><ul><li>Technologies </li></ul></ul><ul><ul><li>Best practices </li></ul></ul><ul><ul><li>Conventions </li></ul></ul>© 2009 RTI - All rights Reserved
  14. 14. Next Steps Road Map <ul><li>Determining Level of Interest </li></ul><ul><ul><li>Do DDS users have these problems? </li></ul></ul><ul><ul><li>Would DDS vendors respond to an RFP? </li></ul></ul><ul><li>Possible Timeline </li></ul>© 2009 RTI - All rights Reserved <ul><ul><li>Discuss / complete problem definition, requirements list </li></ul></ul>Sep. – Dec. 2009 <ul><ul><li>Issue RFP </li></ul></ul>Dec. 2009 or Mar. 2010 <ul><ul><li>Initial submission(s) </li></ul></ul>Mar. or Jun. 2010 <ul><ul><li>Revised submission(s) </li></ul></ul>Sep. 2010 <ul><ul><li>Adoption </li></ul></ul>Dec. 2010
  15. 15. Next Steps Open Discussion © 2009 RTI - All rights Reserved

×