Danilo Bordini
Pessoal,
Nos próximos dias, estarei criando uma "mini-série" de posts baseado no servidor de Web da Microsoft, o Internet Information Services 7.0. O objetivo será, através de notas curtas, fornecer detalhes técnicos desta poderosa plataforma para aplicações Web e como os ITPros podem se beneficiar dela em seu dia a dia.
Por onde começar ?
O IIS 7.0 é um componente opcional do Windows Server 2008. Isto significa que ele não vem instalado por padrão ao término de uma instalação básica do Windows Server.
O IIS 7 está disponível em todas as edições do Windows Server 2008, a saber:
Todas essas edições, em ambas as versões 32 e 64 bits e também, Itanium. Vale lembrar que o Windows Vista, mesmo sem o Service Pack 1, já possui uma versão do IIS 7, destinada a desenvolvedores e testes locais. Porém, essa versão não contém 100% as funcionalidades do IIS que vem no servidor. Por exemplo, a versão do Vista não tem suporte a Shared Config e Remote Administration . Assim, a orientação é que se você realmente necessita testar um servidor Web, faça-o utilizando alguma edição do Windows Server 2008 (que está disponível gratuitamente para testes em sua versão RC1)
Um link que pode ser considerado como a "Home Page" do IIS 7 na web é o site do time de produto: www.iis.net . Neste site, temos tutoriais, documentações, guias passo a passo, etc, tudo elaborado pelos responsáveis do produto. É um ótimo guia para quem não se atrapalha com o inglês.
No próximo post meu falarei um pouco sobre os pilares que o IIS 7 foi construído.
[]'s
O esquema de configuração do IIS 7.0 é bem flexível e modular. A primeira novidade, é que não existe mais o arquivo metabase.xml (na verdade existe apenas para o serviço de SMTP e não-web), que era um arquivo onde apenas os administradores do servidor podiam alterar e de difícil replicação entre máquinas, o que dificultava por exemplo, a construção de web farms.
Toda a configuração do IIS fica agora armazenada em arquivos 100% texto, conforme descricão abaixo
Para visualizarmos a lógica acima, esse diagrama pode nos ajudar:
Um ponto importante a considerar é que, uma vez que os arquivos são puramente texto, isto significa que os arquivos de configuração podem ser copiados de uma máquina para outra e automaticamente, as configurações são replicadas. Claro, que pode haver algumas dependências, como endereçamentos IP's, mas a princípio, 100% das configurações são replicadas.
Antes de propriamente dito começarmos a analisar as novas características do IIS 7.0, é necessário salientar que desde há alguns anos uma base sólida para Web vem sendo construída pela Microsoft. Ao longo dos anos, houve evolução nos itens Segurança, Gerenciamento, Escalabilidade e Customização.
A tabela abaixo exemplifica muito bem essa curva de evolução. Em 10 anos, desde o IIS 4.0 com o Option Pack, até 2007/2008 com o Windows Server 2008 + IIS7.0, muitas alterações aconteceram, de acordo com a evolução do mercado e necessidade dos desenvolvedores e Profissionais de TI.
Por exemplo, em termos de arquitetura, hoje, no IIS7, há uma arquitetura totalmente modular. Você possui mais de 40 módulos que podem ser instalados quase que indivualmente para construir um web server totalmente adequado às suas necessidades. Com relação à segurança, em 1997, o IIS 4.0 era executado através de uma conta "LocalSystem", que possuía totais privilégios administrativos sobre o servidor. Hoje, ele é executado debaixo de uma conta com menor privilégio, garantindo uma segurança melhor.
Um ponto a destacar é que o IIS 6.0, plataforma amplamente utilizada com o Windows Server 2003, desde o seu lançamento há cerca de 5 anos, não teve nem sequer um hotfix crítico de segurança. Isto é comprovado pelo site especializado Secunia , que faz uma análise constante de sistemas operacionais e demais software de mercado. Isto representa uma evolução enorme e mostra realmente que a plataforma é confiável e já foi testada amplamente.
Relatório Secunia. Link direto: http://secunia.com/product/1438/?task=statistics
Extensibilidade, de acordo com a Wikipédia é a capacidade que um sistema possui em crescer pela adição de novos componentes.
E é exatamente isto que o IIS 7.0 providencia. As APIs utilizadas pelo time de produto foram feitas públicas, o que permite que desenvolvedores adicionem funcionalidades, de acordo com sua necessidade ao IIS 7.0
Bem, talvez pergunta, mas isto já existia no IIS 6.0 . E é verdade. A diferença, é que no IIS 6.0, essa extensibilidade só poderia ser feita utilizando-se extensões ISAPI, o que tornava uma tarefa difícil e para poucos conhecedores.
No IIS 7.0, essa extensibilidade pode ser feita utilizando-se código gerenciado, como o .NET . Assim, o desenvolvedor pode aproveitar todo o conhecimento que ele tem e assim, rapidamente, utlizar módulos utilizando a interface que conhece.
Outra característica da extensibilidade é a possibilidade de estender ou alterar a interface gráfica do IIS 7.0. Assim, empresas podem criar abas ou agrupamentos novos. Toda essa configuração fica armazenada no arquivo administration.config do IIS.
Para conher o poder da extensibilidade, você pode fazer o download de alguns módulos que foram criados por empresas e comunidade, que estão disponíveis gratuitamente no site www.iis.net :
DotNetPanelDotNetPanel is unique feature-rich solution for simplifying Windows hosting management operations. It manages multiple servers, has robust, scalable and secure architecture, it's very simple in use, offers competitive pricing and great ...
This application extends IIS 7.0 Manager by adding a new Reports option that gives you a few reports of the server and site activity.
This module provides IIS Manager 7 a "Recent Tasks" at the bottom of the Actions Panel where it keeps track of all the features you have used sorted by most recently used. It includes MSI to install and source code is also available so you can see ...
AppcmdUI helps writing appcmd commands by providing available options at each step so that you only need to pick the option from the list.
O sistema de configurações do IIS 7, mencionado no post anterior, possui outra característica interessante: ele é Delegável.
Isto, em termos simples, significa que usuários comuns, não-administradores do servidor podem efetuar alterações no IIS 7.0. Logicamente, há um controle de delgação, chamado "Feature Delegation" onde os administradores, de forma granular, dizem ao IIS quais características podem ou não ser delegadas, ou seja, alteradas.
Assim, por exemplo, pode ser que o administrador queira controlar quais documentos podem ser o Default Page dos sites hospedados. Deste modo, essa característica, Default Page não é Delegada, ou seja, não pode ser alterada.
Se isto não for verdade, o administrador delega essa características e indica quais usuários ou grupos (Active Directory, local ou IIS users) podem alterar tal característica.
Tal configuração pode ser feita a nível de websites, assim, 2 ou mais sites podem ter diferentes configurações de Delegação. O diagrama abaixo ilustra melhor tal situação:
Perceba, que dentro do arquivo applicationhost.config ("coração" do IIS e que possui suas configurações globais), há uma linha "overridemodedefault="deny". Isto significa, que determinada seção de configuração está bloqueada, ou seja, não é delegável. Assim, se algum desenvolvedor tentar criar um arquivo web.config e alterar essa seção, receberá um erro do IE durante a execução. Isto permite total controle do servidor e suas alterações, que ficam sob responsabilidade final do administrador do webserver.