versão 1 - julho/2013 tecgraf puc-rio novembro de 2013 data service

43
versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

Upload: beatriz-figueiredo-nobre

Post on 07-Apr-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

Tecgraf PUC-RioNovembro de 2013

Data Service

Page 2: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

Motivação

• Aplicações científicas têm como característica a elevada complexidade de seus dados e dos algoritmos que as manipulam• representação complexa• grande volume de dados

• Necessidade de compartilhamento de dados entre as aplicações

Page 3: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Oferece um conjunto de funcionalidades para acesso e manipulação dos dados armazenados em Provedores de Dados (data sources)

• Flexível para atender às diferentes características dos servidores de dados e às diferentes necessidades dos clientes

• Aplicações se integram de maneira uniforme a diferentes provedores de dados, com apenas uma implementação

Data Service

Page 4: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Representação dos dados de forma estruturada• os dados podem ser representados da forma mais

adequada às aplicações• navegação x armazenamento

• Diferentes visões sobre os dados• um mesmo dado pode oferecer diferentes visões• visões podem ser específicas ao domínio de utilização

daquele dado• Navegação hierárquica

• a navegação é feita de forma hierárquica• Navegação por descritores (meta-informações)

• a navegação não é feita sobre o próprio dado, mas sobre uma hierarquia de descritores

Princípios Básicos

Page 5: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Define os tipos e as facetas para navegação hierárquica pelos dados oferecidos.

module tecgraf {

module openbus { /** * \brief Módulo do Serviço de Dados Estruturados. */

module data_service {

...

}; // data_service }; // openbus}; // tecgraf

O Serviço de Dados

Page 6: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• A navegação pelos dados é feita usando descritores que possuem meta-informação sobre os dados• descrição dos dados representados• indica quais as visões o dado representado

oferece• a aplicação usa apenas a visão que lhe

interessa• possui uma chave que identifica univocamente

o dado representado• É utilizada no descritor e nas visões como identificador• Pode ser persistida

Descritores dos Dados

Page 7: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• A navegação hierárquica é feita sobre descritores dos dados

• O descritor deve ter informações suficientes para que um determinado dado seja identificado

valuetype DataDescription { /** A chave unívoca do dado. */ DataKey fKey; /** O nome simbólico do dado. */ string fName; /** A visão padrão do dado (opcional). */ DefaultView fDefaultView; /** As outras visões oferecidas pelo dado, ou seja, as visões diferentes da visão padrão. */ StringSeq fOthersViews; /** Metadados (opcionais) do dado. */ MetadataSeq fMetadata;};

Descritores dos Dados

Page 8: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• A chave fKey é criada pelo serviço• Identificador unívoco• Identifica, além do dado em si, o serviço do qual o dado se

originou

valuetype DataDescription { /** A chave unívoca do dado. */ DataKey fKey; /** O nome simbólico do dado. */ string fName; /** A visão padrão do dado (opcional). */ DefaultView fDefaultView; /** As outras visões oferecidas pelo dado, ou seja, as visões diferentes da visão padrão. */ StringSeq fOthersViews; /** Metadados (opcionais) do dado. */ MetadataSeq fMetadata;};

typedef sequence<octet> OctetSeq;typedef OctetSeq DataKey;

Descritores dos Dados

Page 9: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O campo fName possui um nome simbólico para o dado

valuetype DataDescription { /** A chave unívoca do dado. */ DataKey fKey; /** O nome simbólico do dado. */ string fName; /** A visão padrão do dado (opcional). */ DefaultView fDefaultView; /** As outras visões oferecidas pelo dado, ou seja, as visões diferentes da visão padrão. */ StringSeq fOthersViews; /** Metadados (opcionais) do dado. */ MetadataSeq fMetadata;};

Descritores dos Dados

Page 10: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O campo fDefaultView possui a visão padrão do dado

• Tipicamente utiliza-se o repository ID como identificador da visão

valuetype DataDescription { /** A chave unívoca do dado. */ DataKey fKey; /** O nome simbólico do dado. */ string fName; /** A visão padrão do dado (opcional). */ DefaultView fDefaultView; /** As outras visões oferecidas pelo dado, ou seja, as visões diferentes da visão padrão. */ StringSeq fOthersViews; /** Metadados (opcionais) do dado. */ MetadataSeq fMetadata;};

Descritores dos Dados

Page 11: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O campo fOthersViews possui a lista das outras visões do dado

valuetype DataDescription { /** A chave unívoca do dado. */ DataKey fKey; /** O nome simbólico do dado. */ string fName; /** A visão padrão do dado (opcional). */ DefaultView fDefaultView; /** As outras visões oferecidas pelo dado, ou seja, as visões diferentes da visão padrão. */ StringSeq fOthersViews; /** Metadados (opcionais) do dado. */ MetadataSeq fMetadata;};

Descritores dos Dados

Page 12: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O campo fMetadata permite qualquer informação adicional • Par nome e valor onde o valor pode ser de qualquer tipo básico (any)

valuetype DataDescription { /** A chave unívoca do dado. */ DataKey fKey; /** O nome simbólico do dado. */ string fName; /** A visão padrão do dado (opcional). */ DefaultView fDefaultView; /** As outras visões oferecidas pelo dado, ou seja, as visões diferentes da visão padrão. */ StringSeq fOthersViews; /** Metadados (opcionais) do dado. */ MetadataSeq fMetadata;};struct Metadata { string fName; /**< \brief O nome. */ any fValue; /**< \brief O valor. */};typedef sequence<Metadata> MetadataSeq;

Descritores dos Dados

Page 13: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• É um conjunto de atributos e operações que apresentam o dado de acordo com um domínio ou uma necessidade específica

• Os servidores de dados implementam suas próprias visões

• Uma visão existe sobre um dado em particular• Do ponto de vista do cliente, a visão é o dadoabstract interface DataView { /** Obtém o identificador unívoco do dado. */ DataKey getKey() /** Obtém o nome da interface. Deve-se utilizar o * "Repository ID" como retorno. */ string getInterfaceName();};

Visão do Dado

Page 14: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O DataService já define uma visão para dados não estruturados

• Com essa visão é possível transferir dados locais para o data source através de socket/** Visão de um dado por valor. */valuetype ValueTypeDataView supports DataView { public DataKey fKey; /* O identificador unívoco do dado */ };

/** Visão não-estruturada de um dado para a transferência de seu conteúdo através de um socket. */valuetype UnstructuredDataView : ValueTypeDataView { public string fHost; /* O nome do host de origem do dado */ public unsigned long fPort; /* A porta do host de origem */ public OctetSeq fAccessKey; /* A chave de acesso ao dado */ public boolean fWritable; /* Se é possível alterar o dado */};

Visão do Dado

Page 15: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Para transferir os dados propriamente ditos, utilizamos um protocolo / biblioteca próprios, chamado FTC (File Transfer Protocol)

• Um protocolo é necessário para fornecer uma forma padronizada de transferência de arquivos

• A motivação maior por trás de um protocolo próprio é termos controle sobre ele, podendo inclusive inserir nossos próprios mecanismos de segurança, como o de autenticação do OpenBus

Transferência de Dados e o Protocolo FTC

Page 16: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Outras motivações incluem:• Simplicidade• Facilidade de implementação em diversas linguagens• Não ficar preso à necessidade de expor um sistema de arquivos (nem sempre será o caso de sistemas que provêem dados através do barramento)• Flexibilidade: transferência de dados através de outras formas, como fluxos ou canais

Transferência de Dados e o Protocolo FTC

Page 17: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• A biblioteca FTC (versão C# atual 1.4.0.0, mas utilizaremos a 1.1.2 nos exercícios) implementa abstrações para transferência de dados por socket

byte[] data = …; string unstructuredDataViewIDLType = Repository.GetRepositoryID(typeof (UnstructuredDataView)); UnstructuredDataView view = (UnstructuredDataView) dataService.getDataView(fileKey, unstructuredDataViewIDLType); RemoteDataChannel rdc = new RemoteDataChannel(view.fKey, view.fWritable, view.fHost, view.fPort, view.fAccessKey); rdc.Open(false); // bool indica se é um acesso somente leitura rdc.Write(data); rdc.Close();

Exemplo de transferência de dado usando a visãonão estruturada

Page 18: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Como dito anteriormente, visões podem ser utilizadas para representar um dado em diferentes domínios

• O DataService já fornece um tipo de visão, não-estruturada, a todos os dados

• Aplicações podem definir novos domínios que exijam novos tipos de visão

• Exemplo:• O framework CSBase define o conceito de área de projeto, que é um repositório de dados. Aplicações CSBase utilizam áreas de projeto para armazenar dados a ser utilizados em sua execução• Portanto, o domínio CSBase refere-se à gerência de projetos e define dois tipos de dado: “projeto” e “item de projeto”

Visão do Dado

Page 19: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Exemplo:• Projetos têm metadados como:

• Dono do projeto• Descrição do projeto• Caminho absoluto• Nome do software que provê o projeto• Data de criação• Lista de usuários que podem ler e lista de usuários que podem escrever na área do projeto• Entre outros

Visão do Dado

Page 20: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Exemplo:• Itens de projeto têm metadados como:

• Dono do item• Descrição do item• Caminho absoluto• Indicador se o item é um contêiner ou não• Tamanho• Se pode ser lido e se pode ser escrito• Data de criação• Entre outros

Visão do Dado

Page 21: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Um certo dado do CSBase que seja um item de projeto, pode então prover uma visão que permita acesso a esses metadados a clientes interessados

• Clientes interessados em manipulá-los como dados quaisquer, no entanto, podem vê-lo como um dado não-estruturado, sem depender do domínio do CSBase e suas bibliotecas

Visão do Dado

Page 22: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

…valuetype ProjectItemDataView : tecgraf::openbus::data_service::core::v1_02::ValueTypeDataView { public string fOwner; public string fDescription; public string fPath; public string fType; public long long fSize; public boolean fIsContainer; public boolean fCanRead; public boolean fCanWrite; public tecgraf::openbus::data_service::core::v1_02::TimeStamp fCreationDate; public tecgraf::openbus::data_service::core::v1_02::TimeStamp fModificationDate;};…

IDL project.idl

Page 23: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• IDataService• Permite a obteção de descrições e visões de

dados a partir de suas chaves unívocas• IHierarchicalNavigationDataService

• Permite a navegação pelos dados• IHierarchicalManagementDataService

• Permite a criação, atualização e remoção de dados, no próprio data source

• IHierarchicalTransferDataService• Permite a transferência de dados entre data

sources diferentes

Facetas definidas pelo Serviço de Dados

Page 24: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

IDataService

Page 25: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

DataDescription getDataDescription(in DataKey fKey) raises (ServiceFailure, InvalidDataKey, DataNotFound, DataAccessDenied);

• O método getDataDescription obtém o descritor de um determinado dado

• O parâmetro de entrada é a chave do dado que se deseja o descritor

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• DataAccessDenied caso o usuário não tenha permissão

de acesso

IDataService

Page 26: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

DataView getDataView(in DataKey fKey, in string fViewInterface) raises (ServiceFailure, InvalidDataKey, DataNotFound, UnsupportedView, DataAccessDenied);

• O método getDataView obtém uma visão de um dado• Os parâmetros de entrada são a chave do dado e o

nome da visão desejada• Pode lançar as exceções:

• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• UnsupportedView uma visão não suportada foi solicitada• DataAccessDenied caso o usuário não tenha permissão

IDataService

Page 27: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método getDataViewSeq obtém um conjunto de visões para um conjunto de dados. As visões retornadas implementam a mesma interface

• Os parâmetros são as chaves dos dados e o nome da visão• Pode lançar as exceções:

• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• UnsupportedView uma visão não suportada foi solicitada• DataAccessDenied caso o usuário não tenha permissão

DataViewSeq getDataViewSeq(in DataKeySeq fKeys, in string fViewInterface) raises (ServiceFailure, InvalidDataKey, DataNotFound, UnsupportedView, DataAccessDenied);

IDataService

Page 28: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

IHierarchicalNavigationDataService

Page 29: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

IHierarchicalNavigationDataService

• O método getRoots obtém os descritores dos dados que representam as raízes da hierarquia

• É utilizado pelas aplicações que utilizam o serviço para iniciar a navegação nos dados

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação • DataAccessDenied caso o usuário não tenha

permissão de acesso

DataDescriptionSeq getRoots() raises (ServiceFailure, DataAccessDenied);

Page 30: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método getChildren obtém os descritores dos dados descendentes de um determinado dado

• O parâmetro de entrada é a chave do dado que se deseja os descendentes

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• DataAccessDenied caso o usuário não tenha permissão

de acessoDataDescriptionSeq getChildren(in DataKey fKey) raises (ServiceFailure, InvalidDataKey, DataNotFound, DataAccessDenied);

IHierarchicalNavigationDataService

Page 31: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método getParent obtém o descritor do ascendente de um determinado dado

• O parâmetro de entrada é a chave do dado que se deseja o ascendente

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado • DataAccessDenied caso o usuário não tenha permissão

de acessoDataDescription getParent(in DataKey fKey) raises (ServiceFailure, InvalidDataKey, DataNotFound, DataAccessDenied

IHierarchicalNavigationDataService

Page 32: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

IHierarchicalManagementDataService

Page 33: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método createData cria um dado a partir de informações contidas em um descritor protótipo

• Nem todos os campos precisam estar presentes na descrição do dado (ex: o campo dataKey)

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• InvalidPrototype caso o protótipo seja inválido• DataAccessDenied caso o usuário não tenha permissão• DataAlreadyExist caso o dado já exista• InvalidContainer caso o dado pai não possa conter dados• UnsupportedOperation caso a operação não seja implementada

pelo serviçoDataKey createData(in DataKey fPrototype, in DataDescription fParentKey) raises (ServiceFailure, InvalidDataKey, DataNotFound, InvalidPrototype, DataAccessDenied, DataAlreadyExist, InvalidContainer, UnsupportedOperation)

IHierarchicalManagementDataService

Page 34: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método copyData copia um dado para uma determinada localização

• Recebe como parâmetros a chave do dado de origem e a chave do dado (pai) onde o novo dado (filho) será criado

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• DataAccessDenied caso o usuário não tenha permissão• DataAlreadyExist caso o dado já exista• InvalidContainer caso o dado pai não possa conter dados• UnsupportedOperation caso a operação não seja

implementada pelo serviçoDataKey copyData(in DataKey fSourceKey, in DataKey fParentKey) raises (ServiceFailure, InvalidDataKey, DataNotFound, DataAccessDenied, DataAlreadyExist, InvalidContainer, UnsupportedOperation);

IHierarchicalManagementDataService

Page 35: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método moveData move um dado para uma determinada localização

• Recebe como parâmetros a chave do dado de origem e a chave do dado (pai) onde o novo dado (filho) será criado

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• DataAccessDenied caso o usuário não tenha permissão• DataAlreadyExist caso o dado já exista• InvalidContainer caso o dado pai não possa conter dados• UnsupportedOperation caso a operação não seja

implementada pelo serviçovoid moveData(in DataKey fKey, in DataKey fNewParentKey) raises (ServiceFailure, InvalidDataKey, DataNotFound, DataAccessDenied, DataAlreadyExist, InvalidContainer, UnsupportedOperation);

IHierarchicalManagementDataService

Page 36: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método updateData atualiza um dado a partir do conteúdo de um outro dado qualquer

• Recebe como parâmetros a chave do dado que se deseja atualizar e a chave do dado de origem

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• AbsentViews caso o dado de origem não possua visões

conhecidas para a atualização• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• DataAccessDenied caso o usuário não tenha permissão• UnsupportedOperation caso a operação não seja

implementada pelo serviçovoid updateData(in DataKey fKey, in DataKey fSourceKey) raises (ServiceFailure, AbsentViews, InvalidDataKey, DataNotFound, DataAccessDenied, UnsupportedOperation);

IHierarchicalManagementDataService

Page 37: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método deleteData remove um dado• Recebe como parâmetro a chave do dado que se

deseja remover• Pode lançar as exceções:

• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• DataAccessDenied caso o usuário não tenha permissão• UnsupportedOperation caso a operação não seja

implementada pelo serviço

void deleteData(in DataKey fKey) raises (ServiceFailure, InvalidDataKey, DataNotFound, DataAccessDenied, UnsupportedOperation);

IHierarchicalManagementDataService

Page 38: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

IHierarchicalTransferDataService

Page 39: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método copyDataFrom copia um dado proveniente de outro data source para uma determinada localização

• Recebe como parâmetros a chave do dado de origem e a chave do dado (pai) onde o novo dado (filho) será criado

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• DataAccessDenied caso o usuário não tenha permissão• AbsentViews caso o dado de origem não possua visões conhecidas para a

atualização• UnavailableDataService caso o servidor de origem do dado não esteja

disponível• DataAlreadyExist caso o dado já exista• InvalidContainer caso o dado pai não possa conter dados• UnsupportedOperation caso a operação não seja implementada pelo

serviçoDataKey copyDataFrom(in DataKey fSourceKey, in DataKey fParentKey) raises (ServiceFailure, AbsentViews, InvalidDataKey, DataNotFound, DataAccessDenied, UnavailableDataService, DataAlreadyExist,

InvalidContainer, UnsupportedOperation)

IHierarchicalTransferDataService

Page 40: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• O método updateDataFrom atualiza um dado a partir do conteúdo de um dado proveniente de outro data source

• Recebe como parâmetros a chave do dado que se deseja atualizar e a chave do dado de origem

• Pode lançar as exceções:• ServiceFailure caso ocorra uma falha na operação• AbsentViews caso o dado de origem não possua visões

conhecidas para a atualização• InvalidDataKey caso a chave do dado não seja válida• DataNotFound caso o dado não seja encontrado• DataAccessDenied caso o usuário não tenha permissão• UnavailableDataService caso o servidor de origem do dado

não esteja disponívelvoid updateDataFrom(in DataKey fKey, in DataKey fSourceKey) raises (ServiceFailure, AbsentViews, InvalidDataKey, DataNotFound, DataAccessDenied, UnavailableDataService);

IHierarchicalTransferDataService

Page 41: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

As Bibliotecas Core e Project

Page 42: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Representa e permite manipular dados de uma forma genérica, não estruturada

• Inclui a implementação do valuetype UnstructuredDataView

• Inclui uma classe para facilitar a manipulação do Datakey• DataKeyWrapper

Core

Page 43: Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Data Service

versão 1 - julho/2013

• Representa e permite manipular dados relacionados à gerência de projetos, do domínio CSBase ou outros domínios compatíveis• Onde, nesses domínios, um projeto é algo similar

a um repositório para dados utilizados por aplicações e/ou algoritmos

• Inclui a implementação dos valuetypes ProjectDataView e ProjectItemDataView

• Esses valuetypes representam visões diferentes para dados, sendo abstrações para projetos e itens de projetos respectivamente

Project