distributed computing infrastructure prepared for:

61
Distributed Computing Infrastructure Prepared for:

Post on 19-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Distributed Computing Infrastructure Prepared for:

Distributed Computing Infrastructure

Prepared for:

Page 2: Distributed Computing Infrastructure Prepared for:

Fiorano MQ 5, Fiorano Integrator

Fiorano MQ 5, Fiorano Integrator

Scalability. Performance. Standards.

Page 3: Distributed Computing Infrastructure Prepared for:

Fiorano Software

• Founded 1995– Messaging Servers 1997

– JMS implementation 이 처음 발표된 날 – September 1998

• Over 50 Employees– 본점 : Los Gatos, CA

– 지점 : New York, London, New Delhi

• Operations – JT Ventures 에 서 펀 딩 받음– 2002 에 IPO 할 계획

Page 4: Distributed Computing Infrastructure Prepared for:

Over 120 Customers

Page 5: Distributed Computing Infrastructure Prepared for:

Partnerships

Page 6: Distributed Computing Infrastructure Prepared for:

고객 :– AT&T Wireless

문제점 :– Cellular base stations 에 계속 된 업 데이트 필요

필요 조건 :– 보안성 , 높은 성능 , 안정된 메세징

솔루션 :– Wireless base stations 에 24 x 7 모니터링 필요– Base station 에 성능 과 상태를 리얼 타임으로 알려준다– 안정된 메세징 환경

Page 7: Distributed Computing Infrastructure Prepared for:

고객 :– Pennsylvania 주

문제점 :– 경찰청 들간에 전과 기록 공유 필요성 – 경찰 , 집행유예 , 가석방 , 등

필요 조건 :– Standards-based, 보안성 , 통지

솔루션 :– JMS Distributed Application 에 높은 안정성– 여러 부서 간에 리얼 타임으로 data 공유– FioranoMQ 와 BEA WebLogic 간의 서버 통합

Page 8: Distributed Computing Infrastructure Prepared for:

고객 :– Socketware™

문제점 :– E- 메일 마케팅 과 메세징 솔루션

필요 조건 :– Standards-based, 확장성 , High-Performance, 신뢰성

솔루션 :– 시간에 민감한 정보 를 즉각 deliver 함– 많은 양의 메시지 제공– 프로모션 응답 비율을 최대 100% 향상시키게 해 주는

시스템이다

Page 9: Distributed Computing Infrastructure Prepared for:

What Is Messaging ?

• Software components 와 applications 간에

communication 방법

• 커뮤니케이션의 커넥션이 끊어진 경우에도 안전하게

메시지를 도착지까지 전달한다

• RMI/CORBA/E-mail 과 같은 communication

mechanisms 와 는 다르다

Page 10: Distributed Computing Infrastructure Prepared for:

What is the JMS API ?

• JAVA API 는 applications 이 messaging

implementation 에서 메시지를 작성 , 보내기 , 받기 ,

그리고 읽기를 가능하게 해 준다

Page 11: Distributed Computing Infrastructure Prepared for:

JMS API enables …

• 커뮤니케이션의 연결이 끊어졌을 때 메시지를

안전하게 전달하는 것 이외에도 :

• 비동기식 (Asynchronous)

• 신뢰성 (Reliable)

Page 12: Distributed Computing Infrastructure Prepared for:

JMS Application Components

• JMS Provider

• JMS Clients

• Messages

• Administered objects

• Non-JMS Clients

Page 13: Distributed Computing Infrastructure Prepared for:

JMS : Messaging Domains

• Point-to-Point 메세징 도메인

• Publish-Subscribe 메세징 도메인

Page 14: Distributed Computing Infrastructure Prepared for:

Point to Point Messaging

• 각각에 message 는 하나에 고객을 갖고있다

• Sender 와 receiver 에 message 사이 는 시간에

구애를 받지 안는다

• Receiver 성공적으로 processing 된 message 를

승인 한다

Page 15: Distributed Computing Infrastructure Prepared for:

PTP Model

모든 message 가 하나에 고객을 통해

process 될 때 PTP messaging 을 쓴다

Page 16: Distributed Computing Infrastructure Prepared for:

Publish/Subscribe Messaging

• 각각 message 들은 여러 개의 destinations 이 있다

• Publisher 과 subscriber 사이에는 시간에 영향을

받지만 durable subscriber 는 예외다

Page 17: Distributed Computing Infrastructure Prepared for:

Pub-Sub Model

Message 가 zero, one, 아니면 다수 에 고객간에 process 될 때 pub/sub messaging 을 쓴다

Page 18: Distributed Computing Infrastructure Prepared for:

Message Consumption

• Synchronous

“Receive” method 를 불러서 destination 에 서

뿌려준다

• Asynchronous

Message Listener 를 setting 한다

Page 19: Distributed Computing Infrastructure Prepared for:

JMS Application Building Blocks

• Administered Objects (connection factories and

destinations)

• Connections

• Sessions

• Message Producers / Consumers

• Messages

Page 20: Distributed Computing Infrastructure Prepared for:

JMS Client Application

Page 21: Distributed Computing Infrastructure Prepared for:

Administered Objects

• Connection Factories – Client 가 provider 와

connect 할 때 쓰는 object

• Destinations – Client 가 message 에 target/source

를 파악할 때 쓰는 object

• Administered Objects 는 provider 마다 다름

Page 22: Distributed Computing Infrastructure Prepared for:

Connections

• JMS provider 와 virtual connection 을 encapsulate

한다

• 하나 또는 여러 개 에 session 을 만들 때 쓴다

• Queue Connection 방법과 Topic Connection 이 있다

Page 23: Distributed Computing Infrastructure Prepared for:

Sessions

• Message 를 생산하고 사용할 때 Single threaded

context 를 쓴다

• Message producers, message consumers and

messages 를 만들 때 사용

• Transactional context 를 제공한다

• Queue Session and Topic Session

Page 24: Distributed Computing Infrastructure Prepared for:

Message Producers

• Messages 를 destination 에 보낼 때 이용하는

object 를 session 을 통해서 만든다

• PTP 는 QueueSender interface 를 사용한다

• PubSub 는 TopicPublisher interface 를 사용한다

Page 25: Distributed Computing Infrastructure Prepared for:

Message Consumers

• Destination 에 보낸 message 를 받을 때 이용하는

object 를 session 을 통해서 만든다

• JMS client 가 JMS provider 를 이용해서 destination

에 interest 를 register 할수 있 게 한다

• PTP 는 QueueReceiver 를 사용한다

• PubSub 는 TopicSubscriber interface 를 사용한다

Page 26: Distributed Computing Infrastructure Prepared for:

Message Listeners

• Object that acts as an asynchronous event handler

for messages

• onMessage 기능이 제공되는 MessageListener

interface 를 사용한다

• OnMessage method 는 message 가 도착할 때 어떤

행동을 취할지 생각한다

Page 27: Distributed Computing Infrastructure Prepared for:

JMS Messages

• Header

JMSDestination, JMSExpiration, JMSReplyTo

..

• Properties (optional)

• Body (optional)

TextMessage, MapMessage, BytesMessage,

StreamMessage, ObjectMessage, Message

Page 28: Distributed Computing Infrastructure Prepared for:

FioranoMQ - Message Server

• Standards-based– Fully JMS 1.0.2 compliant, Pure Java

• Performance– 타 제품보다 약 10 배 정도의 속도로 확실한 메시지를 보낸다

– File-based data store

• Scalability– Scalable Connection Management (SCM)

– Fiorano Neighboring™

– Clustering & Load-balancing

Page 29: Distributed Computing Infrastructure Prepared for:

FioranoMQ - Server Architecture

Security

XML Toolkit

Neighboring

AppServer IntegrationFioranoMQFioranoMQ

Server ComponentsServer Components

Administration

C++ Bindings

Message Store

Firewall

ERP Legacy

SSLTCP/IP

HTTP HTTP

ETS – Automatic Fail over Capability

Page 30: Distributed Computing Infrastructure Prepared for:

FioranoMQ - Message Server

• Interoperability– C++ RTL

– XML Support

– FioranoMQ Bridge™ - IBM MQ Series & MSMQ

• Internet Support– HTTP Tunneling

– Applet/Browser Support

• Security – “Software Firewalls”

– ACE/ACL

– SSL

Page 31: Distributed Computing Infrastructure Prepared for:

FioranoMQMessage Server

FioranoMQ - Info Bus

FioranoMQ – Messaging Server

• High Performance

• Hub & Spoke Architecture

• Guaranteed Message Delivery

• Publish/Subscribe

• Point-to-Point

FioranoMQ – Info Bus

• Server-less Multicast JMS

• Peer-to-Peer

• Publish/Subscribe

• High Availability

• No single point of failure

TCP/IP HTTP SSL

FioranoMQ Architecture

Page 32: Distributed Computing Infrastructure Prepared for:

Performance Advantage

Unique 하고 성능이 확인된 file based data store 은 FioranoMQ 의 성능을 높여주는 Key Reason 이다 .

Non Persistent / Non Durable FioranoMQ SonicMQ x Faster1k Message, 1 Topic / 1 Publisher 1 Subscriber 1556 282.5 5.5110k Message, 1 Topic / 1 Publisher / 1 Subscriber 398.1 32 12.44

Persistent / Durable 1k Message, 1 Topic / 1 Publisher 1 Subscriber 863 20 43.1510k Message, 1 Topic / 1 Publisher / 1 Subscriber 267 97 2.75

Page 33: Distributed Computing Infrastructure Prepared for:

Installation

• Windows– Installable .exe– As an NT Service

• Solaris– tar.gz archive

• License Key• Offline database 의 Directory Path 세팅

java -classpath $CLASSPATH

fiorano.jms.ex.FMP -p ../bin

Page 34: Distributed Computing Infrastructure Prepared for:

Running Samples

• Publish / Subscribe

• Point-to-Point

• Repeater

• XML

• Dispatcher

Page 35: Distributed Computing Infrastructure Prepared for:

Administration

• Administrator Console– Users, Groups, Topics Queues, Durable

Subscribers

– TCFs, QCFs Admin CFs

– Dispatcher, Snooper

• Administration APIs

• Creating an Admin Connection

Page 36: Distributed Computing Infrastructure Prepared for:

Connection Manager

• Pluggable Architecture– Java connection management– Scalable Connection Management (SCM)

• Secure & Non-Secure

• Tested with 3,000 concurrent clients– Windows NT

– Unix

Page 37: Distributed Computing Infrastructure Prepared for:

Scalable Connection Manager (SCM)

Page 38: Distributed Computing Infrastructure Prepared for:

Naming Manager

• Directory Information Storage– LDAP Integration

• Support for existing network infrastructure

– RDBMS support

• Use RDBMs of choice

– XML support

• Local storage in XML format

Page 39: Distributed Computing Infrastructure Prepared for:

Integration with LDAP Servers

• Pluggable interface to LDAP Servers– Netscape, etc.

• 모든 ‘ administered objects’ 를 검색– 모든 meta data objects 는 LDAP Server 에 저장될 수 있다

• LDAP 를 사용하기 위한 FioranoMQ 의 설정– Server.cfg

• Looking up Connection Factories• Setting Access Permissions

Page 40: Distributed Computing Infrastructure Prepared for:

JNDI Lookup

• JMS applications 은 standard based JNDI APIs 를 이용하여 다양한 various administered objects 를 검색할 수 있다 .

• Client code 는 vendor specific implementation 에 완전히 독립적이 되어진다 .

• JNDI compliant 인 어떤 JMS vendor 에 의해서 쓰여진 code 도 그 code 자체로 쓰여질 수 있다 .

Page 41: Distributed Computing Infrastructure Prepared for:

JNDI Lookup

• FioranoMQ 는 context interface 의 가장 중요한 JNDI API 를 지원한다 .

• FioranoInitialContextFactory 는 JNDI 의 interface 인 InitialContextFactory 를 실행한다 .

Page 42: Distributed Computing Infrastructure Prepared for:

Tunneling Through Firewalls

• SOCKS Proxy Server– Tunnel through client & server side firewalls

– SOCKS 는 TCP 나 UDP based client and server 에 data

channel service 를 제공하는 proxy 를 생성한다 .

• HTTP Tunneling – Tunnel through client & server side firewalls

– Proxy servers 는 HTTP 에 대한 proxy tunneling 의 연장을 확실히 제공해야 한다 .

Page 43: Distributed Computing Infrastructure Prepared for:

HTTP TunnelingHTTP Tunneling

Client Proxy

Server ProxyJMS Application

HTTP Connection HTTP Connection

FioranoMQSSL / Non SSL

SSL / Non SSL TCP Connection

ProxyServicing

Client Requests

JMS ApplicationHTTP Connection

FioranoMQSSL / Non SSL

SSL / Non SSL TCP Connection

HTTP Connect

Page 44: Distributed Computing Infrastructure Prepared for:

Security

• User Identification & Authentication– JMS API 에 의해서 지정된 username/password

model

– Authentication & Data Protection

– Based on Digital Certificates

– SSL

Page 45: Distributed Computing Infrastructure Prepared for:

Security Realms

• FioranoMQ server 의 자원을 보존하기 위한 logical and

centralized grouping of Users, Groups, and ACLs.

• User Management– Default Realm

– NT Realm

• Access Control– ACLs

Page 46: Distributed Computing Infrastructure Prepared for:

Security Realms

• Setting up Realms– NT– UNIX– Permissions

• Configuration

• Administering Realms

• Limitations

Page 47: Distributed Computing Infrastructure Prepared for:

Security Realms

• LDAP – 한곳에서 조직의 모든 구성원을 관리 : a LDAP

directory.– Configuration

• Caching Realm

• RDMS Realm

Page 48: Distributed Computing Infrastructure Prepared for:

C++ Runtime Library

• Thin set 이나 wrapper classes 를 이용하여 C++ programs 도 JMS messaging 기능을 이용할 수 있다 .

• Pub/Sub & PTP • Compiling and running C++ programs

– Windows– Solaris

• JDKs• Multithreaded Clients• Issues

Page 49: Distributed Computing Infrastructure Prepared for:

Hierarchical Topics

• 계층적인 방식에서 topic name spaces 는 다양한 destination 을 구성할 수 있는 능력을 제공한다 .

• Name Space 표시

Page 50: Distributed Computing Infrastructure Prepared for:

Hierarchical Topics

• Creating Hierarchical Topics

• Looking up Hierarchical Topics

• Security Considerations

• Limitations

Page 51: Distributed Computing Infrastructure Prepared for:

Logging & Trace Facilities

• 에러의 빠른 감지와 수정

• Admin Tool Integration

– Set user defined tracing levels

– Generate Log with detail log description

– 에러나 보안상의 피해가 있을 경우 instant message 를 보냄

Page 52: Distributed Computing Infrastructure Prepared for:

FioranoMQ Bridges

• Integrated Message Queuing

• Architecture

Page 53: Distributed Computing Infrastructure Prepared for:

AppServer Integration

Page 54: Distributed Computing Infrastructure Prepared for:

FioranoMQ Bridges

• Features

– XML Based

– Choice of Connection Topologies

– 현재 발생하는 네트워크 감퇴나 정지에 강점

– Logging and Trace Options

Page 55: Distributed Computing Infrastructure Prepared for:

FioranoMQ Bridges

• 메시지를 원격에 위치한 queues 에 전달

• Distributed Queues

Page 56: Distributed Computing Infrastructure Prepared for:

Fiorano Repeater

• Distributed Server-to-Server Communication – Topics

– Request reply

– Store & Forward

– Clustering 을 하기 위한 dispatcher 와 같이 쓰인다

• Fault Tolerance and Failover Safety

• Configuration – XML config. file

Page 57: Distributed Computing Infrastructure Prepared for:

Server-to-Server Communication

• LAN 이나 WAN 사이의 서버 연결• Fiorano Repeater

Page 58: Distributed Computing Infrastructure Prepared for:

Fiorano Repeater

FioranoMQS2

FioranoMQS1

FioranoMQS3

FioranoMQS4

Repeater

FioranoMQS2

FioranoMQS1

FioranoMQS3

FioranoMQS4

Repeater

Repeater

Repeater

FioranoMQS2

FioranoMQS1

FioranoMQS3

FioranoMQS4

Repeater

Repeater

Repeater

Repeater

Page 59: Distributed Computing Infrastructure Prepared for:

Fiorano Repeater

• Setup– Single Instance

– Multiple Instances

• Configuration – XML config file

– Tags and sample usage

Page 60: Distributed Computing Infrastructure Prepared for:

Load Balancing

• Fiorano Dispatcher

• Configuration

#START_DISPATCHER=true

• Client 편에서는 아무런 change 를 할 필요가 없다 .

• Multiple Dispatcher Service

Page 61: Distributed Computing Infrastructure Prepared for:

Fiorano Integrator

Includes all FioranoMQ features plus:

• Bridges to MSMQ, MQSeries, SQL

• XCR – Content Based Routing engine

• ETS (MQ with no single point of failure)

• Message Servlets and XSLT transformations