Figura 4.3: Modelo de classes da ontologia
As Figuras 4.2 e 4.3 representam as classes da ontologia desenvolvida, assim como as
propriedades dos objectos (object properties) mais importantes.
Esta ontologia permite, como todas as ontologias que s˜ao criadas, a sua reutilizac¸˜ao em outros problemas. Por exemplo, a classe que est´a a cor diferente denominada por
Network_Node faz a ligac¸˜ao desta ontologia com uma poss´ıvel ontologia da representac¸˜ao
de uma rede de computadores, como foi referido na Secc¸˜ao2.3.3.
A criac¸˜ao deste modelo permitiu organizar as classes por trˆes t ´opicos, que s˜ao: Manage- ment Needs, Measurement Topology e Sampling. Esta organizac¸˜ao permite perceber quais as classes que est˜ao ligadas a cada um dos t ´opicos facilitando a compreeens˜ao do esquema. A concepc¸˜ao deste modelo mostra de forma mais percept´ıvel as relac¸ ˜oes existentes entre as v´arias classes, por forma a facilitar o posicionamento na ontologia, ou seja, se pretende veri- ficar quais as classes e as object properties que se relacionam com as t´ecnicas de amostragem, basta ter em considerac¸˜ao a ´area que est´a delimitada e ´e denominada por Sampling.
4.4 d e s c r i c¸ ˜ao da ontologia
Esta ontologia ´e constitu´ıda por v´arias classes que s˜ao elementos tidos em conta num servic¸o de monitorizac¸˜ao com base em amostragem. Os elementos constituintes da on- tologia s˜ao requisitos que ser˜ao tidos em conta na decis˜ao de qual a melhor t´ecnica de
4.4. Descric¸˜ao da Ontologia
amostragem a aplicar em determinado momento para uma determinada tarefa de gest˜ao (accounting, classificac¸˜ao de tr´afego, etc). Estes elementos ser˜ao consultados por forma a que um sistema de decis˜ao com base nos dados consultados indique a t´ecnica de amos- tragem que melhor se adequa `a tarefa de gest˜ao que se pretende aplicar em determinado momento num ponto de medic¸˜ao. De seguida ser˜ao descritos ao pormenor todos os con- ceitos da ontologia. A descric¸˜ao ser´a dividida em quatro t ´opicos, nomeadamente classes, propriedades do objecto, atributos e indiv´ıduos, como foi referido na Secc¸˜ao2.3.4.
4.4.1 Classes
A ontologia desenvolvida cont´em 26 classes que ser˜ao descritas de seguida:
• Management_Task: esta classe representa as tarefas de gest˜ao (accounting, classificac¸˜ao de tr´afego, etc) que se pretende implementar no servic¸o de monitorizac¸˜ao.
• Measurement_Point: esta classe representa os pontos de medic¸˜ao da rede.
• Measurement_Node: esta classe representa os nodos da rede que s˜ao pontos de medi- c¸˜ao.
• Network_Node: esta classe representa os nodos da rede.
• Interfaces: esta classe representa os interfaces que um nodo de medic¸˜ao e/ou nodo da rede cont´em.
• Measurement_Needs: esta classe representa as diversas necessidades de medic¸˜ao de uma tarefa de gest˜ao espec´ıfica.
• Packet_Info: esta classe ´e subclasse da classe Measurement_Needs e representa a ne- cessidade de, em certas ocasi ˜oes, n˜ao ser necess´ario capturar um determinado pacote mas apenas alguma informac¸˜ao que vem nesse pacote.
• Export_Info: esta classe ´e subclasse da classe Measurement_Needs e representa a necessidade de exportar informac¸ ˜oes que est˜ao em determinados pacotes.
• Metrics: esta tarefa representa todas as m´etricas que possam estar associadas a deter- minada tarefa de gest˜ao.
• BandwidthMetrics: esta classe representa m´etricas relacionadas com largura de ban- da.
• DelayMetrics: esta classe representa m´etricas relacionadas com delay (atraso na en- trega de pacotes).
4.4. Descric¸˜ao da Ontologia
• LossMetrics: esta classe representa m´etricas relacionadas com perda de pacotes. • Reliability: esta classe representa m´etricas relacionadas com fiabilidade. • Workload: esta classe representa m´etricas relacionadas com a carga na rede.
• Granularity: esta classe representa o componente que carateriza qual a abordagem (flow level ou packet level) que ´e feita ao tr´afego que ´e capturado para amostra nos v´arios pontos de medic¸˜ao.
• Flow_Level: esta classe representa objetos em que a abordagem de amostragem efe- tuada ´e ao n´ıvel de fluxos de tr´afego (que consiste em aplicar ao tr´afego capturado pol´ıticas para filtrar pacotes pertencentes a um fluxo ou um conjunto de fluxos). • Packet_Level: esta classe representa objetos em que a abordagem de amostragem
efetuada ´e ao n´ıvel de pacote (que consiste em considerar que os pacotes que chegam aos pontos de medic¸˜ao s˜ao independentes e considerados entidades individuais). • Sampling_Technique: esta classe representa as v´arias t´ecnicas de amostragem que
s˜ao representadas e que posteriormente ser˜ao utilizadas na monitorizac¸˜ao das v´arias tarefas de gest˜ao.
• Selection_Scheme: esta classe identifica qual a func¸˜ao (sistem´atica, aleat ´oria ou adap- tativa) que vai ser aplicada na selec¸˜ao e captura dos pacotes de tr´afego.
• Adaptative: esta classe representa os objetos cuja abordagem ao n´ıvel da selec¸˜ao e captura dos pacotes de tr´afego ´e adaptativa, ou seja, a t´ecnica de amostragem ´e dotada com a capacidade de alterar a selec¸˜ao de pacotes durante o curso das medic¸ ˜oes. Essa flexibilidade visa identificar as partes mais importantes de um fluxo de tr´afego de acordo com as necessidades de medic¸˜ao ou economizar recursos de rede durante per´ıodos cr´ıticos da sua operac¸˜ao.
• Random: esta classe representa os objetos cuja abordagem ao n´ıvel da selec¸˜ao e captura dos pacotes de tr´afego ´e aleat ´oria, que visa evitar a fragmentac¸˜ao das amostras contro- lando a frequˆencia de amostragem por meio de um processo aleat ´orio, normalmente recorrendo a um gerador pseudoaleat ´orio ou a uma func¸˜ao probabil´ıstica.
• Systematic: esta classe representa os objetos cuja abordagem ao n´ıvel da selec¸˜ao e captura dos pacotes de tr´afego ´e sistem´atica, isto ´e, o processo de selec¸˜ao de pacotes ´e controlado por uma func¸˜ao determin´ıstica que imp ˜oe uma frequˆencia de amostragem fixa, independentemente do conte ´udo ou tratamento do pacote.
• Selection_Trigger: esta classe define o in´ıcio e o fim de uma amostra e, portanto determina o intervalo entre as amostras. Esta classe pode classificar as amostras tendo em conta as abordagens como Count_Based, Time_Based e Event_Based.
4.4. Descric¸˜ao da Ontologia
• Count_Based: esta classe representa os objetos cuja abordagem ´e baseada em conta- gem que define o in´ıcio e o fim de uma amostra sendo impulsionado pela posic¸˜ao espacial do pacote no fluxo de tr´afego.
• Event_Based: esta classe representa os objetos cuja abordagem na decis˜ao sobre quando uma amostra comec¸a e termina leva em conta algum evento particular ob- servado no tr´afego que est´a a ser monitorizado.
• Time_Based: esta classe representa os objectos cuja abordagem ´e baseada no tempo, em que a definic¸˜ao do in´ıcio e o fim da amostra ´e determinada com base no TimeS- tamping de chegada de pacotes.
A Figura4.4apresenta um exemplo de uma classe definida em Prot´eg´e.
Figura 4.4: Classe Management Task
4.4.2 Propriedades do Objecto
As propriedades do objecto, mais conhecidas por object properties, s˜ao propriedades/espe- cificidades que relacionam os objectos com outros objectos. Estas propriedades tˆem como requisito principal a definic¸˜ao de um dom´ınio e de um contradom´ınio. Podem tamb´em
4.4. Descric¸˜ao da Ontologia
definir-se propriedades inversas, ou seja, ao definir uma propriedade com um dominio e um contradominio a sua propriedade inversa ter´a como contradominio o seu dom´ınio e como dom´ınio o seu contradominio.
A ontologia desenvolvida cont´em 36 ”object properties” que ser˜ao descritas de seguida. • hasBandwidth: esta propriedade tem como dom´ınio a classe Metrics e como contra-
dominio a classe BandwidthMetrics.
• hasDelay: esta propriedade tem como dom´ınio a classe Metrics e como contrado- minio a classe DelayMetrics.
• hasExport_Info: esta propriedade tem como dom´ınio a classe Measurement_Needs e como contradominio a classe Export_Info.
• hasGranularity: esta propriedade tem como dom´ınio a classe SamplingTechnique e como contradominio a classe Granularity.
• hasInterface: esta propriedade tem como dom´ınio a classe Measurement_Node e como contradominio a classe Interfaces.
• hasInterface_net: esta propriedade tem como dom´ınio a classe Network_Node e como contradominio a classe Interfaces.
• hasLossMetrics: esta propriedade tem como dom´ınio a classe Metrics e como con- tradominio a classe LossMetrics.
• hasManagementNeeds: esta propriedade tem como dom´ınio a classe Management_Task e como contradominio a classe Measurement_Needs.
• hasMeasurementNode: esta propriedade tem como dom´ınio a classe
Measurement_Pointe como contradominio a classe Measurement_Node.
• hasMeasurementPoint: esta propriedade tem como dom´ınio a classe
Management_Taske como contradominio a classe Measurement_Point.
• hasMetrics: esta propriedade tem como dom´ınio a classe Management_Task e como contradominio a classe Metrics.
• hasNetworkNode: esta propriedade tem como dom´ınio a classe Management_Point e como contradominio a classe Network_Node.
• hasPacketInfo: esta propriedade tem como dom´ınio a classe Measurement_Needs e como contradominio a classe Packet_Info.
• hasReliability: esta propriedade tem como dom´ınio a classe Metrics e como con- tradominio a classe Reliability.
4.4. Descric¸˜ao da Ontologia
• hasSampleTechnique: esta propriedade tem como dom´ınio a classe
Measurement_Pointe como contradominio a classe Sampling_Technique.
• hasSelectionScheme: esta propriedade tem como dom´ınio a classe
Sampling_Techniquee como contradominio a classe Selection_Scheme.
• hasSelectionTrigger: esta propriedade tem como dom´ınio a classe
Sampling_Techniquee como contradominio a classe Selecton_Trigger.
• hasWorkLoad: esta propriedade tem como dom´ınio a classe Metrics e como contra- dominio a classe WorkLoad.
• isBandwidthOf: ´e a propriedade inversa da propriedade hasBandwitdh. • isDelayOf: ´e a propriedade inversa da propriedade hasDelay.
• isExportInfoOf: ´e a propriedade inversa da propriedade hasExportInfo. • isGranularityOf: ´e a propriedade inversa da propriedade hasGranularity. • isInterfaceOf: ´e a propriedade inversa da propriedade hasInterface.
• isInterface_NetOf: ´e a propriedade inversa da propriedade hasInteface_net. • isLossMetricsOf: ´e a propriedade inversa da propriedade hasLossMetrics.
• isManagementNeedsOf: ´e a propriedade inversa da propriedade hasManagementNeeds. • isMeasurementNodeOf: ´e a propriedade inversa da propriedade hasMeasurementNode. • isMeasurementPoint: ´e a propriedade inversa da propriedade hasMeasurementPoint. • isMetricsOf: ´e a propriedade inversa da propriedade hasMetrics.
• isNetworkNodeOf: ´e a propriedade inversa da propriedade hasNetworkNode. • isPacketInfoOf: ´e a propriedade inversa da propriedade hasPacketInfo. • isReliabilityOf: ´e a propriedade inversa da propriedade hasReliability.
• isSampleTechniqueOf: ´e a propriedade inversa da propriedade hasSampleTechnique. • isSelectionSchemeOf: ´e a propriedade inversa da propriedade hasSelectionScheme. • isSelectionTriggerOf: ´e a propriedade inversa da propriedade
hasSelectionTrigger.
4.4. Descric¸˜ao da Ontologia
A Figura4.5apresenta um exemplo de uma propriedade do objecto definida em Prot´eg´e.
Figura 4.5: Propriedade objecto hasBandwidth
4.4.3 Atributos
Os atributos do objecto que s˜ao denominados por ”data properties” s˜ao caracter´ısticas que definem o objecto (indiv´ıduo).
A ontologia desenvolvida neste trabalho cont´em 43 atributos que ser˜ao detalhados em seguida.
• availableBandwidth: representa a largura de banda dispon´ıvel, ou seja, ´e a quanti- dade m´axima de dados por unidade de tempo que um link ou o caminho pode forne- cer, dada a utilizac¸˜ao atual. Este atributo tem como dom´ınio a classe BandwidthMetri-
cs e ´e do tipo long.
• baseUnit: representa a unidade base em que ´e feita a medic¸˜ao de determinada m´etrica. Este atributo ´e do tipo string e tem como dom´ınio a classe Metrics.
• btc: este atributo especifica a capacidade de transporte em massa (BTC (Bulk Transfer Capacity) ´e uma medida da capacidade de uma rede para transferir quantidades
4.4. Descric¸˜ao da Ontologia
significativas de dados sobre uma conex˜ao TCP (Transmission Control Protocol) face `as conex ˜oes existentes). Este atributo ´e do tipo long e tem como dom´ınio a classe BandwidthMetrics.
• capacity: ´e a quantidade m´axima de dados por unidade de tempo que o link ou o caminho tem dispon´ıveis, quando n˜ao h´a tr´afego concorrente. Este atributo ´e do tipo long e tem como dom´ınio a classe BandwidthMetrics.
• collectionTimeStamp: representa o tempo ou o intervalo de tempo em que determi- nada amostra foi coletada. Este atributo ´e do tipo dateTimeStamp e tem como dom´ınio a classe Packet_Info.
• concurrency: especifica se um n ´o ´e dedicado ou compartilhado na realizac¸˜ao de uma determinada tarefa. Este atributo ´e do tipo string e tem como dom´ınio a classe Measurement_Node.
• cpuDescription: descreve as caracter´ısticas do CPU em quest˜ao. Este atributo ´e do tipo string e tem como dom´ınio a classe Measurement_Node.
• currentCpuLoad: quantidade de CPU que est´a sendo utilizado. Este atributo ´e do tipo float e tem como dom´ınio a classe Measurement_Node.
• currentMemoryLoad: quantidade de mem ´oria que sendo utilizada. Este atributo ´e do tipo float e tem como dom´ınio a classe Measurement_Node.
• DataAggregationFunction: este atributo especifica a func¸˜ao usada na agregac¸˜ao de dados. Este atributo ´e do tipo string e tem como dom´ınio a classe Measurement_Needs. • eventIdentificator: este atributo identifica o evento em quest˜ao. Este atributo ´e do
tipo string e tem como dom´ınio a classe Event_Based.
• export_regularity: este atributo especifica a periodicidade da exportac¸˜ao de dados. Este atributo ´e do tipo string e tem como dom´ınio a classe Export_Info.
• exportedOctetTotalCount: este atributo especifica quantas vezes a exportac¸˜ao de dados ´e feita. Este atributo ´e do tipo unsignedLong e tem como dom´ınio a classe Export_Info.
• factorOfChangeMin: representa o valor m´ınimo definido entre os intervalos de amos- tras coletadas. Este atributo ´e do tipo float e tem como dom´ınio a classe
SamplingTechnique.
• factorOfChangeMax: representa o valor m´aximo definido entre os intervalos de amos- tras coletadas. Este atributo ´e do tipo float e tem como dom´ınio a classe
4.4. Descric¸˜ao da Ontologia
• flowKeyIndicator: este conjunto de campos de bits ´e usado para marcar elementos de informac¸˜ao de um registro de dados que servem como chave para identificar um fluxo. Cada bit representa um elemento de informac¸˜ao no registro de dados com o bit n-th representando o elemento de informac¸˜ao n-th. Este atributo ´e do tipo unsignedLong e tem como dom´ınio a classe Flow_Level.
• id: este atributo identifica qual ´e o ponto de medic¸˜ao em quest˜ao. Este atributo ´e do tipo string e tem como dom´ınio a classe Measurement_Point.
• interfaceDescription: este atributo especifica as caracter´ısticas da interface em quest˜ao. Este atributo ´e do tipo string e tem como dom´ınio a classe Interfaces.
• ipdv: este atributo especifica o IPDV (IP Packet Delay Variation mede a variac¸˜ao de atraso unidirecional de pacotes consecutivos que fluem entre entre dois hosts num caminho IP). Este atributo ´e do tipo float e tem como dom´ınio a classe DelayMetrics. • iplr: este atributo especifica a taxa de perda de pacotes IPLR (IP Packet Loss Ratio) ´e o resultado da proporc¸˜ao do total de pacotes IP perdidos para o total de pacotes IP transmitidos em uma populac¸˜ao de interesse.
Um pacote perdido ocorre quando um pacote nunca ´e entregue, quando tem um atraso acima de um n´ıvel ou ´e entregue a um ponto de medic¸˜ao de sa´ıda il´ıcita. Este atributo ´e do tipo float e tem como dom´ınio a classe LossMetrics.
• iptd: este atributo especifica o atraso na transferˆencia de pacotes. IPTD (IP Packet Transfer Delay) ´e o resultado do atraso no tempo que um pacote demora a ser trans- mitido da origem para o destino atrav´es de uma rede. Este atributo ´e do tipo float e tem como dom´ınio a classe DelayMetrics.
• levelOfDpi: n´ıvel de inspec¸˜ao profunda de pacotes (DPI) ´e um m´etodo avanc¸ado de filtragem de pacotes que funciona na camada de aplicac¸˜ao do modelo de referˆencia OSI (Open Systems Interconnection). O uso de DPI faz com que seja poss´ıvel encon- trar, identificar, classificar, redirecionar pacotes de dados espec´ıficos ou cargas ´uteis de c ´odigo que a filtragem de pacotes convencional n˜ao consegue detetar. Este atributo
´e do tipo int e tem como dom´ınio a classe Packet_Info.
• loadBytes: carga na rede medida em n ´umero de bytes. Este atributo ´e do tipo unsig- nedLong e tem como dom´ınio a classe WorkLoad.
• loadPackets: carga na rede medida em n ´umero de pacotes. Este atributo ´e do tipo unsignedLong e tem como dom´ınio a classe WorkLoad.
• location: indica a localizac¸˜ao f´ısica de um ponto de medic¸˜ao. Este atributo ´e do tipo string e tem como dom´ınio a classe Measurement_Point.
4.4. Descric¸˜ao da Ontologia
• meanPacketSize: representa o tamanho m´edio dos pacotes inclu´ıdos numa amostra. Este atributo ´e do tipo unsignedLong e tem como dom´ınio a classe WorkLoad.
• memoryDescription: este atributo descreve as caracter´ısticas de mem ´oria num deter- minado n ´o de medic¸˜ao. Este atributo ´e do tipo string e tem como dom´ınio a classe Measurement_Node.
• numberOfBytes: n ´umero de bytes para remover de um pacote no processo de amostra- gem. Este atributo ´e do tipo unsignedLong e tem como dom´ınio a classe Packet_Info. • orderOfPrediction: este atributo considera diferentes graus de mem ´oria passada no mecanismo de estimativa auto-adaptativo. A significˆancia dos resultados ´e demons- trada pela avaliac¸˜ao estat´ıstica comparativa. Este atributo ´e do tipo int e tem como dom´ınio a classe Sampling_Techniques.
• pia: ´e a percentagem de tempo total de servic¸o IP agendada que ´e classificado como dispon´ıvel utilizando uma func¸˜ao de disponibilidade do servic¸o IP. Este atributo ´e do tipo string e tem como dom´ınio a classe Reliability.
• piu: ´e a percentagem de tempo total de servic¸o IP agendada que ´e classificado como indispon´ıvel utilizando uma func¸˜ao de disponibilidade do servic¸o IP. Este atributo ´e do tipo string e tem como dom´ınio a classe Reliability.
• rtt: ´e o tempo que demora um pacote a chegar ao destino espec´ıfico e a fonte de origem receber a sua confirmac¸˜ao. Este atributo ´e do tipo float e tem como dom´ınio a classe DelayMetrics.
• SamplingPacketInterval: este atributo especifica o n ´umero de pacotes que s˜ao con- secutivamente inclu´ıdos na amostra. Este atributo ´e do tipo unsignedInt e tem como dom´ınio a classe Count_Based.
• SamplingPacketSpace: este atributo especifica o n ´umero de pacotes entre dois ”Sam- plingPacketInterval”. Este atributo ´e do tipo unsignedInt e tem como dom´ınio a classe Count_Based.
• SamplingTimeInterval: este atributo especifica o intervalo de tempo em microsse- gundos, durante o qual todos os pacotes que chegam s˜ao amostrados. Este atributo ´e do tipo unsignedInt e tem como dom´ınio a classe Time_Based.
• SamplingTimeSpace: este atributo especifica o intervalo de tempo em microssegundos entre dois ”SamplingTimeInterval”. Este atributo ´e do tipo unsignedInt e tem como dom´ınio a classe Time_Based.
4.4. Descric¸˜ao da Ontologia
• selectorAlgorithm: este atributo identifica os m´etodos de selec¸˜ao de pacotes (por exemplo, filtragem, amostragem) que s˜ao aplicadas pelo processo de selec¸˜ao. Este atributo ´e do tipo unsignedInt e tem como dom´ınio a classe Sampling_Technique. • taskID: este atributo identifica qual a tarefa de gest˜ao em quest˜ao. Este atributo ´e do
tipo string e tem como dom´ınio a classe Management_Task.
• type: este atributo especifica o tipo (core, router de fronteira, ...) de um determi- nado ponto de medic¸˜ao. Este atributo ´e do tipo string e tem como dom´ınio a classe Measurement_Point.
• unit: especifica a unidade de uma m´etrica no sistema m´etrico. Este atributo ´e do tipo string e tem como dom´ınio a classe Metrics.
• unitConversion: ´e a convers˜ao entre as diferentes unidades de medida para a mesma quantidade, normalmente atrav´es de factores de convers˜ao multiplicativos. Este atri- buto ´e do tipo float e tem como dom´ınio a classe Metrics.
• utilization: representa a utilizac¸˜ao do CPU, refere-se ao uso de recursos de pro- cessamento, ou a quantidade de trabalho assegurado por um CPU. A utilizac¸˜ao de CPU efetiva varia dependendo da quantidade e do tipo de gest˜ao da computac¸˜ao. Al- gumas tarefas exigem bastante tempo de CPU, enquanto outras exigem menos. Este atributo ´e do tipo float e tem como dom´ınio a classe WorkLoad.
• value: representac¸˜ao do valor da m´etrica em quest˜ao. Este atributo ´e do tipo float e tem como dom´ınio a classe Metrics.
4.4. Descric¸˜ao da Ontologia
Figura 4.6: Atributo currentCpuLoad
4.4.4 Indiv´ıduos
Numa ontologia um indiv´ıduo ´e uma instanciac¸˜ao de uma classe, o que normalmente ´e denominamo por objecto. Um indiv´ıduo ´e caraterizado por um ou mais atributos e pode ter associado a si uma ou mais ”object properties”, que o relacionam com outros objectos.
A ontologia desenvolvida neste projecto cont´em 26 indiv´ıduos que ser˜ao apresentados detalhadamente em seguida.
• Accounting[1...3] : tem associado a si a propriedade de objecto hasmeasurementPoint e o atributo taskID. Este indiv´ıduo ´e do tipo Management_Task.
• Adaptative: Este indiv´ıduo ´e do tipo Selection_Scheme e Adaptative.