FSFS Conference: Dec 9-11, Thiruvananthapuram Project SailFin: Building and Hosting Your Own Communication Server. Binod PG Senior Staff Engineer Sun Microsystems, Inc. 1
Agenda SailFin: Open Source Java EE meets Telco Building Your Own Communication Server Hosting Your Communication Server SailFin: Clustering. SailFin: RoadMap. 2
The Future is Not What it Used to be... Handsets & Consumer Electronics Voice & Data Services Fixed & Mobile Carrier? Interpersonal Communications Media & Network Increased Subscriber Choice/New Competitive Threats/Increased Market Complexity 3
Imperatives for the Carrier Focus on value creation and monetization Create new control point by becoming the destination for subscribers How? > Service Oriented Architecture allowing content providers to also participate and benefit > Find technology that is not tied to any one particular standard and is flexible > Move to standards technologies for vendor choice, lowered costs and best-of-breed solutions 4
TM Java Platform for Telcos JavaTM ME shipped on 1.8 billion devices so far JavaTM Virtual Machine is extremely robust and scalable and is widely deployed in enterprise and telecom core infrastructure JavaTM EE is now entering Telco in a big way > JSR-289 creates Java EE + SIP Servlets portability > Database Access, Web Services, XML Processing, Resource Adapters, Messaging, REST,.NET interoperability, Transactions, Security etc. are now naturally available to Service Developers 5
TM Java EE 6 Java EE 5 has been the most successful platform to date with highest velocity of adoption Java EE 6 is about further developer productivity and platform simplification > > > > > > Creation of profiles, web profile for a start Introduction of WebBeans (based on SEAM) Java Persistence API 2.0 Servlets 3.0 (comet, annotations) REST Web Services Updates to EJB, Connectors 6
SailFin: Open Source Java EE Meets Telco http://sailfin.dev.java.net Started with Ericsson contribution of code and resources Launched May '07 at JavaOne Part of GlassFish community on java.net GPLv2 and CDDL licenses Basis for Sun commercial product: Sun GlassFish Communications Server 7
SailFin: Building Your Own Communication Server 8
Can you do this in Java EE? 9
SIP Technology makes it possible Session Initiation Protocol > Defined by RFCs 3261(sip), 4566(rtp), 3550(rtp) > Only responsible to set up communication Similar to HTTP > Text Based Request and Response > Shared status codes (200 OK, 404 Not Found) > Associated SIPSession Different from HTTP > Peer To Peer > Asynchronous 10
An Example 11
SIP Servlets Handle SIP message processing > Based on Generic Servlet model > SIP Applications, Sessions and Timers Defined by JSR-289 > Converged Web and SIP applications. > Http and Sip Sessions can access each other. > Http Servlets can initiate calls SIP Application Servers > Stand-alone (pure SIP) > Integrated SIP and Java EE Application Servers 12
SIP Servlet Example Code. 13
Converged HttpServlet Example. 14
Tools NetBeans 6 Plugin > JSR 289 EE 5 support > Deploy and debug pure and converged Applications > Wizard based SIP Application authoring > SIP Testing Client Ericsson SDS > E2E Service Development and Network Element simulation 15
Application Router Java EE SailFin AS SIP Application 1 CHARGING Initial SIP Invite PRIVACY SIP Application 2 LEGAL IC BARRING Application Router CALL WAITING LOCATION Invite External SIP JSR 289 Container 16
What Do You Get with SailFin? All of GlassFish > Fresh Java EE standards compatibility > Project Metro: Web Services Interoperability > Open ESB: Service composition capabilities > Complete Administration w/ GUI and CLI > High Availability Leading Performance & Quality > Measured with SPECjAppServer2004 883.66 JOPS (1 chip, 8 cores, 32 HW threads) 8439.36 JOPS (6 chips, 48 cores, 192 HW threads) Plus, deployment quality JSR-289 container 17
Need More? Update Center 18
Samples and Demos Source included in SailFin > CallSetUp B2B User Agent > Online Bank Other Applications > VoiceBridge: All Java RTP Stack and Voice Mixing JSR-309 compatibility in future http://jvoicebridge.dev.java.net > Sun Labs Conference Manager (TBD) > Sample Presence Server (TBD) > STUN Server (TBD) 19
SailFin: Deploying/Hosting Your Communication Application 20
Host VOIP Server at Your Home? Install SailFin (Free and Open Source). Deploy Your Sip Servlet Application. Configure Your Home Router. > Open HTTP and SIP Ports Contact Address of the Server (SailFin). > Permanent IP. > Dynamic Host Name (dyndns etc). Your VOIP Server is Ready! > Anyone can use it from SIP SW Phone or SIP HW Phone. > Remotely Administer the Server. 21
Ease of Use - Administration 22
Challenges. NAT Translation > STUN Firewall. > No problem if you are at home. > Corporates need to allow VOIP. > VOIP enabled Firewall. SIP Security. 23
Security Confidentiality and Integrity of SIP messages using TLS User Authentication > Sip Digest Authentication Algorithm : MD5 Realms supported by default : JDBC > P-Asserted-Identity Authorization > Based on Java EE roles,group and principal mapping. > Uses JACC (Java Authorization Contract for Containers) Configuration to define trust domains eg: trusted sip entities(hostname,ipaddress) 24
SailFin: Clusters 25
Sub-Systems Administration Converged Load Balancer Session Retainability SAF Support SailFin SIP Container Pure SIP Apps GlassFish Web Container Pure Web Apps GlassFish Java EE Services: EJB, Persistence, Web Services, JNDI, Annotations, Transactions, Connectors, JMS, JMX, JSF, more.. Application Router IDE Integration JSR-116 Converged Applications JSR-289 Converged Applications Java EE Applications 26
Project Sailfin: Cluster Profile Ideal Application Server for IMS (IP Multimedia Subsystem). Provides High Availability Performant and Scalable SAF hooks to support a SAF environment. http://wiki.glassfish.java.net/wiki.jsp?page=sailfin 27
Administrative Domains Machine M Admin RED Domain Machine N Server Machine O Instance1 Instance3 Instance2 Instance4 GREEN Domain Machine P BLUE Domain Instance5 Admin Server Machine Q Instance9 Instance7 Admin Server Instance6 Machine R Instance8 Instance10 28
Project SailFin Architecture High availability: Converged Load Balancer A Project SailFin cluster is typically fronted by a HW load balancer The HW load balancer routes the traffic to any random Project SailFin instance Traffic from SIP User Agent and HTTP browser might reach any instance The converged LB proxy in each instance then does a consistent hashing on the configured headers (eg: Conference ID) of the messages Thus traffic for a particular application instance (a particular conference) always reach the same instance 2008 JavaOneSM Conference java.sun.com/javaone 29
SailFin Clusters L3 LB CONVERGED PROXY & LB CONVERGED PROXY & LB CONVERGED PROXY & LB CONVERGED PROXY & LB SailFin SailFin SailFin SailFin Application and Container State Replication 30
Session State Replication & Recovery SIP Application Session is key > Can contain multiple protocol sessions (SIP or HTTP) > Represents a converged application instance > JSR-289 formalizes ConvergedHttpSession Link to parent SIP Application Session Network of Session objects, associated Timers and Dialogs must be preserved for recoverability > Remoting has high overheads Converged Load Balancer maintains co-location of sessions inside a SIP Application Session > Each instance contains a self-load balancing proxy. > Routes the requests to appropriate instance. > Based on Consistent Hashing of Message Header contents. 31
ROADMAP 32
Schedule Sun GlassFish Communications Server Roadmap 1.5a 1.5 Alpha Release: Aug 2008 Stable JSR 116 Stack Stable single instance. Q12009 Full JSR289 Available to all customers Availability Q3 2008 Q1 2009 2.0 Tentative: Q4 2009 > Move to GlassFish v3 OSGi module architecture > JSR 309 (Media Server) > Diameter Stack Q4 2009 33
Product Distributions Supports JDK 1.5 and JDK 1.6 > 64-bit and 32-bit JVM Solaris (SPARC and X64), SuSE and RedHat supported > Developer only for MacOS X, Windows GUI and Jar based Installers > Silent Install available Two installation Profiles > Developer and Cluster Native OS packages not planned for R1 34
For More Information Resources SailFin Project Site > http://sailfin.dev.java.net SIP Servlets > http://jcp.org/en/jsr/detail?id=289 > http://jcp.org/en/jsr/detail?id=116 Conference Manager > http://research.sun.com/projects/dashboard.php?id= 35
THANK YOU The Network is the Computer. TM Binod PG Senior Staff Engineer Sun Microsystems, Inc. 36