SOA Service describes End Point Exposes Messages Sends/Receives
Contracts Binds to Service Consumer implements Policy governed by
Sends/Receives Adheres to Component Relation Key Understands
Serves
Slide 6
SOA is derived from other styles Pipes and Filters Client
Server Distributed Agents Distributed Agents Layered System Layered
System Stateless Comm. Stateless Comm. SOA
Slide 7
SOA vs. REST Pipes and Filters Client Server Uniform Interface
Virtual Machine Distributed Agents Distributed Agents Layered
System Layered System Replicated Repository Code On Demand Code On
Demand Stateless Comm. Stateless Comm. Cacheable RESTSOA
Slide 8
SOA also means challenges
Slide 9
and patterns can help mitigate them Service Firewall Identity
Provider Edge Component Request/Reply Transactable Service Saga
Workflodize Orchestrated Choreography Client/Server/Service
Composite Frontend Decoupled Invocation Gridable Service Parallel
Pipelines Virtual Endpoint Service Instance Service Monitor
Blogjecting Watchdog Inversion of Communications Aggregated
Reporting
3G Video Calls MMS Dedicated Client Dedicated Client Mobile
Integration Applications Acquisition Interactions branding Services
Ad Management Interactions Reference Data Reference Data Paper
Links Paper Links Resources Monitoring Targeted Advertizing
Campaign Mgmt. Usage Datmart Reporting Billing Data mining &
Statistics Reports Editorial IntegrationAdvertisers Integration
Publishing tools integration Interaction Designer Interaction
Designer Web Front-end Web Front-end Data Interfaces 3 rd
parties
Slide 13
Load balancer Web Server (IIS/Apache Web Server (IIS/Apache App
Server Web Server (IIS/Apache Web Server (IIS/Apache MMS Gateway
MMS Gateway 3G Gateway 3G Gateway 3G Gateway 3G Gateway Load
balancer Firewall BI & Reporting DB Links DB Links Datamart
usage Datamart usage DB References DB References Li nks
Registeration Sync. Server Sync. Server DMZ Operational Backend
Advertizing clients Firewall Web Server (IIS/Apache Web Server
(IIS/Apache NMS Paper Editor Paper Editor Smart phones Smart phones
DMZ Camera Phones Camera Phones Admin Console Admin Console
Slide 14
Edge Business Logic Business Logic WD Agent WD Agent Event
Broker Event Broker Resource Allocator Resource Allocator
ServiceHost
Slide 15
The Service host sets up the common components and services for
each Component
Slide 16
CHALLENGE SERVICE AVAILABILITY
Slide 17
Whats in a 9
Slide 18
0.99 reliability We have a nice little legacy business
component
Slide 19
0.99 And we move it to SOA
Slide 20
Failsafe hardware Status Technologies FT Server
Slide 21
Or try to detect failure, handle it and minimize its effect on
overall service Rosendahl
Slide 22
Whats the effect of a failure - Server E1 line = 30 concurrent
video calls Call Flow Service Call Flow Service
Slide 23
request reaction Edge Service Instance Dispatcher Distribute
Request/Reply End point Service Business logic Service Business
logic Service Instance
Service Instance with NLB Service Instance NLB Driver Cluster
Host NIC Driver TCP/IP Windows Kernel NIC NLB Driver Cluster Host
NIC Driver TCP/IP Windows Kernel NIC Virtual IP : 1.1.1.1 Real IP :
1.1.1.2Real IP : 1.1.1.3 Service Instance Edge Windows Host NIC
Driver TCP/IP Windows Kernel NIC Real IP : 1.1.1.4
Slide 26
Alternative : Virtual Endpoint
Slide 27
CHALLENGE - FLEXIBILITY
Slide 28
Request/Reply Service EndPoint Synchronous processing
Synchronous processing 1. Request 2. 3. Reply Service Consumer
Slide 29
Things look Cool & Simple Session negations Image
extraction identification Translation to links Render resutls 3G
Call
Service view [ServiceContract] [DataContract] public class
SendMmsEvent : ImEvent { /// /// end user's number. should be in
international format: +[country-code]number. Example: +491737692260
/// [DataMember] public string ToNumber { get; set; } /// ///
service's number, usually a short-code. Example: 84343 ///
[DataMember] public string FromNumber { get; set; } /// /// Text,
as byte array. Use Encoding classes to do it. /// [DataMember]
public byte[] TextAsByteArray { get; set; } /// /// Image, as byte
array. Can be: jpg, gif, png, bmp. (jpg rulez!!) /// [DataMember]
public byte[] ImageAsByteArray { get; set; } /// /// Remeber
ImageAsByteArray ? - This is where you manaually tell us what's the
extension. Yes, we can inspect the signature, but why? ///
[DataMember] public string ImageExtension { get; set; } /// /// the
mms message should have a subject. just put something there. ///
[DataMember] public string Subject { get; set; }
Slide 35
Edge translates external structures to internal ones
Slide 36
Sagas tie instances together for conversations
Slide 37
SIP Image Extractor Identification X Call Recovery
Slide 38
Alternative : Orchestration request Workflow Engine Workflow
instance Manage Process Manage Process route request Host Workflows
Host Workflows Schedule Orchestration platform Service reaction
Auxiliary tools Coordinator Protocol Offline designer Offline
designer 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
Slide 45
Edge Business Logic Business Logic WD Agent WD Agent Event
Broker Event Broker Resource Allocator Resource Allocator
ServiceHost
Slide 46
WatchDog Service A Service B WDWatcher
Slide 47
SIP Image Extractor Identification X Call Recovery
WatchDog
Slide 48
Slide 49
Status Service Monitor Edge/Service In Commands Metrics
collection Metrics collection Policy governance Policy governance
Security monitoring Security monitoring Fault Monitoring Fault
Monitoring Reporting & Dashboarding Reporting &
Dashboarding Control Edge/Service Status MonitorAct Collect Notify
Service Monitor
Slide 50
Image of the site-manager
Slide 51
Keep the BIT
http://www.flickr.com/photos/37643027@N00/2050024263/sizes/o/
Slide 52
X Call Recovery WatchDog Liveliness Monitor 3G Call
Slide 53
CHALLENGE - REPORTING
Slide 54
Reporting?! BI? but the data is fragmented
Slide 55
Aggregated Reporting Subscribed/ Polled data Poll Data Edge
Aggregated Reporting Service EndPoint ODS Out Pre-Proces Save Data
Load report Convert Request Send Clean Join Transform Transpose
Produce reports Produce reports Report EndPoint Request
Slide 56
CHALLENGE MULTI-TENNANCY (LIES, I TELL YOU, ALL LIES)
Slide 57
Same event different subscribers Call Flow Player (interaction
Renderer) Player (interaction Renderer) Call Flow Bridge to 3 rd
Party Bridge to 3 rd Party Play Movie Event
Slide 58
Routing
Slide 59
Initiator A Initiator B Participant B Capacity : 1 Raise a saga
initiating event Now what ?! Participant A Capacity : 2
Slide 60
Reservation Pattern
Slide 61
Event Broker Event Broker Service Host Resource Allocator
Resource Allocator Business Logic Business Logic Control Edge
Control Edge Service Host Business Logic Business Logic Event
Broker Event Broker Service Host Resource Allocator Resource
Allocator Control Edge Control Edge Service Instance #1 Service
Host Business Logic Business Logic Event Broker Event Broker
Service Host Resource Allocator Resource Allocator Control Edge
Control Edge Service Instance #2 Service Host Business Logic
Business Logic Event Broker Event Broker Service Host Resource
Allocator Resource Allocator Control Edge Control Edge
Reservation