Toggle Theme Editor
Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Charcoal

Server-client Desktop Design Solutions

Discussion in 'Xây dựng ứng dụng server-client desktop' started by Thanhpv, 21/11/19.

  1. Thanhpv

    Thanhpv New Member

    As an amature coder, for my first application ever, I am going to be crazy about design solutions for every corner of it.
    Could someone or who has experience please give me some hints, advises about books, sources...that help me to design this application?

    z1618704777083_36a7a7498e5690360f7fa8e3e7d64cad.jpg z1618717666441_82e700174e5dff05198c6d3e55ea4f9b.jpg

    Attached Files:

    Last edited: 22/11/19
  2. Joe

    Joe Thành viên VIP

    I don't understand what you have in mind.
    Client-Server (not Server-Client) Design means: a server app that serves n clients via LAN or WAN (or the Web). Do you mean that or have you other thought in your "skull" :D ?

    Normally CS design and implementation depend individually on the requirements you have. There're lots of books discussing about this issue. However, the discussion is more or less basing on theory and (maybe) some raw models that are neither suited to your true needs, nor simple to comprehend. It's in my view a throw-away money for some literature about something either too generic or too vast for an unspecified technology like Client-Server technique. The CS principle is:
    - a server that runs somewhere and waits for (remote) requests from clients which could be on the same LAN (Local Area Network) or WAN (Wide Area Network) or from the Web.
    - Clients are, as mentioned above, coming from a remote site and usually request for some work like accessing DB or asking for a result of a processing task.

    All that bases on a loosely coupling interprocess communication. The server offers its services by publishing its location (port/hostname) and the Clients access these services via this location. Now it comes to the implementation: what kind of communication should be? loosely like with the Web (publishing services) or tightly with peer-to-peer like file-transferring (e.g. download). Modern technology is either socket or websocket connection. Both work similarly.
    The next requirement is how safe should the communication be? Encrypted/Decrypted or just plain communication?
    Finally, what services should be offered? What DB must be involved and how the data should be accessed (SQL, NO SQL, etc.)

    As you see, CS Design and Implementation are at the first glance a simple work. In depth it's a maze of different technologies: Networking, Security, Database and Data Processing (threads/tasks/etc.) If you start to design a CS app the first thing you have to have in mind is what services they should be, and then how the services could be materialized. Finally how the services could be implemented with what (OO) programming language. If you did that you could post here and I would see how I could help you...
    Last edited: 21/11/19
    Thanhpv likes this.
  3. Thanhpv

    Thanhpv New Member

    Great thanks for your time.
    I followed the section’s name "Xây dựng ứng dụng server-client desktop" :))

    I am doing without any experience of application design both server and client. I rarely need code but need something conceptual, theoretical... to develop senses of designing safe, elastic, resilience, modular, scalable CS application.
    For this one, I want to push all of those models, geometry data, catalog, tree - catalog to a remote repository. A project is pushed by not only one client but can be many (dozens). Other clients, with their functionalities and purposes to pull data from the repo to do analysis, calculations such as cost, resources, schedule, progress....
    Only user data needs to be encrypted.
    Currently the app can be used individually.

    I do not know which DB, tech to pick for the server side.
    Last edited: 22/11/19
  4. Joe

    Joe Thành viên VIP

    It depends on the data. Usually data consist of a fixed structure (such as: name, address, age, etc.) and are accessed by some certain keyword (e.g. by name). If so, SQL related DB is the best choice.
    If data are an amalgamation of hodgepodge things (i.e. unstructured) it's better to go with NO SQL DB. Or you design your own DB. The reason is: Java Objects are accessible and stowable if they are serialized and that is the best way to design your own JAVA object-oriented DB. It's quick and individualizable for the data.
    I never recommend any DB or talk about any 3rd party software (such as JUNIT, SPRING Framework, etc.) So, pls. don't ask. But I do intend to start a series to show CDJ members how to implement a JAVA Object Database (JODB) after I complete the series Pure JAVA-implemented Model-View-Controller in conjunction with JFX-MVC (see HERE) and it depends on the outcome of the poll.
    Btw, one of the CS design is the "Instant Messaging System" which can be viewed and studied: HERE
    Thanhpv likes this.
  5. Thanhpv

    Thanhpv New Member

    I also developed a simple DB to for the app, it can do CRUD any serialized objects and of course primitives.
    It is doing well with the app, not optimized and I have not answered about its performance compared to others yet.

    Wish to have someone like you to work with me.
    Last edited: 24/11/19
  6. Joe

    Joe Thành viên VIP

    ...thanks for the "request" to work with you. BUT thank you. I have to decline. Since I left and let my little company run by my former employees I enjoy currently helping my dad to cultivate "wine" in Southern France (Languedoc Roussillon). And all the computer stuffs are my own developments: Java Object-Oriented Database (JODB), logistics and warehouse management, etc.
    Btw, It's winter in Europe and I have time to show you guys how to develop JODB, MVC, etc. BUT just perfunctory because people don't seem to have interest on such heavy-digesting themes.
  7. Thanhpv

    Thanhpv New Member

    It is a warm invitation :)
    Some of it looks like this, with some core ideas added to.
    Enjoy your time
    Last edited: 24/11/19
    Joe likes this.
  8. Joe

    Joe Thành viên VIP's for a construction company :-o Well, my proposal:

    If I lead and work with you to build a JODB and its DB server as well as its clients you (or your company) pay some royalty to CongdongJava. And if you agree with my term you'd contact ALL 4 CDJ admins and me via CDJ-Mailbox:
    • Tranhuyvc (Admin)
    • JackV (Admin)
    • Macarong35 (Admin)
    • Quydtkt (Admin)
    • Joe [​IMG]
    and we could discuss about the details...
    Last edited: 24/11/19
  9. Thanhpv

    Thanhpv New Member

    Best news!
    It would be my great honor to see talents in the "land".
    I am not an IT man, it only makes senses when I ignite. It will surely take some time.
    I will contact you
    Last edited: 24/11/19
    Joe likes this.

Chia sẻ trang này