Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
© 2008 by Roman Roelofsen; made available under the EPL v1.0 |  2008­03­20
 Transactions in 
Eclipse­based SOA
Dimitar Val...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Speaker
• Roman Roelof...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Introduction 1/3
• OSG...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Introduction 2/3
• Use...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Introduction 3/3
• Bas...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Transaction in the Con...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Type 1: Framework Tran...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Type 1: Framework Tran...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Type 2: Transaction Su...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Type 3: Full Transacti...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Type 3: Full Transacti...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Problems
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Problems 1/3
• How sho...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Problems 2/3
• What ki...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Problems 3/3
• Technic...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
What do we have now?
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Deployment Admin Speci...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Deployment Admin Speci...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Deployment Admin Speci...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
DMT Admin Service Spec...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
DMT Admin Service Spec...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
DMT Admin Service Spec...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
ProSyst mBedded Server...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
ProSyst mBedded Server...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Custom Solution based ...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Future Developments
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
RFC 98 – Transactions ...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
RFC 98 – Transactions ...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
ProSyst mBedded Server...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
ProSyst's Future OSGi ...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Summary
• Transaction ...
 Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
Thank you!
Questions?
...
Upcoming SlideShare
Loading in …5
×

Transactions in Eclipse Based SOA - Pavlin Dobrev, Dimitar Valtchev and Roman Roelofsen

357 views

Published on

OSGi DevCon 2008

Recently there is a growing interest to use Eclipse and OSGi as basic platform for the realization and integration of different SOA related technologies such as SCA (Service Component Architecture), JBI (Java Business Integration), and ESB (Enterprise Service Bus). One of the major hurdles which must be overcome is the currently missing transaction support in Eclipse and all available OSGi implementations.

This talk presents the main problems, solutions and the on-going work in OSGi Core, Mobile and Enterprise expert groups related to the transaction behavior of the OSGi APIs . Some topics which will be addressed are:

Transactional OSGi APIs
Life-cycle management of OSGi components
Software Deployment
Software Configuration Management
Transactional coordination between distributed services
Code examples and a demo based on an ongoing work for implementing OSGi transactional support will be shown.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Transactions in Eclipse Based SOA - Pavlin Dobrev, Dimitar Valtchev and Roman Roelofsen

  1. 1. © 2008 by Roman Roelofsen; made available under the EPL v1.0 |  2008­03­20  Transactions in  Eclipse­based SOA Dimitar Valtchev, Pavlin Dobrev, Roman Roelofsen
  2. 2.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Speaker • Roman Roelofsen • Software architect at ProSyst Software GmbH • OSGi Enterprise Expert Group • OSGi Core Platform Expert Group
  3. 3.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Introduction 1/3 • OSGi, the runtime that underpins Eclipse, is used more  and more as a deployment and runtime platform for  enterprise applications on the server • Eclipse Swordfish • IBM, BEA moved to OSGi • Oracle, JBoss are moving to OSGi • Apache ServiceMix • Transaction support by OSGi will become more  important
  4. 4.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Introduction 2/3 • Use cases  Life cycle operations  Configuration management  Distributed applications  Business process execution • Different deployment scenarios  Stand alone OSGi runtime  OSGi embedded in JavaEE container  JavaEE server build on OSGi
  5. 5.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Introduction 3/3 • Basic principles  Applications need a well defined transaction management  The OSGi framework needs to be transaction­aware  Transaction management belongs to the application server, not  the application itself  OSGi and the applications do not live in isolation
  6. 6.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Transaction in the Context of OSGi
  7. 7.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Type 1: Framework Transactional Behaviour • Execute framework operations as a “unit of work”  Bundle operations, configuration changes, ... OSGi Framework Bundle Bundle BundleBundle Transaction
  8. 8.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Type 1: Framework Transactional Behaviour • Downsides:  Only transactional behaviour, no real transaction  Hard to group operations from different sources like  Declarative Services  Configuration Admin  Permission Admin  Duplication of code for transaction management  No central place for transactions management  Diagnosis  Debugging
  9. 9.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Type 2: Transaction Support by the Framework • Full transaction support for internal transactions  Transaction API, transaction manager, resource manager, ... OSGi Framework Bundle Bundle BundleBundle e.g. Web Application Layer Transaction
  10. 10.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Type 3: Full Transaction Support • Full transaction support for internal and external  transactions  Distributed transactions  two­phase commit, XA transactions
  11. 11.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Type 3: Full Transaction Support e.g. Web Application Layer Database OSGi Framework Bundle Bundle Bundle Transaction
  12. 12.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Problems
  13. 13.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Problems 1/3 • How should the framework handle listeners that are not  aware of the transaction?  BundleListener, ServiceListener • Example:  Transaction start  Install bundle ­> framework will send event notifications  Error during bundle install  Transaction roll back ­> event ??? • Defer the event? Send uninstall event?
  14. 14.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Problems 2/3 • What kind of API to use? • The OSGi burden:  OSGi is used in the embedded and enterprise space  Enterprise developers will expect e.g. @Transaction  Will not work on the latest JavaME CDC 1.1  Byte code­weaving could solve the problem partially  However, do we want this in the specification?
  15. 15.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Problems 3/3 • Technical constraints • E.g. recovery needs a log of all operations  Resource limitations on embedded systems
  16. 16.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 What do we have now?
  17. 17.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Deployment Admin Specification 1/3 • A deployment in OSGi can include  bundles  configuration objects  resources (e.g. images)  ... • Support needed for tracking the fine­grained  dependencies  Which bundles and resources belong together  ...
  18. 18.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Deployment Admin Specification 2/3 • Deployment Admin Specification standardizes the  access to some of the responsibilities of the  management agent  Installing/Un­installing  Customizer  Fix Package  ... • Chapter 114  OSGi R4 Service Compendium  OSGi R4 Mobile Specification
  19. 19.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Deployment Admin Specification 3/3 • All operations take place in a session • Sessions are committed or rolled back • Two­phase transactional behaviour (type 1)
  20. 20.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 DMT Admin Service Specification 1/3 • API for managing a device using concepts from the  OMA DM specification • Management model for mobile devices  Like JMX for JavaEE  But not Java­specific • Stores configuration data in the device management  tree  Informations are stored in nodes  ACLs, Meta nodes
  21. 21.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 DMT Admin Service Specification 2/3 • Access to the DMT is session based  Multiple Readers Session  Any number of read only session  Exclusive Update Session  Exclusive lock on sub­tree  Atomic Session  Exclusive Update Session  Can be rolled back
  22. 22.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 DMT Admin Service Specification 3/3 • Chapter 117  OSGi R4 Service Compendium  OSGi R4 Mobile Specification • Transactional behaviour (type 1) • Support is not mandatory in the specification • Therefore no transactional guarantees in all  implementations
  23. 23.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 ProSyst mBedded Server Professional 1/3 • OSGi Framework implementation by ProSyst Software • OSGi R4 certified • Full support for transaction (type 2) • Transaction support includes  API for transaction management • API  TransactionManager, Transaction, TransactionContext,  TransactionResource
  24. 24.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0
  25. 25.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 ProSyst mBedded Server Professional 3/3 • System recovery support  Recovery after major crashes  Transaction manager keeps a record of all active transactions  Transaction manager checks at start­up if there are any  interrupted transactions • Deadlock recovery mechanism  Based on transaction timeouts  Transaction can be committed or rollback after predefined  timeouts
  26. 26.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Custom Solution based on JTA • javax.transaction.TransactionManager • javax.transaction.xa.XAResource • Requires external transaction manager  e.g. JavaEE server • Will not work in a stand­alone OSGi runtime • Full support for transactions (type 3)
  27. 27.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Future Developments
  28. 28.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 RFC 98 – Transactions in OSGi 1/2 • OSGi spec: RFC 98 – Transactions in OSGi • Handled by the OSGi Core Platform Expert Group • Requirements  Provide an API for transactions  May provide locking facility  Must allow implementation on embedded systems  No crash recovery
  29. 29.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 RFC 98 – Transactions in OSGi 2/2 • Requirements (cont'd)  May support recovery from power fails  Must be compatible with JTA as much as possible  ACID  Isolation between participants of a transaction  Set of permissions to restrict the use of transactions
  30. 30.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 ProSyst mBedded Server Professional (next version) • Transaction support based on RFC 98 • Transaction resources  OSGi Framework  Configuration Admin Service  Preferences Admin Service  Deployment Admin Service  ...
  31. 31.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 ProSyst's Future OSGi Enterprise Runtime • Framework implementation targeted at JavaEE use • Work in progress, several new features including... • Full transaction support  Distributed transactions  Framework will participate in external transactions
  32. 32.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Summary • Transaction support is currently fragmented in OSGi  Deployment Admin Spec, DMT Admin Spec • Custom solutions build on e.g. JTA possible • Commercial products  ProSyst's mBedded Server Professional • Ongoing standardisation process  RFC 98 • Future prospects  ProSyst's Future OSGi implementation for enterprise use 
  33. 33.  Transactions in Eclipse­based SOA  |  © 2008 by Roman Roelofsen; made available under the EPL v1.0 Thank you! Questions? Roman Roelofsen r.roelofsen@prosyst.com http://www.prosyst.com http://dz.prosyst.com

×