120 likes | 251 Views
A Programming Model for Self-Organising Object Systems. Service Composition. Connect services/applications at runtime Building connections between containers Multiple services working together Example approach – SpeakEasy Interface to specify connections
E N D
Service Composition • Connect services/applications at runtime • Building connections between containers • Multiple services working together • Example approach – SpeakEasy • Interface to specify connections • Modified services to support architecture
File Access Service File Store Computer A TCP Messages Data Processing Service Computer B Application level TCP Messages Computer C Data Output Service Display Device Standard Service Composition Approach • Separate applications communicating via messages. • Connections pre-defined by script, or manually chosen by a user.
File Access Service File Store File Store File Handling Object Computer A Computer A RPC Calls TCP Messages Data Processing Service Data Processing Object Computer B Computer B Application level vs. Object level RPC Calls TCP Messages Computer C Computer C Data Output Object Data Output Service Display Device Display Device Standard Service Composition Approach Self-Organising Object Systems Approach • Separate applications communicating via messages. • Connections pre-defined by script, or manually chosen by a user. • Single application distributed where needed / extended at object level – transparently to the application. • Distributed dynamically at runtime, based on resource availability / user requirements.
Object Level Approach • Different design model, rather than bolt-on ‘hack’ • More ‘atomic’ units of functionality • Simpler to describe, transport, re-use • Baseline Object Feature Set • theObject.MoveTo(location…) • theObject.ConnectTo(objectUrl, bindingPoint…) • theObject……
Make Requests / Intervene in Operation Incoming Data Openness Data Formatter Monitor Status / Performance Common Feature Layer Evolvable Object Request Codec Processed Data Middleware Communication Register upon instantiation Mobility Distributed Shared Memory Facility Common Object Functionality Set Lookup a service Middleware Specify interest Serialize + Transport Inform of instantiated interest object Suspend Operation
Performance Agent System Security Agent Middleware Service Gateway Object Inform Spawn Administrative Interface Common Feature Layer Middleware Direct Object-Level Application Service Composition Application 1. Register Request Service Spawn 7. Connect Service Gateway
EOS Windows Extension EOS Windows Extension EOS Windows Extension EOS Windows Extension PC PC PC Display Files Security Access DB Mobile Device Display Networking Processing Object Distribution for Optimal Resource Usage
Implementation using System.Reflection; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels.Tcp; using EvolveMiddleware; [ClassDescription(Category.InputOutput)] public class FrameworkSupport { private EObject myRemoteObject; public FrameworkSupport() { ChannelServices.RegisterChannel( new TcpClientChannel() ); myRemoteObject = (EObject)Activator.GetObject(typeof(EObject), "tcp://AServer:8989/EObj.rem"); myRemoteObject.myMethod(); } public void RegisterApp(Type theType) { foreach (object attribute in theType.GetCustomAttributes(false)) { . . . . . . .
Middleware Middleware interface Main middleware > IMiddleware Register() InformAction() … Servicer Implementation of Application Extension Framework Support Framework Support using IMiddleware using IMiddleware FlexiPaint FullScreen FlexiViewer Extend application to increase functionality Paint Application Viewer Application
Summary • Programming model designed around problems of distributability, optimal resource usage, component sharing, description and re-use. • Platform extension architecture to enable self-organising objects • Object-level better allows fine-grained adaptations, object distribution, automated assembly