20
Confidential & Proprietary Information of Digital Focus J2ME and J2ME and the IVY the IVY Platform Platform

J2ME and the IVY Platform

  • Upload
    meena

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

J2ME and the IVY Platform. Agenda. Digital Focus J2ME Quick overview What’s in & what’s out Networking capabilities IVY & JXTA Why and what IVY Architecture and Design JXTA protocols and components. Digital Focus. Founded in 1995 Headquartered in Herndon, Virginia - PowerPoint PPT Presentation

Citation preview

Page 1: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

J2ME and the J2ME and the IVY PlatformIVY Platform

Page 2: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

AgendaAgenda

Digital FocusDigital Focus

J2MEJ2ME• Quick overviewQuick overview• What’s in & what’s outWhat’s in & what’s out• Networking capabilitiesNetworking capabilities

IVY & JXTAIVY & JXTA• Why and whatWhy and what• IVY Architecture and DesignIVY Architecture and Design• JXTA protocols and componentsJXTA protocols and components

Page 3: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Digital FocusDigital Focus

Founded in 1995Founded in 1995

Headquartered in Herndon, VirginiaHeadquartered in Herndon, Virginia

Long history of excellence with Java Long history of excellence with Java technology…technology…

Page 4: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Our ClientsOur Clients

Page 5: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

J2MEJ2ME

J2ME – Java 2 MicroEditionJ2ME – Java 2 MicroEdition• Java for small, mobile and embedded devicesJava for small, mobile and embedded devices• Configurations (horizontal)Configurations (horizontal)

• CLDC, CDC • Profiles (vertical)Profiles (vertical)

• MIDP, Foundation, Palm

Page 6: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

J2ME ArchitectureJ2ME Architecture

CLDC CLDC ConfigurationConfiguration• KVM, networkingKVM, networking• Lowest common Lowest common

denominator for denominator for portabilityportability

• No optional No optional elementselements

MID profileMID profile• GUIGUI• RMSRMS• TimersTimers• LifecycleLifecycle

Page 7: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

What’s missingWhat’s missing

Reduced number supportReduced number support• float, double primitivesfloat, double primitives• Double, Float classesDouble, Float classes

Extendable UI componentsExtendable UI components• Final High-level components Final High-level components • New components subclass CanvasNew components subclass Canvas

Lacks:Lacks:• JNIJNI• Sound APISound API• SerializationSerialization• ReflectionReflection• User defined class loadersUser defined class loaders

Page 8: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

NetworkingNetworking

Only HTTP is required with CLDCOnly HTTP is required with CLDC• Not great for mobile wireless solutionsNot great for mobile wireless solutions• Stateful – tough with mobile IPStateful – tough with mobile IP• Stream orientedStream oriented

Generic Connection FrameworkGeneric Connection Framework• Opens protocol support (sockets, serial, Opens protocol support (sockets, serial,

datagram,…)datagram,…)• Runtime binding to protocolRuntime binding to protocol

J2ME generally designed as a J2ME generally designed as a “client”“client”However:However:• Can be a Datagram serverCan be a Datagram server• Interfaces exist for socket servingInterfaces exist for socket serving

Page 9: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

““Designing for small places”Designing for small places”

Device resources limit OO designDevice resources limit OO design• Use objects judiciously – consider patterns like Use objects judiciously – consider patterns like

FlyweightFlyweight• Use lazy instantiation where feasibleUse lazy instantiation where feasible

Design tradeoffs:Design tradeoffs:• Classes, methods (encapsulation vs space)Classes, methods (encapsulation vs space)• Inheritance (saves space, increases cpu)Inheritance (saves space, increases cpu)• Names (maintainability vs space)Names (maintainability vs space)

• Use an obfuscator

OptimizationsOptimizations• Reuse objects; avoid needless re-instantiationReuse objects; avoid needless re-instantiation• StringBuffer vs StringStringBuffer vs String• Use String wrappers when hashingUse String wrappers when hashing

Page 10: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

DevicesDevices

RIM 5180

Nextel I85s

Nokia 9120

Kyocera Sprint

Page 11: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Page 12: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

What is it?What is it?

Lightweight wireless platform for Mobile to Lightweight wireless platform for Mobile to Mobile (M2M) collaborationMobile (M2M) collaboration• Every Peer is a client, server and routerEvery Peer is a client, server and router

Enables rapid developmentEnables rapid development• Easy, low cost entryEasy, low cost entry• Provides API for locating, communicating with and Provides API for locating, communicating with and

sharing services between groups/peers sharing services between groups/peers • Supports Web-enabled start-up and authenticationSupports Web-enabled start-up and authentication

Open standards-basedOpen standards-based• Web Services, JXTAWeb Services, JXTA• XMLXML

Built for wireless JavaBuilt for wireless Java• J2ME (MIDP/CLDC)J2ME (MIDP/CLDC)• Personal JavaPersonal Java• CVM & Foundation ProfileCVM & Foundation Profile

Page 13: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Why IVYWhy IVY

Growing demand for P2P applicationsGrowing demand for P2P applications• Groove NetworksGroove Networks• Games, Instant messagingGames, Instant messaging• Napster, GNUtellaNapster, GNUtella• Mesh NetworksMesh Networks

Technology is availableTechnology is available• Programmable, wireless devicesProgrammable, wireless devices

• Nextel’s I85• RIM’s 5820 J2ME/GPRS support• Nokia 9210 (personal java and MIDP)• RIM 8150

• Over the air provisioningOver the air provisioning• Investment in 2.5G infrastructureInvestment in 2.5G infrastructure

Network providers want to increase data usageNetwork providers want to increase data usage

Page 14: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

What & Why not JXTA?What & Why not JXTA?

What is JXTAWhat is JXTA• www.jxta.orgwww.jxta.org• Mainly 6 protocolsMainly 6 protocols

Is IVY compliant with JXTA? No, Is IVY compliant with JXTA? No, but almostbut almost

• Uses JXTA protocolsUses JXTA protocols• JXTA requires TCP/IP and/or HTTP;JXTA requires TCP/IP and/or HTTP;• Datagram/UDP not supportedDatagram/UDP not supported

Why use DatagramsWhy use Datagrams• Optimal for wireless networks.Optimal for wireless networks.• Network providers use datagrams under WAP, HTTP Network providers use datagrams under WAP, HTTP

and sockets.and sockets.

Why not use JXME (JXTA’s J2ME project)Why not use JXME (JXTA’s J2ME project)• Very early stagesVery early stages• Uses TCP/Http and centralized “super server”Uses TCP/Http and centralized “super server”• Polling architecture. Not really P2P?Polling architecture. Not really P2P?

Page 15: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

JXTAJXTA

High-level abstractionHigh-level abstraction• Hides complexity of physical networkHides complexity of physical network• Single uniform addressability for all peers Single uniform addressability for all peers • Simple model for discovery, addressing and service Simple model for discovery, addressing and service

sharingsharing

Based on JXTA – 6 protocolsBased on JXTA – 6 protocols• Peer DiscoveryPeer Discovery• Peer ResolverPeer Resolver• Peer InformationPeer Information• Peer MembershipPeer Membership• Pipe BindingPipe Binding• Endpoint routingEndpoint routing

XML messagesXML messages• TextText• Binary Binary

1 Request & 1 Response1 Request & 1 Response• StatelessStateless

Peer

Advertisement

Endpoint Pipe

PeerPeer

Group

Service

Page 16: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Conceptual ArchitectureConceptual Architecture

APIsAPIs• Peer , groupsPeer , groups• Services, AdsServices, Ads• PipesPipes

Protocols & FormatsProtocols & Formats• JXTA XML & binaryJXTA XML & binary• SOAP/WSDLSOAP/WSDL

MessagesMessages• Full duplexFull duplex• DatagramsDatagrams• HTTP,HTTPSHTTP,HTTPS

Cross PlatformCross Platform• J2MEJ2ME• J2SEJ2SE

Messages

Protocols and Formats

PipesServices

Ads

Peers and Groups

User Interface

Web Svcs(soap,wsdl)

Page 17: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Service-oriented ArchitectureService-oriented Architecture

core IVY

core IVY

core IVY

Page 18: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Key Design DriversKey Design Drivers

Network connectivityNetwork connectivity• Asynchronous API with listenersAsynchronous API with listeners• Datagrams with reliable upper levelDatagrams with reliable upper level

Minimize server dependencyMinimize server dependency• Peer Group advertisementsPeer Group advertisements• Get credentialsGet credentials

Small footprintSmall footprint• Implement “needed” protocolsImplement “needed” protocols• 30K un-obfuscated30K un-obfuscated

JXTA compliantJXTA compliant

Page 19: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Java PackagesJava Packages

Ivy.api – Just interfaces and Ivy.api – Just interfaces and factories for services and abstracts factories for services and abstracts (pipes, messages, peers, (pipes, messages, peers, endpoints)endpoints)

Ivy.impl – Implementations for the Ivy.impl – Implementations for the ivy.api packageivy.api package

Ivy.util – constants and static Ivy.util – constants and static methodsmethods

Ivy.net – Differs whether J2ME or Ivy.net – Differs whether J2ME or J2SEJ2SE

Ivy.exceptionIvy.exception

Page 20: J2ME and the IVY Platform

Confidential & Proprietary Information of Digital Focus

Contact InformationContact Information

Digital Focus, Inc.Digital Focus, Inc.13825 Sunrise Valley Drive13825 Sunrise Valley DriveSuite 220Suite 220Herndon, VA 20171Herndon, VA 20171www.digitalfocus.comwww.digitalfocus.com

Tom WhitcombTom WhitcombChief Technology OfficerChief Technology [email protected]@digitalfocus.com703.561.5884703.561.5884ororDave HoffmanDave HoffmanVice PresidentVice [email protected]@digitalfocus.com703.561.5963703.561.5963