실시간으로 서버쪽에서 필요한 정보를 클라이언트에서 보여주는
정보창 같을 것을 만들어 보려고 합니다.
하지만 서버푸쉬?? 같은 개념이 맞는 거죠??
암튼 서버푸쉬 관련되어서는 전혀 아는게 없어서..
어디서 부터 어떻게 접근해야 하는지를 도무지 감 잡을수가 없네요..
서버푸쉬?? 자바, 비베, 델파이..등 별도의 응용프로그램으로 개발하여..
실시간으로 정보를 보여준다던가..??
등등..
어떤식으로 만들어지는지 또한 서버쪽의 부하를 고려하여..
가장 이상적인 개발형태는 어떤것인지..?
참.. 그리고 소켓통신, C/S프로그램밍 등등 이런 용어들이..
모두 연관되는 것들인가요?? --;
답변 좀 부탁드립니다. (__)
통상적으로 C/S 시스템에서 서버와 클라이언트가 통신하는 방식은 두 가지 중의 한가지 또는 둘 다입니다.
1. 서버에 구축된 DB와 Client 프로그램의 직접 통신
2. TCP/IP 소켓 통신
아주 단순화시켜서 생각해 보자면, 1번의 경우에는 DB를 핸들링하는 비즈니스 로직이 클라이언트 프로그램에 있을 것이고, 서버에 있는 프로그램(데몬)들은 그 로직을 DB에 전달하고 반영물을 돌려주는 역할 이외에는 하지 않을 것입니다. 그리고 2번 같은 경우는, 꼭 그런건 아니지만 대개 비즈니스 로직은 서버에 있고, 비즈니스 로직을 call하는 나름의 전문(packet) 로직이 클라이언트에 있을 겁니다.
근데, 경우에 따라서는 특별히 비즈니스 로직이라고 할만한 것이 없는 서비스도 중간에 개입하게 될 수가 있는데, 님이 말씀하신 경우가 바로 그런 경우라고 보여집니다. 이럴때는 대개 TCP/IP 통신을 하게 되지요.
아마도 클라이언트가 최초에 접속하게 되면, 대기하고 있는 서버의 TCP/IP 소켓 데몬에 Login메시지를 보낼 것이고, 서버는 로긴의 정당성을 검증한 뒤, 클라이언트의 해당하는 소켓에 로그인 되었다는 메시지를 날릴겁니다. 이 때, 클라이언트에 만약, 대기하고 있는 소켓이 하나 더 있다면, (또는 로그인 메시지 자체를 이용해도 좋을 듯) 그 소켓으로 일정한 정보를 날릴 수가 있을 것이고, 대개 그런 것이 님이 말씀하신 서비스를 구축하는 방식일겁니다.
구축 방법은.. 딥따 많습니다. ^^;
클라이언트 쪽에서 타이머를 사용해서 주기적으로 서버에 리퀘스트를 날리면 서버가 반응하는 방식을 쓸 수도 있고, 역으로 서버 위에, 접속한 클라이언트에게 일정 시간주기로 공지를 날리는 데몬을 구축할 수도 있을겁니다.