SOA Best Practices

From AMWA

Jump to: navigation, search

Contents

Introduction

The document is organized along some major SOA concepts and themes that relate both to the business aspects of SOA and to its enablement via existing technologies and standards. Even though these concepts and themes are generic to various industries, the expectation is that this document will focus only on examples, use cases, practices and technologies that specifically relate to the M&E industry.

This document will initially address only one particular focus area within the M&E industry, as identified by the AMWA Group. As other areas of interest get identified by the Group in the future, it might be decided that different Best Practices documents are needed for those different areas. In that case, this original single document might get subdivided by:

Industries (broadcast networks vs. cable networks vs. film industry) Targeted users (consumer vs. professional) Functional areas (production, asset management, post-production, distribution) Business scope (intra-department vs. intra-company vs. cross-company) Geographic scope (domestic vs. international)

Text in italics provides directions for completing a particular item in the document


Business-related Best Practices

Fundamental Business Precepts

Keep messaging networks separate from networks that move video and audio

It is critical that messages be sent over a separate network from the network that moves video. There are several reasons for this. First, the characteristics of messages are fundamentally different from the characteristics of video files. Messages are usually one to several packets long - video files are transmitted over millions (billions?) of packets. Because messages are relatively light-weight, they do not require special networking architecture. Depending upon the facility, it may be the case that a separate video network is built from very high-speed, highly managed networking components with limited connectivity to the outside world. For this reason, if you combine messaging on the same network as video transfer, you may have limited visibility of those messages to the broader organization, and this is contrary to the fundamental goals of SOA to support the business process. Second, if you use a single network and the network becomes congested, messages could be discarded as a result of fundamental behaviours of queues in routers. This would be a Bad Thing. Third, it is not uncommon to encounter different security policies on video files transferred across a network compared to security policies which are applied to business networks.

SOA Goals

Business Agility

  • Typical examples of situations requiring business agility.
  • Major obstacles encountered in achieving agility.
  • Areas of prioritization.

Eliminate Silos

  • Typical examples of silos, both at the product level and the application level, specifying functionality and data not made accessible and being duplicated.
  • Best approaches to breaking existing silos: wrapping, componentizing, rewriting, etc.

Bridge Business and IT

  • Areas where the separation between business and IT is most severe.
  • Examples of different approaches, tools and languages adopted in the two domains.
  • Different approaches and tools to bridge the gap.

Reusability

  • Areas providing best opportunities of reuse.
  • Reusability within the same domain vs. reusability across domains.

Loose coupling

  • Examples of loose coupling enabling reusability and business agility.
  • Which coupling dimensions are more critical: platform, time, location, state, etc.

Composability

  • Identify various levels of abstraction.
  • Provide examples of services at a particular layer which are composed from services from a lower layer.
  • Dividing line between business processes and business services.
  • Dividing line between business services and infrastructure services.
  • Identify “atomic” services.
  • Role of business rules


Service identification

Decomposition techniques

  • Domain decomposition
  • Existing systems analysis
  • Goals-Services Graph

Decomposition approaches

  • Top-down
  • Bottom-up
  • Middle-out

Names of services, operations and messages

References to existing nomenclatures

Service Litmus Test

  • Goals alignment - see Goals section above
  • Granularity of services and messages
  • Trade-offs between granularity and reusability
  • Functional coherence
  • Chattiness

Interface and semantics

  • Identify best ways to describe service interface and semantics.

When a time critical operation is being defined (e.g. "start recording"), it is recommended that such logical operation actually consist of two separate actual operation (e.g. "get ready to record", shortly followed by "record now"). Because of issues like latency and difficulty in guaranteeing that service requester and provider are set exactly on the same time, this approach is more accurate than the one where only one operation is used to achieve the desired effect.

  • Message-oriented vs. RPC style.
  • Avoid leakage of implementation details.
  • Service should evolve without breaking existing contracts (as much as possible)

Policies

Which server policies are most relevant: performance (real-time or not), security, reliability, availability, scalability, etc.

Security

  • Identity (authentication)
  • Authority (authorization)
  • Confidentiality (encryption)
  • Integrity (certificates)
  • Non-repudiation


Service Governance

  • Design principles
  • Preferred design patterns
  • Application-factoring rules
  • Naming conventions
  • Metadata requirements
  • Documentation
  • Preferred products
  • Product selection guidelines
  • Preferred domain standards
  • Preferred industry standards
  • Methods for dealing with regulatory requirements
  • Methods for assessing security risks
  • Methods for implementing security based on risk factor
  • Methods for ensuring reliability and transaction integrity
  • Service testing
  • New service deployment and staging
  • Service registration
  • Service classification
  • Service provisioning
  • Service configuration
  • Service monitoring
  • Client provisioning
  • Service modification
  • Service versioning
  • Impact analysis
  • Service level agreement (SLA) compliance tracking
  • Error tracking and resolution


Modeling/Documentation

  • Informal
  • BPMN
  • UML
  • State transition diagrams
  • Taxonomy of services and processes


Technology- and standards-related Best Practices

Service Description

  • WSDL (1.1, 2.0)
  • Process model (Abstract BPEL 2.0)
  • Static location (WSDL service address)
  • Dynamic location (routing, discovery, WS-Addressing)
  • Versioning


Service Semantics


Service Discovery


Service Interactions - MEPs (Message Exchange Patterns)

  • Point-to-point one-way
  • Point-to-point request-response
  • Broadcast
  • Publish/Subscribe, brokered or not (JMS, MSMQ)
  • Event-based (WS-Eventing)
  • RPC-style messaging (SOAP 1.2)
  • Document-based messaging (SOAP 1.2)
  • Resource-oriented messaging (REST)
  • Message schemas/vocabularies/formats (XML Schema)
  • Message semantics
  • Header information vs. body information
  • Synchronous messaging
  • Asynchronous messaging, correlation handling (WS-Addressing)
  • Business-level correlation IDs vs. system-level correlation IDs
  • Polling
  • Store-and-forward
  • Message reliability (WS-ReliableMessaging, JMS Transport)
  • HTTP transport
  • JMS transport
  • RMI transport
  • No transport (e.g. direct Java to Java)
  • In-band data transfers
  • Message attachments (SOAP 1.2 MTOM/XOP)
  • Out-of-band data transfers (FTP, proprietary)
  • Essence transfer vs. metadata transfer


Business Processes / Composite Services

  • Composition
  • Orchestration (BPEL 2.0, Java)
  • Choreography (WS-CDL)
  • Human workflow (BPEL4people)
  • BPMN diagrams
  • UML Activity Diagrams
  • Proprietary diagrams (e.g. IBM Process Modeler diagrams, IBM WID Process Editor diagrams)


Business Rules

  • Code-based
  • Business rules engine (RuleML, Rule Interchange Format)


Adapter/Bus approaches

  • Canonical format/protocol approach (adapters)
  • One-to-one transformations (ESB)
  • Routing (static/dynamic)
  • Failover
  • Load balancing
  • Mediations (transcoding, data/media validation/transformation/enrichment, protocol conversion, logging, authentication, authorization, etc.)


Policies / Contracts

  • WS-Policy
  • WS-SecurityPolicy


Security

  • Point-to-point (SSL)
  • End-to-end (WS-Security, WS-SX)


Transactions

  • Atomic (WS-TX AT)
  • Long running (failure management, manual compensation, WS-TX BA)


Data Model

  • ETL (Extract, transform and load)
  • EII (Enterprise Information Integration)
  • MDM (Master data management)
  • Data-on-the-inside vs. data-on-the-outside


Service Management

  • Configuration Management
  • Accounting Management
  • Performance Management
  • Security Management
  • Monitoring
  • Life cycle
  • Versioning


User interface

  • Client application - thick client
  • Forms client (XForms)
  • Browser client / Ajax
  • Portal
  • Portal server (portlets, WSRP)


I18N and L10N


Modeling/Documentation

  • Informal
  • WSDL, Abstract BPEL, WS-CDL
  • BPMN
  • UML
  • SCA
Personal tools