SlideShare a Scribd company logo
1 of 60
YoungSu, Son [email_address] Microsoft MVP EvaCast Leader Devpia Architecture Sysop EvaCast ( http://www.EvaCast.net )
Motivation ,[object Object],[object Object],[object Object],[object Object],[object Object]
Motivation (cont’d) Data Layer Composite Message Messages UnMarshaling Marshaling Layer Decomposite Message Dispatching
Motivation (cont’d)
Seed Paper ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Composite Pattern
Factory Method Pattern
Refactoring ,[object Object],[object Object],[object Object]
Refactoring ,[object Object],[object Object],int low = daysTempRange().getLow(); int high = daysTempRange().getHigh(); withinPlan = plan,withinRange( low,high ); withinPlan = plan,withinRange( daysTempRange() );
 
Networked System ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Virtual File System Fault Address Space (Page Table) Read Communicate Communicate Page-Frame Physical Page Disk Block File  Contents
Virtual File System (cont’d) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Virtual File System (cont’d) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Distributed Virtual System
 
Loosely Coupled Component ,[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Component ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Component
Loosely Coupled Component Data Layer pushPacket() calls makeHeader() / marshal() Messages UnMarshaling Marshaling Layer popPacket() calls headerSize() / unmarshal Dispatching
Loosely Coupled System ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Loosely Coupled System ,[object Object],[object Object],[object Object],[object Object],[object Object]
Tightly Coupled System ,[object Object],[object Object],[object Object]
Tightly Coupled System ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
[object Object],[object Object],[object Object],[object Object]
Static Participants  #1 - loosely Coupled System
Component ,[object Object],[object Object],[object Object],[object Object]
Message ,[object Object],[object Object],[object Object],[object Object],[object Object]
DataSet and  DataSetInterface ,[object Object],[object Object],[object Object],[object Object],[object Object]
Static Participants  #2 - Tightly Coupled System
Component ,[object Object],[object Object]
Parameter Object ,[object Object],[object Object],[object Object],[object Object]
Dynamic Participants
 
Benefits ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Drawbacks ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
Tightly Coupled Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tightly Coupled Components ,[object Object]
Loosely Coupled Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Components ,[object Object],[object Object],[object Object]
Loosely Coupled Components ,[object Object],[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Components ,[object Object],[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Components ,[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Components ,[object Object],[object Object],H/W Decomposed into Fragment.
Loosely Coupled Components ,[object Object],[object Object],Decomposed into Fragment. ,[object Object],[object Object],[object Object],[object Object]
Loosely Coupled Components ,[object Object],[object Object],Decomposed into Fragment. ,[object Object],[object Object],[object Object],[object Object],[object Object],Splitting
Loosely Coupled Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DVMMessage Code Class DVMMessage { /* Network Protocol Header */ //Leave space for Underlying Protocol Header // such as the Ethernet Header; unsigned _underlyingHeaderSize; unsigned _packetSize; //DVM Protocol using local identifiers  DVMMessageType _type; unsigned _source; unsigned _destination; unsigned _timestamp; unsigned _checksum; /* Header and Auxiliary Header */ //Page List Header unsigned _totalNumberOfPages; unsigned _thisPageNumber; unsigned _offsetInPages; unsigned _pageFramentSize; } // List of pages to marshal from and unmarshal to. Page * _pageList; Page * _pageBeingProcessed /* Getter and Setter Functions */ //Expose using friend interfaces. … . public:  //add pages to the list similar to add()  //for the abstract message void addPages (Page * morePages); //marshal to buffer from page void marshal (unsigned *buffer, unsigned bufferSize); //unmarshal from buffer into page void  unmarshal (unsigned* buffer, unsigned bufferSize); };
Fragmentation Message Code class Fragmenation {   public :   //calculate proper framents and ask message   // to marshal parts of itself into the buffer. void makeFrags ( DVMMessage *m ,   unsigned * buffer,     unsigned * bufferSize);
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
 

More Related Content

What's hot

Tutorial&info,networks basics
Tutorial&info,networks basicsTutorial&info,networks basics
Tutorial&info,networks basicsIT Tech
 
Problems in Task Scheduling in Multiprocessor System
Problems in Task Scheduling in Multiprocessor SystemProblems in Task Scheduling in Multiprocessor System
Problems in Task Scheduling in Multiprocessor Systemijtsrd
 
Lecture 1 networking & internetworking
Lecture 1 networking & internetworkingLecture 1 networking & internetworking
Lecture 1 networking & internetworkingMd. Mashiur Rahman
 
Chapter 4
Chapter 4Chapter 4
Chapter 4asguna
 
network administration directory access and remote access
network administration directory access and remote accessnetwork administration directory access and remote access
network administration directory access and remote accessSangeetha Rangarajan
 
Network protocols
Network protocolsNetwork protocols
Network protocolsHemnath R.
 
Inter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsInter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsAya Mahmoud
 
Protocol
ProtocolProtocol
ProtocolShi Na
 
785101092study material xii_ip
785101092study material xii_ip785101092study material xii_ip
785101092study material xii_ipgitesh_nagar
 

What's hot (20)

Naming in Distributed System
Naming in Distributed SystemNaming in Distributed System
Naming in Distributed System
 
Tutorial&info,networks basics
Tutorial&info,networks basicsTutorial&info,networks basics
Tutorial&info,networks basics
 
Problems in Task Scheduling in Multiprocessor System
Problems in Task Scheduling in Multiprocessor SystemProblems in Task Scheduling in Multiprocessor System
Problems in Task Scheduling in Multiprocessor System
 
Data representation
Data representationData representation
Data representation
 
Lecture 1 networking & internetworking
Lecture 1 networking & internetworkingLecture 1 networking & internetworking
Lecture 1 networking & internetworking
 
Layered Architecture
Layered ArchitectureLayered Architecture
Layered Architecture
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
network administration directory access and remote access
network administration directory access and remote accessnetwork administration directory access and remote access
network administration directory access and remote access
 
Ccna day1
Ccna day1Ccna day1
Ccna day1
 
Osi model
Osi modelOsi model
Osi model
 
Network protocols
Network protocolsNetwork protocols
Network protocols
 
Chap 2 network models
Chap 2 network modelsChap 2 network models
Chap 2 network models
 
Study guide1(1)
Study guide1(1)Study guide1(1)
Study guide1(1)
 
Inter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsInter-Process Communication in distributed systems
Inter-Process Communication in distributed systems
 
Protocol
ProtocolProtocol
Protocol
 
Support
SupportSupport
Support
 
Protocols
ProtocolsProtocols
Protocols
 
Scapy - communication on Layer2
Scapy - communication on Layer2Scapy - communication on Layer2
Scapy - communication on Layer2
 
Layering and Architecture
Layering and ArchitectureLayering and Architecture
Layering and Architecture
 
785101092study material xii_ip
785101092study material xii_ip785101092study material xii_ip
785101092study material xii_ip
 

Similar to Composite Message Pattern for Efficient Communication Between Distributed Components

computer network NCC l4dc assingment
computer network NCC l4dc assingment computer network NCC l4dc assingment
computer network NCC l4dc assingment David Parker
 
Ch15 OS
Ch15 OSCh15 OS
Ch15 OSC.U
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelJenny Liu
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2DBU
 
Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)kyroskoh
 
Bc0055, tcp ip protocol suite
Bc0055, tcp ip protocol suiteBc0055, tcp ip protocol suite
Bc0055, tcp ip protocol suitesmumbahelp
 
Automation and Robotics 20ME51I Week 3 Theory Notes.pdf
Automation and Robotics 20ME51I Week 3 Theory Notes.pdfAutomation and Robotics 20ME51I Week 3 Theory Notes.pdf
Automation and Robotics 20ME51I Week 3 Theory Notes.pdfGandhibabu8
 
Ado.net & data persistence frameworks
Ado.net & data persistence frameworksAdo.net & data persistence frameworks
Ado.net & data persistence frameworksLuis Goldster
 
Unit 2 software partitioning
Unit 2 software partitioningUnit 2 software partitioning
Unit 2 software partitioningPRADEEP
 
934 Ch1 Networks
934 Ch1  Networks934 Ch1  Networks
934 Ch1 Networkstechbed
 
seed block algorithm
seed block algorithmseed block algorithm
seed block algorithmDipak Badhe
 

Similar to Composite Message Pattern for Efficient Communication Between Distributed Components (20)

computer network NCC l4dc assingment
computer network NCC l4dc assingment computer network NCC l4dc assingment
computer network NCC l4dc assingment
 
C C N A Day1
C C N A  Day1C C N A  Day1
C C N A Day1
 
Ccna day1
Ccna day1Ccna day1
Ccna day1
 
Ccna day1
Ccna day1Ccna day1
Ccna day1
 
OSI Model
OSI ModelOSI Model
OSI Model
 
OSCh15
OSCh15OSCh15
OSCh15
 
OS_Ch15
OS_Ch15OS_Ch15
OS_Ch15
 
Ch15 OS
Ch15 OSCh15 OS
Ch15 OS
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in Parallel
 
Ccna day1
Ccna day1Ccna day1
Ccna day1
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2
 
Csc concepts
Csc conceptsCsc concepts
Csc concepts
 
Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)
 
Bc0055, tcp ip protocol suite
Bc0055, tcp ip protocol suiteBc0055, tcp ip protocol suite
Bc0055, tcp ip protocol suite
 
Automation and Robotics 20ME51I Week 3 Theory Notes.pdf
Automation and Robotics 20ME51I Week 3 Theory Notes.pdfAutomation and Robotics 20ME51I Week 3 Theory Notes.pdf
Automation and Robotics 20ME51I Week 3 Theory Notes.pdf
 
Ado.net & data persistence frameworks
Ado.net & data persistence frameworksAdo.net & data persistence frameworks
Ado.net & data persistence frameworks
 
Ccna notes
Ccna notesCcna notes
Ccna notes
 
Unit 2 software partitioning
Unit 2 software partitioningUnit 2 software partitioning
Unit 2 software partitioning
 
934 Ch1 Networks
934 Ch1  Networks934 Ch1  Networks
934 Ch1 Networks
 
seed block algorithm
seed block algorithmseed block algorithm
seed block algorithm
 

More from YoungSu Son

Fault Tolerance 패턴
Fault Tolerance 패턴 Fault Tolerance 패턴
Fault Tolerance 패턴 YoungSu Son
 
Clean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance TuningClean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance TuningYoungSu Son
 
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화YoungSu Son
 
Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭) Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭) YoungSu Son
 
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)YoungSu Son
 
Singleton 패턴 (김진영 - EVA, 소마에 10기)
Singleton 패턴 (김진영 -  EVA, 소마에 10기) Singleton 패턴 (김진영 -  EVA, 소마에 10기)
Singleton 패턴 (김진영 - EVA, 소마에 10기) YoungSu Son
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 YoungSu Son
 
생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기) 생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기) YoungSu Son
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심) DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심) YoungSu Son
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) YoungSu Son
 
DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법 DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법 YoungSu Son
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기YoungSu Son
 
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와  Oreo 의 개선사항 Android 성능 지표와  Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항 YoungSu Son
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법YoungSu Son
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기YoungSu Son
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법 YoungSu Son
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 YoungSu Son
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionYoungSu Son
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기) YoungSu Son
 

More from YoungSu Son (20)

Fault Tolerance 패턴
Fault Tolerance 패턴 Fault Tolerance 패턴
Fault Tolerance 패턴
 
Clean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance TuningClean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance Tuning
 
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
 
Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭) Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭)
 
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
 
Singleton 패턴 (김진영 - EVA, 소마에 10기)
Singleton 패턴 (김진영 -  EVA, 소마에 10기) Singleton 패턴 (김진영 -  EVA, 소마에 10기)
Singleton 패턴 (김진영 - EVA, 소마에 10기)
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기) 생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기)
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심) DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
 
DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법 DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와  Oreo 의 개선사항 Android 성능 지표와  Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + Genymotion
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
 

Composite Message Pattern for Efficient Communication Between Distributed Components

  • 1. YoungSu, Son [email_address] Microsoft MVP EvaCast Leader Devpia Architecture Sysop EvaCast ( http://www.EvaCast.net )
  • 2.
  • 3. Motivation (cont’d) Data Layer Composite Message Messages UnMarshaling Marshaling Layer Decomposite Message Dispatching
  • 5.
  • 6.
  • 7.  
  • 10.
  • 11.
  • 12.  
  • 13.
  • 14. Virtual File System Fault Address Space (Page Table) Read Communicate Communicate Page-Frame Physical Page Disk Block File Contents
  • 15.
  • 16.
  • 18.  
  • 19.
  • 20.
  • 22. Loosely Coupled Component Data Layer pushPacket() calls makeHeader() / marshal() Messages UnMarshaling Marshaling Layer popPacket() calls headerSize() / unmarshal Dispatching
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.  
  • 28.
  • 29. Static Participants #1 - loosely Coupled System
  • 30.
  • 31.
  • 32.
  • 33. Static Participants #2 - Tightly Coupled System
  • 34.
  • 35.
  • 37.  
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55. DVMMessage Code Class DVMMessage { /* Network Protocol Header */ //Leave space for Underlying Protocol Header // such as the Ethernet Header; unsigned _underlyingHeaderSize; unsigned _packetSize; //DVM Protocol using local identifiers DVMMessageType _type; unsigned _source; unsigned _destination; unsigned _timestamp; unsigned _checksum; /* Header and Auxiliary Header */ //Page List Header unsigned _totalNumberOfPages; unsigned _thisPageNumber; unsigned _offsetInPages; unsigned _pageFramentSize; } // List of pages to marshal from and unmarshal to. Page * _pageList; Page * _pageBeingProcessed /* Getter and Setter Functions */ //Expose using friend interfaces. … . public: //add pages to the list similar to add() //for the abstract message void addPages (Page * morePages); //marshal to buffer from page void marshal (unsigned *buffer, unsigned bufferSize); //unmarshal from buffer into page void unmarshal (unsigned* buffer, unsigned bufferSize); };
  • 56. Fragmentation Message Code class Fragmenation { public : //calculate proper framents and ask message // to marshal parts of itself into the buffer. void makeFrags ( DVMMessage *m , unsigned * buffer, unsigned * bufferSize);
  • 57.
  • 58.
  • 59.
  • 60.