Service-Oriented Programming with Federating Jobbers
Master Thesis Proposal, Oct. 5, 2006
Michael Alger Dr. Michael Sobolewski Dr. Ray Kolonay
Michael Alger
algerm@cs.ttu.edu http://www.cs.ttu.edu/~algerm
Presentation Goal
Understand how to increase the expressive power of Service-Oriented programming and extend its runtime execution.
Beginning
2
Michael Alger
Learning Objectives
• As a result of this presentation, you will be able to understand:
– Service-Oriented Programming Methodology – SORCER SO Programming – How to improve the capabilities for a SO Programming – How to improve SO Programming runtime execution
Beginning
3
Michael Alger
Speaker’s Qualifications
• Michael Alger is a computer science graduate student at TTU and planning to defend by Fall 2006 • Received BS in Computer Science in Spring 2004 at TTU • Interests are in Distributed Computing, JavaSpaces, Sun’s Jini Technology, Service-Oriented Architecture, SORCER
Beginning
4
Michael Alger
Presentation Agenda
• Evolution of Computing • Service-Oriented Programming Methodology • Problem Statement • Proposed Solution • Benefits • Validation Case • Future Work • Summary
• Timeline
Beginning
5
Michael Alger
Evolution of Computing
From single computer…
Service-to-Service
Peer-to-Peer
• • • • • • •
virtual overlay network interactive SOP federated SO execution secure self-healing autonomic heterogeneous
Web-based computing
Client-server silos
6 Michael Alger
Evolution of Programming Languages
• Machine/Virtual Machine
21 40 16 100 163 240 … iload iCount bipush 100 …
• Assembler • High-level language
if (iCount > 100) …
All programming languages provide abstractions
High Level
Assembly Language
Machine Code
7
Michael Alger
Progress of Programming Abstraction
Problem solving: mapping problem space to solution space
• Fortran, Pascal, C - Procedures • Lisp - List • Prolog - Logical decisions
• Smalltalk, C++, Java - Objects
• SORCER SO Programming - represents solution elements as distributed network objects (services)
8
Michael Alger
Service-Oriented Architecture Model
Service Registry
Provider Proxy
Service Requestor
Execute
Service Provider
Provider Proxy
9
Michael Alger
Network Visualization
Service Registry Service Provider Service Requestor
10
Michael Alger
The Computer is the Network
Need to Address the following:
1. 2. 3. 4. 5. 6. 7. 8. The network is unreliable Latency is never zero Bandwidth is finite The network is not secure Topology does change There are many administrators Transport cost is not free The network is heterogeneous
Service-Oriented Programming: Utilize distributed network objects (services)
11 Michael Alger
SO Programming Model
• Distributed Transactions
– ACID – 2-phase commit
• Distributed Leases
– Time-based resource management – Distributed garbage collector
• Distributed Events
– Event-based notification to services
• Distributed security
– – – –
12
authentication authorization confidentiality proxy verification
Michael Alger
SORCER Background
• Service-ORiented Computing EnviRonment • Next generation of FIPER (Federated Intelligent Product Environment ) • Currently built on top of Sun’s Jini Technology • “Apply object-oriented techniques directly to the network, and everything on the network we treat as a service (service-orientation).” • SORCER Research Group
13
Michael Alger
SORCER Architecture
Utilities and Templates Requestor Service UIs Web CME Clients Intraportal Extraportal
Infrastructure Providers
Jobber, Caller, Tasker, Spacer, Cataloger, Persister, Notifier, Reporter, Securer, Auditor
SORCER Core
Exertion Dispatchers, Provider, Proxy, Bean DataAccessor, ProviderAccessor
Persistence Layer
Static Bootstrapping
File Store
CME Layer J2EE, Jini, Rio, GApp
14
Michael Alger
SORCER SO Programming
• Exertions are representations of network activities
• Exertion is an java interface • Elementary exertions are called ServiceTasks • Compound exertions are called ServiceJobs – Job is a composition of Jobs and Tasks – Jobbers are responsible for handling Jobs • An Exertion is composed of a ServiceMethod and ServiceContext • All exertions knows how to exert()
15
Michael Alger
Service Context
• Service Data
• Currently is a Map
• (Key/Path, Value)
GEOM PP Disk Airfoil LC
MAT_RENE5
DAS MAT
Disk_PRT Shank
Disk.prt
BC UIF Gas_Loads
STRESS
Mat_Rene5.dat
Post_Stress.dat
Cyclic AS_PRT Mesh
AS_Shank.prt BCCyclic.dat
ExtGLoads.dat
AS_PRT
Airfoil.uif
AS_Shank.dat
Stress_Tet Mesh
AS_Shank.dat
Modal_Hex
Stress_Tet
AS_Shank.dat
AS_Shank.dat
16
Michael Alger
Service Method
• Compose of an interface and a selector
• Interface defines the type
• Selector defines the method name to be invoked
17
Michael Alger
Job and Task Model
• Job is a composition of Jobs and Tasks
cd: Exertion << interf ace >> Exertion +exert():Exertion
ExertionImpl #operations:List #data:Serv iceContext #label:String +isJob():boolean +isTask():boolean 1..*
1 ServiceTask ServiceJob
+exert():Exertion
+exert():Exertion
18
Michael Alger
Composition and Concatenation
Composition
T3 T1
J1
…
J2
T4
J3
…
T2
…
T5
Concatenation
Job
19 Michael Alger
Task
Service Context
Service Method
Job as a Megaapplication
Federation Member
Job Task Context
Method
20
Michael Alger
Problem Statement
SORCER SO Programming Limitations
– Exertion’s algorithmic logic does not support • Iteration • Branching – All inner Jobs are coordinated by the same Jobber recursively causing a bottleneck
21
Michael Alger
Need for Looping
Build a higher expressiveness in SO Programming
Service Requestor
Provider Proxy
100 request 1 request
Service Provider
Loop
22
Michael Alger
Job Execution Bottleneck
interaction SGrid Job execution by an iterative Jobber and federating task providers
:User Submit App Context
:Grider
:Jobber
Provider1:Caller
...
ProviderN:Caller
service Job <> execute Job <> T2:JobberThread T1:JobberThread
execute inner Job service task return task return Job
● ● ●
service task return task
return Job
Active parallel inner Jobs and Task can not utilize the full resources of the grid
23 Michael Alger
Proposed Solution
• Federated Algorithmic Metacomputing (FALCON) framework to support full algorithmic logic – Iteration – Branching • Enable implicit (via Exertion Space) coordination for Jobbers and Service Requestors • Enable explicit (via Catalog) coordination for Jobbers
24
Michael Alger
FALCON Framework
cd: Conditional WhileExertio n << interf ace >> Exertion +exert():Exertion +isTrue():boolean +exert():Exertion +exert():Exertion +isTrue():boolean Cond itional TryExertion
Cond itional
ExertionImpl DoExertion #operations:List #data:Serv iceContext #label:String +isJob():boolean +isTask():boolean ThrowExertion
Cond itional
+exert():Exertion +isTrue():boolean
+exert():Exertion +isTrue():boolean
Cond itional
ForExertion
NullExertion
Cond itional
+exert():Exertion +isTrue():boolean
+exert():Exertion +isTrue():boolean
Cond itional
IfExertion Cond itional
BreakExertio n
ContinueExertion Cond itional
+exert():Exertion +isTrue():boolean
+exert():Exertion +isTrue():boolean
+exert():Exertion +isTrue():boolean
Cond itional
25
Michael Alger
WhileExertion
cd: WhileExertion 1 << interf ace >> Exertion +exert():Exertion
ExertionImpl #operations:List #data:Serv iceContext #label:String +isJob():boolean +isTask():boolean
1..*
1 ServiceTask ServiceJob
+exert():Exertion
+exert():Exertion
WhileExertio n #condition:Conditional #exertion:Exertion 1 +WhileExertion(condition:Conditional,baseExertion:Exertion): +isTrue():boolean +exert():Exertion << interf ace >> Cond itional +isTrue():boolean
26
Michael Alger
IfExertion
cd: IfExertion 2 << interf ace >> Exertion +exert():Exertion
ExertionImpl #operations:List #data:Serv iceContext #label:String +isJob():boolean +isTask():boolean
1..*
1 ServiceTask ServiceJob
+exert():Exertion
+exert():Exertion
IfExertion #condition:Conditional #thenExertion:Exertion #elseExertion:Exertion 1 +IfExertino (condition:Conditional,thenExertion:Exertion,elseExertion:Exertion):v oid +isTrue():boolean +exert():Exertion << interf ace >> Cond itional +isTrue():boolean
27
Michael Alger
Explicitly Job Coordination
interaction SGrid Job execution by an explicitly cooperating Jobbers and federating task providers
:User Submit App Context
:Grider
J1:Jobber
...
service Job
JN:Jobber
Provider1:Caller
...
ProviderN:Caller
service Job
service task return task return Job
service task return task return Job
28
Michael Alger
Implicit Job Coordination
interaction SGrid Job execution by an implicitly cooperating Jobbers and federating task providers (Implicit collaboration of service providers is supported by SORCER)
:User
:Grider
J1:Jobber
...
JN:Jobber
Provider1:Caller
...
ProviderN:Caller
:Exertion Space
Submit App Context service Job write Job
take Job return Job service task return task write Job
take Job return Job
● ● ●
service task return task
return Job
29
Michael Alger
Implicit Service Request
interaction SGrid Job execution by a requestor's implicit invocation (implicit collaboration of service providers is supported by SORCER)
:User
:Grider
J1:Jobber
...
JN:Jobber
Provider1:Caller
...
ProviderN:Caller
:Exertion Space
Submit App Context write Job
take Job return Job service task return task write Job
take Job return Job service task return task write Job
take Job return Job
30
Michael Alger
Benefits
• Increased expressive power of SO programming – Iteration – Branching • Saves network bandwidth by eliminating redundant service request • Flexible job execution with inner jobs via the Exertion Space • Improved performance and scalability by utilizing other idle Jobbers – Exertion Space – Direct access via Catalog
• Asynchronous job execution via the Exertion Space from service requestors
31
Michael Alger
Validation Case - Optimization Algorithm with Approximations
Initial Detailed Analysis
Sensitivity Analysis
Approximate Problem Generator Inner Loop Outer Loop Optimization Algorithm
Detailed Analysis
Converge Criteria
End
32
Michael Alger
Validation Case - Providers
Function Evaluator Loop Requestor
N
Gradient Evaluator
Jobber
Constraint Minimization Provider
System Call
Fortran Conmin
N+1
33
Michael Alger
Future Work
• Implementation of full FALCON language
• FALCON language parser for creating Jobs/Tasks external source
• Update SORCER web portal with new FALCON Exertions
• S2S Job/Task Scheduling (Preemptive/Nonpreemptive load balancing)
34
Michael Alger
Summary
• Computing Evolution
• SO Programming Methodology
• Problem Statement • Proposed Solution – FALCON Framework – Expanded Job Runtime Execution • Benefits • Validation Case • Future Work
End
35
Michael Alger
Timeline Schedule
1. Literature Review 2. Design 3. Complete Extended Runtime Execution 4. Complete FALCON Framework 5. Thesis Proposal 12/10/05 05/01/06 05/10/06 08/27/06 10/05/06
6. Validation Case
7. First Draft Thesis Report 8. Thesis Defense
10/20/06
10/23/06 10/26/06
36
Michael Alger
Michael Alger