Upload
muriel
View
23
Download
0
Embed Size (px)
DESCRIPTION
JavaPolis 2004. Java Technologies for Telecom. Gerard Maas Software Architect Bert Van Vlerken Research Engineer Alcatel Bell. Overall Presentation Goal. Illustrate how JCA 1.5 and JAIN SLEE 1.0 offer a new and better way to create, integrate, and support telecom-scale services. - PowerPoint PPT Presentation
Citation preview
JavaPolis 2004
Java Technologies for Telecom
•Gerard MaasSoftware Architect
•Bert Van VlerkenResearch Engineer
Alcatel Bell
Illustrate how JCA 1.5 and JAIN SLEE 1.0 offer a new and better way to create, integrate, and support telecom-scale services
Overall Presentation Goal
IMPLEMENTING REAL ICT!
• Gerard Maas – is a Software Architect at Alcatel, creating a J2EE based
Telecom integration product – presented his recent work on J2EE and Telecom integration
at JavaOne 2004
• Bert Van Vlerken – is a Research Engineer at Alcatel, investigating Java based
Service Delivery and Execution Platforms– is lecturer on JAIN SLEE at the Alcatel University
Speaker’s Qualifications
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Outline
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Outline
• Java has had a hard time getting into the telecom space, now 2 technologies are going to change that !
Java loves Telecom, does Telecom love Java ?
Socket
HTTP
SIP ServletsJAIN SIP
JCC
JAIN INAP
NIO
JAIN MEGACO
IT
Client/Server
ApplicationServer
J2EE
Telecoms
Intelligent Network
Softswitch
JAINSLEE
IT/Telecom Convergence
CarrierGrade
ApplicationServer
IP
Convergence is Happening
SLEE
SLEE & Service Management
Interfaces
JMX AgentComponent
Container
SBB
SBB SBB
SBBSBB
Timer Facility
Alarm Facility
Trace Facility
Usage Facility
Event Dispatcher
JAIN SLEEConnector
Positioning
NetworkElement
Connector
J2EENw Tx
ServicePrimitives
SupportingComponents
Servlets JSP WebServicesBasic Services High Level 3rd Party Itf
ServiceLogic
Gerard
Bert
• Operators want– Integrated OSS/BSS
o Single mode of operationo Single subscriber concept
– Faster time to market for their serviceso Easier developmento Increase developer base
– Open Standardso Increased service portabilityo More ‘shopping’ possibilities
– Common services & capabilities across all networks
Convergence Requires …
• Leading to1. A Service Environment that bridges the gap between OSS/BSS and
various network technologies2. Converged platforms supporting existing and new services
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Outline
J2EE 1.4System Level Contracts
ApplicationServer
Conta
iner
Con
nect
or
Serv
ices
Transaction Management
Lifecycle Management
Security Contract
Work Management
Connection Management
ExistingSystem
Resource Adapter
ExistingSystem
Resource Adapter
Java Connector Architecture 1.5
J2EE 1.4System Level Contracts
ApplicationServer
Conta
iner
Con
nect
or
Serv
ices
Transaction Management
Lifecycle Management
Security Contract
Work Management
Connection Management
ExistingSystem
Resource AdapterM
an
ag
ed
Co
nn
ectio
nM
an
ag
ed
Co
nn
ectio
nM
an
ag
ed
Co
nn
ectio
n
Ma
na
ge
dC
on
ne
ction
Ma
na
ge
dC
on
ne
ction
Ma
na
ge
dC
on
ne
ction
Ma
na
ge
dC
on
ne
ction
Ma
na
ge
dC
on
ne
ction
Ma
na
ge
dC
on
ne
ction
ManagedConnection
Factory
ConnectionConn. Factory
MessageEndpoint
Endpoint Factory
Work Work
Work Manager
bootstrap
ResourceAdapterImpl
MessageEndpoint MessageEndpoint
Java Connector Architecture 1.5
JCA 1.5: Connection Contract/Sync
J2EE 1.4
ApplicationServer
Conta
iner
Con
nect
or
Serv
ices
Connection Management
EJB
ExistingSystem
Resource Adapter
X
ManagedConnection Pool
ManagedConnection Pool
X
X
X
result = conn.send(request); result = conn.send(request);
ConnectionFactory factory = < JNDI Lookup >ConnectionFactory factory = < JNDI Lookup >
Connection conn = factory.getConnection(…);Connection conn = factory.getConnection(…);
Same address space
J2EE 1.4
ApplicationServer
Conta
iner
Con
nect
or
Serv
ices
Connection Management
ExistingSystem
Resource Adapter
X
X
X
X
bootstrap
Same address space
EndpointActivation- endpoint factory- activationSpec
EndpointActivation- endpoint factory- activationSpec
endpoint factoryendpoint factory
MDB’sMDB’s
Bootstrap phase
JCA 1.5: Connection Contract/Async
J2EE 1.4
ApplicationServer
Conta
iner
Con
nect
or
Serv
ices
Connection Management
ExistingSystem
Resource Adapter
X
X
X
X
X
X
XX
Same address space
MessageEndpointFactory.createEndPoint()MessageEndpointFactory.createEndPoint()
endPoint.onMessage(message);endPoint.onMessage(message);
public void onMessage(MyMessageType message) { data = otherBean.process(message); report.create(data); store(data);}
public void onMessage(MyMessageType message) { data = otherBean.process(message); report.create(data); store(data);}
JCA 1.5: Connection Contract/Sync
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Outline
• Use Case 1: Bulk file import
J2EE
StandaloneJVM
MDB
Timer Service
Fileparser
JMS Queue
Recordprocessor
JMSClient
OSS Interface Contract:• X times/day a new file comes in
• The CSV format should be parsed & converted into records
• The records should be passed to the app server for processing
• The records must be ‘dosed’ to avoid undesired peak loads
flowManagement.deliver( )flowManagement.deliver( )
X
X XX
X
JCA 1.5: UC1. File Based Bulk Upload. (OSS Integration.)
• Management & monitoring is complex– Involves several disparate systems– Lifecycle management must be custom developed– Extra configuration needed
o On the App servero On the standalone VM
• Resources are not used optimally– No service re-usability (eg. Scheduler, File reader)– Extra VM
o Implies static memory allocation, threads
• Difficult to scale & cluster; fragile– Problem tracking involves several disparate systems
JCA 1.5: UC1. File Based Bulk Upload. (OSS Integration.)
Issues with this solution
J2EE 1.4Application
Server
Conta
iner
Con
nect
or
Serv
ices
File System
File Adapter
File Reader Worker(Scheduled)
Timer Service
Record pre-processor
RecordMDB
processor X
flowManagement.deliver( )flowManagement.deliver( )X
JCA 1.5: UC1. File Based Bulk Upload. JCA Solution
J2EE 1.4Application
Server
Conta
iner
Con
nect
or
Serv
ices
File System
CSV File Adapter
File Reader Worker(Scheduled)
Record pre-processor
RecordMDB
processorflowManagement.deliver( )flowManagement.deliver( )X
JCA 1.5: UC1. File Based Bulk Upload. JCA Solution
J2EE 1.4Application
Server
Conta
iner
Con
nect
or
Serv
ices
File System
CSV File Adapter
File Reader Worker(Scheduled)
Record pre-processor
RecordXMDB
processorflowManagement.deliver( )flowManagement.deliver( )X
X Y
RecordYMDB
processorflowManagement.deliver( )flowManagement.deliver( )Y
JCA 1.5: UC1. File Based Bulk Upload. JCA Solution
• Management & monitoring are standardized and handled by the Application Server
• Resources (threads, memory, file system) are managed, shared and used optimally
• The connector is a reusable and generic component : Architecturally SOUND!
• Integrated, robust, scalable, extendable
JCA 1.5: UC1. File Based Bulk Upload. JCA Solution
In this solution:
It is:
On top of that…
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Outline
• Use Case 2: Real Time Rating
JCA 1.5: UC2. Real Time Rating.
PaymentPayment
AccountingAccounting
Terminal LocationTerminal Location
Call notificationCall notification
User ProfileUser Profile
Third PartyCall
Third PartyCall
User StatusUser Status
RatingRating
MultimediaMessage
MultimediaMessage
ShortMessage
ShortMessage
ProvisioningProvisioning
J2EE
WebService
JSP/Servlets
OSP
NETWORK TIME CRITICAL DPE BUSNETWORK TIME CRITICAL DPE BUS
PSE RatingEngine …..
Stats&
alarms
Loc.Server
APPLICATION TIME CRITICAL DPE BUSAPPLICATION TIME CRITICAL DPE BUS
JCA 1.5: UC2. Real Time Rating.
Payment
Accounting
Terminal Location
Call notification
User Profile
Third PartyCall
User Status
RatingRating
MultimediaMessage
ShortMessage
Provisioning
J2EE
WebServices
JSP/Servlets
OSP
NETWORK TIME CRITICAL DPE BUSNETWORK TIME CRITICAL DPE BUS
PSE RatingEngine …..
Stats&
alarms
Loc.Server
APPLICATION TIME CRITICAL DPE BUSAPPLICATION TIME CRITICAL DPE BUS
Rating
JCA 1.5: UC2. Real Time Rating.
OSP
NETWORK TIME CRITICAL DPE BUSNETWORK TIME CRITICAL DPE BUS
PSE RatingEngine …..
Stats&
alarms
Loc.Server
APPLICATION TIME CRITICAL DPE BUSAPPLICATION TIME CRITICAL DPE BUS
J2EE
WebServices
JSP/Servlets
Rating RatingRating
Rating Rating
JCA 1.5: UC2. Real Time Rating.
OSP
NETWORK TIME CRITICAL DPE BUSNETWORK TIME CRITICAL DPE BUS
PSE RatingEngine …..
Stats&
alarms
Loc.Server
APPLICATION TIME CRITICAL DPE BUSAPPLICATION TIME CRITICAL DPE BUS
DPE BUSConnector
J2EENw Tx
ServicePrimitives
SupportingComponents
Servlets JSP WebServicesBasic Services High Level 3rd Party Itf
ServiceLogic
JCA 1.5: UC2. Real Time Rating.
J2EE 1.4Application
Server
Conta
iner
Con
nect
or
Serv
ices
APPLICATION TIME CRITICAL DPE BUSAPPLICATION TIME CRITICAL DPE BUS
DPE Conn
NIO
Rating EJB
NIO
Protocol Impl
Message primitivesrequest, send(Async)
getBalance(Account)adviceOfCharge(Account, item)reserveAmount(Account,€$)chargeAmount(Account, €$)releaseAmount(Account, €$)
getBalance(Account)adviceOfCharge(Account, item)reserveAmount(Account,€$)chargeAmount(Account, €$)releaseAmount(Account, €$)
asyncsync
getBalance(Account) { Connection = ConnectionFactory.getConnetion(); DPEMessage = Connection.createMessage(Service); DpeMessage.setRequestType(BALANCE_OP); DpeMessage.setAccount(Account); result = Connection.request(DpeMessage); Connection.close(); return result;}
getBalance(Account) { Connection = ConnectionFactory.getConnetion(); DPEMessage = Connection.createMessage(Service); DpeMessage.setRequestType(BALANCE_OP); DpeMessage.setAccount(Account); result = Connection.request(DpeMessage); Connection.close(); return result;}
0%
50%
100%
150%
200%
250%
300%
350%
400%
CPU usage CAPS
JAR-Based
Connector
Normalized on JAR-Based Communication (legacy)
JCA 1.5: UC2. Real Time Rating.
Performance Comparison
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Outline
• Standardized in the Java Community Process (JCP):
– JSR 22: started in July 1999, R1.0 released Feb 2004
– JSR 240: started March 2004, specifies resource adapter framework
JAIN SLEE
Event ProcessingEvent Processing
Application ServerApplication Server
Low LatencyLow Latency High ThroughputHigh Throughput
DSL/WLL PSTNPLMNIP/LAN/WAN/3G
N e t w o r k A d a p t e r s
HTTP, SIP HTTP, SIPCAP, WINSMS, WAP INAP, AIN
JAIN Application Interfaces
JAIN SLEE
SLEEComponent
Container
SBB
SBB SBB
SBBSBB
Timer Facility
Alarm Facility
Trace Facility
Usage Facility
Event Dispatcher
SLEE & Service Management
Interfaces
JMX Agent
Management Application
• Event based component infrastructure– Event router: routes events to interested event consumers– Dynamic event channels: Activities & ActivityContexts– Event filtering support
JAIN SLEE Features
• The usual container stuff…– Life cycle management, pooling, threading, …
• Designed for performance– Lightweight transactions for low latency– In memory profile data– Garbage Collection linked to life cycle management
• Standard Profile Facility– Makes provisioning easy & consistent
• The main deployable unit in JAIN SLEE is a Service• A Service consists of
– one or more Service Building Blocks (SBBs)– zero or more Profile Table references– zero or more Resource Adaptor references
SBB SBB SBB
RA RA
Service
ProfileTables
Component architecture
• The SBBs contain the application logic• The Profile Tables represent provisioned data• The Resource Adaptors are the external interfaces
SBB Container
Reso
urc
e A
dapto
r Fr
am
ew
ork
NetworkElement
Resource Adapter
X
SBB
SBB
Same address space
X
JAIN SLEE 1.0
Xpublic void onEventA(EventA e, AcitivtyContextInterface aci) { doWork(e);}
public void onEventA(EventA e, AcitivtyContextInterface aci) { doWork(e);}
public void onEventB(EventB e, AcitivtyContextInterface aci) { doWork(e);}
public void onEventB(EventB e, AcitivtyContextInterface aci) { doWork(e);}
Dynamic Event ChannelsActivities & Activity Contexts
Framework.activityCreated(activity);Framework.activityCreated(activity);
Framework.sendEvent(activity, eventA);Framework.sendEvent(activity, eventA);
Framework.sendEvent(activity, eventB);Framework.sendEvent(activity, eventB);
Database
MD-EJB
• Implemented through message driven beans
Custom Message
Message
MD-EJB Message Queue
JMS Message
MD-EJB
Message Topic
…MD-EJB
event channel
Get State
from DB
Do I have to process this
event ?
Relation to Queue or Topic isfixed in deployment
descriptor
Create State in
DB
Asynchronism in J2EE
SBB StateSBB
Activity Context
EventSBB
Handled by JAIN SLEE
Activity Context
EventSBB
SBB
Dynamically attach or detach from Activity
Context
Creation of SBB State ishandled automatically
Mapping of JAIN SLEE Concepts
Activity Context
Event
Dynamic creation of
Activity Contexts
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Outline
• Use Case: Prepaid Charging
• Network Services– Prepaid charging– Virtual Private Networks– Instant Messaging & Presence
• Network Control– IP Multimedia Subsystem (IMS) (think SIP and Mobiles)– Call Control– Next Generation Networks (Voice over IP)
Usage scenario’s for JAIN SLEE
Call Control APIAccountManager API
PSTNMobile
AccountManager RA
JAIN SLEE
SLEE
ComponentContainer
SBBInstance A
Timer Facility
SBBInstance B
PrePaidChargingService
Profile Table
Mobile CC RA Fixed CC RA
AccountManager
A B
Contains for each phone number a tarif scheme & account info
Start Call AStart Call
Lookup Tarif
Fetch Workmoney
Arm TimerPeriodic
Timer Events
Call Control APIAccountManager API
PSTNMobile
AccountManager RA
JAIN SLEE
SLEE
ComponentContainer
SBBInstance A
Timer Facility
SBBInstance B
PrePaidChargingService
Profile Table
Mobile CC RA Fixed CC RA
AccountManager
A B
Contains for each phone number a tarif scheme & account info
Stop Call BStop Call
Cancel Timer
Call Control APIAccountManager API
PSTNMobile
AccountManager RA
JAIN SLEE
SLEE
ComponentContainer
SBBInstance A
Timer Facility
SBBInstance B
PrePaidChargingService
Profile Table
Mobile CC RA Fixed CC RA
AccountManager
A B
Contains for each phone number a tarif scheme & account info
Refund Leftover
Call Control APIAccountManager API
PSTNMobile
AccountManager RA
JAIN SLEE
SLEE
ComponentContainer
SBBInstance A
Timer Facility
PrePaidChargingService
Profile Table
Mobile CC RA Fixed CC RA
AccountManager
A
Contains for each phone number a tarif scheme & account info
Call Control APIAccountManager API
PSTNMobile
AccountManager RA
JAIN SLEE
SLEE
ComponentContainer
SBBInstance A
Timer Facility
PrePaidChargingService
Profile Table
Mobile CC RA Fixed CC RA
AccountManager
A
Contains for each phone number a tarif scheme & account info
Call Control APIAccountManager API
PSTNMobile
AccountManager RA
JAIN SLEE
SLEE
ComponentContainer
Timer Facility
PrePaidChargingService
Profile Table
Mobile CC RA Fixed CC RA
AccountManager
Contains for each phone number a tarif scheme & account info
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Outline
• JCA 1.5– Communicate with external system. – Reuses basic services for integration code.– Enables real J2EE integration in many domains
• JAIN SLEE 1.0– Low-latency, High Throughput, Event processing – Dynamic event channels: Activities & Activity Contexts– Service Building Blocks
Summary
If You Only Remember One Thing…
Socket
HTTP
SIP ServletsJAIN SIP
JCC
JAIN INAP
NIO
JAIN MEGACO
… does Telecom love Java ?Socket
HTTP
SIP ServletsJAIN SIP
JCC
JAIN INAP
NIO
JAIN MEGACO
JAIN SLEE JCA 1.5
YES, Telecom loves Java !