Informações sobre o Modelo Arquitetural da Aplicacao, conhecido como MAS.

CONTEUDO

Tecnologias

TecnologiaVersaoUsada para
Java1.6Linguagem utilizada no desenvolvimento de plugins Atlassian
Groovy        2.0.2Utilizada para criar diferentes renders de conteúdo baseado nas features de builders oferecidas pela linguagem
Jersey        1.0.2Implementação da JSR-311, criação de serviços REST
JAX-B2.1Marshalling e unmarshalling de JSON e XML
Atlassian SDK4.1.4SDK que expôe a API dos produtos Atlassian
Wijmo         2.3.6Biblioteca JS de widgets

Ferramentas

TODO: Descrever quais ferramentas (IDE, servidor de aplicacao, banco de dados, sistema operacional, ferramenta CASE, etc) devem ser utilizados para desenvolver e testar a aplicacao. Uma tabela como a abaixo pode ajudar tambem:

Ferramenta

Versao

Utilizadores (perfil na equipe)

Usada para

EclipseJuno Release - Build id: 20120614-1722DesenvolvedoresIDE de desenvolvimento
    

Camadas da Aplicacao

 Interface do Usuario

Consulte o projeto grafico para um detalhamento dos componentes internos, estrutura, aparecia e comportamento dessa camanda.

Camada de Servicos

Todos os servicos do sistema estao implementados na forma de Enteprise Java Beans, padrao 3.1, que em suma:

Persistencia e Banco de Dados

O Sistema EMapping utiliza a modelagem Orientada a Objetos para suas entidades de negocio e dados. Os dados persistentes sao mapeados para banco de dados relacional utilizando o padrao JPA (JSR-317), com geracao automatizada das estruturas na base de dados atraves da implementacao Hibernate.

A responsabilidade das estruturas OO do sistema ficam a cargo do projetista do sistema, conforme necessidades de negocio elencadas pelo Product Owner e direcionamentos dos arquitetos.

O banco de dados padrao do sistema eh o Oracle, mas devido o uso de JPA, Postgres tambem deve ser suportado.

Todo e qualquer acesso a base de dados deve ser feito unica e exclusivamente atraves do objeto EntityManager que esta encapsulado nos EJBs do sistema. Excecoes a essa regra competem apenas ao arquiteto do sistema.

Abaixo, um exemplo de uso da camada de persistencia

@Stateless
public class ReferentialDomainService extends AbstractCoreService<AbstractNamedCoreModel> {
  public void persist(ReferentialField field) {
    ReferentialField fieldToPersist = field;
    if (isUsed(fieldToPersist)) {
      fieldToPersist = new ReferentialField(field);
    }
    super.persist(fieldToPersist); //persist eh um metodo implicito e disponivel para os EJBs de servico como este
  }
}

Servicos Externos

Os servicos externos que acessam o EMapping poderao fazer isso atraves do padrao REST, podendo realizar leitura e escrita de informacoes desde que autenticados e conforme o nivel de permissao atribuido.

Os servidos REST disponiveis no EMapping sao implementados unica e exclusivamenete pelos EJB de fachada.

O formato padrao de dados REST no EMapping eh, primeiro XML, e opcionalmente JSON.

Detalhes e exemplos sobre essa parte serao disponibilizados quando necessario.

Funcionamento

Os quatro vertices (Logico, Fisico, Processamento e Implantacao) da arquietetura sao dados pelo Diagrama 4+1 abaixo:

Logico

Fisico

Processamento

O Diagrama de Atividades mostra o ciclo completo de processamento de negocio de um acao de usuario no sistema:

{mockup:diagramaDeSequencia|5}

Onde:

Implantacao