Introduction to Cloud and Software Oriented Architectures (SOA)

Ace your homework & exams now with Quizwiz!

Implementation factors for SaaS

*Configurability*: How do you configure the software for the specific requirements of each organization? *Multi-tenancy*: How do you present each user of the software with the impression that they are working with their own copy of the system while, at the same time, making efficient use of system resources? *Scalability*: How do you design the system so that it can be scaled to accommodate an unpredictably large number of users?

Service construction by composition

*Formulate outline workflow* - In this initial stage of service design, you use the requirements for the composite service as a basis for creating an 'ideal' service design. *Discover services* - During this stage of the process, you search service registries or catalogues to discover what services exist, who provides these services and the details of the service provision. *Select possible services* - Your selection criteria will obviously include the functionality of the services offered. They may also include the cost of the services and the quality of service (responsiveness, availability, etc.) offered. *Refine workflow* - This involves adding detail to the abstract description and perhaps adding or removing workflow activities. *Create workflow program* - During this stage, the abstract workflow design is transformed to an executable program and the service interface is defined. You can use a conventional programming language, such as Java or a workflow language, such as WSBPEL. *Test completed service or application* - The process of testing the completed, composite service is more complex than component testing in situations where external services are used.

Key standards

*SOAP* - A message exchange standard that supports service communication *WSDL (Web Service Definition Language)* - This standard allows a service interface and its bindings to be defined *WS-BPEL* - A standard for workflow languages used to define service composition

Service-oriented architectures

- A means of developing distributed systems where the components are stand-alone services - Services may execute on different computers from different service providers - Standard protocols have been developed to support service communication and information exchange

Service configuration

- Branding, where users from each organisation, are presented with an interface that reflects their own organisation. - Business rules and workflows, where each organisation defines its own rules that govern the use of the service and its data. - Database extensions, where each organisation defines how the generic service data model is extended to meet its specific needs. - Access control, where service customers create individual accounts for their staff and define the resources and functions that are accessible to each of their users.

Service-oriented software engineering

- Building applications based on services allows companies and other organisations to cooperate and make use of each other's business functions. - Service-based applications may be constructed by linking services from various providers using either a standard programming language or a specialised workflow language.

Scalability

- Design the system using asynchronous interaction so that the application does not have to wait for the result of an interaction (such as a read request). - Manage resources, such as network and database connections, as a pool so that no single server is likely to run out of resources. - Design your database to allow fine-grain locking. That is, do not lock out whole records in the database when only part of a record is in use.

Software Engineering with services

- Existing services are composed and configured to create new composite services and applications - The basis for service composition is often a workflow. Workflows are logical sequences of activities that, together, model a coherent business process. For example, provide a travel reservation services which allows flights, car hire and hotel bookings to be coordinated.

Benefits of service-oriented approach

- Services can be offered by any service provider inside or outside of an organisation - Organisations can create applications by integrating services from a range of providers. - The service provider makes information about the service public so that any authorised user can use the service. - Applications can delay the binding of services until they are deployed or until execution. This means that applications can be reactive and adapt their operation to cope with changes to their execution environment. - Opportunistic construction of new services is possible. A service provider may recognise new services that can be created by linking existing services in innovative ways. - Service users can pay for services according to their use rather than their provision. Instead of buying a rarely-used component, the application developers can use an external service that will be paid for only when required. - Applications can be made smaller, which is particularly important for mobile devices with limited processing and memory capabilities. Computationally-intensive processing can be offloaded to external services.

Multi-tenancy

- is a situation in which many different users access the same system and the system architecture is defined to allow the efficient sharing of system resources. - must appear to each user that they have the sole use of the system. - involves designing the system so that there is an absolute separation between the system functionality and the system data.

Services

- reusable components that are independent and are loosely coupled. - platform and implementation language independent

A service-based, in-car information system

Advantage of software oriented architecture for this application: - As the car moves around, the in-car software uses the service discovery service to find the most appropriate information service and binds to that. - Because of the use of a translation service, it can move across borders and therefore make local information available to people who don't speak the local language.

Services scenario

An in-car information system provides drivers with information on: - Weather, road traffic conditions, local information - This is linked to car audio system so that information is delivered as a signal on a specific channel. The car is equipped with GPS receiver to discover its position and, based on that position, the system accesses a range of information services. - Information may be delivered in the driver's specified language.

Cloud service models

Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort.

Web Service

an instance of a service: A loosely coupled, reusable software component that encapsulates discrete functionality, which may be distributed and programmatically accessed over the web.

Software as a service

involves hosting the software remotely and providing access to it over the Internet. - Software is deployed on a server (or more commonly a number of servers) and is accessed through a web browser. It is not deployed on a local PC. - The software is owned and managed by a software provider, rather than the organisations using the software. - Users may pay for the software according to the amount of use they make of it or through an annual or monthly subscription. - Sometimes, the software is free for anyone to use but users must then agree to accept advertisements, which fund the software service.

SaaS and SOA

• *Software as a service* is a way of providing functionality on a remote server with client access through a web browser. - The server maintains the user's data and state during an interaction session. - Transactions are usually long transactions e.g. editing a document. • *Service-oriented architecture(SOA)* is an approach to structuring a software system as a set of separate, stateless services. - These may be provided by multiple providers and may be distributed. - Typically, transactions are short transactions where a service is called, does something then returns a result.


Related study sets

POST HOC COMPARISONS & TESTING ASSUMPTIONS

View Set

Exam 1: audition/vestibular senses, olfaction, gestation

View Set

Cryptography and PKI (Security+ 501)

View Set

Chapter 8 test your understanding

View Set

BLAW 3201 - Test #1: Ch. 3 (Duplechain)

View Set

CHAPTER 25: Respiratory System... Select all that apply

View Set

Adolescent Psychology Final Exam Study Guide EMCC

View Set

Chapter 30 The Making of Industrial Society

View Set