CGW 2003 Institute of Computer Science AGH Proposal of Adaptation of Legacy C/C++ Software to Grid Services Bartosz Baliś, Marian Bubak, Michał Węgiel, Roland Wismüller Institute of Computer Science, AGH Kraków ACC CYFRONET AGH Technical University Munich
CGW 2003 Institute of Computer Science AGH Outline Migration to grid services technology and challenges involved Grid environment requirements The state of the art The proposed architecture and its components Scenarios: initialization, method invocation and destruction Security, scalability and other aspects characteristic of grid computing Project status and future work
CGW 2003 Institute of Computer Science AGH Legacy software typically represents large-scale corporate investments that cannot be discarded high-quality and validated programs Cost-effective migration to grid services technology without re-design, re-development and re- deployment of the existing software tool-supported, semi-automated process universal and systematic methodology Motivation and challenges
CGW 2003 Institute of Computer Science AGH Grid requirements Grid service web service that provides a set of well-defined interfaces and that follows specific conventions Extensions introduced by Open Grid Services Infrastructure lifetime management (factories, explicit and soft- state destruction) dynamic and stateful service instances (methods and attributes) reliable and secure invocation (authentication and authorization)
CGW 2003 Institute of Computer Science AGH The state of the art Related work is present both in scientific and commercial settings Lack of comprehensive solutions Existing approaches concentrate on web services technology fail to satisfy grid services requirements omit architectural considerations introduce numerous limitations (inflexibility, insecurity etc.)
CGW 2003 Institute of Computer Science AGH The proposed architecture three major components potentially in different locations backend host execution environment service client SOAP legacy code wrapper set of grid services any languageC/C++/Fortran any language hides interaction with backend host encapsulates legacy interface
CGW 2003 Institute of Computer Science AGH Components: service container permanent services transient services keeps track of backend hosts which registered to participate in computations one per service service inaccessible to clientservice accessible to client hosting environment registry factory proxy factory instance proxy instance
CGW 2003 Institute of Computer Science AGH Components: service container permanent services transient services service inaccessible to clientservice accessible to client hosting environment registry factory proxy factory instance proxy instance responsible for creation of the corresponding instances one per service
CGW 2003 Institute of Computer Science AGH Components: service container permanent services transient services directly called by client, provides externally visible functionality one per client service inaccessible to clientservice accessible to client hosting environment registry factory proxy factory instance proxy instance
CGW 2003 Institute of Computer Science AGH Components: service container permanent services transient services responsible for mediation between backend host and service client one per client service inaccessible to clientservice accessible to client hosting environment registry factory proxy factory instance proxy instance
CGW 2003 Institute of Computer Science AGH Components: backend host master process legacy software creates exploits responsible for host registration and creation of slave processes slave process backend host permanent process one per host
CGW 2003 Institute of Computer Science AGH Components: backend host master process legacy software creates exploits responsible for request translation and direct cooperation with legacy software slave process backend host transient process one per client
CGW 2003 Institute of Computer Science AGH registry factory master process legacy software backend host client Scenarios: initialization master process registers backend host and subscribes to notifications about the appearance of subsequent clients step 1 proxy factory subscribes service container
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: initialization client connects to factory in order to create new service instance for its exclusive usage step 2 proxy factory instance registry invokes creates
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: initialization upon creation service instance contacts proxy factory in order to create new proxy instance step 3 proxy factory instance registry proxy instance invokes creates
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: initialization service instance invokes registry which notifies one of the registered master processes about a pending client step 4 proxy factory instance registry proxy instance invokes notifies
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: initialization the selected master process creates slave process which subscribes to notifications about the client method calls step 5 proxy factory instance registry proxy instance slave process creates subscribes
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: method invocation client’s method call on the created instance is forwarded to the corresponding proxy instance step 1 proxy factory instance registry proxy instance slave process invokes
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: method invocation proxy instance notifies the associated slave process of the method call and the underlying legacy code is invoked step 2 proxy factory instance registry proxy instance slave process notifies calls
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: method invocation slave process supplies the obtained results to proxy instance which enables the called method to return step 3 proxy factory instance registry proxy instance slave process invokes returns
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: destruction step 1 proxy factory instance registry proxy instance slave process invokes explicit destruction request or instance lifetime expiry instance forwards destruction request to proxy instance which sends the appropriate notification to slave process notifies
CGW 2003 Institute of Computer Science AGH service container factory master process legacy software backend host client Scenarios: destruction step 2 proxy factory instance registry proxy instance slave process slave process terminates its execution and instances are garbage collected by container shortly afterwards
CGW 2003 Institute of Computer Science AGH Security Authentication X.509 certificates: identity can be assigned both to users and hosts Authorization for external services (accessible to users) based on user certificates access granted to clients eligible to use a particular service for internal services (inaccessible to users) based on host certificates access granted to machines eligible to register in the context of a particular service
CGW 2003 Institute of Computer Science AGH Scalability Actual processing is delegated to backend hosts Service instances residing in the container do not consume excessive resources Backend hosts volunteer to accept tasks only when their load is reasonable (automatic load balancing) high responsiveness to temporal peaks in utilization (on demand computing) support for resource reservation (quality of service)
CGW 2003 Institute of Computer Science AGH Other features No modifications of legacy code are required Programs and libraries can remain where they were initially installed No open ports on backend hosts are introduced since they act as service clients Central administration: all services belonging to one VO can be hosted and managed in one place Independence of particular hosting environment implementation
CGW 2003 Institute of Computer Science AGH Other features Flexible and dynamic configuration processes are not bound to backend hosts they can change their locations even during execution (job migration) Delegated control no need to check which host is ready and most suitable for a task at the specified point in time robustness in case of configuration change or component failure finer-grained participation policy
CGW 2003 Institute of Computer Science AGH Project status and future work As a proof of concept the presented solution was partially implemented project: adaptation of OCM-G grid application monitoring system to grid services used tools: gSOAP package, Globus Toolkit 3.0 Future work more test cases performance measurement development of tools faciliatating the usage of the proposed framework