190 likes | 325 Views
T ask O riented P rogramming with. Why are we doing this?. Crisis management and Command & Control are complex domains Rapid prototyping needed to formulate specs Much effort needed to go from idea to prototype Need for tooling that bridges this gap. Existing Tooling.
E N D
Why are we doing this? • Crisis management and Command & Control are complex domains • Rapid prototyping needed to formulate specs • Much effort needed to go from idea to prototype • Need for tooling that bridges this gap
Existing Tooling • Concepts of formalism do not fit with that of problem domain (semantic gap) • Lot of work to make something • Focus mostly on the how and not on the what • Therefore, we developed TOP and iTasks
Goal of TOP & iTasks • Support the development of applications for collaboration between parties using ICT applications and networks • Offer a formalism to reason about how to collaborate • Enhance rapid prototyping of these applications
What is Task -Oriented Programming ?
Task Programming
as Central Concept Programming Task s with
A Task is a specified piece of work aiming to produce a result of known type. When executed tasks produce (temporary) results which are observed in a controlled way.
Tasks are the reason we build systems We have to understand tasks anyway Reduce specification effort to specification of tasks
Smallest building blocks are “basic tasks” Interactive: Human + machine Viewing information Entering information Indicating choices Automated: Machine Calculation Down/uploads Sensor interfacing Information retrieval Model evaluation
Composition of tasks are tasks Sequential: Next task when result is achieved Next task when conditions are met Next task when human wants to Parallel: Do tasks in any order Try multiple tasks, use first success Divide task Add / delete tasks during execution Transformation: Convert result Add meta-data
Tasks can compute tasks Dynamic behavior Next steps are computed from other tasks’ (intermediate) results Abstraction Abstract patterns can bedefined and applied in different contexts
Information can be shared between tasks Access Can be read/write Different view on same information Typical use Shared situational awareness Task attached to share Executed every time share is updated
What is iTasks? • Implementation of TOP • Toolkit for building (prototypes of) TOP applications • Buzzwords • Declaritive, Functional Programming in Clean • Domain specificlanguage / library in Clean • Code generation, GenericProgramming • Client-server model
iTasksArchitecture iTask App Phone Computer Laptop Sensor Tablet iTask Client iTask Client iTask Client iTask Client iTask Client iTask User WEB Cloud / Database iTask User iTask User iTask User Web Service Web Service Web Service iTask User RPC iTask Web Server iTask Web Server iTask Combinator Library iTask Combinator Library iTaskSpecification My iTask Specification
CM App 1 CMApp2 CM App 3 C2 App 4 C2 App 5 C2 App 6 CM App development iTasksResearch iTaskutility combinators iTasks& C2 - CM Research C2 & CMFramework(s) IT Research iTaskcore Infrastructure What are we aiming at? • GenericFrameworksfor C2 & CM • Reusabletaskstructures • Parametrizablewithspecifictasksforspecificapplications