page 1, june 1, 2015 cbse – graduate course an introduction to different component technologies...
Post on 18-Dec-2015
216 views
TRANSCRIPT
Page 1, April 18, 2023CBSE – graduate course
An Introduction to An Introduction to Different Different
Component TechnologiesComponent 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, April 18, 2023CBSE – graduate course
Slide 1
An Introduction to CORBAAn Introduction to CORBA
Magnus [email protected]
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, 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, 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, April 18, 2023CBSE – graduate course
CORBA (Common Object Request Broker Architecture)
CORBAapps CORBAdomains CORBAfacilities
CORBAservices
OMA OverviewOMA Overview
TransactionsTransactions EventEvent SecuritySecurity NamingNaming
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, April 18, 2023CBSE – graduate course
Enterprise Java BeansEnterprise Java Beans
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, 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, 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, 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, April 18, 2023CBSE – graduate course
An Introduction to COMAn Introduction to COM
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, 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, 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, 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, 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, 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, April 18, 2023CBSE – graduate course
Introduction to XMLIntroduction to XML
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, April 18, 2023CBSE – graduate course
XML, SGML, HTMLXML, SGML, HTML
SGMLSGML
XML
HTMLHTML
Meta level
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, April 18, 2023CBSE – graduate course
Example XML, What is the data?Example XML, What is the data?
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, April 18, 2023CBSE – graduate course
XML and XSLXML and XSL
Page 28, April 18, 2023CBSE – graduate course
SOAPSOAP
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, 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, 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, April 18, 2023CBSE – graduate course
Overview of the .NET FrameworkOverview of the .NET Framework
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, 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, 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, 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, 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, April 18, 2023CBSE – graduate course
IEC 61131-1IEC 61131-1
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, April 18, 2023CBSE – graduate course
IEC 6 1131-3IEC 6 1131-3
Page 41, April 18, 2023CBSE – graduate course
BlackboxBlackbox
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, 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, 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