• No results found

Distributed Application

N/A
N/A
Protected

Academic year: 2022

Share "Distributed Application"

Copied!
89
0
0

Loading.... (view fulltext now)

Full text

(1)

!

" " #$ %&#

&$ '(

(2)

!" #!

$%

! "#$ %

&

! ! #

'()

* ++,

() ()

! - $

.

+/

(3)

') 0 & ' % ( 1

2 3 0#

$%

''

4525

(4)

-" . -". .6 4( 0#

0# 1

0#

3 -". 32

2 3

'20#)

3 3

# -". 0#

-". 0# ) 0# ' # 1

0 3 - 2 0 0

-". 0# - ! 4( 7*8 0

0 ' 8-4

-". 0 0 9 0 8-4 ' 1

+ -". # 31

:*8 0

.6 -".2 ) 1

0 0# 0

;0 0#

(5)

* ' +

;#

5 <= "

, ' -

5 >0# . ?

5 5 -

5 5 -".: : 8

5 5 5 -".: 80 8

5 5 -".$8

5 5 @ .8 5

5 -". + A0 5

. ' */

- + ! @

5 + -".: 808

5 ' &. ?

5 5 8. 5

/ % # #! ,*

@ B8' A0 -". 0 5

@ 5 -". <3 5

@ 5 " 5?

@ 5 5 * 5C

@ 5 <3B

@ + 5

@ B!> 5

@ 5 > -) @

@ <3-' C

@ @ - + D

@ @ 4 - @

(6)

' <3()-".' @

' @

5 <3 @@

5 - - @@

- -". 0' @

@ -". + A0 @

1 /2

' A0 -". 0 @C

-". 0 ! 4 @C

5 -". 0 .4

5 -". <3 @

5 * @

5 5 <3B

+

B!> ?

5 > C

@ 4 -

- "0 1/

? +. ! - @

? '

? 5 ' '

? &:' +. ! -

? 5 ;# <=- ?

? 5 <Æ <3 ' C

? 5 5 ' <Æ <3 ' C

? 5 &:' ;# <=- D

? 5 @ B 8<= D

? + < :-". ' ?

? ' ?

? 5 ' ' ?

? : - " ?5

2 ' '' 3 -.

& --

4 3 5 3 ' -6

(7)

5 :1.+ -". C

5 5 -". >0# -

5 + A0 -". 0

. ?

5 !) " C

@ . + -". 0 55

@ 5 +#. 5?

@ +4#! < 5C

@ @ +0 ." * <3 5D

@ + 0;# ..

@ .+B!>

@ ? +- 8# @

@ C -+ >

@ D 0 5 0-) ?

@ .+-() C

@ +<3-' C

@ 5 .+- + @

@ +% @

@ @ +8 < @5

- A0 -".' @

5 + A0 -".' @?

. + -". 0 ! ! 4

5 . + -". 0 ! .4

+4#! <

@ + 0;# ..

+0-8# ?

.B!> .4 C

? .B!> ! 4 C

C -+ > ! D

(8)

% 5

+8 <

? . ! - ' ?

? 5 ;# <=- &:' ?

? 4;0 8<= ?

? @ <Æ> : * '0 <Æ"- ?

(9)

-". -".E F 0# 1

0# 2

' -". 2 3

'EF2 1-".#8'4:7

"!. 1

# 0 3 2

' .1"!.

' 2 -". 0# .6G 4( E5FEC F 8-4 '

0# 32

3 <3

1 )032 1

3

'2 3

* 3 .6 -". 0# 1

3 0 2 #

;3 #2

2 ) 0 3 -

3

32 3 )

)

-". 0# ' ) -". 0# 8-4

-". ' 0 -".

8-4 - -". 0#

8-4'-". -".'- ! 4(

7*8 00 '

(10)

> -". 0#

EF ' E F2 - -". "!. + 0

31 0

# # 2 2

+0# 4(G.6 * 3

-". -". 0#

) 3 '

3 3

-". 0# ) 0# '2 ' 1

3 -". + 0

-". '

-".

8-4 ' )

-". . 5 -". 0#

-". 0 8-4 .

2 -". 0# +

-". # 8-4 . @ '

) -". ' .

+ -". # ' .

() . ? .0#

. C '- )- -".0

- ) 0 -".0#

(11)

-".0# 5 1

0# 5 5 0 0 -". 5

0 -". 8-4

>0# !A* EF2 .<"- EF2.<*G+.<*ED F 1

0# ) 2

= 2 2

>0# E? F E5 F 3

- 0# 2

0#2 -". 0# 4(

= 0 22

8

3-". --". #

0# - 0

0# )

3 -". 3

>5 010-".1

0# 0#

! -".

403

0

-". 3/ - 3 -". 3 1

--". 3 -".

(12)

Parallel/

Distributed Application

getHPFVector Push

Sync

Join

AutoExecution

Leave Register

FTSService

GracefulRetract

Node Administrator

connect

Create

Release

> 5 / :1.+-".

-4/ -

20 B!>

B!> - B!>

- B!>0B!>

0#

() / - ) 1

* -/ ; B!> 2

2

3 #

B!>

*/ * -". 3 - -". 3

3

B!>

/ - ) 3

(13)

!/ ; -".13

2 1# -

)3,

-1/ -3 #

- 32

3 0

3 ) 0

; / - 0 -". 3

-". 3 ' 3 2

#

() "/ -3#0

! -". 3 -". 3

H 0 # ! "

-".3

"/ - 3 1 0#

3 2 )

3 0 0

> 23,

#0 3

2

-". 3 !) 0

>/ --".3

-". 3 2 2 3

0 >

-".3 -> 1

0 > : 2

> -".

. * <3/ " 3 ) 0

' 3 #02) ) 3

> 3

#0 - ) ) )

0 3

+/ - -". 3 = # - 1

=3 0# 0

(14)

+0#

+ 3 / * 3 -".

% 8 ( )

% 3

> 5 5 -". 0# -". =

0 0

-".

+

4 3

-". 0# 0 -".0#

. )-".0

0 . ! 0

)

-".# 4(

+ 2

)7 8 ' 0 0 -". 32 *1

2 )

0 -".3 ; -". 3 1

23 )0

-". 3 ) -". 3 ) ) 1

-". 3 ) -". 3

9

8 +

)20 4( 0#

-". 0

(15)

UserProgram

IMyObj

Factory

Container ARCObject

NodeAdmin Program UserLevel

.NET Remoting Infrastructure

Call Services Call Services Call Services

Asynchronous Notify

ARCObject Proxy Layer

ARC Kernel Layer C ommunication

Kernel Services ARC

Proxy Layer ARC Services

NodeAdmin Services Services

ARC Object

Join Service Registration

Service

Migration Service

HPF Service

ObjectArrival Intimation Service Developer Services Translated UserInterface

Acquire Proxy

RealObj

ARC User Upper Layer ARC User Lower Layer Layer

Service Auto Execution Fault Tolerance &

Leave Service Activation &

Trigger Service

> 5 5/ -".>0# -

(16)

#2 3

! 8 4 3

-". 0# -". 0# 4

3 - -".

4( 0 0 1

.00# 4(

)

!

> 5 0 0 -". 0 8-4 - 8-4

3 -". -".

0# % -". 0#

4 -". 0# -". 0 9 -".

4( .!

. @ -".0

(17)

:logical ring

:a node not in the ARC logical ring

:LAN Network

:a node in the ARC logical ring ARC

Sotware Components

ARC Sotware Components

ARC Sotware Components

ARC Sotware Components

ARC Sotware Components

<<TCP .NET Remoting>>

<<TCP .NET Remoting>>

<<TCP .NET Remoting>>

<<TCP .NET Remoting>>

<<TCP .NET Remoting>>

ARC Network

>5 / + A0 -". 0

(18)

- -".2

-".0#

5 -".

" #

- -". 2

-

- 3 0# )

3 0# 1

' 2

) -". 3 :-". 2 1

) ")

-". 3 ( 0# 1

-". E F -

-". 3 0#1H0 -". 0 -". 3

-". ) '

) 2-".3 20

# 3

) #

9

0 -".3 0

0 -". 3 )

(19)

) ' 02 -". 3

-". 3

!

"

)7

' !

-". # -". 3

)

#$

%$ &'

(

) **

+, -..) * /0

1 #22

+ 3 , 4

"

"

"

+, -..3 , 422

"

"

"

+ 2 9

*)3

' ) 2 # 0 $ !2

0 %&'( 0 0 * $2 '!

'! %$

0 ) #

-".3

-2 !

(20)

" -".3

3

3

5+ 3(6$

73(68 +

73(6$ + 9

73(6$ + ! +:

73(6$ + ;

< =5>?3(6$ <

@+ * 3(68

9 +*3(68 5

9 +$&3(68

73(68+ 59

5 9 +*3(68>

A+ !

#$+ 9 #$+6 +#B

C+

+ 5

?+ B

+, -.. 0 22

D+ B

+

E+ *

+, -.. 22

"

"

"

4 B!> B!>

0-".3

-) # 3

' 0

$ % %"

> 5 0 0 -". 3

0

2

) Æ -1

'

-". 3, 2 0 2

-". 3,

(21)

«interface»

IContainer

Container Factory

+New(): IMyObj

«interface»

IPushCommand

+push(machine:HPFValue): int

«interface»

IMyObject

+myOperation(param:type): type

UserProgram

PContainer

«implementation»

2

«instantiate»

«interface»

IRefCount

+IncRefCount(): void +DecRefCount(): void +RefCount(): int

«use»

«use»

«interface»

ISync

+Sync(): void

+GracefulRetract(): void +connect()

«interface»

IMigratable

To Interfaces IMYObject, IPushRequest

> / .

-".

0

! " # "

'200 2

2 0

''*<3/ 1

-".3 1

' 2

2

(22)

Proxy

PReal

Activator (.NET Remoting)

+GetObject(): Object

«interface»

ITrigger

+Trigger(): void +OnReturn(): void +OnRetract(): void

«interface»

IRealUtil

+isRetractonSet(): bool

+RegisterForRemoteAccess(): void

«interface»

IMyObject

+myOperation(param:type): type

Nonoriginator Context

Real

«instantiate»

«implementation»

«interface»

IRefCount

+IncRefCount(): void +DecRefCount(): void +RefCount(): int

«use»

«use»

«use»

«interface»

IMigratable

«interface»

IPushRequest

+push(machine:HPFValue): int

Container at Originator

«use»

FrontEndReal

«use»

To MarshalByRefObject, IMyObjectMigratable,

IFronEndRealUtil, PFrontEndReal

> 5/ !) "

''/ > -".32

$20

2 * !

'! 3

' '"./ ' # # )

-".3 '

! '

. "/

0> 5 '*<3' <

5 0 '*<3 '".

"

(23)

2 # 3 0

-

!

../ : #

. -".

3 0 '

-".3

30, 2 ) 0 3

'

! 0

' ) 0 0 # #

- 2

# 2

#-".3

+ 0 >

.!)/ 0> 52 )

,! ', 4(

- '( - )

) 0

-". 3 0

. >("/ - 0 -". 3 0

- # -". 3

) '

# -". 3 2 " 3

*"<32 0 # B2 0

-". 32

# 3 ! ;

! ! $2

,!2= 32

3 -0> 52 ,!

,! 0

. >/ - -". 3 1

-". 3 - %+

>

+

(24)

1

.2 " >("

+ 2! ,!

.!./ -0> 2=%" *

-".3

%+

"2 ! %"

'

2 >

* -". 3 *#

3 *

H -". 3 0 # -". 3, )

-". 3 H

<

-".3 -

2 #

-". 3

. !"/ -0 > 52 = %!.

%!/ .! # 0)1

-". 32 1

2 2

! !

* 0 3 1

B02 1#

) * #

H0

'02-".3

2

3 -".

32

. !>("/ -0 > 52 %!0

. "

!

(25)

' 2 -". 2

-". 0# 4( 2

2 32

! 3-". --".

#

0# - 0

0#

) 3

-". 3 -". =

2 -". 3 2 +

4 @ 0 -".

0 @ 5) -". 32 @

@ @

& ' %" ( !

>@ 0 :*8 EF -". ' 0 !+2

0 G -". 0# ( -". 0# 1

0 > )

@ = -".

+ 0

(26)

ARC Node

CodeMotion Server .dll

Name Server .dll Object

Server .dll

Join Class.cs

FTS Service .dll

ARC System .dll

HPF Server .dll

StartUp Program

Config File

User Program

> @ / . + -". 0

:!2 > -". ' 1

-". 3 '

!+" 003

) ' 3#

# @ 5

-".<3 + 4 -

. . .

-". B!> %

<3 > !

.* 4

@ / . .=

(27)

<3'+ <3'+

"<3'+ 2-". ' -".<3 '-". 3

*

"*

B *

;*<3'+ 2

;!<3'+ 2

'>

-8 <3<>4

"*"*

-()8<3'+ 3

"-".<3- <3'+ 3

!;#

'!

**

!4<3'+

' =

**

'()

*4)B *

9

@ 5/ -". .

)7

!+" -". 3 /

3 ' 3

!+" # (

# -".3 - !+" 2

/ 0 '( " 3

@

!

-".3 ' 1

3 :

-". 3 -". 3

0" 0)

(28)

3*

'-".<3

' 3<3'+ 32

@ / <3 .

@ @

'-".<3

" 2<33

:"

':!

""2<33

@ @/ 4 .

(

03)-".0

3

@

'!

3%*

3

%* %%*

%*%%*

!

@ / % .

(29)

!+" -". 3

-". 3 +& " 1 0 !+"

@

'-".

<3'+ 2 .

..<3'+

8#A<3'+ 2#

'-".<3

8. <3'+ 2 .

@ / .* .

' &

-".# " 1

20

'

# =

1" /

I '

-". /

0!+'(

@ ?

5&

/ $""

#0#

B!> / 0$""

B!> B!> 3 2 0

# 12#12 $

@ C

(30)

"<3 320

'%

<44 %

4 ;8<4

4 ;%<4

4 '2<4

'8

88*

<48

8'

'-".<3

>-()<3'+ 3

'!

#

B>>*

@ ?/ > .

: &

20#-". '

-".32 0 -".3 "2

$"" " !+"

-". 3 +& 0

"2 1" '( "

& ) "

-". 3 -". 32 3

0# -".32

-".3 0#2

) 0 -". 3 -".

03

30 -".

3 0 ) 0

(31)

:' B!>A ':B!>A =

:' B!>A ':B!>A

:' B!>A ':*<B!>AEF

"<3

'-".

<3 &B!>A

-". 'B!>A '-". &B!>A =

'-". 2 '>

<3&B!>A

'!

B!> ' B!>A 8#

'8

48#

@ C/ B!> .

% &'

- # 0 ) ' -".2 #

$ -". 3 > @ 50

# / -". 3 .

+ . +

+& " 0!+" !+"

-".3

New

UserProgram Factory ARCSystem

Create

CodeMotionServer

ARCObject Register

LocalCopy Container

>@ 5/ +# .

(32)

-". -". 0

# 0

3 - # -". 3 0

&'

0# >@ 0:*8

0#

push

make entries

getCode

send ARCSystem

Remote Server

CodeMotion ObjectServer

ARCSystem CodeMotion Server

Remote

catchfile ARCObject

UserProgram

push

load object notify

Asynchronous

object store

entries make

make entries Newmessage send

Executor Thread Trigger

Handler ARCObject Trigger create

Remote

node1 node2

> @ / +4#! <

1# 0 0

$ ) :#

20

(33)

0 -". 3

!+" #3

' '

*3# )$0

!+" 32

3'( " -".31

2-".3 ( '( "

3

;

=

sync

send

entries make

object store Asynchronous

notify

sync return ARCObject

ARCSystem ObjectServer

ARCSystem

UserProgram Remote

get object push

push sequence

sendmessage

Execute Trigger

node1 node2

> @ @/ +0 ." *<3

' 0 > @ @2 "

3 0#3# '

3 0 ' 2

(34)

)$* +%

< -". 0# 3

: ! -". 3 #

30 -". )

33 -".

3 - 3

#

'

! -". 3#3

: '! ! 0

!+" -". 3 # :

! " #

2 0 ' #

$ : $ 0

2 ) $ - )

$ # '! -". 3

#

'

+ -".3 - 2

) 03

> @ 0 0#

/ -". 3 -". 3

)! ! $

< -". 3

32 0 ; -". 32

4("0# ) ) -". 3

2+

/ ) ' 0

-". 3

) / -". 3

0

' -".

3 )$ )

(35)

UserProgram ARCSystem .NET Remoting ARCSystem ARCObject

push sequence Push

sendmessage

NewMessage Handler create

Remote ARCObject Trigger

Thread Executor

Trigger

func

GetObject getIp

connect

Remote Proxy

create RemoteAccess RegisterFor

func proxy

local create connected

setProxy

func func

node1 node2

Remote

> @ / + 0;# ..

'<5

-".3 0#

; 2 3

0

3

< -".3 2

$ >0 -".

3 )

< -". 3

5 . 3

<3

>0 )) -".3

-". 3 $

-". 3

3 -". 3 0

) - 0 -". 3

-". 3 3

2 -".

30 3 )

(36)

-". -".1

B !0 > B!> 2 > > 2

<3-'2-+-".3

+, &'

< !

)9 #

9 -".

1#3 <# 0

+ 1

) #

B!> 9

5& &

B!> :*8 >

@ 0 " " 3 2

# B!>

' / %/ 2 0

" # .3#

#

# 12 #12 $ :

0 # B!> " %

.3# "

2 B!> $"" %$"" 1

" $"" '

# $"" # 1

$"" " %$"" 0

>@ #

&

! 0 ) #

! G -".

1'!

+ 0

+ 1

-". #

(37)

«interface»

N5::IUser

«interface»

N6::IPeer

ARCSystem HPFValue

«interface»

N1::IUser

UserProgram

HPFServer HPFVector

«interface»

N3::IUser

«interface»

N7::IFTSServer

«interface»

N4::IARCSystem

«interface»

N2::IARCSystem

LocalData

«use»

«use»

«use»

«use»

«use»

«use»

N8::IHPFServer

FTSServer

«use»

*

Remote HPFServer

«use»

N1:UserInterface_HPFValue N2:ARCSystemInterface_HPFValue N3:UserInterface_HPFVector N4:ARCSystemInterface_HPFVector N5:UserInterface_HPFServer N6:PeerInterface_HPFServer N7:FTSServerInterface_HPFServer N8:HPFServerInterface_FTSService

>@ / .+B!>

-# # 1

-# B!> E F B!>=

0

. " # 0

# B!> /0

0$"" B!>

' B!>

) 1 80 B!>

>

½

B!> 0 8 %

·½

) B!> 2&2&2

%

·½ J&

I&%

½

(38)

%

& 0

) B!>

:

%/ "

: # " # (

) #

> @ ?0 #

: #

8 " #

#

UserProgram getHPFVector

HPFServer

acquire Lock

*

getNodeset

HPFServer Remote FTSServer

node1 node2

> @ ?/ +-8#

: %/

0>@ #00# #

:

#0 + B!> #

= ' 2 #

=#

20 -". 3

, " - &'

> -

G# -". 0

,2 -".3

' $ -". 3 0 )

) 0

(39)

>0E F >@ C

:*80$"" '

0#

( 0

originator else

start

Handle Failure waits for a

message

Register MyARC for FTSService

BackNode Unblock

nodeset update

Register MyARC Object

Pass Failure Message to Front Node

Check Leave Status

Leave Message

Set Leave Status

False True

isFrontNodeSet

true

Block false

wait for t sec no failure

failure detected

and form new ring update node set

Pass Failure Message to Front Node Monitor Front Node

>@ C/ -+ >

; 2 #

' 2 # 0

K

2

# 0 '

0 0

; 2 # 0

'

& # '

2

##200

(40)

0 & (

&

2 0

0 #0 0 -

'

-". 00 -".3

: -". 3 0 $"" > @ D 0

2 0 -". 3 #

0 ,2 #J5

- 2 0

0 # #

$"" 3 0 #

!+" $"" # # 3

+ 2$""

0

" 3

5 () )

0 )

' 0 > @ D2 -". 3 4

,2 <4 '>@ D2 3

!+" 2 $""

0 !+" " 3

-

32$"" : 2

0 !+" 2$"" ) $

' "0 '

,2 -". :

# $ -". 30 )

' $ ) 0

32 $"" # ,2

> $"" 3)

> @ 0 ,2 -". 3

,2 ' +

(41)

AutoExecON

ARCSystem

UserProgram ARCObject FTSServer HPFServer ObjectServer

register FTSService register Execution Auto

push

getObjects check

Registry getHPFValue

resend

changes make

in object entries

Failure Notification

getObjects

check Registry check for

auto exec

execute Locally

make changes in object entries

execute

object store

notify Asynchronous

get object

Remote CodeMotion

Server

push

Server CodeMotion Remote

ARCSystem

make entries

getCode

catchFile Failure send

Notification

getCode

catchFile

Failure Failure

Remote ARCSystem2

Remote CodeMotion

Server

Executor Auto

NewThread ARCObject create

Trigger send

send

>@ D/ 0 5 0 -)

(42)

ARCSystem

Registry FTSServer

«interface»

N2::IUserProgram

UserProgram

«interface»

N4::IFTSServer

«use»

«use»

«interface»

N3::IARCObject

PContainer

«use»

«interface»

N1::IContainer

«use»

N1:ARCobjectGeneratedInterfaces N2:UserInterface_FTSService N3:ARCObjectInterface_FTSService N4:FTSSericeInterface_ARCSystem

> @ / .+ -()

> 2 $"" %!+'(

)$* ' ! &'

<3 ) -". 3

- 2 -". 3 ) 0

" -

" 03

> @ 0 3 .0

" 3 3

" /

3

UserProgram

ARCObject

«interface»

N1::IUserProgram

«interface»

N3::INameServer

NameServer

«interface»

N2::IARCObject

«use»

«use»

«use»

N1:UserProgramInterface_NameServer N2:ARCObjectInterface_NameServer N3:NameServerInterface_UserProgram

>@ / + <3-'

(43)

/ %/ 0"

-". 3 / =

%" > @ " 0 /

- / -". 3

) /

3 2 0 5 -". 3

=

)7

-". 3 %!+'( = " 0

" - 2 "

/2 0

3

' " . ' &'

- + 0# 1

- 0 -". 0# -". 32 0

' 2 -".3 =

# 820 32

-".3=# 0

20 @ D ")

=-+2<33

=2<33

<3=

=--

@ D/ =.

> @ 5 0 - + . "0

) %") !+" -". 3

/ !+'( ")

< -". 3

-". 3 0 $"" -

$""2 1 $""

-". 32 0

(44)

Serializer

ARCSystem N1::ISerializer

UserProgram ARCObject N1:SerializerInterface_ARCSystem

>@ 5/ .+- +

&& *+ + "

-". 3 '

-". 0 3 ) 0

9 0#

(

>@ 0 :*8 1"

E F >0 1"+

- 0 1!.

5 0 1!. 0 3

K

' #0 3

@ : K $""

1

(1

$""

#

>@ @ 0 :*8

E F >0 0# 0 0

. $""

5 ' " #

(45)

Join Request Broadcast

Waiting to get reply Reply Received

[not from the leader]

Reply Received

[From the leader] / Know id

Active

[time out]

/ first node

Join Broadcast Waiting

[Join Message Reached]

/ update nodeset

[Join Request Reached]&&

[Leader]

/ generate new id and send nodeset [ ! Leader]

start

[Join Request Reached]&&

/ send null

Failure

to get a message

nodefails

>@ / +%

" $""

@ * H

- #

(46)

Leave Process

HPFService FTSService FTSService

returnId donot give

locks

nodeset return

modify nodeset

leave Broadcast

*

Remote

node1 node2

>@ @/ +8 <

(47)

. 52 @ 8-4 -".

0# )-".'

3)-".'

5

@ 0 -". '

, ( + )" -.+ " ( /

' , '

' '

#0#) # - 1

0# 0#

0 +

#

#

/ !

*908-4 '

8-4

'

2 9 0# -

-". '

0 )

0

(48)

3 ) -". ' 0 >2 0 1

) -". 8-4 2

0 0

40 )-".0

) 8 () 0 3

'

5 )' 8

'

& 8 *#-".'

7*8 0 # -".

'0 3)-".

0

) 8 "-".8-42

0#

5 '8 " ) -".8-4

8 ' 0 1

0# '

,

9 2 1

-".08-4 >)

8-4 3 20 Æ

' B -". 0#

2 2

32 2 B!> > .00

# 7*80B!

; ) -". 0# 1

2 0 # -".

0 -". 0# 8-4 ' '

-". 0 ) -". 0 8-4

. 8-4 -". 0

3 )-". '

(49)

> 5 5 -". 0 8-4 > )

-". 0 '

> 0-".0 "

0 -". '

0 4( 7*8 0 2

0 ) -". ; = 9

# 0 0

-". 8-4

-". # -". 0 8-4 1

'-". # -". 0>

2 0 0

8-4 ' 0

-". # .

-". 01

-". # 9 8-4 '

. 0 7*8 0

; 0

-". 0 ) 4(

0 -". -".

-". 0 8-4 ' -".

,& !

> 50 0-".0' -".'

0 -

9 -

' --".0# ''

'' 0 0

' - 2 0 0

! 9-".0 1

9 -". ' B! 7*8 01

7*8 0 ) 0

-". 0 . -".

0

(50)

UserProgram

IMyObj Factory

Container ARCObject

NodeAdmin Program UserLevel

Call Services Call Services Call Services

Asynchronous Notify

ARCObject Proxy Layer

ARC Kernel Layer

Kernel Services ARC

Proxy Layer ARC Services

Developer Services Translated UserInterface

Acquire Proxy

RealObj

ARC User Upper Layer ARC User Lower Layer

ARC Object Services

Join Service

Leave Service NodeAdmin Services

Intimation Service ObjectArrival Registration

Service Trigger Service Activation &

Migration

Service Service

Auto Execution Fault Tolerance &

HPF Service

Acquire Proxy

ARC Kernel Proxy

Remote Communication Communication Layer Local Layer

HPFService Wrapper

FTSService Wrapper

Leave Service Wrapper Migration

Service Wrapper

Join Service Wrapper

.NET Remoting Infrastructure

Web Service Layer

.NET XML WebService Infrastructure

> / - A0 -".'

(51)

:The Internet :participant

node

:participant node :participant

node

:logical ring

:Central server IIS

ARC Software components at participant node

IIS

ARC Software components at participant node

IIS

ARC Software components at participant node

IIS

ARC Software components at central node

<<HTTP XML Webservices>>

<<HTTP XML Webservices>>

<<HTTP XML Webservices>>

<<HTTP XML Webservices>>

> 5/ + A0-". '

(52)

+ -". '

-". 0 0 ; 0

. @ -".

5 -".3 2

@

0 ( !

-". '00 #

!

5 .

! 3 -". 0# -". 0#

. ' -".

3 2 > B!> -". 0 0

0 0 -".0 0

-". 0# 5 0 -".

0 0

0 & 1"

-". 0 0 -". 0 8-4

= 9 -". 0 8-4 -". 0

' (

8-4 ')

0 '

-".0

(53)

. . .

-". <3 !-". ;

B!> . * !B!> ;

> 4 !> ;

% !

=

/ . 08-4 ' -". 0

> 0 -". 0

) 2 "

0 > ' ) 0 > @ '

0 !),!,

2 ),.,

&3

!+" '

0 !+" ''

> !+" 5

3 '

0 * ; ".8 >

;

"*; *

"-"*-"*.

5/ -". ;

&5&3

"

0 " ' '

> " "

# #0

(54)

ARC Participant Node

CodeMotion Server .dll

Name Server .dll Object

Server .dll

Join Class.cs FTS

Service .dll

ARC System .dll

HPF Server .dll

User Program PFTS

Service Wrapper .asmx

PARC System Wrapper .asmx HPF Server Wrapper .asmx

> / . + -". 0 ! ! 4

;

B!>A8#

/ B!> ;

& 3

$"" 1

0 $"" ' '

> $"" @

$"" -".

0$"" .0

$"" -".

0 & 1"

. -". ' ' 3

2 > B!> > 5 0 -".

0

(55)

8.#

>44'

.>44'

@/ > ;

ARC Central Node

Join Server CFTS

Server

CHPF Server

Startup Program

Config File CFTSWrapper

.asmx

CHPFServer Wrapper.asmx

CJoinServer Wrapper.asmx

> 5/ . + -". 0 ! .4

=

' ; 0 2 0

' ' ' '' "

' -".

0 +

0

A .

. 4A '

.> ; .>

.B!> ; .B!>

.% ; .%

!

/ A . .4 '

(56)

+$""2+ " +1" '

+1" %1 #

-". 0 0 3 +$"

%+$"" +$"" -".

+ " %+ " #

'.%

4044' 0K

4'4<4'K

'.> ;

B>4'

'.B!>

-884K

/ .> .

5&

+ " ' # #

C

'.B!> ;

:' B!>A ':B!>A =

:' B!>A ':B!>A

"<3

?/ .> .

(

%1" ' 0 +$""2

00 -".

'% ;

%" "% 2 4

C/ .> .

(57)

"

' 0

'

#=

3

$""

0 +$"" ' '

>+$"" D

;

B>4'

D/ .> ;

5&3

"

0 + " ' '

> + "

# 12#12 $

;

B!>A B!>A =

B!>A B!>A

"<3

/ .B!> ;

(3

1"

0 +1" ' '

> +1"

1! 0 3

2 0 03

(58)

%" " 2 4

/ .% ;

0 ) "

@ 5 -". 3 -". 8-4 5

=-".30

0# ' ,

0 8-4 -". '

0 0

8 .

0

" !

.

"

* 1

5/ -".3 0

0 (% &'

*0-".32)

$2 = 3

. -". 3 "

= ' - ! 4(0

-".3 ' ",

0 8-4 -".

@ 5 5

&'

> 0 ' ;

-". 3 2 !+" 0 0

; 3 !+"

(59)

ARCObject

UserProgram ARCSystem

push

push

make entries BufferReader

Thread

Server ObjectServer

Server Wrapper Migration Remote Wrapper

Migration CodeMotion

CodeMotion Remote ARCSystem Remote

Buffer

make entries

Asynchronous notify

send

send

object store

send setCode

get object

send getCode

write signal

read

Thread Executor NewMessage

Trigger Handler create

Trigger ARCObject Remote

node1 node2

> / +4#! <

' '

!+" -".320

0 "# 0 3

0 )$* +%

-". 3 ! 2 1

' ! 8-4 -". '1

-". + + @ 5

' - ! 4( 0 '1

' 1 - ! 4( 0

-". 3

(60)

' - ! 4( 0 : 001

0 -". 3 ;

0-".3 0 -". 3

- 0 ''

> @ 0 ;

2 )0:"8-".3,

-".3-".3

)

getIp

connected func

UserProgram ARCSystem ARCSystem

connect

setProxy ARCObject

proxy setURL

create

func Push

push sequence

sendmessage Executor Thread Trigger Handler NewMessage

create

Trigger Wrapper

func func func

ARCObject

create Proxy Remote

Remote ARCObject

RemoteAccess RegisterFor local

Remote

node1 node2

> @/ + 0;# . .

0 " "

-". B!> 2 > 2 -()2 <3

-'2- + @

-". 8-4 =-".

00#

' ,0

8-4-".' 0

0

(61)

0

<3-' B!>

- + >

-()

- +

/ -".3 0

0 +, &'

B!> B!>

# -". 3 1

B!> 1

B!> # '

-".

&

> 0 # : #

B!> B!> 8 B!>

2 0 #

B!> :

-".

Program

HPFServer

User Central

HPFWrapper HPFWrapper HPFServer Participant

Remote

Remote Central

HPFServer getHPFVector

getHPFVector

getHPFVector

* acquireLock acquireLock

node1 node2 node3

> / +0 -8#

5& &

> 0 B!> . B!>

, B!>0 # + "+

> #0

(62)

CentralHPFWrapper

ParticipantHPFServer

N1::IHPFServer

CentralHPFServer ParticipantHPFWrapper

CFTSServer

«use»

«use»

«use»

«use»

«use»

N1:CHPFServerInterface_FTSService

> / . B!> .4

«interface»

N5::IUser

«interface»

N6::ICetralNode

ARCSystem HPFValue

«interface»

N1::IUser

UserProgram

HPFServer HPFVector

«interface»

N3::IUser

«interface»

N7::IFTSServer

«interface»

N4::IARCSystem

«interface»

N2::IARCSystem

LocalData

«use»

«use»

«use»

«use»

«use»

CentralHPFWrapper

N8::IHPFServer

FTSServer

*

«use»

«use»

«use»

CHPFServer

«use»

«use»

N1:UserInterface_HPFValue N2:ARCSystemInterface_HPFValue N3:UserInterface_HPFVector N4:ARCSystemInterface_HPFVector N5:UserInterface_HPFServer N6:CentralNodeInterface_HPFServer N7:FTSServerInterface_HPFServer N8:HPFServerInterface_FTSService

> ?/ . B!> ! 4

> ? 0 B!> -". 0#

B!> 0 + 1

# .

%+ " " #1

0 ,

@ 5-".8-4 ''2

-".-". !

>0

' -".

(63)

> 0

( #

- #0 ' #0

set FrontNode

Monitor front node start

waits for a message

Register MyARC for FTSService

Register MyARC Object

Check Leave Status

Leave Message

Set Leave Status

False True

FrontNode Change

yes Unblock no

failure detected no failure

Inform CentralNode

false

wait for t sec true

Block isFrontNodeSet

Liveness Check blocked?

Type of message

Local Incoming Message Handler Liveness Check

> C/ -+> !

> C :*8 $""

' -

.

, . 0

2 0 2 0

.

: 2 $""

-". 3 $""

!+" #0 -". 3 0

(64)

> D 0 2 0 -".

3 # 0 ,2 #J5

0> @ D8-4

' ' 2 0 0 #

0 0

0& *+ + "

'-".'3-".0#

@ @ -".8-4 ''1

-".2

8-4 -". 3 2

0 0 1

3 30

> 03 # 1

03 -

+ $""

(

> 0 :*8 3 40 3

#0 . 0

03 '

3 >0 # 0 0

3

- 0 1!

5 . 0 > 0

.> #

@ .> 0

0 3

.% 0

(65)

AutoExecON

UserProgram ARCObject FTSServer

register FTSService register Execution Auto

push

ObjectServer ARCSystem

HPFServer Wrapper

FTSServer

ARCSystem Remote ARCSystem Remote Wrapper CodeMotion Server

push

make entries

getCode

send

send

notify Asynchronous

get object store object

execute Auto Executor entries

in object make changes Locally

execute auto exec

check for Registry check

getObjects Notification

Failure

entries in object make changes resend

getHPFValue Registry

check

getObjects Notification

Failure

getCode

send send

Failure

Failure

create NewThread

ARCObject Trigger

send

> D/ 0 5 0 -)

(66)

New Node

Front Node Back Node

NewNode Central Node BackNode

insert Newnode Join

Register Register

Join

FrontNode Set FrontNode Set

FrontNode FTSServer Central

FTSServer Participant FTSWrapper Participant JoinServer

Central JoinWrapper Central Program Join

> / %

#

> 0 :*8 >0

# 0 0

. $""

5 ' " #

@ .+1" # 3

+$""

+$"" +

,

+$""

(67)

Leave Process

HPFService FTSService

returnId donot give

locks

CJoinServer Wrapper

CJoinServer CFTSServer PFTSServer Wrapper

PFTSServer

frontnode change frontnode

change leave

leave

removeId handle

leave start leavethread

All PFTSServer Wrapper

leave notify

* create

node1 node2 node3

> / +8 <

(68)

B -". @ 5 52 @ 5 2

@ 2 @ 52 @ 2 @ @2 @ @ )

? ) 0

)

-".3 ? 5 #) 20) 1

-".3

? 0 2 0

- 2 -". 1

0

-". 3

' !

: -". 3

. )

1 + #

+ )

--".3) 0

-". 3 )

"

)) ) <

) (

2 0 0 "

+ !+'( )

-".0#) A

0

(69)

>0 -".3

!

"

#

#

% 2 5 : 1

-".3 %

0-". 3

2 ! !

' %+ %$ ! - ) -". 3

$ 01

$ )" "

20+ !+'0

( . ! 00

"$"%&%

'( ) *

++ ,& -

"."

++ /& *0

"1! & " )

0&- 2)

- ) 0&-

) "1! & "

&3

"1! & "%

4$++0$5,/6+! 4

&"4 "4%-

#

(70)

7&8'(

7&9'(

7&8-'(

++ :& -

"."

++ ;& *0

2)

&"4 "4

# ++ 0

++

#

!

++

#

++

#

"

++

#

"

++

#

"

++

#

# ++

2 #! . $ "

>? 0&:'+

+ !+'( 0" ' 2 0 + !+'0

( )0" "

$

> ? 2 L M )) ;

. G*)LM#2-".

3 )) -".3

22 56-567-574-58

-". 3 ) 0 "

$ "

"+ " ' )

(71)

> ? / . ! - '

!) 3

.# ! # )) 0

-". 3 -

# +&

#&

1

= 0# ' 2

=0#

#') -".3#

(72)

=2

# #

3 Æ -".3

# =2

00 0

3 ' 0 A

0

2 )Æ )$* ! &3

>0 -".3# )

"

"

#

#

-". 3 0 Æ

-". 3 0

)

% -".3

2 ! )Æ )$* !

' %'Æ %$ ! $

) -". 3 ) '

)"20Æ $

0 Æ ) 3

#

"$"%&%

&&& &&&

++ ,& -

(73)

++ /& *0

"1! & " )

0&- 2)

- ) 0&-

) "1! & "

&3

"1! & "%

4$++0$5,/6+! 4

&"4 "4%-

#

++ 6& * (

*020&

0&/<<<

#

++ :& -

"."

++ ;& *0

2)

&"4 "4

#

&&& 0 &&&

#

2 #! 4 )%5

>? 50&:'#) <=

Æ >0 .#1

-". 3

.#

-0 ? 5 52 Æ-".3Æ

) 0 " ! Æ

" <Æ ) Æ -".

3 # ; 3 # 2

0 .# 0 Æ

2 +"% )%5% &

8=2#Æ ) 2

-". 3

" 0 -". 3 > ? 0 002

(74)

0 " -".

3 - Æ 2 # '9 00 0 Æ

0 > ? @ <Æ) #

-".3

1 + $ " (

- + ' 0

) ' 2 -". 3

0 # 1

= 3 0#

0 > =3# ;

0#2-". 3

A 0

2 ! &3

>0 -". 3

(75)

>? @/ <Æ> : *' 0<Æ"-

"

++ "

#

#

2 ! !

-". 32 = #

- = 3 0#

0 3 >0 $ 0

0 -".3 2 -". 3 #

(76)

=>?

"$"% "&%

)

2

)

>! &>&

> 4 "&(4%0

#

#

++ 0 0

#

++ 0

#

&&& 0 &&&

#

2

: = 3 =

# 0# 0 >0 0

- + @ @

,

7

++> " 0(

"& ) "&

>! &>&>404

++9( *0 0

++> " 0(

>! &>&>404%

++> 0 "

>! &>&> 404

#

#

(77)

& 30 31-". 0#

* 4( 2

2 -". 0# 0

4( :*8 ) -". 0#

-". 0#

( 0# 0 0 1

0# ' 20 0 0#

0 8 8-4

-". 0 ) -". ' )

9 08-4 ' ' 0 0 1

-".0#

8-4 '

-".00 4(5.6

8-4 ' -". 0 ;0 5 0#

C = 30# -".2 2

8-4 '2 0

0# 0

0

0#

+'

' 22 0

#

8 8-4 ' -

2#1

(78)

- 0

-".

(79)

+G8

+G8

-".3 & 3 '+ 8

"

- +

() +

8# *- -

B!> +

! " # +

-".3 * 8

$ - -".3 8

)

3

! 41# 8

- " - 8

-".3

; 8

" * 8

-". 3

> +

-1() &) 8

-".3 () 8

-". 3

0" )

: " +

0" -".3

( 8

-".3

(80)

+G8

+G8

% +3 +

8 + +

- += 8

-".3

#

+ += -". 8

3 #

C / 3

(81)

:

-". 0 = :=

+ #; " #

) 1-2 0 . 1

) 4( 5

% ; <

3 )

-".

- 20 - )

&# ;!+; ;<

;!+ ;<

+;!+ 0

D5

5 2 0

+/ 0

4 # 3 0

?

;<

'! 3-".

0# <2 -

'!

(82)

! 0'!

5 0

4# 9

@ 40 -".00#1

6

" !+ <

> 3 -". 0# ) 3 )

<

.2 # -". 0#2 # 3 ) 0

&0

(83)

! "

<

; -".0#0 2- !-#

-".3! -".3

! -

<

#020 '

* A #0 #

3 A

*# -". 3 00

" 5<

% ; <

< 0 3 0 -". 3 3

,2<

00 B' 3 ;

0 3 0 ' 3

+ <

(84)

@

@

#

#

" 4<

+ % <

' 2

0

> > 5

,2<

. 0 3

4 B&'

.

'. '* 3

0 0 0

B'

5 !.'

!"'

@ '

:' B!>A

<

B' 4) 0'.

'* >0 &' '

#

+ <

% -%+

@

@3

$

@&@%& #

#

(85)

0"A

@

@3

7$

0"A & 0"A %@&@#

#

3 B&'

" 8<

<

' 0

,2<

0 3 4 B4

-. 2" 2 >(" 2 > 3

- 0

-".<3' -".

5 -".<3' <3

-". ' -".<3

@ .*

.*

> ' -".<3

? B&'

C B'

D *+

4)B '

<3''

5 <3''

!.4

@ !*

!.'

(86)

? "<3'!)

C ":'

D "'

5 '

5 '

55 :' B!>A

- ) 0B2

. >(" 2

'

3 '

>

-". 3 ' )

B'

5 B&'

!.4

@ B4

' "<3 2 B

3 4 3,

-". 3 '

-".30 -".3 0 1

'10

0-".3 .

#

*<

& -". 3 0

0 2 0 -". 3

,2<

. 0 3

(87)

- :' B!>

.

3 )

. 0)

B!>

5 !'B!>

-". ' B!>A

@ -". ' B!>A

-". ' B!>

8' B!>

()

<

! B!> 2

32 > 1

4 0 ,

)

+ "<

&0

@3

@!

1@.

&" &" &0

&" &" &0&

0

,

7

0 0 ) * 0B,<C

0&"00

1@.& 0 )

1@.& &3

1@.&%

4$++0$5,/6+@.4

1@.D & 0,)

(88)

@3& ) .&!*

& 0 0,6

&

&9'4 -4

&"'

#

#

#

(89)

EF %# +2 ; %2 " *#2 A 2- &2 -

!A* : DD@

E5F - % += * !2 5

EF 8 - # "!.-".# *1

, 2'' 2 %5

E@F =2 & ' " + -;2 2DDD

EF % "2'%2 & $/; & 3 ! 0

& -;2DDD

EF <3 * & .<3" # - 1

<--2 55

E?F + 8 * < * - 0 %/ - -!'

12DDC

ECF + ! % & -,$ * !2 % 5

EDF + " % +'& *!2 DD?

EF - 8 2 N 2 "# $ % <31 + -".

$ ' +252 5O552 5

EF + %# "2"#$% - ". 2-

!!;# %,,,$ "

,2 ?OD2 %G> DDD

E5F ; " + (9 A <"

<--2 5

References

Related documents

Moreover, long-term access to reliable energy through distributed renewable energy solutions builds services, self- resilience and adaptive capacity in the local society and

Central Marine Fisheries Research Institute (CMFRI), ICAR, Kochi.. Translated by

Concerned SEZ Developer/Co-developer/Unit shall apply to Commissioner for Industrial Development and Director of Industries and Commerce with following documents

They analyzed the system in which customers arrive at a service facility according to a Poisson process with service times exponentially distributed where each

service systems with single and batch services, queueing system with phase type arrival and service processes and finite capacity M/G/l queue when server going for vacation

The application of quality-management practices by manufacturers and service providers has become increasingly widespread. Recognition of the differences

Defense of DDoS attack for Cloud Computing, Yang Lanjuan et.al [40] in 2012 in- troduced a defense system for cloud based on Software Oriented Architecture (SOA).It is used to

Hence like the conventional connected systems, smart grid is also prone to number of security threats like Eavesdrop- ping attack, data alteration attack, identity spoofing