Últimanete en los circulos de las tecnologías de la información (como nos gusta ponernos pedantes a veces...) están corriendo mucho estos dos conceptos, Gobiernos de servicios y muy relaciona a esto, SOA, que bueno, este ya lleva mucho tiempo dando vueltas, pero parece que se vuelve a poner de moda.
Viéndolo por partes:
SOA: De las siglas en inglés que significan: Arquitectura Orientada a Servicios y no parece referirse a la salida de la crisis, invertir en servicios (que no sea turismo), sino que se refiere al hecho de desarrollar las necesidades informáticas de una organización en base a que se exponen los servicios que las aplicaciones pueden "consumir" en un sitio y no que cada uno implemente sus propias soluciones para los mismos problemas. SOA hizo famosos los servicios Web, por ser el paradigma de su exposición de servicio, un servicio web puede ser utilizado al mismo tiempo e independientemente del lenguaje en el que se implemento, por otros lenguajes de programación, lo que le da una versatilidad frente a otras soluciones.
Gobierno de servicios: Este concepto que ha llegado de la mano de SOA y han puesto de moda (supongo que unos cuantos Consultores y algún tio listo) significa racionalizar SOA, es decir, conocer que servcios tengo, donde están, cuanto tardan en ejecutarse, cuantas solicitudes tengo de cada unos y cuantas voy a tener, cuando son los picos de consumo y cuando los valles, con toda esta infromación y más que se me olvida, se debe tomar la decisión de que esos servicios no vayan cada uno por su lado y todos en las mismas circustancias, sino que habrá que equilibrar las fuerzas según necesidades, y al conocer donde se encuetnra todo, reutilizar todo lo que se pueda, con cabeza, no es plan de que todos acaben en un cuello de botella.
Juntandolo en uno solo, nos encontramos el ESB, o los buses de servicios, que conergen con SOA, para juntar el gobierno de servicios y los servicios implementados en multiples plataformas.
Cuando mezclamos los dos conceptos, que se relacionan entre sí, SOA y los servcios Web y el gobierno de servicios, nos encontramos a los buses empresariales, estos son los que encauzan peticiones de un formato a otro, sin necesidad de interferencia externa, pudiendo hacer una llamada desde un servicio Web de .NET a un EJB 3.0 de Java, sin necesidad de hacer maravillas. simplemente definiendo una mediación dentro del propio BUS y dejandole obrar su magia.
domingo, 5 de mayo de 2013
jueves, 2 de mayo de 2013
Una pagina que explica como preguntar (cuestiones técnicas)
Siempre me ha dado la sensación de que cuando preguntamos algo en el campo técnico, muchas veces es dificil centrar bien la pregutna que se quiere hacer, a veces se da demasiada información y otras veces la ifnromación es demasiado amplia para entenderse de un tirón y responder a lo que se está preguntando.
Para ello, un grupo de personas (de habal inglesa) se han juntado para hacer esta página que se llama SSCE (Short, Self Contained, Correct Example - Corto, AutoExplicativo y Ejemplo Correcto [Compilable]) donde explica como afrontar una pregunta técnica (especilamente de informática y desarrollo en concreto claramente dirigida a págnas como stackOverflow)
Os dejo el enlace a las dos páginas en el propio texto, porque me parecen las dos muy buenas y para tenerlas en cuenta (sobre todo para consultas técnicas StackOverflow).
Para ello, un grupo de personas (de habal inglesa) se han juntado para hacer esta página que se llama SSCE (Short, Self Contained, Correct Example - Corto, AutoExplicativo y Ejemplo Correcto [Compilable]) donde explica como afrontar una pregunta técnica (especilamente de informática y desarrollo en concreto claramente dirigida a págnas como stackOverflow)
Os dejo el enlace a las dos páginas en el propio texto, porque me parecen las dos muy buenas y para tenerlas en cuenta (sobre todo para consultas técnicas StackOverflow).
Como acceder a una base de datos Access desde Java.
Una entrada muy rápida de como se conecta la base una base de datos Access a un programa Java.
Para este caso, notificar que Access normalmente el acceso es con USER y PASS en blanco, algo asi: conexion = DriverManager.getConnection("jdbc:odbc:" + NOMBDD, "","");
Comentar además que para que una base de datos, este visible para el driver, debe estar incluida en el origen de datos de Windows, que se encuentra en inicio --> Ejecutar --> ODBCAD32. En la ventana que salta, le damos a añadir (add) elegimos Driver Do Microsoft Access (*.mdb) y introducimos los datos de la base de datos y le damos un nombre, el que usaremos en el código Java
public void abrirConexion() { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conexion = DriverManager.getConnection("jdbc:odbc:" + NOMBDD, "USER","PASS"); System.out.println("Conexión"); statment = conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); System.out.println("Conexion exitosa"); } catch (Exception e) { System.out.println("No se ha podido cargar el Driver JDBC-ODBC"); e.printStackTrace(); } } public void cerrarConexion() { try { statment.close(); conexion.close(); } catch (SQLException e) { e.printStackTrace(); System.exit(1); } }
martes, 30 de abril de 2013
UML herencia y clases abstractas para estructuras de datos
Una pequeña entrada, para recordar todos los apuntes de UML que se han ido haciendo a los largo del tiempo en este blog.
La herencia sirve para solucionar en diseños de software, cuando una clase debe heredar comportamientos de otra, los ejemplos más habituales de herencia, son los de animales, el clásico de clase padre Animal, de la que herada Pajaro y por debajo de Pajaro se crea una clase hija tipo Canario o Loro.
Vamos a suponer que necesitamos definir un objeto, que estará representado por una cantidad variable de propiedades, como puede ser, el objeto persona, que puede tener una serie de propiedades, pero aunque muchas veces comunes, no siempre las mismas. Y no solo no siempre las mismas, sino que incluso a veces solo necesito una o dos y no quiero crear el objeto con todas sus propiedades.
Como se puede ver la realción entre Persona y la propiedad, es de (rombo vacio o blanco) agregación y no de compoosición, ya que el objeto persona está definido por sus propiedades, pero no tiene una relación tan fuerta como para ser una composición (rombo negro)
Como es habitual, vamos a complicar los ejemplos habituales de herencia, y poner un ejemplo de una estructura de metadatos, que ya de por si puede ser molesta, y esa estructura de metadatos, vamos a representarla en forma de que cada propiedad que tenemos en el sistema de metadatos, puede ser de diferentes tipos, en este caso, vamos a contemplar (Entero, lista de enteros, cadena, lista de cadenas, booleanos y fechas) esta lista puede alargarse lo que se quiera.
Para solucionar la estructura de metadatos que pueden tener nuestros datos, vamos a definir un objeto que tendrá un conjunto de propiedades, vamos a llamar al objeto
Una representación posible de la herencia en UML, consiste en el ejemplo que podemos ver justo debajo, donde las clases de tipo IntegerProperty...*Property, heredan de la calse AbstractProperty, de la cual heredan el parámetro name.
Otras entradas de UML en este blog:
UML casos de uso escenarios
UML - Agregación vs composición
Diseño de clase asociativa
La herencia sirve para solucionar en diseños de software, cuando una clase debe heredar comportamientos de otra, los ejemplos más habituales de herencia, son los de animales, el clásico de clase padre Animal, de la que herada Pajaro y por debajo de Pajaro se crea una clase hija tipo Canario o Loro.
Vamos a suponer que necesitamos definir un objeto, que estará representado por una cantidad variable de propiedades, como puede ser, el objeto persona, que puede tener una serie de propiedades, pero aunque muchas veces comunes, no siempre las mismas. Y no solo no siempre las mismas, sino que incluso a veces solo necesito una o dos y no quiero crear el objeto con todas sus propiedades.
Como se puede ver la realción entre Persona y la propiedad, es de (rombo vacio o blanco) agregación y no de compoosición, ya que el objeto persona está definido por sus propiedades, pero no tiene una relación tan fuerta como para ser una composición (rombo negro)
Como es habitual, vamos a complicar los ejemplos habituales de herencia, y poner un ejemplo de una estructura de metadatos, que ya de por si puede ser molesta, y esa estructura de metadatos, vamos a representarla en forma de que cada propiedad que tenemos en el sistema de metadatos, puede ser de diferentes tipos, en este caso, vamos a contemplar (Entero, lista de enteros, cadena, lista de cadenas, booleanos y fechas) esta lista puede alargarse lo que se quiera.
Para solucionar la estructura de metadatos que pueden tener nuestros datos, vamos a definir un objeto que tendrá un conjunto de propiedades, vamos a llamar al objeto
Una representación posible de la herencia en UML, consiste en el ejemplo que podemos ver justo debajo, donde las clases de tipo IntegerProperty...*Property, heredan de la calse AbstractProperty, de la cual heredan el parámetro name.
Una cosa curiosa del ejemplo que se puede ver en este caso, es que las clases hijas de AbstractProperty, no solo heredan de su padre, sino que también deben hacer sobreescritura "override" de los métodos que declara la interfaz IProperty.
UML casos de uso escenarios
UML - Agregación vs composición
Diseño de clase asociativa
lunes, 29 de abril de 2013
AJAX tecnica de carga de paginas WEB
Obviamente AJAX no es una novedad, pero ha ganado muchos adeptos con el tiempo y es a dóa de hoy casi un estandar a la hora de hacer los diseños de páginas Web, de la mano de JQuery, nos hemos ido dando cuenta de que JavaScript no era tan malo como lo pintabamos.
AJAX, carga parcial de páginas Web. Cuando ahorrarse un submit, hace que quede más bonito.
AJAX no es un lenguaje de programación en si mismo, sino una serie de técnicas que agilizan la visualización de las paginas Web, es una gran idea, cuando tenemos paginas pesadas que necesitan actualizar datos, y si no queremos enviar las paginas completas para ser recargadas, podemos actualizar de la pagina solicitada solo los campos o datos necesarios, que van a modificarse, de esta manera podemos ahorrar muchos recursos a la hora de visualizar las paginas, los ejemplos que veremos a continuación son código JavaScript que puede utilizarse para realizar tareas de AJAX en paginas Web, notar que los ejemplos están basados en JSP con JavaScript, aunque podríamos extrapolar estas situaciones a paginas ASP o PHP, con diferentes lenguajes de programación de scripts.
Aviso los ejemplos son muy básicos, se pueden hacer cosas mucho más potente que lo que se refleja aquí. Esto solo es una guía básica.
Cambios en un componente por ID
<!— REEMPLAZAR TEXTO -->
<script type="text/javascript">
function cambio() {
document.getElementById('nombre').innerHTML = "Hola, mundo <b>AJAX</b>!";
}
</script>
<p><a href="javascript:cambio()">Cambiar</a></p>
<div id='nombre'>
Hola, Mundo!
</div>
<!-- FIN REEMPLAZAR TEXTO -->
<!-- TEXTO CON FICHERO -->
<script type="text/javascript">
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
http.open("GET", "test.txt");
http.onreadystatechange=function() {
if(http.readyState == 4) {
alert(http.responseText);
}
}
http.send(null);
</script>
<!— FIN TEXTO CON FICHERO -->
<!— AMBOS -->
<script type="text/javascript">
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
function replace() {
http.open("GET", "test.txt", true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
document.getElementById('nombre').innerHTML = http.responseText;
}
}
http.send(null);
}
</script>
<p><a href="javascript:cambio()">Cambiar</a></p>
<div id="nombre">
Hola, Mundo!
</div>
<!— FIN AMBOS -->
AJAX, carga parcial de páginas Web. Cuando ahorrarse un submit, hace que quede más bonito.
AJAX no es un lenguaje de programación en si mismo, sino una serie de técnicas que agilizan la visualización de las paginas Web, es una gran idea, cuando tenemos paginas pesadas que necesitan actualizar datos, y si no queremos enviar las paginas completas para ser recargadas, podemos actualizar de la pagina solicitada solo los campos o datos necesarios, que van a modificarse, de esta manera podemos ahorrar muchos recursos a la hora de visualizar las paginas, los ejemplos que veremos a continuación son código JavaScript que puede utilizarse para realizar tareas de AJAX en paginas Web, notar que los ejemplos están basados en JSP con JavaScript, aunque podríamos extrapolar estas situaciones a paginas ASP o PHP, con diferentes lenguajes de programación de scripts.
Aviso los ejemplos son muy básicos, se pueden hacer cosas mucho más potente que lo que se refleja aquí. Esto solo es una guía básica.
Cambios en un componente por ID
<!— REEMPLAZAR TEXTO -->
<script type="text/javascript">
function cambio() {
document.getElementById('nombre').innerHTML = "Hola, mundo <b>AJAX</b>!";
}
</script>
<p><a href="javascript:cambio()">Cambiar</a></p>
<div id='nombre'>
Hola, Mundo!
</div>
<!-- FIN REEMPLAZAR TEXTO -->
<!-- TEXTO CON FICHERO -->
<script type="text/javascript">
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
http.open("GET", "test.txt");
http.onreadystatechange=function() {
if(http.readyState == 4) {
alert(http.responseText);
}
}
http.send(null);
</script>
<!— FIN TEXTO CON FICHERO -->
<!— AMBOS -->
<script type="text/javascript">
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
function replace() {
http.open("GET", "test.txt", true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
document.getElementById('nombre').innerHTML = http.responseText;
}
}
http.send(null);
}
</script>
<p><a href="javascript:cambio()">Cambiar</a></p>
<div id="nombre">
Hola, Mundo!
</div>
<!— FIN AMBOS -->
Hattrick, el mejor manager online de futbol (Parte II)
En este segundo post sobre Hattrick, quiero entrar en los detalles de la liga en España.
Dentro de España que es uno de los paises que más jugadores tiene en el mundo consta de nueve divisiones que están formadas por más número de grupos según se baja de división y se aumenta el número de equipos en cada división.
Los grupos de cada división están todos formados por ocho equipos, lo que consta de catorce jornadas a ida y vuelta.
Como decía en el primer post, una de las cosas más importantes es el entrenamiento, sino lo más importante. una vez decidida una habilidad es importante mnatenerse fiel a la misma, entrenando la misma habilidad durante al menos un par de temporadas, en su momento las guías aconsejaban que para iniciar y contar con la mayora cantidad de dinero lo más rápido posible, lo mejor era enternar portería, aunque solo se conseguían subir dos jugadores al mismo tiempo, ya que el entrenamiento solo lo hacen los jugadores que jeugan un partido en la posición de la que se entrena.
Se comentaba que los porteros jovenes eran faciles de fichar, un aceptablo o bueno, es asequible para un equipo que se inicia y si se le consiguen subir dos o tres niveles, en una temporada o algo más, podías conseguir un par de ventas que podían rondar el millón cada una.
Con ese dinero, podías poner en marcha un equipo ganador para las ligas menores.
Con este PRO-Tip acaba el segundo post acerca de este gran manager, en el siguiente, hablaremos de que fichar con el dinero conseguido, dentrando atención en los niveles de las lineas de los partidos.
Dentro de España que es uno de los paises que más jugadores tiene en el mundo consta de nueve divisiones que están formadas por más número de grupos según se baja de división y se aumenta el número de equipos en cada división.
Los grupos de cada división están todos formados por ocho equipos, lo que consta de catorce jornadas a ida y vuelta.
Como decía en el primer post, una de las cosas más importantes es el entrenamiento, sino lo más importante. una vez decidida una habilidad es importante mnatenerse fiel a la misma, entrenando la misma habilidad durante al menos un par de temporadas, en su momento las guías aconsejaban que para iniciar y contar con la mayora cantidad de dinero lo más rápido posible, lo mejor era enternar portería, aunque solo se conseguían subir dos jugadores al mismo tiempo, ya que el entrenamiento solo lo hacen los jugadores que jeugan un partido en la posición de la que se entrena.
Se comentaba que los porteros jovenes eran faciles de fichar, un aceptablo o bueno, es asequible para un equipo que se inicia y si se le consiguen subir dos o tres niveles, en una temporada o algo más, podías conseguir un par de ventas que podían rondar el millón cada una.
Con ese dinero, podías poner en marcha un equipo ganador para las ligas menores.
Con este PRO-Tip acaba el segundo post acerca de este gran manager, en el siguiente, hablaremos de que fichar con el dinero conseguido, dentrando atención en los niveles de las lineas de los partidos.
Hattrick, el mejor manager online de futbol (Parte II)
En este segundo post sobre Hattrick, quiero entrar en los detalles de la liga en España.
Dentro de España que es uno de los paises que más jugadores tiene en el mundo consta de nueve divisiones que están formadas por más número de grupos según se baja de división y se aumenta el número de equipos en cada división.
Los grupos de cada división están todos formados por ocho equipos, lo que consta de catorce jornadas a ida y vuelta.
Como decía en el primer post, una de las cosas más importantes es el entrenamiento, sino lo más importante. una vez decidida una habilidad es importante mnatenerse fiel a la misma, entrenando la misma habilidad durante al menos un par de temporadas, en su momento las guías aconsejaban que para iniciar y contar con la mayora cantidad de dinero lo más rápido posible, lo mejor era enternar portería, aunque solo se conseguían subir dos jugadores al mismo tiempo, ya que el entrenamiento solo lo hacen los jugadores que jeugan un partido en la posición de la que se entrena.
Se comentaba que los porteros jovenes eran faciles de fichar, un aceptablo o bueno, es asequible para un equipo que se inicia y si se le consiguen subir dos o tres niveles, en una temporada o algo más, podías conseguir un par de ventas que podían rondar el millón cada una.
Con ese dinero, podías poner en marcha un equipo ganador para las ligas menores.
Con este PRO-Tip acaba el segundo post acerca de este gran manager, en el siguiente, hablaremos de que fichar con el dinero conseguido, dentrando atención en los niveles de las lineas de los partidos.
Dentro de España que es uno de los paises que más jugadores tiene en el mundo consta de nueve divisiones que están formadas por más número de grupos según se baja de división y se aumenta el número de equipos en cada división.
Los grupos de cada división están todos formados por ocho equipos, lo que consta de catorce jornadas a ida y vuelta.
Como decía en el primer post, una de las cosas más importantes es el entrenamiento, sino lo más importante. una vez decidida una habilidad es importante mnatenerse fiel a la misma, entrenando la misma habilidad durante al menos un par de temporadas, en su momento las guías aconsejaban que para iniciar y contar con la mayora cantidad de dinero lo más rápido posible, lo mejor era enternar portería, aunque solo se conseguían subir dos jugadores al mismo tiempo, ya que el entrenamiento solo lo hacen los jugadores que jeugan un partido en la posición de la que se entrena.
Se comentaba que los porteros jovenes eran faciles de fichar, un aceptablo o bueno, es asequible para un equipo que se inicia y si se le consiguen subir dos o tres niveles, en una temporada o algo más, podías conseguir un par de ventas que podían rondar el millón cada una.
Con ese dinero, podías poner en marcha un equipo ganador para las ligas menores.
Con este PRO-Tip acaba el segundo post acerca de este gran manager, en el siguiente, hablaremos de que fichar con el dinero conseguido, dentrando atención en los niveles de las lineas de los partidos.
Suscribirse a:
Entradas (Atom)





