Presentation is loading. Please wait.

Presentation is loading. Please wait.

Overview and update Pete Raymond. » Purpose of this presentation » Background » JSR Requirements » Key concepts » Relationship to other standards/approaches.

Similar presentations


Presentation on theme: "Overview and update Pete Raymond. » Purpose of this presentation » Background » JSR Requirements » Key concepts » Relationship to other standards/approaches."— Presentation transcript:

1 Overview and update Pete Raymond

2 » Purpose of this presentation » Background » JSR Requirements » Key concepts » Relationship to other standards/approaches » Example API » Demo » Timeline » Q & A

3 » Raise awareness of JSR-350 State Management » Seek feedback on concepts and usage

4 » Standard formed through JCP (2.8  2.9) » Oracle lead (Mitch Upton), participation from Red Hat, IBM and independents » Expert group activated April 2012 » Some existing proprietary solutions in WebLogic, Tomcat and JBoss

5 » “…develop an API that applications and JavaEE containers can use to offload the responsibility of state management into third party providers with different quality of service characteristics” (JSR) » Standardize existing APIs

6 » Mobile - cross platform state handling » Integration - Transfer of state between platforms » Capability based provider querying » Transient data e.g. session state » Non relational data e.g. JSON, XML, JavaScript

7 » This slide needs more » JPA ˃Relational ˃Persistent » Proprietary APIs ˃Reuse ˃Ease of use » NoSQL ˃?

8 » Store and retrieve state independent of mechanism » Modular and consistent implementation » Capability based matching of client and provider » Support innovation and the cloud » Easy to use interfaces – user, provider, platform

9 JEE Client State Management API JSE Client Built-in Provider 3 rd party Provider Custom Provider

10 » State (State Container) » State Connection Factory » State Connection » State Container » State Map » Capability

11 » Unit of data » Uniquely identified within a scope » Persistent for a business period » Used by web apps, web services, JSF, CDI » Currently implemented via in memory, file, database, cluster

12 » Create one or more State Connections based on required capabilities » Associated to single provider » Typed e.g. Java class (…probably)

13 » Connection to state management services provided by some provider » Expose capabilities » Contains configuration » Controls the transaction – either local or distributed using JTA » Use directly or to get a StateMap

14 » Container for a user-defined state value that allows a State Management provider to present and track system-level details about the value » An instance of State contains a single user- specified value

15 » Exposes only entries with a given key and value type in StateConnection » Convenience interface - clients deal directly with user- specified key and value types, no need to see containing structures such as Key and StateContainer » Contains: ˃globally unique key ˃value of a user-defined type ˃tracking information » Key ˃User defined + GUID » Values ˃Java type (e.g. Person class) ˃Streams? ˃XML?

16 » Behaviour offered by a provider ˃Durability ˃Transactions ˃Isolation and concurrency control » Supported by configuration » Described by a unique name

17 State Connection State Map State Connection Factory State Management Registry 0..* 1 1 1 State Container 1 0..* 1

18 State Connection Factory Client Application State Management Registry Find State Connection Factory Get State Connection Create State Connection Create

19 Key Dog Client Application State Connection new (“fido”, “Sheperd”) createKey(fido.getUniqueName(), String.class, Dog.class) put(fidoKey, fido) fidoKey StateContainer fidoState get(fidoKey) fido copy State Container create Store Retrieve

20 Dog Client Application State Connection new (“fido”, “Sheperd”) getStateMap(String.class, Dog.class) put(fidoKey, fido) StateMap dogMap get(fidoKey) fido copy State Map createStore Retrieve

21 Client State Management API (350) Data Grid API (347)

22 Client State Management API (350) Data Grid API (347)

23 Client State Management API (350) Data Grid API (347) State Management API (350)

24 » Provider ˃Implement the specification ˃Innovate with new capabilities » Administrator / Developer ˃Configure the state connection factory ˃Make a State Connection available » Developer ˃Use State Connection and State to accelerate development

25 » Comparing state persistence: ˃Relational / SQL ˃Object ˃NoSQL » Target products ˃Application Server ˃Android

26

27

28

29

30

31

32 » Typing ˃Strong versus weak » Is StateMap necessary / desirable?

33 » Expected milestones » How to provide feedback

34

35 » Java State Management Wiki http://java.net/projects/java-state-managemenhttp://java.net/projects/java-state-managemen » JavaOne presentation http://java.net/downloads/java-state-managemen/2011-J1- Java-State-Management-v2.ppthttp://java.net/downloads/java-state-managemen/2011-J1- Java-State-Management-v2.ppt » The spec http://www.jcp.org/en/jsr/detail?id=350http://www.jcp.org/en/jsr/detail?id=350


Download ppt "Overview and update Pete Raymond. » Purpose of this presentation » Background » JSR Requirements » Key concepts » Relationship to other standards/approaches."

Similar presentations


Ads by Google