Reproduzido de: http://www.pinlue.com/article/2020/03/0508/059982901128.html
Neste artigo, apenas as considerações de projeto de arquitetura conhecimento, não têm conhecimento específico em detalhes.
Em primeiro lugar, a arquitetura de nível superior
plataforma Linux / Windows, CS / Arquitectura BS, arquitetura de dados grande, aplicativos (jogos, Internet, indústrias tradicionais, etc.)
Em segundo lugar, a selecção técnica do CS Cliente
1, tecnologia de desenvolvimento de GUI
sistema de tecnologia (1) Microsoft
MFC, WinForm, WPF, UWP
sistema de tecnologia (2) Java
java AWT, java swing, javafx
sistema de tecnologia (3) Python
Em desespero, PyQt, PyGUI, Libavg, wxPython
2, o desenvolvimento tecnológico do terminal móvel
aplicativo nativo: Android, iOS, wp
programa de micro-canal pequeno
Progressive Web aplicação: end aplicações Web móvel de usar.
3, o programa de console
, A seleção terceira tecnologia do navegador BS em
1, sistema de tecnologia da Microsoft
Asp.net, Asp.net MVC, Silverlight, o IIS
2, sistema de tecnologia Java
JSP Servlet + + + Suportes de hibernação + Primavera, tomcat
3, outras tecnologias
html5, js, AJAX, CSS3, HTTP / HTTPS
quadro js: jQuery, Angular JS, Bootstrap, jQuery UI, Ext JS, Dojo, Prototype JS, Prototype JS (análise DOM, processamento Ajax, suporte CSS, suporte JSON, compatibilidade do navegador)
Quatro, seleção de tecnologia CS Server e final da BS
1, sistema de tecnologia da Microsoft
ASP.NET WebService, WCF, WebAPI
2, sistema de tecnologia Java
Java WebService
3, descanso, micro-serviços
4, e tecnologia de acesso de banco de dados
(1) produtos de base de dados
SQL Server, MySQL, Oracle, DB2, Postgre, Redis
Tecnologia de Acesso (2) Banco de dados
JDBC, ADO.NET, tecnologia ORM
5, tecnologia fila de mensagens
(1) RabbitMQ
Erlang desenvolvido filas de mensagens pesados, suporta muitos protocolos: AMQP, XMPP, SMTP, stomp. Encaminhamento (Routing), balanceamento de carga (Load Balance) ou dados de persistência tem suporte muito bom.
(2) Redis
Valor-chave de um banco de dados NoSQL. Mas MQ funções de apoio. Fornecer serviço de fila leve. Desempenho, independentemente do tamanho dos dados, a equipe Redis operando fora melhor do que RabbitMQ. Desempenho e a quantidade de dados relacionados com o tamanho da equipe operacional.
(3) ZeroMQ
Conhecido como os sistemas de enfileiramento de mensagens mais rápidas, em particular a demanda por cenários de alto rendimento. complexidade técnica é alta. ZeroMQ ter um padrão não-intermediária única, e não há necessidade de instalar ou executar um middleware servidor de mensagens, simplesmente biblioteca de referência ZeroMQ, pode enviar mensagens entre o aplicativo desagradável. ZeroMQ apenas filas não persistentes.
(4) ActiveMQ
ZeroMQ semelhantes, pode fila como agente e peer to peer.
(5) Jafka / Kafka
kafka é um cross-linguagem de alto desempenho distribuídos Publish / Subscribe sistemas de enfileiramento de mensagens e Jafka está em Kafka escotilha vem, que é uma versão atualizada de Kafka. Breve persistente, de alto rendimento, sistema totalmente distribuído que suportes de dados em paralelo Hadoop carregamento.
(6) francelho
Rápido, durabilidade, confiabilidade, suporte clustering, configuração flexível compacto. Use scala desenvolvido para rodar em JVM. Em tempo de execução, a fila é armazenado na memória, mantendo registros para a persistência no disco rígido. Multi-Protocol Suporte Pedir: protocolo memcache, o protocolo de texto, acordo poupança.
(7) msmq
Estabilidade, prioridade da mensagem, capacidades offline, as mensagens transacionais, segurança, resiliência, adequado para a plataforma Windows.
Cinco tecnologia de dados grande
1, os componentes de tecnologia hadoop
HDFS: Hadoop Distributed File System
Hive: Data Warehouse
HBase: distribuído de banco de dados
Zookeeper: serviço de coordenação para aplicativos distribuídos
Sqoop: ferramentas de banco de dados relacional em HDFS
Thrift: estrutura de implantação de serviços cross-language
Mapa / Reduzir: estrutura de computação distribuída
FIO: sistema de gestão de recursos Hadoop
Kafka: distribuído publicação-assinatura sistema de mensagens
Flume: Cloudera fornecer um serviço confiável, distribuídos coleção log maciça, agregação e sistema altamente disponível, transmissão
2, os componentes de tecnologia faísca
faísca Núcleo
SQL faísca
Transmissão faísca
faísca MLlib
Graphx
3, base de dados NoSQL
Cassandra
MongoDB
CouchDB
Redis
ondulação
Membase
Neo4j
HBase
4, tecnologia de segurança de dados grandes
Em sexto lugar, à excepção de um grande banco de dados, você também precisa saber essas tecnologias futuras
1, inteligência artificial, aprendizado de máquina e aprendizagem profunda
Tecnologia: decisão aprendizagem árvore, programação lógica de derivação, clustering, e fortalecer uma variedade de algoritmos de aprendizagem tradicionais e as redes Bayesian; rede neural artificial;
Aplicação: não tripulado (Baidu, Google), interrogatório inteligente ( "Watson"), motores (voz, imagem), tradução automática, assistente de voz pesquisar (siri, Huna, wheatgrass, IFLYTEK), a recomendação inteligente , xadrez.
2, a computação em nuvem
Tecnologia: tecnologia de virtualização, tecnologia IAAS, PAAS tecnologia, tecnologia SAAS
Aplicações: Nuvem coisas, segurança nuvem, armazenamento em nuvem, nuvem privada, jogos em nuvem, educação nuvem.
3 coisas
Tecnologia: A tecnologia RFID, tecnologia GPS, o sistema Beidou, tecnologia de comunicação móvel GSM / GPRS / CDMA, tecnologia GIS, tecnologia de sensores, tecnologia de sistemas embarcados.
Aplicação: transporte inteligente, edifícios inteligentes, casa digital, bibliotecas digitais, arquivos digitais, museus digitais, a conservação do património, a protecção ambiental, gestão de logística, controle de segurança alimentar, saúde digital, tecnologia anti-intrusão, varejo, posicionamento e navegação.
4, a tecnologia contentor
(1) CONTAINER Comum
contentores Docker baseados em Linux, Solaris Zone ou Jail FreeBSD.
A Microsoft está trabalhando com Docker, desenvolver navio do Windows.
A diferença (2) do recipiente e tecnologia de máquinas virtuais
Container tendo propriedades leves, requer menos espaço de memória, proporcionando uma velocidade muito rápida inicialização, ea máquina virtual fornece sistemas operacionais específicas de segurança são as fronteiras mais robustas e lógicos.
5, VR, AR, tecnologia MR
VR: realidade virtual é o uso de simulação de computador para produzir um mundo virtual tridimensional, proporcionando simulação de usuário para visual, auditiva, tátil e outra sensorial, permitindo que os usuários como geral imersiva, com o tempo, não há limite para observar dentro de três dimensões coisas.
AR: Realidade Aumentada através da tecnologia de computador, a aplicação de informação virtual para o mundo real, o ambiente real e objetos virtuais em tempo real sobreposta na mesma tela ou espaço existir.
MR: Realidade Mista inclui tanto a realidade aumentada, também inclui reforçada virtual, referindo-se à realidade merge eo mundo virtual produzido um novo ambiente de visualização. objetos físicos e digitais co-existir no novo ambiente de visualização e interação em tempo real.
sete outros
1, o padrão de codificação desenvolvido
2, fases de engenharia de software de desenvolvimento
QA-PG-IT-ET-OT-ST
3, tecnologia de gerenciamento de código
SVN, CVS, Git
4, Tecnologia de Gestão Bug
Lá, bugfree
5, o teste de unidade e a tecnologia de testes automatizados
6, seis princípios de padrões de design e padrões de projeto
7, MVC / MVP / MVVM
8, os outros aspectos técnicos precisam ser considerados
(1) CONTAINER
(2) de multi-threaded
(3) síncronas e assíncronas
A comunicação entre os processos (4) ou roscas
(5) Protocolo de Comunicação
(6) Gestão de Recursos
(7) vazamento de memória
(8) o registo de sistema
(9) Sistema de excepção
(10) Sistema de Verificação
(11) mais factores a ser considerados
A quantidade de dados taxa de transferência, desempenho, em tempo real, extensibilidade, capacidade de manutenção, disponibilidade, confiabilidade,