page 1, june 1, 2015 cbse – graduate course an introduction to different component technologies...

44
Page 1, March 30, 2022 CBSE – graduate course An Introduction to An Introduction to Different Different Component Technologies Component Technologies Magnus Larsson

Post on 18-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 1, April 18, 2023CBSE – graduate course

An Introduction to An Introduction to Different Different

Component TechnologiesComponent Technologies

Magnus Larsson

Page 2: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 2, April 18, 2023CBSE – graduate course

Different TechnologiesDifferent Technologies

XML

IEC 6 1131-3

COM

EJB

CORBA

SOAP

.NET

Blackbox

Page 3: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 3, April 18, 2023CBSE – graduate course

Slide 1

An Introduction to CORBAAn Introduction to CORBA

Magnus [email protected]

Page 4: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 4, April 18, 2023CBSE – graduate course

Focus on swiftly-developed, easily usable (“off the shelf”) component standards.

OMG’s MissionOMG’s Mission

Develop a single architecture, using object technology, for distributed application integration, guaranteeing:

reusability of components;

interoperability & portability;

basis in commercially available software.HOW?

Page 5: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 5, April 18, 2023CBSE – graduate course

OMG: BackgroundOMG: Background

Not-for-profit company based in United States, with representation in United Kingdom, Germany, Japan, Australia & India.

Founded April 1989.

Small staff (35 full time); no internal development.

Sponsors Object World conference and DOC magazine to help spread the word.

Dedicated to creating and popularizing object-oriented standards for application integration based on existing technology.

Page 6: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 6, April 18, 2023CBSE – graduate course

The OMA GuideThe OMA Guide

Outlines the Object Management Architecture, contains foundation of standards including:

Overview of integration problem, with reasons for object-oriented solution.

Objectives of the standards group.

Abstract object model.

Reference model (architecture).

Glossary of terms.

Page 7: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 7, April 18, 2023CBSE – graduate course

CORBA (Common Object Request Broker Architecture)

CORBAapps CORBAdomains CORBAfacilities

CORBAservices

OMA OverviewOMA Overview

TransactionsTransactions EventEvent SecuritySecurity NamingNaming

Page 8: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 8, April 18, 2023CBSE – graduate course

CORBACORBA

Common Object Request Broker Architecture

Standard for writing distributed object systems

Language independent

Not controlled by one company

Optional value added services

Slow moving

Steep learning curve

Different CORBA products may be incompatible

Page 9: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 9, April 18, 2023CBSE – graduate course

Enterprise Java BeansEnterprise Java Beans

Magnus Larsson

[email protected]

Page 10: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 10, April 18, 2023CBSE – graduate course

BackgroundBackground

Early 90s

Shift from two-tier, client-server application model to more flexible three-tier and multi-tier application models.

The new models separated business logic from system services and the user interface,

Placing it in a middle tier between the two.

middleware services

transaction monitors, message-oriented middleware, object request brokers

a greater emphasis on lightweight, easy to deploy clients.

Page 11: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 11, April 18, 2023CBSE – graduate course

Introducing EJBIntroducing EJB

Used to build business systems

Server side components

Highly available (24x7)

Fault tolerant

Transactional

Multi-user secure environment

Page 12: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 12, April 18, 2023CBSE – graduate course

J2EEJ2EE

Java 2 Platform Enterprise Edition

Development platformPortable

Multi-user

Secure

EJB is a cornerstone in J2EE

Is a specification, not a product

Page 13: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 13, April 18, 2023CBSE – graduate course

J2EE TechnologiesJ2EE Technologies

Enterprise JavaBeans (EJB)

Java Remote Method Invocation (RMI)

Java Naming and Directory Interface (JNDI)

Java Database Connectivity (JDBC)

Java Transaction API and Service (JTA & JTS)

Java Servlets and Java Server Pages (JPS)

Java IDL - Sun’s implementation of CORBA

...

Page 14: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 14, April 18, 2023CBSE – graduate course

An Introduction to COMAn Introduction to COM

Page 15: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 15, April 18, 2023CBSE – graduate course

Introducing COMIntroducing COM

Coming from OLE (Object linking and embedding)

Microsoft’s Component Object Model (COM) was the first component model.

Distributed COM (DCOM) allows creating and accessing COM objects on another machine (1996 with NT 4).

Allows component communication

Page 16: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 16, April 18, 2023CBSE – graduate course

Availability of COMAvailability of COM

Windows and Macintosh

Software AG, Compaq and others supports DCOM on several UNIX platforms.

The main COM market is focused on Windows.

Page 17: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 17, April 18, 2023CBSE – graduate course

A Simple COM ObjectA Simple COM Object

A COM object has methods and state

Language independent

All Access is through the interface

Supports multiple interfaces

Page 18: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 18, April 18, 2023CBSE – graduate course

Specifying InterfacesSpecifying Interfaces

COM defines a binary standard for interfaces

Language independent implementation of the interfaces

Interfaces are defined in Interface Definition Language (IDL)

An interface has an GUID as an indentifier

IUnknown

IDispatch

Page 19: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 19, April 18, 2023CBSE – graduate course

InterfacesInterfaces

Word processor version 1 Word processor version 1

Word processor version 2Word processor version 2

Dictionary version 2Dictionary version 2

ISpellCheck

Dictionary version 1Dictionary version 1

ISpellCheck

Extend the existing interface for new functionality

An old word processor can not work with a new version of the dictionary.

Page 20: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 20, April 18, 2023CBSE – graduate course

More About InterfacesMore About Interfaces

Word processor version 1 Word processor version 1

Word processor version 2Word processor version 2

Dictionary version 2Dictionary version 2

ISynonyms

ISpellCheck

Dictionary version 1Dictionary version 1

ISpellCheck

A new interface for new functionality

All versions can work with all versions

Page 21: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 21, April 18, 2023CBSE – graduate course

Introduction to XMLIntroduction to XML

Magnus Larsson

Page 22: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 22, April 18, 2023CBSE – graduate course

XML OverviewXML Overview

XML = Extensible Markup Language

Defined by the WWW Consortium www.w3c.org

Structured representation of data

Industry standard, cross vendor/platform

Encode content, schema and semantics

Stateful object model

XML Elements = Classes

XML Element Attributes = Properties

Page 23: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 23, April 18, 2023CBSE – graduate course

XML, SGML, HTMLXML, SGML, HTML

SGMLSGML

XML

HTMLHTML

Meta level

Page 24: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 24, April 18, 2023CBSE – graduate course

XML is validXML is valid

Valid XML = XML combined with a DTD or XML Schema

DTD = Document Type Definition

DTD defines the rules for the data

Which elements are present

What is the relationship between elements

An XML parser uses the DTD to verify that the XML is well formed

Page 25: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 25, April 18, 2023CBSE – graduate course

Example XML, What is the data?Example XML, What is the data?

Page 26: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Style Sheet or XSL, How is the data Style Sheet or XSL, How is the data

presented?presented?

<?xml:stylesheet type="text/xsl" href="testXML.xsl" ?>

Page 27: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 27, April 18, 2023CBSE – graduate course

XML and XSLXML and XSL

Page 28: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 28, April 18, 2023CBSE – graduate course

SOAPSOAP

Page 29: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 29, April 18, 2023CBSE – graduate course

COMObjectCOM

Object

CORBAClient

CORBAClient

COM/CORBAAdapter

COM/CORBAAdapter

How to make components interactHow to make components interact

There is a problem when components from different models wants to communicate

Adapters can be used

Page 30: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 30, April 18, 2023CBSE – graduate course

boolean PlaceOrder([in] Title string, [in] Author string, [out] DaysToDelivery integer);

Simple Object Access ProtocolSimple Object Access Protocol

SOAP defines the messages with XML

SOAP piggybacks its messages on HTTP

Defines a way to communicate between different component models

Works through fire-walls

COMObjectCOM

Object

CORBAClient

CORBAClient

POST /BookServer HTTP/1.1 Host: www.newbooks.com Content-Type: text/xml-SOAP Content-Length: 160 MessageType: Call <SerializedStream> <PlaceOrder> <Title>Sofies world</Title> <Author>Jostein Gaarder</Author> </PlaceOrder> </SerializedStream>

POST /BookServer HTTP/1.1 Host: www.newbooks.com Content-Type: text/xml-SOAP Content-Length: 160 MessageType: Call <SerializedStream> <PlaceOrder> <Title>Sofies world</Title> <Author>Jostein Gaarder</Author> </PlaceOrder> </SerializedStream>

SOAP Message Call

Page 31: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 31, April 18, 2023CBSE – graduate course

Simple Object Access ProtocolSimple Object Access Protocol

SOAP defines the messages with XML

SOAP piggybacks its messages on HTTP

Defines a way to communicate between different component models

Works through fire-walls

COMObjectCOM

Object

CORBAClient

CORBAClient

HTTP/1.1 200 OK Connection: close Content-Type: text/xml-SOAP Content-Length: 177 MessageType: CallResponse

<SerializedStream> <PlaceOrderResponse> <__return>1</__return> <DaysToDelivery>7</DaysToDelivery> </PlaceOrderResponse> </SerializedStream>

HTTP/1.1 200 OK Connection: close Content-Type: text/xml-SOAP Content-Length: 177 MessageType: CallResponse

<SerializedStream> <PlaceOrderResponse> <__return>1</__return> <DaysToDelivery>7</DaysToDelivery> </PlaceOrderResponse> </SerializedStream>

SOAP Respose

Page 32: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 32, April 18, 2023CBSE – graduate course

Overview of the .NET FrameworkOverview of the .NET Framework

[email protected]

Page 33: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 33, April 18, 2023CBSE – graduate course

What is .NET?What is .NET?

Publicly launched at PDC 2000

.NET is a platform that enables:Software as services, especially over the web

Distributed computing

Componentization

Enterprise services

.NET is a platform that enables:Software as services, especially over the web

Distributed computing

Componentization

Enterprise services

Page 34: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 34, April 18, 2023CBSE – graduate course

.NET Platform .NET Platform

Operating Systems

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# JScript …V

isual S

tud

io.N

ET

Page 35: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 35, April 18, 2023CBSE – graduate course

.NET Framework Components.NET Framework Components

Common Language Runtime (CLR)

Common type system for all languages

Runtime environment

Class libraries (.NET Framework)

Base class libraries, ADO.NET and XML

Windows Forms for, Win32 applications

Web application platform ASP.NET

Interactive pages

Web services that are SOAP enabled

Page 36: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 36, April 18, 2023CBSE – graduate course

MSIL

Compilation and ExecutionCompilation and Execution

Source Code

Source Code

Language CompilerLanguage Compiler

Compilation

Before installation or the first time each method is calledExecution

JIT Compiler

JIT Compiler

NativeCode

NativeCode

Page 37: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 37, April 18, 2023CBSE – graduate course

Multi-Language DevelopmentMulti-Language Development

Advanced multi-language features

Cross language inheritance, exceptions

Over 20 languages currently supported

VB, C++, C#, Java, JScript, Pearl, COBOL

High leveraged tools

Debuggers, etc work with all languages

Page 38: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 38, April 18, 2023CBSE – graduate course

IEC 61131-1IEC 61131-1

Page 39: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 39, April 18, 2023CBSE – graduate course

IEC 6 1131-3IEC 6 1131-3

Language for realtime controller components

Five languages

Ladder diagram

Structured text

Function block diagram

Instruction list

Sequential functional chart

Page 40: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 40, April 18, 2023CBSE – graduate course

IEC 6 1131-3IEC 6 1131-3

Page 41: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 41, April 18, 2023CBSE – graduate course

BlackboxBlackbox

Page 42: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 42, April 18, 2023CBSE – graduate course

BlackBox Component BuilderBlackBox Component Builder

Development Environment

Component Pascal

Editor, Compiler, Debugging Tools, Repository, etc.

Component Frameworks

Extensible library of Components

GUI Builder

Based on Compound Documents

Page 43: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 43, April 18, 2023CBSE – graduate course

Component PascalComponent Pascal

Compiled to native code

Modular

Unique combination of Objects and Modules

Type checking (static & dynamic)

Safe as e.g. Java

Garbage collector

Page 44: Page 1, June 1, 2015 CBSE – graduate course An Introduction to Different Component Technologies Magnus Larsson

Page 44, April 18, 2023CBSE – graduate course

Component PascalComponent Pascal

Can be used on all levels

Assembling components (scripting)

Developing componentsFrom application-level to system-level components

(garbage collector, component loader)

Specifying architectures and interfacesSpecial support to express architectural properties