entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Ayuda con crear Web Services y Arquitectura Orientada Servicios

Buenos Días, quiero implementar una arquitectura orientada a servicios(SOA) algo sencilla para tratar el tema de acceso a la base de datos lo cual me aumentaría la seguridad en mi sitio y me ayudaría a superarme pues este paradigma de arquitectura es realmente muy utilizable y accesible además de las facilidades que esta brinda para la gestión de sus funciones. Teóricamente entiendo que es como una base de datos de código a la cual se le pasa un servicio que es algo como un método o function con sus valores y este me devuelve el resultado, conozco que esta se puede implementar en una plataforma y ser accesible desde muchos lenguajes distintos, particularmente me gustaría hacer mi webservices en php con json. He visto algunos videos en youtube pero necesito una guía y libros de SOA para diseñar bien la arquitectura y de esta forma dejar mi sitio con su arquitectura MVC de CodeIgniter y SOA para el trabajo directo con la Base de Datos.
Saludos Dairon

2 Respuestas

3votos

cloudman Puntos4020

Desde mi humilde opinión.

Yo creo que antes de meterte a pensar en una arquitectura SOA, deberías aclararte en como funcionan e implementan servicios web con soap y con rest, ya que la forma de implementarlos y consumirlos es muy distinta, además de ver que necesidades tendrías en cuanto a seguridad, estados... y ver que tipo de aplicación quieres hacer, seguramente te sea más fácil hacer y consumir un servicio rest, pero quizás en otra situación y dependiendo siempre de la aplicación que quieras hacer, te sea mejor utilizar soap. No se trata de lo que esté más demandado o lo que al gente haga más, se trata de ver tu necesidades y utilizar una cosa u otra en función de esto.

Como ya digo es mi opinión personal pero para mi el hecho de utilizar servicios web, no implica que estes aplicando una arquitectura SOA, se supone que una arquitectura SOA debería formarse de varios tipos de servicios, y a poder ser debilmente acoplados facilitando la operabilidad entre ellos. Entre otros, deberías tener servicios de utilidad con funciones más básicas o más complejas de negocio, según definas, tendrías servicios de acceso a datos... serían servicios sin estado algo así como los DAO de toda la vida (que según comentas, querrías hacer algo así...)

La idea es definir servicios por niveles, entendiendo que tendrás servicios de Acceso a entidad a un nivel muy bajo (no expuestos al bus), y por otro lado servicios de niveles superiores con funciones de negocio más complejas y que se apoyarán en los servicios de niveles inferiores, los niveles que definas ya es algo más personal y según las necesidades.

Por otro lado, deberías tener un bus de datos en el cual expongas esos servicios, para poder ser consumidos por los clientes, este bus de datos tendrá una fachada que será lo que el cliente del servicio ve, pero internamente este bus puede tratar los datos de diferente forma, la idea de tener un bus de datos y exponer los servicios en él, te facilitará que obligatoriamente tengan que pasar por él para consumir un servicio, por lo cual sería lógico pensar en meter la seguridad y demás comprobaciones aquí, entre otras cosas.

A grandes rasgos, quizás te puedas aclarar un poco, pero desde mi punto de vista aplicar una arquitectura soa no es algo que hagas en dos días. Yo "cacharrearía" con servicios web y cuando sepas como trabajan, los pros y contras de cada uno... te metes a pensar en como hacer la aplicación que comentas.

Ni que decir tiene, que puedes hacerte unos servicios web de acceso a datos, desplegarlos y consumirlos desde tu aplicación... pero lo que yo te quería dejar entrever es que si pretendes meterte en algo como dices de red social, la cosa es más compleja y deberías tenerlo en cuenta...

Espero que te aclare algo, y como ya te digo es mi opinión personal ya que esto tiene muchos puntos de vista.

Un saludo compañero.

0voto

dairon comentado

Me gusta mucho todo lo que me comentas, es realmente lo que más buscaba ya que quiero aprender a implementar una gran arquitectura SOA, me podrías facilitar algún libro o algo par aprender sobre SOA. mi correo es [email protected].
Saludos Dairon

0voto

Leonardo-Tadei comentado

Luego de seguir las buenas recomendaciones de @cloudman, fijate el manual de PHP de la biblioteca que permite implementar clientes y servidores SOAP: http://php.net/manual/es/book.soap.php

Es muy sana la sugerencia de primero usar un poco de servicios SOAP consumiéndolos, para despues de esa experiencia recién plantearse crear algún server...

0voto

dairon comentado

muchas gracias por las sujerencias e indicaciones

0voto

juansolo Puntos1840

Hoy en día tiene más aceptación las aplicaciones REstful. Aquí tienes un pequeño ejemplo que he encontrado.

0voto

dairon comentado

Eso que me comentas se podría utilizar para hacer una página con funciones algo más complejas de peticiones como una red-social ??

0voto

carlossevi comentado

Aclaración: REST es un tipo de SOA. Explicación de Wikipedia. No confundir SOA con SOAP, que es otro tipo de SOA.

SOA: Service Oriented Architecture.
SOAP: Simple Object Access Protocol.
REST: Representational State Transfer.

0voto

dairon comentado

Realmente necesito documentación de como implementar una Arquitectura SOA, es decir sus modulos y demás la lógica que lleva para crearla ya sea en español o ingles.

0voto

juansolo comentado

En mi opinión una aplicación Restful es mucho más simple y flexible. Emplea el estilo típico de la web donde un un recurso es accedido a través de una URI. La definición de las URIs es la parte más complicada pues implica definir una jerarquía de recursos pero siguiendo la convención document-store-collection-controller (o alguna otra que se suele usar) tampoco es tan complejo.

Como usas una URI para acceder a un recurso, puedes utilizar cualquier protocolo que empleen dicho esquema (HTTP, FTP, ...). Esto permite que puedas aprovecharte de los métodos de autentificación y de seguridad que proporcionen dichos protocolos más los que tu incorpores en el código.

Yo la he utilizado como un servicio Web. Definí una API que proporcionaban la funcionalidad que consumían una Web y una aplicación de escritorio y la cosa fue bien.

Todo depende de cual es sea el problema que pretendas resolver y de los recursos de que dispongas.

0voto

dairon comentado

Gracias lo tendré todo en cuenta

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta