Hoje, com o rápido desenvolvimento da indústria da informação, a concorrência entre as empresas tornar-se-á mais intensa. Com a contínua expansão de escala e atualização contínua dos negócios, as empresas precisam urgentemente de soluções distribuídas completas para gerenciar ambientes heterogêneos complexos e alcançar integração completa entre diferentes dispositivos de hardware, sistemas de software, ambientes de rede e sistemas de banco de dados.
Ao longo da história do desenvolvimento dos computadores humanos, a indústria da informação passará por mudanças cíclicas a cada dez a quinze anos. De 1950 a 1970, as empresas adotaram principalmente a arquitetura de terminal mainframe, enquanto os sistemas de aplicativos corporativos adotaram o Fornecer aos usuários serviços de compartilhamento de recursos em um único. , forma centralizada. No início da década de 1980, os sistemas abertos e os sistemas de gerenciamento de bancos de dados relacionais foram amplamente adotados pelas empresas. Ao contrário dos sistemas centralizados, a lógica da aplicação estava dispersa entre as extremidades mestre e escravo. Com a popularidade do Windows, a década de 1990 foi a era das aplicações gráficas, e a arquitetura Cliente/Servidor também foi amplamente adotada. No final da década de 1990, a tecnologia de objetos distribuídos apareceu na indústria da informação. Os aplicativos podem ser distribuídos em diferentes plataformas de sistema, e a comunicação mútua de objetos entre plataformas heterogêneas pode ser alcançada por meio de tecnologia distribuída. A integração de sistemas empresariais existentes em sistemas distribuídos pode melhorar significativamente a escalabilidade dos sistemas de aplicativos empresariais. O surgimento de aplicações distribuídas multicamadas no final da década de 1990 apontou o caminho para as empresas simplificarem ainda mais o desenvolvimento de sistemas de aplicações.
Na estrutura tradicional Cliente/Servidor, a lógica do aplicativo geralmente é distribuída entre o cliente e o servidor. O cliente emite uma solicitação de acesso aos recursos de dados e o servidor retorna os resultados ao cliente. A desvantagem da estrutura Cliente/Servidor é que quando o número de clientes aumenta, o desempenho do servidor será bastante reduzido porque o balanceamento de carga não pode ser realizado. Uma vez que os requisitos do aplicativo mudam, os aplicativos cliente e servidor precisam ser modificados, o que traz grandes transtornos para a manutenção e atualização dos aplicativos, e a transmissão de grandes quantidades de dados também aumenta a carga na rede. Para resolver os problemas de Cliente/Servidor, as empresas só podem se transformar em aplicativos distribuídos multicamadas.
Em um aplicativo distribuído multicamadas, uma ou mais camadas de programas de serviço de aplicativo podem ser adicionadas entre o cliente e o servidor. Esse programa é chamado de "Servidor de Aplicativo". Os desenvolvedores podem colocar a lógica de negócios dos aplicativos corporativos no servidor de camada intermediária em vez do cliente, isolando assim a lógica de negócios do aplicativo da interface do usuário e fornecendo aos usuários um aplicativo fino (fino), garantindo a funcionalidade do cliente. ) interface. Isso significa que se o código do aplicativo precisar ser modificado, isso poderá ser feito em um único local (no servidor de camada intermediária) em vez de em milhares de aplicativos clientes. Isso permite que os desenvolvedores se concentrem na análise, design e desenvolvimento da lógica de negócios central do sistema de aplicativos, simplifica o desenvolvimento, atualização e atualização de sistemas corporativos e aumenta muito a escalabilidade e a flexibilidade dos aplicativos corporativos.
Quando as empresas precisam estabelecer sistemas de aplicativos comerciais baseados na Web, a arquitetura distribuída multicamadas também oferece vantagens poderosas, fornecendo uma arquitetura "thin client" para aplicativos comerciais baseados na Web, permitindo que os clientes baseados em navegador se comuniquem com recursos da intranet. interação sem exigir trabalho complexo de configuração de aplicativos no lado do cliente. As soluções distribuídas multicamadas constroem pontes entre plataformas heterogêneas e permitem que aplicativos de negócios baseados na Web sejam integrados aos sistemas empresariais existentes.
Actualmente, um grande número de empresas no nosso país ainda adopta a arquitectura Cliente/Servidor, enquanto nos países ocidentais desenvolvidos, a transformação das empresas de sistemas de aplicação tradicionais em sistemas de aplicação distribuídos multicamadas tornou-se a tendência dominante na indústria. Acredita-se que sistemas distribuídos multicamadas serão mais utilizados em nosso país.
Desafios trazidos por aplicativos distribuídos multicamadas
Embora a arquitetura distribuída multicamadas ofereça grandes vantagens às empresas, é mais difícil desenvolver aplicações distribuídas multicamadas do que a abordagem cliente/servidor tradicional, que traz novos desafios técnicos aos desenvolvedores. Inclui principalmente os três aspectos a seguir:
1. Diversificação de padrões de objetos distribuídos
Se as empresas desejam construir sistemas distribuídos multicamadas, elas devem seguir os padrões industriais distribuídos. Os padrões nos quais se baseiam afetam diretamente a abertura e a escalabilidade dos sistemas de aplicativos empresariais. Atualmente, existem três padrões principais para objetos distribuídos: DCOM da Microsoft, Enterprise JavaBeans/RMI da Sun Microsystems e CORBA (Common Object Request Broker Architecture) da OMG (Object Management Group). DCOM é um padrão de objeto distribuído baseado no ambiente Windows, portanto os tipos de plataformas suportadas são limitados. RMI e Enterprise JavaBean são arquiteturas de objetos distribuídos baseadas na linguagem Java, adequadas para as necessidades de plataforma cruzada de grandes empresas. No entanto, o ambiente real do sistema de aplicativos é geralmente estabelecido por várias linguagens de programação diferentes e depende apenas de uma linguagem de programação. Os aplicativos corporativos são raros. CORBA é um padrão de objeto distribuído desenvolvido pela organização OMG com a participação de mais de 800 grandes empresas de software e hardware. É suportado por grandes empresas como IBM, Sun Microsystems, Oracle, Sybase, Novell e Netscape. a integração entre diferentes plataformas. Comunicação e interoperabilidade de objetos Desde que os fornecedores de software sigam o IDL (Interface Definition Language) para comunicação entre objetos de aplicativos e ORB, eles podem fornecer ou obter serviços na forma de objetos. eliminar a necessidade de considerar plataformas heterogêneas, diferentes protocolos de comunicação ou diferentes linguagens de programação causam diferenças e focar no desenvolvimento da lógica da aplicação. Pode-se observar que CORBA fornece um padrão distribuído aberto e flexível, adequado para empresas construírem sistemas de aplicativos distribuídos multicamadas.
2. O desenvolvimento de aplicações distribuídas multicamadas é muito complexo
Se os aplicativos distribuídos multicamadas forem desenvolvidos da maneira tradicional, os desenvolvedores precisarão ter profundo conhecimento em nível de sistema de computador e dominar o conhecimento em vários aspectos, como simultaneidade, segurança, escalabilidade e processamento de transações. Além disso, é necessário conseguir um gerenciamento eficaz do acesso aos recursos do sistema, como gerenciamento de threads, memória, conexões de banco de dados e conexões de rede. Essas tarefas complexas consomem muito a energia dos desenvolvedores e limitam o progresso do trabalho de desenvolvimento. O desenvolvimento de sistemas aplicativos empresariais exige que os desenvolvedores se concentrem mais no desenvolvimento da lógica de negócios, em vez de perder mais tempo no desenvolvimento em nível de sistema.
3. A distribuição e gestão de aplicações distribuídas também são um desafio
A maioria dos aplicativos distribuídos é composta por centenas ou milhares de componentes, e cada componente possui propriedades que precisam ser configuradas durante a distribuição. Normalmente, a forma como você configura as propriedades do componente depende da plataforma na qual o componente está localizado. Portanto, após a distribuição da aplicação, como gerenciar os componentes distribuídos será um desafio. Os gerentes precisam garantir que os componentes do aplicativo possam ser executados corretamente, possam estar localizados em qualquer máquina da rede corporativa e possam detectar erros de processamento (incluindo erros de sistema, interrupções de rede, erros de aplicativo, etc.) em tempo hábil.
No sentido tradicional, o gerenciamento de sistemas de rede (como o SNMP) só pode obter o status de execução dos aplicativos analisando o status do host. No entanto, para sistemas de aplicativos distribuídos, um aplicativo não é executado em um determinado host. O estado de toda a rede precisa de ser gerido, o que requer o apoio de ferramentas adequadas.
Requisitos para aplicativos distribuídos multicamadas
O desenvolvimento de aplicativos empresariais distribuídos multicamadas geralmente requer o seguinte:
Fácil de desenvolver
Embora a arquitetura distribuída multicamadas exija conhecimento profundo em nível de sistema de computador como base (por exemplo: banco de dados, processamento de transações, segurança de rede, tecnologia CORBA, etc.), para desenvolvedores de TI, ela não requer uma compreensão profunda do subjacente. complexidades do sistema. Com a tecnologia, poderosos sistemas de aplicativos distribuídos multicamadas podem ser desenvolvidos de forma rápida e fácil em um ambiente de desenvolvimento integrado (IDE) visual amigável.
Simplifique o trabalho de distribuição e gerenciamento
Os desenvolvedores exigem a capacidade de testar e modificar aplicativos distribuídos em um ambiente de desenvolvimento integrado para melhorar o desempenho dos aplicativos e conseguir distribuição e gerenciamento de aplicativos no mesmo ambiente. Como muitos aplicativos incluem milhares de componentes distribuídos por toda a empresa, é necessária uma ferramenta de gerenciamento centralizado para gerenciar e controlar aplicativos distribuídos e implementar funções de detecção e correção de erros.
Requisitos de robustez para aplicativos empresariais
Um aplicativo multicamadas distribuído corporativamente completo deve atender aos requisitos de processamento de transações, gerenciamento de segurança, tolerância a falhas, balanceamento de carga, escalabilidade e alto desempenho.
Apresenta uma arquitetura aberta baseada em padrões da indústria
O que as empresas precisam é de soluções abertas, baseadas em padrões industriais, que possam interagir com outros sistemas compatíveis com padrões.
Pode ser integrado com vários bancos de dados e sistemas existentes
Os aplicativos corporativos distribuídos devem ser capazes de acessar recursos de dados corporativos, e os dados corporativos geralmente são armazenados em bancos de dados de grande escala atualmente populares (como Oracle, Sybase, etc.) ou acessados através do TP Monitor (como: IBM CICS, BEA Tuxedo ), por isso é necessário que os sistemas distribuídos corporativos possam ser integrados aos bancos de dados e aos sistemas existentes.
Suporta diferentes ambientes de plataforma
Os aplicativos corporativos distribuídos em várias camadas precisam oferecer suporte a diferentes ambientes de plataforma. O lado do servidor deve suportar plataformas Windows NT ou UNIX, e os clientes em diferentes plataformas podem acessar aplicativos no servidor, incluindo: HTML, miniaplicativos Java, aplicativos Java, HTML dinâmico, C++. Aplicações etc.
Servidor de aplicativos corporativos
Com base nas razões acima, quando as empresas se transformam em aplicativos distribuídos multicamadas, elas precisam do suporte de servidores de aplicativos, para que diferentes tecnologias de aplicativos possam ser integradas, facilitando o desenvolvimento, a distribuição e o gerenciamento de aplicativos distribuídos multicamadas. Mais fácil. Muitas empresas já usaram a tecnologia de servidor de aplicativos, o que melhorou bastante o desempenho dos aplicativos corporativos. No entanto, a tecnologia de servidor de aplicativos atualmente em uso no meu país não pode atender plenamente às necessidades das empresas para estabelecer aplicativos distribuídos multicamadas. Esses servidores de aplicativos são divididos principalmente nas duas categorias a seguir:
Servidor de aplicativos baseado na Web
Os servidores de aplicativos baseados na Web geralmente fornecem um ambiente de desenvolvimento para aplicativos da Internet baseados na Web e são adequados para estabelecer sistemas de aplicativos Cliente/Servidor baseados na Web. Neste sistema, o servidor de aplicativos da Web geralmente é executado no servidor da Web para lidar com solicitações de clientes. ODBC e JDBC geralmente são usados para conectar-se ao banco de dados. Esse tipo de servidor de aplicativos geralmente é fácil de usar e oferece suporte ao desenvolvimento de aplicativos de servidor baseados em EJB (Enterprise JavaBeans). No entanto, as deficiências deste tipo de servidor de aplicação incluem: não suporta processamento de transacções, tem fraca segurança, tem suporte limitado para sistemas comerciais existentes e tem baixo desempenho.
Servidor de aplicativos baseado em middleware
Servidores de aplicativos baseados em middleware podem fornecer às empresas funções mais poderosas através da integração com sistemas existentes (como monitores TP), incluindo: processamento de transações, gerenciamento de segurança, tolerância a falhas, balanceamento de carga, etc., mas a maioria das soluções é baseada em Cliente/Servidor arquitetura, ou limitada à arquitetura de três camadas, não é adequada para construir aplicativos Web distribuídos e não possui um ambiente eficaz de desenvolvimento e gerenciamento.
Nota: O balanceamento de carga é um conjunto de servidores composto por vários servidores de maneira simétrica. Cada servidor possui status igual e pode fornecer serviços externos de forma independente, sem a assistência de outros servidores. Através de algum tipo de tecnologia de compartilhamento de carga, as solicitações enviadas de fora são distribuídas uniformemente para um determinado servidor na estrutura simétrica, e o servidor que recebe a solicitação responde à solicitação do cliente de forma independente. A carga balanceada pode distribuir uniformemente as solicitações dos clientes para a matriz de servidores, fornecendo assim acesso rápido a dados importantes e resolvendo o problema de um grande número de serviços de acesso simultâneos. Essa tecnologia de cluster pode atingir desempenho próximo ao de um mainframe com investimento mínimo. Vantagens do balanceamento de carga de rede: Primeiro, a tecnologia de balanceamento de carga de rede garante que o servidor possa responder rapidamente mesmo sob carga pesada; segundo, o balanceamento de carga de rede só precisa fornecer um endereço IP (ou nome de domínio) para o mundo externo; ou vários servidores no balanceamento de carga da rede não estiverem disponíveis, o serviço não será interrompido. O balanceamento de carga de rede detecta automaticamente quando um servidor está indisponível e pode redistribuir rapidamente o tráfego do cliente entre os servidores restantes. Esta medida de proteção pode ajudá-lo a fornecer serviços ininterruptos para os principais programas de negócios e pode aumentar o número de servidores de balanceamento de carga de rede de acordo com o aumento do acesso à rede. Em quarto lugar, o balanceamento de carga de rede pode ser implementado em computadores comuns;
Este artigo vem do blog CSDN. Por favor, indique a fonte ao reimprimir: http://blog.csdn.net/deantry119/archive/2009/12/28/5089598.aspx.