Powered By Blogger

sábado, 21 de novembro de 2009

REFERÊNCIAS BIBLIOGRAFICA


>> WIKIPEDIA. Enciclopedia Livre.
Disponivel em: http://pt.wikipedia.org
Acessado em Set/09 a Nov/09

>> Ribeiro, Fábio, etal. Administração Integrada. São Paulo: LCTE Editora. 2006, Cap10 autora prof.RosimeireAyres.

>> O´Brien, James A. Sistemas de Informação e as decisões gerenciais na era da Internet. 2ª.ed. São Paulo:
Saraiva, 2004.

>> CAMARANO, L. CRM – Gestão do relacionamento com o cliente: uma abordagem
prática. Monografia (Bacharelado em Ciência da Computação) – Universidade Federal de
Lavras, Lavras, Minas Gerais. 2002.

>> PERES, D, F. CRM no setor bancário em uma agência do Banco do Brasil na cidade de
Londrina. Dissertação (Mestrado em Engenharia de Produção) – Universidade Federal de
Santa Catarina, Florianópolis, Santa Catarina. 2003.

>> CIM Tutorial > Introduction
Disponível em <11 - www.wbemsolutions.com/tutorials/CIM/cimtutorial.pdf>. Acesso em
03. set. 2009


>> Capítulo 2 - Fundamentos Teóricos 2.1- Manufatura Integrada Por Computador - Cim
Disponível em . Acesso em 04 set. 2009. 

sexta-feira, 20 de novembro de 2009

Sistema de informação de gestão



Sistema de Informação de Gestão ou Sistema de Informações Gerenciais (SIG) (do inglês, Management Information System – MIS) é um sistema de informação, tipicamente baseado em computadores, utilizado no seio de uma organização. A WordNet descreve um sistema de informação como "um sistema que consiste na rede de canais de comunicação numa organização".
Um sistema de informação é composto por todos os componentes que recolhem, manipulam e disseminam dados ou informação. Incluem-se tipicamente hardware, software, pessoas, sistemas de comunicação como linhas telefónicas, e os dados propriamente ditos. As actividades envolvidas incluem a introdução de dados, processamento dos dados em informação, armazenamento de ambos, e a produção de resultados, como relatórios de gestão.
Como área de estudo é tipicamente referida como administração ou gestão de tecnologias de informação. O estudo de sistemas de informação é vulgarmente uma disciplina de administração e gestão comercial, e envolve frequentemente desenvolvimento de software, mas também se distingue concentrando-se na integração de sistemas computadorizados mediante os objectivos da organização. Esta área de estudo não deve, no entanto, ser confundida com Ciência da Computação, sendo esta mais teórica e matemática por natureza, ou com Engenharia dos computadores.

Papel de suporte funcional
A função de suporte aos processos e operações de negócio é a mais básica: envolve recolhimento, registo, armazenamento e pré-processamento de dados. Os sistemas de informação ajudam os processos e operações, tornando-os mais ágeis, baratos, padronizados e rastreáveis:
* registrando e armazenando dados das vendas, compras, investimentos, salários e outra contabilidade;
* processando os registros de contabilidade em previsões de lucro, balanço, relatórios de gestão, e outras formas de informação financeira;
* registrando e armazenando dados do inventário, trabalho em curso, reparação e manutenção de equipamento, cadeia de fornecimento, e outros registros de produção/operação;
* processando estes registros de operações em agendas de produção, controladores, sistemas de inventário, e sistemas de monitorização da produção;
* registrando e armazenando dados sobre o pessoal, salários, histórico de contratações, e outros registros de recursos humanos;
* processando estes registos em relatórios de despesas com pessoal, e relatórios baseados em desempenho;
* registrando e armazenando dados de mercado, perfis de cliente, histórico de compras por cliente, estudos de mercado, publicidade, e outros registos de marketing;
* processando estes registros de marketing em relatórios de elasticidade publicitária, planos de marketing, e relatórios de vendas;
* registrando e armazenando dados de análise dos competidores, industriais, objectivos empresariais, e outros registros de gestão estratégica;
* processando estes registros de gestão estratégica em relatórios de trocas industriais, quotas de mercado, planejamento de objetivos, e modelos de portfolio;
* usando os pontos supracitados para implementar, controlar e monitorizar planos, estratégias, tácticas, novos produtos, novos modelos de negócio, ou novos investimentos.
Previamente a um investimento em tecnologia de informação, torna-se necessário alinhar quais as informações que serão necesárias. Essas informações deverão estar alinhadas com os objetivos da organização, e só assim elas podem agregar valor para os tomadores de decisão.

Papel de suporte à decisão
A função de suporte à elaboração de decisões de negócio vai um passo mais à frente. É parte integrante na tomada de decisões. Permite aos utilizadores formular questões "E se..?": E se aumentarmos o preço em 5%? ; E se aumentarmos o preço em 10%? ; E se reduzirmos o preço em 5%? ; E se aumentarmos o preço em 10% agora, e reduzi-lo em 5% em três meses? Também permite aos utilizadores ligar com contingências: E se a inflação aumenta em 5% (em vez dos 2% previstos), o que fazer? Que fazer se formos confrontados com a greve ou uma nova ameaça da concorrência?
A ferramenta de elaboração de decisões mais básica e versátil é a folha de cálculo, mas estas são, por norma, muito pouco amigáveis em termos de interface. Programas mais sofisticados costumam incorporar ferramentas de tomadas de decisão estatísticas como análise de sensibilidade, análise Monte Carlo, análise de risco, análise de quebra e análise de Bayes. Se, por exemplo, se encontra a utilizar um sistema de informação para decidir sobre a introdução de um novo produto, o programa deve incorporar ferramentas como análise logit, Análise B.C.G., análise conjunta, análise de margem de contribuição, escalonamento multi-dimensional, Análise Multi-Factoral G.E., análise de factor, análise de cluster, análise discriminativa, Quality Function Deployment, regressão preferencial, e tradução preferência-grau.

Contabilidade X Sistema de Informação Contábil






A Contabilidade, compreendida como um “banco de dados” que contempla informações sobre todos os eventos econômicos e empresariais, mensurados por medidas físicas e monetárias, o qual não se limita apenas à geração de informações sobre eventos realizados, mas também sobre acontecimentos planejados, apresenta-se na sua mais moderna expressão como um dos mais precioso sistema de informação, possibilitando o entendimento de ambos – Contabilidade e sistema de informação – de modo similar. 

Isto se deve, principalmente, ao fato da Contabilidade mostrar-se, desde as suas primeiras manifestações, de uma forma metódica e sistemática, com objetivos bem definidos e uma visão de conjunto.

 PADOVEZE (2000, p. 47) afirma que:



 a ciência contábil traduz-se naturalmente dentro de um sistema de informação. Poderá ser argüido que fazer um sistema de informação contábil com a ciência da Contabilidade é um vício de linguagem, já que a própria Contabilidade nasceu sob a arquitetura de sistema informacional.




 Diante destas considerações, torna-se válido afirmar que a Contabilidade desempenha o papel de um eficiente sistema de informação, dentro do sistema maior (Sistema Empresa), e que tem por objetivo atender seus usuários com demonstrações financeiras, econômicas e de produtividade com relação ao objeto da contabilização, devendo necessariamente observar àquilo que este usuário considera como elementos importantes para o seu processo decisório.



 De acordo com o Professor IUDÍCIBUS (2000, p. 28):



 o objetivo principal da Contabilidade (e dos relatórios dela emanados) é fornecer informação econômica relevante para que cada usuário possa tomar suas decisões e realizar seus julgamentos com segurança.



 Assim sendo, a Contabilidade tem por fim munir todos os usuários de sua informação, quer sejam eles internos e/ou externos, com as diretrizes e demais respostas necessárias à condução da entidade, no sentido de alcançar o fim a que a mesma se propõe, através da adequada mensuração dos eventos cabíveis que venham impactar seu patrimônio.

 Aos usuários externos (acionistas, clientes, fornecedores, credores, Estado, sindicatos e etc.), interessam as informações que são fornecidas pela Contabilidade Financeira, expressas em relatórios denominados de demonstrações contábeis.



 No Brasil, tem-se o Balanço Patrimonial, a Demonstração do Resultado do Exercício, a Demonstração de Lucros ou Prejuízos Acumulados, a Demonstração das Origens e Aplicação de Recursos, a Demonstração das Mutações do Patrimônio Líquido, além de outros relatórios que fornecem dados subsidiários.

 Aos usuários internos (diretores, gerentes, associados, trabalhadores e etc.), interessam as chamadas informações gerenciais, as quais fazem parte da Contabilidade Gerencial e que se destinam à tomada de decisões especiais, como o orçamento de capital, a maximização de lucro na combinação de produtos, ampliação do investimento, entre outras.





CIM


CIM é um termo que refere-se a total integração de desenho e projeto de produtos, planejamento de processos e fabricação através de métodos de sistemas de computadores complexos. Sistemas computadorizados menos sofisticados para planejamento de produção, controle de estoque e cronograma são freqüentemente considerados parte da CIM.
Com o uso deste poderoso sistema para integrar todas as partes da produção, desde o pedido do cliente até o despacho das mercadorias, empresas visam aumentar sua produtividade, qualidade, satisfazendo rapidamente as necessidades dos clientes e oferecendo maior flexibilidade.


VANTAGEM

De acordo com o U.S. National Research Council, o CIM aumentou a produtividade de 40 a 70 %, assim como a produtividade da engenharia de qualidade. O CIM também diminuiu os custos de design entre 15 a 30 %, reduziu o lead time de 20 a 60 % e cortou o estoque de processo de 30 a 60 %. Gerentes que usam o CIM acreditam que há uma relação direta entre a eficiência da gestão da informação com a eficiência da companhia como um todo. Muitos focos de programas CIM dão atenção à eficiência e os problemas da gestão da informação ao invés de desenvolver novas máquinas, novos processos de transformação de materiais e instalações. (Thacker).

Automação de Força de Vendas





O aplicativo de Automação de Força de Vendas foi idealizado como uma ferramenta de produtividade para o processo de vendas das empresas. A maximização do tempo disponível para que os Vendedores percorram suas rotas de visita, constitui o foco principal do produto.




Sob esse ponto de vista, o aplicativo de Automação de Força de Vendas é executado em equipamento autônomo, independente de conexões com a matriz ou filial, sendo as transferências de dados realizadas periodicamente através de mecanismos disponibilizados pela Internet.




Com uma mini base de dados local, que é uma réplica dos bancos de dados utilizados na base central, o Vendedor ou Representante é capaz de consultar informações importantes para a realização dos seus trabalhos, tais como: posição de pedidos enviados à base de dados central, rotas de visitas, quotas de vendas, tabelas de preços de produtos, sugestão de pedidos, pesquisas de mercado, despesas com quilometragem e clientes.


SCM



SCM - Supply Chain Management


Bem, suponha-se que o pedido colocado naquela mesma empresa que acabou de implantar um software de gestão empresarial seja de um mercado que necessita repor seu estoque de refrigerantes para o fim de semana, e já seja quinta-feira. Digamos ainda que a empresa em questão seja uma produtora e engarrafadora de bebidas. De que irá adiantar todo um complexo sistema que garanta a disponibilidade do produto no tempo certo se o cliente não puder contar com os refrigerantes no mercado na sexta a tarde? Do pedido à entrega do produto ao local de venda ou distribuição, existe uma via crucis capaz de derrubar empresas. Ou colocá-las no topo para aquelas que conseguirem vencer o desafio da logística de materiais: dispor dos produtos no tempo certo, no local exato e na quantidade esperada, e tudo isto ao menor custo possível de operação. Esta logística começa muito antes do pedido, já na entrega da matéria-prima do fornecedor ao fabricante, passando depois por eventuais atacadistas, transportadores, varejistas e finalmente do estoque do mercado para a casa do cliente. É por isto que, depois da arrumar a própria casa, as empresas estão se preocupando também em arrumar a casa dos outros, buscando para tanto soluções adequadas ao gerenciamento de sua cadeia logística, ou como é conhecido no mercado, atacar a questão do SCM (Supply Chain Management).
Não é a toa que grandes empresas que engarrafam bebidas, por exemplo, estão investindo milhões na aquisição de softwares capazes de gerenciar e controlar as rotas de seus caminhões de distribuição. Estes sistemas chegam à sofisticação de considerarem em sua programação dados históricos de horários de pico e vias de tráfego normalmente congestionadas, para determinarem a rota de menor custo e maior eficiência. Assim, programa-se um horário mais adequado para um caminhão passar em uma avenida que geralmente fica muito congestionada às 10:00 horas da manhã. O caminhão poderá passar por ali um pouco mais a tarde, e em uma seqüência de entrega em que não seja necessário passar pela avenida mais do que uma vez, atendendo no entanto todos os pontos de vendas solicitantes. E todo o processo será feito de forma dinâmica, de modo que cada dia será possivelmente diferente do outro.

EAI


EAI é uma solução de integração por onde sistemas e aplicações de diferentes fornecedores e tecnologias possam trocar informações em tempo real utilizando uma plataforma central de comunicação, possibilitando um fácil monitoramento, escalabilidade, baixo custo de manutenção e evitando incompatibilidade na comunicação entre os mesmos, além de garantir total desacoplamento entre os pacotes, facilitando futuras migrações e upgrades de versão.
Uma solução de EAI possibilita uma gestão centralizada sobre as informações que estão distribuídas em diversos sistemas. O planejamento e a estruturação de uma solução de integração (EAI) fazem com que as corporações tenham uma vantagem competitiva criando um ambiente empresarial único, centralizado e integrado, independente de pacotes, sistemas ou tecnologias.
VANTAGENS
• Aumento do fluxo de informação entre os sistemas
• Direcionamento do foco das aplicações, evitando réplica de informações em diferentes sistemas.
• Redução de custo na manutenção das integrações
• Redução no prazo de desenvolvimento de novas integrações
• Garantia de entrega de informações aos sistemas destinos, mesmo que o sistema não esteja “no ar” no momento
• Alta disponibilidade e escalabilidade do ambiente integrado
• Informações sincronizadas entre os sistemas integrados em tempo real
• Maior visibilidade do fluxo de informação possibilitando correções mais rápidas e precisas
• Facilitadores e Aceleradores para transformação e mapeamento de informação (dados) entre diferentes padrões
• Maior facilidade de integração através de conectividade tecnológica já existente através de adapters
• Capacidade de evolução para conceitos relacionados à automatização de gestão como BPM e BAM.
Através de uma ótica operacional, as soluções de integração têm viabilizado os mecanismos de gestão empresarial imaginados até o momento. Para conhecer novos mecanismos de gestão baseados em processos e seus benefícios, e em alternativas de automatização dos processos integrando a sua infra-estrutura tecnológica, recomendamos a análise dos produtos: Clari Gestão de Negócios e BPM.

ERP






ERP (Enterprise Resource Planning) ou SIGE (Sistemas Integrados de Gestão Empresarial, no Brasil) são sistemas de informação que integram todos os dados e processos de uma organização em um único sistema (Laudon, Padoveze]). A integração pode ser vista sob a perspectiva funcional (sistemas de: finanças, contabilidade, recursos humanos, fabricação, marketing, vendas, compras, etc) e sob a perspectiva sistêmica (sistema de processamento de transações, sistemas de informações gerenciais, sistemas de apoio a decisão, etc).
Os ERPs em termos gerais, são uma plataforma de software desenvolvida para integrar os diversos departamentos de uma empresa, possibilitando a automação e armazenamento de todas as informações de negócios.
Vantagens
Eliminar o uso de interfaces manuais. Reduzir custos. Otimizar o fluxo da informação e a qualidade da mesma dentro da organização (eficiência). Otimizar o processo de tomada de decisão. Eliminar a redundância de atividades. Reduzir os limites de tempo de resposta ao mercado. Reduzir as incertezas do lead-time.
Desvantagens
A utilização do ERP por si só não torna uma empresa verdadeiramente integrada; Altos custos que muitas vezes não comprovam a relação custo/benefício; Dependência do fornecedor do pacote; Adoção de melhores práticas aumenta o grau de imitação e padronização entre as empresas de um segmento;  Torna os módulos dependentes uns dos outros, pois cada departamento depende das informações do módulo anterior, por exemplo. Logo, as informações têm que ser constantemente atualizadas, uma vez que as informações são em tempo real, ocasionando maior trabalho;


Banco de dados


Bancos de dados (ou bases de dados), são conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim.
Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. Muitas vezes o termo banco de dados é usado como sinônimo de SGDB.
Utilização
Os bancos de dados são utilizados em muitas aplicações, abrangendo praticamente todo o campo dos programas de computador. Os bancos de dados são o método de armazenamento preferencial parabaseiam-se em tecnologias padronizadas de bancos de dados.
Um banco de dados é um conjunto de informações com uma estrutura regular. Um banco de dados é normalmente, mas não necessariamente, armazenado em algum formato de máquina legível para um computador. Há uma grande variedade de bancos de dados, desde simples tabelas armazenadas em um único arquivo até gigantescos bancos de dados com muitos milhões de registros, armazenados em salas cheias de discos rígidos.
Bancos de dados caracteristicamente modernos são desenvolvidos desde os anos da década de 1960. Um pioneiro nesse trabalho foi Charles Bachman.

Apresentação dos dados
A apresentação dos dados geralmente é semelhante à de uma planilha eletrônica, porém os sistemas de gestão de banco de dados possuem características especiais para o armazenamento, classificação, gestão da integridade e recuperação dos dados. Com a evolução de padrões de conectividade entre as tabelas de um banco de dados e programas desenvolvidos em linguagens como Java, Delphi, Visual Basic, C++, etc, a apresentação dos dados, bem como a navegação, passou a ser definida pelo programador ou o designer de aplicações. Como hoje em dia a maioria das linguagens de programação fazem ligações a bancos de dados, a apresentação destes tem ficado cada vez mais a critério dos meios de programação, fazendo com que os bancos de dados deixem de restringir-se às pesquisas básicas, dando lugar ao compartilhamento, em tempo real, de informações, mecanismos de busca inteligentes e permissividade de acesso hierarquizada.

Direitos de propriedade
A Diretiva CE de Bases de Dados (EU Database Directive), estabelecida pelo Parlamento Europeu em de 11 de março de 1996, fixa os termos de proteção jurídica a bancos de dados, em particular os direitos de propriedade sobre a base.
Mesmo para os países que não a adotam explicitamente, ou não possuam normas mais específicas sobre o tema, como o Brasil, tem sido a principal referência.

Modelos de base de dados
O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc. Este modelo plano é a base das planilhas eletrônicas.
O modelo em rede permite que várias tabelas sejam usadas simultaneamente através do uso de apontadores (ou referências). Algumas colunas contêm apontadores para outras tabelas ao invés de dados. Assim, as tabelas são ligadas por referências, o que pode ser visto como uma rede. Uma variação particular deste modelo em rede, o modelo hierárquico, limita as relações a uma estrutura semelhante a uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por grafos.
Bases de dados relacionais consistem, principalmente de três componentes: uma coleção de estruturas de dados, nomeadamente relações, ou informalmente tabelas; uma coleção dos operadores, a álgebra e o cálculo relacionais; e uma coleção de restrições da integridade, definindo o conjunto consistente de estados de base de dados e de alterações de estados. As restrições de integridade podem ser de quatro tipos: domínio (também conhecidas como type), atributo, relvar (variável relacional) e restrições de base de dados.
Diferentemente dos modelos hierárquico e de rede, não existem quaisquer apontadores, de acordo com o Princípio de Informação: toda informação tem de ser representada como dados; qualquer tipo de atributo representa relações entre conjuntos de dados. As bases de dados relacionais permitem aos utilizadores (incluindo programadores) escreverem consultas (queries) que não foram antecipadas por quem projetou a base de dados. Como resultado, bases de dados relacionais podem ser utilizadas por várias aplicações em formas que os projetistas originais não previram, o que é especialmente importante em bases de dados que podem ser utilizadas durante décadas. Isto tem tornado as bases de dados relacionais muito populares no meio empresarial.
O modelo relacional é uma teoria matemática desenvolvida por Edgard Frank Codd, matemático e pesquisador da IBM, para descrever como as bases de dados devem funcionar. Embora esta teoria seja a base para o software de bases de dados relacionais, muito poucos sistemas de gestão de bases de dados seguem o modelo de forma restrita ou a pé da letra - lembre-se das 13 leis do modelo relacional - e todos têm funcionalidades que violam a teoria, desta forma variando a complexidade e o poder. A discussão se esses bancos de dados merecem ser chamados de relacional ficou esgotada com o tempo, com a evolução dos bancos existentes. Os bancos de dados hoje implementam o modelo definido como objeto-relacional.

Aplicações de bancos de dados
Sistemas Gerenciadores de Bancos de dados são usados em muitas aplicações, enquanto atravessando virtualmente a gama inteira de software de computador. Os Sistemas Gerenciadores de Bancos de dados são o método preferido de armazenamento/recuperação de dados/informações para aplicações multi-usuárias grandes onde a coordenação entre muitos usuários é necessária. Até mesmo usuários individuais os acham conveniente, entretanto, muitos programas de correio eletrônico e organizadores pessoais estão baseados em tecnologia de banco de dados standard.

Aplicativo de Banco de Dados
Um Aplicativo de Banco de dados é um tipo de software exclusivo para gerenciar um banco de dados. Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e objectivos, de pequenas ferramentas como uma agenda, até complexos sistemas empresariais para desempenhar tarefas como a contabilidade.
O termo "Aplicativo de Banco de dados" usualmente se refere a softwares que oferecem uma interface para o banco de dados. O software que gerencia os dados é geralmente chamado de sistema gerenciador de banco de dados (SGBD) ou (se for embarcado) de "database engine".
Exemplos de aplicativos de banco de dados são Microsoft Visual FoxPro, Microsoft Access, dBASE, FileMaker , (em certa medida) HyperCard, MySQL, PostgreSQL, Firebird, Microsoft SQL Server, Oracle, Informix, DB2, Caché e Sybase.

Em Março, 2004, AMR Research (como citado em um artigo da CNET News.com listado na secção de "Referências") previu que aplicações de banco de dados de código aberto seriam amplamente aceitas em 2006.
Transação
É um conjunto de procedimentos que é executado num banco de dados, que para o usuário é visto como uma única ação. A integridade de uma transação depende de 4 propriedades, conhecidas como ACID.

* Atomicidade
o Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Qualquer ação que constitui falha na unidade de trabalho e a transação deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada (commit).
* Consistência
o Nenhuma operação do banco de dados de uma transação pode ser parcial.O status de uma transação deve ser implementado na íntegra. Por exemplo, um pagamento de conta não pode ser efetivado se o processo que debita o valor da conta corrente do usuário não for efetivado antes, nem vice-versa.
* Isolamento
o Cada transação funciona completamente à parte de outras estações. Todas as operações são parte de uma transação única. O principio é que nenhuma outra transação, operando no mesmo sistema, pode interferir no funcionamento da transação corrente( é um mecanismo de controle). Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento.
* Durabilidade
Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subseqüente.Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados num repositório permanente, não sendo passíveis de falha por uma falha de hardware.
Na prática, alguns SGBDs relaxam na implementação destas propriedades buscando desempenho.
Controle de concorrência é um método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações abortadas (rollback). Uma transação é uma unidade que preserva consistência. Requeremos, portanto, que qualquer escalonamento produzido ao se processar um conjunto de transações concorrentemente seja computacionalmente equivalente a um escalonamento produzindo executando essas transações serialmente em alguma ordem. Diz-se que um sistema que garante esta propriedade assegura a seriabilidade.

Linguagem de Programação



Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.
O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.
Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.
Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada.

 Interpretação e compilação
Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretação, que juntas podem ser chamadas de tradução.
Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar (ou rodar, como se diz no jargão da computação) o programa, então diz-se que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa). A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C.
Se o texto do programa é traduzido à medida que vai sendo executado, como em Javascript, Python ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente.
Embora haja essa distinção entre linguagens interpretadas e compiladas, as coisas nem sempre são tão simples. Há linguagens compiladas para um código de máquina de uma máquina virtual (sendo esta máquina virtual apenas mais um software, que emula a máquina virtual sendo executado em uma máquina real), como o Java e o Parrot. E também há outras formas de interpretar em que os códigos-fontes, ao invés de serem interpretados linha-a-linha, têm blocos "compilados" para a memória, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos módulos são chamados várias vezes, técnica esta conhecida como JIT.
Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o código java para o código intermediário (e portável) da JVM. As JVMs originais interpretavam esse código, de acordo com o código de máquina do computador hospedeiro, porém atualmente elas compilam, segundo a técnica JIT o código JVM para código hospedeiro.
A tradução é tipicamente feita em várias fases, sendo as mais comuns a Análise léxica, a Análise sintática ou Parsing, a Geração de código e a Otimização. Em compiladores também é comum a Geração de código intermediário.







Modelo OSI



ISO foi uma das primeiras organizações a definir formalmente uma forma comum de conectar computadores. Sua arquitetura é chamada OSI (Open Systems Interconnection), Camadas OSI ou Interconexão de Sistemas Abertos.
Esta arquitetura é um modelo que divide as redes de computadores em sete camadas, de forma a se obter camadas de abstração. Cada protocolo implementa uma funcionalidade assinalada a uma determinada camada.
A ISO costuma trabalhar em conjunto com outra organização, a ITU (International Telecommunications Union), publicando uma série de especificações de protocolos baseados na arquitetura OSI. Estas séries são conhecidas como 'X ponto', por causa do nome dos protocolos: X.25, X.500, etc.

CAMADAS:
1 - Camada Física

A camada física define as características técnicas dos dispositivos elétricos (físicos) do sistema. Ela contém os equipamentos de cabeamento ou outros canais de comunicação (ver modulação) que se comunicam diretamente com o controlador da interface de rede. Preocupa-se, portanto, em permitir uma comunicação bastante simples e confiável, na maioria dos casos com controle de erros básico:
* Move bits (ou bytes, conforme a unidade de transmissão) através de um meio de transmissão.
* Define as características elétricas e mecânicas do meio, taxa de transferência dos bits, tensões etc.
* Controle de acesso ao meio.
* Controle da quantidade e velocidade de transmissão de informações na rede.
Não é função do nível físico tratar problemas como erros de transmissão, esses são tratados pelas outras camadas do modelo OSI.
2 - Camada de Enlace ou Ligação de Dados

Crystal Clear app xmag.pngVer artigo principal: Camada de ligação de dados

A camada de ligação de dados também é conhecida como camada de enlace ou link de dados. Esta camada detecta e, opcionalmente, corrige erros que possam acontecer no nível físico. É responsável pela transmissão e recepção (delimitação) de quadros e pelo controle de fluxo. Ela também estabelece um protocolo de comunicação entre sistemas diretamente conectados.
Exemplo de protocolos nesta camada: PPP, LAPB (do X.25),NetBios.

Na Rede Ethernet cada placa de rede possui um endereço físico, que deve ser único na rede.
Em redes do padrão IEEE 802, e outras não IEEE 802 como a FDDI, esta camada é dividida em outras duas camadas: Controle de ligação lógica (LLC), que fornece uma interface para camada superior (rede), e controle de acesso ao meio físico (MAC), que acessa diretamente o meio físico e controla a transmissão de dados.
Topologia de Redes
Crystal Clear app xmag.pngVer artigo principal: Topologia (informática)
* Ponto-a-ponto
* Anel - Token Ring
* Estrela
* Barramento
* Árvore
Controle de acesso

* Centralizado: Uma máquina é responsável por controlar o acesso ao meio. Ex: estrela, antena de celular.
* Distribuído: Todas as máquinas fazem o controle de acesso. Ex: Anel, ethernet (Barramento).

3 - Camada de Rede
Crystal Clear app xmag.pngVer artigo principal: Camada de rede
A camada de Rede é responsável pelo endereçamento dos pacotes, convertendo endereços lógicos (ou IP) em endereços físicos , de forma que os pacotes consigam chegar corretamente ao destino. Essa camada também determina a rota que os pacotes irão seguir para atingir o destino, baseada em fatores como condições de tráfego da rede e prioridades.
Essa camada é usada quando a rede possui mais de um segmento e, com isso, há mais de um caminho para um pacote de dados percorrer da origem ao destino.
Funções da Camada:
Encaminhamento, endereçamento, interconexão de redes, tratamento de erros, fragmentação de pacotes, controle de congestionamento e sequenciamento de pacotes.
* Movimenta pacotes a partir de sua fonte original até seu destino através de um ou mais enlaces.
* Define como dispositivos de rede descobrem uns aos outros e como os pacotes são roteados até seu destino final.

4 - Camada de Transporte
A camada de transporte é responsável por usar os dados enviados pela camada de Sessão e dividi-los em pacotes que serão transmitidos para a camada de Rede. No receptor, a camada de Transporte é responsável por pegar os pacotes recebidos da camada de Rede, remontar o dado original e assim enviá-lo à camada de Sessão.
Isso inclui controle de fluxo, ordenação dos pacotes e a correção de erros, tipicamente enviando para o transmissor uma informação de recebimento, informando que o pacote foi recebido com sucesso.
A camada de Transporte separa as camadas de nível de aplicação (camadas 5 a 7) das camadas de nível físico (camadas de 1 a 3). A camada 4, Transporte, faz a ligação entre esses dois grupos e determina a classe de serviço necessária como orientada a conexão e com controle de erro e serviço de confirmação, sem conexões e nem confiabilidade.
O objetivo final da camada de transporte é proporcionar serviço eficiente, confiável e de baixo custo. O hardware e/ou software dentro da camada de transporte e que faz o serviço é denominado entidade de transporte.
A entidade de transporte comunica-se com seus usuários através de primitivas de serviço trocadas em um ou mais TSAP(Transport Service Access Point), que são definidas de acordo com o tipo de serviço prestado: orientado ou não à conexão. Estas primitivas são transportadas pelas TPDU (Transport Protocol Data Unit).
Na realidade, uma entidade de transporte poderia estar simultaneamente associada a vários TSA e NSAP(Network Service Access Point). No caso de multiplexação, associada a vários TSAP e a um NSAP e no caso de splitting, associada a um TSAP e a vários NSAP.

A ISO define o protocolo de transporte para operar em dois modos:
* Orientado a conexão.
* Não-Orientado a conexão.
Como exemplo de protocolo orientado à conexão, temos o TCP, e de protocolo não orientado à conexão, temos o UDP. É obvio que o protocolo de transporte não orientado à conexão é menos confiável. Ele não garante - entre outras coisas mais -, a entrega das TPDU, nem tão pouco a ordenação das mesmas. Entretanto, onde o serviço da camada de rede e das outras camadas inferiores é bastante confiável - como em redes locais -, o protocolo de transporte não orientado à conexão pode ser utilizado, sem o overhead inerente a uma operação orientada à conexão.
O serviço de transporte baseado em conexões é semelhante ao serviço de rede baseado em conexões. O endereçamento e controle de fluxo também são semelhantes em ambas as camadas. Para completar, o serviço de transporte sem conexões também é muito semelhante ao serviço de rede sem conexões. Constatado os fatos acima, surge a seguinte questão: "Por que termos duas camadas e não uma apenas?". A resposta é sutil, mas procede: A camada de rede é parte da sub-rede de comunicações e é executada pela concessionária que fornece o serviço (pelo menos para as WAN). Quando a camada de rede não fornece um serviço confiável, a camada de transporte assume as responsabilidades, melhorando a qualidade do serviço.
5 - Camada de Sessão

A camada de [Sessão] permite que duas aplicações em computadores diferentes estabeleçam uma sessão de comunicação. Nesta sessão, essas aplicações definem como será feita a transmissão de dados e coloca marcações nos dados que estão a ser transmitidos. Se porventura a rede falhar, os computadores reiniciam a transmissão dos dados a partir da última marcação recebida pelo computador receptor.
* Disponibiliza serviços como pontos de controlo periódicos a partir dos quais a comunicação pode ser restabelecida em caso de pane na rede.
* Abre portas para que várias aplicações possam escalonar o uso da rede e aproveitar melhor o tempo de uso. Por exemplo, um browser quando for fazer o download de várias imagens pode requisitá-las juntas para que a conexão não fique desocupada numa só imagem.

6 - Camada de Apresentação
A camada de Apresentação, também chamada camada de Tradução, converte o formato do dado recebido pela camada de Aplicação em um formato comum a ser usado na transmissão desse dado, ou seja, um formato entendido pelo protocolo usado. Um exemplo comum é a conversão do padrão de caracteres (código de página) quando o dispositivo transmissor usa um padrão diferente do ASCII. Pode ter outros usos, como compressão de dados e criptografia.
Os dados recebidos da camada sete são comprimidos, e a camada 6 do dispositivo receptor fica responsável por descomprimir esses dados. A transmissão dos dados torna-se mais rápida, já que haverá menos dados a serem transmitidos: os dados recebidos da camada 7 foram "encolhidos" e enviados à camada 5.
Para aumentar a segurança, pode-se usar algum esquema de criptografia neste nível, sendo que os dados só serão decodificados na camada 6 do dispositivo receptor.
Ela trabalha transformando os dados em um formato no qual a camada de aplicação possa aceitar.
7 - Camada de Aplicação
A camada de aplicação faz a interface entre o protocolo de comunicação e o aplicativo que pediu ou receberá a informação através da rede. Por exemplo, ao solicitar a recepção de e-mails através do aplicativo de e-mail, este entrará em contato com a camada de Aplicação do protocolo de rede efetuando tal solicitação. Tudo nesta camada é direcionado aos aplicativos. Telnet e FTP são exemplos de aplicativos de rede que existem inteiramente na camada de aplicação.
Como podemos observar, o modelo de protocolo trabalha com 7 camadas para padronizar a transmissão de dados em uma rede.Essas camadas nem sempre são as mesmas que iremos encontrar nos outros protocolos, mas o processo de troca de informações é o mesmo.

Protocolo







Protocolo é uma convenção ou padrão que controla e possibilita a conexão, comunicação ou transferência de dados entre dois sistemas computacionais. De maneira simples, um protocolo pode ser definido como "as regras que governam" a sintaxe, mântica e sincronização da comunicação. Os protocolos podem ser implementados pelo hardware, software ou por uma combinação dos dois.
Propriedades típicas
É difícil generalizar sobre protocolos pois eles variam muito em propósito e sofisticação. A maioria dos protocolos especifica uma ou mais das seguintes propriedades:

    * detecção da conexão física subjacente ou a existência de um nó;
    * handshaking (estabelecimento de ligação);
    * negociação de várias características de uma conexão;
    * como iniciar e finalizar uma mensagem;
    * como formatar uma mensagem;
    * o que fazer com mensagens corrompidas ou mal formatadas;
    * como detectar perda inesperada de conexão e o que fazer em seguida;
    * término de sessão ou conexão

Importância
O uso difundido e a expansão dos protocolos de comunicação é ao mesmo tempo um pré-requisito e uma contribuição para o poder e sucesso da Internet. O par formado por IP e TCP é uma referência a uma coleção dos protocolos mais utilizados. A maioria dos protocolos para comunicação via Internet é descrita nos documentos RFC do IETF.

Geralmente apenas os protocolos mais simples são utilizados sozinhos. A maioria dos protocolos, especialmente no contexto da comunicação em rede de computadores, são agrupados em pilhas de protocolo onde as diferentes tarefas que perfazem uma comunicação são executadas por níveis especializados da pilha.

Enquanto uma pilha de protocolos denota uma combinação específica de protocolos que trabalham conjuntamente, um modelo de referência é uma arquitetura de software que lista cada um dos níveis e os serviços que cada um deve oferecer. O modelo clássico OSI, em sete níveis, é utilizado para conceitualizar pilhas de protocolo.

Exemplos de protocolos de comunicação em rede
    * IP (Internet Protocol)
    * DHCP (Dynamic Host Configuration Protocol)
    * TCP (Transmission Control Protocol)
    * HTTP (Hypertext Transfer Protocol)
    * FTP (File Transfer Protocol)
    * Telnet (Telnet Remote Protocol)
    * SSH (SSH Remote Protocol)
    * POP3 (Post Office Protocol 3)
    * SMTP (Simple Mail Transfer Protocol)
    * IMAP (Internet Message Access Protocol)
 

 

Sistema Operacional


Um sistema operativo (português europeu) ou sistema operacional (português brasileiro) é um programa ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário.

Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional:

* pela perspectiva do usuário ou programador (visão top-down): é uma abstração do hardware, fazendo o papel de intermediário entre o aplicativo (programa) e os componentes físicos do computador (hardware); ou
* numa visão bottom-up, de baixo para cima: é um gerenciador de recursos, i.e., controla quais aplicações (processos) podem ser executadas, quando, que recursos (memória, disco, periféricos) podem ser utilizados.

A sigla usual para designar esta classe de programas é SO (em português) ou OS (do inglês Operating System).

Funcionamento
Um sistema operacional possui as seguintes funções:

1. gerenciamento de processos;
2. gerenciamento de memória;
3. sistema de arquivos;
4. entrada e saída de dados.

Gerenciamento de processos
O sistema operacional multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número de processadores instalados. Cada processo recebe uma fatia do tempo e a alternância entre vários processos é tão rápida que o usuário pensa que sua execução é simultânea.
São utilizados algoritmos para determinar qual processo será executado em determinado momento e por quanto tempo.
Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados são:
* sinais;
* pipes;
* named pipes;
* memória compartilhada;
* soquetes (sockets);
* trocas de mensagens.
O sistema operacional, normalmente, deve possibilitar o multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interrompível, o que significa que pode ser interrompido no meio da execução de uma tarefa.

Gerenciamento de memória
O sistema operacional tem acesso completo à memória do sistema e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam.
Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas:
1. assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação (Tanenbaum, 1999);
2. prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença;
3. possibilitar que uma aplicação utilize mais memória do que a fisicamente existente.

Sistema de arquivos
A memória principal do computador é volátil, e seu tamanho é limitado pelo custo do hardware. Assim, os usuários necessitam de algum método para armazenar e recuperar informações de modo permanente.
Um arquivo é um conjunto de bytes, normalmente armazenado em um dispositivo periférico não volátil (p.ex., disco), que pode ser lido e gravado por um ou mais processos.

Interface de uso
Sistema operacional com interface gráfica, no caso, o Debian com blackbox.
Os sistemas operacionais fornecem abstração de hardware para que seus recursos possam ser usados de maneira correta e padronizada, mas para ser possível operar um computador, é necessário fornecer também uma interface para que o usuário possa desfrutar dos recursos do sistema. Atualmente existem dois tipos de interface: o GUI (graphical user interface), conhecida também por interface gráfica, e o CUI (command-line interface), sendo essa mais conhecida como interface de linha de comando.
Classificações
Em relação ao seu projeto (arquitetura), segundo Tanenbaum (1999):

* Kernel monolítico ou monobloco: o kernel consiste em um único processo executando numa memória protegida (espaço do kernel) executando as principais funções. Ex.: MAC OS X, OS/2, Windows, Linux, FreeBSD.
* Microkernel ou modelo cliente-servidor: o kernel consiste de funções mínimas (comunicação e gerenciamento de processos), e outras funções, como sistemas de arquivos e gerenciamento de memória, são executadas no espaço do usuário como serviços; as aplicações (programas) são os clientes. Ex.: GNU Hurd, Mach.
* Sistema em camadas: funções do kernel irão executar em camadas distintas, de acordo com seu nível de privilégio. Ex.: Multics.
* Monitor de máquinas virtuais: fornece uma abstração do hardware para vários sistemas operacionais. Ex.: VM/370, VMware, Xen.

Quanto ao gerenciamento de processos, pode-se usar a seguinte classificação:

* Monotarefa: pode-se executar apenas um processo de cada vez Ex.: MS-DOS.
* Multitarefa: além do próprio SO, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é distribuído de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. Ex: OS/2, Windows, Linux, FreeBSD e o Mac OS X.
* Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores.
* Multiprogramação: o SO divide o tempo de processamento entre vários processos mantendo o processador sempre ocupado.

Quanto à quantidade de usuários que podem utilizar o sistema simultaneamente:

* Monousuário: apenas um usuário por vez (apesar de poder suportar recursos como troca de usuário). Ex.: Windows.
* Multiusuário: vários usuários usam o computador ao mesmo tempo, seja por diversos terminais, seja por conexão remota como o SSH. Ex.: Linux, Unix.

Exemplos de sistemas operacionais ativos
* Windows
* Mac OS X
* Linux
* Solaris
* FreeBSD
* Haiku
* eComStation
* FreeDOS
* Unix System V
* AmigaOS
* Minix

VPN



Rede Particular Virtual (Virtual Private Network - VPN) é uma rede de comunicações privada normalmente utilizada por uma empresa ou um conjunto de empresas e/ou instituições, construída em cima de uma rede de comunicações pública (como por exemplo, a Internet). O tráfego de dados é levado pela rede pública utilizando protocolos padrão, não necessariamente seguros.


VPNs seguras usam protocolos de criptografia por tunelamento que fornecem a confidencialidade, autenticação e integridade necessárias para garantir a privacidade das comunicações requeridas. Quando adequadamente implementados, estes protocolos podem assegurar comunicações seguras através de redes inseguras.


Deve ser notado que a escolha, implementação e uso destes protocolos não é algo trivial, e várias soluções de VPN inseguras são distribuídas no mercado. Adverte-se os usuários para que investiguem com cuidado os produtos que fornecem VPNs. Por si só, o rótulo VPN é apenas uma ferramenta de marketing.