`
webdev2014
  • 浏览: 681804 次
文章分类
社区版块
存档分类
最新评论

C++总结篇

 
阅读更多

工作背景介绍:
首先看一下项目的整体架构。通过图来介绍一下项目负责的部分:
项目的需求任务是工作流引擎,因为使用Java工作流比较方便,因此,公司选择使用普元平台做了基于普元平台的工作流引擎。通过图,可以观察到客户乃是C++系统,我们做的工作流引擎是相当于客户C++系统的一个插件而已。并且客户的C++系统已经投入使用中了。
为了使公司中的Java引擎能够兼容嵌入到客户的C++系统中,基于这个需求下,我的工作任务诞生了——中间部分的C++通信客户端。

项目技术分析
整体的架构有了,通过图,大概能够知道我负责的C++通信客户端这块的大概技术要求了。中间部分就相当于协调者,协调的主要任务就是通信。
通过这个小内容技术分析,目的不是吹嘘技术,更不是炫耀自己的技术或公司或客户。而是真实的表达出目前市场技术形势以及技术需求,需求有了,才会有明确的学习目标。

首先:C++通信客户端<——>Java工作流引擎
通信方式共有三种:
  1. webserivce,与语言无关的接口。并且是个基于w3c标准。其中,在项目中,我就是通过webserivce来实现C++与Java通信的。其中,C++客户端使用的soap或gsoap。
  2. JNI方式统称为Java Native Interface,Java本地调用方式。JNI标准已经是Java平台的一部分,允许Java与其他的语言进行通信,一般情况下,主要是为了C或C++设计的。只要他们约定好接口就行。 在JNI方式中,因为本地调用,所以在Java声明方法时,是使用native关键字,说明是非Java语言实现。具体的方法实现则是在C++或C中。
  3. socket通信socket通信,这部分内容,确实很重要,做过Java客户端的,基本都接触过这socket部分,而我从未接触过java客户端,而是直接上手的java web,所以当时对socket通信,确实有点点难理解。所以没有选择socket通信方式。但是socket通信,在项目中也是重大的部分。
其次:B/S工作流——>C/S客户端
基于普元的Java工作流是B/S网页形式,而客户C++系统,则是纯纯的C/S模式,如何把后台的B/S工作流转化成C/S客户端哩?
因为是初次接触MFC,对于陌生的东东,是需要时间来熟悉的。由于初次接触,所以组长好心提示,做成类似网银加载提示的Active控件。自己手动开发Active控件,对于C++开发者,也许还有难度,更何况对于我呢?呼呼,经过自己上网查资料,嘻嘻,发现B/S转C/S很简单,一个自带的IE控件即可。OK,加载IE控件,URL地址设置成后台引擎的首页,一切搞定。YES,一个IE控件,搞定B/S转C/S。
哈哈,有网的地方,就会有天使。

然后:JSP<——>C++
根据业务的需求,通过后台Java返回的结果,调用本地的业务窗口。通过webserivce,每次都是在服务器端弹出,而不是客户端,所以webserivce这种方式失败。为了实现这个业务功能,所以直接让C++客户端调用,就可以实现客户端弹出相应的业务窗口。因此,JSP需要与C++打交道。所以,通过写js事件,调用C++方法,即可实现。
这部分通信,需要JS与C++通信。主要实现的是Iimdispatch接口。主要是根据名称,循环查找相应的id,然后通过id,查找相应的方法。

还有,C++通信客户端<——>客户C++系统
C++之间的通信,主要是通过函数依赖完成。函数依赖,也就是通过静态链接库或动态链接库方式加载。只要从事C++的,这部分也算是常识了。
这部分重点不是函数依赖,而是socket通信。
因此socket通信,这部分内容,也是我们需要掌握的。
无论是windows底层的socket32 api,还是mfc封装的Csocket,原理都是一样的,只不过,mfc封装的Csocket或java封装的socket,相对于socket32简单些。
在通信的过程中,使用udp方式,因为udp相对于tcp简单,不需连接,不许监听,但是有优点,就会有缺点。udp不如tcp安全。
但是,udp依然可以做到tcp的三次握手。由于业务的需要,在udp之上,又添加了tcp连接。只要udp用的合适,用的好,与tcp无差别。
其中,内部还涉及到了解析xml,创建xml,这部分的内容也是为通信做准备。

在技术分析这块,只要总体介绍了工作项目中应用到的技术,而没有具体介绍,在后期博客中会有相应的详细介绍,目的:记录工作经验,同样方便别人。


其实,我对知识并不是太看重,知识,技术,是永远学不完的,只要会学习,想学习,没有学不会的。


分享到:
评论

相关推荐

    用汇编的眼光看C++(之 总结篇)(pdf版本)

    用汇编的眼光看C++(之 总结篇)(pdf版本) 网络资源整理版本~~

    C++ 基础篇(2).pdf

    接着上一次上传的资料,总结的内容,主要是一些C++数据类型的资料,都是自己学习总结的,还是那一句,大神绕道,学习能力和记忆力的确会随年龄受到影响。但是学习C++本来就是一个周期相对较长的过程,最重要的是保持...

    C++面向对象篇.pdf

    C++面向对象的程序设计,主要总结C++的类和对象,还有C++继承,重载,多态,还有就是数据抽象,数据封装,还讲述了C++接口,(抽象类)

    C++进阶(语法篇)

    在工作之余,总结了自己对C++的学习和认识,送给那些C++刚入门的同学。

    C++中几种将整数转换成二进制输出的方法总结

    下面小编就为大家带来一篇C++中几种将整数转换成二进制输出的方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    C++ map用法总结(整理)

    C++ map用法总结(整理)。 一篇文章带你快速了解!

    C++入门基础(万字总结)

    C++入门基础(万字总结)。 一篇文章带你快速了解!

    C++中static关键字总结

    你知道静态变量吗?你知道static的用法吗?你知道使用static时的注意事项吗?不知道不要紧,请阅读这篇文档

    c++智能指针最全知识点即面试题目总结

    对于需要面试C++相关岗位的文章,看完这篇文章,如果面试官再问你智能指针,我敢肯定,你一定可以侃侃而谈了~智能指针的面试题,只看这一篇就够了!相信看完这篇文章,妈妈再也不用担心面试官考我智能指针的问题啦...

    易学C++[C++著名的基础书籍潘嘉杰著]

    第一篇 过程化的程序设计 第1章 良好的学习开端 1 1.1 软件与程序 1 1.2 程序设计要做什么 1 1.3 选好一种语言 2 1.4 C++能够做些什么 2 1.5 C语言、C++和VisualC++的关系 2 1.6 学习程序设计的方法和...

    C++文件读写总结 !!!

    C++文件读写总结 !!! 为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, &lt;iostream.h&gt; ...

    c++面试经验篇、笔记要点!!!

    学习c/c++过程中总结的经验,再次与大家分享,希望大家可以共同进步,都能找到满意的工作!!

    C++ Template 基础篇(一):函数模板详解

    Template所代表的泛型编程是C++语言中的重要的组成部分,我将通过几篇blog对这半年以来的学习做一个系统的总结,本文是基础篇的第一部分。 为什么要有泛型编程 C++是一门强类型语言,所以无法做到像动态语言(python...

    C与C++差异

    这篇文章主要总结了C与C++的差异性,希望对大家有所帮助

    c++中容器之总结篇

    本文总结了C++的容器,其大致可以分为两个大类:顺序容器和关联容器,需要了解的朋友可以参考下

    代码随想录知识星球精华(第四版)最强八股文-C++篇

    代码随想录知识星球精华(第四版)最强八股文-C++篇 4M大文件,全面详解C++,超全知识总结,值得收藏

    C++及数据结构复习笔记

    感谢博客上各位大佬的总结,使我在复习课本的同时补充了很多其他方面的关键知识,如C++内存管理,STL库等内容,这些补充的内容可以参考笔者的另一篇文档。本文章适合C++初学者的快速复习和应届生的笔试面试准备,书...

    易学C++高清完整pdf版

    1.7 总结 3 第2章 Hello,World 4 第3章 各种各样的“箱子”——变量 12 第4章 要走哪条路——条件语句 20 第5章 有个圈儿的程序——循环语句 36 第6章 好用的“工具”——函数 51 第7章 好大的“仓库...

    [C++]单链表的创建,合并和输出

    实验目的: (1)熟悉使用Visual C++进行程序设计的方法。 (2)掌握单链表的创建,查找,插入和合并等运算。

Global site tag (gtag.js) - Google Analytics