JavaTechnologiesForTelecom-Javapolis04

advertisement
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
IMPLEMENTING REAL ICT!
Speaker’s Qualifications
• 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
Outline
• 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
Socket
NIO
JAIN SIP SIP Servlets
JAIN MEGACO
JAIN INAP
HTTP
JCC
Java loves Telecom,
does Telecom love Java ?
• Java has had a hard time getting into the
telecom space, now 2 technologies are
going to change that !
IT/Telecom Convergence
IT
Client/Server
Application
Server
Carrier
Grade
Application
Server
J2EE
Softswitch
JAIN
SLEE
Intelligent Network
Telecoms
Convergence is Happening
IP
Positioning
Servlets
Basic Services High Level 3rd Party Itf
WebServices
JSP
J2EE
Service
Logic
Service
Primitives
Network
Element
Connector
Supporting
Components
Nw Tx
JAIN SLEE
GerardConnector
JMX Agent
Component
Container
SLEE
Timer Facility
Bert
SBB
SBB
Alarm Facility
SLEE & Service
Management
Interfaces
Trace Facility
Usage Facility
Event Dispatcher
SBB
SBB
SBB
Convergence Requires …
• Operators want
–
Integrated OSS/BSS
o
o
–
Faster time to market for their services
o
o
–
Easier development
Increase developer base
Open Standards
o
o
–
Single mode of operation
Single subscriber concept
Increased service portability
More ‘shopping’ possibilities
Common services & capabilities across all networks
• Leading to
1. A Service Environment that bridges the gap between OSS/BSS and
various network technologies
2. Converged platforms supporting existing and new services
Outline
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Java Connector Architecture 1.5
Application
Server
Container Connector Services
System Level Contracts
J2EE 1.4
Connection Management
Work Management
Resource
Lifecycle Management
Adapter
Security Contract
Resource
Adapter
Transaction Management
Existing
System
Existing
System
Java Connector Architecture 1.5
Application
Server
Connection Management
Work Management
Security Contract
Lifecycle Management
Transaction Management
ResourceAdapterImpl
Connection
Conn. Factory
Managed
Connection
Factory
bootstrap
Work
Manager
Work Work
Resource
Endpoint
Adapter
Factory
Managed
Managed
Managed
Connection
Connection
Connection
Managed
Managed
Managed
Connection
Connection
Connection
Managed
Managed
Managed
Connection
Connection
Connection
Container Connector Services
System Level Contracts
J2EE 1.4
Message
Message
Endpoint
Message
Endpoint
Endpoint
Existing
System
JCA 1.5: Connection Contract/Sync
ConnectionFactory factory = < JNDI Lookup >
Container Connector Services
Connection conn = factory.getConnection(…);
Managed
Connection Pool
Application
Server
EJB
J2EE 1.4
Connection Management
Resource
Adapter
X
X
X
result = conn.send(request);
Same address space
Existing
System
JCA 1.5: Connection Contract/Async
Container Connector Services
EndpointActivation
- endpoint factory
- activationSpec
Application
Server
J2EE 1.4
bootstrap
Connection Management
Resource
Adapter
X
X
X
MDB’s
endpoint factory
Same address space
Bootstrap phase
Existing
System
JCA 1.5: Connection Contract/Sync
Application
Server
Container Connector Services
J2EE 1.4
Connection Management
X
Resource
Adapter
MessageEndpointFactory.createEndPoint()
X
endPoint.onMessage(message);
X message) {
public void onMessage(MyMessageType
data = otherBean.process(message);
X
report.create(data);
store(data);
}
Same address space
Existing
System
Outline
• Java & Telecom
• Java Connector Architecture 1.5
• Use Case 1: Bulk file import
• JAIN Service Logic Execution Environment
• Conclusions
JCA 1.5: UC1. File Based Bulk Upload.
(OSS Integration.)
Timer Service
J2EE
File
parser
Record
processor
X
JMS
Client
JMS Queue
X
X
X
Standalone
JVM
MDB
flowManagement.deliver(
X
)
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
JCA 1.5: UC1. File Based Bulk Upload.
(OSS Integration.)
Issues with this solution
• Management & monitoring is complex
– Involves several disparate systems
– Lifecycle management must be custom developed
– Extra configuration needed
o On the App server
o 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.
JCA Solution
Application
Server
RecordMDB
processor X
flowManagement.deliver(
Timer Service
X
)
Container Connector Services
J2EE 1.4
File Adapter
Record
pre-processor
File Reader Worker
(Scheduled)
File System
JCA 1.5: UC1. File Based Bulk Upload.
JCA Solution
Application
Server
RecordMDB
processor
flowManagement.deliver(
X
)
Container Connector Services
J2EE 1.4
CSV File Adapter
Record
pre-processor
File Reader Worker
(Scheduled)
File System
JCA 1.5: UC1. File Based Bulk Upload.
JCA Solution
Application
Server
RecordXMDB
processor
flowManagement.deliver(
X
)
RecordYMDB
processor
flowManagement.deliver(
Y
Container Connector Services
J2EE 1.4
CSV File Adapter
Record
pre-processor
File Reader Worker
(Scheduled)
)
File System
X
Y
JCA 1.5: UC1. File Based Bulk Upload.
JCA Solution
In this solution:
• Management & monitoring are standardized
and handled by the Application Server
• Resources (threads, memory, file system) are
managed, shared and used optimally
It is:
• Integrated, robust, scalable, extendable
On top of that…
• The connector is a reusable and generic
component : Architecturally SOUND!
Outline
• Java & Telecom
• Java Connector Architecture 1.5
• Use Case 2: Real Time Rating
• JAIN Service Logic Execution Environment
• Conclusions
JCA 1.5: UC2. Real Time Rating.
WebService
JSP/Servlets
J2EE
Rating
User Profile
Provisioning
Third Party
Call
Accounting
Multimedia
Message
Call notification
Payment
Terminal
Location
Short
Message
User Status
APPLICATION TIME CRITICAL DPE BUS
PSE
Rating
Engine
Stats
&
alarms
Loc.
Server
…..
NETWORK TIME CRITICAL DPE BUS
OSP
JCA 1.5: UC2. Real Time Rating.
WebServices
JSP/Servlets
J2EE
Rating
Rating
User Profile
Provisioning
Third Party
Call
Accounting
Multimedia
Message
Call notification
Payment
Terminal
Location
Short
Message
User Status
APPLICATION TIME CRITICAL DPE BUS
PSE
Rating
Engine
Stats
&
alarms
Loc.
Server
…..
NETWORK TIME CRITICAL DPE BUS
OSP
JCA 1.5: UC2. Real Time Rating.
WebService
s
JSP/Servlets
J2EE
Rating
Rating
Rating
Rating
Rating
APPLICATION TIME CRITICAL DPE BUS
PSE
Rating
Engine
Stats
&
alarms
Loc.
Server
…..
NETWORK TIME CRITICAL DPE BUS
OSP
JCA 1.5: UC2. Real Time Rating.
Servlets
Basic Services High Level 3rd Party Itf
WebServices
JSP
J2EE
Service
Logic
Service
Primitives
Supporting
Components
Nw Tx
DPE BUS
Connector
APPLICATION TIME CRITICAL DPE BUS
PSE
Rating
Engine
Stats
&
alarms
Loc.
Server
…..
NETWORK TIME CRITICAL DPE BUS
OSP
JCA 1.5: UC2. Real Time Rating.
Application
Server
Container Connector Services
J2EE 1.4
getBalance(Account) {
Rating EJB
getBalance(Account)
adviceOfCharge(Account, item)
reserveAmount(Account,€$)
chargeAmount(Account, €$)
}
releaseAmount(Account, €$)
DPE Conn
Connection = ConnectionFactory.getConnetion();
DPEMessage = Connection.createMessage(Service);
Message primitives
DpeMessage.setRequestType(BALANCE_OP);
request, send(Async)
DpeMessage.setAccount(Account);
result = Connection.request(DpeMessage);
sync
Connection.close();
async
return result;
Protocol Impl
NIO
NIO
APPLICATION TIME CRITICAL DPE BUS
JCA 1.5: UC2. Real Time Rating.
Performance Comparison
400%
350%
300%
250%
JAR-Based
Connector
200%
150%
100%
50%
0%
CPU usage
Normalized on JAR-Based Communication (legacy)
CAPS
Outline
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
JAIN SLEE
Application Server
Low Latency
High Throughput
Event Processing
• 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
Management
Application
JMX Agent
Component
Container
SLEE
Timer Facility
SBB
SBB
Alarm Facility
SLEE & Service
Management
Interfaces
SBB
Trace Facility
Usage Facility
SBB
SBB
Event Dispatcher
JAIN Application Interfaces
N e t w o r k
HTTP, SIP
HTTP, SIP
IP/LAN/WAN/3G
DSL/WLL
A d a p t e r s
CAP, WIN
SMS, WAP
PLMN
INAP, AIN
PSTN
JAIN SLEE Features
• Event based component infrastructure
– Event router: routes events to interested event consumers
– Dynamic event channels: Activities & ActivityContexts
– Event filtering support
• 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 usual container stuff…
– Life cycle management, pooling, threading, …
Component architecture
• 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
Profile
Tables
Service
SBB
RA
SBB
SBB
RA
• The SBBs contain the application logic
• The Profile Tables represent provisioned data
• The Resource Adaptors are the external interfaces
Dynamic Event Channels
Activities & Activity Contexts
SBB Container
Resource Adaptor Framework
JAIN SLEE 1.0
X
public void onEventA(EventA e, AcitivtyContextInterface aci) {
doWork(e);
}
SBB
SBB
Resource
Adapter
Framework.activityCreated(activity);
X
X
Framework.sendEvent(activity, eventA);
Framework.sendEvent(activity, eventB);
public void onEventB(EventB e, AcitivtyContextInterface aci) {
doWork(e);
}
Same address space
Network
Element
Asynchronism in J2EE
• Implemented through message driven beans
Get State
from DB
MD-EJB
Custom Message
Message
MD-EJB
event channel
Message Queue
JMS Message
Database
Relation to Queue or Topic is
fixed in deployment descriptor
MD-EJB
Message Topic
Create
State in
DB
MD-EJB
…
Do I have to
process this event ?
Mapping of JAIN SLEE Concepts
SBB
Dynamically attach or detach
from Activity Context
Handled by JAIN SLEE
Activity Context
Event
SBB
Activity Context
SBB State
Event
SBB
Activity Context
SBB
Event
Creation of SBB State is
handled automatically
Dynamic
creation of
Activity
Contexts
Outline
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Use Case: Prepaid Charging
• Conclusions
Usage scenario’s for JAIN SLEE
• 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)
JAIN SLEE
Contains for each phone number a
tarif scheme & account info
SLEE
Periodic
ArmEvents
Timer
Timer
Fetch
Workmoney
Profile Table
Timer Facility
PrePaid
Charging
Service
Lookup
Tarif
Component
Container
SBB
Instance A
SBB
Instance B
A
AccountManager API
AccountManager RA
Mobile CC RA
Start
Start Call
Call A
AccountManager
Call Control API
Mobile
B
Fixed CC RA
PSTN
JAIN SLEE
Contains for each phone number a
tarif scheme & account info
SLEE
Profile Table
Timer Facility
Component
Container
Cancel Timer
PrePaid
Charging
Service
SBB
Instance A
SBB
Instance B
A
AccountManager API
AccountManager RA
Mobile CC RA
Stop
StopCall
CallB
AccountManager
Call Control API
Mobile
B
Fixed CC RA
PSTN
JAIN SLEE
Contains for each phone number a
tarif scheme & account info
SLEE
Profile Table
Timer Facility
PrePaid
Charging
Service
Refund
Leftover
Component
Container
SBB
Instance A
SBB
Instance B
A
AccountManager API
AccountManager RA
Call Control API
Mobile CC RA
Mobile
AccountManager
B
Fixed CC RA
PSTN
JAIN SLEE
Contains for each phone number a
tarif scheme & account info
SLEE
Profile Table
Timer Facility
PrePaid
Charging
Service
Component
Container
SBB
Instance A
A
AccountManager API
AccountManager RA
Call Control API
Mobile CC RA
Mobile
AccountManager
Fixed CC RA
PSTN
JAIN SLEE
Contains for each phone number a
tarif scheme & account info
SLEE
Profile Table
Timer Facility
PrePaid
Charging
Service
Component
Container
SBB
Instance A
A
AccountManager API
AccountManager RA
Call Control API
Mobile CC RA
Mobile
AccountManager
Fixed CC RA
PSTN
JAIN SLEE
Contains for each phone number a
tarif scheme & account info
SLEE
Profile Table
Timer Facility
Component
Container
PrePaid
Charging
Service
AccountManager API
AccountManager RA
Call Control API
Mobile CC RA
Mobile
AccountManager
Fixed CC RA
PSTN
Outline
• Java & Telecom
• Java Connector Architecture 1.5
• JAIN Service Logic Execution Environment
• Conclusions
Summary
• 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
If You Only Remember One Thing…
YES,
Telecom
loves
Java
! ?
… does
Telecom
love
Java
Socket
Socket
NIO
JAIN SIP SIPNIO
Servlets
JAIN SIP SIP Servlets
JAIN JAIN
SLEE
JCA 1.5
MEGACO
JAIN INAP
HTTP
MEGACO
JAIN INAP JAIN
JCC
JCC HTTP
JavaPolis 2004
•Gerard Maas
gerard.maas@alcatel.be
•Bert Van Vlerken
bert.van_vlerken@alcatel.be
www.alcatel.be
Download