distributed computing infrastructure prepared for:

Post on 19-Dec-2015

217 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Distributed Computing Infrastructure

Prepared for:

Fiorano MQ 5, Fiorano Integrator

Fiorano MQ 5, Fiorano Integrator

Scalability. Performance. Standards.

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 할 계획

Over 120 Customers

Partnerships

고객 :– AT&T Wireless

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

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

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

고객 :– Pennsylvania 주

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

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

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

고객 :– Socketware™

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

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

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

시스템이다

What Is Messaging ?

• Software components 와 applications 간에

communication 방법

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

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

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

mechanisms 와 는 다르다

What is the JMS API ?

• JAVA API 는 applications 이 messaging

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

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

JMS API enables …

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

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

• 비동기식 (Asynchronous)

• 신뢰성 (Reliable)

JMS Application Components

• JMS Provider

• JMS Clients

• Messages

• Administered objects

• Non-JMS Clients

JMS : Messaging Domains

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

• Publish-Subscribe 메세징 도메인

Point to Point Messaging

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

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

구애를 받지 안는다

• Receiver 성공적으로 processing 된 message 를

승인 한다

PTP Model

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

process 될 때 PTP messaging 을 쓴다

Publish/Subscribe Messaging

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

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

받지만 durable subscriber 는 예외다

Pub-Sub Model

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

Message Consumption

• Synchronous

“Receive” method 를 불러서 destination 에 서

뿌려준다

• Asynchronous

Message Listener 를 setting 한다

JMS Application Building Blocks

• Administered Objects (connection factories and

destinations)

• Connections

• Sessions

• Message Producers / Consumers

• Messages

JMS Client Application

Administered Objects

• Connection Factories – Client 가 provider 와

connect 할 때 쓰는 object

• Destinations – Client 가 message 에 target/source

를 파악할 때 쓰는 object

• Administered Objects 는 provider 마다 다름

Connections

• JMS provider 와 virtual connection 을 encapsulate

한다

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

• Queue Connection 방법과 Topic Connection 이 있다

Sessions

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

context 를 쓴다

• Message producers, message consumers and

messages 를 만들 때 사용

• Transactional context 를 제공한다

• Queue Session and Topic Session

Message Producers

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

object 를 session 을 통해서 만든다

• PTP 는 QueueSender interface 를 사용한다

• PubSub 는 TopicPublisher interface 를 사용한다

Message Consumers

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

object 를 session 을 통해서 만든다

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

에 interest 를 register 할수 있 게 한다

• PTP 는 QueueReceiver 를 사용한다

• PubSub 는 TopicSubscriber interface 를 사용한다

Message Listeners

• Object that acts as an asynchronous event handler

for messages

• onMessage 기능이 제공되는 MessageListener

interface 를 사용한다

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

행동을 취할지 생각한다

JMS Messages

• Header

JMSDestination, JMSExpiration, JMSReplyTo

..

• Properties (optional)

• Body (optional)

TextMessage, MapMessage, BytesMessage,

StreamMessage, ObjectMessage, Message

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

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

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

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

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

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

Running Samples

• Publish / Subscribe

• Point-to-Point

• Repeater

• XML

• Dispatcher

Administration

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

Subscribers

– TCFs, QCFs Admin CFs

– Dispatcher, Snooper

• Administration APIs

• Creating an Admin Connection

Connection Manager

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

• Secure & Non-Secure

• Tested with 3,000 concurrent clients– Windows NT

– Unix

Scalable Connection Manager (SCM)

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

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

JNDI Lookup

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

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

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

JNDI Lookup

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

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

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 의 연장을 확실히 제공해야 한다 .

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

Security

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

model

– Authentication & Data Protection

– Based on Digital Certificates

– SSL

Security Realms

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

centralized grouping of Users, Groups, and ACLs.

• User Management– Default Realm

– NT Realm

• Access Control– ACLs

Security Realms

• Setting up Realms– NT– UNIX– Permissions

• Configuration

• Administering Realms

• Limitations

Security Realms

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

directory.– Configuration

• Caching Realm

• RDMS Realm

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

Hierarchical Topics

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

• Name Space 표시

Hierarchical Topics

• Creating Hierarchical Topics

• Looking up Hierarchical Topics

• Security Considerations

• Limitations

Logging & Trace Facilities

• 에러의 빠른 감지와 수정

• Admin Tool Integration

– Set user defined tracing levels

– Generate Log with detail log description

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

FioranoMQ Bridges

• Integrated Message Queuing

• Architecture

AppServer Integration

FioranoMQ Bridges

• Features

– XML Based

– Choice of Connection Topologies

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

– Logging and Trace Options

FioranoMQ Bridges

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

• Distributed Queues

Fiorano Repeater

• Distributed Server-to-Server Communication – Topics

– Request reply

– Store & Forward

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

• Fault Tolerance and Failover Safety

• Configuration – XML config. file

Server-to-Server Communication

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

Fiorano Repeater

FioranoMQS2

FioranoMQS1

FioranoMQS3

FioranoMQS4

Repeater

FioranoMQS2

FioranoMQS1

FioranoMQS3

FioranoMQS4

Repeater

Repeater

Repeater

FioranoMQS2

FioranoMQS1

FioranoMQS3

FioranoMQS4

Repeater

Repeater

Repeater

Repeater

Fiorano Repeater

• Setup– Single Instance

– Multiple Instances

• Configuration – XML config file

– Tags and sample usage

Load Balancing

• Fiorano Dispatcher

• Configuration

#START_DISPATCHER=true

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

• Multiple Dispatcher Service

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

top related