Está en la página 1de 8

Taller 2

Arquitectura de Software

Laura Tatiana Viteri


Francy Dayana Rodriguez

Piedad Chica

Universidad Cooperativa de Colombia Sede Villavicencio


Facultad de ingeniería de Sistemas
Ingeniería de Software
Villavicencio
2019
UNIVERSIDAD COOPERATIVA DE COLOMBIA
FACULTAD DE INGENIERIA
TALLER 2 ARQUITECTURA DE SOFTWARE

1. Realizar el test de Arquitectura de Software y colocar pantallazo del puntaje obtenido.


Link del test: https://www.daypo.com/unidad-3-arquitectura-software.html

2. Destaca las ventajas e inconvenientes de una arquitectura cliente/servidor sobre una


Arquitectura monolítica.
Arquitectura Ventajas Inconvenientes
 Aprovechan la capacidad  Existe un acoplamiento entre
de procesamiento de las las capas de
máquinas cliente (PC’s) presentación y lógica de
descargando al servidor. negocio.
 Se integran fácilmente  Las máquinas clientes (PC’s)
con herramientas necesitan capacidades
ofimáticas (Microsoft de procesamiento cada vez
Office). mayor lo que implica unos
 La interfaz de usuario es períodos de renovación cada
sencilla y consistente. vez menores.
 Existe una amplia gama  Microsoft tiene un monopolio
Cliente / Servidor de proveedores de de “facto” tanto en el sistema
servicios que conocen operativo como en las
estas arquitecturas. herramientas ofimáticas que
 Su crecimiento es más residen en las máquinas
“horizontal”, si es cliente. Esta circunstancia
necesario mayor condiciona en parte el
capacidad de proceso a desarrollo y evolución de los
nivel de interfaz o lógica sistemas que se ejecutan en
de negocio, sólo es esta arquitectura.
necesario renovar las  La incorporación de
máquinas cliente. nuevas versiones de software
 Sus costes de adquisición supone la actualización de
y renovación bajan múltiples máquinas cliente lo
considerablemente. que en muchas ocasiones
supone problemas logísticos.
 Las máquinas clientes se
“cuelgan” y la ejecución de
aplicaciones se vuelve menos
fiable.
 Los usuarios “tocan” su
máquina cliente y
provocan problemas de
configuración que hacen que
las aplicaciones no se ejecuten
correctamente.
 Los sistemas de información
empiezan a disgregarse y
a crecer “sin control” dentro de
los diferentes departamentos
de la empresa, es decir, sin el
debido nivel de coordinación
que asegure que los sistemas
“hablan” entre sí.

 Sistemas  Se trata de
muy estables y seguros. sistemas rígidos y difícilmente
 La capacidad adaptables ante nuevas
para administrar el necesidades.
sistema es total.  Su crecimiento es “vertical”,
 Los proveedores de este es decir, el aumento de su
tipo de sistemas son capacidad de proceso pasa
las grandes por cambiar el servidor actual
empresas del mundo de por uno mayor.
Monolítica los sistemas de  Su tecnología es “propietaria”
información: IBM, Sun y, por tanto, los servicios
Microsystems, BMC … asociados a la misma pasan
 Los servicios necesariamente por el
profesionales de estas proveedor de la misma. Esto
empresas tienen un alto crea una gran dependencia
nivel de del cliente hacia la empresa
conocimiento sobre sus proveedora.
productos.  Sus costes de adquisición,
renovación y soporte son
elevados
3. ¿Lectura de como tomar decisiones de arquitectura? Definiendo y ordenando objetivos.
Link: https://www.genbeta.com/desarrollo/como-tomar-decisiones-de-arquitectura-
definiendo-y-ordenando-objetivos

Es importante que todo proyecto use una metodología que ayude en la productividad
adaptando el software a la necesidad del usuario, es importante que los objetivos se vayan
cumpliendo, haciendo entregas continuas. La seguridad debe implantarse de forma
gradual y supeditada a los criterios principales de agilidad y mantenimiento. Una
metodología debe ser tomada como una guía y no como una ley estricta.

4. ¿Qué toma de decisiones en cuanto a la arquitectura de software se dan en un proyecto


de desarrollo de software?

 Agilidad en el desarrollo, para fomentar la productividad y aceptar cambios en la


funcionalidad sin traumas.

 Funcionalidad Básica, para poder ser evaluada cuanto antes, y que además sirva de
revulsivo o pequeño quick-win.

 Fiabilidad en la ejecución. Es mejor que haga poco, pero bien, pues la desconfianza
una vez instaurada es muy difícil de erradicar.

 Mantenimiento operativo y correctivo: programar con el usuario, pero también con


el operador y futuros programadores en mente.

 Extensibilidad de la funcionalidad, ya que la hemos reducido inicialmente debemos


ser muy precavidos para dejar puntos de extensibilidad suficientes.

 Adaptabilidad sin compilación. Ficheros de configuración, parametrizaciones,


técnicas de inyección de código, cualquier posibilidad de mejora… sin recompilar y
redistribuir el proyecto principal.

 Funcionalidad completa. La competencia y las demandas de los clientes no tienen


límite, debemos completar la aplicación agregando módulos a buen ritmo.

 Seguridad de la información. Según el sector de destino, este puede ser un punto


crucial que avance posiciones.

 Velocidad en la ejecución. Optimizar los tiempos totales y sobre todo los percibidos
por el usuario.

 Coste total. Resumen y colofón de todo lo anterior. ¿Cuánto me cuesta producir el


programa de esta forma? ¿Me saldría más barata otra tecnología?

5. Cuáles son las herramientas de diseño arquitecturales. Que herramientas de diseño


existen en cuanto a la Arquitectura de Software.
Herramientas para Modelado de Software: El modelado de software es el primer paso
antes de desarrollar cualquier tipo de sistema. Normalmente, el modelado se basa en la
creación de Diagramas que explican el funcionamiento del software. Para eso se usan los
diagramas UML, los cuales permiten que los desarrolladores definan sistema,
funcionamiento y funcionalidades. Algunas de las herramientas de modelado de software
son los Diagramas UML Online de Lucidchart, la Herramienta UML de Altova y MagicDraw
UML.

Herramientas de Desarrollo de Software: Una vez que ya contamos con lo que son los
Diagramas UML en la parte del modelado de software, es momento de pasar al desarrollo.
En este caso, la herramienta son lenguajes de programación, por ejemplo, .Net de
Microsoft, C y PHP. Según el lenguaje elegido, hay que buscar algún tipo de IDE con un
ambiente que haga que el desarrollo sea más amigable.

Herramientas para Hacer Pruebas del Desarrollo: La tercera etapa son las pruebas. Es
indispensable realizar pruebas de código, para verificar que las funciones hayan sido
debidamente agregadas. Por eso es necesario, contar con herramientas que permitan
ejecutar el código en modo prueba, entre estas herramientas las más conocidas son
Selenium JMeter y Testlink.

Herramientas para Depurar Código: La depuración, es un proceso que se ejecuta de


forma intuitiva gracias al conocimiento del lenguaje con el que estamos trabajando. La
idea es que, durante la ejecución de los procesos, tengamos la habilidad para encontrar
los errores del código. El debugger es la herramienta usada en esos casos. Entre los más
utilizados tenemos GNU Debugger, Debugger de Firefox y Chrome.

Herramientas para el Diseño de Software: Actualmente, el software requiere una interfaz


gráfica amigable y grata al usuario. De ahí que una de las etapas finales del desarrollo de
software es el diseño, para lo cual podemos utilizar tanto herramientas de diseño gráfico
tradicionales como las Plataformas IDE.
Photoshop y Corel Draw son ejemplos de lo primero mientras Eclipse y Visual Estudio lo
son de plataformas ID que permiten obtener buenas interfaces gráficas.

6. Consulte que es EJB. Qué relación tiene con la Arquitectura de Software.


Enterprise JavaBeans (EJB) es una de varias API de Java para la construcción modular
de software empresarial. EJB es un componente de software del lado del
servidor que encapsula la lógica empresarial de una aplicación. Un contenedor
web EJB proporciona un entorno de ejecución para componentes de software relacionados
con la web, incluida la seguridad informática, la gestión del ciclo de vida del servlet de Java,
el procesamiento de transacciones y otros servicios web. La especificación EJB es un
subconjunto de la especificación Java EE.

7. Que es SOAP.
SOAP (abreviatura de Simple Object Access Protocol) es una especificación de protocolo
de mensajería para intercambiar información estructurada en la implementación de servicios
web en redes de computadoras. Su finalidad es proporcionar extensibilidad, neutralidad e
independencia. Utiliza el Conjunto de información XML para su formato de mensaje, y se basa
en los protocolos de capa de aplicación, generalmente el Protocolo de transferencia de
hipertexto (HTTP) o el Protocolo simple de transferencia de correo (SMTP), para la negociación
y transmisión de mensajes.

8. Que es WSDL.
La Web Services Description Language (WSDL) es un XML basado en lenguaje de descripción
de interfaz que se utiliza para describir la funcionalidad ofrecida por un servicio web. El
acrónimo también se usa para cualquier descripción WSDL específica de un servicio web
(también denominado archivo WSDL), que proporciona una descripción legible por máquina
de cómo se puede llamar al servicio, qué parámetros espera y qué estructuras de datos
devuelve. . Por lo tanto, su propósito es aproximadamente similar al de una firma de tipo en
un lenguaje de programación.

9. Que es un Webservices. Como es la arquitectura de un Webservices.


Un web service es un conjunto de protocolos y estándares que sirven para intercambiar datos
entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de
programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios
web para intercambiar datos en redes de ordenadores como internet.

En la arquitectura de servicios web existen tres partes: proveedor de servicios web, el que
pide el servicio web y el publicador. El proveedor de servicios envía al publicador del servicio
un fichero WSDL con la definición del servicio web. El que pide el servicio contacta con el
publicador y descubre quién es el proveedor (protocolo WSDL) y contacta con el proveedor
(protocolo SOAP). El proveedor valida la petición de servicio y envía el dato estructurado en
formato XML utilizando el protocolo SOAP. El fichero XML es validado de nuevo por el que
pide el servicio utilizando un fichero XSD.

 Service Discovery. Responsable de centralizar servicios web en un directorio común


de registro y proveer una funcionalidad sencilla para publicar y buscar. UDDI se
encarga del Service Discovery.
 Service Description. Uno de los aspectos más característicos de los web services es
que se auto describen. Esto significa que una vez que se ha localizado un Web Service
nos proporcionará información sobre que operaciones soporta y cómo activarlo. Esto
se realiza a través del Web Services Description Language (WSDL).
 Service Invocation. Invocar a un Web Service implica pasar mensajes entre el cliente y
el servidor. SOAP (Simple Object Access Protocol) especifica cómo deberíamos
formatear los mensajes request para el servidor, y cómo el servidor debería formatear
sus mensajes de respuesta.
 Transport. Todos estos mensajes han de ser transmitidos de alguna forma entre el
servidor y el cliente. El protocolo elegido para ello es HTTP (HyperText Transfer
Protocol). Se pueden utilizar otros protocolos pero HTTP es actualmente el más usado.

10. Cree un Webservices en algún lenguaje de programación o entorno de desarrollo.


Se realiza el webservice con el lenguaje de PHP y con base de datos MARIA DB donde se
crean las respectivas tablas a utilizar posteriormente

Se crea la conexión de la base de datos, teniendo en cuenta que la base de datos ya creada

Con la conexión ya realizada se procede a realizar el código para el registro del usuario el
cual retornara un mensaje cuando el usuario este creado correctamente o sino se pudo
registrar correctamente
Cuando el usuario fue registrado correctamente se procede a acceder a través del login
donde verifica el correo y la contraseña con respecto a la base de datos retornando así un
mensaje de contraseña válida o no válida

Referencias

https://www.iedge.eu/gregorio-cortes-ventajas-e-inconvenientes-tipos-arquitecturas-de-
sistemas
https://en.wikipedia.org/wiki/Web_Services_Description_Language
https://en.wikipedia.org/wiki/SOAP
https://en.wikipedia.org/wiki/Enterprise_JavaBeans
http://culturacion.com/que-es-y-para-que-sirve-un-web-service/
https://es.wikipedia.org/wiki/Servicio_web
https://diego.com.es/introduccion-a-los-web-services

También podría gustarte