design strategy - distributed systems part 2 new architectures csis3600 systems analysis and design

35
Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Upload: virgil-henry

Post on 26-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Design Strategy - Distributed Systems

Part 2 New Architectures

CSIS3600 Systems Analysis and Design

Page 2: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

New Architectures

• Module/Component Based– Smaller applications that link to other applications and

resources to complete a task

– Model is based on ‘consuming’ resources

– Idea is that software now provides a service to other apps as well

• Primary development platforms that support these models are J2EE and .Net (IBM has Websphere which is the same idea)

Page 3: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Component Architecture

• Component Architecture is considered one of the most flexible architectural model.

• Component Object Model (COM) is a general architecture for component software. COM is associated with Microsoft. However it is not an implementation but a standard.

• Components allow for partitioning business logic out of the front-end and back-end applications and into its own set of components.

Page 4: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Component Architecture – the Last Rendition

• ActiveX is Microsoft’s physical implementation of COM and DCOM.

• DCOM is a protocol that enables applications to make object-oriented remote procedure calls.

• Javabeans is Java’s component architecture.

Page 5: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Component DevelopmentComponent Development

• Middleware

• COM, DCOM, ActiveX

• CORBA, SOAP

• XML

• Sun’s Java™ 2 Platform, Enterprise Edition

• Microsoft’s .NET

Page 6: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Components and Services Model

Page 7: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Services Model

Page 8: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Services Layer Architecture

• Logical way to group components. The Services model is often referred to as a layer approach. 

• Components can request services from fellow components in their current tier and any tier below or above a component tier.

Page 9: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Services Layer Approach continued

• Requests cannot skip tiers. User services components cannot communicate directly with components in the data services tier and vice versa.

• The typical use of the term layer refers to a process in which one layer must speak to the next layer and move from top to bottom and then back up.

Page 10: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

New View of Development J2EE and .NET

• The idea is to make it easier to deploy applications that use distributed resources

• Practical use of these platforms will be for large application deployment– Too expensive for small or even medium size

needs– Not here yet but it’s coming

Page 11: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Intro to J2EEIntro to J2EE

• JavaTM 2 Platform, Enterprise Edition (J2EETM) provides a component-based approach to the design, development, assembly, and deployment of enterprise applications

Page 12: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

What is J2EEWhat is J2EE• J2EE was designed to simplify complex problems

with the development, deployment, and management of multi-tier enterprise solutions. J2EE is an industry standard, and is the result of a large industry initiative led by Sun Microsystems.

• J2EE is a standard, not a product. You cannot "download" J2EE. Rather you download a set of files which describe agreements between applications and the containers in which they run.– So long as both sides obey the J2EE contracts,

applications can be deployed in a variety of container environments.

Page 13: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

J2EE Platform

The J2EE platform uses a multi-tiered distributed application model.

– This means application logic is divided into components according to function

– Various application components are combined into a J2EE application

– Each component, its related files such as GIF and HTML files or server-side utility classes, and a deployment descriptor (DD), are assembled into a module and added to the J2EE application

Page 14: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

J2EE Applications

– J2EE applications are installed on different machines depending on which tier the application component belongs.

– J2EE applications are ‘served’ on a J2EE server which is not usually maintained in-house

– The J2EE server is responsible for the software to hardware relationship which is the most difficult for organizations to understand, manage and maintain

Page 15: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design
Page 16: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design
Page 17: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Microsoft’s .NET

Microsoft’s answer to J2EE• The focus is to make computing easier• Microsoft will retain all .NET servers

• .Net is a little bit of everything– Next-generation development environment

– Based on Visual Studio

– New programming language C#– Data exchange and messaging – XML and

SOAP

Page 18: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

What is .Net?What is .Net?

• Microsoft.NET is product suite that enables organizations to build smart, enterprise-class web services. – Note the important difference: .NET is a

product strategy, whereas J2EE is a standard to which products are written.

• Not revolutionary – evolution of existing technologies (COM, etc.)

Page 19: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Open Internet ProtocolsOpen Internet ProtocolsXML, XSLT, XSD, SOAP, XML, XSLT, XSD, SOAP, DISCO, UDDI, XHTML, DISCO, UDDI, XHTML,

HTTP, SSL, WAPHTTP, SSL, WAP

Visual Studio.NET

Visual Studio.NET

Simple BrowsersSimple

Browsers

Applications Using Your

Service

Applications Using Your

Service

Your Internal ServicesYour Internal Services

.NET Enterprise Servers.NET Enterprise Servers

3rd Party Web Services3rd Party Web ServicesGeographic Mapping ServiceCredit Card Statement Service… [ActiveX Paradigm]

Building Block ServicesBuilding Block ServicesPassport – Identity ServiceCalendaring Service… [myServices]

Windows

SQL ServerBizTalk ServerApplication CenterCommerce ServerHost Integration ServerInternet Security and AccelerationExchange Server

Sales Data ServiceCorporate Fullfilment Service

Smart DevicesSmart

Devices

Smart ClientsSmart Clients.NET FW

Windows

.NET FW

Windows Windows CE, XP, 2000, .NETCE, XP, 2000, .NET

Windows Windows CE, XP, 2000, .NETCE, XP, 2000, .NET

.NET .NET FrameworkFramework

.NET .NET FrameworkFramework .NET FW

.NET Blueprint

Your Your application application

and web and web serviceservice

Your Your application application

and web and web serviceservice

Page 20: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Assemblies and Manifests

• Resources are collected into Assemblies described by Manifests (ie Application described by DD)

• Simplify Deployment And Management – The functional unit of sharing for deployment, versioning,

and security

• Zero-impact install– Applications and components can be shared or private

• Side-by-side execution– Multiple versions of the same component can co-exist, even

in the same process

Page 21: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Microsoft Intermediate Language (MSIL)

• CPU-independent set of instructions– Provides machine-code abstraction

• instructions for loading, storing, initializing, arithmetic and logical operations, control flow, direct memory access, and exception handling

– Can be JIT compiled to native code very efficiently– All code in Visual Studio .Net is written into MSIL– The idea is that various programming languages can

be used because the original code will be written to MSIL – Converters for currently used languages are

underway

Page 22: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Common Language Runtime (CLR)• Manages running code

– The glue that binds .NET together!– It’s the .NET Execution Engine

• Completely replaces COM plumbing– No registration, GUIDs, .IDL files, HRESULTs,

IUnknown, AddRef/Release, CoCreateInstance, etc.

• Object/Component Oriented to the core– Even across languages!

• Seamless integration with COM

Page 23: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

DeploymentDeployment

DevelopmentDevelopment

CLR Execution Model

VBVB C#C# ScriptScript ......

Assembly: Assembly: MSIL + MetadataMSIL + Metadata

JITJITCode GenCode Gen

NativeNativeCodeCode

Install timeInstall timeCode GenCode Gen

CommonCommonLanguageLanguageRuntimeRuntime

Page 24: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

J2EE vs .NET  .NET J2EE

Programming language

C# (Preferred) Java (basically necessary)

Dynamic Internet access

ASP .Net JSP

Interoperability with different programming platforms 

MSIL Common Language Routine

Java Virtual Machine and CORBA 

Application Development Environment 

Visual Studio .Net Forte

System and component integration

JDBC, EJB, XML, SOAP 

ADO.Net, SOAP and XML

Page 25: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Web Services

• Web services are now defined as interoperable service components that can be accessed as necessary

• Frequently cited examples include third-party services for instant messaging, auctions, electronic payments and online purchasing systems. Existing credit card authorization and content-syndication systems also fall within the Web services realm

Page 26: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Definition of Web Services

• Web services are characterized by the ability to dynamically create and discover services and the delivery of those services over the Internet

• Web services are software components that are created by wrapping a traditional service inside a Web service interface eliminating the need for translation

• They communicate over Internet standard technologies (private or public) and are invoked or delivered through Web service interfaces

Page 27: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

The Technologies• Web services encompass a wide array of

technology standards. • Simply put they are defined using WSDL (Web

Services Description Language), are accessible using SOAP (Simple Object Access Protocol) and are registered using UDDI (Universal Description, Discovery and Integration)

• XML is the foundational technology of Web Services

Page 28: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

XML

• XML is an extensible language for describing other languages so businesses can design their own customized markup language

• XML is far more flexible and extensible than traditional messaging and middleware communications. With XML, applications can send information across the Internet using HTTP and support much "looser" connections

Page 29: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

How Web Services Work

• Discovery– How an application finds a web service

• Description– Explains nature of the service and the company that

offers it

• Invocation– Calling procedure or method provided by a software

component

Page 30: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Discovery - UDDI

• Universal Description, Discovery and Integration is an XML-based registry that lets businesses locate one another on the Internet

• The UDDI standard outlines a framework for a registry of companies and a warehouse of their Web services

• http://www-3.ibm.com/services/uddi/find

Page 31: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Description

• WDSL

• WSDL is the de facto description mechanism in the current Web Services SOAP/WSDL/UDDI trinity (or quaternity if you assume HTTP as the default transport mechanism)

Page 32: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

WSDL

• Web Services Description Language describes an organization's services and lets other organizations access them

• WSDL is becoming the de facto standard for describing Web services in XML format

• WSDL is extensible to allow the description of end points and their messages, regardless of what message formats or network protocols are used to communicate

Page 33: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

Sample WDSL Code

http://www.capescience.com/tutorials/#

Page 34: Design Strategy - Distributed Systems Part 2 New Architectures CSIS3600 Systems Analysis and Design

SOAP

• Simple Object Access Protocol is a way for programs to communicate regardless of operating system

• SOAP defines a protocol for Remote Procedure Call, an application-to-application communication that hides underlying network complexities, across the Internet using HTTP and XML.

• It is a relatively simple way to exchange information in a decentralized, distributed environment because it allows end points to connect via the Web and request the use of services