Cercar en aquest blog

30/6/11

WCF escala lentament amb ràfegues de treball

Un post interesant de Dustin Metzgar que parla sobre com solucionar els problemes d'augment de càrrega en un servei WCF d' una instància i concurrència múltiple.


http://blogs.msdn.com/b/endpoint/archive/2011/05/04/wcf-scales-up-slowly-with-bursts-of-work.aspx

27/6/11

Contingut del "Windows Azure Camp"

El passat 11 de Maig es va celebrar  el  Windows Azure Camp a Madrid. Luis Panzano, uns dels màxims representants del desenvolupament al núvol ha tingut la amabilitat de publicar les sessions del campus per aquells que no hi vam poder anar.


http://blogs.msdn.com/b/luispanzano/archive/2011/06/07/contenido-del-windows-azure-camp.aspx

23/5/11

Biosensors mèdics

Sensors per ajustar els tractaments a la malaltia del pacient i no a la patologia que presenta el pacient.

Enllaç

9/5/11

Credencial SAML per Windows Azure AppFabric

Interesant post de Wade Wegner sobre com utilitzar tokens SAML per autentificar-se al serveis publicats en el "Service Bus" de Windows Azure AppFabric.




http://www.wadewegner.com/2010/11/using-the-saml-credentialtype-to-authenticate-to-the-service-bus/

21/4/11

24/3/11

Instal.lar un servei en Windows Azure

Article o post molt interessant, i realment, bo de Luis Panzano en el seu blog de com publicar un Servei Windows al núvol.

14/3/11

Azure Service Bus només amb ports "http"

Per testejar el Service Bus d'Azure, sense haver d'obrir ports específics, posant aquesta simple linia de codi en el servidor que volem posar a disposició en el bus, n'hi ha prou.

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http;

3/3/11

Servei de Control d' accés: Aliniació de la situació actual en un gràfic

Gràfic que il.lustra la situació actual dels serveis de control d'accés (ACS) més coneguts.

(Post original)

23/2/11

Aproximació al disseny d'un servei de peticions escalable, basat en missatge

Un servei de peticions (assitencials), ha de ser molt flexible. S'ha de poder afegir nous tipus de peticions, les existents, han de poder-se modificar fàcilment, cada una ha de ser tractada correctament, i aquest tractament, també ha de ser flexible, s'ha de poder modificar de manera fàcil.

La clau tècnica de tot això està en:
  •  Els parametres del servei han de ser missatges, concretament un d'entrada i un de sortida.
  •  Cada missatge ha de tenir un fluxe de treball associat en el servei.
  •  El servei ha de ser astut i poc intel.ligent. Ha de saber per cada missatge, quin fluxe l'atent, però mai com ho fa. (Càrrega per reflexió de Workflows).
  •  Els Workflows o fluxes de treball, han de tenir el codi, separat del disseny. Amb Això, es pot aconseguir, que un usuari avançat pugui decidir com un fluxe atent un missatge en cada moment. O sigui, pot modificar fluxes de treball. Decisions de negoci en mans de gestors del negoci.



Aproximació d' Integració del HIS amb la resta del Sistema


És evident que en molts hospitals es gaudeix d' un HIS propi i d' aplicacions comprades a tercers per ajudar al negoci d'alguns dels seus serveis o departaments, laboratori, anatomia patologica, radiologia, etc. És també evident, que després de la compra bé la integració del producte. Aqui es pot optar per fer una integració 1 a 1, "rascan", o aprofitar un EAI (Enterprise Application Integration) per fer-ho, de 1 a n, en el cas que exposem, del HIS, a la resta del Sistemes.

Ajunto un diagrama de com es pot fer, de fet, és una part d'una producció existent.


22/2/11

Creació d'un motor de recerques de planes Web (Part I)

Després d'estar estudiant les avantatges de la programació asíncrona amb el Visual Studio Async CTP i d'haver testetjat el rendiment de la BD no relacional, sense esquema, MongoDB, he decidit implementar un motor de recerca de planes Web.

Un motor de recerques, basa els seus resultats en la recerca de informació en un magatzem de "pàgines web" enregistrades i indexades de manera variable, segons un criteris pleestablerts pels creadors de la part que agafa una plana i la estudia "el web spider", agafant paraules, frases, etc, de diferents parts d'aquesta, i enmagatzema aquesta informació en una BD per tal de que un cercador en pugui fer ús. Per tant la manera en que desbrocem una plana, depén de nosaltres. Per exemple, en aquesta implementació, simple, agafarem de la plana, només:

El text del titol
El text del tag "meta name=keywords"
El text del tag "meta name=Description"


A cada paraula trobada en aquests textos els hi donarem uns pesos diferents segons en quina part la trobem. Per exemple, al les paraules trobades al tag "meta name=keywords", li donarem el pes màxim, ja que són paraules que l'autor explícitament ha resaltat, i les paraules del titol les de menos pes. Però no deixa de ser un criteri.

Per altre banda, les planes que volem indexar, les llegirem d'un fitxer anomenat sitemap.xml, que seguirà la estructura establerta en http://www.xml-sitemaps.com/.
La següent imatge il.lustra tot el procés de indexació d'un lloc web.


Si voleu entendre el funcionament d' alguns dels ceracdors més importants, us recomano el següent article:

How Internet Search Engines Work

8/2/11

Mapa de Tendèndies 2010: tota la informació

Enregistrament de l'acte de presentació del Mapa de Tendències 2010 (en català)
http://vimeo.com/channels/158210


Enregistrament de l'acte de presentació del Mapa de Tendències 2010 (traducció simultània al castellà)
http://vimeo.com/channels/164595


Situació Pla Estratègic SITIC Salut (Balanç)
http://www.youtube.com/watch?v=ZjeW9hb7EEM


Presentacions:
• Les tendències internacionals en TIC i Salut. Ponent Sr. Joan Cornet
http://www.slideshare.net/ticsalut/les-tendncies-internacionals-en-tic-i-salutppsx-6314358
• Resultats enquesta TIC: SISCAT. Ponent Sr. Francesc Moya
http://www.slideshare.net/ticsalut/resultats-enquesta-tic-siscatppsx-6314180
• Monogràfic HCE Salut Mental i Addiccions 2010. Ponent Dra. Rosa Suñol http://www.slideshare.net/ticsalut/monogrfic-hce-salut-mental-i-addiccions-2010pps
• La visió del Pla director de salut mental i addiccions. Ponent Dra. Cristina Molina http://www.slideshare.net/ticsalut/la-visi-del-pla-de-salut-mental-i-addiccionsppsx-6314378
• Maduresa tecnològica: indicadors d'evolució. Ponent Sr. Josep Mañach http://www.slideshare.net/ticsalut/maduresa-tecnolgica-indicadors-devolucippsx-6264515
• Electronic Medical Record Adoption Model (EMRAM). Ponent Dr. Joan Guanyabens http://www.slideshare.net/ticsalut/electronical-medical-record-adoption-modelppsx-6314405
• Entorn virtual per a l'autogestió de la Diabetis Mellitus Tipus 1 per part del pacient. Ponents Sra. Francesc Cañas i Dra. Lola Santos
http://www.gencat.cat/salut/ticsalut/html/ca/dir1771/mapatendencies2010_cat.pdf
• L'e-CAP com a experiència d'èxit: cap a una estació clínica amb eines de suport als professionals (ICS). Ponent Dra. Eva Comin
http://www.gencat.cat/salut/ticsalut/html/ca/dir1771/ecapticsalutevacomin.pdf
• TIC i Rehabilitació, un canvi de padigme. Ponent Dra. Rocío Sanchez-Carrión http://www.gencat.cat/salut/ticsalut/pdf/previrnec_%20tic%20salut.pdf
• Resultats projecte Rehabitic/PTG (IMIM). Ponent Dr. Josep Ma. Muniesa http://www.gencat.cat/salut/ticsalut/html/ca/dir1771/parcsalutmarticsalut.pdf
• Les Comunitats de Pràctica a l'Agència de Protecció de la Salut. Ponent Sr. Daniel Giménez Roig http://www.gencat.cat/salut/ticsalut/html/ca/dir1771/101215_apsgestioconeixeticsalutcaixaforum.pdf


Mapa de Tendències 2010
http://www.gencat.cat/salut/ticsalut/pdf/vf%20informe%20mapa%20de%20tend%C3%A8ncies.pdf


Referència TicSalut

28/1/11

Why asynchronous?

"The problem is that remote operations are different from local ones."

Els Documents, on els guardem?

Bé, consultant alguns blocs del meu interés he trobat un POST molt interessant que parla d'una Base de dades orientada a l'enmagatzament de documents. Degut als patiments de com guardar documents, com indexar-los, com poder fer recerques en els seus continguts, com mantenir versions, com eliminar fitxers de logs caducats, etc, l'he trobat molt interessant.

Arquitectura Orientada a Servir

Si, l' arquitectura orientada a serveis està pensada per oferir funcionalitats de negoci (entenem negoci com a procés informatitzat), una arquitectura orientada a servir és el model triat per aquesta fundació Xprize. Impulsar les iniciatives per poder posar-les en un futur a disposició de la Societat, i molt important, valorant el coneixement dels seus col.laboradors.

26/1/11

L’ anonimat a Internet, el gran problema

- Avui arribaré a casa, i em descarregaré l’últim disc de “Pajarito en el Facebook”. Utilitzaré un software
P2P i apa, disc nou. També aprofitaré per baixar-me alguna pel·lícula i alguna sèrie.

-Jo ahir em vaig baixar, hackers 3, és molt bona, si no la tens, et faig una copia.
Això podria ser una conversa molt comuna i real entre dues persones del tot legals, que només per gaudir d’una connexió a Internet “anònima” i un accés a informació il•limitat, aprofiten el temps per aconseguir allò que els hi agrada i tenen a l’abast. Saben que això és il•legal? Doncs bé, no ho tenen clar, el que si saben es que existeix un debat i que aquest no acaba de definir-se o resoldre, i que de moment, mentre hi hagi discurs, ens podem aprofitar de les avantatges de ser anònim a Internet.

Realment som anònims a Internet? Bé, actualment per connectar-nos a Internet, només ens cal tenir un ISP (Internet Service Provider) a la nostre disposició, pagant clar, i bastant. Quan ens connectem, aquest sap des d’ on ens connectem, o sigui, des de casa, des de la feina o des del mòbil, però no sap qui som. Coneixen el terminal, però no a la persona, i per tant els hi és molt difícil validar qui ha fet que, ja que no tenen mitjans que demostrin qui ha fet que. I per què? Doncs encara que accedim a webs que demanin autentificació, usuari i contrasenya, adreces de correu, etc, les dades que hi ha al darrere les pot haver omplert qualsevol “anònim”. Em puc moure per Internet amb el nom d’un altre? La resposta és evident, si, només cal entrar a qualsevol xarxa social i comprovar-ho.

L’anonimat, també, ens permet publicar qualsevol cosa, i això porta una conseqüència molt directe, que és la mala informació. Només cal entrar en un cercador, i cercar qualsevol cosa, i veure que poc és aprofitable.

Bé, podríem estar dies parlant de tot el que podem fer anònimament a la xarxa. Amb això no vull dir que tot sigui dolent, jo no puc viure sense Internet, però que no m’agrada veure tanta degradació de la informació, tants anuncis, lluitar amb els pop-ups, amb els virus, amb spyware, enllaços trencats, poca protecció d’accés infantil, etc.

I com ho podríem solucionar tot això? Doncs fent que a Internet tota comunicació, càrrega o descàrrega, estigues signada per l’autor d ’aquesta. I es pot fer això? Jo crec que si. Només cal voler-ho fer. Val diners? Doncs evidentment, aquí no es regala res. Primer de tot, tothom hauria de disposar d’una identitat digital, emesa per una entitat reconeguda i de confiança (el que anomenem, certificat digital, un exemple, e-dni). La connexió a Internet a través del proveïdor, hauria requerir d’una identitat digital per establir-se, si no, aquesta no ens deixaria navegar. D’aquesta manera ja tenim identificat des d’on i qui està fent una descàrrega o càrrega, ja que aquestes anirien signades pel seu autor, ah!! molt important, també podem saber-ne l’edat. Això, però, suposa que sempre hem de tenir a l’abast aquest certificat, o dit d’una altre manera, la nostre identitat digital, sempre l’hauríem de dur amb nosaltres. Per solucionar això, es podria muntar una xarxa de Gestors d’Identitats federats entre ells, on podríem, donar-nos d’alta un primer cop, utilitzant el nostre certificat, i en un futur, accedir a ell, per obtenir la nostre identitat des de qualsevol lloc, mitjançant un mètode més habitual, usuari, contrasenya i alguna cosa més. Això també reduiria, tots els registres a diferents webs que tenim, un registre pel Facebook, un altre pel Twitter, un altre pel Gmail, un altre, i un altre, i un altre....quin merder de claus i contrasenyes. OpenID és un intent de fer això, però els seus usuaris no deixen de ser anònims. Amb un sistema com aquest, també quedaria resolt l’accés a la nostre Historia Clínica, a entitats Sanitàries per demanar hores de visita, a entitats de l’administració Pública, etc.

Els DNS identifiquen o resolen ubicacions de servidors web, els gestors d’identitats identifiques persones. Amb les dues coses a Internet, assegurem qui accedeix, i a on accedeix, com hi accedeix i a que accedeix.

La validesa de la Identitat Digital, és evident, només cal veure com és un dels sistemes utilitzats per validar usuaris en moltes entitats financeres i en el propi ministeri d’hisenda. I la resta, per què no ho fan. No interessa, poder, no dona diners, o poder si, si calculem el que gastem en mirar “qui fa.... i el que fa, a internet”.



24/1/11

Distribució del negoci (PART V)

En aquest post, intentaré explicar com accedir al negoci distribuit (a una part d'ell), des d'una aplicació client desenvolupada en Winforms. Per fer-ho utilitzarem el nostre proxy transparent.
Abans de res hem de referenciar dues llibreries, la del proxy transparent "TransparentProxy.dll" i la de la interfície del negoci distribuit amb els missatges que utilitzem per intercanviar informació amb els clients, "ServeisDistribuits.Ingresos.dll".

 Primerament el que farem és crear una interfície amb les operacions que s'executaràn des de lapart client.

using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WinIngressos
{
    interface IForm1Negoci
    {
        IList<serveisdistribuits.ingresos.informaciollits>
                                             Carregar_Llits();
        IList<serveisdistribuits.ingresos.informaciometges>
                                            Carregar_Metges();
        IList<serveisdistribuits.ingresos.informaciopacient>
  Cercar_Pacient(ServeisDistribuits.Ingresos.CriteriCercarPacient criteri);

        ServeisDistribuits.Ingresos.ResultatOperacio
    Ingressar_Pacient(ServeisDistribuits.Ingresos.DadesIngres dades);


    }
}





Tot seguit fem un dissany de la pantalla, amb els components que lligarem amb les funcions o operacions.




Si ens hi fixem, formulari consta de les següents parts:
  1. Una Grid o mostrarem els resultats de la cerca de pacients.
  2. Un TextBox on entraren el criteri de recerca de pacients utilitzant un senzill patró d'entrada, Cognom1/Cognom2/Nom.
  3. Un ComboBox amb el llistat de metges.
  4. Un ComboBox amb el llistat d'habitacions.
  5. Un Button per enviar les dades de l'ingrés, Pacient-Metge-Llit.
  6. I un TextArea on mostrar el resultat de la transacció. Tota operació del negoci que persisteixi dades, ha de ser Transaccional.
Tot seguit he de conectar les operacions del client amb les operacions del negoci (servei distribuit). Per fer-ho utilitzarem el proxy transparent, i implementarem les operacions del client.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace WinIngressos
{
    public class Form1ServeiNegoci:IForm1Negoci
    {

        

        public IList<ServeisDistribuits.Ingresos.InformacioLlits> Carregar_Llits()
        {
            WSHttpBinding bind = CrearVincul();

            TransparentProxy.IProxy<ServeisDistribuits.Ingresos.IModulPrincipal> proxy = new TransparentProxy.Proxy<ServeisDistribuits.Ingresos.IModulPrincipal>(bind, "http://localhost:53538/WCFGAPService/Service.svc", null, null);
            IList<ServeisDistribuits.Ingresos.InformacioLlits> res=proxy.Client.LlistarLlits(ServeisDistribuits.Ingresos.LlitEstats.Buits);
            proxy.Close();
            return res;
        }

        public IList<ServeisDistribuits.Ingresos.InformacioMetges> Carregar_Metges()
        {
            WSHttpBinding bind = CrearVincul();

            TransparentProxy.IProxy<ServeisDistribuits.Ingresos.IModulPrincipal> proxy = new TransparentProxy.Proxy<ServeisDistribuits.Ingresos.IModulPrincipal>(bind, "http://localhost:53538/WCFGAPService/Service.svc", null, null);
            IList<ServeisDistribuits.Ingresos.InformacioMetges> res = proxy.Client.LListarMetges();
            proxy.Close();
            return res;
        }

        public IList<ServeisDistribuits.Ingresos.InformacioPacient> Cercar_Pacient(ServeisDistribuits.Ingresos.CriteriCercarPacient criteri)
        {
            WSHttpBinding bind = CrearVincul();

            TransparentProxy.IProxy<ServeisDistribuits.Ingresos.IModulPrincipal> proxy = new TransparentProxy.Proxy<ServeisDistribuits.Ingresos.IModulPrincipal>(bind, "http://localhost:53538/WCFGAPService/Service.svc", null, null);

            IList<ServeisDistribuits.Ingresos.InformacioPacient> res = proxy.Client.CercarPacient(criteri);
            proxy.Close();
            return res;
        }

        public ServeisDistribuits.Ingresos.ResultatOperacio Ingressar_Pacient(ServeisDistribuits.Ingresos.DadesIngres dades)
        {
            WSHttpBinding bind = CrearVincul();

            TransparentProxy.IProxy<ServeisDistribuits.Ingresos.IModulPrincipal> proxy = new TransparentProxy.Proxy<ServeisDistribuits.Ingresos.IModulPrincipal>(bind, "http://localhost:53538/WCFGAPService/Service.svc", null, null);

            ServeisDistribuits.Ingresos.ResultatOperacio res = proxy.Client.Ingresar(dades);
            proxy.Close();
            return res;
        }


        private WSHttpBinding CrearVincul()
        {
            WSHttpBinding bind=new WSHttpBinding();
            bind.Security.Mode = SecurityMode.Message;
            bind.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
            bind.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
            bind.Security.Message.NegotiateServiceCredential = true;
            return bind;
        }
    }
}


Una de tantes maneres de fer, però que crec, que es bastant ordenada, separada per capes, seguint els principis de la POO.

I finalmet només ens falta lligar la interfície amb el negoci. Posaré un exemple, laresta es bastant evident.

using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WinIngressos
{
    public partial class Form1 : Form
    {
        private IForm1Negoci negoci = null;
        
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            negoci = new Form1ServeiNegoci();

            // Carreguem combos

            this.comboBox2.DataSource = negoci.Carregar_Llits();
 

            ................

I això es tot, la resta, imaginació.

11/1/11

Arduino The Documentary (2010) English HD


Arduino The Documentary (2010) English HD from gnd on Vimeo.


Ja sé que no té res a veure amb SOA però realment crec que és increible.

5/1/11

Qualitats del Know-How

El terme "Know-How" està àmpliament estudiat en el llibre "The 8 Skills That Separate People Who Perform from Those Who Your say" (en català: Les 8 habilitats que separen la gent que rendeixen i les que no) del Dr Ram Charan, un dels consultors més reconegut a nivell mundial. Abans de dedicar-se a la consultoria, va ser professor de Màrqueting a Harvard Business School, Kellogg School of Management i Boston University. Segons aquest llibre les vuit habilitats principals del "Know-How" són les següents:


  • Posicionar i Re-posicionar. Trobar la idea central del negoci que permeti satisfer les demandes dels compradors, i fer diners.
  • Identificar amb Precisió el Canvi Extern. Detectar les amenaces de canvi en el comportament d'indústries i compradors, per mantenir el negoci a l'ofensiva.
  • Liderar el Sistema Social. Agrupar les persones adequades amb les conductes correctes i la informació correcta per prendre decisions millors, més ràpidament i aconseguir resultats.
  • Examinar a la Gent. Calibrar a les persones basant-se en les seves accions, decisions i conductes, alineats a les demandes de treball.
  • Crear un Equip. Aconseguir líders  competents, emocionalment estables, realistes, madurs, calmats i lleials, que treballin junts expeditivament.
  • Fixar Objectius. Determinar resultats desitjats que estiguin balancejats entre els que el negoci pot arribar a ser, amb el que és realista aconseguir.
  • Establir Prioritats amb Precisió Làser. Definir el camí i alinear recursos, accions i energies per assolir els objectius.

  • Confrontar les Forces Socials. Anticipar-se i respondre a les pressions socials que no es controlen, però que poden afectar el seu negoci.