Project in-class Presentation
Download
Report
Transcript Project in-class Presentation
ECE 355
Project Pointers
In-Class Presentation
K. Kontogiannis
Project Objectives
Become familiar with UML modeling techniques
and a structured software development process
Gain experience with integrating different
technologies and components to produce a
working system
Apply material taught in class to a realistic
project
SIP Operational Profile
(User Agent Registration)
SIP Operational Profile
(Normal Scenario)
Extended SIP Operational Profile - 1
2.1 The Location Server checks whether
Agent B sip:[email protected] has registered
any Web service.
2.2. Assuming the result from the Service Registry
is NULL, then the operation proceeds
with the Location Server returning the IP
address of sip::[email protected] and the protocol
continues as if placing a normal call.
Extended Operational Profile -2
Web
Service
6. Wrapper calls
Web Service using the
SOAP protocol and
WSIF/JAXRPC
libraries
Service
Repository
7. Service returns
Invocation result
status
2.1 Obtain Service
Handlers for B
2.2 Return Service
Handlers for B
Location Server
SIP Agent
Wrapper
5. Agent forwards
Service handler
Info to Wrapper
Step 3
8. Wrapper forwards
service invocation
result status to Agent A
2. Locate B
3. Forward Service Handlers
for Agent B to Proxy Server
result = Query-Service-Registry(agent); I
f result == NULL then
find-agent-location-IP(agent)
else {
forward-handlers-to-proxy(result)
1. Invite B
Proxy Server
Client Agent A
4. DECLINE message for
calling B and forward
Service Handlers of Agent B
to Agent A (caller)
to Agent A
ClientAgent B
Step 4.
/* Obtain services and service bindings */
msg = build-message-to-proxy(result);
send-message-to-agent(agent, msg);
}
........
Processing Details
Location Server issues request to obtain service handlers using
JAX-R
Location server obtains result and sends it to the Proxy server
(either IP or service handler)
Proxy server examines reply and forms the appropriate message
and action
User agent selects appropriate service and handler and passes
User Agent credentials and selected service handler (.wsdl file
location) to Wrapper. One Wrapper per User Agent
Wrapper calls service using JAX-RPC or WSIF
Wrapper notifies User Agent for completion
Messages
Check RFC 3261 for SIP message format
In a nutshell the format is:
Message Type
……..
Message Body
Handler Descriptions go here as a long formatted string
“3 -- EmailToOfficeService www.foo.com/sample1.wsdl -EmailToHomeService www.test.com/sample2.wsdl -EmailToMobile www.test.com/sample3.wsdl”
Major Project Components
JAIN-SIP
– Registration Server
– Location Server
– Proxy Server
SIP Communicator
WSDP
– Service Registry (uses Tomcat for WSDP or Suns App
Server)
– JAX-R
– JAXRPC
WSIF (alternative to JAX-RPC)
Service Registry
1. Organization (Business Entity – Your own
group)
1.1. Services (Business Services. Contain descriptions
of services, contact names etc.)
1.1.1. Service Bindings (Binding Template. Contain technical
information about a service, and references to t-Models)
1.1.1.1. External Links (Contain pointers to technical description
of services. These external links reference wsdl files)
Service Registry
You can install you own (as part of the
WSDP). You will need Sun’s App Server.
You can use the public one set for this
project at:
http://www.ece.uwaterloo.ca:8080/soar/reg
istry/thin/browser.jsp
(If this URL changes we will let you know)
Registering Services
The idea is for you to modify the
“template” service we will give to you and
crate “variants”
You can register the new services using
the Registry UI (see URL) or by creating a
Java client program (see examples) using
JAX-R
Service Template
Service: S::Selective e-mail Service
Input: A::Agent /*Calling Agent */
Message::String
Local Variables: B::Agent /*Service Owner – Called Agent)
Output: R::Result status
/* Operational template */
if (A == A1 or A2 or …) then
{
mail-to:[email protected] (Message::String);
R=OK;
}
elseif (A==A3 or . . . )
{
mail-to:[email protected](Message);
R= OK
}
elseif . . . .
........
else R=FAIL
Extended User Agent
Wrapper
User Agent
Wrapper
refToWrapper:Wrapper
refToUserAgent: UserAgent
1 IsWrapedBy
Wraps
1
Summary of Tasks
To familiarize with the code (JAIN-SIP, SIP-Communicator) and the structure of the
Service Registry entries
To modify the Location server to be able to query the service registry (sample code to
query the registry using the JAXR API will be given to you), and pass the list of
services or NULL to the Proxy for further processing
To modify the proxy server to be able to accept service descriptions from the registry
and to compose MESSAGE BODY strings
To modify the Client Agent to reference a Wrapper. The code for the new Client Agent
(SIP-communicator) UI will be given to you
To create a Wrapper class that references the Client Agent. This Wrapper class
should use the WSIF or the JAAX-RPC API to invoke the Web Service that has been
selected using the Client Agent UI
To modify the template service and the wsdl specification file that will be given to you
to create variant Web Services to use in your system.
Gantt Diagrams
Deliverables for SRS
Use the SRS template document. If there is information
not specified in the project description make an
reasonable assumption (pertains more to NFRs)
Use Case Description for scenaria
Use Case diagrams for scenaria
Specification Level Collaboration
Diagrams for scenaria
Sequencing Diagrams for scenaria
3.2.2
3.2.2, 3.1.2
3.2.1, 3.2.2
3.2.2, 3.1.3
Available Resources
The SIP Communicator and the JAIN SIP Proxy / Location / Registration Servers.
The on-line Service Registry and the Web interface to register and de-register
services. The Service registry is part of the WSDP toolkit that you can also download
and install it on your home PCs.
The JAXR libraries for querying the service registry and sample Java client code to
query and update the registry will be provided. The location of our public Service
Registry is http://www.ece.uwaterloo.ca:8080/soar/registry/thin/browser.jsp
A sample template Web Service and its handler. The service will do selective e-mail
based on the calling Agent, and you can customize it to create several similar
services to be posted on the Registry
The extended SIP Client interface and the code to select a service from a list of
services to pass to the wrapper for invoking the service
The Web Services Invocation Framework WSIF and JAXRPC will be provided in the
form of libraries. Sample Java code to use for invoking a Web service will be provided
for your reference to help you during the implementation stage