quinta-feira, 18 de setembro de 2014

Expondo o CRUD de entidades do banco de dados usando WSO2 Data Services Server

As operações CRUD são a base para o desenvolvimento das atividades básicas de manipulação de dados em aplicações WEB

CreateINSERT
Read (Retrieve)SELECT
UpdateUPDATE
Delete (Destroy)DELETE

Abaixo vou descrever o passo a passo para a publicação do CRUD básico das entidades do banco de dados no barramento de dados do WSO2 Data Services Server.

1) Faça o download do WSO2 Data Services Server aqui;
2) Descompacte e execute o WSO2 Data Services Server;


3) Na página inicial clique em Configure e em seguida em Data Sources;


4) Clique em Add Data Source;


5) Preencha os dados de conexão do seu banco de dados, clique em Test Connection, se receber a mensagem de Sucesso clique em salvar.

6) Clique em Main ... Services .. Data Services ... Generate e informe selecione o nome do Data Source que criou e informe o nome do banco de dados que deseja acessar.



7) Selecione o Schema do banco de dados, normalmente é o DBO. 



8) Nesta página você deve selecionar qual ou quais tabelas deseja publicar as operações CRUD


9) Selecione se você quer publicar todas as tabelas em um único serviço ou criar um serviço para cada tabela, eu normalmente utilizo um único serviço para todas as tabelas, fica mais fácil para acessar e documentar. 



Seu serviço aparecerá publicado no tela abaixo. 



terça-feira, 16 de setembro de 2014

Consumindo um método do WSO2 Data Services Server com C# .NET


Segue abaixo um exemplo de código para consumir uma URL do WSO2 Data Services Server em um objeto XmlDocumento do C#





        private XmlDocument RestResult(string IdQuery)
        {
            //A linha abaixo deve ser utilizada se o seu servidor estiver rodando com HTTPS utilizando um certificado inválido expedido pelo próprio servidor.
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; });

            // Cria o Request da URL
            WebRequest request = WebRequest.Create("https://servidorWSO2DataServicesServer:porta/services/Serviço/Método" + IdQuery);

            // Se necessário passa as credenciais .
            request.Credentials = CredentialCache.DefaultCredentials;

            // Obtem o retorno do servidor.
            WebResponse response = request.GetResponse();

            Stream dataStream = response.GetResponseStream();
            // Abre o Stream para facilitar a leitura.
            StreamReader reader = new StreamReader(dataStream);
            // Carrega o conteúdo para um documento.
            XmlDocument responseFromServer = new XmlDocument();
            responseFromServer.LoadXml(reader.ReadToEnd());

            //Fecha os objetos de leitura de Stream
            reader.Close();
            response.Close();

            return responseFromServer;
        }



sábado, 13 de setembro de 2014

Implantando uma solução SOA baseada em WSO2

No projeto que estou envolvido para um órgão do governo federal identificamos a necessidade de expor as bases de dados e a camada de regras em barramentos de dados e serviços, para isso escolhemos a WSO2 como fornecedora de soluções.

Escolhemos 4 produtos da WSO2 para atender as nossas necessidades.
1) Identity Server;
2) Enterprise Service Bus;
3) Data Services Server
4) API Manager

A ideia do modelo é implementar segurança e flexibilidade no desenvolvimento de novas aplicações, dessa forma temos as 3 camadas fisicamente separadas e camadas de firewall entre cada uma delas o que aumentou significativamente a segurança das aplicações e dos dados.



sexta-feira, 12 de setembro de 2014

Configurando bancos RDBMS no WSO2

Conectar os produtos da WSO2 é uma atividade relativamente fácil.

Para minhas atividades escolhi o driver de banco de dados jTDS da Sourceforge
Driver Class Name:
net.sourceforge.jtds.jdbc.Driver

Exemplo de conection string:
jdbc:jtds:sqlserver://[endereço do host]:1433;databaseName=[nome do banco]

Abaixo um exemplo de como configurar os arquivos de XML do DataSource primário da maioria dos Produtos da WSO2.
O caminho do arquivo é [WSOHome]\repository\conf\datasources\master-datasources.xml


    <datasource>
          <name>WSO2_CARBON_DB</name>
          <description>The datasource used for registry and user manager</description>
          <jndiConfig>
              <name>jdbc/WSO2CarbonDB</name>
          </jndiConfig>
          <definition type="RDBMS">
              <configuration>
                  <url>jdbc:jtds:sqlserver://[endereço do host]:1433;databaseName=[nome do banco]</url>
                  <username>databseuser</username>
                  <password>P@ssw0rd</password>
                  <driverClassName>net.sourceforge.jtds.jdbc.Driver</driverClassName>
                  <maxActive>50</maxActive>
                  <maxWait>60000</maxWait>
                  <testOnBorrow>true</testOnBorrow>
                  <validationQuery>SELECT 1</validationQuery>
                  <validationInterval>30000</validationInterval>
              </configuration>
          </definition>
      </datasource>