Fornari SyncML JMDF First Meeting

2,782 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,782
On SlideShare
0
From Embeds
0
Number of Embeds
51
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Fornari SyncML JMDF First Meeting

  1. 1. Developing Mobile JZMET" Applications With Sync4j and SyncML Stefano Fornari Sync4j Project Manager, Funambol CTO Funambol http: //www. sync4j. org Session TS-8592 á 2-: 9 4.: / java. sun. com/ iavaone/ sf . . JaVa'
  2. 2. Javaone aux : nu man im Ino-w r -øwuuw cant' ih: null: I' : J 'lililâ : inlärning : mf 'mm ill: i Illâl in Ill' t: lvli fill: At_ iylinzrlil ll "uuwlulv i'm | v* t mailar lll/ ii" fiina' ma: G-lKYIllilllfIJlTvR» Tmlzs lll; Ölävlällilgrlâll : ir “tagit m nu Il i' play-ni' . flvlfê oil_ llmlfl ll i: »i nu, lmuhm i A2
  3. 3. Agenda Mobile Applications Mobile Application Development Data Synchronization Device Management SyncML DS/ DM The Java Technology Answer (Sync4j, JSR 230, JSR 246) ; “.| .|, "'. [ j-l;
  4. 4. Agenda Mobile applications: Mobile Application Development Data Synchronization Device Management SyncML DS/ DM The Java Technology Answer (Sync4j, JSR 230, JSR 246) ; “.| .|, "'. [ j-l;
  5. 5. Mobile Applications The user view A mobile user wants to work - ln any environment and condition - With the same data on different devices - Efñciently (no Iatency, no clicks) - Without configuration/ upgrades hassle f , a i - With reliable applications å?
  6. 6. Many users Security Consistency Reliability Mobile Applications The enterprise view Reduce management hassle Reduce cost of ownership (support, connection) . H FILMEN FLY' Enterprise Data Center Fl n' (f) v, . ; O bl' . f *.57 C ; JJ 5”, .' , v . - 'rie-J' in l . - Kg. . L* 'i l , AO '. l, t, _il fi] j ”o 'g (L: I 'P l : -> * J77; L, 'i o" . l s. , g f* -r . KJ; i
  7. 7. Application Examples - increasing number of scenarios: many users same data, same user many devices, many users many devices. .. - PIM synchronization and backup - Address book, calendar, e-mail - Mobile ñeld work force - Sales force automation - Real Estate agents - Mobile/ Distributed physical devices - Vending Machine Automation - Cars
  8. 8. Agenda Mobile Applications ' l 'd _ . - W 'n . ,W . __'. wiooi 3 . '-:3;3llce-, |o. - , evelcpl len, Data Synchronization Device Management SyncML DS/ DM The Java Technology Answer (Sync4j, JSR 230, JSR 246) ; tur-l j-l;
  9. 9. Mobile Applications Development Mobile Application Development Data Synchronization Application Provisioning Device/ Application Management Need for a comprehensive mobile application platform '“. »Pl l*| ^.
  10. 10. Agenda Mobile Applications Mobile Application Development Data Synchronization Device Management SyncML DS/ DM The Java Answer (Sync4j, JSR 230, JSR 246)
  11. 11. ;sl-Pl l'| '. Data Synchronization Data synchronization is the process of making two sets of data look identical Which means Exchange data modifications j: Conflict resolution D 1 . . atastc: * 0:a? ” Synchronization Protocol Features Deñne a method for establishing a Synchronization session and communicating modifications Record naming and identification Define protocol commands
  12. 12. Agenda Mobile Applications Mobile Application Development Data Synchronization Device Management SyncML DS/ DM The Java Answer (Sync4j, JSR 230, JSR 246)
  13. 13. Device Management Conñgure new devices Upgrade software on devices Upload new applications Perform backup and restore Mobile asset management w Collect data from the devices Control devices remotely implement service discovery and provisioning Disable devices Du; cc lvlanagcniciwt Semi: ltla _cmcni Pluto. ; sl-Pl l'| '.
  14. 14. Agenda Mobile Applications Mobile Application Development Data Synchronization Device Management Cyncwi _ DC/ Cwi The Java Answer (Sync4j, JSR 230, JSR 246) ; tur-l j-l;
  15. 15. _gtlirl l'| '. SyncML DS/ DM (Now OMA DSIDM) Bindings and protocols General purpose commands and data synchronization Application specific data formats Contacts Calendar Email Device parameters
  16. 16. ;sl-hl 1:1". OMA DS/ DM Devices Alcatel: Alcatel One Touch 715 Ericcson: T39, T68 Motorola: V300, V400, V500 Nokia: 3300, 3595, 3650, 3660, 6108, 62xx, 6600, 6800/20, 7200/50/50i/70/80, 7650, 9500, N-Gage, ... Panasonic: X70 Siemens: M55, M56, S55, S56, SL56, C65, SX1 Sony Ericsson : P800, P900, 700, 700i, T68i, T610, T618, T630, 2600, Z1010
  17. 17. Data Synchronization Session Client sewe, - l l Sync lnitialization Modifications Client Mapping ; ti-Pl l'| '.
  18. 18. /O u I än; Data Synchronization Example m) . . <SyncML> <SyncHdr> _ <VerDTD>1 . 1</ VerD'1'D> °°"l'"U°--- <VorProto>SyncML/1.1</ VerProto> <SassionID>12345678</ SossionID> <MsgID>1</ MsgID> <Target> <LocURI>http: //sync. sync4j. otg</ LocURI> <! -- the servar --> </ Targot> <Sourcc> <LocURI>sc-pim-demo</ LocURI> <! -- the client --> </ Source> <Crod> <Meta><Type xmlns= "syncml: metinf">syncml: auth-basic</ Type></ Meta› <Data>z3Vlc3Q6z3V1c3Q= </Data> </ Cred> </ SyncBdr> ? CCS JaiusOiize ' *Zuiilz: 'e: '*<: .i< Se): u' B59? 'F
  19. 19. rO. “i Data Synchronization Example (24) ä. t <SyncBody> <A1ert> _ <CmdID>1</ CmdID> °°"l'""°--- <Data>200</ Data> <It0m> <! -- addrossing info: servar db namn --> <Target><LocURI>addressbook</ LocURI></ Target> <! -- addrossing info: client db namn --> <Sourco><LocURI>addrossbook</ LocURI></ sourco> <Mota> <Anchor xmlns= "syncml: metinf"> <! -- used to discover out-of-sync states --> <Last>1115113845054</ Last><Noxt>1115113877719</ Noxt> </ Anchor> </ Meta> </ Item> </ A1ort> <Fina1/> </ SyncBody> </ SyncML> ? CCS Jiáviiolllf ' *Zuiilz: 'e: '*<: .i< : ma: u' B59? ' E
  20. 20. Data Synchronization Example (34) <SyncBody> conünuem <Status> <CmdID>1</ CmdID><MsgRef>1</ MsgRef><CmdRef>0</ CmdRef> <Cmd>SyncHdr</ Cmd> <TargetRef>http: //sync. sync4j. org</ TargetRef> <SourcoRof>sc-pim-domo</ SourcoRof> <Data>212</ Data> <! -- credentials accepted! --> </ Status> <Status> <CmdID>2</ CmdID><MsgRef>1</ MsgRef><CmdRøf>1</ CmdRøf> <Cmd>Alert</ Cmd> <TargetRef>adressbook</ TargetRef> <SourceRnf>addressbook</ SourceRef> <Data>200</ Data> <! -- OK! --> <Item> <Data><Anchor><Next>1115113877719</ Next></ Anchor></ Data) </ Item> </ Status> ? CCE Jisvuüiize ' *fjuiilu'e: '*c. i- Sen. u' B59?
  21. 21. Data Synchronization Example (44) conünue". <Alert> <CmdID>4<ICntdID> <Data>200</ Data> <! -- two-way sync acknowledgedl --> <Item> <Targot><LocURI>addrossbook</ LocURI></ Targot> <Source><LocURI>addressbook</ LocURI></ source) <Mbta> <Anchor xm1ns= "syncml: metinf"> <Last>1115113846881</ Last> <Next>1115113877869</ Next> </ Anchor) </ Meta> </ Item> </ Alert> <Final/ > </ SyncBody> ? CCS JÃSVHOIIU i Cunlure: "c. z< Seas. u' B59? ? i
  22. 22. Data Synchronization Example (54) <SyncBody> . .. <! -- status commands --> <Sync><CmdID>3</ CmdID> <! -- client side changes --> <Target><LocURI>addressbook</ LocURI></ Target> <Source><LocURI>addressbook</ LocURI></ Source> <Replace><CmdID>4</ CmdID> <! -- one client side change --> <Meta xmlns= "syncml: metinf"> <Type>text/ x-vcard</ Type><Format>b64</ Format> </ Mata> <Item> <Source><LocURI>1</ LocURI></ Source> <! -- LUID --> <Data>. .. base 64 encoded content . ..</ Data> </ Item> </ Replace) </ Sync) <Fina1/> </ SyncBody> ? CCS Jiáviiolllf ' *Zuiilu'›: "<: .i< Se): u' B59?
  23. 23. Data Synchronization Example (e4) <SyncBody> . <! -- status commands --> <Sync> <! -- server side changes --> <cmdID›4</ cmdID> <Target><LocURI>addressbook</ LocURI></ Target) <Source><LocURI>addressbook</ LocURI></ Source> <Add> <! -- there is a new item on the server --> <CmdID>5</ CmdID> <Meta> <Format>b64</ Format><Type>text/ x-vcard</ Type> </ Mata> <Item> <! -- GUID --> <Source><LocURI>l115124233411</ LocURI></ Source) <Date>. .. base 64 encoded content . ..</ Data> </ Item) </ Replace) </ Sync> <Final/ > </ SyncBody> ? CCS Jiáviiolllf ' *Zuiilu'›: '*<: .i< Seas. u' B59? 51"!
  24. 24. Data Synchronization Example (74) <SyncBody> . .. <! -- status commands --> <Map> <! -- LUID-GUID mappings --> <cmdID>4</ CmdID> <Target><LocURI>addressbook</ LocURI></ Target> <Source><LocURI>addressbook</ LocURI></ source> <MapItem> <! -- LUID-GUID mapping for the added item --> <Target><LocURI>1115124444933</ LocURI></ Target) <Source><LocURI>5</ LocURI></ Source> </ MapI teIn> </ Map> <Final/ > </ SyncBody> ? CCS JÃSVHOIIU i Cunlure: "c. z< Seas. u' B59? ? J
  25. 25. ;sl-Pl l'| '. Device Management Session Client server Management lnitialization (Devlnfo) Management commands and status notification
  26. 26. se; Device Management Example (1-5) . . <! -- The client always sends its . /Devlnfo management object in the first message to the server --> conünuen_ <syncML› <SyncHdr> <VerDTD>1.1</ VerDTD> <VerProto›DM/1.1</ VerProto> <SessionID>1e</ SessionID> <MsgID>l</ MsgID> <Target><LocURI>http: //d. sync4j. org</ LocURI></ Target) <Source><LocURI>scts</ LocURI></ Source> <Cred> <Meta xmlns= 'syncml: metinf'› <Format>b64</ Format><Type>syncml: auth-basic</ Type> </ Meta› <Data>VKv1dzYoaP6dGWCLj27aBg= =</ Data) </ Cred> </ SyncHdr> ? CCS JÃSVHOIIU i Cunlure: "c. i< Seas. u' B59? ? F
  27. 27. Device Management Example (2-5) <SyncBody> <Alert><CmdID>1</ CmdID><Data>120l</ Data></ A1ert> <Replace> <CmdID>2</ CmdID> <Item> <source><LocURI>. /Devlnfo/ Lang</ LocURI></ source> <Data>en-us</ Data> </ Item> <Item> <Source><LocURI>. /Devlnfo/ DmV</ LocURI></ Source> <Data>4.0</ Data> </ Item> <Item> <Source><LocURI>. /Devlnfo/ Mod</ LocURI></ Source> <Data>scts devman</ Data› </ Item> ? CCS JÃBVHOIII! ' Cul1lure: "<: .i< conünuen. Seas. u' B59?
  28. 28. Device Management Example (3-5) *Öaâ* <1 tñm> continue. .. <Source><LocURI>. /DevInfo/ Man</ LocURI></ Source> <Data>SyncML</ Data> </ Item> <Item> <Source><LocURI>. /Devlnfo/ DevId</ LocURI></ Source> <Data>scts</ Data> </ Item> </ Replace> <Final/ > </ SyncBody> </ SyncML> ? CCS JiavuOiiz: i Cunlurew-; ze Sbäfvb' B59? ? få
  29. 29. Device Management Example (4-5) <SyncBody> . .. <! -- status for commands --> <! -- Get the content of . /DevDetail/ Fwv --> <GOt> <cmdID›4</ cmdID> <Item><Target><LocURI>. /DevDetail/ FwV</ LocURI></ Target></ Item> </ Get> <! -- Display a message on the device screen --> <iuert›<cuidID›5</ cmdm› <Data>1100</ Data> <Item><Data>MINDT=5&MAXDT=15</ Data></ Item) <Item><Data>Sync4j DM Demo</ Data></ Item> </ Alert> <Final/ > </ SyncBody> ? CCS Jiáviiolllf ' *Zuiilu'›: '*<: .i< Seas. u' B59? ? âê
  30. 30. Device Management Example (5-5) “C5 <SyncBody> . <! -- status commands --> <! -- The result from the client --> <Results> <CmdID>4</ CuidID> <CmdRef>4</ CiudRef> <Item> <Source><LocURI> . /DevDetail/ FwV</ LocURI></ Source> <Data>1.0</ Data> <! -- firmware version is 1.0 ! --> </ Item> </ Results> <Fina1/> </ SyncBody> ? CCS JiavuOiiz: i Cunlurew-; ze Sbäfvb' B59? EC
  31. 31. Agenda Mobile Applications Mobile Application Development Data Synchronization Device Management SyncML DS/ DM 'I 3 i. EVE? .'-“. i'l$("'3i' (CyñU-Zi, JC -': 233, . ..: af: 24:3) ; em-i l-i;
  32. 32. The Java Answer: Sync4j Platform - A complete and scalable platform addressing all aspect of the mobile application development - Data Synchronization - Application Provisioning - Device Management - Multi-platform: runs on Linux, Unix and Windows - Multi-device: runs on Java Phones, PocketPC, BlackBerry, Palm and iPod - Multi-language: support for Java and C++ - Based on open standards
  33. 33. Sync4j Server Architecture (DS) E) 7 'i' ' Sync4j or other SyncML clienls Administratâi Console SyncML DS |8UJ8iU| *ä* Source (klang ync Source | kedaøler/ ync Source Adapler/ ync Source Ada ter I Sync ”tama Ada ter ' Database Server i Directory Server Calendar Server i Exchange Server
  34. 34. Sync4j Server Architecture (DM) u] SyncML DM ii CB Sync4j Third Party Administration Administration Console Console . vc-sa limona'tunnare-mi Ses-uu" 5592 n. : Management Processor Sync4j Server Sync4j or other SyncML clients
  35. 35. ;sl-Pl l'| '. The Java Answer-JSR 230 (1-4) JSR 230: Data Sync API Status: In progress Early draft review available Specification lead Jens Paetzold (Siemens AG) In the expert group IBM, PaImSource Inc. , Sun Microsystems Inc. , Cap Gemini, Stefano Fornari, Insignia Solutions, Motorola, Samsung Electronics Corporation, Symbian Ltd, Cingular Wireless, Nokia Corporation, Siemens AG A J2ME optional package for CLDC and CDC configurations
  36. 36. ;sl-Pl l'| '. The Java Answer-JSR 230 (24) API covering the following aspects Management of synchronization sessions (starting a session from the client, notiñcation of a session initiated from the server) Synchronization operations Registration of applications for Synchronization (to enable notiñcation) No reference implementation available at the time of writing
  37. 37. The Java Answer-JSR 230 (34) ? CCS Jai-: sOni: ' Cunluretvczu Sessruf* B59?
  38. 38. ii . z-, mI)'r. *-1(nrr', .1a1.a'. ,rr l : liite Modlrlcatlon lIIl-r'i. :,: C IlcntP Iugln ? milr›rri-_)l»l['x3lii llll, fflv'<. ul. >.. :wil igglala : xl-ll . vu-IJ [liv-r *Gilli* i›rrin*1,met= I.r: - wtr r1,(1.1i.1'5.t›: U : amd = ›-I›-i- I* 'allflfrr "Ijin ; vid rng-rigriijni_ (ngj-; tjilhl-, j . . LlLll. Jl| D ': viriii_l_i. ','. '.il qetVsisl , ;.›*›_)Iw. u.4iIL' ': '.lIIII_l . :-'. r IIJ - -rtvlu_r_1ilir_dl«_: i J _›-_-_›_ _ Hill: ) i“_'l': ll l»l__l('i. .1[›= _vn[: ' ll-nuljlj; Lwlr (gl) +v__“-tL'-; ir-v_*t. r . Tue-r JäZDiJH-J" . ITFIH 'N41 . r- TJ +)T| '›-'›rlllI”II"/ ii' ? m 1 4--__: -l. ti_w.4.l“›- l, f1i['*EiillI_J +-'7'-liø" illlñlmrl, pa: 'inr I. Etrlr: .old w' r »reg ; i-»rllugiiri Lllugllll Client? i_. _Jli'(, lJ. <il. iLti5ev Aili: :till ; JHEIJÃJLE “_-t'ui'__', rr “Jvajinierfltjin rligirnzf + ;1.ivli; 'i(. «:. w_n_l (_l ef. .'_-. '.mig u. " J PIWYFIIQIIT : n f. F(; ñ|
  39. 39. ;st-Pl I'| '. The Java Answer-JSR 246 (1-2) JSR 246: Device management API Status In-progress Specification lead Jens Paetzold (Siemens AG) ln the expert group IBM, Sun Microsystems Inc. , Stefano Fornari, Motorola, Nokia Corporation, Siemens AG, Ericsson AB, Vodafone Group Services Limited. T-Mobile International AG and Co. KG A J2ME optional package for CLDC The API's focus is on the widely available Device Management protocols SyncML/ OMA DM and WAP/ OMA Client Provisioning
  40. 40. The Java Answer-JSR 246 (2-2) JSR 246: High level architecture J2ME appllcatlon JSR 246 Nam” Native Client initiated session DM 7799 DM A ent i? ? Storage g dit-LI Server initiated session ; st-Pl I'| '.
  41. 41. The Java Answer: Sync4j J2ME Client API (1-4) Basic Data Synchronization functionality Designed for DS and DM It will integrate with JSR 230-246 when available Sync Source Mwet Sync Manager Device Manager ; st-Pl I'| '.
  42. 42. ;st-Pl l'| '. The Java Answer: Sync4j J2ME Client API (24) Host Sync Sync Sync Application Manager Source Server I» sync() beglnsynq) II- getlA l/ NewlDeIetedfUpdated]Synclite-m() P . i Synclteml] [removelsellsyncllemu -ll commiisynco
  43. 43. Java0ne aux : nu man im Ino-w v -øwuuu . km-Em- : l!l? *:*: '|": l,'êh*? äâJ-Vá! win-ull - â-davlt-t- --L-JI: i 6373M61?! - åvjüt-? l ialojglel-Jzr 'EL-akta midietjad »i ti; I, iiiirjhiøi i A2 ; nl-JMG : sjunde-Lit: ;unazrauuüuzlj; iaCl I' 499-1974054; r : i:-i? +s_: ):1=›s-J: Is›: i'ø4=“N33 siaizvmr; 31:13. : i -c ; Relçllll v gi91:s_g; ›y_4-J_: xa›_-453.»'Lau-ii : tele-Mil ' elina-auf_- -* gi: t-1:3_g_; )y_«g_gi; mg-tágti råltlâlêiäll* . l assist-lira: = giai! :!_9_: l§5ex; xa›s®'tiøågmelâlslä : s : ›5-›: i+›_øi^-›3:+< s iiac- ålar-flN-falf-[kâ-*Cl v gijügláiäliükdglliåüLWk summa; 31,91. : :av: 303.1 I. . _: ›.<9;Ia! :l'93205*-aglttrnlågl_; !i! lêtül. ;Helgüw l r C-Iitavgt-äl-ii J: mrjçl. ]i lj gu-jzrasii-üeisximii-ulâ4äx : ltiézlsâigvdvi elêteusceii-JSI - j' (stugor-ih. ) b: ,qltllç : få apan-mils; ,ciietugiafigiirjä r' 'll l ; x-tqgra-iiøfhwx. gnü-CÅQQÖE jlllulolily. . : au-ioi-il-. n 7 43912 * j . ;›5-)Z: ra›: ii-üe›= wi: »_ii-c 144,253' gud-Jen. mimmi' , aicl-, lvlriglji -. ""' ' "' ° “WE
  44. 44. Java0ne aux : nu man im Ino-w v -øwuuw ; teve-Jia 'hihi' stjntelilslenrlfádüi' 'IÖDAEElÃl - r . mer Lllfiyszizi-“ltjl i ; tüljrlw visit-Zl *Just-Cl ; fur-ich -. ' r. _ si 'af-JA E. C. I* r” ; xnøjvr-. iåiu »lotta-il . -'| l0l ”l l , _ . ( , Em li m' “ . - r(NL(uHUL'NI-VW3, sig; ueiblaivm; (autieteieng) l . g i 9931:131 : låtarna: iiL-a Sielysütl? ) piga; _gL-(ozåig-*Vgq-. G l sivu-ICQ' -c : fjägül (aázisiapêüreiig- al 930.49): ,'v, t=_tr. lilir3.r. lgl »i tiil, iiiiuhiøi i A2
  45. 45. Summary - Mobile application development = DS+AP+DM - Needs for a comprehensive platform such as Sync4j - New technologies (JSR 230/246) will be added to J2ME to support the new paradigm
  46. 46. For More Information Sync4j http: //www. sync4j. org Open Mobile Alliance (OMA) http: //www. openmobilealliance. org JSR 230-Data Sync API http: //jcp. org/ en/ jsr/ detail? id=230 JSR 246-Device Management API http: //jcp. org/ en/ jsr/ detail? id=246 b - _ i ml l 1;
  47. 47. :mr: .i. l* 1ill'l'll^ll| " a. " w fl V. 3 4' lavasun. com/ lavaone/ sf
  48. 48. Submit Session Evaluations for Prizes! Your opinions are important to Sun You can win a $75.00 gift certificate to the on-site Retail Store by telling Sun what you think! Turn in completed forms to enter the daily drawing Each evaluation must be turned in the same day as the session presentation Five winners will be chosen each day (Sun will send the winners e-mail) Drop-off locations: give to the room monitors or use any of the three drop-off stations in the North and South Halls Note: Winners on Thursday, 6/30, will receive and can redeem certiticates via email. : nu: Cunlvz-ervzi' 5135511' Fib? ?
  49. 49. Developing Mobile J2ME” Applications With Sync4j and SyncML Stefano Fornari Sync4j Project Manager, Funambol CTO Funambol http: //www. sync4j. org Session TS-8592 á *L-z 9 4.: / java. sun. com/ iavaone/ sf . . JaVa'

×