Download presentation
Presentation is loading. Please wait.
Published byLewis Byrd Modified over 9 years ago
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
Web browser Agent service 3 rd party resources Shell CLI Web Service Shell CLI App Logic CLI Engine & Interface Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Command line tools and APIs from Globus, CoG Kit, MyProxy Shell CLI Client Java Client C# … … Mashup Command line tools and APIs from Globus, CoG Kit, MyProxy Mediator service App Logics Web Service Web client code JavaScript code Resources for portal pages Deploy time - Tomcat Runtime
5
Agenda: Current architecture study and comparison; Analysis of the current shell architecture; Possible (three) approaches to unify the two project
6
Shell CLI App Logic Shell CLI Client Shell CLI Web Service CLI Engine & Interface Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Command line tools and APIs from Globus, CoG Kit, MyProxy Java Client C# … … 1.App logics is not exposed as Web service, instead, Shell CLI is. 2.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. 3.No multi-user and session support. => Current shell works only on a server and in single user mode 1.Most functionalities proposed yet to be implemented, among which the most important are: multi-user and session support; meta-scheduling
7
Agenda: Current architecture study and comparison; Analysis of the current shell architecture; Possible (three) approaches to unify the two project
8
Web client code Shell CLI App Logic Shell CLI Client Web browser Agent service Mediator service JavaScript code 3 rd party resources Shell CLI Web Service CLI Engine & Interface Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Resources for portal pages Command line tools and APIs from Globus, CoG Kit, MyProxy App Logics Java Client C# … … Mashup Command line tools and APIs from Globus, CoG Kit, MyProxy Web Service Deploy time - Tomcat Runtime
9
Command line tools and APIs from Globus, CoG Kit, MyProxy Web client code Shell CLI App Logic Shell CLI Client Web browser Agent service Mediator service JavaScript code 3 rd party resources Shell CLI Web Service CLI Engine & Interface Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Resources for portal pages App Logics Java Client C# … … Mashup Web Service Deploy time - Tomcat Runtime
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 App Logic Shell CLI Client Shell CLI Web Service CLI Engine & Interface Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Command line tools and APIs from Globus, CoG Kit, MyProxy Java Client C# … … Shell Client CLI Engine & Interface Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Command line tools and APIs from Globus, CoG Kit, MyProxy Java Client C# … … Web Service Cyberaide Shell Cyberaide Core/Mediator Shell CLI Web Service User Activity Cyberaide WS
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 CLI Engine & Interface Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Command line tools and APIs from Globus, CoG Kit, MyProxy Java Client C# … … Web Service Cyberaide Shell Cyberaide Core/Mediator Shell CLI Web Service User Activity Cyberaide WS CLI Engine & Interface Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Command line tools and APIs from Globus, CoG Kit, MyProxy C# … … Web Service Shell Java Client User Activity Cyberaide Client Client in other language
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 or other (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
Infrastruct ure Access Command line tools and APIs from Globus, CoG Kit, MyProxy Web Service Cyberaide Core/Mediator Infrastruct ure Access Workflow, meta- scheduling, user, vo, and more Command line tools and APIs from Globus, CoG Kit, MyProxy Web Service Web client code Web browser Agent service JavaScript code Resources for portal pages Mashup Deploy time - Tomcat 3 rd party resources Runtime
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
|-- 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 |-- 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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.