SlideShare uma empresa Scribd logo
1 de 9
Book Author: Nicolai M. Josuttis
                        Chapter Three: Services




IT-Slideshares              http://it-slideshares.blogspot.com/
3.1 Services (in SOA) definition
 A "Service" is (ideally) a self-contained, stateless
  business function that accepts one or more requests
  and returns one or more responses through a well-
  defined, standard interface. Services can also perform
  discrete units of work such as editing and processing a
  transaction. Services should not depend on the state of
  other functions or processes. The technology used to
  provide the service, such as a programming
  language, does not form part of this definition.
3.1.1 Services Represent Business
Functionality
   Technically Driven Business Interface
         customerOP(action, // "create", "read", "change", "delete"
                 id, // customer id or null
                 name, // new customer name or null
                 address, // new customer address or null
                 account) // new customer bank account or null

   It is a business interface because it allows you to create a new customer, read or modify his/her data, or delete that data. However, this
    interface is technically driven, probably by a direct mapping to a corresponding database interface.

   In contrast, a business-driven interface might look like this:
         createCustomer(name, address, account)
         readCustomer(id)
         changeCustomerAccount(id, account)
         changeCustomerAddress(id, address, check, modify)
          deleteCustomer(id) // customer id

   Note the following differences:
   Instead of having one signature, you have five. Each operation's name describes the basic functionality from a business point of view. In
    addition, there are no parameters that do not make sense for each particular functionality (for example, for the deletion of a customer, you
    only need the customer ID).
   Operations for reading and writing have different levels of granularity. In this case, you have the ability to change a customer's address or
    bank account independently, but when you read customer data, you get both. Such differences are typical for business processes.
   Specific operations might have additional parameters. In this case, the operation for changing an address has additional attributes that
    specify whether an address check should be performed and whether the address might even be modified according to the address check
    (e.g., replacing "NewYork" with "New York").
   In fact, if you let business people design interfaces on a case-by-case basis, they'll look different from interfaces driven, for example, by the
    underlying database design. Service orientation clearly prefers business-driven over technically driven interfaces, although this does not
    mean that you should not think about possible synergy effects. Start the design based on the requirements, not based on the implementation.
3.2 Interfaces and Contracts
 A service is an interface for (multiple) messages that return
  information and/or change the state of an associated entity
  (backend).
 SOA could be better named “Interface-oriented
  architecture”.
 Interface should be well-defined
    Signature (input, output, possible exception)
 Contracts and QoS are non-functional commitments
    Message exchange patterns (MEPs)
    Notification/Escalation in change of States
    Peak hours handling
3.3 Additional Service Attributes
   Attributes that “may”, “should”, “must” have
   Self-Contained Services (independent, autonomous) but still have some dependecies
   Coarse-grained services balance between dependencies and performance (OASIS SOA Reference
    Model) – by building abstraction layer < slower runtime.
   Visible/Discoverable (where services are hosted)
   Stateless (where/how long the business states exists ? Is it technical or business )
   Idempotent (ability to redo or resend messages when in doubt of states)
   Reusable (performance vs. reusing same service – bottlenecks)
   Composable (use/call other services) leads to BPModeling
   Technical services (autonomous, QoS-enabled, vendor diverse, interoperability, discoverable, and
    potential reusable services, implemented as web services)
   QoS and SLA-Capable (service contract runtime performance, reliability…etc)
   Pre- and Post-Conditions (specify the semantic behavior of services – designed by contract)
   Vendor-Diverse – large distributed systems  many vendors to provide platforms, middlewares …
   Interoperable (see def) – core requirement for SOA
   Implemented as Web Services
        Web Services might be an (obvious) way to implement SOA, but SOA as a concept is not tied to any
         specific technology.
3.3.1 Self-contained Services Def.
 A "Service" has a definition. This definition consists of:

    An explicit and detailed narrative definition supported by a low
     (but not detailed [not implementation specific]) level process
     model.
    A set of performance indicators that address measures/performance
     parameters such as availability (when should members of the
     organization be able to perform the function), duration (how long
     should it take to perform the function), rate (how often will the
     function be performed over a period of time), etc.
    A linkage to the organization's information model showing what
     information the "Service" owns (creates, updates, and deletes) and
     which information it references and is owned by other "Services."
    A listing of known downstream consumers (other "Services" that
     depend upon its function or information) and the documentation
     of their requirements.
3.3.2 Coarse-Grained Services
 The noun "service" is defined in dictionaries as "The performance of work (a
  function) by one for another." However, service, as the term is generally
  understood, also combines the following related ideas:
     The capability to perform work for another
     The specification of the work offered for another
     The offer to perform work for another
 These concepts emphasize a distinction between a capability and the ability to
  bring that capability to bear. While both needs and capabilities exist
  independently of SOA, in SOA, services are the mechanism by which needs
  and capabilities are brought together.
 ...
 The consequence of invoking a service is a realization of one or more real world
  effects. These effects may include:
     information returned in response to a request for that information,
     a change to the shared state of defined entities, or
     some combination of (1) and (2).
3.3.12 Interoperable
 From a business perspective, services are IT assets that
  correspond to real-world business activities or
  recognizable business functions and that can be
  accessed according to the service policies that have
  been established for the services.
 ...
 From a technical perspective, services are coarse-
  grained, reusable IT assets that have well-defined
  interfaces (a.k.a. service contracts) that clearly
  separate the services' externally accessible interface
  from the services' technical implementation.
3.4 Summary
    Here is my summarizing definition of "service" in the context of SOA:
       A service is the IT realization of some self-contained business functionality.

    By focusing on the business aspects, a service hides technical details and allows business
     people to deal with it.

    Technically, a service is an interface for (multiple) messages that are exchanged between
     provider(s) and consumer(s).

    The complete description of a service from a consumer's point of view (signature and
     semantics) is called a "well-defined interface" or "contract." A contract is agreed
     individually between a certain provider, and a certain consumer, and usually includes
     nonfunctional aspects such as SLAs.

    There are several attributes that services may (or, according to some definitions, must)
     have. According to my understanding, they are situation-dependent; services will almost
     always have different attributes, and should be classified according to those attributes.


IT-Slideshares                                                http://it-slideshares.blogspot.com/

Mais conteúdo relacionado

Mais procurados

SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentalsabhi1112
 
Delivering Process-Driven, Dynamic Applications
Delivering Process-Driven, Dynamic ApplicationsDelivering Process-Driven, Dynamic Applications
Delivering Process-Driven, Dynamic ApplicationsNathaniel Palmer
 
Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Biniam Asnake
 
Soa Primer
Soa PrimerSoa Primer
Soa Primervavasthi
 
Why Coordination And Transactions Are Key To Building An Operational Soa
Why Coordination And Transactions Are Key To Building An Operational SoaWhy Coordination And Transactions Are Key To Building An Operational Soa
Why Coordination And Transactions Are Key To Building An Operational SoaDavid Linthicum
 
Service oriented architecture
Service oriented  architectureService oriented  architecture
Service oriented architecturePratik Patil
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture Prabhat gangwar
 
03 Service Oriented Architecture Series - Basic SOA Architecture
03 Service Oriented Architecture Series - Basic SOA Architecture03 Service Oriented Architecture Series - Basic SOA Architecture
03 Service Oriented Architecture Series - Basic SOA ArchitecturePouria Ghatrenabi
 
SOA Service-oriented Architecture Fundamentals IBM Certification
SOA Service-oriented Architecture Fundamentals IBM CertificationSOA Service-oriented Architecture Fundamentals IBM Certification
SOA Service-oriented Architecture Fundamentals IBM CertificationJaguaraci Silva
 
Transitioning Enterprise Architectures to Service Oriented Architectures
Transitioning Enterprise Architectures to Service Oriented ArchitecturesTransitioning Enterprise Architectures to Service Oriented Architectures
Transitioning Enterprise Architectures to Service Oriented ArchitecturesNathaniel Palmer
 
Service-oriented Architecture with Respect to Reusability
Service-oriented Architecture with Respect to ReusabilityService-oriented Architecture with Respect to Reusability
Service-oriented Architecture with Respect to ReusabilityYazd University
 
IT6801-Service Oriented Architecture
IT6801-Service Oriented ArchitectureIT6801-Service Oriented Architecture
IT6801-Service Oriented ArchitectureMadhu Amarnath
 
SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented ArchitectureVinay Rajadhyaksha
 
Occam’s Razor Needs a New Blade: On the Social Limits to Enterprise SOA
Occam’s Razor Needs a New Blade: On the Social Limits to Enterprise SOAOccam’s Razor Needs a New Blade: On the Social Limits to Enterprise SOA
Occam’s Razor Needs a New Blade: On the Social Limits to Enterprise SOANathaniel Palmer
 
Introduction to Service Oriented Architecture
Introduction to Service Oriented ArchitectureIntroduction to Service Oriented Architecture
Introduction to Service Oriented ArchitectureDATA Inc.
 
Service Oriented Architecture and Business Process Modeling Overview
Service Oriented Architecture and Business Process Modeling OverviewService Oriented Architecture and Business Process Modeling Overview
Service Oriented Architecture and Business Process Modeling OverviewJean Ferguson
 
Introduction to soa composition
Introduction to soa compositionIntroduction to soa composition
Introduction to soa compositionbdemchak
 
5 Surefire Ways To Make Your Soa A Success
5 Surefire Ways To Make Your Soa A Success5 Surefire Ways To Make Your Soa A Success
5 Surefire Ways To Make Your Soa A SuccessDavid Linthicum
 
SOA for Enterprise Architecture
SOA for Enterprise ArchitectureSOA for Enterprise Architecture
SOA for Enterprise ArchitectureYan Zhao
 

Mais procurados (20)

SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentals
 
Introduction to SOA
Introduction to SOAIntroduction to SOA
Introduction to SOA
 
Delivering Process-Driven, Dynamic Applications
Delivering Process-Driven, Dynamic ApplicationsDelivering Process-Driven, Dynamic Applications
Delivering Process-Driven, Dynamic Applications
 
Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)
 
Soa Primer
Soa PrimerSoa Primer
Soa Primer
 
Why Coordination And Transactions Are Key To Building An Operational Soa
Why Coordination And Transactions Are Key To Building An Operational SoaWhy Coordination And Transactions Are Key To Building An Operational Soa
Why Coordination And Transactions Are Key To Building An Operational Soa
 
Service oriented architecture
Service oriented  architectureService oriented  architecture
Service oriented architecture
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture
 
03 Service Oriented Architecture Series - Basic SOA Architecture
03 Service Oriented Architecture Series - Basic SOA Architecture03 Service Oriented Architecture Series - Basic SOA Architecture
03 Service Oriented Architecture Series - Basic SOA Architecture
 
SOA Service-oriented Architecture Fundamentals IBM Certification
SOA Service-oriented Architecture Fundamentals IBM CertificationSOA Service-oriented Architecture Fundamentals IBM Certification
SOA Service-oriented Architecture Fundamentals IBM Certification
 
Transitioning Enterprise Architectures to Service Oriented Architectures
Transitioning Enterprise Architectures to Service Oriented ArchitecturesTransitioning Enterprise Architectures to Service Oriented Architectures
Transitioning Enterprise Architectures to Service Oriented Architectures
 
Service-oriented Architecture with Respect to Reusability
Service-oriented Architecture with Respect to ReusabilityService-oriented Architecture with Respect to Reusability
Service-oriented Architecture with Respect to Reusability
 
IT6801-Service Oriented Architecture
IT6801-Service Oriented ArchitectureIT6801-Service Oriented Architecture
IT6801-Service Oriented Architecture
 
SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented Architecture
 
Occam’s Razor Needs a New Blade: On the Social Limits to Enterprise SOA
Occam’s Razor Needs a New Blade: On the Social Limits to Enterprise SOAOccam’s Razor Needs a New Blade: On the Social Limits to Enterprise SOA
Occam’s Razor Needs a New Blade: On the Social Limits to Enterprise SOA
 
Introduction to Service Oriented Architecture
Introduction to Service Oriented ArchitectureIntroduction to Service Oriented Architecture
Introduction to Service Oriented Architecture
 
Service Oriented Architecture and Business Process Modeling Overview
Service Oriented Architecture and Business Process Modeling OverviewService Oriented Architecture and Business Process Modeling Overview
Service Oriented Architecture and Business Process Modeling Overview
 
Introduction to soa composition
Introduction to soa compositionIntroduction to soa composition
Introduction to soa composition
 
5 Surefire Ways To Make Your Soa A Success
5 Surefire Ways To Make Your Soa A Success5 Surefire Ways To Make Your Soa A Success
5 Surefire Ways To Make Your Soa A Success
 
SOA for Enterprise Architecture
SOA for Enterprise ArchitectureSOA for Enterprise Architecture
SOA for Enterprise Architecture
 

Semelhante a Lecture 3 - Services

distributed system with lap practices at
distributed system with lap practices atdistributed system with lap practices at
distributed system with lap practices atmilkesa13
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service BusHamed Hatami
 
Study on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture DevelopmentStudy on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture Developmentijcnes
 
Service oriented architecture & web 2.0
Service oriented architecture & web 2.0Service oriented architecture & web 2.0
Service oriented architecture & web 2.0Abhik Tushar Das
 
Study on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture DevelopmentStudy on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture Developmentijwtiir
 
Study on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture DevelopmentStudy on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture Developmentijbuiiir1
 
Transitioning Enterprise Architectures to Service Oriented Architectures
Transitioning Enterprise Architectures to Service Oriented ArchitecturesTransitioning Enterprise Architectures to Service Oriented Architectures
Transitioning Enterprise Architectures to Service Oriented ArchitecturesNathaniel Palmer
 
Service oriented software engineering
Service oriented software engineeringService oriented software engineering
Service oriented software engineeringSweta Kumari Barnwal
 
Lecture 9 - SOA in Context
Lecture 9 - SOA in ContextLecture 9 - SOA in Context
Lecture 9 - SOA in Contextphanleson
 
E-Services course Chapter II ISI by Ettaieb Abdessattar
E-Services course Chapter II ISI by Ettaieb AbdessattarE-Services course Chapter II ISI by Ettaieb Abdessattar
E-Services course Chapter II ISI by Ettaieb AbdessattarAbdessattar Ettaieb
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented ArchitectureSandeep Ganji
 
Introduction to webservices
Introduction to webservicesIntroduction to webservices
Introduction to webservicesGagandeep Singh
 
Project - UG - BTech IT - Cluster based Approach for Service Discovery using ...
Project - UG - BTech IT - Cluster based Approach for Service Discovery using ...Project - UG - BTech IT - Cluster based Approach for Service Discovery using ...
Project - UG - BTech IT - Cluster based Approach for Service Discovery using ...Yogesh Santhan
 
Term paper 2073131
Term paper   2073131Term paper   2073131
Term paper 2073131mtestman
 
Migrating SOA
Migrating SOAMigrating SOA
Migrating SOACoi Xay
 
Falcon Security Essay
Falcon Security EssayFalcon Security Essay
Falcon Security EssayJennifer Wood
 

Semelhante a Lecture 3 - Services (20)

distributed system with lap practices at
distributed system with lap practices atdistributed system with lap practices at
distributed system with lap practices at
 
Soa Eai Ver1 0
Soa Eai Ver1 0Soa Eai Ver1 0
Soa Eai Ver1 0
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
Study on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture DevelopmentStudy on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture Development
 
Service oriented architecture & web 2.0
Service oriented architecture & web 2.0Service oriented architecture & web 2.0
Service oriented architecture & web 2.0
 
Study on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture DevelopmentStudy on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture Development
 
Study on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture DevelopmentStudy on Use Case Model for Service Oriented Architecture Development
Study on Use Case Model for Service Oriented Architecture Development
 
Transitioning Enterprise Architectures to Service Oriented Architectures
Transitioning Enterprise Architectures to Service Oriented ArchitecturesTransitioning Enterprise Architectures to Service Oriented Architectures
Transitioning Enterprise Architectures to Service Oriented Architectures
 
Service oriented software engineering
Service oriented software engineeringService oriented software engineering
Service oriented software engineering
 
Lecture 9 - SOA in Context
Lecture 9 - SOA in ContextLecture 9 - SOA in Context
Lecture 9 - SOA in Context
 
E-Services course Chapter II ISI by Ettaieb Abdessattar
E-Services course Chapter II ISI by Ettaieb AbdessattarE-Services course Chapter II ISI by Ettaieb Abdessattar
E-Services course Chapter II ISI by Ettaieb Abdessattar
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
Introduction to webservices
Introduction to webservicesIntroduction to webservices
Introduction to webservices
 
What is service
What is serviceWhat is service
What is service
 
Kz2519141921
Kz2519141921Kz2519141921
Kz2519141921
 
Kz2519141921
Kz2519141921Kz2519141921
Kz2519141921
 
Project - UG - BTech IT - Cluster based Approach for Service Discovery using ...
Project - UG - BTech IT - Cluster based Approach for Service Discovery using ...Project - UG - BTech IT - Cluster based Approach for Service Discovery using ...
Project - UG - BTech IT - Cluster based Approach for Service Discovery using ...
 
Term paper 2073131
Term paper   2073131Term paper   2073131
Term paper 2073131
 
Migrating SOA
Migrating SOAMigrating SOA
Migrating SOA
 
Falcon Security Essay
Falcon Security EssayFalcon Security Essay
Falcon Security Essay
 

Mais de phanleson

Learning spark ch01 - Introduction to Data Analysis with Spark
Learning spark ch01 - Introduction to Data Analysis with SparkLearning spark ch01 - Introduction to Data Analysis with Spark
Learning spark ch01 - Introduction to Data Analysis with Sparkphanleson
 
Firewall - Network Defense in Depth Firewalls
Firewall - Network Defense in Depth FirewallsFirewall - Network Defense in Depth Firewalls
Firewall - Network Defense in Depth Firewallsphanleson
 
Mobile Security - Wireless hacking
Mobile Security - Wireless hackingMobile Security - Wireless hacking
Mobile Security - Wireless hackingphanleson
 
Authentication in wireless - Security in Wireless Protocols
Authentication in wireless - Security in Wireless ProtocolsAuthentication in wireless - Security in Wireless Protocols
Authentication in wireless - Security in Wireless Protocolsphanleson
 
E-Commerce Security - Application attacks - Server Attacks
E-Commerce Security - Application attacks - Server AttacksE-Commerce Security - Application attacks - Server Attacks
E-Commerce Security - Application attacks - Server Attacksphanleson
 
Hacking web applications
Hacking web applicationsHacking web applications
Hacking web applicationsphanleson
 
HBase In Action - Chapter 04: HBase table design
HBase In Action - Chapter 04: HBase table designHBase In Action - Chapter 04: HBase table design
HBase In Action - Chapter 04: HBase table designphanleson
 
HBase In Action - Chapter 10 - Operations
HBase In Action - Chapter 10 - OperationsHBase In Action - Chapter 10 - Operations
HBase In Action - Chapter 10 - Operationsphanleson
 
Hbase in action - Chapter 09: Deploying HBase
Hbase in action - Chapter 09: Deploying HBaseHbase in action - Chapter 09: Deploying HBase
Hbase in action - Chapter 09: Deploying HBasephanleson
 
Learning spark ch11 - Machine Learning with MLlib
Learning spark ch11 - Machine Learning with MLlibLearning spark ch11 - Machine Learning with MLlib
Learning spark ch11 - Machine Learning with MLlibphanleson
 
Learning spark ch10 - Spark Streaming
Learning spark ch10 - Spark StreamingLearning spark ch10 - Spark Streaming
Learning spark ch10 - Spark Streamingphanleson
 
Learning spark ch09 - Spark SQL
Learning spark ch09 - Spark SQLLearning spark ch09 - Spark SQL
Learning spark ch09 - Spark SQLphanleson
 
Learning spark ch07 - Running on a Cluster
Learning spark ch07 - Running on a ClusterLearning spark ch07 - Running on a Cluster
Learning spark ch07 - Running on a Clusterphanleson
 
Learning spark ch06 - Advanced Spark Programming
Learning spark ch06 - Advanced Spark ProgrammingLearning spark ch06 - Advanced Spark Programming
Learning spark ch06 - Advanced Spark Programmingphanleson
 
Learning spark ch05 - Loading and Saving Your Data
Learning spark ch05 - Loading and Saving Your DataLearning spark ch05 - Loading and Saving Your Data
Learning spark ch05 - Loading and Saving Your Dataphanleson
 
Learning spark ch04 - Working with Key/Value Pairs
Learning spark ch04 - Working with Key/Value PairsLearning spark ch04 - Working with Key/Value Pairs
Learning spark ch04 - Working with Key/Value Pairsphanleson
 
Learning spark ch01 - Introduction to Data Analysis with Spark
Learning spark ch01 - Introduction to Data Analysis with SparkLearning spark ch01 - Introduction to Data Analysis with Spark
Learning spark ch01 - Introduction to Data Analysis with Sparkphanleson
 
Hướng Dẫn Đăng Ký LibertaGia - A guide and introduciton about Libertagia
Hướng Dẫn Đăng Ký LibertaGia - A guide and introduciton about LibertagiaHướng Dẫn Đăng Ký LibertaGia - A guide and introduciton about Libertagia
Hướng Dẫn Đăng Ký LibertaGia - A guide and introduciton about Libertagiaphanleson
 
Lecture 1 - Getting to know XML
Lecture 1 - Getting to know XMLLecture 1 - Getting to know XML
Lecture 1 - Getting to know XMLphanleson
 
Lecture 4 - Adding XTHML for the Web
Lecture  4 - Adding XTHML for the WebLecture  4 - Adding XTHML for the Web
Lecture 4 - Adding XTHML for the Webphanleson
 

Mais de phanleson (20)

Learning spark ch01 - Introduction to Data Analysis with Spark
Learning spark ch01 - Introduction to Data Analysis with SparkLearning spark ch01 - Introduction to Data Analysis with Spark
Learning spark ch01 - Introduction to Data Analysis with Spark
 
Firewall - Network Defense in Depth Firewalls
Firewall - Network Defense in Depth FirewallsFirewall - Network Defense in Depth Firewalls
Firewall - Network Defense in Depth Firewalls
 
Mobile Security - Wireless hacking
Mobile Security - Wireless hackingMobile Security - Wireless hacking
Mobile Security - Wireless hacking
 
Authentication in wireless - Security in Wireless Protocols
Authentication in wireless - Security in Wireless ProtocolsAuthentication in wireless - Security in Wireless Protocols
Authentication in wireless - Security in Wireless Protocols
 
E-Commerce Security - Application attacks - Server Attacks
E-Commerce Security - Application attacks - Server AttacksE-Commerce Security - Application attacks - Server Attacks
E-Commerce Security - Application attacks - Server Attacks
 
Hacking web applications
Hacking web applicationsHacking web applications
Hacking web applications
 
HBase In Action - Chapter 04: HBase table design
HBase In Action - Chapter 04: HBase table designHBase In Action - Chapter 04: HBase table design
HBase In Action - Chapter 04: HBase table design
 
HBase In Action - Chapter 10 - Operations
HBase In Action - Chapter 10 - OperationsHBase In Action - Chapter 10 - Operations
HBase In Action - Chapter 10 - Operations
 
Hbase in action - Chapter 09: Deploying HBase
Hbase in action - Chapter 09: Deploying HBaseHbase in action - Chapter 09: Deploying HBase
Hbase in action - Chapter 09: Deploying HBase
 
Learning spark ch11 - Machine Learning with MLlib
Learning spark ch11 - Machine Learning with MLlibLearning spark ch11 - Machine Learning with MLlib
Learning spark ch11 - Machine Learning with MLlib
 
Learning spark ch10 - Spark Streaming
Learning spark ch10 - Spark StreamingLearning spark ch10 - Spark Streaming
Learning spark ch10 - Spark Streaming
 
Learning spark ch09 - Spark SQL
Learning spark ch09 - Spark SQLLearning spark ch09 - Spark SQL
Learning spark ch09 - Spark SQL
 
Learning spark ch07 - Running on a Cluster
Learning spark ch07 - Running on a ClusterLearning spark ch07 - Running on a Cluster
Learning spark ch07 - Running on a Cluster
 
Learning spark ch06 - Advanced Spark Programming
Learning spark ch06 - Advanced Spark ProgrammingLearning spark ch06 - Advanced Spark Programming
Learning spark ch06 - Advanced Spark Programming
 
Learning spark ch05 - Loading and Saving Your Data
Learning spark ch05 - Loading and Saving Your DataLearning spark ch05 - Loading and Saving Your Data
Learning spark ch05 - Loading and Saving Your Data
 
Learning spark ch04 - Working with Key/Value Pairs
Learning spark ch04 - Working with Key/Value PairsLearning spark ch04 - Working with Key/Value Pairs
Learning spark ch04 - Working with Key/Value Pairs
 
Learning spark ch01 - Introduction to Data Analysis with Spark
Learning spark ch01 - Introduction to Data Analysis with SparkLearning spark ch01 - Introduction to Data Analysis with Spark
Learning spark ch01 - Introduction to Data Analysis with Spark
 
Hướng Dẫn Đăng Ký LibertaGia - A guide and introduciton about Libertagia
Hướng Dẫn Đăng Ký LibertaGia - A guide and introduciton about LibertagiaHướng Dẫn Đăng Ký LibertaGia - A guide and introduciton about Libertagia
Hướng Dẫn Đăng Ký LibertaGia - A guide and introduciton about Libertagia
 
Lecture 1 - Getting to know XML
Lecture 1 - Getting to know XMLLecture 1 - Getting to know XML
Lecture 1 - Getting to know XML
 
Lecture 4 - Adding XTHML for the Web
Lecture  4 - Adding XTHML for the WebLecture  4 - Adding XTHML for the Web
Lecture 4 - Adding XTHML for the Web
 

Lecture 3 - Services

  • 1. Book Author: Nicolai M. Josuttis Chapter Three: Services IT-Slideshares http://it-slideshares.blogspot.com/
  • 2. 3.1 Services (in SOA) definition  A "Service" is (ideally) a self-contained, stateless business function that accepts one or more requests and returns one or more responses through a well- defined, standard interface. Services can also perform discrete units of work such as editing and processing a transaction. Services should not depend on the state of other functions or processes. The technology used to provide the service, such as a programming language, does not form part of this definition.
  • 3. 3.1.1 Services Represent Business Functionality  Technically Driven Business Interface  customerOP(action, // "create", "read", "change", "delete" id, // customer id or null name, // new customer name or null address, // new customer address or null account) // new customer bank account or null  It is a business interface because it allows you to create a new customer, read or modify his/her data, or delete that data. However, this interface is technically driven, probably by a direct mapping to a corresponding database interface.  In contrast, a business-driven interface might look like this:  createCustomer(name, address, account)  readCustomer(id)  changeCustomerAccount(id, account)  changeCustomerAddress(id, address, check, modify)  deleteCustomer(id) // customer id  Note the following differences:  Instead of having one signature, you have five. Each operation's name describes the basic functionality from a business point of view. In addition, there are no parameters that do not make sense for each particular functionality (for example, for the deletion of a customer, you only need the customer ID).  Operations for reading and writing have different levels of granularity. In this case, you have the ability to change a customer's address or bank account independently, but when you read customer data, you get both. Such differences are typical for business processes.  Specific operations might have additional parameters. In this case, the operation for changing an address has additional attributes that specify whether an address check should be performed and whether the address might even be modified according to the address check (e.g., replacing "NewYork" with "New York").  In fact, if you let business people design interfaces on a case-by-case basis, they'll look different from interfaces driven, for example, by the underlying database design. Service orientation clearly prefers business-driven over technically driven interfaces, although this does not mean that you should not think about possible synergy effects. Start the design based on the requirements, not based on the implementation.
  • 4. 3.2 Interfaces and Contracts  A service is an interface for (multiple) messages that return information and/or change the state of an associated entity (backend).  SOA could be better named “Interface-oriented architecture”.  Interface should be well-defined  Signature (input, output, possible exception)  Contracts and QoS are non-functional commitments  Message exchange patterns (MEPs)  Notification/Escalation in change of States  Peak hours handling
  • 5. 3.3 Additional Service Attributes  Attributes that “may”, “should”, “must” have  Self-Contained Services (independent, autonomous) but still have some dependecies  Coarse-grained services balance between dependencies and performance (OASIS SOA Reference Model) – by building abstraction layer < slower runtime.  Visible/Discoverable (where services are hosted)  Stateless (where/how long the business states exists ? Is it technical or business )  Idempotent (ability to redo or resend messages when in doubt of states)  Reusable (performance vs. reusing same service – bottlenecks)  Composable (use/call other services) leads to BPModeling  Technical services (autonomous, QoS-enabled, vendor diverse, interoperability, discoverable, and potential reusable services, implemented as web services)  QoS and SLA-Capable (service contract runtime performance, reliability…etc)  Pre- and Post-Conditions (specify the semantic behavior of services – designed by contract)  Vendor-Diverse – large distributed systems  many vendors to provide platforms, middlewares …  Interoperable (see def) – core requirement for SOA  Implemented as Web Services  Web Services might be an (obvious) way to implement SOA, but SOA as a concept is not tied to any specific technology.
  • 6. 3.3.1 Self-contained Services Def.  A "Service" has a definition. This definition consists of:  An explicit and detailed narrative definition supported by a low (but not detailed [not implementation specific]) level process model.  A set of performance indicators that address measures/performance parameters such as availability (when should members of the organization be able to perform the function), duration (how long should it take to perform the function), rate (how often will the function be performed over a period of time), etc.  A linkage to the organization's information model showing what information the "Service" owns (creates, updates, and deletes) and which information it references and is owned by other "Services."  A listing of known downstream consumers (other "Services" that depend upon its function or information) and the documentation of their requirements.
  • 7. 3.3.2 Coarse-Grained Services  The noun "service" is defined in dictionaries as "The performance of work (a function) by one for another." However, service, as the term is generally understood, also combines the following related ideas:  The capability to perform work for another  The specification of the work offered for another  The offer to perform work for another  These concepts emphasize a distinction between a capability and the ability to bring that capability to bear. While both needs and capabilities exist independently of SOA, in SOA, services are the mechanism by which needs and capabilities are brought together.  ...  The consequence of invoking a service is a realization of one or more real world effects. These effects may include:  information returned in response to a request for that information,  a change to the shared state of defined entities, or  some combination of (1) and (2).
  • 8. 3.3.12 Interoperable  From a business perspective, services are IT assets that correspond to real-world business activities or recognizable business functions and that can be accessed according to the service policies that have been established for the services.  ...  From a technical perspective, services are coarse- grained, reusable IT assets that have well-defined interfaces (a.k.a. service contracts) that clearly separate the services' externally accessible interface from the services' technical implementation.
  • 9. 3.4 Summary  Here is my summarizing definition of "service" in the context of SOA:  A service is the IT realization of some self-contained business functionality.  By focusing on the business aspects, a service hides technical details and allows business people to deal with it.  Technically, a service is an interface for (multiple) messages that are exchanged between provider(s) and consumer(s).  The complete description of a service from a consumer's point of view (signature and semantics) is called a "well-defined interface" or "contract." A contract is agreed individually between a certain provider, and a certain consumer, and usually includes nonfunctional aspects such as SLAs.  There are several attributes that services may (or, according to some definitions, must) have. According to my understanding, they are situation-dependent; services will almost always have different attributes, and should be classified according to those attributes. IT-Slideshares http://it-slideshares.blogspot.com/