Sie sind auf Seite 1von 8

O que Middleware Middleware um programa de computador que faz e mediao entre software e demais aplicaes.

s. utilizado para mover ou transportar informaes e dados entre programas de diferentes protocolos de comunicao, plataformas e dependncias do sistema operacional. geralmente constitudo por mdulos dotados com APIs de alto nvel que proporcionam a sua integrao com aplicaes desenvolvidas em diversas linguagens de programao e interfaces de baixo nvel que permitem a sua independncia relativamente ao dispositivo. Seu objetivo mascarar a heterogeneidade e fornecer um modelo de programao mais produtivo para os programadores de aplicativos. composto por um conjunto da processos ou objetos em um grupo de computadores, que interagem entre si de forma a implementar comunicao e oferecer suporte para compartilhamento de recursos e aplicativos distribudos. O Middleware a designao genrica utilizada para referir aos sistemas de software que se executam entre as aplicaes e os sistemas operacionais. O objetivo do middleware facilitar o desenvolvimento de aplicaes, tipicamente as distribudas, assim como facilitar a integrao de sistemas legados ou desenvolvidos de forma no integrada automtica. * Exemplos de Middleware 1) CORBA 2) Enterprise Service Bus * Descrio * CORBA Common Object Request Broker Architecture CORBA a arquitetura padro criada pelo Object Management Group para estabelecer e simplificar a troca de dados entre sistemas distribudos heterogneos. Em face da diversidade de hardware e software que encontramos atualmente, a CORBA atua de modo que os objetos (componentes dos softwares) possam se comunicar de forma transparente ao usurio, mesmo que para isso seja necessrio interoperar com outro software, em outro sistema operacional e em outra ferramenta de desenvolvimento. CORBA um dos modelos mais populares de objetos distribudos, juntamente com o DCOM, formato proprietrio da Microsoft. ORB A arquitetura CORBA define o ORB (Object Request Broker) como um mdulo intermedirio entre cliente e objeto, sendo responsvel em aceitar a requisio

do cliente, envi-la para o objeto competente e, assim que disponvel a resposta, entreg-la para o cliente. IDL A CORBA utiliza a IDL (Interface Definition Language), uma linguagem baseada em C++ que no possui algoritmos nem variveis, ou seja, puramente declarativa, e, portanto, independente da linguagem de programao utilizada para acess-la. H padro de IDL definido pelo OMG para C, C++, Java, TTCN, COBOL, Smalltalk, Ada, Lisp, Python e IDLscript. Possibilita a interoperabilidade entre os diversos sistemas, visto a separao que definida entre interface e execuo. A interface de cada objeto definida de forma bastante especfica, enquanto a sua execuo (cdigo fonte e dados) permanece oculta para o resto do sistema. Persistncia Ao contrrio dos objetos tradicionais, os objetos em sistemas distribudos possuem uma caracterstica de dualidade: um estado dinmico, tipicamente alocado em memria voltil (em tempo de execuo), e um estado persistente, que no pode ser destrudo aps o encerramento do programa que os criou e que pode ser usado para reconstruir o estado dinmico, devendo ser armazenado em memria no voltil, seja em sistema de arquivos ou banco de dados. A arquitetura CORBA, para prover a persistncia, define o Persistent Object Service (POS) como sendo responsvel por armazenar o estado persistente dos objetos, utilizando quatro elementos: * Objetos Persistentes (Persistent Object (POs)) * Gerenciador de Objetos Persistentes (Persistent Objects Manager (POM)) * Servios de Persistncia de Dados (Persistent Data Services (PDSs)) * Base de Dados (Datastores) * Enterprise Service Bus O Enterprise Service Bus se refere arquitetura de construo de software tipicamente implementado em tecnologias encontradas na categoria de produtos de infra-estrutura de middleware. Normalmente baseado no reconhecimento de padres, que fornecem uma base deervios para arquiteturas mais complexas via um driver de evento e padres baseados em mensagens (BUS). Um ESB geralmente fornece uma abstrao de camadas na implementao de um sistema empresarial de mensagens, que permita integrao da arquitetura para explorar o valor das mensagens sem escrever cdigo. Contrariando a clssica integrao de aplicaes comerciais (EAI). A base de um enterprise service bus construda da quebra de funes bsicas em partes, que so

distribudas onde for preciso. ESB no implementa uma arquitetura orientada a servio (SOA), mas fornece as caractersticas para que possa ser implementado. ESB no necessariamente precisa ser implementado usando web-services. ESB devem ser baseados em padres flexveis, suportando vrios meios de transportes. Baseado no EAI melhor que padres SOA, ele tenta remover o acoplamento entre o servio chamado e o meio de transporte. A maioria dos fornecedores de ESB constroem agora ESBs para incorporar princpios de SOA e para aumentar suas vendas, por exemplo Business Process Execution Language(BPEL). Arquitetura ESB A palavra "bus" a referncia para o meio fsico que carrega bits entre dispositivos em um computador. O ESB serve a uma funo anloga a alto nvel de abstrao. Em uma arquitetura empresarial fazendo uso de um ESB, uma aplicao ir comunicar via barramento, que atua como um message broker entre aplicaes. A principal vantagem de com uma aproximao a reduo de conexes ponto a ponto necessrias para permitir a comunicao entre aplicaes. Isto por sua vez afeta diretamente na simplificao das mudanas de sistema. Por reduzir o nmero de conexes ponto a ponto para uma aplicao especfica, o processo de adaptar um sistema s mudanas em um de seus componentes torna-se mais fcil. JBossESB Um ESB a gerao seguinte de EAI. Melhor e sem ficar preso a um vendedor, caractersticas do antigo. ESB parte de uma infra-estrutura SOA. Entretanto, SOA no simplesmente uma tecnologia ou um produto, um estilo de projeto, com vrios aspectos (arquitetural, metodolgico e organizacional) no relacionados a tecnologia atual. Mas, obviamente, em algum ponto torna-se necessrio traar o SOA abstrato a uma implementao concreta, e ai que o JBossESB entra no jogo. Caractersticas * Suporte a maioria dos frameworks de notificao. Traspontes suportados incluindo JMS (JBossMQ, JBoss Messaging, Oracle AQ and MQSeries), email, banco de dados ou sistema de arquivos. * Integrao de transaes entre JMS e SQL. * Integrao com jBPM. * Suporte a WS-BPEL. * Suporte a Web Services. * Distribuio e configurao melhoradas, usando um usurio especfico de ESB. * Suporte a Groovy.

Throughput Para se entender melhor sobre throughput e necessrio ter conhecimento sobre escalonamento como ser falado a seguir. Escalonamento de processos uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribuido , possibilitandoa executar os processos mais viveis e concorrentes, priorizando determinados tipos de processos, como os de I/O, Bound e os CPU Bound. O escalonador de processos de 2 nveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o na memria principal, ficando os outros alocados em disco; com essa execuo o processador evita ficar ocioso. O projeto de um escalonador adequado deve levar em conta uma srie de diferentes necessidades, ou seja, o projeto de uma poltica de escalonamento deve contemplar os seguintes objetivos:

Ser justo: Todos os processos devem ser tratados igualmente, tendo possibilidades idnticas de uso do processador, devendo ser evitado o adiamento indefinido. Maximizar a produtividade( throughtput): Procurar maximizar o nmero de tarefas possiveis por unidade de tempo. Ser previsvel

Minimizar o tempo de resposta para usurios interativos. Maximizar o nmero possvel de usurio interativos. Minimizar a sobrecarga (overhead): Recursos no devem ser desperdiados embora algum investimento em termos de recursos para o sistema pode permitir maior eficincia. Favorecer processos "bem comportados": Processos que tenham comportamento adequado poderiam receber um servio melhor. Balancear o uso de recursos: o escalonador deve manter todos os recursos ocupados, ou seja, processos que usam recursos sub- utilizados deveriam ser favorecidos. Exibir degradao previsvel e progressiva em situaes de intensa carga de trabalho.

Como pode ser visto facilmente, alguns destes objetivos so contraditrios, pois dado que a quantidade de tempo disponvel de processamento (tempo do

processador) finita, assim como os demais recursos computacionais, para que um proceso seja favorecido outro deve ser prejudicado. O maior problema existente no projeto de algoritmos de escalonamento est associado natureza imprevisvel dos processos, pois no possvel prevermos se um dado processo utilizar intensamente o processador, ou se precisar grandes quantidades de memria ou se necessitar numerosos acessos aos dispositivos e I/O. Para que o processador no fique muito tempo sem processar informaes alguma, os sistemas operacionais usam algumas tcnicas para escalonar os processos que esto em execuo ao mesmo tempo numa maquina. O escalonamento difcil de ser realizada, pois no existe ainda um algoritmo que totalmente eficiente e imune a algumas falhas, principalmente quando falamos de sistemas de interativos, pois a interao do usurio fundamental para este sistema ter uma interao com o usurio, por isso contm bastante erros porque o usurio pode encerrar um processo em qualquer instante podem ter uma infinidade de erros durante o processo. O escalonador do SO utiliza alguns critrios especficos, como: a taxa de utilizao de CPU, que a frao de tempo a qual ela est sendo utilizado, throughput que so nmeros de processos finalizados por unidade de tempo; turnaround que o tempo percorrido a partir do instante em que o software entra e o instante em que termina sua execuo dele; tempo de resposta: intervalo entre a chegada ao sistema e inicio de sua execuo; tempo de espera: soma dos perodos em que o programa estava no seu estado pronto. Existem vrios meios que realizam a avaliao da qualidade do servio oferecido por um algoritmo de escalonamento. So eles: uso do processador, tempo de resposta e tempo de permanncia. O tempo de permanncia, tempo de retorno ou turnaround time, quando se dado pela soma do tempo de espera com o tempo de servio ou tempo de execuo. Em geral deseja- se que o tempo de permanncia seja o mais breve possvel. Uma outra maneira de verificar a qualidade do escalonamento utilizando-se do tempo de permanncia normalizado.

Escalonador de curto prazo Seleciona os processos que esto prontos na memria, para serem executados. Essas decises geralmente so realizadas em menor tempo possvel.

Escalonador de mdio prazo Seleciona os processos que esto armazenados na memria virtual e reduz o nvel de processamento. Ele temporariamente remove o processo da memria principal e o coloca numa espcie de memria secundria (swap). Escalonador de longo prazo Seleciona os processos novos, os que so limitados por input/output e os que so limitados por processamento, dando prioridade aqueles limitados por I/O, j que usam menos o processador. Este escalonador o responsvel pela quantidade de processos que o sistema ir trabalhar.

Algoritmos escalonadores Existem os algoritmos preempitivos e os no preemptivos. Os preemptivos so algoritmos que permitem que um processo seja finalizado durante sua execuo, quer seja por fora de uma interrupo de dados, quer seja em decorrncia da politica de escalonamento adotada e realizada por parte do escalonador de processos ou simplesmente por fora do trmino da execuo do processo. Aps a interrupo deste processo, ocorre o que se chama de troca de contexto, que consiste em salvar o contedo registrado e a memoria utilizada pelo processo e conceder outro processo o privilgio de executar no processador, restaurando assim o contexto deste ultimo processo. Cabe ressaltar que nos algoritmos no preemptivos, por serem utilizados exclusivamente em sistemas monoprocessados, esse fato no ocorre, sendo cada programa executado at o seu final. Exemplos de Algoritmos:

FIFO(First in, first out) ou FCFS(First come, first served): o primeiro que chega ser o primeiro a ser executado; SJF(Shortest Job First): Onde o menor processo ganhar a CPU e atrs do mesmo formar uma fila de processos por ordem crescente de tempo de execuo; SRT (Shortest Remaining Time): Neste algoritmo escolhido o processo que possua o menor tempo restante

Algoritmo de Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre os processos, para o escalonamento sorteado um numero aleatrio para que o processo ganhe a vez na CPU, processos com mais tokens tm mais chance de receber antes a CPU.

Escalonamento garantido: Este algoritmo busca cumprir promessas de alocao de CPU o mais preciso possvel, como se fosse uma diviso de processamento. RR(Round-Robin): Nesse escalonamento o SO possui um timer, onde todos os processos ganham o mesmo valor de quantum para rodarem na CPU. Com exceo do algoritmo RR e escalonamento garantido, todos os outros sofrem do problema de Inanio. Mltiplas filas: So usadas vrias filas de processos prontos para executar, cada processo e colocado em uma fila, e cada fila tem uma poltica de escalonamento prpria e outra entre filas.

Todos os algoritmos classificam os processos em estados: Iniciando, Pronto, Executando, Entrada/ Sada e Terminado. Distribuio de Prioridades Para melhorar a distribuio da CPU entre os processos, alguns algoritmos usam diferentes prioridades, essas prioridades podem ser mudadas pelo prprio usurio. Com a ideia de gerenciar melhor essas prioridades de processo, o sistema operacional cria filas de processos. Em cada fila existem processos de mesma prioridade, e existe tambm fila para processos de entrada e sada. Prioridades podem ser mudadas pelo usurio, ou atribudas automaticamente pelo sistema operacional. Mesmo com a aplicao de prioridades e algoritmos melhor implementados, alguns processos ainda correm o risco de ficar muito tempo sem receber a CPU por isso em determinando momento pode ocorrer de a prioridade de um processo vai se alterando com o "tempo de vida" do mesmo, controlando o tempo de vida que muda momentaneamente a prioridade de um processo que no executado h muito tempo e joga sua prioridade para a mais alta possvel para que ele seja atendido, logo aps as prioridades voltam ao normal. Outro caso em que prioridades so alteradas quando um programa de baixa prioridade comeou a fazer uso de algum perifrico de entrada e sada antes de outro de prioridade alta. Neste caso processos de alta prioridade so obrigados a esperarem os de baixa terminar sua E/S para poderem usar este perifrico. Existem ainda sistemas em que quando um processo inicia sua execuo, o sistema garante que este processo vai ser terminado, so chamados sistemas garantidos. Nestes sistemas a interveno do usurio mnima, ao contrario do que ocorre em sistemas em tempo real em que o usurio interrompe processos a todo instante por isso o sistema no garante que um processo vai ser Terminado.

Threads Processos podem ser divididos em pedaos para que eles no deixem de responder, como isso poderia atrapalhar a sua execuo, ou para agilizar a programao e execuo. Eles so escalonveis.

Das könnte Ihnen auch gefallen