19
Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Embed Size (px)

Citation preview

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

Towards a unified Cyberaide architecture

Fugang WangMay 29, 2009

Page 2: 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

Page 3: 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

Page 4: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Web browser

Agent service

3rd party resources

Shell CLI Web Service

Shell CLI

App Logic

CLI Engine & Interface

Infrastructure 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

Page 5: 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

Page 6: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Shell CLI

App Logic

Shell CLI Client

Shell CLI Web Service

CLI Engine & Interface

Infrastructure 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

Page 7: 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

Page 8: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Web client code

Shell CLI

App Logic

Shell CLI Client Web browser

Agent service

Mediator service

JavaScript code

3rd party resources

Shell CLI Web Service

CLI Engine & Interface

Infrastructure 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

Page 9: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

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

3rd party resources

Shell CLI Web Service

CLI Engine & Interface

Infrastructure Access

Workflow, meta-scheduling, user,

vo, and more

Resources for portal

pages

App Logics

Java Client C# …

Mashup

Web Service

Deploy time -Tomcat

Runtime

Page 10: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

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.

Page 11: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Shell CLI

App Logic

Shell CLI Client

Shell CLI Web Service

CLI Engine & Interface

Infrastructure 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

Infrastructure 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

User Activity

Cyberaide WS

Page 12: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

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.

Page 13: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Shell Client

CLI Engine & Interface

Infrastructure 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

Infrastructure 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

Page 14: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

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

Page 15: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Infrastructure Access

Command line tools and APIs from Globus, CoG Kit, MyProxy

Web Service Cyberaide Core/MediatorInfrastruct

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

3rd party resources

Runtime

Page 16: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

Appendix:

Current code base tree of the Cybershell project

Page 17: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

|-- 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

Page 18: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

|-- 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

Page 19: Towards a unified Cyberaide architecture Fugang Wang May 29, 2009

|-- 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