Saturday, December 31, 2005

BizTalk 2004: Identity e Principal

Num projecto em que estou envolvido, existe uma camada de objectos que faz validações de segurança aplicacionais com base num contexto de segurança específico aquando da invocação. Foram definidos assim uma subclasse de GenericIdentity, MyIdentity; e um Principal a acompanhar, MyPrincipal (subclasse de GenericPrincipal). MyIdentity encapsula um conjunto de atributos extra sobre o utilizador actual. A segunda classe, MyPrincipal, limita-se a fornecer um interface strongly-typed sobre a primeira. Ambas as classes estão marcadas como serializáveis.


Já no BizTalk, as orquestrações iniciam-se criando uma instância de MyIdentity, que é preenchida com os tais atributos extra, e de seguida afecta-se a Thread corrente com um MyPrincipal criado com a identidade. Qualquer coisa como:


myIdentity = new MyIdentityNamespace.MyIdentity("jota", "administrator");


System.Threading.Thread.CurrentPrincipal = new MyIdentityNamespace.MyPrincipal (myIdentity);


Independentemente dos méritos da abordagem, levantou-se logo a questão: o BizTalk persiste esta informação quando se dá, por exemplo, uma desidratação numa orquestração?


A documentação do produto diz o seguinte sobre persistência:


The orchestration engine saves to persistent storage the entire state of a running orchestration instance at various points, so that the instance can later be completely restored in memory. The state includes:



  • The internal state of the engine, including its current progress.
  • The state of any .NET components that maintain state information and are being used by the orchestration.
  • Message and variable values.

A resposta, apesar do que possa eventualmente dar a entender o texto acima, é: não. Fiz uma pequena orquestração para testar esta situação, causando uma desidratação, e se até ela acontecer o MyPrincipal criado parecia estar na CurrentThread, tal como afectado, depois da desidratação já não estava lá. Coisas da vida. :-)


jota

Thursday, December 22, 2005

BizTalk 2004: às voltas com o Direct Binding

Quando uma mensagem é colocada na Message Box, e não existe nenhuma subscrição que a apanhe, são gerados tipicamente três (ou mais) erros no Event Log indicando a condição, como este:


The Messaging engine failed to process a message submitted by adapter:SOAP Source URL:/MyVD/MyWS.asmx. Details:Could not find a matching subscription for the message. This error occurs if the subscribed orchestration schedule or send port has not been started, or if some of the message properties necessary for subscription evaluation have not been promoted.


Este é possivelmente o erro mais frequente em desenvolvimento com BizTalk 2004, e geralmente é seguido da utilização do BtsSubscriptionViewer, incluido no SDK, para confirmar que subscrições existem realmente.


Quando se utiliza Direct Binding, no entanto, o que sucede não é bem isto. Como referi num post anterior, ao contrário do que a própria documentação pode deixar a entender, as mensagens enviadas com Direct Binding, apesar de parecerem invocações directas (síncronas) de orquestrações, passam pela Message Box. O que sucede então se uma orquestração publicar uma mensagem com Direct Binding e não existir nenhuma subscrição?


De forma semelhante ao primeiro cenário, vamos ter um erro no Event Log:


Microsoft.XLANGs.Core.PersistenceException: Exception occurred when persisting state to the database. ---> Microsoft.BizTalk.XLANGs.BTXEngine.PersistenceItemException: A batch item failed persistence Item-ID 77c8fa0a-d202-42c6-9ed8-49e3abfdd9db OperationType MAIO_CommitBatch Status -1061151998 ErrorInfo The published message could not be routed because no subscribers were found.


Ao contrário do que sucede no caso mais comum, no entanto, este erro corresponde a uma excepção que é gerada aquando do Send, na orquestração que faz o envio com Direct Binding, e não pelo motor do BizTalk ao avaliar as subscrições. As subscrições parecem ser avaliadas síncronamente, e a mensagem não chega a ser guardada na Message Box.


E não acaba aqui: se a orquestração for transacional (tipicamente, Long Running), o mecanismo de Compensação vai ser desencadeado, para reverter as acções eventualmente já realizadas. Se isto não for o pretentido, basta colocar o Send dentro de um novo Scope transacional Long Running, e adicionar um Exception Handler. Agora ficamos sem erro no Event Log, e podemos tratar a situação como pretendermos.


Pode não parecer, mas o BizTalk tem muita piada. :-)


jota

Monday, December 19, 2005

BizTalk 2004: Tool para remover policies/vocabulários

Tenho estado a utilizar a framework de deployments do Scott Colestock/TraceOfThought para BizTalk 2004, mas esta tem uma pequena limitação, o facto de não permitir a remoção de policies ou vocabulários, apenas o seu "undeployment". Para resolver, fiz uma pequena aplicação consola que remove policies/vocabulários, e que se pode usar em scripts durante o desenvolvimento.


Se alguém estiver interessado, o zip com a solução está aqui (para VS2003). Uso a aplicação incluída na framework do Scott para fazer o deployment, e a minha para fazer o undeploy/remoção.


 

Monday, December 12, 2005

BizTalk 2004: Message Brokers com Orquestrações


O Message Broker é um padrão de desenho conhecido, e que tem uma implementação simples com BizTalk 2004. Esta implementação baseia-se totalmente nos mecanismos de Messaging do BizTalk: as mensagens entram por Receive Locations/Receive Ports, e existe um conjunto de Send Ports com subscrições com diferentes filtros, que encaminham as mensagens para diferentes destinos conforme as suas características/conteúdos. O mecanismo é simples, como referi, mas também um pouco limitado, porque só pode ter lógica implementada ao nível de componentes de messaging como os pipelines.



 


Assim, numa primeira abordagem, quis implementar um broker, mas colocando no meio, entre a recepção da mensagem/pedido e o envio para o seu receptor final, uma componente de orquestração. Criei uma orquestração que é activada pela recepção de uma mensagem num Web Service, faz algum logging, e depois publica essa mesma a mensagem de saída de volta para a Message Box, de onde será enviada para o seu destino pelos mesmos Send Ports da primeira solução.
O pormenor desta implementação é que para se publicar para a Message Box sem ter associado um Send Port, se deve obviamente usar o Direct Binding.
Adicionalmente, deve seleccionar-se a opção que indica que “Routing between ports will be defined by filter expressions on incoming messages in the Message Box database”.
Finalmente, os filtros que haviam sido definidos para o primeiro cenário podem ainda ser utilizados, mas é necessário alterar as condições de forma a deixarem de testar o ReceivedPortName, vão basear-se apenas nas características das próprias mensagens (o que, por agora, é aceitável).


 


Esta solução funciona, mas o meu objectivo era ter um broker entre orquestrações: um componente que receba uma mensagem M, faça alguma coisa com ela, e publique M1 (uma nova mensagem, baseada em M com poucas alterações) de volta para a MsgBox, onde seja consumida por uma de N sub-orquestrações consumidoras. A solução é, no imediato, simples: basta criar as tais N sub-orquestrações, e para cada uma delas especificar no Receive Port que as activa que o Port Binding é Direct com a opção "Routing between ports will be defined by filter expressions on incoming messages in the Message Box database" selecccionada. De seguida, criei filtros distintos nas Shapes de Receive para cada uma das sub-orquestrações (por exemplo, no orquestração "ProcessaSalarios" coloquei "Estado == ProcessarSalarios", em "ProcessaFerias" coloquei "Estado == ProcessarFerias", etc.).


 


Esta solução funcionou nos testes que efectuei, mas tem um problema: quando alguma destas orquestrações envia uma mensagem M2 para um Send Port (por exemplo, para debug), se os filtros estiverem como descrevi acima e não tivermos alterado o campo Estado que referi no exemplo, o BizTalk vai entrar em loop: M2 é gravado na MsgBox, sendo enviado para o Send Port e igualmente de novo para a orquestração que processou o M1 correspondente. Nada conveniente, um ciclo infinito no BizTalk.


 


Como resolver? Por exemplo, adicionando condições aos filtros das sub-orquestrações. O problema é que, por se usar Direct Binding, muito poucas propriedades da mensagem M1 são publicadas no contexto de M2 (como se pode comprovar na coluna IsPromoted das Context Properties no HAT), logo não existem valores interessantes com que se possam fazer filtros.


 


Para resolver isto, optei por adicionar ao Property Schema que já tinha, com as propriedades promovidas do schema de M/M1/M2, uma nova propriedade, a que chamei "IsFromBroker" (obrigado aqui ao Pedro Teixeira da MS pela dica). Esta propriedade, ao editar o Property Schema, tem de ter o atributo "Property Schema Base" com o valor "MessageContextPropertyBase" , uma vez que não se trata de um valor obtido do conteúdo da mensagem.


Atribuí depois a esta property o valor True no Broker, e a False em cada uma das "sub-orquestrações" que enviam M2:


 


theBrokerRequestMsg(theNamespace.IsFromBroker) = true; // ou false


 


Adicionei também aos filtros das sub-orquestrações a condição "IsFromBroker == true".


 


Finalmente, resta o problema de esta nova propriedade não ser passada para a MsgBox com o Direct Binding. O truque aqui está em recorrer à correlação: criei um Correlation Type apenas com o IsFromBroker (mas podia ter também qualquer outra propriedade de que se queira forçar a promoção), e um Correlation Set com base neste tipo, que usei no Send Port do Broker (coloquei-o como Initializing Correlation Set). Note-se que aqui não se está a usar o mecanismo de Correlation por si, mas apenas como uma forma de forçar o BizTalk a promover propriedades que normalmente não o seriam, devido à utilização do Direct Binding


Ao que parece, no BizTalk Server 2006 já não é necessário recorrer a este expediente.


 


E voilá! Mais complexo de explicar do que fazer. :-)


 


Para mais informações sobre este tema, recomendo dois artigos do blog do Charles Young, sobre Direct Binding e Flexible Correlation, que complementam muito bem a documentação do produto.


Finalmente, uma chamada de atenção: no livro "BizTalk Server 2004 Unleashed", página 363 sobre "Direct Port Binding Between Orchestrations", diz-se que: "Direct binding bypasses the messaging system. Messages that use this technique remain withing the orquestration engine." Estas afirmações estão incorrectas, como a primeira abordagem ao broker com orquestrações demonstra. Aliás, segundo o primeiro dos dois artigos que referi, a única coisa que não passa pela Message Box são as invocações Call Orchestration.


 


jota

?>

Tuesday, December 6, 2005

DSL Tools para versão final do VS2005

Saiu mais uma build das DSL Tools (Novembro 2005), desta vez já com suporte para a versão definitiva do VS2005, um pouco mais tarde que o WCF e WWF. Além de melhorias de qualidade e desempenho (o que me deixa muito contente), parece que há duas novas funcionalidades significativas: validação de modelos (que vem acompanhado de um novo walkthough) e deployment de editores com MSIs. Inclui-se também um guia para fazer a actualização da versão de Setembro para esta.


Ainda não há nova versão do "DSL Dm -> Dd", não deve tardar. E o SDK do VS2005, um requisito das DSL Tools, está aqui.


jota

Monday, November 28, 2005

BizTalk 2006: Beta 2

Menos de um mês depois da última CTP, acabou de sair a Beta 2 do BizTalk 2006. Não tivemos ainda tempo de testar, mas a VM já intalada tem uns modestos 10,5Gb (com VS2005 RTM, mas com SQL 2000 em vez de SQL 2005), e vem com os novos adapters num setup independente, para coisas como da J.D. Edwards, PeopleSoft, Siebel, Oracle e Tibco (ao todo são 26 adapters, incluídos no produto e não vendidos à parte). Suponho que a questão que se pode colocar agora é: e já se pode usar? a resposta do Scott Woodgate é: "[it's a] production beta for early adopters".


Como ter acesso?



  1. Go to http://beta.microsoft.com and log in with your MS Passport account.
  2. Click on "Sign in as Guest" and use this Guest ID: BizTalkBetaTeam.
  3. On the left side, under "Program Info," click on "Survey" and complete the nomination form, and submit it.

You should subsequently receive a confirmation email with further information about downloading hte beta, newsgroups, etc.  After you've received that letter, you'll be able to download the good bits.


jota

Saturday, November 19, 2005

Transactions for the Common Type: finalmente!

Quando estive no TechEd este ano com o Tiago Pascoal, vimos uma apresentação do Juwal Lowy sobre as Transactions for the Common Type, no Dutch .Net User Group. Nesta apresentação foi-nos pedido silêncio sobre o tema, que viria a ser publicado na Msdn Magazine, como finalmente aconteceu.


O artigo basicamente descreve uma forma de implementar transacções com variáveis de tipos como int e string, permitindo fazer commit/rollback de alterações ocorridas dentro de scopes transacionais. A técnica baseia-se na utilização do novíssimo (e fantástico) System.Transactions, bem como em Generics que são usados para implementar Volatile Resource Managers, e finalmente em serialização... e vale a pena ler com muita atenção.


Aqui fica o link: http://msdn.microsoft.com/msdnmag/issues/05/12/transactions/default.aspx


jota

Friday, November 18, 2005

Demo GhostDoc

Nem de propósito: falou-se aqui do GhostDoc, e eu tinha feito uma pequena demonstração interna dessa aplicação, com o Camtasia, para ensaiar para as gravações que vou fazer das demonstrações de BizTalk 2006 e DSL Tools que fiz no TechDays.


A demonstração está em Flash e ocupa 9Mb para 2 minutos de demo.


jota

Friday, November 11, 2005

BizTalk 2006 - nova CTP

Já está no blog do Scott Woodgate, por isso não é novidade, mas aqui fica à mesma: saiu uma nova build do BizTalk 2006 na 2a-feira, que está disponível no BetaPlace tal como o Beta1 anterior, e parece que o Beta 2 (que já deve ter licença go-live) também está para muito breve. Este CTP já funciona com o RTM do SQL2005 e VS2005, e tem alterações muito interessantes em termos de simplificação do modelo de licenciamento. Ainda não tive oportunidade de experimentar como está mais esta build (está a acabar o download :-)), depois digo qualquer coisa.


A terminar: não sei se toda a gente sabe, mas a Microsoft Portugal tem uma página específica sobre o tema de Arquitectura, com links para Webcasts e uma selecção de Weblogs nacionais e internacionais. Está aqui, e recomenda-se.


jota

TechDays 2005 - It's Over.

Acabou o TechDays! Não conheço o balanço oficial, mas parece-me que o evento foi um grande sucesso, claramente a repetir :-). Houve sessões excelentes, muita dinâmica na troca de ideias, muita gente de muitas empresas e com diferentes experiências.


Aproveito para deixar aqui o URL para o PowerPoint com a segunda apresentação, a ARC04, sobre DSL Tools e Model Driven Development, e aflorando um pouquinho as Software Factories. Apesar de as demonstrações quase terem causado surpresas (não esquecer que as DSL Tools ainda não estão em versão beta, e que tive de usar o VS2005 Beta2!), parece-me que a sessão correu bastante bem, e - na minha opinião claro - este é um dos temas mais interessantes de todos os que foram abordados na conferência.  Podem fazer o download aqui. Mais uma vez, obrigado a quem esteve presente na sessão, e se tiverem interesse em discutir o tema ou trocar ideias, os meus contactos estão no PPT. Também dei uma entrevista ao Ricardo Figueira (excelente ideia, Ricardo!) sobre DSL, que suponho possam ver em breve.


Na sessão referi dois downloads que funcionam com as DSL Tools, deixo aqui os URLs:



jota

Wednesday, November 9, 2005

TechDays 2005!

Para quem não esteve no primeiro dia do TechDays, o maior evento técnico que a Microsoft já organizou em Portugal, queria deixar aqui alguns apontamentos: para já, o evento está com uma dinâmica espectacular, com muita gente (mais de 1000 pessoas!), e àparte não haver soft-drinks pelos corredores :-) está muito parecido com o ambiente do TechEd.


Houve algumas sessões muito interesssantes (além da minha! :-)), como a do Rafal sobre MSF v4, e recomendo a todos que procurem o PowerPoint e o estudem, bem como o que já está disponível sobre "MSF Agile".


Se quiserem, podem também fazer já o download do PPT da minha sessão  (recordo: "CTS01 - O que há de novo no BizTalk Server 2006"), e quando tiver tempo vou colocar também um Zip com as zero-code-demos que fiz. Aproveito para agradecer a todos os que estiveram presentes, especialmente dado que foi uma das sessões do primeiro slot do dia. Se alguém quiser fazer algum comentário sobre a sessão, ou pretender algum esclarecimento adicional sobre BizTalk 2006, contactem-me p.f. por email.


Finalmente, se ainda tiverem oportunidade, 75€ continua a ser um bom preço, mesmo para 2 dias de conferência. Aproveitem, que ir a Amsterdão para o ano ao TechEd, ou a Berlim no ano seguinte, de certeza que vai ser muito mais caro. :-)


Amanhã vai haver uma sessão sobre Linq, pelo Luis Falcão, e sobre patterns de SOA, pelo José António Silva, que devem valer especialmente a pena e que recomendo. A sessão de Linq, bem como a de WCF (Hugo Batista) e a de DSL Tools que vou fazer, são 3 sessões que saem um pouco do espírito "Ready: SQL 2005 + VS 2005 + BizTalk 2006", sendo sobre desenvolvimentos que ainda estão por finalizar, mas se quiserem espreitar o futuro, estejam lá.


Em relação à sessão de DSL Tools (ARC04), na quinta-feira, é provável que a sala seja pequena  face ao número de interessados (apenas 125 lugares), pelo que vos recomendo que cheguem cedo. E deixo-vos com as palavras do Rafal sobre o tema: "DSL's are one of the coolest ideas in existence today. Will it work? Who knows?! But it's so cool!"


jota

Sunday, November 6, 2005

Wireless @ TechDays 2005

Uma fonte que prefere permanecer anónima pediu-me para divulgar que vai estar disponível acesso à Net por wireless no Centro de Congressos de Lisboa durante todo o evento, pelo que se podem levar portáteis ou pockets.


Outra expressão muito repetida pela minha fonte foi "Pah, isto vai ser espectacular!", seguido de "E as inscrições continuam abertas." :)

Friday, November 4, 2005

Dicas a correr: SD Times e PodCasts

O Software Development Times (SD Times) é a melhor publicação que conheço sobre o estado da indústria do software. Sem ser focada apenas numa tecnologia, inclui notícias sobre o que fazem os grandres como a Microsoft, IBM, BEA, Sun, Oracle ou SAP, bem como dos mais diversos fornecedores de tecnologia. Recomendo vivamente. Está disponível uma subscrição gratuíta em formato PDF, e a publicação (com cerca de 40-50 páginas) é quinzenal.


Outros apontadores que vos queria deixar são para alguns PodCasts, cada vez mais disponíveis para temas de tecnologia:



  • Entrevistas Team Agile, feitas por Roy Osherove a pessoas como o Christian Weyer, Ingo Rammer, Juval Löwy, ou Steve Cook (esta última é muito interessante, sobre Software Factories, UML2.0, DSLs, etc.).
  • Office Zealot, com moços como o Jan Tielens.
  • Ron Jacobs, dos MS Patterns & Practices. Há podcasts com o Beat Schwegler, o Clemmens Vasters e Arvindra Sehmi, o Cazzulino, e outros. A qualidade não é sempre a mesma, e o Ron Jacobs na tentativa de clarificação dos temas pode parecer um vendedor, mas vale bem a pena, e os temas são muito actuais.
  • E, é claro, o Channel 9, onde além dos MP3 têm vídeos que podem ver nos Pocket PC's. :-) Recomendo vivamente tudo o que eles publicaram recentemente sobre o BizTalk e Workflow, e a série ArcCast, do Harry Pierson, também é interessante apesar do formato não me parecer o melhor (parecem mini-comunicações escritas). Não deixem de ouvir o episódio 5, pelo menos, e já agora vejam o blog dele, onde há pelo menos 3 posts muito interessantes sobre MDD.

Vemo-nos no TechDays :-)


jota

Sunday, October 23, 2005

TechDays

Nos dias 8 a 10 de Novembro vai decorrer no Centro de Congressos de Lisboa o evento TechDays, organizado pela Microsoft, e que vai ser uma espécie de TechEd Português.

 

Vou estar neste evento a fazer duas apresentações. A primeira, a apresentar e demonstrar as novas funcionalidades do BizTalk 2006 face ao 2004. A versão 2006 é uma evolução face à anterior, apresentando ainda assim um conjunto muito interessante de novidades, tanto em aspectos operacionais (como sejam os "deployments") como em termos aplicacionais (como o routing de erros, o wizard de flat-file, e outras). Esta apresentação vai ser semelhante a sessões como a CTS304, CTS306 do TechEd, ou DAT314 do PDC.

 

A segunda apresentação vai focar-se nos desenvolvimentos da área de ferramentas de modelação DSL, uma área pela qual sinto muito interesse actualmente e que PODE vir a revolucionar a forma como actualmente se produz software. Tem tudo a ver com software factories, um tema que já abordei em alguns posts recentes. A apresentação vai ser semelhante a sessões como a ARC302 e  ARC411 do TechEd, e TLN311 do PDC.

 

A terminar: tenho ouvido algumas ocasionais queixas relativamente ao preço da inscrição neste evento... e deixem que vos diga. Por 75€, é de borla. :) Be There!

Tuesday, October 18, 2005

Software Factories: O Livro

Aqui há umas semanas atrás, enviei um post sobre Software Factories em que referi o livro do Jack Greenfield e Keith Short.


Comecei ontem a ler este livro, e pelas primeiras 50 páginas, estou a achar ser um dos melhores livros de tecnologia que li nos últimos tempos. Lembra-me os livros de Engenharia de Software, e além de se iniciar com uma explicação geral sobre o que é uma Software Factory (cada vez acho que Software Workbench é uma expressão melhor), perde algum tempo a explicar em que que falhou o que paradigma actual, assente no desenvolvimento Object Oriented


A argumentação está em volta da constatação de que o desenvolvimento de software, hoje, é no fundamental igual ao que era há 30 ou 40 anos atrás. Continua a ser feito "manualmente", por trabalhadores (craftsman) altamente especializados, com muitos projectos a serem mal sucedidos ou excederem os custos, etc. Coisas que a outras áreas de organizações não seriam admitidas, em termos de custos e resultados obtidos, são frequentes nas TI's.


A partir daqui, os autores propõem/especulam estarmos prestes a ter um "paradigm shift", uma alteração de modelo em que se vão aplicar técnicas da Industrialização à produção de software, no sentido de aumentar aspectos como a produtividade e previsibilidade. E por onde começar? por onde o Object Oriented falhou.


Um reparo que os autores fazem é que aquilo que advogam não é que nos tornemos "empregados fabris", mas antes que deixemos de ter de nos preocupar com as "menial tasks" que tantas vezes nos roubam horas, passando a ter à nossa disposição ferramentas e ambientes (aliás, e directamente do título do livro: "Patterns, Models, Frameworks and Tools") que permitam o salto pretendido.


Ainda vou no início, mas recomendo vivamente.


jota

Thursday, September 22, 2005

Windows (Workflow+Communication) Foundation

Dois Três conteúdos de interesse:


Um vídeo disponível no TheServerSide.Net, com uma entrevista ao Scott Woodgate (PM do BizTalk Server) e ao Paul Andrew (primeiro autor do livro de WWF), sobre o Windows Workflow Foundation, efectuada pouco antes do PDC. A descrição está aqui.


Outro vídeo, disponível no Channel 9, com Scott Woodgate e "the team" (Abhay Parasnis e Paul Andrew), tem uma introdução ao WWF, e inclui uma pequena demo das potencialidades do WWF.


Também de muito interesse é um artigo novo, escrito pelo Vasters "que tem uma empresa como a Create" :-), com uma introdução ao Windows Conmunication Foundation/Indigo.


Muito interessantes, especialmente para quem não saiba nada sobre estas tecnologias. (ps: na minha modesta opinião, o WWF foi a grande novidade do PDC2005).


jota

Wednesday, September 21, 2005

PDC2005: DSL Tools

Podem recordar-se que há alguns dias atrás enviei um post sobre Domain Specific Languages (DSL) e Software Factories. Uma das apresentações mais interessantes que vi no PDC foi precisamente sobre a mais recente CTP das "DSL Tools" da Microsoft, disponibilizada para download durante o PDC (nota: esta versão, tal como de vários outros desenvolvimentos ainda não definitivos, só funciona com o VS2005 Beta2, não a testem com o VS2005 Release Candidate!). A apresentação foi feita por Jochen Seemann, que já tinha feito uma semelhante no TechED, e passou pelos vários passos de criação de uma DSL:



  1. Definir o modelo/semântica do domínio (entidades, relações, propriedades, etc.);
  2. Definir uma notação (shapes/decorators);
  3. Mapear a notação para o modelo do domínio.
    Neste ponto as ferramentas não conseguem fazer tudo (ex: lidar com double-clicks numa forma num diagrama, adivinhar que código gerar :-), etc.), pelo que para determinadas tarefas é necessário recorrer-se ao SDK. A geração de código é feita à-lá-ASP, com um motor de transformações chamado "t4" (no GAT era t3).

De seguida veio a demo da praxe, em que vimos que o produto virá com templates para modelar vários diagramas UML (!...), e uma "DSL Mapping Tool", para mapear entre vários pontos de vista de uma aplicação (vários diagramas em várias DSLs, com pontos de contacto).


Quanto ao futuro: o RTM deve ser no 1º trimestre de 2006, e uma versão 2 lá por altura do "Orcas", a versão so Visual Studio a seguir ao 2005, sendo ainda provável que pelo meio saiam actualizações.


Recordo que o melhor sítio para encontrar informação sobre DSL e Software Factories é este.


PS- A sessão chamou-se "TLN311 - Visual Studio 2005 Team Edition for Software Architects and Future Directions in Modeling Tools", e o PowerPoint ainda está disponível no site do PDC.

Monday, September 19, 2005

PDC2005: Os livros

A ida ao PDC foi também uma oportunidade para adquirir uma série de livros que tinha nos "favourites", entre clássicos e novidades, a bons preços. Apesar de não ser totalmente on-topic, deixo-a aqui:


A First Look at Sql Server 2005 for Developers, por Bob Beauchemin e outros (Addison-Wesley)
Agile Project Management - Creating Innovative Products, por Jim Highsmith (Addison-Wesley)
Asp.Net 2.0 - A Developer's Notebook, por Wei-Meng Lee (O'Reilly)
Design Patterns - Elements of Reusable Object-Oriented Software, pelo GoF (Addison-Wesley)
Microsoft Content Management Server 2002 - A Complete Guide, por Bill English e outros (Addison-Wesley) (oferta!)
Presenting Windows Workflow Foundation - Beta Edition, por Paul Andrew e outros (Sams Publishing) (oferta!)
Refactoring to Patterns, por Joshua Kerievsky (Addison-Wesley)
Rapid Development - Taming wild software schedules, por Steve McConnell (Microsoft Press)
Software Factories - Assembling Applications with Patterns, Models, Frameworks and Tools, por Jack Greenfield e Keith Short (Wiley)
Visual Studio Tools for Office - Using C# with Excel, Word, Outlook and Infopath, Eric Carter e Eric Lippert (Addison-Wesley)
Take Back Your Life - Using Outlook to Get Organized and Stay Organized -  Sally McGhee (Microsoft Press)
The Rational Guide To Sql Server 2005 Service Broker - Beta Preview, por Roger Wolter (Rational Press)
The Rational Guide To Sql Server 2005 Integration Services - Beta Preview, por Donald Farmer (Rational Press)


O que faltou? livros sobre Indigo/WCF, já que (ainda) só há o do Pallman, que me des-recomendaram.
Agora, só falta ler. :-)

Sunday, September 18, 2005

PDC2005: Microsoft, Interoperabilidade e Web Services

Doug Purdy, numa apresentação sobre XML, foi muito claro sobre o compromisso da Microsoft com a Interperabilidade e adopção de standards: "We really are commited to Interoperability. And do you know why? Because we believe it will allow us to sell more software." O argumento pode ser economicista, mas esse empenho é verdadeiro (basta ver o suporte aos standards ws-*).


Já num painel de discussão, moderado pelo Don Box, sobre "Web Services for the world" (isto é, WS's, disponibilizados ao público em geral na .Net), representantes do PayPal e da Amazon (Jeff Bar) descreveram as respectivas estratégias. Para a Paypal, a opção é por universalidade, pelo que procuram que os serviços de pagamento que disponibilizam sejam acessíveis por qualquer tecnologia cliente. Para isto, a opção foi pela distribuição de um SDK que permite esse acesso via Web Services, respeitando os requisitos de segurança da PayPal . Já para a Amazon, a opção é inversa: os seus serviços são disponíveis, directamente, mas de de duas formas apenas (POX sobre HTTP e SOAP), e quem quiser utilizá-los deve recorrer a um destes dois. A ideia é ter serviços que são muito simples de utilizar, e educar os seus clientes na sua utilização.
Nesta sessão esteve também presente um representante da Msn Search (Seth Dempsey), para falar da camada de WS's de pesquisa da Msn, lançados recentemente, que foi "provocado" pelo Don Box relativamente a esta mesma questão, e respondeu que os serviços são acessíveis por SOAP e como feeds RSS. Quanto ao suporte de outras formas de acesso, o mais provável é que se promova o seu desenvolvimento pela comunidade.


Outra questão interessante foi sobre versionamento, e as respostas foram curiosas: a PayPal distribui novas versões do SDK, o que na prática corresponde a multiplicar o problema por dois (versões de serviços+SDK). A Amazon simplesmente muda o URL/WSDL, cada vez que faz um upgrade, passando por exemplo para "/v3". O versionamento de Web Services/SOAP (por exemplo, para suportar contratos alterados) é um problema complexo, e esta solução é realmente a mais simples e pragmática.


A pessoa da PayPal referiu ainda que a maior parte dos clientes grandes/médios utilizam clientes em .Net ou Java, e que os pequenos comerciantes utilizam mais plataformas como Php, Python, algum .Net, e pouco Java. Por curiosidade, o PP está desenvolvido em C++. No mundo open source, o suporte para standards Ws-* é na realidade muito reduzido. Já o Jeff Bar referiu como problema, especificamente com hostings partilhados em plataforma Windows Server, o problema da instalação de certificados digitais por utilizador.


Em resumo, a mensagem é: fazer os interfaces e a forma de acesso o mais simples possível.

PDC2005: the end

O PDC acabou, e é altura de pensar sobre o que foi apresentado, e de que forma isso deve ou não alterar os rumos e desenvolvimentos em curso ou planeados. Em conversa com as outras pessoas do grupo (éramos 10 tugas), ficou uma sensação de "agora, regresso à vida real", onde há projectos para fazer em tecnologias que ainda são as actuais, investimentos a manter, retrocompatibilidades, etc. Relacionado com isto está o "não vamos estar a fazer xxx, se vem aí o yyy!" Um exemplo simples: quem vai fazer um motor de workflow hoje, em tecnologia Microsoft, para implementar por exemplo máquinas de estado, quando está para chegar o WWF, que até pode ser exposto em Indigo (ups, digo WCF)? Mas se não se fazem coisas, onde está a inocação, e o que se vai fazer até lá? São preocupações do presente.


Independentemente disto, a verdade é que se vivem dias muito tecnologicamente animados no mundo Microsoft. Já falei de novidades como o Linq, WWF e o BizTalk vNext, mas há muitas mais, desde o novo SharePoint e o Office 12, às novas DSL tools que acabaram de sair (não estou a encontrar o link no site) e que já modelam coisas como o próprio UML, o Vista numa build entre o Beta1 e o Beta2, os usos de RFID, P2P, People Near Me, o WCF ex-Indigo, o Longhorn Server, o WPF ex-Avalon, o WinFS, o Windows 2003 R2 com suporte para computação intensiva, o Windows Mobile 5, o VS 2005 Release Candidate que já levo comigo, o VSTO 3.0, etc.....


É muita coisa, mas não quereria estar noutro lado. Muitas das coisas só vão sair daqui a 1 ou 2 anos, mas valeu a pena a vinda, pela tecnologia, pela proximidade com o "coração da tempestade" (e em particular o "WELA", a tecnologia mais espectacular que vi no PDC - mas sobre isso não posso falar), e também pelo companheirismo entre as pessoas do grupo.


Nos próximos dias vou enviar outros posts sobre coisas que vimos por lá.

Friday, September 16, 2005

PDC2005: day three (parte 1)

Quando voltar para Lisboa envio posts sobre as sessões a que fui nos vários dias, mas agora quero só deixar um apontamento: fui ver uma sessão sobre o BizTalk “vNext”, ou seja, a versão que se seguirá ao BizTalk 2006 que será lancado no 1º trimestre de 2006, e fiquei absolutamente impressionado com as demos! Parte do que foi mostrado parecem ser “apenas” melhoramentos de usabilidade (no Mapper, por exemplo, a quantidade de evoluções é mt significativa), mas o além disto há um novo Solution Designer de utilização muito simples e intuitiva, as orquestrações serao substituidas pelo Windows Workflow Foundation (WWF) - ambos os mecanismos foram desenvolvidos pela mesma equipa (nota: as orquestrações antigas - ou seja, os actuais .odx - vao continuar a ser suportados), e na camada de transporte o Windows Comunication Foundation vai ter um impacto significativo (acho que todos, mesmo aqui, acham que Indigo era um nome muito melhor).


Ver estas coisas em eventos como o PDC tem destas coisas: o BizTalk 2006 ainda não saiu, e já apetece brincar com o vNext. :-) (podia tb falar do Linq, no C# 3.0, quando a .Net 2.0 só chega em Outubro, e etc.).


Sobre isto do BizTalk vNext, há um video no Channel 9 que podem achar interessante. Enjoy.

Wednesday, September 14, 2005

PDC2005: day two

Mais algumas novas : o dia comecou com 2 keynotes, tal como ontem. No primeiro, as novidades apresentadas incluíram o Windows Workflow Foundation (WWF), o novo motor de workflow disponivel para desenvolver aplicações (tanto human como system workflows), e totalmente configuravel por XML (o site é www.windowsworkflow.net), que é um espanto absoluto. Parece que há uma beta nos DVDs, e deve estar disponivel para download, suponho. Este tem um designer catita integrado no VS2005 (tipo DSL), mas também se pode fazer o XML a especificar as sequências/parallels/delays/etc. "à mao" em Xml (noutra sessão, o Don Box fez uma demo simples mas muito ilustrativa).


Outras 3 novidades referidas foram a suite Microsoft Express, que inclui o Acrylic (aplicação de desenho, tipo Macromedia Fireworks), o Sparkle (para animações e interactive design) e o Quartz, um novo web designer standards-compliant (o novo FrontPage?).


A terminar as novas do primeiro, falou-se do Visual Studio Tools for Aplications (VSTA), o novo VBA, para scripting/customização de aplicações. Interessante, também.


No segundo keynote falou-se principalmente do Office “12” e especificamente do novo SharePoint “v3”. Depois digo um pouco mais sobre isto. Ainda fui a uma sessao do novo Infopath “12”, cujos formularios agora podem ser vistos e preenchidos na web (incluindo Firefox!, Safari!, e dispositivos móveis :-)), e a outra sobre RFID (Radio Frequency Identification), que tem aplicações muito interessantes para lojas, armazéns, segurança, etc.


Depois volto aos temas de hoje, já a seguir (numa tarde com uma agenda cheia de temas a competir por presença) há uma sessão sobre customização do SharePoint v3 (site definitions, templates, etc.). Ate' logo.

PDC2005: day one

Muita gente deve ter visto o keynote do Bill Gates+Jim Allchin, que foi transmitido na net. Dessa sessão, infelizmente algo longa, para mim as grandes novidades foram o Office 12, que tem um modelo de interacção renovado (alem de estar baseados em novos formatos, xml, tambem eles muito interessantes), e muito especialmente uma coisa chamada “LINQ” (Language Integrated Query), que permite fazer queries a varias fontes de dados, de forma uniforme. Nao sei se isto tem a ver com o Comega ou C# 3.0, mas pode ser visto como um paralelo, para queries, ao que o Indigo faz para as comunicações. Pode fazer-se uma unica query (nota: escrita no codigo da nossa aplicação, como C# “normal”), que faz um join entre dados num XML, num array, num Sql Server, etc... absolutamente impressionante!


Também se viram bocados do Atlas (muito parecido com o Ajax.Net), que parece ter tido uma release hoje, e outras novidades no Vista, além de um pouco do que está sob o véu que ainda cobre o “sharepoint v3”, e que vai ser descoberto ao longo da semana.


Quanto às outras sessoes do dia, que acho o mais fraco comparando com os que ai vêm, estive em sessões sobre o Team Foundation Server, uma muito interessante - apesar de superficial - sobre P2P no Vista/Indigo (alias, para mim, isto do P2P vai ser mesmo grande, na visão da MS), em metade de uma sessão sobre o Groove, e a terminar numa sessao interessante sobre o novo formato XML dos documentos Office (docx, xlsx e pptx).


Também já levo comigo uma nova build do Vista (entre o beta1 actual e o futuro beta2), que vai substituir o beta1 que tenho instalado, entre varios DVD's com muitos gigas de novidade. Na quinta-feira parece q vai ser distribuida uma build do Vista Server, e consegui participar na oferta especial do i-mate Jarjar por cerca de USD 160 :-) Compare-se o preco no site da Expansys. Para uma máquina que corre Windows Mobile 5.0, tem Wi-Fi, GSM/GPRS (triband), 2 cameras, etc., é um excelente preço! :-)

PDC 2005 Stories: a chegada

À chegada aos EUA, na fila para a verificação de passaporte, alguem perguntou ao Zé Tó (aka Canoas) o que faz o Clemens Vasters, que passa muito tempo em evento à volta do mundo.


“O Vasters? Ele tem uma empresa, como a do jota.”


:-):-) (isto sim, um elogio)


Caso nao tenham visto ainda, a viagem estaá a ser documentada com fotos: vejam os albuns. :-)

Tuesday, August 23, 2005

Software Factories/Workbenches

O tema de software factories (e Domain Specific Languages) tem estado a surgir em força, a meu ver ligado em parte à necessidade de aumentar a produtividade no desenvolvimento de software, bem como a temas como geração de código.


Do que já li sobre o assunto, destaco o seguinte:


Language Workbenches: The Killer-App for Domain Specific Languages? (by Martin Fowler)
Artigo muito interessante que descreve a visão do autor sobre Language Workbenches (o nome que dá às "Software Factories"). De resto, a grande maioria dos artigos dele são de leitura muito interessante.


The Case for Software Factories, by Jack Greenfield (Microsoft)
Sobre a motivação para SF's, que saiu no Architect's Journal.


Software Product Lines, Software Factories, Guidance Automation Toolkit and Domain Specific Languages (PDF), by Clipcode
Também introdutório/motivacional, mas tem vários links interessantes a visitar.


Software Factories Assembling Applications with Patterns, Models, Frameworks and Tools (PDF), by Jack Greenfield and Keith Short (Microsoft)


E o livro, na Amazon: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, por Jack Greenfield, Keith Short, e outros.


Para quem já tem o VS2005 Beta 2 instalado, um conceito muito interessante - parte integrante das funcionalidades de "SW Factories" - é o do Guidance Automation Toolkit, que permite programar/configurar extensões para o VS2005. Um exemplo clássico é ter um "wizard" de criação de uma nova Solution, que depois de pedir alguns dados ao utilizador, gera projects para Data, Business, Service, etc., preenche configurações como a Strong Key e a Company, gera código de acesso a dados, inclui as classes da Enterprise Library, etc. A primeira vez que ouvi falar disto foi na conferência de Patterns&Practices em 2004 em Reading (UK), numa apresentação sobre o EDRA pelo Wojtek Kozaczynski, e motivado inicialmente pela complexidade de configuração desse desenvolvimento. Este é um dos sites de referência sobre o GAT (o blog do Cazzulino é o outro).


A terminar, duas notas soltas:


Thursday, August 11, 2005

Oracle e Enterprise Library

(em resposta a um pedido num comentário)


Para se usar o Enterprise library para conexão ao Oracle deve usar-se a aplicação "Entreprise Library Configuration" que é instalada com a Entreprise Library. Efectuar os passos seguintes:


1. Abra a aplicação, vá a "File > Open Application" e escolher o web.config ou a app.config da aplicação a configurar.


2. Clicar com o lado direito do rato sobre “Application” seleccionar “New > Data Access Application Block”, e surge a configuração de acesso a bases de dados é mostrada.


Screenshot1


3. Escolher uma nova “Database Type”, para Oracle, pois por omissão só vem uma criada para SqlServer, usando o botão direito do rato sobre “Database Types” e escolhendo Oracle.


Screenshot 2


4. Criar a conexão à base de dados usando o botão do lado dto do rato sobre “Connection Strings > New > Oracle Connection String”


5. Criar os parâmetros da “Connection String” com nome do parâmetro/valor que vão ser usados para aceder à base de dados Oracle.


Screenshot 3


6. Criar uma nova instância, escolhendo o tipo de base de dados “Oracle” e a conexão à base de dados “Oracle Connection String”. O nome da instância é o parâmetro que vai ser usado no código.


Screenshot 4 

7. Exemplo de invocação (C#):

Database database = DatabaseFactory.CreateDatabase(“Oracle Instance criada no ponto 6”);
DBCommandWrapper command = database.GetStoredProcCommandWrapper("ex. Procedure/package");
command.AddInParameter("Parameter name", DbType.AnsiString, parameterValue);
database.ExecuteScalar(command);


Tiago Oliveira

Thursday, July 28, 2005

Excel e listas offline no WSS

Em conversa de café com algumas pessoas da Microsoft, fiquei a saber de uma feature interessante do WSS + Excel, nomeadamente da possibilidade de ter listas criadas e editadas no Excel sincronizadas com listas WSS, e em funcionamento offline.


Melhor ilustrar:


O primeiro passo é criar uma tabela no Excel 2003, como esta. A seguir cria-se uma lista no Excel, e escolhem-se os dados e indica-se que a lista tem cabeçalho. Depois de criada, é preciso publicar para o SharePoint, em Data > List > Publish List. Introduzem-se os dados de publicação, faz-se Next, confirmam-se os campos e depois Finish. Nesta altura o Excel vai criar a lista no WSS, e copiar para lá os dados do Excel, apresentando no final uma confirmação.


Depois disto, podemos ir verificar que no site/lista está tudo o que estava no Excel. Desligamos a rede, e vamos para o cliente recolher requisitos, bug reports, notas, apontamentos, etc. Voltamos ao escritório, e ou publicamos as nossas alterações, ou descartamos as alterações e actualizamos o Excel com o conteúdo da lista.


Voilá! Listas offline. :-)


jota

Tuesday, July 26, 2005

BizTalk 2006 CTP - Nota rápida

Um micro-post: na semana passada instalei numa VM o CTP do BizTalk 2006 que deram no TechEd EMEA, sobre uma versão do Bts2004 Sp1. A primeira coisa que se nota é que a instalação se fez num instante, com o instalador a ir buscar de forma automática todas as actualizações necessárias. Uma limpeza.


Depois de instalado, fiz alguma experiências muito simples, do tipo ler-de-pasta/escrever-para-pasta, e a melhoria das funcionalidades de gestão saltaram à vista: o novo conceito de aplicação, que agrupa vários artefactos BizTalk; o deployment (e redeploy) de soluções apenas com (Botão direito rato)->Deploy, e a nova consola de gestão.


Pode ser uma versão evolutiva, mas não deixa de ser muito interessante.

Friday, July 22, 2005

TechEd EMEA 2005 e Excepções

Uma das apresentações interessantes a que assisti foi do conhecido David Platt, "Exception Handling Best Practices". A sessão podia ter sido melhor, mas uma vez que o tratamento correcto de excepções é sempre um desafio, acabou por ser uma boa escolha  (numa outra sessão sobre transacções,  Jubal Löwy chegou a comentar que "nunca ninguém fez tratamento de erros a sério" - e depois provou-o).


Vou referir apenas duas curioridades de entre os temas que ele abordou, o "overthrowing" de excepções, e um possível problema de segurança relacionado com a forma como são tratadas.


Em relação ao Overthrowing, a apresentação foi ilustrada com um exemplo muito simples, o Int32.Parse. Mostrou uma pequena aplicação WinForms que comparava o desempenho do Int32.Parse com o do Int32.TryParse. O TryParse é uma novidade do .Net 2.0, e caso a string recebida não seja um valor numérico, devolve false em vez de gerar uma excepção. Comparando o desempenho de 100 execuções sequenciais de ambos os métodos, o Int32.Parse é ligeiramente mais rápido, como esperado.
Adicione-se 2% de erros, e o Int32.Parse passa a ter um desempenho muito inferior. E com 50% de erros, o teste passava a demorar muitos segundos. Muito ilustrativo, o exemplo. Ter muita atenção a isto, e em situações que - em termos relativos - sejam frequentemente geradas excepções, deve equacionar-se fortemente a realização de testes que as evitem.


A segunda curiosidade é um problema de segurança relacionado com uma funcionalidade do VB.NET apenas, os "Exception Filters", funções devolvem bool e são invocadas para o runtime determinar se um determinado handler deve realmente tratar uma excepção. Sabendo-se isto, veja-se o seguinte exemplo (que retirei daqui):

WindowsImpersonationContext ctx = identity.Impersonate();
try { DoWork(); } finally { ctx.Undo(); }

Se tivermos este código numa biblioteca de classes, e for gerada uma excepção em "DoWork()", o runtime vai percorrer o call stack à procura de um Exception Handler. Alguém que esteja a utilizar a nossa biblioteca, em VB.NET, e desenvolva um Exception Filter, nesse Exception filter vai estar a executar código no contexto do utilizador "impersonado"... o que pode não ser o pretendido se este tiver permissões elevadas. E como esta, existem outras situações em que se podem gerar problemas de segurança.
Recorde-se que o finally só vai ser executado na segunda vez que o runtime percorre o call stack...


Não sei se isto é novidade para vocês, era para mim. :-)


jota


Ps: a propósito de segurança, foi publicada a primeira versão do "Web Services Security Patterns", um novo conjunto de recomendações. Inclui cenários de Intranet e Intranet, formas de autenticação e brokering, etc. Muito interessante, e disponível em Word e CHM. Está no workspace de Service Orientation Patterns.

Tuesday, July 12, 2005

Service Orientation - Reading list

O passar dos meses tem permitido materializar mais concretamente o que significa afinal Service Oriented Architectures ou Service Orientation (ou ainda, na variante Microsoft, Connected Systems).


Seleccionei abaixo as referências que achei mais interessantes no que respeita a este tema. Notar que estas são essencialmente práticas, que sei ter deixado muito de fora, e que me estou a focar na visão Microsoft. Seja como for, enjoy.


Architecture Insights from Tech-Ed 2005
Scott Bellware
Resumo interessante de várias apresentações do TechEd 2005 nos EUA.


Autonomous Services and the New Information Architecture
Stu Charlton


Dealing with the "Melted Cheese Effect"
Maarten Mullender, Microsoft
Esta série promete...


Contract-First Service Development e Techniques for Contract-First Development
Aaron Skonnard (Service Station, MSDN)
Muito concreto e com exemplos, foca no Contract-First, a produção do contrato como primeira fase de desenho, em alternativa ao Code-First.


Note on Distributed Computing
Samuel C. Kendall, Jim Waldo, Ann Wollrath e Geoff Wyant, Sun
Excelente artigo, mostra como é que se podem fazer mal Web Services (por voltas e voltas).


"SOA" doesn't really exist, does it?
Clemens Vasters
Desenhar arquitecturas SOA é o mesmo que desenhar outras arquitecturas. Por isso o A em SOA está a mais. Falemos de Service Orientation. Agrada-me a visão dele.


To Couple of not to Couple
Gregor Hohpe
O Hohpe resumiu, no TechEd, SOA como Loose Coupling e  Composição de Serviços.


Web Services Competency Workshop (in a Box)
Beat Schwegler
Deu uma Workshop em Lisboa muito interessante sobre este assunto, mesmo se focada apenas em Web Services, e nos seus problemas de versionamento, extensibilidade, e mapeamento para uma camada O.O.


Web Services Contrat First (WSCF)
Christian Weyer
O WSCF traz ao desenvolvimento em .Net o que já tinha quem desenvolve em BizTalk. Infelizmente, o VS.Net 2005 não vai tornar a tool obsoleta.


Hidden SOA Challenges (adicionado a 02-08-2005)
Paul Clarke
Artigo que levanta alguns pontos muito interessantes sobre SOA implementados sobre Web Services, nomeadamente sobre a facilidade com que se desenvolvem e invocam WS's, o que facilita a proliferação (descontrolada) de ligações entre sistemas. A solução sugerida passa pela necessidade de ter service governance, mas não resolve tudo. Uma questão sem respostas triviais.


E a terminar, é claro, os 4 tenets do Don Box, que apesar de interessantes e de ainda aparecerem nos slides da MS sobre o tema, não são a bíblia (afinal, ele mesmo diz que "The term SOA will have been beaten to death and the software industry will invent or recycle some equally vague term to replace it.")


jota

Sunday, July 10, 2005

TechEd EMEA 2005 e BizTalk Patterns Wizard

Acabadinho de chegar do TechEd em Amsterdão, com muitas coisas na bagagem para estudar e investigar (incluindo o primeiro build público do BizTalk 2006), de que postarei mais tarde, deixo por agora um link para um wizard de alguns patterns para BizTalk publicado por Jon Flanders (de quem vi duas apresentações, a primeira estes patterns, a segunda sobre "advanced orchestration design").


O setup instala 4 tipos de projectos no VS2003, numa pasta chamada "Pattern Templates". Os 4 templates são os seguintes:



  • FIFO - processar mensagens na ordem em que chegam;

  • Asynchronous Agregator - envio de várias mensagens, e processamento de respostas à medida que vão chegando, assíncronamente;

  • Interrupter - solicitar interrupção de uma orquestração em execução;

  • Component Retry - extenção do mecanismo de retry existente para adapters à invocação de  componentes .Net.

jota

Saturday, July 2, 2005

Breaking Down the Software Development Roles

developer.com publicou, entre Março e Junho, uma série de artigos a descrever vários papeis intervenientes no processo de desenvolvimento de software, sumarizados nesta imagem. Sem entrar em discussões sobre metodologias, deixo os links para a série, que me pareceu interessante. O autor chama-se Robert Bogue.


Cracking the Code: Breaking Down the Software Development Roles
http://www.developer.com/mgmt/print.php/3490871


 Anatomy of a Software Development Role: Subject Matter Expert
http://www.developer.com/mgmt/print.php/3496316


Anatomy of a Software Development Role: Functional Analyst
http://www.developer.com/mgmt/print.php/3500171


Anatomy of a Software Development Role: Solution Architect
http://www.developer.com/mgmt/print.php/3504496



Anatomy of a Software Development Role: Development Lead
http://www.developer.com/mgmt/print.php/3507886


Anatomy of a Software Development Role: Developer
http://www.developer.com/mgmt/print.php/3511566 


Anatomy of a Software Development Role: Quality Assurance
http://www.developer.com/mgmt/print.php/3515426


Anatomy of a Software Development Role: Deployment
http://www.developer.com/mgmt/print.php/3519186


Nota: apesar de serem links para as versões de impressão, alguns artigos têm o texto dividido em duas páginas.


jota

Developing Integration Solutions with BizTalk Server 2004

Este whitepaper já foi publicado em Março, mas não deixa de me surpreender pela quantidade de informação valiosa que contém, especialmente para quem inicia um projecto de raiz. A saber, inclui aspectos como regras de nomenclatura, organização de pastas, ambientes de desenvolvimento, divisão de projects/solutions por elementos da equipa (suponho que o conceito de Aplicação do BizTalk 2006 venha tornar isto mais natural), interação com source safe, deployments (apesar de não referirem a solução de Charles Young...), debug (até o System.Diagnostics.Debug.WriteLine é mencionado!). A abrir há uma abordagem possível ao planeamento de desenvolvimentos com BizTalk que é simultaneamente simples e interessante. Recomendo vivamente, porque as lições que aqui estão poupam muitos dores de cabeça.


Descarregar aqui.


Ps: Para quem tem interesse e segue a área de Integração, uma pequena chamada de atenção para a aquisição da SeeBeyond pela Sun Microsystems. A SeeBeyond tem uma solução de integração (EAI) baseada em messaging, em vários aspectos semelhante ao BizTalk, com cerca de 2000 instalações no mundo todo (o BizTalk terá cerca de 4000, em todas as versões), mas mais próxima do mundo Java e constituindo-se agora na solução de integração que faltava à Sun. Mais informações.


Vemo-nos em Amsterdão :-)


jota

Monday, June 20, 2005

Help do BizTalk em Chm

Nota rápida: para se ter acesso ao Help do BizTalk 2004, é obrigatório ter o produto instalado. E como pelos vistos não sou só eu a achar isso penoso, houve quem compilasse um Chm (que já inclui o SP1). Está aqui.


No mesmo blog onde isto estava achei isto:







«A lot of folks heard at the Tech-Ed Keynote address on June 7 that we will have a joint launch of Visual Studio 2005, SQL Server 2005 and BizTalk Server 2006 on November 7, 2005.


Please do NOT confuse this with the RTM (Release to Manufacturing) date of BizTalk Server 2006.  BizTalk Server 2006 is still scheduled to RTM during the 1st Quarter of 2006. November is just when the Joint  Launch "Party" will take place.»


Caso para dizer: era muita fruta. :-)

Saturday, June 4, 2005

BizTalk 2006 Rolling Thunder & Web Services Competency Workshop

Vem aí a nova versão do BizTalk, e vai ser apresentada no TechEd nos EUA um primeiro CTP.


No blog do Scott Woodgate foram publicados 6 whitepapers com informação sobre o que esta nova versão vai conter:


Setup and Migration
Adapter Enhancements
Business Activity Monitoring
Developer Tools
Runtime improvements
Monitoring Applications and Deployment


Leitura muito interessante, posso garantir, para quem se interessa pelo produto. (nota: estes downloads obrigam a um registo)


Um outro assunto, que ficou por referir, foi o evento da Web Services Competency Workshop, realizado a 9 e 10 de Maio em Carcavelos pela Microsoft. Este evento foi apresentado por Beat Schwegler (da MS), e teve um primeiro dia dedicado a arquitectura e conceitos (a teoria) e o segundo dedicado a tecnologias e implementação (a prática). Os temas incluiram SOA, WSE 2.0, os protocolos WS-*, etc. E uma mensagem fica: ao contrário do que possa parecer... fazer Web Services bem, é tudo menos simples (e já agora, a propósito disto, recomendo as últimas duas Service Stations da MSDNMagazine, de Maio e Junho, sobre Contract-First Development).


jota

Monday, March 14, 2005

Architect Forum 2005

Na passada quarta-feira realizou-se no CCB o Architect Forum 2005, "patrocinado" pela Microsoft e pela Thought Works, e todo dedicado a Patterns de Integração. Houve 4 apresentações, deixo breves notas sobre cada uma:


Patterns in the Enterprise - Erik Dorenenburg (ThoughtWorks)


A abrir, uma apresentação da ThoughtWorks sobre alguns patterns do Enterprise Integration Patterns. Sem novidades relativamente ao que se pode ler no livro, esta apresentação teve a sua quota parte de evangelização para o recurso a patterns ("Code reuse can be difficult... but knowledge reuse can be valuable"), um pouco na constatação que mesmo com OO a reutilização a sério não tem funcionado. Houve também dois exemplos de arquitecturas, e uma enumeração de algumas "Interop Technologies", acabando - como esperado - com a defesa do modelo de Messaging e dos Web Services (especialmente quando deixarem de ser usados apenas como RPC).


Integration Patterns - Christopher Baldwin (Microsoft)


Esta sessão foi uma apresentação muito sumária do documento de Integration Patterns da Microsoft. Infelizmente algo lenta e superficial, deixou um pouco a desejar, e não acho que tenha sido justa para o documento em causa. Neste documento os patterns são organizados em 3 níveis: Integration Layer, System Connections e Integration Topologies, e a maior parte do tempo foi dedicada ao primeiro destes.


Evolutionary Enterprise Enablement - Nick Hines (ThoughtWorks)


Talvez a apresentação mais interessante, partiu de um problema real, apresentou-se o Gregorgram :-) que resolvia o problema de integração em causa, e depois descreveu-se brevemente como foi implementado (sobre BizTalk 2004) cada um dos patterns utilizados.
Foi também referido que no decorrer do projecto descrito - e na realização dos testes ao mesmo - se iniciou o desenvolvimento de uma framework para testes unitários de soluções de integração, o BTSUnit, que deve ficar disponível na net dentro 1-2 meses. Finalmente, no que respeita a deployments, a solução do Scott Colestock parece ser já universal.


Web Services: Interoperability + Integration - José António Silva (Microsoft)


A terminar o dia, o Zé Tó falou sobre os patterns de System Connections do Integration Patterns da MS, e que correspondem aos Message Endpoints do Hohpe. Foco também em questões de interoperabilidade de WS's, com referências ao WS-I, WS-I Basic Profile 1.0, os 4 tenets do SOA, algumas dicas para a utilização interoperável de web services, e alguns slides repetidos de apresentações anteriores. O Url a fixar é este.


Resumindo: Não foi um evento com muitas novidades, mas foi interessante ver a Microsoft e a ThoughtWorks juntas, e ter contacto mais próximo com outras pessoas a utilizar e a seguir este tipo de patterns. A repetir. :-)

Saturday, February 19, 2005

LogParser e Enterprise Library

Para quem não reparou, está disponível desde há alguns dias a versão 2.2 do Logparser. Esta toolzita é uma pequena pérola, com potencialidades muito interessantes. A utilização que fiz da mesma, ainda na versão 2.1, foi para colocar numa base de dados logs de IIS sobre os quais fizemos uns reports com os Sql 2000 Reporting Services (ainda beta, na altura), e fiquei agradavelmente surpreendido tanto com a eficácia com o facto de não ter falhado uma única vez.

A nova versão permite "parsar" documentos XML e ler da Active Directory (!), permite criar gráficos como formato de output (!), e tem um conjunto interessante de novidades no motor Sql.

Para mim, uma tool top-ten a manter por perto @ all times.

 

Mudando um pouco de assunto, por aqui começámos a utilizar a Enterprise Library em novos projectos. A ferramenta de configuração é um espanto, e regra geral tem sido muito interessante,l mas já nos deparámos com problemas na sua utilização com Oracle. O bloco de acesso a dados tem API's para Oracle, mas a forma como lida com os tipos dos parâmetros não nos deixa invocar determinadas funções PL/SQL. Tivemos de recorrer ao Data Access Application Block pré-EntLib, que superou os problemas c/ facilidade. Ainda assim, do que já usámos está a valer a pena. Recomendo vivamente.

 

jota

Saturday, February 12, 2005

BizTalk e SharePoint - novidades

Na ressaca do SP1, a Microsoft aproveitou e pôs cá fora mais um Update à documentação do produto (que infelizmente tem, tal como a versão anterior, o bug de instalação que obriga a que se copie do CD/DVD do produto para disco antes de se instalar). A par com isto saiu também uma actualização aos 3 Tutorials. Talvez mais interessante, no entanto, seja a disponibilização da versão final do Adapter BizTalk para WSE 2.0:

 

The BizTalk Adapter for Web Services Enhancements (WSE) 2.0 integrates secure Web services with BizTalk Server 2004. The Adapter for WSE is implemented using the WSE 2.0 framework for Microsoft .NET, and supports WS-Security, WS-Trust, WS-SecureConversation, WS-SecurityPolicy, and WS-Policy. The Adapter for WSE can be used for securely calling Web services and publishing BizTalk orchestrations as Web services.

 

E para não me ficar pelo BizTalk, no mundo SharePoint também há duas actualizações de documentação incontornáveis: uma nova versão do SDK do SharePoint Portal Server 2003, com mais de 200 tópicos novos  (chamo a atenção, por exemplo, para os conteúdos da secção Applications > Sps 2003 > Getting Started), e também para a nova versão do SDK do WSS 2.0, igualmente enriquecida (não percebo o motivo para isto se instalar, sem perguntar, para C:\SPPTSDK e C:\WSSSDK, mas enfim :-)).

 

Boas noites,

jota

Sunday, January 30, 2005

Novas - BizTalk e IBF

Com o SP1 do BizTalk fresquinho a instalar enquanto escrevo (o Readme diz algumas das novidades, mas aqui está uma lista dos fixes incluídos), e com muitas outras novidades por aí, chamo a atenção para duas:


1) um post que vale ouro, a explicar como dizer ao BizTalk/VS.Net para não apagar os ficheiros .CS que são gerados aquando das compilações:


Create a key called BizTalkProject at the following location:



HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\7.1


Next, create a DWORD value called GenerateCSFiles. Set the value to 1 (or higher). Restart Visual Studio, load a BizTalk project and re-compile. Now take a look at your project folder.


2) A grande novidade é no entanto a publicação do Exame 74-315 (Developing E-Business Solutions Using Microsoft BizTalk Server 2004). Este exame não conta para MCSD, mas sim, em empresas parceiras, para a Competência "Integrated E-Business Solutions". Diz quem já fez, que não é pêra doce. Mr Scott has all the news.


Entretanto, outras coisas interessantes que por aí circulam incluem o facto de terem voltado a estar online os labs de BizTalk, para quem quiser aprender ou testar sem ter de instalar (o desempenho é surpreendentemente bom, mesmo remotamente, diga-se). Também já saiu o Blogger's Guide to BizTalk de Janeiro, já com 218 artigos (e se alguns são apenas pequenos posts/notas, outros são muito catitas de ter à mão, como o de BizTalk and SOA do capítulo sobre Service Oriented Architecture). E achei muito interessante a utilização que o Scott Colestock fez do Log4Net em BizTalk, depois de, há um tempo atrás, ter perdido muitas horas a fazer o (antigo) Logging Application Block funcionar com  Bts (quem não tem ainda a Enterprise Library "Janeiro 2005"? - depois do trauma de usar o CMAB e o LAB com o BizTalk, não posso esperar para testar isto).


Um ps: estive a experimentar  a Office Information Bridge Framework, depois de ler uns artigos interessantes sobre a tecnologia. O conceito, que é muito interessante (apesar de em termos de desenvolvimento ter muito que simplificar, penso eu), pareceu-me sofrer um revés infeliz devido ao simples facto de implicar ter o Office Programmability Support instalado. Esta opção não está seleccionada por omissão, e infelizmente não é fácil, nos clientes do "mundo real", pedir para se adicionar este componente para suportar aplicações específicas (especialmente se em muitos contactos as reacções a tudo o que não seja web são bocas abertas e recusas imediatas). Talvez na próxima versão?


jota


ps- não só é possível aceder aos ficheiros source em C# do BizTalk, como é possível fazer-lhes debug...

Sunday, January 16, 2005

BizTalk 2006+

Apareceu no Microsoft Watch uma notícia sobre as novas versões do BizTalk:

 

"The BizTalk team's first order of business this year is to roll out BizTalk Server 2004 Service Pack 1 (SP1). SP1 is currently expected in late January, as a few last-minute glitches scotched a late December release, according to various Microsoft Web log postings.

 

Next up will be BizTalk Server 2006, aka Pathfinder, which Microsoft is hoping to ship in 2005 [...]

 

The Pathfinder release will support 64-bit Windows Server releases, and will integrate tightly with SQL Server 2005, Visual Studio 2005 and Virtual Server 2005. Microsoft is working to provide simplified setup, migration and deployment; a new management console; and richer integration with Windows SharePoint Services (which will be integrated right into Windows Server R2, which is due to ship this year)."

 


Continuo a perguntar-me se tantas versões num tão curto intervalo de tempo serão interessantes, apesar dos benefícios em termos de acompanhamento de versões de Sql Server e Visual Studio.

 

Entretanto, finalmente recebemos aqui o BizTalk 2004 Unleashed. Numa primeira impressão pareceu-me interessante, apesar de sem ter o detalhe que esperava. Isto é aliás o que parece justificar o score anormalmente baixo na Amazon (2,5). Curiosa também, no assunto do livro, é a thread do TheServerSide.Net a propósito dos capítulos sample que aí foram disponibilizados.