Java Technology for Internet Communications - PowerPoint PPT Presentation

1 / 59
About This Presentation
Title:

Java Technology for Internet Communications

Description:

Java Technology for Internet Communications Phelim O Doherty Software Architect Sun Microsystems Mudumbai Ranganathan Computer Scientist National Institute of ... – PowerPoint PPT presentation

Number of Views:98
Avg rating:3.0/5.0
Slides: 60
Provided by: JorgeB155
Category:

less

Transcript and Presenter's Notes

Title: Java Technology for Internet Communications


1
Java Technology for Internet Communications
  • Phelim ODoherty
  • Software ArchitectSun Microsystems

Mudumbai Ranganathan Computer Scientist National
Institute of Standards and Technology (NIST)
2
Overall Presentation Goal
Learn the technologies available for IP
Communications networks that enable 3rd party
application development.
B E G I N N I N G
3
Speakers Qualifications
  • Phelim ODoherty is a Internet Communications
    Technology Evangelist at Sun Microsystems.
  • Phelim ODoherty is the specification lead for
    JSR 32 JAIN SIP and is an expert on JSR 116 SIP
    Servlet and JSR 180 SIP for J2ME.
  • Mudumbai Ranganathan is a Computer Scientist
    at NIST.
  • Mudumbai Ranganathan is the primary author
    of NIST-SIP a public domain implementation of JSR
    32 JAIN SIP and serves as an expert on JSR 125
    and JSR 141.

B E G I N N I N G
4
Fact
IP Communications will NOT be a remold of the
old communications network, if YOU start
implementing Java services that will run on the
network.
B E G I N N I N G
5
Presentation Agenda
  • Overview of IP Communications
  • Java SIP Containers
  • SIP for J2ME
  • Overview of JAIN SIP
  • Conclusion

B E G I N N I N G
6
IP Communications
7
Evolution to IP Communications
Circuit-Switched
PROPRIETARY
Services Applications
Call Control Switching
TransportHardware
  • Solutions come from a single vendor that supplied
    everything in one proprietary box software,
    hardware and applications
  • Customers are locked-in to their vendorno room
    for innovation, expensive to implement and
    maintain

8
Why Java and IP Communications?
IP Comms
JAVA
Developer Base Platform Indep.
Vendor Indep.
Culture Open Interoperable Standard Acceptance Mo
mentum Flexible Extensible
Internet model Innovative
Converged Services Scalable

9
Sample Network Architecture
SIP for J2ME
SIP for J2ME
J2EE
JAIN SLEE
Visited Network
SIP Servlet
OSA/OMA Node
OSA/OMA Node
P-CSCF
Core Network
Untrusted Network
HSS
JAIN SIP
SIP Servlet
MGCF
S-CSCF
I-CSCF
SIP Servlet
JAIN SIP
JAIN SLEE
JAIN SLEE
ApplicationServer
SIP for J2ME
MGW
ApplicationServer
ApplicationServer
Home Network
10
Varieties of IP Communications Containers
THIRD PARTY Converged Services
SLEE App
JSP App
EJB App
SIP App
Containers in yellow boxes
SLEE
EJB
HTTP Servlet
SIP Servlet
SIP, Content-based Charging, Call Control, User
Interaction, Messaging, Mobility
CORE NETWORK Communications Services Call
Control Servers, Proxy Servers, Location,
Presence and Messaging
SIP App
SIP App
SLEE App
SLEE App
SLEE
SIP Servlet
INAP, TCAP, SIP
SIP
11
Why are Communications Applications Converging on
Java Containers?
  • Telco apps moving to component based
    architectures
  • Desire to use Standard, Off-the-shelf container
  • Write-once, run-anywhere
  • Container provides important infrastructure
    services
  • Higher level abstractions for State management,
    Transactions, Security, Resource pooling,
  • Focus on core value-add application logic
  • Leverage large community of Java developers
  • Leverage enterprise development tools, test
    suites,
  • Time to market and reduced development cost

12
Java SIP Containers
13
SIP Execution Environments
SIP App
SIP App
SIP App
SIP Servlet
EJB
JAIN SLEE
SIP App
JAIN SIP
JVM
14
Application development options
Specification Developer Community Target Java Platform
JAIN SIP Desktop J2SE
JAIN SIP Connector Enterprise J2EE Business Tier
JAIN SIP JAIN SLEE RA Telecom J2EE Business Tier
SIP Servlet Enterprise J2EE Web Tier
SIP for J2ME Device J2ME
15
Realizing the SIP stack in Java
JAIN SLEE
Sipservlet
JCC
Industry Standard Interfaces
Dialog Layer
Proprietary Interfaces
Transaction Layer
Message Layer
SIP
16
SIP in J2EE
SIP Servlet
JCA Connector
JAIN SIP
App Server
App Server
SIP EJB
Application Server
17
JAIN SLEE
  • JAIN SLEE is high performance event processing
    platform suitable for event driven applications.
  • Supports simple and complex telecommunications
    applications.
  • Applications deal with service logic only.
  • System issues handled by container i.e.
    threading, transactions
  • Standard robust application framework and
    programming model.
  • Object Orientated, asynchronous and distributable
  • Independent of underlying networks.
  • Portable, robust and reusable applications.
  • Asynchronous support
  • Elaborate event distribution mechanism (with
    priority)
  • Maps events to method invocations on components
  • Creates component instances in response to
    initial events

18
JAIN SLEE Architecture
Management Application
SLEE
Component Container
JMX Agent
component instance
Timer Facility
component instance
component instance
Alarm Facility
SLEE and Service Management Interfaces
component instance
Trace Facility
component instance
Usage Facility
Event Dispatcher
JAIN SIP API
SIP based network
19
SLEE Application Characteristics
Communications Enterprise
Invocations Mostly asynchronous Events, messages, protocol triggers Mapped to method invocations Mostly synchronous invocations
Components Light-weight fine-grained objects Short transient lifetimes Rapid creation, deletion Heavy weight data access objects Long persistent lifetimes
Data Sources Multiple data sources location, context information Provisioned data, cached from master copy Database servers Definitive master copy Back-end systems
Transactions Light-weight transactions For state replication demarcation Faster completion and more frequent Database transactions Slower completion and less frequent
Computation Compute-intensive Main input and output are resource invocations, messages, events Database access intensive
20
JAIN SLEE with JAIN SIP Resource
  • JAIN SLEE represents network resources as
    resource adaptors and each resource adaptor has a
    type
  • Resource adaptor type for JAIN SIP is javax.sip
  • JAIN SLEE identifies Event by Event types
  • JAIN SIP Events are classified RequestEvents,
    ResponseEvents and TimeoutEvents, each of these
    classifications contains numerous types
  • For example the event type of a Request message
    of type INVITE is javax.sip.RequestEvent.Reques
    t.INVITE
  • JAIN SLEE represents the flow of events as
    activities
  • Activity Objects in JAIN SIP are
    ClientTransactions (locally initiated) and
    ServerTransactions (remotely initiated)

21
SIP Servlet
  • SIP servlets typically reside on network servers
    where they will be responsible for making routing
    decisions.
  • Supports RFC3261, RFC3262, RFC3265, RFC3428, and
    RFC2976
  • Utilizes http servlet model as foundation, builds
    on http generic part for essential SIP request
    and response functionality
  • Allow applications to perform a fairly complete
    set of SIP signaling actions
  • User agent client (UAC)
  • User agent server (UAS)
  • Proxy server

22
SIP Servlet Goals
  • Simplicity for the application developer
  • Containers handle non-essential complexity such
    as managing network listening points, CSeq,
    Call-ID and Via headers, routes, etc.
  • Containers support converged applications
  • Applications that span multiple protocols and
    media types, for example, Web, telephony, and
    presence.
  • Third party application development
  • An XML DD is used to communicate application
    information from the application developer to
    deployers.
  • Application composition
  • Several applications can execute on the same
    incoming or outgoing request or response. Each
    application has its own set of rules and executes
    independently.

23
Extension to HTTP Servlet Model
  • HTTP is not a peer-to-peer protocol like SIP
    therefore SIP Servlet extensions include
  • Initiate requests
  • Receive responses as well as requests
  • Generate multiple Responses
  • one or more 1xx followed by a final response
  • Proxying requests, possibly to multiple
    destinations

24
Protocol and Application Sessions
  • Sipservlet defines two types of sessions
  • SipSession (Protocol Session)
  • Equivalent to HTTP Session and represents a
    Dialog in SIP
  • SipApplicationSession
  • Provides storage for application data
  • Enable different protocol sessions to share state
    i.e. HTTP and SIP
  • Defined by SIPServlet but is expected to be
    adopted by the Servlet specification in a future
    release.

25
Message Hierarchy
ServletRequest
ServletResponse
javax.servlet
SipServletMessage
javax.servlet.sip
SipServletResponse
SipServletRequest
26
SIP for J2ME
27
Overview SIP for J2ME
  • SIP for J2ME is the standardised SIP interface
    for mobile handsets to communicate with core
    network functionality.
  • SIP for J2ME is an optional package for the J2ME
    platform that enable resource limited devices to
    send and receive SIP messages
  • The specific is designed for the CLDC profile,
    however it can also be used on to the CDC profile
    also.
  • The specification gives the developer
    transactional control over the SIP protocol
  • Client devices must support SIP for Rel5.0 of the
    UMTS architecture. SIP for J2ME is the perfect
    platform for these client devices.

28
SIP for J2ME Goals
  • Enables terminals supporting CLDC to run SIP
    enabled MIDlets
  • Builds upon CLDC Generic Connection framework
  • Specifically targeted at mobile phone handsets
  • Keep the look and feel of the HTTP API
  • Keep the API size small - keep the number of
    created objects low
  • Provide developers with helper functions
  • RefreshHelper for Register and Subscribe

29
SIP and the Generic Connection Framework
30
SIP for J2ME Architecture
31
Other SIP and IM Interfaces J2ME
JAIN SIMPLE
SIP forJ2ME
MIDP
CLDC
KVM
32
JAIN SIP
33
Overview JAIN SIP
  • Java-standard interface to a SIP signaling stack.
  • Standardized the interface to the stack.
  • Standardized the events and event semantics.
  • Application portability - verified via the TCK.
  • Designed for the developer who requires powerful
    access to the SIP protocol.
  • JAIN SIP can be utilized in a user agent, proxy,
    or imbedded into a service container.
  • Supported RFCs
  • RFC 3261, 2976, 3262,
  • RFC 3265, 3311, 3428

34
JAIN SIP Architecture
Application
Listener
Listener
SIP Messages
SIP Events
SIP Messages
SIP Events
Provider
Provider
Listening Point
Listening Point
Stack
Stack
Network
35
Responsibilities of the Application
  • Application registers an implementation of the
    SipListener interface to interact with the SIP
    Stack
  • Application MUST go via the SipProvider for all
    messaging with the stack
  • Application Sends messages and access stack
    objects via the SipProvider.
  • Application receives messages from the stack as
    Events via the SipListener interface.

36
Services provided by JAIN SIP
  • Provide methods to format and send SIP messages
  • Parse incoming messages and enable application to
    access to fields via a standardized JAVA
    interface.
  • Invoke appropriate application handlers when
    protocol significant (message arrivals,
    Transaction time-outs)
  • Provide Transaction support and manage
    Transaction state and lifetime on behalf of a
    user application.
  • Provide Dialog support and manage Dialog state
    and lifetime on behalf on a user application.

37
SIP Transactions
SIP transaction consists of a single request and
any responses to that request.
Server transaction
Server transaction
Client transaction
Client transaction
Stateful proxy
UAC
UAS
38
Transaction Support
  • Transaction is created on incoming Request or may
    be created to send outgoing request.
  • When a Request is sent out statefully,
    application must request a ClientTransaction for
    the outgoing Request.
  • When a new Request arrives, Stack associates a
    ServerTransaction with Request and passes up to
    application.
  • When a response arrives, the Stack possibly
    associates a previously created ClientTransaction
    with the response and passes up to the
    Application.
  • The JAIN SIP implementation manages the
    association between Transactions and Dialogs.

39
Support for Dialogs
  • A Dialog is a peer to peer association between
    communicating SIP endpoints.
  • Maintains Route Sets and Sequence Numbers.
  • Dialogs are never directly created by the
    Application..
  • Dialogs are established by Dialog creating
    Transactions (INVITE, MESSAGE, SUBSCRIBE),
    however are managed by the stack.
  • Dialog deletion may be under application control.
  • Transactions may belong to a Dialog
  • Dialog state changes as a result of changes in
    Transaction State

40
Addresses, Messaging and Headers
  • Defines support for Address/Header/Message
    Factories.
  • Address package contains a URI wrapper and
    defines URIs for SIP and Tel URIs.
  • Header package defines interfaces for all the
    supported headers.
  • Accessor (set/get) methods for SIP Header
    parameters.
  • Deep copy requirement for cloning Addresses,
    Headers and Messages for the benefit of proxies.

41
SipStack Interface
  • Manages Listening Points and Providers.
  • SipStack associated with an IP address.
  • Can Have multiple Listening points.
  • Application can have multiple SipStacks.
  • Cannot be deleted once created.
  • Instantiated by the SipFactory and initialized
    with a Property set.
  • javax.sip. properties are reserved and names
    defined for stack configuration properties.

42
SipProvider Interface
  • Send Request's either statefully via client
    transactions or statelessly.
  • Send Response's to a recently received Requests
    either statefully via server transactions or
    statelessly.
  • Register a SipListener to the SipProvider.
  • Notifies Registered Listener of Events
    (Request/Response/Timeout).
  • De-register a SipListener from the SipProvider.
  • Once de-registered, no longer receive Events from
    SipProvider.
  • New Client and Server Transaction methods.
  • Listening Point manipulation methods.
  • Only one provider per listening point.

43
SipListener Interface
  • A single SipListener per SipStack which implies a
    single Listener in the architecture
  • all SipProviders associated to a Sipstack have
    the same SipListener.
  • Process Request's either statefully or
    statelessly dependent on application.
  • Process Response's to a recently sent Requests
    statefully.
  • Process Transaction timeouts and retransmits
    Timer events.

44
Application - Stack Creation
Initialize Stack using SipFactory
try Properties properties new
Properties() properties.setProperty("javax.sip
.IP_ADDRESS", "129.6.55.181")
properties.setProperty("javax.sip.OUTBOUND_PROXY",
"129.6.55.1825070/UDP") // Other
initialization properties. try sipStack
sipFactory.createSipStack(properties)
catch(SipException e) System.exit(-1)
45
Application Request Creation
Initialize Request using Factories
try SipURI requestURI addressFactory.createS
ipURI (toUser, toSipAddress)
// Create other headers Request request
messageFactory.createRequest (requestURI,
Request.INVITE, callIdHeader, cSeqHeader,
fromHeader, toHeader, viaHeaders, maxForwards)
46
Application - Sending Requests
Send outgoing messages
try // Create the client transaction ClientTr
ansaction inviteTid sipProvider.getNewClientTra
nsaction(request) // send the request
sipProvider.sendRequest(inviteTid,request)
47
Application Processing Requests
Handle incoming messages as Events
try public void processRequest(RequestEvent
requestEvent) Request request
requestReceivedEvent.getRequest()
ServerTransaction st requestEvent.getTrans
action() // do request specific processing
here
48
JAIN SIP for Instant Messaging
  • JAIN SIP can be used for building Instant
    Messaging and Presence Clients and Servers.
  • API supports the required methods and Headers.
  • JAIN creates and manages Dialogs for SUBSCRIBE
    and MESSAGE methods.
  • NIST-SIP JAIN IM Client SipListener is about 1100
    LOC.
  • Interoperates with Microsoft IM and packaged with
    RI as example.

49
JAIN-SIP in Proxy Servers
  • JAIN SIP facilities construction of Proxy
    Servers
  • Stateless, Transaction-stateful, and
    Dialog-stateful operation.
  • Application has access to Dialog/Transaction
    state and route tables.
  • Support for extensibility and application-
    controlled Routing.
  • Deep copy semantics for cloning.
  • Example Proxy (including presence server) is
    about 3500 LOC and is included with RI.

50
JAIN SIP Extensibility
  • SIP Extensions Typically Define
  • New Methods
  • New Headers
  • New Dialog Creating Methods
  • JAIN SIP Supports these by
  • Architected ExtensionHeader that can be
    created/accessed by name.
  • New Dialog Creating methods specified at Stack
    configuration via configuration property.

51
JAIN SIP Updates
JAIN SIP v1.0
JAIN SIP v1.1
  • RFC2543 Supported.
  • J2SE 1.3 and above.
  • Transactions referenced by long.
  • Transaction state is not visible to application.
  • No explicit Dialog Support.
  • Stack Configuration not defined.
  • RFC3261 Supported.
  • J2SE 1.4 and above.
  • Transaction interfaces defined.
  • Transaction/Dialog state can be read by
    application.
  • Dialog interface defined and managed by stack.
  • Stack Configured with defined properties.

52
JAIN SIP Reference Implementation
  • In the public domain.
  • Includes example IM client and proxy.
  • Includes trace visualization tools.
  • Footprint
  • About 46000 LOC.
  • Jar file about 355 Kb (not counting JAIN API).
  • About 3 Megabytes of memory after class loading
    and running a few requests.

http//www-x.antd.nist.gov/proj/iptel
53
Useful URLs
  • JAIN SIP Specification http//jcp.org/jsr/detail
    /032.jsp
  • NIST IP-Telephony Project Page
    http//www-x.antd.nist.gov/proj/iptel/index.html
  • JAIN SIP Discussion List http//archives.java.su
    n.com/jain-sip-interest.html
  • JAIN Homepagehttp//java.sun.com/products/jain

54
Conclusion
55
Other Java APIs for IP Communications
  • JAIN Presence and IM - Panasonic
  • JAIN SIMPLE Panasonic
  • JAIN SIP Lite - Ubiquity
  • JAIN Enum NetNumber
  • JAIN MGCP Telcordia
  • JAIN Megaco Hughes Software Systems
  • JAIN SDP dynamicsoft

http//jcp.org/en/jsr/tech?listBy2listByTypetec
h
56
Summary
  • IP Communications is the crux of NGNs,
    investment and converged applications.
  • Java and IP Communications together enable a
    developers working environment.
  • You can develop services today with an open
    source SIP stack supporting standardized Java
    APIs.
  • The Internet and communications networks will
    converge, Java developers will capitalize.

E N D
57
If You Only Remember One Thing
  • Communications is the Killer App.
  • IP Communications Java lets you play!
  • The Internet EMail IM
  • The Mobile Phone SMS - MMS
  • .. Whats next?
  • The possibilities are endless!

E N D
58
QA
59
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com