Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
twsg:dicas:implementando_spec [2008/09/25 12:03] 150.163.2.58 Item 4 |
twsg:dicas:implementando_spec [2008/09/25 13:53] (current) emerson |
||
---|---|---|---|
Line 27: | Line 27: | ||
* O diagrama de classes em UML vai ajudá-lo bastante na hora de implementar as classes em C++ | * O diagrama de classes em UML vai ajudá-lo bastante na hora de implementar as classes em C++ | ||
- | \\ FIXME por exemplos | + | \\ FIXME colocar exemplos |
===== 4. Implementar a Spec ===== | ===== 4. Implementar a Spec ===== | ||
Line 33: | Line 34: | ||
* A fase de implementação consiste em traduzir os diagramas UML para classes em C++ | * A fase de implementação consiste em traduzir os diagramas UML para classes em C++ | ||
* Copie a documentação da Spec (no texto ou no Schema) para a documentação da classe -> esses dados passam a fazer parte da implementação | * Copie a documentação da Spec (no texto ou no Schema) para a documentação da classe -> esses dados passam a fazer parte da implementação | ||
- | * Implemente as classes se preocupando sempre com os métodos ''writeToXML'' e ''readFromXML'', que são o núcleo da Spec | + | * Implemente as classes se preocupando sempre com os métodos ''writeToXML'' e ''readFromXML'', que são o núcleo da Spec -> usar as classes e funções disponíveis no pacote ''xml'' do TerraOGC |
- | * Se for implementar um formato, faça os métodos de conversão de/para conceitos TerraLib (Exemplo: TeKMLPolygon <-> TePolygon, TeGMLPolygon <-> TePolygon) | + | * Se for implementar um formato, faça os métodos de conversão de/para conceitos TerraLib (Exemplos: TeKMLPolygon <-> TePolygon, TeGMLPolygon <-> TePolygon) |
* Se for implementar um serviço, siga os passos seguintes: | * Se for implementar um serviço, siga os passos seguintes: | ||
==== 4.1 Classes comuns ==== | ==== 4.1 Classes comuns ==== | ||
+ | |||
+ | * É a implementação constante do item 4, ou seja, implementar as classes comuns do serviço | ||
+ | * ''writeToXML'' e ''readFromXML'' serão usados nas partes cliente e servidor | ||
==== 4.2 Classes servidor ==== | ==== 4.2 Classes servidor ==== | ||
+ | |||
+ | * É a implementação da interface do serviço como um servidor | ||
+ | * Esta parte é necessária pois podemos construir várias **comunicações** do servidor, como CGI, ou até SOAP | ||
+ | * É nesta fase que serão aplicados os conhecimentos da fase 2, que envolve fazer um mapeamento dos conceitos TerraLib para o serviço em questão | ||
+ | * É nessa parte que realmente entra a TerraLib | ||
==== 4.3 Servidor CGI ==== | ==== 4.3 Servidor CGI ==== | ||
- | ==== 4.4. Classes cliente ==== | + | * Uma implementação bastante simples do servidor |
+ | * É o único aplicativo em todo o processo, todos os demais são bibliotecas (SOs ou DLLs) | ||
+ | * Usar as funções CGI disponíveis no pacote ''common'' do TerraOGC | ||
+ | ==== 4.4. Classes cliente ==== | ||
+ | * Também é interessante montar uma classe, similar ao que ocorre no servidor, para o cliente | ||
+ | * Aqui são usadas algumas funções de conexão HTTP providas pela [[http://curl.haxx.se/libcurl/|libcURL]] | ||
+ | * Seria interessante criar um pacote com essas classes comuns aos clientes -> será definido (TBD). Por enquanto usar os exemplos disponíveis nos pacotes ''wmsclient'' e ''wfsclient'' | ||