1 / 19

Towards a unified Cyberaide architecture

Towards a unified Cyberaide architecture. Fugang Wang May 29, 2009. Agenda: Current architecture study and comparison; Analysis of the current shell architecture; Possible (three) approaches to unify the two project. Agenda: Current architecture study and comparison;

kaiser
Télécharger la présentation

Towards a unified Cyberaide architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

  2. Agenda: • Current architecture study and comparison; • Analysis of the current shell architecture; • Possible (three) approaches to unify the two project

  3. Agenda: • Current architecture study and comparison; • Analysis of the current shell architecture; • Possible (three) approaches to unify the two project

  4. Runtime Web browser Shell CLI Client Java Client C# … Deploy time - Tomcat Web client code Shell CLI Web Service JavaScript code Resources for portal pages Shell CLI Agent service CLI Engine & Interface Mashup App Logic Infrastructure Access Workflow, meta-scheduling, user, vo, and more Web Service Mediator service 3rd party resources App Logics Command line tools and APIs from Globus, CoG Kit, MyProxy Command line tools and APIs from Globus, CoG Kit, MyProxy

  5. Agenda: • Current architecture study and comparison; • Analysis of the current shell architecture; • Possible (three) approaches to unify the two project

  6. Shell CLI Client App logics is not exposed as Web service, instead, Shell CLI is. Current Shell CLI is not capable of behaving as a script interpreter. Current Shell CLI web service and client show only a proof-of-concept that WS-Security is supported. No multi-user and session support. => Current shell works only on a server and in single user mode Java Client C# … Shell CLI Web Service Shell CLI CLI Engine & Interface App Logic • Most functionalities proposed yet to be implemented, among which the most important are: multi-user and session support; meta-scheduling Infrastructure Access Workflow, meta-scheduling, user, vo, and more Command line tools and APIs from Globus, CoG Kit, MyProxy

  7. Agenda: • Current architecture study and comparison; • Analysis of the current shell architecture; • Possible (three) approaches to unify the two project

  8. Runtime Web browser Shell CLI Client Java Client C# … Deploy time - Tomcat Web client code Shell CLI Web Service JavaScript code Resources for portal pages Shell CLI Agent service CLI Engine & Interface Mashup App Logic Infrastructure Access Workflow, meta-scheduling, user, vo, and more Web Service Mediator service 3rd party resources App Logics Command line tools and APIs from Globus, CoG Kit, MyProxy Command line tools and APIs from Globus, CoG Kit, MyProxy

  9. Runtime Web browser Shell CLI Client Java Client C# … Deploy time - Tomcat Web client code Shell CLI Web Service JavaScript code Resources for portal pages Shell CLI Agent service CLI Engine & Interface Mashup App Logic Infrastructure Access Workflow, meta-scheduling, user, vo, and more Web Service Mediator service 3rd party resources App Logics Command line tools and APIs from Globus, CoG Kit, MyProxy

  10. Side by side solution: • Pros: • The easiest way to mix up the two projects; • Least change; • The JavaScript project should work. • Cons: • Parts with low cohesion are put into a module that makes the already cumbersome module even more complicated; • Does not solve the current problems of the shell. • Works need to be done if adopted: • Mix up the Mediator service from JavaScript project with Shell-Cli. The most complicated part would be the maven project management configuration.

  11. Shell CLI Client Shell Client Java Client C# … Java Client C# … Shell CLI Web Service Shell CLI Web Service User Activity User Activity CLI Engine & Interface Cyberaide WS Shell CLI Workflow, meta-scheduling, user, vo, and more CLI Engine & Interface Cyberaide Shell App Logic Cyberaide Core/Mediator Web Service Infrastructure Access Workflow, meta-scheduling, user, vo, and more Infrastructure Access Command line tools and APIs from Globus, CoG Kit, MyProxy Command line tools and APIs from Globus, CoG Kit, MyProxy

  12. Split tier solution: • Pros: • Efforts needed comparable to the previous one; • Keep only the code that dependent with Globus/CoG Kit into one mediator server; • The mediator service could be reused by both projects when performing interaction with underlying cyberinfrastructure. • With some modification of the current shell it could support multi-user. • Cons: • The functionalities of the shell(except infrastructure access related operations) are still not shared among users. • Works need to be done if adopted: • Split the current Shell-cli; merge the functionalities related to infrastructure access from the two projects into one module; maven project management need to be modified.

  13. Shell Client Client in other language Java Client C# … Shell Java Client Shell CLI Web Service User Activity User Activity C# CLI Engine & Interface CLI Engine & Interface Cyberaide WS … Workflow, meta-scheduling, user, vo, and more Cyberaide Client Cyberaide Shell Cyberaide Core/Mediator Web Service Web Service Workflow, meta-scheduling, user, vo, and more Infrastructure Access Infrastructure Access Command line tools and APIs from Globus, CoG Kit, MyProxy Command line tools and APIs from Globus, CoG Kit, MyProxy

  14. Separated shell module solution: • Pros: • Isolated business logic from user interface; • Fully support share and collaboration among users; • Removed the current shell-cli-client tier. • Cons: • Drastic change of the current code; • The web service would be cumbersome since every functionality would be exposed through web service; • Clients in other language will have to develop their own interface, CLI orother(If the current shell cannot behave as a script interpreter then we have to do this any way; otherwise we still can add a web service layer upon the shell CLI and clients from other language would be client of that service) • Works need to be done if adopted: • Change virtually every piece of code currently have; remodel the maven project management

  15. Runtime Web browser Deploy time - Tomcat Web client code JavaScript code Resources for portal pages 3rd party resources Mashup Agent service Cyberaide Core/Mediator Web Service Web Service Workflow, meta-scheduling, user, vo, and more Infrastructure Access Infrastructure Access Command line tools and APIs from Globus, CoG Kit, MyProxy Command line tools and APIs from Globus, CoG Kit, MyProxy

  16. Appendix: Current code base tree of the Cybershell project

  17. |-- Version.java |-- account | |-- IUserAccount.java | |-- UserAccountFile.java | |-- UserAccountMem.java | `-- UserAccountUtil.java |-- calendar | |-- CalendarCLI.java | |-- CalendarTask.java | |-- CalendarTimer.java | |-- CalendarUtil.java | |-- GoogleCalendar.java | |-- GridshellCalendarEventEntry.java | |-- Less.java | |-- StringContainer.java | `-- package.html |-- core | |-- CoGFilter.java | |-- CoGObject.java | |-- CoGObjectsUtil.java | |-- CoGPrinter.java | |-- CoGTypes.java | |-- CoGTypesUtil.java | |-- CogException.java | |-- CommandPlugin.java | |-- CyberShell.java | |-- CyberaideProperties.java | |-- ObjTest.java | |-- ObjectCLI.java | |-- SampleCLI.java | |-- ShellContext.java | |-- ShellInterpreter.java | |-- ShellManager.java | |-- deprecated | | |-- CogElement.java | | |-- CogElementArray.java | | |-- CogElementArrayInterface.java | | |-- CogElementInterface.java | | `-- package.html | `-- package.html |-- execution | |-- Execution.java | |-- ExecutionCLI.java | |-- Login.java | |-- LoginCLI.java | |-- SubmitCLI.java | `-- package.html |-- info | |-- InfoCLI.java | |-- InfoService.java | |-- ManCLI.java | |-- idea.txt | |-- package.html | `-- timer | |-- StopWatch.java | |-- Timer.java | |-- TimerListener.java | `-- package.html |-- io | |-- StandardIO.java | |-- StandardInputStream.java | `-- StandardOutputStream.java

  18. |-- sh | |-- ProcFilesystem.java-old | |-- RemoteSysInfoInterface.java-old | |-- ScriptExecute.java-old | |-- ScriptStatus.java-old | |-- SysInfo.java-old | |-- SysInfoInterface.java-old | |-- SysLoad.java-old | |-- SysProbe.java-old | |-- SysinfoCLI.java | |-- XMLHTMLFormat.java-old | |-- l | `-- package.html |-- ssh | |-- Execution.java | |-- ExecutionSSH.java | |-- JobManager.java | |-- ResourceException.java | |-- SSH.java | |-- SSHJob.java | |-- SSHJobEventListener.java | |-- SecureSession.java | |-- package.html | `-- testssh.java |-- transcript | |-- IBMApi.java | |-- IBMDigester.java | |-- IbmCLI.java | |-- TranslateService.java | |-- User.java | `-- package.html |-- job | |-- Experiment.java | |-- ExperimentCLI.java | |-- ExperimentManager.java | |-- GlobusWSGram.java | |-- Workflow.java | `-- WorkflowNode.java |-- package.html |-- people | |-- PeopleSetCLI.java | `-- package.html |-- qbets | |-- Qbets.java | `-- QbetsCLI.java |-- scheduling | |-- Scheduler.java | |-- SchedulerCLI.java | |-- SchedulerFIFO.java | |-- SchedulerFactory.java | `-- package.html |-- security | |-- Myproxy.java | |-- SecurityCLI.java | `-- package.html |-- set | |-- CoGID.java | |-- CoGSet.java | |-- CoGSetUtil.java | `-- SetCLI.java

  19. |-- util | |-- ConditionVariable.java | |-- Path.java | `-- package.html |-- vocli | `-- VOCLI.java |-- volib | |-- Admin.java | |-- Job.java | `-- Proxy.java |-- web | |-- container | | |-- Agent.java | | `-- package.html | |-- mediator | | |-- CogMediator.java | | |-- CogQueue.java | | |-- Executable.java | | |-- WFKarajan.java | | |-- WFStatus.java | | |-- WFType.java | | |-- Workflow.java | | `-- package.html | `-- package.html `-- ws 24 directories, 123 files

More Related