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
Confidential & Proprietary Information of Digital Focus
J2ME and the J2ME and the IVY PlatformIVY 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
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…
Confidential & Proprietary Information of Digital Focus
Our ClientsOur Clients
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
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
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
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
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
Confidential & Proprietary Information of Digital Focus
DevicesDevices
RIM 5180
Nextel I85s
Nokia 9120
Kyocera Sprint
Confidential & Proprietary Information of Digital Focus
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
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
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?
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
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)
Confidential & Proprietary Information of Digital Focus
Service-oriented ArchitectureService-oriented Architecture
core IVY
core IVY
core IVY
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
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
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