Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Similar documents
SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

SOA Myth or Reality??

Service Oriented Architecture

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Service-Oriented Architectures

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

David Pilling Director of Applications and Development

Service-Oriented Architecture and Software Engineering

Middleware Lou Somers

A Quick Introduction to SOA

Cloud Computing & Service Oriented Architecture An Overview

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

What Is the Java TM 2 Platform, Enterprise Edition?

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

A standards-based approach to application integration

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Service Oriented Architecture 1 COMPILED BY BJ

Methods and tools for data and software integration Enterprise Service Bus

Lesson 18 Web Services and. Service Oriented Architectures

Introduction to Service Oriented Architectures (SOA)

ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:

Service Oriented Architecture (SOA) Implementation Framework for Satellite Mission Control System Software Design

SOA CERTIFIED JAVA DEVELOPER (7 Days)

Enterprise Application Designs In Relation to ERP and SOA

Service-Oriented Computing and Service-Oriented Architecture

Distributed Objects and Components

Service Oriented Architectures

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

Research on the Model of Enterprise Application Integration with Web Services

Oracle SOA Reference Architecture

SOA Architect Certification Self-Study Kit Bundle

Developing Java Web Services

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Service Computing: Basics Monica Scannapieco

Infrastructure that supports (distributed) componentbased application development

Service Oriented Architecture

Service Mediation. The Role of an Enterprise Service Bus in an SOA

SOA CERTIFIED CONSULTANT

Virtual Credit Card Processing System

Distributed systems. Distributed Systems Architectures

ebay : How is it a hit

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

Applying Configuration Management Techniques to Component-Based Systems

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Architectural Overview

DDS and SOA Interfaces to ESB

IBM Rational Rapid Developer Components & Web Services

Building the European Biodiversity. Observation Network (EU BON)

Introduction into Web Services (WS)

JavaPolis 2004 Middleware and Web Services Security

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

Understanding Service-Orientation Part II: The Principles

Increasing IT flexibility with IBM WebSphere ESB software.

Service-Oriented Architecture (SOA) vs. Component Based Architecture. Helmut Petritsch

How To Understand A Services-Oriented Architecture

A Web Services Created Online Training and Assessment Scheme

LinuxWorld Conference & Expo Server Farms and XML Web Services

Grid Computing. Web Services. Explanation (2) Explanation. Grid Computing Fall 2006 Paul A. Farrell 9/12/2006

Getting Started with Service- Oriented Architecture (SOA) Terminology

Increasing IT flexibility with IBM WebSphere ESB software.

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud

WEB SERVICES. Revised 9/29/2015

Glassfish Architecture.

Simplifying Processes Interoperability with a Service Oriented Architecture

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Service Oriented Architecture (SOA) An Introduction

Web Services Development In a Java Environment

A SOA Based Framework for the Palestinian e-government Integrated Central Database

Oracle Application Server 10g Web Services Frequently Asked Questions Oct, 2006

Federal Enterprise Architecture and Service-Oriented Architecture

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

JBoss EntErprisE ApplicAtion platform migration guidelines

Distributed Systems Architectures

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

AquaLogic Service Bus

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

How To Write A Microsoft.Net Event Management System (Mnet)

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

The Integration Between EAI and SOA - Part I

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

SOA REFERENCE ARCHITECTURE

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

Web Services. Copyright 2011 Srdjan Komazec

Transcription:

Szolgáltatásorientált rendszerintegráció Comparison of component technologies Simon Balázs, BME IIT Outline Definitions Component technologies RPC, RMI, CORBA, COM+,.NET, Java, OSGi, EJB, SOAP web services, REST services, WebSockets, SCA Comparison of component technologies (C) Simon Balázs, BME IIT 2 Definitions SOA Service-Oriented Architecture (SOA) is 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. In SOA, services are the mechanism by which needs and capabilities are brought together. (OASIS) (C) Simon Balázs, BME IIT 3 4 BME IIT, Simon Balázs Service A service is a discoverable software component that exists as a single stateless instance and interacts with applications and other services through a loosely coupled (often asynchronous), message-based communication model. Properties of SOA Architecture style Abstracts complexity Standard protocols Standard interfaces Self-contained services Autonomy Internally and externally callable services Loosely-coupled services Reusable services Discoverability through a repository Incremental integration Dynamic integration Service composition Business process execution Quality of Service (QoS) characteristics (security, transactions, performance, etc.). (C) Simon Balázs, BME IIT 5 (C) Simon Balázs, BME IIT 6 1

SOA Manifesto priorities Business value over technical strategy Strategic goals over project-specific benefits Intrinsic interoperability over custom integration Shared services over specific-purpose implementations Flexibility over optimization Evolutionary refinement over pursuit of initial perfection Component A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties. (Szyperski) (C) Simon Balázs, BME IIT 7 8 BME IIT, Simon Balázs Relation of SOA, CBD, OOP and AOP Service-Oriented Architecture (SOA): services are software components, which operate in a distributed environment and focus on documentcentric communication Component-Based Development (CBD): the interaction between components depends on the technology that the components are based on components can provide the basis for implementing services, and components can encapsulate objects Aspect-Oriented Programming (AOP): complementary paradigm affecting the software system on several levels orthogonal to OOP, CBD and SOA (C) Simon Balázs, BME IIT 9 Relation of SOA, CBD, OOP and AOP SOA: high service reusability at the enterprise level CBD: high component reusability on a smaller scale OOP: objects are reusable within a single application The level of abstraction increases: OOP >> CBD >> SOA AOP: does not raise the level of abstraction separates different concerns (e.g. security, logging) from the domain logic Services Components Objects Aspects (C) Simon Balázs, BME IIT 10 Component technologies Implementing the SOA SOA is not a technology! SOA is a paradigm for developing distributed applications built from services SOA can be implemented using any component technology Examples: RPC, RMI, CORBA, COM+,.NET, Java, OSGi, EJB, SOAP web services, REST services, WebSockets, Spring, SCA, ESB,... (C) Simon Balázs, BME IIT 11 (C) Simon Balázs, BME IIT 12 2

Serialization Deserialization Deserialization 2/19/2016 Serialization SOA architecture Distributed communication layer architecture service repository find get interface publish interface Client application Client stub/proxy Interface Interface Server application Server stub client request-response protocol service Network Protocol 13 BME IIT, Simon Balázs (C) Simon Balázs, BME IIT 14 Remote Procedure Call (RPC) Inter-process communication Calling functions in a different address space Applications do not have to deal with the details of the network protocol An RPC call is like a normal function call for the application but it can fail if there are network problems Problems to solve: serialization, byte order memory management RPC is not a standard no standard protocol, no standard interface There are many different (incompatible) RPC protocols Usually there is no interface descriptor, no service registry Remote Method Invocation (RMI) RPC for OOP Java RMI: Java serialization direct transfer of serialized Java classes distributed garbage collection interface descriptor: Java interface protocol: RMI-IIOP service registry: Naming service.net Remoting:.NET serialization interface descriptor: C# interface protocol: TCP or SOAP over HTTP service registry: none (C) Simon Balázs, BME IIT 15 (C) Simon Balázs, BME IIT 16 Common Object Request Broker Architecture (CORBA) OMG standard for RMI Independent of: programming languages operating systems Mappings to many programming languages Very complex standard implementations don t implement the complete standard incompatibilities between early implementations Very complex programming API Interface descriptor: Interface Definition Language (IDL) Protocol: Internet Inter-ORB Protocol (IIOP) Service registry: naming service, trading service Component Object Model (COM+) Microsoft technology COM for inter-process communication DCOM distributed communication marshalling distributed garbage collection was a major competitor of CORBA COM+ (.NET Enterprise Services) transactions resource management security Interface descriptor: Microsoft Interface Definition Language (MIDL) Protocol: proprietary COM+ RPC Service registry: Windows Registry (C) Simon Balázs, BME IIT 17 (C) Simon Balázs, BME IIT 18 3

.NET Framework Runtime for.net applications Component:.NET assembly (DLL) Service: class Versioning support: no DLL hell Code access security Interface descriptor: assembly descriptor Protocol: in-memory calls Service registry:.net runtime Java Virtual Machine (JVM) Runtime for Java applications Component: JAR file Service: Java class No standard versioning support: JAR hell possible solutions: Maven, OSGi Code access security Interface descriptor: none Protocol: in-memory calls Service registry: JVM (C) Simon Balázs, BME IIT 19 (C) Simon Balázs, BME IIT 20 OSGi Standardized by the OSGi Alliance Dynamic module system for Java Components are bundles they can be loaded and unloaded dynamically Communication: only local calls within the JVM Semantic versioning Service interface descriptor: Java interface Bundle interface descriptor: Bundle manifest Protocol: in-memory calls Service registry: OSGi runtime SOAP web services XML-based RPC Platform and language independent Advanced QoS: security, transactions, reliability But: very slow compared to binary protocols Convenient language API Interface descriptor: WSDL Protocol: SOAP Service registry: UDDI (C) Simon Balázs, BME IIT 21 (C) Simon Balázs, BME IIT 22 REST services HTTP extension: GET, POST, PUT, DELETE Can be used for RPC: JSON/XML over HTTP (always with POST) Faster than SOAP No QoS: security, transactions, reliability Convenient language API Can be easily tested from browsers Interface descriptor: none/wadl/wsdl 2.0 Protocol: application specific over HTTP Service registry: none WebSockets HTTP upgrade to TCP After upgrade: only plain TCP application protocol over TCP is a custom protocol the custom protocol can be a standard protocol, e.g. SOAP Fast response times Convenient language API Server can notify clients unlike in the traditional web model But: WebSockets are not scalable and can overload the server Interface descriptor: none Protocol: application specific over TCP Service registry: none (C) Simon Balázs, BME IIT 23 (C) Simon Balázs, BME IIT 24 4

Enterprise Java Beans (EJB) Server side components Remote and local invocations Stateless EJBs are scalable Stateful EJBs are not scalable Advanced QoS: security, transactions Interface descriptor: Java interface Protocol: RMI or in-memory Service registry: JNDI Service Component Architecture (SCA) OASIS standard Programming model for building applications and systems based on SOA Component and assembly model Creation and composition of services SCA is not a communication technology: SCA wraps other communication technologies SCA components can communicate using any technology (via SCA bindings) Interface descriptor: WSDL or Java or other nonstandard Protocol: any protocol specified by SCA bindings Service registry: the SCA runtime environment (C) Simon Balázs, BME IIT 25 (C) Simon Balázs, BME IIT 26 Enterprise Service Bus (ESB) Not a standard Realization and enforcement of SOA principles Protocol and data format conversion Message transformation and routing Advanced QoS: security, reliability, transactions Service virtualization Interface descriptor: WSDL or Java or other nonstandard Protocol: any protocol supported by the vendor (HTTP, JMS, FTP, SMTP, etc.) Service registry: usually a separate component or part of the ESB runtime Comparison of component technologies (C) Simon Balázs, BME IIT 27 (C) Simon Balázs, BME IIT 28 Comparison aspects Component Service Service interface descriptor Protocol Service registry Versioning Response time Scalability Programming language Simplicity of the API QoS (security, transactions, reliability) Comparison I. RPC Java RMI.NET remoting Component application JAR DLL Service function Java class.net class Interface descr. none Java interface.net interface Protocol custom RMI-IIOP TCP or SOAP Service registry none Naming service none Versioning none none none Response time fast fast fast Scalability none none none Prog. language specific Java any.net language QoS none none none (C) Simon Balázs, BME IIT 29 (C) Simon Balázs, BME IIT 30 5

Comparison II. CORBA COM+ (.NET Enterprise Services) Component application COM+ component Service CORBA service COM+ component Interface descr. IDL MIDL Protocol IIOP COM+ RPC Service registry naming/trading service Windows Registry Versioning none yes (GUID) Response time fast fast Scalability yes yes Prog. language any any on Windows API complex simple QoS yes yes Comparison III..NET runtime JVM OSGi Component assembly JAR file bundle Service.NET class Java class OSGi service (Java class) Interface descr. assembly descriptor none Java interface Protocol in-memory call in-memory call in-memory call Service registry.net runtime JVM OSGi runtime Versioning yes none semantic Response time fast fast fast Scalability none none none Prog. language any.net language Java Java QoS yes yes yes (C) Simon Balázs, BME IIT 31 (C) Simon Balázs, BME IIT 32 Comparison IV. SOAP REST WebSocket Component application application application Service SOAP service REST service WebSocket service Interface descr. WSDL none/wadl/ WSDL 2.0 none Protocol SOAP HTTP TCP Service registry UDDI none none Versioning none none none Response time slow slow, but can be faster than SOAP fast Scalability yes yes none Prog. language any any any QoS yes none none (C) Simon Balázs, BME IIT 33 Comparison V. EJB SCA ESB Component application SCA component application Service EJB class SCA service any Interface descr. Java interface WSDL / Java interface Protocol in-memory / RMI any any Service registry JNDI SCA runtime ESB runtime Versioning none none yes Response time fast depends on the protocol any depends on the protocol Scalability yes yes yes Prog. language Java any configuration QoS yes yes yes (C) Simon Balázs, BME IIT 34 6