projeto n.º 2 - faculdade de engenharia da universidade do portoei08142/files/tdin2.pdf · 2013....

21
Projeto n.º 2 Tecnologias de Distribuição e Integração André Dias (080509085) Tiago Cunha (080509142) 29 de Maio de 2012

Upload: others

Post on 25-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

Projeto n.º 2

Tecnologias de Distribuição e Integração

André Dias (080509085)

Tiago Cunha (080509142)

29 de Maio de 2012

Page 2: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

2

Índice

Introdução ..................................................................................................................................... 3

Arquitetura .................................................................................................................................... 4

Diagramas UML de dependências ............................................................................................. 5

Office ......................................................................................................................................... 6

ITDepartment ............................................................................................................................ 7

StockOffice ................................................................................................................................ 8

Decisões de Implementação ......................................................................................................... 9

Serviço ....................................................................................................................................... 9

Armazenamento da Informação ............................................................................................. 10

Tecnologias .............................................................................................................................. 10

Funcionalidades Implementadas ................................................................................................ 11

Office ....................................................................................................................................... 11

Stock Web App ........................................................................................................................ 11

ITDepartment .......................................................................................................................... 11

StockService ............................................................................................................................ 11

Demonstração ............................................................................................................................. 12

Office ....................................................................................................................................... 12

Stock Web App ........................................................................................................................ 14

ITDepartment .......................................................................................................................... 17

StockOffice .............................................................................................................................. 18

Conclusão .................................................................................................................................... 20

Referências .................................................................................................................................. 21

Page 3: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

3

Introdução

Este relatório refere-se ao 2º trabalho prático da Unidade Curricular de Tecnologias de

Distribuição e Integração do Mestrado Integrado de Engenharia Informática e Computação.

Os requisitos expostos para este trabalho são a criação de um sistema SOA (Service-

Oriented Architecture) para simulação de um sistema financeiro para armazenamento e

tratamento de pedidos de venda/compra de acções.

Foram também definidos quais os módulos indispensáveis para o projecto,

nomeadamente:

1. O Servidor encarregue de suportar os serviços, acessiveis pelos outros módulo;

2. O cliente de balcão que acederia os serviços para armazenar e manipular os pedidos a

pedido dos clientes;

3. A página web para acesso pessoal de cada cliente, cujas funções seriam similares à do

cliente de balcão;

4. O cliente do serviço bolsista para processar os pedidos armazenados pelos outros

clientes.

Assim sendo, os objetivos deste projeto são a criação dos módulos especificados

anteriormente, juntamente com outras funcionalidades como envio de email para o cliente

assim que um pedido foi processado e o estabelecimento de uma fila de mensagens entre o

servidor e o cliente do serviço bolsista para garantir que todos os pedidos são processados

pela ordem em que o servidor os transmite, independentemente de o cliente bolsista estar

ligado ou não.

Page 4: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

4

Arquitetura

A arquitetura do projecto foi, como já explicitado, definida pelo enunciado do trabalho

e os seus componentes podem ser vistos esquematicamente na figura abaixo.

Fazendo agora a tradução do modelo acima para o nosso projeto, vericamos que:

1. O cliente de balcão é o equivalente ao Office;

2. O departamento de Informática denomina-se ITDepartment;

3. A Web App refere-se à OrderWebApp;

4. O cliente de serviços bolsista equivale ao StockService.

Page 5: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

5

Diagramas UML de dependências

Page 6: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

6

Office

Page 7: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

7

ITDepartment

Page 8: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

8

StockOffice

Page 9: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

9

Decisões de Implementação

Serviço Foi criado um serviço denominado Stock Service com os seguintes métodos e estrutura

de dados por forma a respeitar a informação necessária para o correto funcionamento do

sistema.

Este serviço é criado no ITDepartment e acessivel por todos os clientes por métodos

especificos dependendo do cliente.

[ServiceContract] public interface IOrder {

[OperationContract] OrderData getOrder(int value); [OperationContract] void newOrder(OrderData od); [OperationContract] Boolean editOrder(OrderData od, string email, string name, string pass); [OperationContract] string getOrderClient(string name); [OperationContract] string getOrderWaiting(); } [DataContract] public class OrderData { enum shareType { Ordinary, Preference, CumulativePreference, Redeemable } enum stateType { Waiting, Ready } [DataMember] public int id; [DataMember] public string clientName; [DataMember] public double value; [DataMember] public string clientEmail; [DataMember] public Boolean buy; // buy = true; sell = false [DataMember] public int quantity; [DataMember] public int type; [DataMember] public DateTime date; [DataMember] public double rate; [DataMember] public int state; }

Page 10: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

10

Armazenamento da Informação O armazenamento de informação é realizado num ficheiro sob a forma de XML (Extensible Markup Language), que representa um conjunto de ordens, cada uma delas definidas por todos os campos registados na OrderData do serviço OrderService. Apresenta-se de seguida um exemplo deste ficheiro de dados, cujo nome é “orders.xml”. <Orders>

<Order> <ID>0</ID>

<ClientName>Tiago Cunha</ClientName> <ClientEmail>[email protected]</ClientEmail> <Value>58</Value> <Buy_Sell>sell</Buy_Sell> <Quantity>10</Quantity> <Type>1</Type> <Date>27-05-2012 15:19:09</Date> <Rate>12</Rate> <State>0</State> </Order> <Order> <ID>1</ID> <ClientName>Tiago Cunha</ClientName> <ClientEmail>[email protected]</ClientEmail> <Value>2</Value> <Buy_Sell>buy</Buy_Sell> <Quantity>5</Quantity> <Type>3</Type> <Date>27-05-2012 15:19:09</Date> <Rate>59</Rate> <State>0</State> </Order> </Orders>

Tecnologias

Todo o projeto foi desenvolvido recorrendo a serviços WCF (Windows Communication

Foundation) e a página web usou a tecnologia ASP.NET.

Page 11: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

11

Funcionalidades Implementadas

Office 1. Ligação ao OrderService com acesso aos métodos getOrder, NewOrder, editOrder,

getOrderClient, getOrderWaiting;

2. Interface gráfica.

Stock Web App 1. Ligação ao OrderService com acesso aos métodos getOrder, NewOrder, editOrder,

getOrderClient, getOrderWaiting;

2. Página Web em ASP.NET.

ITDepartment 1. Criação e manutenção de OrderService;

2. Envio de correio eletrónico quando ordem é processada;

3. Utilização de uma message queue para envio de ordens para o StockService quando

este está desligado.

StockService 1. Ligação ao OrderService com acesso ao método editOrder;

2. Alteração do estado de uma ordem de Waiting para Ready;

3. Utilização de uma message queue para receção de ordens.

Page 12: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

12

Demonstração

Office

Page 13: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

13

Page 14: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

14

Stock Web App

Page 15: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

15

Page 16: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

16

Page 17: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

17

ITDepartment

Page 18: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

18

StockOffice

Page 19: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

19

Page 20: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

20

Conclusão

Após a realização deste projeto, podemos dizer que conseguimos implementar um

sistema de serviços funcional em .NET, tirando partido das suas principais funcionalidades e

aprendendo qual a melhor forma de os utilizar. Para além disso, a utilização de filas de

mensagens que se revelam bastante úteis para envio de informação de forma assíncrona.

Avaliando, agora, o projeto desenvolvido, concluímos que todas as funcionalidades

requeridas no enunciado foram implementadas, bem como a inclusão de medidas extra que

considerámos necessárias e que enriqueceram o projeto, definidas anteriormente neste

relatório.

Page 21: Projeto n.º 2 - Faculdade de Engenharia da Universidade do Portoei08142/files/TDIN2.pdf · 2013. 3. 10. · 2. Envio de correio eletrónico quando ordem é processada; 3. Utilização

21

Referências

Tecnologias de Distribuição e Integração 2010/11: http://paginas.fe.up.pt/~apm/TDIN/

C# Reference: http://msdn.microsoft.com/en-us/library/618ayhy6.aspx

ASP.NET Reference: http://msdn.microsoft.com/en-us/library/9k6k3k4a.aspx

Microsoft ASP.net: http://www.asp.net/

Sending e-mail using SmtpClient and Gmail:

http://blogs.msdn.com/b/mariya/archive/2006/06/15/633007.aspx

Sending and receiving message in MSMQ using C#:

http://www.dotnetfunda.com/articles/article1119-sending-and-receiving-message-in-

msmq-using-csharp.aspx

XML Documentation Comments (C# Programming Guide):

http://msdn.microsoft.com/en-us/library/b2s063f7.aspx

DateTime Structure: http://msdn.microsoft.com/en-us/library/system.datetime.aspx