430 likes | 664 Views
NETE4631 SOA and Cloud Computing Service Models. Lecture Notes #3. Virtualization Technology Recap(1). Virtualization is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system (OS), storage device, or network resources. (Wikipedia).
E N D
NETE4631SOA and Cloud Computing Service Models Lecture Notes #3
Virtualization Technology Recap(1) • Virtualization is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system (OS), storage device, or network resources. (Wikipedia)
Which technologies make up Cloud? Recap (2) Grid Computing Utility Computing + Virtualization Technology Cloud
Web Services Recap (3) • Communication • HTTP 1.0 and 1.1 (W3C) • Client • HTML, DHTML, JavaScript, CSS • Message Exchanged • Extensible Markup Language (XML) • Simple Object Access Protocol (SOAP) • Representational state transfer (REST) • JavaScript Object Notation (JSON)
Lecture Outline • Service-Oriented Computing (SOC) • Service-Oriented Architecture (SOA) • Designing service-based systems and quality attributes • SOC state-of-the-art and research challenges • Some of the implementation technologies • Service and deployment models
Service-Oriented Computing • Development of rapid, low cost, & interoperable systems that are independent of programming languages and operating systems • Help create compound solutions using legacy systems and enterprise information systems exposed as loosely coupled services residing on remote networks • Organization can programmatically offer their business processes over the Internet or on various networks
What is a service? • A service is an implementation of a well-defined piece of business functionality, with a published interface that is discoverable and can be used by service consumers when building different applications and business processes.
Principles of Identifying Services • A Service should: • Represent a tangible business concept • Consist of a series of organization-wide analysis, where a process can decompose into several small set of processes • Reusable processes -within or outside an organization, identify possible inputs and outputs (should be generic) for these business processes • Identify dependencies among services and their impact on internal or external to a system
EAI -State-of-the-Art • They look for suitable services in a directory, e.g., UDDI • Analyze the specifications of the potentially relevant services by reading something like WSDL • Select the most relevant service and get it do something of value to the service consumer using something like SOAP • Exploit the standards (e.g., WS-* standards) for ensuring quality attributes security and reliability.
Service-Oriented Architecture (SOA) • “A service-oriented architecture (SOA) is an application framework that takes everyday business applications and breaks them down into individual business functions and processes, called services. An SOA lets you build, deploy, and integrate these services independent of applications and the computing platforms on which they run.” –IBM“ • Service-Oriented Architecture is an approach to organizing information technology in which data, logic, and infrastructure resources are accessed by routing messages between network interfaces.” –Microsoft
Service-Oriented Architecture (SOA) (2) • An SOA is “a set of components which can be invoked, and whose interface descriptions can be published and discovered.” –W3C. • “A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.” –The OASIS Group
Architecture of a Web Retail System Source: Grady Booch’s site: Rozanski, N. and Woods, E. Software Systems Architecture. Reading, Massachusetts: Addison-Wesley, 2005, p. 96.
Enterprise Service Bus • Provide location transparent routing and addressing for service communication; service addressing and naming administration, support at least one messaging paradigm and transport protocol • Support effective service integration through multiple integration mechanisms, including connectors, web services, messaging, and adaptors
Enterprise Service Bus (2) • Provides an open service messaging and interfacing model in order to isolates implementations from routing services and transport protocols, and allows implementations to be substituted
Enterprise Service Bus (ESB) Source:Dodani, M., From Objects to Services: A Journey in Search of Component Reuse Nirvana, JOT, 3(8), 2004.
Motivators of SOA • Increasing nature of distributed systems • Heterogeneity of systems and computing environments • Dynamics of operating environments • Transparency of communication infrastructure details • Process-orientation requires multiple services
Common Design Principles • Services are reusable • Business functionalities exposed as services are designed with the intention of reuse whenever and where they are required • Services share a formal contract • Services interact with each other through a formal contract which is shared to exchange information and terms of usage
Common Design Principles (2) • Services are loosely coupled • Services are designed as loosely coupled entities able to interact while maintaining their state of loose coupling. • Services abstract underlying logic • The business logic underpinning a service is kept hidden from the outside world. Only the service description and formal contract are visible for the potential consumers of a service
Common Design Principles (3) • Services are composable • Services may composed of other services. Hence, a service’s logic should be represented at different levels of granularity and promotes reusability and the creation of abstraction layers. • Services are autonomous • A service should be independent of any other service
Common Design Principles (4) • Services are stateless • A service shouldn’t be required to maintain state information rather it should be designed to maximize statelessness • Services are discoverable • A service should be discoverable through its description, which can be understood by humans and service users. A service can be discovered by the use of a directory provider, or, implementation mechanism or hard-coded address
Common Design Principles (5) • Services have a network-addressable interface • A service should be invoked from the same computer or remotely –through a local interface or Internet • Services are location transparent • A service should be discoverable without the knowledge of its real location. A requestor can dynamically discover the location of a service looking up a registry The core principles are autonomy, loose coupling, abstraction, formal contract
SOC: State-of-the-Art and Research Challenges • Service Foundation • Dynamically reconfigurable runtime architectures, End-to-end security solutions, Infrastructure support for data and process integration, Semantically enhanced service discovery • Service Composition • Composability, Dynamic and adaptive process, QoS-aware service composition, Business-driven automated compositions • Service Management and Monitoring • Self-Configuration and adaptation, Self-healing, Self-optimization, Self-protecting • Service Design and Development • Engineering service-based systems, Gap analysis techniques, Service versioning and adaptivity, Service governance
Implementation Technologies • XML Web Services • Common Object Request Broker Architecture (CORBA) • Java Remote Method Invocation (RMI) • .Net Remoting • Message Orietned Middleware (MOM) –IMB’s MQSeries, Microsoft Message Queuing (MSMQ), or Java Message Service • TCP/IP
Major Categories of SaaS • Line of Business Services • Business solutions offered to companies based on subscription fee, e.g., CRM and Supply Chain Management • Customer-oriented Services • Services offered to general public, most free • Business models are based on advertising revenue (e.g., You Tube)
SaaS Characteristics • Browser based on demand availability, different kinds of licenses • Responsibilities -Vendors and Users • Cheaper compared with shrink-wrapped versions, lowering entry barriers • Compatibility among all users’ software • Shared data model for multiple users through single instance, multi-tenancy
Potential Advantages • Faster time to market and improved productivity with lower cost • Eliminate the need to install and maintain • Fast upgrades of new features and patches • Provision of application developed using very mature processes and practices • Companies can focus on core business
Potential Disadvantages • Maturity in designing multi-tenant applications • Required cultural and organizational changes • Difficult to translate business models • Some applications not suitable for this model • Need to comply with the vendors’ constraints • Migration can be problematic
Motivating Factors • Popularity • Both Software Vendors and Enterprizes Like it • Each of them has different reasons –Why??? • Plenty of SaaS Platform • Each big software vendor (such as Oracle and Microsoft) is developing several SaaS platforms • SaaS and SOA • Popularity of SOA helps migration to SaaS • SOA provides a design framework for low cost development with high quality systems • Economic Impact
Some of the SaaS Providers • Intuit • Quikbooks and Quikbook online • Phone and Blackberry capabilities • Google • Google Apps (Standard and Premier Edition) • Microsoft • Microsoft Office Live Small Business & Office 365 • IBM • Blue Cloud
Platform as a Service (PaaS) • A software environment that provides development and deployment environment and tools • A platform can be specific to a language, application framework, or other constructs • PaaS system must also support the development of interfaces with technologies like HTML, JavaScript • Vendor lock-in is quite considerable –migrating a python application written for Google’s API
PaaS Model Services • A set of technologies and tools • Collaboration –Multiple people can work together • Data management –Accessing and using data • Instrumentation, performance, and testing • Storage service with the same vendor or a third party • Transaction management services or brokerage services for managing transactions
An Integrated Lifecycle Platform • Virtual machine and operating system (IaaS) • Data design and storage • Development environment with relevant APIs • Middleware • Testing and optimization tools • Other tools and services as appropriate
Infrastructure as a Service (IaaS) • Hardware virtualized in cloud based on demand • Service vendor owns equipment • A user creates virtual hardware for deploying applications or platform for developing application • Incredibly disruptive technology for utility computing • Fundamental unit of virtualized client is workload • A typical eCommerce system will have • Web server, Application server, File server, Database, Transaction engine, & other types of servers
References • Chapter 3,4,7 and 13 of the book by Sosinsky, B., 2011. • Papazoglou, M., Traverso, P., Dustdar, S., Leymann, F., 2007, Service-Oriented Computing: State of the Art and Research Challenges, IEEE Computer, 40(11), pp. 38-45.