ServiceOriented File Sharing March 5, 2004 - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

ServiceOriented File Sharing March 5, 2004

Description:

File Sharing. March 5, 2004. 1. Michael Sobolewski. sobol_at_cs.ttu.com. Sekhar Soorianarayanan ... requests FSS provider for file upload/download based on ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 25
Provided by: mikesob
Category:

less

Transcript and Presenter's Notes

Title: ServiceOriented File Sharing March 5, 2004


1
Service-OrientedFile SharingMarch 5, 2004
Michael Sobolewski sobol_at_cs.ttu.com
Sekhar Soorianarayanan Ravi-Kiran Malladi Venkata
1
2
Agenda
  • FIPER/SORCER
  • File Store Requirements
  • File Store Architecture
  • Design and Implementation
  • Filter Service
  • FileStore Use Cases
  • Security Issues
  • Future Work

3
Waves of Network Computing
4
SORCER Vision
Federated S2S environment to ...
Build new services Convert legacy apps to
dynamic SORCER services (J2EE technology)
Assemble SORCER services together (RMI, Jini,
Rio, JXTA, WS technologies) Create modern
clients accessing services
5
Web User Agents
6
Command Design Pattern
5
6
4
3
Cmd 1
1
Cmd 2
File System
2
Cmd 3
Cmd Manager
ACLManager
FileStoreProvider
2
JDBC
Cmd 4
RDBMS
Cmd 5
API Classes
1
3
4
Utility Classes
5
6
1,1 - Requestor requests FSS provider for
file upload/download based on DocumentDescriptor
2,2 - FSS forwards it through the command
execution engine 3,3 - Database operations
are done 4,4 - FSS spawns a
RemoteOutputStream/RemoteInputStream server based
on-if client wants to
upload/download and returns back the
InputStram/OutputStream adapter inside
DocumentDescriptor 5,6 - Client
communicates to server via OutputStreamProxy and
uploads file. 5,6 - Client communicates to
server via InputStreamAdapter and downloads file.
7
FileStore Clients Interactions
SORCER Distributed File System
File System (Linux)
File System (UNIX)
File System (Win 2003)
FileStorer SORCER Service
MS SQL
ORACLE
mySQL
DBMS
DBMS
FileStorer SORCER Service
DBMS
Servlet Engine
Clients
Client request is passed on from one server to
another until one of the File Store service has
the file actually present in its File System and
the handle of file is passed onto client.
8
RemoteInputStream
  • public interface RemoteInputStream extends Remote
  • int read(byte buffer, int offset, int count)
  • throws RemoteException, IOException
  • //

9
Adapter Design Pattern
  • Adapter Design Pattern
  • convert the interface of a class into another
    interface client expects
  • used when the client and the real implementing
    class have different interfaces
  • Solution
  • interface Service
  • class ServiceImplementation implements Service
  • interface ExpectedInterface
  • class ServiceAdapter implements
    ExpectedInterface

10
RemoteInputStream
  • public interface RemoteInputStream extends Remote
  • byte read(int count) throws RemoteException,
    IOException
  • ...
  • public class InputStreamAdapter extends
    InputStream implements Serializable
  • private RemoteInputStream rin
  • public int read(byte buffer, int offset, int
    count) throws IOException
  • byte result rin.readBytes(count)
  • System.arrayCopy(result, 0, buffer, offset,
    result.length)
  • return result.length
  • public interface RemoteInputStreamServer extends
    UnicastRemoteObject implements RemoteInputStream
  • private InputStream in

11
RemoteOutputStream
  • public interface RemoteOutputStream extends
    Remote
  • int write(byte buffer, int offset, int count)
  • throws RemoteException, IOException
  • Problems
  • client expects a real OutputStream

12
Proxy Design Pattern
  • Proxy Design Pattern
  • used when the client and the real implementing
    class have the same interfaces
  • Solution
  • OutputStream - the type-compatible class
  • RemoteOuputStream the intermediate remote
    interface
  • OutputStreamProxy the proxy class
  • RemoteOutptServer implements RemoteOutputStream
  • The real OutputStream on FileOutputStream

13
RemoteOutputStream
  • public interface RemoteOutputStream extends
    Remote
  • void write(byte buffer, int offset, int count)
    throws RemoteException, IOException
  • public class OutputStreamProxy extends
    OutputStream
  • implements Serializable
  • private RemoteOutputStream rout
  • public void write(byte buffer, int offset, int
    count) throws IOException
  • rout.write(buffer, offset, count)
  • public interface RemoteOutputStreamServer extends
    UnicastRemoteObject implements RemoteOutputStream
  • private OutputStream out
  • public void write(byte buffer, int offset, int
    count) throws IOException, RemoteException

14
Document Descriptor
Remote
OutputStream
InputStream
RemoteInputStreamServer
RemoteOutputStreamServer
contains
contains
InputStreamAdapter
OutputStreamProxy
contains
contains
15
Document Descriptor Details
Remote
OutputStream
InputStream
write( int ) write( byte ) write( byte, int,
int)
read( ) int read( byte ) int read( byte,
int, int) int
write( int ) write( byte ) write( byte,
int, int)
RemoteOutputStream
read( int ) byte
RemoteInputStream
FileStorer
getInputDescriptor() getOutputDescriptor()
contains
contains
InputStreamAdapter
OutputStreamProxy
read( ) int read( byte ) int read( byte,
int, int) int
write( int ) write( byte ) write( byte, int,
int)
DocumentDescriptor
contains
contains
setDocumentID(String) setFolderPath(String) setDoc
umentName(Name) setPrincipal(GAppPricipal)
16
Servlet Engine vs. FileStore Provider
Download
Servlet Engine
FS Provider
HTTP
JRMP
RemoteInput StreamServer
Uses
Uses
GApp
Uses
RemoteOutput StreamServer
UploadServlet
HTTP
JRMP
Upload
17
RemoteFileStore Client
  • Client upload
  • documentDescriptor
  • RemoteFileStore.getOutputDescriptor(documentDesc
    riptor)
  • try
  • ((OutputStreamProxy)documentDescriptor.out).uplo
    ad(clientFile)
  • catch (Exception e)
  • e.printStackTrace()
  • Client download
  • documentDescriptor
  • RemoteFileStore.getInputDescriptor(documentDescr
    iptor)
  • try

18
Core FSS Classes
jgapp.dm.util.DocumentDescriptor
InputStream jgapp.rmi.InputStreamAdapter jgapp.rm
i.RemoteInputStream jgapp.rmi.RemoteInputStreamSer
ver
OutputStream jgapp.rmi.OutputStreamProxy jgapp.rm
i.RemoteOutputStream jgapp.rmi.RemoteOutputStreamS
erver
FileStore sorcer.core.provider.FileStorer sorcer.c
ore.provider.FileStoreProviderImpl
public interface FileStorer extends Remote
public DocumentDescriptor getInputDescriptor(Docum
entDescriptor desc) throws RemoteException,
IOException, InvalidTransactionException
public DocumentDescriptor getOutputDescriptor(Docu
mentDescriptor desc) throws RemoteException,
IOException, InvalidTransactionException
19
Smart Filter Design
  • Filters are used to filter out some specific
    information referenced by the Document
    Descriptor.
  • The information can be from the Database,
    Document etc. Each of them can have their own
    Filter.
  • Each Filter can have its own specific
    FilterReaderWriter.
  • FilterService is provided by FSS. Helps to
    remotely set and get specific data as described
    by the Document Descriptor and the Filter.
  • Smart access of data. Useful when small amount
    of data needs to be accessed from huge files
    across network.

20
Nozzle Combustor CAD/IO B2B
(UG)
(ProE)
1. Update combustor PCS
2. Request for nozzle validation
5. Perform CFD blow analysis
4. Perform modal analysis
3. Check for nozzle insertion
(Blow Analysis)
21
B2B CAD Exchange
CAD Reader Provider
3. Pass to cadImport
5.Stores the result .prt to FS
8. Return to client
GE file store
7. Return to CAD Reader
PH file store
CAD Import Provider
4. gets .gdx files from FS
2. provider stores .gdx into file store
1.Client uploads input file into the file store
Return and save a local copy of .prt
CAD Export Provider
User A Retrieving
https
User X release to user A
22
B2B Setup
23
P2P Service Oriented File
Relay1
Relay2
5
4
2
6
3
1
Client
  • Request for File via DocumentDescriptor
  • Check if File exists.
  • if (exists) return outputStreamAdapter
  • else discover peer return peer
  • 3. Receive stream to read or info of peer which
    contains the resource

4. Request the relay peer for file if the file
exists with peer outside the virtual
organization. 5. Discover the other peer. Get the
resource (file) and return the proxy to client
for download
24
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com