SOA
Adheres to Policy governed by
Binds to End Point Exposes
Serves
Service
Understands Contracts implements Service
Consumer
describes
Key
Component
Sends/Receives Messages Sends/Receives Relation
Distributed Pipes and Layered Client
Agents Filters System Server
Stateless
Comm.
SOA is derived from
SOA other styles
SOA vs. REST
Distributed Pipes and Layered Client Replicated Uniform Virtual
Agents Filters System Server Repository Interface Machine
Stateless Code On
Cacheable
Comm. Demand
SOA REST
System Mobile Integration
3G Video Dedicated
Monitoring MMS 3rd parties
Calls Client
Usage
Datmart Applications Ad Management
Targeted Campaign
Billing Acquisition Interactions branding
Advertizing Mgmt.
Reporting Resources
Data mining Reference
& Statistics Interactions Links
Data
Link Managment
Reports
Publishing
Data Web Interaction
tools
Interfaces Front-end Designer
integration
Load balancer Smart
phones
Web Web MMS 3G 3G
Server Server Gateway Gateway Gateway
(IIS/Apache (IIS/Apache Camera
Phones
DMZ
Firewall
Load balancer
App App App App App
App App
Server Server Server Server Server
Server Server
Operational
Firewall
Backend
BI & Sync. Paper
NMS Links
Reporting Registeration Server Editor
Web
Firewall
Server
(IIS/Apache
DB Datamart DB Advertizing
clients
Links usage References Admin
Console
DMZ
Service Instance with NLB
Real IP : 1.1.1.4 Real IP : 1.1.1.3 Real IP : 1.1.1.2
Windows Host Cluster Host Cluster Host
Service Service
Edge Instance
Instance
Windows Kernel Windows Kernel Windows Kernel
TCP/IP TCP/IP
TCP/IP
NLB Driver NLB Driver
NIC Driver
NIC Driver NIC Driver
NIC NIC NIC
Virtual IP : 1.1.1.1
Service view
[ServiceContract]
public interface ImPostOffice : ImContract, IHandleSendCoupon,
IHandleSendSms,IHandleStatus,IHandleAdminStatus,IHandleWapLink,
IHandleSendMms
{
}
[ServiceContract]
public interface IHandleSendMms
{
[OperationContract]
int SendMms(SendMmsEvent eventOccured);
}
[DataContract]
public class SendMmsEvent : ImEvent
{
/// <summary>
/// end user's number. should be in international format: +[country-code]number. Example: +491737692260
/// </summary>
[DataMember]
public string ToNumber { get; set; }
/// <summary>
/// service's number, usually a short-code. Example: 84343
/// </summary>
[DataMember]
public string FromNumber { get; set; }
Edge translates external structures to
internal ones
public int SendMms(SendMmsEvent eventOccured)
{
var eventContext = eventOccured.ToString();
if (log.IsDebugEnabled)
log.Debug("inside 'SendMms', event context = [" + eventContext + "]");
var fromNumber = eventOccured.FromNumber;
var sender = mmsSenderFactory.Get(fromNumber);
if (null == sender)
{
if (log.IsWarnEnabled)
log.Warn("cannot get mms sender derived from '" + (fromNumber ?? "null") + "'");
return 0;
}
IMmsSubmitResponse response;
try
{
var mmsMessageDetails = new MmsMessageDetails(eventOccured.ToNumber,
eventOccured.TextAsByteArray,
eventOccured.ImageAsByteArray,
eventOccured.ImageExtension,
eventOccured.Subject);
response = sender.Submit(mmsMessageDetails);
}
catch (Exception ex)
{
log.Error("cannot send mms message, context = [" + eventContext + "]", ex);
return 0;
}
if (log.IsInfoEnabled)
{
var responseMessage = (null == response) ? "null" : response.ToString();
log.Info("sent mms with event context = [" + eventContext + "], response = [" +
responseMessage + "]");
}
Service Monitor
Collect
Metrics
collection Status
Fault
Monitoring Reporting &
Security Dashboarding Edge/Service
monitoring
Status
Policy
governance Notify
Commands
Control In
Monitor Act Edge/Service
Service Monitor
http://devrig:52141/RM/Sessions/abc/
• ATOMPUB
– Session details
• URI (ID)
• State (start/end/status etc.)
• Resources
– Knows status
– URI for the Resource representation on the RM
– URI for the Resource itself
Service Instance #1
Control Control
Edge Edge Service Instance #2
Business Event Control Business
Event
Logic Broker Edge
Broker Logic
Resource Event Business
Resource
Allocator Service Host Logic
Broker
Allocator
Service Host
Resource Host
Service
Service Host
Allocator
Service Host Service Host
Control
Reservation Edge
Event Business
Broker Logic
Resource
Service Host
Allocator
Service Host